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.
Lors de cette étape, notre informaticien a créé le code pour notre POCL, 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()
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.
Comme dit précédemment dans la description, le dispositif Dispo'Vélo
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 :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #