Dispo'Velo

Auteur avatarLouis333 | Dernière modification 12/12/2025 par Louis333

Dispo Velo Dispo V lo.jpg
Situé à chaque arrêt de tram, Dispo'Vélo permet de communiquer rapidement et efficacement aux voyageurs où sont situées les stations de Vélib par rapport à l'arrêt de Tram et combien de vélo sont disponibles.
Licence : Attribution (CC-BY)

Étape 1 - Réalisation de croquis

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.



Étape 2 - Prototypage

Une fois nos idées établies via nos croquis



Étape 3 - Assemblage circuit




Étape 4 - Création du code

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()




Étape 5 - Premier assemblage




Étape 6 - Exposition




Comment ça marche ?

Observations : que voit-on ?

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.


Applications : dans la vie de tous les jours

Comme dit précédemment dans la description, le dispositif Dispo'Vélo

Vous aimerez aussi

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.

Commentaires

Draft