Auteur
Louis333 | Dernière modification 12/12/2025 par Louis333
roue de vélo, Vélo, Transport, Disponibilité, Hub multimodal, Code lumineux, Jauge, LED, Automatisé Dispo_Velo_Dispo_V_lo.jpg
Lors de notre phase de design, nous avons procédé à la réalisation d'une multitude de croquis nous permettant de sortir toutes nos idées sur la thématique imposée. Cette phase nous permet de valider ou invalider ces mêmes idées pour notre phase de prototypage.
Une fois nos idées établies via nos croquis, nous avons créé une batterie de prototypes papier pour pouvoir concrétiser nos idées. Grâce à l'usage d'outils de modélisation numérique comme Inkscape, nous avons utilisé la découpe laser pour rapidement découper nos pièces.
Lors de cette étape,
Branchement des câbles :
Servomoteur : on branche le 5v (fil rouge) sur le + du breadboard et le GND (fil maron) sur le – du breadboard, le jaune se branche sur le port 37 de l’ESP32.
Bandeau LED : on branche le 5v sur le + du breadboard et le GND sur le – du breadboard, le DIN se branche sur le port 5 de l’ESP32.
Lors de cette étape, notre informaticien a créé le code pour notre POCL. Le code sert à montrer la disponibilité des vélos Le code est le suivant :
# Nombre de LEDs dans ton bandeau
NUM_LEDS = 3 # Mets le vrai nombre ici
# GPIO où le DIN est branché
PIN_NUM = 32
# Initialisation du bandeau
np = neopixel.NeoPixel(Pin(PIN_NUM, Pin.OUT), NUM_LEDS)
# Allumer la première LED (rouge)
np[0] = (255, 0, 0) # (R, G, B)
np.write() # Envoie les données au bandeau
print("Première LED allumée en rouge !")
import network
from machine import Pin, PWM
import neopixel
from time import sleep, ticks_ms
# --- Configuration Wi-Fi ---
SSID = "POCO F7 Ultra"
PASSWORD = "2444666668888888"
# --- Broche servo ---
SERVO_PIN = 5
servo = PWM(Pin(SERVO_PIN))
servo.freq(50)
# --- Bandeaux NeoPixel ---
NUM_LEDS = 3
np1 = neopixel.NeoPixel(Pin(32, Pin.OUT), NUM_LEDS)
np2 = neopixel.NeoPixel(Pin(33, Pin.OUT), NUM_LEDS)
# --- Couleurs ---
BLUE = (0, 0, 255)
RED = (255, 0, 0)
# --- Fonctions ---
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print("Connexion au Wi-Fi...")
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
sleep(0.5)
print(".", end="")
print("\n✅ Connecté :", wlan.ifconfig())
return wlan
def angle_to_duty(angle):
return int((angle / 180) * 75 + 40)
def set_color(color):
"""Allume tous les LEDs d’un bandeau avec la couleur donnée"""
for i in range(NUM_LEDS):
np1[i] = color
np2[i] = color
np1.write()
np2.write()
def blink_blue_once():
"""Éteint brièvement les LEDs puis les rallume en bleu"""
for i in range(NUM_LEDS):
np1[i] = (0,0,0)
np2[i] = (0,0,0)
np1.write()
np2.write()
sleep(0.2)
set_color(BLUE)
def move_servo_and_blink():
"""Bouge le servo et fait clignoter les LEDs bleues"""
servo.duty(angle_to_duty(120))
sleep(0.5)
servo.duty(angle_to_duty(0))
blink_blue_once()
def red_flash():
"""Allume les LEDs en rouge pendant un court instant"""
set_color(RED)
sleep(1) # LED rouge pendant 1 seconde
set_color(BLUE) # revenir au bleu
# --- Boucle principale ---
def main():
connect_wifi()
set_color(BLUE) # LEDs allumées en bleu dès le départ
last_servo_time = ticks_ms()
last_red_time = ticks_ms()
while True:
now = ticks_ms()
# Servo + clignotement bleu toutes les 1 minute
if now - last_servo_time > 60000: # 1 min
move_servo_and_blink()
last_servo_time = now
# LEDs rouges toutes les 5 minutes
if now - last_red_time > 300000: # 5 min
red_flash()
last_red_time = now
sleep(0.1)
main()
Nous avons maintenant fabriqué notre disque de 28 cm en matériau mdf à l’aide de la découpeuse laser et nous avons fait des découpes (6 rectangles pour le passage des Leds et 3 trous aux extrémités pour le passage de la flèche du moteur). Nous avons collé une feuille verte sur notre disque et ensuite une feuille noire avec un troue en forme d’étoile afin de pouvoir bien voir une étoile verte au centre (zone d’arrêt de tram). Sur la feuille noire, nous avons aussi réalisé des petites découpes pour montrer les numérotations ainsi que le nom de la station de vélo. Nous avons fixé par un ruban adhésif les composant électronique ainsi que les leds. Après assemblage de tous, nous l’avons posé sur un support en mdf pour l’installer.
On expose un objet en forme de roue qui identifie de manière ludique notre POCL sur le thème de la mobilité douce donc pas d’émission de CO2. Nous avons décidé de le faire sur le thème du vélo. Nous montrons de manière concrète le nombre de vélo des stations les plus proche à vélos TBM. Cette information s’actualise toutes les 2 min 10 selon les données de bordeaux métropole. Et aussi de manière simple et visuel à l’aide de Leds de couleur, nous montrons la quantité de vélo disponible par tranche de vélo (vert : 0 à 9 ; jaune : 10 à 19 et rouge : 20 à 35. L’objectif c’est que lorsque l’usager arrive à son arrêt de tram et qu’il reste peut être 20 minutes de marche pour qu’il arrive a sa destination qu’il puisse ainsi se déplacer en toute sécurité et sans impact environnemental.
Lorsque l’usager arrive à son arrêt de tram, il y voit un dispositif qui ressemble à un disque noir. Il peut remarquer 3 points de stations les plus proches de cet arrêt. Il y a également des bandes de LEDs pour avoir une vision ludique de la qualité de vélo disponible allant du vert au jaune puis au rouge selon la quantité. Concernant les 3 points de stations, il y a des numérotations de 0 à 30 vélos allant de 5 en 5 pour savoir exactement le nombre de vélo. Le nombre exact de vélo est montré par une flèche.
Ce qui pourrait fait rater l’expérience, c’est premièrement, un problème avec les données de bordeaux métropoles. S’il y a interruption ou problème de transmission avec les données, l’objet ne peut pas marcher (Leds et Flèche)
Deuxièmement, on peut se faire hacker notre objet qui fonctionne à l’aide d’une base de données actif (Bordeaux Métropole)
Troisièmement, les conditions météorologiques peuvent possiblement influer sur le fonctionnement de l’objet.
Quatrièmement, la détérioration pas des individus externes au projet peut être une possibilité.
Cinquièmement, des composants qui grillent notamment les bands Leds.
Sixièmement, nous avons paramétré notre objet afin qu’il puisse traiter un maximum de 35 vélos. S’il y a dépassement, la flèche pour indiquer le nombre de vélo et les lesds restent au maximum défini sur le code. Donc ils n’affichent pas la donnée correcte.
Plus de temps lors du Hackaton pour mieux réaliser notre POCL, la contrainte de temps et de charge de travail sur cette période nous a empêché de mener à bout notre démarche sur la création du Dispo'Vélo.
Dernière modification 12/12/2025 par user:Louis333.
Draft
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #