<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://www.wikidebrouillard.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Louis333</id>
	<title>Wikidebrouillard - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikidebrouillard.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Louis333"/>
	<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/wiki/Sp%C3%A9cial:Contributions/Louis333"/>
	<updated>2026-04-17T16:28:43Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.31.3</generator>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22139</id>
		<title>Dispo'Velo</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22139"/>
		<updated>2025-12-12T15:57:28Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tuto Details&lt;br /&gt;
|Main_Picture=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
|Licences=Attribution (CC-BY)&lt;br /&gt;
|Description=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.&lt;br /&gt;
|Disciplines scientifiques=Computing, Electricity, Mechanics, Social Sciences&lt;br /&gt;
|Difficulty=Technical&lt;br /&gt;
|Duration=16&lt;br /&gt;
|Duration-type=hour(s)&lt;br /&gt;
|Tags=roue de vélo, Vélo, Transport, Disponibilité, Hub multimodal, Code lumineux, Jauge, LED, Automatisé&lt;br /&gt;
}}&lt;br /&gt;
{{Introduction}}&lt;br /&gt;
{{Materials&lt;br /&gt;
|ItemList={{ItemList&lt;br /&gt;
|Item=Ruban de Led - WS2812B&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=ESP32&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Breadboard&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Fil de cuivre&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Chargeur à port USB&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Carton&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Papier coloré&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Réalisation de croquis&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Croquis_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Croquis_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Prototypage&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Prototype_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Prototype_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Assemblage circuit&lt;br /&gt;
|Step_Content=Lors de cette étape, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Branchement des câbles :&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Circuit_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Assemblage_Arduino.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Création du code&lt;br /&gt;
|Step_Content=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 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Nombre de LEDs dans ton bandeau&lt;br /&gt;
NUM_LEDS = 3  # Mets le vrai nombre ici&lt;br /&gt;
&lt;br /&gt;
# GPIO où le DIN est branché&lt;br /&gt;
PIN_NUM = 32&lt;br /&gt;
&lt;br /&gt;
# Initialisation du bandeau&lt;br /&gt;
np = neopixel.NeoPixel(Pin(PIN_NUM, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
# Allumer la première LED (rouge)&lt;br /&gt;
np[0] = (255, 0, 0)  # (R, G, B)&lt;br /&gt;
np.write()  # Envoie les données au bandeau&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Première LED allumée en rouge !&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
import network&lt;br /&gt;
from machine import Pin, PWM&lt;br /&gt;
import neopixel&lt;br /&gt;
from time import sleep, ticks_ms&lt;br /&gt;
&lt;br /&gt;
# --- Configuration Wi-Fi ---&lt;br /&gt;
SSID = &amp;quot;POCO F7 Ultra&amp;quot;&lt;br /&gt;
PASSWORD = &amp;quot;2444666668888888&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# --- Broche servo ---&lt;br /&gt;
SERVO_PIN = 5&lt;br /&gt;
servo = PWM(Pin(SERVO_PIN))&lt;br /&gt;
servo.freq(50)&lt;br /&gt;
&lt;br /&gt;
# --- Bandeaux NeoPixel ---&lt;br /&gt;
NUM_LEDS = 3&lt;br /&gt;
np1 = neopixel.NeoPixel(Pin(32, Pin.OUT), NUM_LEDS)&lt;br /&gt;
np2 = neopixel.NeoPixel(Pin(33, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
# --- Couleurs ---&lt;br /&gt;
BLUE = (0, 0, 255)&lt;br /&gt;
RED = (255, 0, 0)&lt;br /&gt;
&lt;br /&gt;
# --- Fonctions ---&lt;br /&gt;
def connect_wifi():&lt;br /&gt;
    wlan = network.WLAN(network.STA_IF)&lt;br /&gt;
    wlan.active(True)&lt;br /&gt;
    if not wlan.isconnected():&lt;br /&gt;
        print(&amp;quot;Connexion au Wi-Fi...&amp;quot;)&lt;br /&gt;
        wlan.connect(SSID, PASSWORD)&lt;br /&gt;
        while not wlan.isconnected():&lt;br /&gt;
            sleep(0.5)&lt;br /&gt;
            print(&amp;quot;.&amp;quot;, end=&amp;quot;&amp;quot;)&lt;br /&gt;
    print(&amp;quot;\n✅ Connecté :&amp;quot;, wlan.ifconfig())&lt;br /&gt;
    return wlan&lt;br /&gt;
&lt;br /&gt;
def angle_to_duty(angle):&lt;br /&gt;
    return int((angle / 180) * 75 + 40)&lt;br /&gt;
&lt;br /&gt;
def set_color(color):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Allume tous les LEDs d’un bandeau avec la couleur donnée&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(NUM_LEDS):&lt;br /&gt;
        np1[i] = color&lt;br /&gt;
        np2[i] = color&lt;br /&gt;
    np1.write()&lt;br /&gt;
    np2.write()&lt;br /&gt;
&lt;br /&gt;
def blink_blue_once():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Éteint brièvement les LEDs puis les rallume en bleu&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(NUM_LEDS):&lt;br /&gt;
        np1[i] = (0,0,0)&lt;br /&gt;
        np2[i] = (0,0,0)&lt;br /&gt;
    np1.write()&lt;br /&gt;
    np2.write()&lt;br /&gt;
    sleep(0.2)&lt;br /&gt;
    set_color(BLUE)&lt;br /&gt;
&lt;br /&gt;
def move_servo_and_blink():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Bouge le servo et fait clignoter les LEDs bleues&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    servo.duty(angle_to_duty(120))&lt;br /&gt;
    sleep(0.5)&lt;br /&gt;
    servo.duty(angle_to_duty(0))&lt;br /&gt;
    blink_blue_once()&lt;br /&gt;
&lt;br /&gt;
def red_flash():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Allume les LEDs en rouge pendant un court instant&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    set_color(RED)&lt;br /&gt;
    sleep(1)  # LED rouge pendant 1 seconde&lt;br /&gt;
    set_color(BLUE)  # revenir au bleu&lt;br /&gt;
&lt;br /&gt;
# --- Boucle principale ---&lt;br /&gt;
def main():&lt;br /&gt;
    connect_wifi()&lt;br /&gt;
    set_color(BLUE)  # LEDs allumées en bleu dès le départ&lt;br /&gt;
    last_servo_time = ticks_ms()&lt;br /&gt;
    last_red_time = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
    while True:&lt;br /&gt;
        now = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
        # Servo + clignotement bleu toutes les 1 minute&lt;br /&gt;
        if now - last_servo_time &amp;gt; 60000:  # 1 min&lt;br /&gt;
            move_servo_and_blink()&lt;br /&gt;
            last_servo_time = now&lt;br /&gt;
&lt;br /&gt;
        # LEDs rouges toutes les 5 minutes&lt;br /&gt;
        if now - last_red_time &amp;gt; 300000:  # 5 min&lt;br /&gt;
            red_flash()&lt;br /&gt;
            last_red_time = now&lt;br /&gt;
&lt;br /&gt;
        sleep(0.1)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Codes.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Premier assemblage&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_POCL.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Exposition&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Notes&lt;br /&gt;
|Observations=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.&lt;br /&gt;
|Avertissement=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)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deuxièmement, on peut se faire hacker notre objet qui fonctionne à l’aide d’une base de données actif (Bordeaux Métropole)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Troisièmement, les conditions météorologiques peuvent possiblement influer sur le fonctionnement de l’objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quatrièmement, la détérioration pas des individus externes au projet peut être une possibilité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cinquièmement, des composants qui grillent notamment les bands Leds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
|Related=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.&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Status&lt;br /&gt;
|Complete=Draft&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22134</id>
		<title>Dispo'Velo</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22134"/>
		<updated>2025-12-12T15:44:55Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tuto Details&lt;br /&gt;
|Main_Picture=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
|Licences=Attribution (CC-BY)&lt;br /&gt;
|Description=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.&lt;br /&gt;
|Disciplines scientifiques=Computing, Electricity, Mechanics, Social Sciences&lt;br /&gt;
|Difficulty=Technical&lt;br /&gt;
|Duration=16&lt;br /&gt;
|Duration-type=hour(s)&lt;br /&gt;
|Tags=roue de vélo, Vélo, Transport, Disponibilité, Hub multimodal, Code lumineux, Jauge, LED, Automatisé&lt;br /&gt;
}}&lt;br /&gt;
{{Introduction}}&lt;br /&gt;
{{Materials&lt;br /&gt;
|ItemList={{ItemList&lt;br /&gt;
|Item=Ruban de Led - WS2812B&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=ESP32&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Breadboard&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Fil de cuivre&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Chargeur à port USB&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Carton&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Papier coloré&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Réalisation de croquis&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Croquis_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Croquis_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Prototypage&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Prototype_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Prototype_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Assemblage circuit&lt;br /&gt;
|Step_Content=Lors de cette étape, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Branchement des câbles :&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Circuit_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Assemblage_Arduino.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Création du code&lt;br /&gt;
|Step_Content=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 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Nombre de LEDs dans ton bandeau&lt;br /&gt;
NUM_LEDS = 3  # Mets le vrai nombre ici&lt;br /&gt;
&lt;br /&gt;
# GPIO où le DIN est branché&lt;br /&gt;
PIN_NUM = 32&lt;br /&gt;
&lt;br /&gt;
# Initialisation du bandeau&lt;br /&gt;
np = neopixel.NeoPixel(Pin(PIN_NUM, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
# Allumer la première LED (rouge)&lt;br /&gt;
np[0] = (255, 0, 0)  # (R, G, B)&lt;br /&gt;
np.write()  # Envoie les données au bandeau&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Première LED allumée en rouge !&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
import network&lt;br /&gt;
from machine import Pin, PWM&lt;br /&gt;
import neopixel&lt;br /&gt;
from time import sleep, ticks_ms&lt;br /&gt;
&lt;br /&gt;
# --- Configuration Wi-Fi ---&lt;br /&gt;
SSID = &amp;quot;POCO F7 Ultra&amp;quot;&lt;br /&gt;
PASSWORD = &amp;quot;2444666668888888&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# --- Broche servo ---&lt;br /&gt;
SERVO_PIN = 5&lt;br /&gt;
servo = PWM(Pin(SERVO_PIN))&lt;br /&gt;
servo.freq(50)&lt;br /&gt;
&lt;br /&gt;
# --- Bandeaux NeoPixel ---&lt;br /&gt;
NUM_LEDS = 3&lt;br /&gt;
np1 = neopixel.NeoPixel(Pin(32, Pin.OUT), NUM_LEDS)&lt;br /&gt;
np2 = neopixel.NeoPixel(Pin(33, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
# --- Couleurs ---&lt;br /&gt;
BLUE = (0, 0, 255)&lt;br /&gt;
RED = (255, 0, 0)&lt;br /&gt;
&lt;br /&gt;
# --- Fonctions ---&lt;br /&gt;
def connect_wifi():&lt;br /&gt;
    wlan = network.WLAN(network.STA_IF)&lt;br /&gt;
    wlan.active(True)&lt;br /&gt;
    if not wlan.isconnected():&lt;br /&gt;
        print(&amp;quot;Connexion au Wi-Fi...&amp;quot;)&lt;br /&gt;
        wlan.connect(SSID, PASSWORD)&lt;br /&gt;
        while not wlan.isconnected():&lt;br /&gt;
            sleep(0.5)&lt;br /&gt;
            print(&amp;quot;.&amp;quot;, end=&amp;quot;&amp;quot;)&lt;br /&gt;
    print(&amp;quot;\n✅ Connecté :&amp;quot;, wlan.ifconfig())&lt;br /&gt;
    return wlan&lt;br /&gt;
&lt;br /&gt;
def angle_to_duty(angle):&lt;br /&gt;
    return int((angle / 180) * 75 + 40)&lt;br /&gt;
&lt;br /&gt;
def set_color(color):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Allume tous les LEDs d’un bandeau avec la couleur donnée&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(NUM_LEDS):&lt;br /&gt;
        np1[i] = color&lt;br /&gt;
        np2[i] = color&lt;br /&gt;
    np1.write()&lt;br /&gt;
    np2.write()&lt;br /&gt;
&lt;br /&gt;
def blink_blue_once():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Éteint brièvement les LEDs puis les rallume en bleu&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(NUM_LEDS):&lt;br /&gt;
        np1[i] = (0,0,0)&lt;br /&gt;
        np2[i] = (0,0,0)&lt;br /&gt;
    np1.write()&lt;br /&gt;
    np2.write()&lt;br /&gt;
    sleep(0.2)&lt;br /&gt;
    set_color(BLUE)&lt;br /&gt;
&lt;br /&gt;
def move_servo_and_blink():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Bouge le servo et fait clignoter les LEDs bleues&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    servo.duty(angle_to_duty(120))&lt;br /&gt;
    sleep(0.5)&lt;br /&gt;
    servo.duty(angle_to_duty(0))&lt;br /&gt;
    blink_blue_once()&lt;br /&gt;
&lt;br /&gt;
def red_flash():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Allume les LEDs en rouge pendant un court instant&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    set_color(RED)&lt;br /&gt;
    sleep(1)  # LED rouge pendant 1 seconde&lt;br /&gt;
    set_color(BLUE)  # revenir au bleu&lt;br /&gt;
&lt;br /&gt;
# --- Boucle principale ---&lt;br /&gt;
def main():&lt;br /&gt;
    connect_wifi()&lt;br /&gt;
    set_color(BLUE)  # LEDs allumées en bleu dès le départ&lt;br /&gt;
    last_servo_time = ticks_ms()&lt;br /&gt;
    last_red_time = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
    while True:&lt;br /&gt;
        now = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
        # Servo + clignotement bleu toutes les 1 minute&lt;br /&gt;
        if now - last_servo_time &amp;gt; 60000:  # 1 min&lt;br /&gt;
            move_servo_and_blink()&lt;br /&gt;
            last_servo_time = now&lt;br /&gt;
&lt;br /&gt;
        # LEDs rouges toutes les 5 minutes&lt;br /&gt;
        if now - last_red_time &amp;gt; 300000:  # 5 min&lt;br /&gt;
            red_flash()&lt;br /&gt;
            last_red_time = now&lt;br /&gt;
&lt;br /&gt;
        sleep(0.1)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Codes.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Premier assemblage&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_POCL.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Exposition&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Notes&lt;br /&gt;
|Observations=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.&lt;br /&gt;
|Avertissement=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)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deuxièmement, on peut se faire hacker notre objet qui fonctionne à l’aide d’une base de données actif (Bordeaux Métropole)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Troisièmement, les conditions météorologiques peuvent possiblement influer sur le fonctionnement de l’objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quatrièmement, la détérioration pas des individus externes au projet peut être une possibilité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cinquièmement, des composants qui grillent notamment les bands Leds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
|Related=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.&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Status&lt;br /&gt;
|Complete=Draft&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22131</id>
		<title>Dispo'Velo</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22131"/>
		<updated>2025-12-12T15:34:39Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tuto Details&lt;br /&gt;
|Main_Picture=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
|Licences=Attribution (CC-BY)&lt;br /&gt;
|Description=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.&lt;br /&gt;
|Disciplines scientifiques=Computing, Electricity, Mechanics, Social Sciences&lt;br /&gt;
|Difficulty=Technical&lt;br /&gt;
|Duration=16&lt;br /&gt;
|Duration-type=hour(s)&lt;br /&gt;
|Tags=roue de vélo, Vélo, Transport, Disponibilité, Hub multimodal, Code lumineux, Jauge, LED, Automatisé&lt;br /&gt;
}}&lt;br /&gt;
{{Introduction}}&lt;br /&gt;
{{Materials&lt;br /&gt;
|ItemList={{ItemList&lt;br /&gt;
|Item=Ruban de Led - WS2812B&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=ESP32&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Breadboard&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Fil de cuivre&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Chargeur à port USB&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Carton&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Papier coloré&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Réalisation de croquis&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Croquis_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Croquis_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Prototypage&lt;br /&gt;
|Step_Content=Une fois nos idées établies via nos croquis&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Prototype_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Prototype_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Assemblage circuit&lt;br /&gt;
|Step_Content=Lors de cette étape, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Branchement des câbles :&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Circuit_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Assemblage_Arduino.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Création du code&lt;br /&gt;
|Step_Content=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 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Nombre de LEDs dans ton bandeau&lt;br /&gt;
NUM_LEDS = 3  # Mets le vrai nombre ici&lt;br /&gt;
&lt;br /&gt;
# GPIO où le DIN est branché&lt;br /&gt;
PIN_NUM = 32&lt;br /&gt;
&lt;br /&gt;
# Initialisation du bandeau&lt;br /&gt;
np = neopixel.NeoPixel(Pin(PIN_NUM, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
# Allumer la première LED (rouge)&lt;br /&gt;
np[0] = (255, 0, 0)  # (R, G, B)&lt;br /&gt;
np.write()  # Envoie les données au bandeau&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Première LED allumée en rouge !&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
import network&lt;br /&gt;
from machine import Pin, PWM&lt;br /&gt;
import neopixel&lt;br /&gt;
from time import sleep, ticks_ms&lt;br /&gt;
&lt;br /&gt;
# --- Configuration Wi-Fi ---&lt;br /&gt;
SSID = &amp;quot;POCO F7 Ultra&amp;quot;&lt;br /&gt;
PASSWORD = &amp;quot;2444666668888888&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# --- Broche servo ---&lt;br /&gt;
SERVO_PIN = 5&lt;br /&gt;
servo = PWM(Pin(SERVO_PIN))&lt;br /&gt;
servo.freq(50)&lt;br /&gt;
&lt;br /&gt;
# --- Bandeaux NeoPixel ---&lt;br /&gt;
NUM_LEDS = 3&lt;br /&gt;
np1 = neopixel.NeoPixel(Pin(32, Pin.OUT), NUM_LEDS)&lt;br /&gt;
np2 = neopixel.NeoPixel(Pin(33, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
# --- Couleurs ---&lt;br /&gt;
BLUE = (0, 0, 255)&lt;br /&gt;
RED = (255, 0, 0)&lt;br /&gt;
&lt;br /&gt;
# --- Fonctions ---&lt;br /&gt;
def connect_wifi():&lt;br /&gt;
    wlan = network.WLAN(network.STA_IF)&lt;br /&gt;
    wlan.active(True)&lt;br /&gt;
    if not wlan.isconnected():&lt;br /&gt;
        print(&amp;quot;Connexion au Wi-Fi...&amp;quot;)&lt;br /&gt;
        wlan.connect(SSID, PASSWORD)&lt;br /&gt;
        while not wlan.isconnected():&lt;br /&gt;
            sleep(0.5)&lt;br /&gt;
            print(&amp;quot;.&amp;quot;, end=&amp;quot;&amp;quot;)&lt;br /&gt;
    print(&amp;quot;\n✅ Connecté :&amp;quot;, wlan.ifconfig())&lt;br /&gt;
    return wlan&lt;br /&gt;
&lt;br /&gt;
def angle_to_duty(angle):&lt;br /&gt;
    return int((angle / 180) * 75 + 40)&lt;br /&gt;
&lt;br /&gt;
def set_color(color):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Allume tous les LEDs d’un bandeau avec la couleur donnée&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(NUM_LEDS):&lt;br /&gt;
        np1[i] = color&lt;br /&gt;
        np2[i] = color&lt;br /&gt;
    np1.write()&lt;br /&gt;
    np2.write()&lt;br /&gt;
&lt;br /&gt;
def blink_blue_once():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Éteint brièvement les LEDs puis les rallume en bleu&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(NUM_LEDS):&lt;br /&gt;
        np1[i] = (0,0,0)&lt;br /&gt;
        np2[i] = (0,0,0)&lt;br /&gt;
    np1.write()&lt;br /&gt;
    np2.write()&lt;br /&gt;
    sleep(0.2)&lt;br /&gt;
    set_color(BLUE)&lt;br /&gt;
&lt;br /&gt;
def move_servo_and_blink():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Bouge le servo et fait clignoter les LEDs bleues&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    servo.duty(angle_to_duty(120))&lt;br /&gt;
    sleep(0.5)&lt;br /&gt;
    servo.duty(angle_to_duty(0))&lt;br /&gt;
    blink_blue_once()&lt;br /&gt;
&lt;br /&gt;
def red_flash():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Allume les LEDs en rouge pendant un court instant&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    set_color(RED)&lt;br /&gt;
    sleep(1)  # LED rouge pendant 1 seconde&lt;br /&gt;
    set_color(BLUE)  # revenir au bleu&lt;br /&gt;
&lt;br /&gt;
# --- Boucle principale ---&lt;br /&gt;
def main():&lt;br /&gt;
    connect_wifi()&lt;br /&gt;
    set_color(BLUE)  # LEDs allumées en bleu dès le départ&lt;br /&gt;
    last_servo_time = ticks_ms()&lt;br /&gt;
    last_red_time = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
    while True:&lt;br /&gt;
        now = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
        # Servo + clignotement bleu toutes les 1 minute&lt;br /&gt;
        if now - last_servo_time &amp;gt; 60000:  # 1 min&lt;br /&gt;
            move_servo_and_blink()&lt;br /&gt;
            last_servo_time = now&lt;br /&gt;
&lt;br /&gt;
        # LEDs rouges toutes les 5 minutes&lt;br /&gt;
        if now - last_red_time &amp;gt; 300000:  # 5 min&lt;br /&gt;
            red_flash()&lt;br /&gt;
            last_red_time = now&lt;br /&gt;
&lt;br /&gt;
        sleep(0.1)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Codes.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Premier assemblage&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_POCL.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Exposition&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Notes&lt;br /&gt;
|Observations=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.&lt;br /&gt;
|Avertissement=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)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deuxièmement, on peut se faire hacker notre objet qui fonctionne à l’aide d’une base de données actif (Bordeaux Métropole)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Troisièmement, les conditions météorologiques peuvent possiblement influer sur le fonctionnement de l’objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quatrièmement, la détérioration pas des individus externes au projet peut être une possibilité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cinquièmement, des composants qui grillent notamment les bands Leds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
|Related=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.&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Status&lt;br /&gt;
|Complete=Draft&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Assemblage_Arduino.png&amp;diff=22130</id>
		<title>Fichier:Dispo Velo Assemblage Arduino.png</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Assemblage_Arduino.png&amp;diff=22130"/>
		<updated>2025-12-12T15:31:59Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_Assemblage_Arduino&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_Assemblage_Arduino&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22127</id>
		<title>Dispo'Velo</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22127"/>
		<updated>2025-12-12T15:26:40Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tuto Details&lt;br /&gt;
|Main_Picture=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
|Licences=Attribution (CC-BY)&lt;br /&gt;
|Description=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.&lt;br /&gt;
|Disciplines scientifiques=Computing, Electricity, Mechanics, Social Sciences&lt;br /&gt;
|Difficulty=Technical&lt;br /&gt;
|Duration=16&lt;br /&gt;
|Duration-type=hour(s)&lt;br /&gt;
|Tags=roue de vélo, Vélo, Transport, Disponibilité, Hub multimodal, Code lumineux, Jauge, LED, Automatisé&lt;br /&gt;
}}&lt;br /&gt;
{{Introduction}}&lt;br /&gt;
{{Materials&lt;br /&gt;
|ItemList={{ItemList&lt;br /&gt;
|Item=Ruban de Led - WS2812B&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=ESP32&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Breadboard&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Fil de cuivre&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Chargeur à port USB&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Carton&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Papier coloré&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Réalisation de croquis&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Croquis_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Croquis_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Prototypage&lt;br /&gt;
|Step_Content=Une fois nos idées établies via nos croquis&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Prototype_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Prototype_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Assemblage circuit&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Circuit_1.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Création du code&lt;br /&gt;
|Step_Content=Lors de cette étape, notre informaticien a créé le code pour notre POCL, le code est le suivant :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Nombre de LEDs dans ton bandeau&lt;br /&gt;
&lt;br /&gt;
NUM_LEDS = 3  # Mets le vrai nombre ici&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; GPIO où le DIN est branché&lt;br /&gt;
&lt;br /&gt;
PIN_NUM = 32&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Initialisation du bandeau&lt;br /&gt;
&lt;br /&gt;
np = neopixel.NeoPixel(Pin(PIN_NUM, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Allumer la première LED (rouge)&lt;br /&gt;
&lt;br /&gt;
np[0] = (255, 0, 0)  # (R, G, B)&lt;br /&gt;
&lt;br /&gt;
np.write()  # Envoie les données au bandeau&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Première LED allumée en rouge !&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
import network&lt;br /&gt;
&lt;br /&gt;
from machine import Pin, PWM&lt;br /&gt;
&lt;br /&gt;
import neopixel&lt;br /&gt;
&lt;br /&gt;
from time import sleep, ticks_ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; --- Configuration Wi-Fi ---&lt;br /&gt;
&lt;br /&gt;
SSID = &amp;quot;POCO F7 Ultra&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PASSWORD = &amp;quot;2444666668888888&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; --- Broche servo ---&lt;br /&gt;
&lt;br /&gt;
SERVO_PIN = 5&lt;br /&gt;
&lt;br /&gt;
servo = PWM(Pin(SERVO_PIN))&lt;br /&gt;
&lt;br /&gt;
servo.freq(50)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; --- Bandeaux NeoPixel ---&lt;br /&gt;
&lt;br /&gt;
NUM_LEDS = 3&lt;br /&gt;
&lt;br /&gt;
np1 = neopixel.NeoPixel(Pin(32, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
np2 = neopixel.NeoPixel(Pin(33, Pin.OUT), NUM_LEDS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; --- Couleurs ---&lt;br /&gt;
&lt;br /&gt;
BLUE = (0, 0, 255)&lt;br /&gt;
&lt;br /&gt;
RED = (255, 0, 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; --- Fonctions ---&lt;br /&gt;
&lt;br /&gt;
def connect_wifi():&lt;br /&gt;
&lt;br /&gt;
    wlan = network.WLAN(network.STA_IF)&lt;br /&gt;
&lt;br /&gt;
    wlan.active(True)&lt;br /&gt;
&lt;br /&gt;
    if not wlan.isconnected():&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;Connexion au Wi-Fi...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        wlan.connect(SSID, PASSWORD)&lt;br /&gt;
&lt;br /&gt;
        while not wlan.isconnected():&lt;br /&gt;
&lt;br /&gt;
            sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
            print(&amp;quot;.&amp;quot;, end=&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;\n✅ Connecté :&amp;quot;, wlan.ifconfig())&lt;br /&gt;
&lt;br /&gt;
    return wlan&lt;br /&gt;
&lt;br /&gt;
def angle_to_duty(angle):&lt;br /&gt;
&lt;br /&gt;
    return int((angle / 180) * 75 + 40)&lt;br /&gt;
&lt;br /&gt;
def set_color(color):&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Allume tous les LEDs d’un bandeau avec la couleur donnée&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    for i in range(NUM_LEDS):&lt;br /&gt;
&lt;br /&gt;
        np1[i] = color&lt;br /&gt;
&lt;br /&gt;
        np2[i] = color&lt;br /&gt;
&lt;br /&gt;
    np1.write()&lt;br /&gt;
&lt;br /&gt;
    np2.write()&lt;br /&gt;
&lt;br /&gt;
def blink_blue_once():&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Éteint brièvement les LEDs puis les rallume en bleu&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    for i in range(NUM_LEDS):&lt;br /&gt;
&lt;br /&gt;
        np1[i] = (0,0,0)&lt;br /&gt;
&lt;br /&gt;
        np2[i] = (0,0,0)&lt;br /&gt;
&lt;br /&gt;
    np1.write()&lt;br /&gt;
&lt;br /&gt;
    np2.write()&lt;br /&gt;
&lt;br /&gt;
    sleep(0.2)&lt;br /&gt;
&lt;br /&gt;
    set_color(BLUE)&lt;br /&gt;
&lt;br /&gt;
def move_servo_and_blink():&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Bouge le servo et fait clignoter les LEDs bleues&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    servo.duty(angle_to_duty(120))&lt;br /&gt;
&lt;br /&gt;
    sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
    servo.duty(angle_to_duty(0))&lt;br /&gt;
&lt;br /&gt;
    blink_blue_once()&lt;br /&gt;
&lt;br /&gt;
def red_flash():&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Allume les LEDs en rouge pendant un court instant&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    set_color(RED)&lt;br /&gt;
&lt;br /&gt;
    sleep(1)  # LED rouge pendant 1 seconde&lt;br /&gt;
&lt;br /&gt;
    set_color(BLUE)  # revenir au bleu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; --- Boucle principale ---&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
    connect_wifi()&lt;br /&gt;
&lt;br /&gt;
    set_color(BLUE)  # LEDs allumées en bleu dès le départ&lt;br /&gt;
&lt;br /&gt;
    last_servo_time = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
    last_red_time = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
    while True:&lt;br /&gt;
&lt;br /&gt;
        now = ticks_ms()&lt;br /&gt;
&lt;br /&gt;
        # Servo + clignotement bleu toutes les 1 minute&lt;br /&gt;
&lt;br /&gt;
        if now - last_servo_time &amp;gt; 60000:  # 1 min&lt;br /&gt;
&lt;br /&gt;
            move_servo_and_blink()&lt;br /&gt;
&lt;br /&gt;
            last_servo_time = now&lt;br /&gt;
&lt;br /&gt;
        # LEDs rouges toutes les 5 minutes&lt;br /&gt;
&lt;br /&gt;
        if now - last_red_time &amp;gt; 300000:  # 5 min&lt;br /&gt;
&lt;br /&gt;
            red_flash()&lt;br /&gt;
&lt;br /&gt;
            last_red_time = now&lt;br /&gt;
&lt;br /&gt;
        sleep(0.1)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Codes.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Premier assemblage&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_POCL.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Exposition&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Notes&lt;br /&gt;
|Observations=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.&lt;br /&gt;
|Applications=Comme dit précédemment dans la description, le dispositif Dispo'Vélo&lt;br /&gt;
|Related=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.&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Status&lt;br /&gt;
|Complete=Draft&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Codes.png&amp;diff=22120</id>
		<title>Fichier:Dispo Velo Codes.png</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Codes.png&amp;diff=22120"/>
		<updated>2025-12-12T15:00:32Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_Codes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_Codes&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Circuit_1.png&amp;diff=22119</id>
		<title>Fichier:Dispo Velo Circuit 1.png</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Circuit_1.png&amp;diff=22119"/>
		<updated>2025-12-12T15:00:19Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_Circuit_1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_Circuit_1&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22118</id>
		<title>Dispo'Velo</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22118"/>
		<updated>2025-12-12T14:58:36Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tuto Details&lt;br /&gt;
|Main_Picture=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
|Licences=Attribution (CC-BY)&lt;br /&gt;
|Description=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.&lt;br /&gt;
|Disciplines scientifiques=Computing, Electricity, Mechanics, Social Sciences&lt;br /&gt;
|Difficulty=Technical&lt;br /&gt;
|Duration=16&lt;br /&gt;
|Duration-type=hour(s)&lt;br /&gt;
|Tags=roue de vélo, Vélo, Transport, Disponibilité, Hub multimodal, Code lumineux, Jauge, LED, Automatisé&lt;br /&gt;
}}&lt;br /&gt;
{{Introduction}}&lt;br /&gt;
{{Materials&lt;br /&gt;
|ItemList={{ItemList&lt;br /&gt;
|Item=Ruban de Led - WS2812B&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Servomoteur&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=ESP32&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Breadboard&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Fil de cuivre&lt;br /&gt;
}}{{ItemList&lt;br /&gt;
|Item=Chargeur à port USB&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Réalisation de croquis&lt;br /&gt;
|Step_Content=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.&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Croquis_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Croquis_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=Prototypage&lt;br /&gt;
|Step_Content=Une fois&lt;br /&gt;
|Step_Picture_00=Dispo_Velo_Prototype_1.png&lt;br /&gt;
|Step_Picture_01=Dispo_Velo_Prototype_2.png&lt;br /&gt;
}}&lt;br /&gt;
{{Notes}}&lt;br /&gt;
{{Tuto Status&lt;br /&gt;
|Complete=Draft&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Prototype_1.png&amp;diff=22113</id>
		<title>Fichier:Dispo Velo Prototype 1.png</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Prototype_1.png&amp;diff=22113"/>
		<updated>2025-12-12T14:46:35Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_Prototype_1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_Prototype_1&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Prototype_2.png&amp;diff=22112</id>
		<title>Fichier:Dispo Velo Prototype 2.png</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Prototype_2.png&amp;diff=22112"/>
		<updated>2025-12-12T14:46:34Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_Prototype_2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_Prototype_2&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Croquis_2.png&amp;diff=22110</id>
		<title>Fichier:Dispo Velo Croquis 2.png</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Croquis_2.png&amp;diff=22110"/>
		<updated>2025-12-12T14:35:49Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_Croquis_2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_Croquis_2&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Croquis_1.png&amp;diff=22109</id>
		<title>Fichier:Dispo Velo Croquis 1.png</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Croquis_1.png&amp;diff=22109"/>
		<updated>2025-12-12T14:35:28Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_Croquis_1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_Croquis_1&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22108</id>
		<title>Dispo'Velo</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Dispo%27Velo&amp;diff=22108"/>
		<updated>2025-12-12T14:28:26Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Page créée avec « {{Tuto Details |Main_Picture=Dispo_Velo_Dispo_V_lo.jpg |Licences=Attribution (CC-BY) |Description=Situé à chaque arrêt de tram, Dispo'Vélo permet de communiquer rapide... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tuto Details&lt;br /&gt;
|Main_Picture=Dispo_Velo_Dispo_V_lo.jpg&lt;br /&gt;
|Licences=Attribution (CC-BY)&lt;br /&gt;
|Description=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.&lt;br /&gt;
|Disciplines scientifiques=Computing, Electricity, Mechanics, Social Sciences&lt;br /&gt;
|Difficulty=Technical&lt;br /&gt;
|Duration=16&lt;br /&gt;
|Duration-type=hour(s)&lt;br /&gt;
|Tags=roue de vélo, Vélo, Transport, Disponibilité, Hub multimodal, Code lumineux, Jauge, LED, Automatisé&lt;br /&gt;
}}&lt;br /&gt;
{{Introduction}}&lt;br /&gt;
{{Materials&lt;br /&gt;
|ItemList={{ItemList}}&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step}}&lt;br /&gt;
{{Notes}}&lt;br /&gt;
{{Tuto Status&lt;br /&gt;
|Complete=Draft&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Dispo_V_lo.jpg&amp;diff=22107</id>
		<title>Fichier:Dispo Velo Dispo V lo.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_Dispo_V_lo.jpg&amp;diff=22107"/>
		<updated>2025-12-12T14:25:36Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_Dispo_V_lo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_Dispo_V_lo&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_POCL.png&amp;diff=22106</id>
		<title>Fichier:Dispo Velo POCL.png</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Fichier:Dispo_Velo_POCL.png&amp;diff=22106"/>
		<updated>2025-12-12T14:24:02Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : Dispo_Velo_POCL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dispo_Velo_POCL&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikidebrouillard.org/w/index.php?title=Utilisateur:Louis333&amp;diff=22095</id>
		<title>Utilisateur:Louis333</title>
		<link rel="alternate" type="text/html" href="https://www.wikidebrouillard.org/w/index.php?title=Utilisateur:Louis333&amp;diff=22095"/>
		<updated>2025-12-12T13:15:03Z</updated>

		<summary type="html">&lt;p&gt;Louis333 : create user page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Louis333</name></author>
		
	</entry>
</feed>