Qu’est-ce que c’est?
Lumivélo est un système de décorations lumineuses installées sur les huit vélos de parents et d’enfants participant au tour de l’île de Montréal la nuit. Les lumières sont toutes contrôlées à distance grâce à une « boîte magique » au-dessus de laquelle les enfants passent des cartes de plastique qui commandent le changement simultané des couleurs et motifs lumineux de toute la flotte! Au-delà de son effet décoratif, le système permet de constituer un groupe visible dans lequel les jeunes cyclistes peuvent évoluer à leur rythme, à l’abri du flot rapide des milliers de vélos participant au rassemblement. Il s’agit d’un projet réalisé en équipe par 4 papas et leurs enfants! Illustration résumée en une image (noter la carte de couleur et la boite dans la main de l’enfant du grand vélo à l’avant):
Comment ça marche?
Chacun des huit vélos embarque un système comportant:
(1) une bande de 30 à 300 LEDs RGB de type WS2812 (chaque LED de la bande peut être commandée individuellement en terme de couleur et d’intensité lumineuse),
(2) un module de contrôle patenté à partir d’un ESP8266 (puce ne coûtant que quelques dollars et qui comprend un microcontrôleur + un module wi-fi intégré) et de quelques composants accessoires (convertisseur DC/DC, connecteurs, interrupteur, résistance de tirage etc.),
(3) une batterie de 6V 4Ah au plomb,
(4) un interrupteur magnétique monté sur le cadre du vélo au niveau d’un aimant fixé sur les rayons pour détecter les tours de roue.
Une « boîte magique » unique sert à commander le tout. Elle contient un nano-ordinateur Raspberry Pi, une clé wi-fi, un microcontrôleur Arduino, un lecteur de cartes RFID sans contact et une alimentation autonome par batterie.
Un ensemble de cartes qui contiennent toutes une puce RFID unique. Chaque carte est associée à une séquence de lumière de notre choix.
Fonctionnement
Lorsque les modules de lumière sont allumés, les LEDs s’allument selon une séquence que l’on a programmé d’avance. Actuellement, il s’agit d’une sorte de train multicolore qui oscille sans fin d’un bout à l’autre de la bande LED. A chaque tour de roue, le train fait demi-tour et revient sur ses pas. Le module est aussi en mode d’attente et prêt à changer la séquence de lumière si un message arrive. Exemple:
Lorsque la boite magique est allumée, passé un démarrage d’une quinzaine de secondes, un réseau wi-fi est automatiquement créé et la boîte est en mode attente. Si quelqu’un passe une carte au-dessus de la boîte (quelques centimètres de portée), l’identité de la carte est reconnue par la boîte magique qui envoie immédiatement par wi-fi l’ordre de changer la séquence de lumière. Tous les modules qui reçoivent le message s’exécutent immédiatement. Le tout prend quelques dixièmes de secondes!

On teste la rapidité du système en passant plusieurs cartes l’une après l’autre: quelques dixièmes de seconde pour passer d’une séquence à l’autre!
Nous avons réalisé 2 boîtes magiques (une en backup) et 9 modules de lumières complets (un backup qui servira!).
Chronologie du projet
Histoire du projet depuis l’idée de Sébastien au tour de l’île.
Date | Jours restant avant le tour de l’île | Description |
2016-04-03 | 61 | La vision : Sébastien propose l’idée d’un projet « Vélo la nuit » qui implique des effets de sons et lumières sur plusieurs vélos connectés. Les lumières sont à priori plutôt sur les casques. On envisage 4 ou 5 familles avec des jeunes enfants pour participer au tour de l’île la nuit 2 mois plus tard. |
2016-04-12 | 52 | Design conceptuel terminé : Après avoir envisagé plusieurs choix technologiques (infrarouge, RF, bluetooth…) la solution wifi ESP8266 est choisie pour ce projet. Le concept est figé et les principaux sous-ensembles sont maintenant définis. J’embarque! Ce sera une première expérience de ce matériel. Sébastien passe plusieurs commandes de chips ESP8266 et de bandes LEDs. 3 à 5 semaines à attendre! En attendant, quelques modules ESP8266 Adafruit sont achetés localement pour commencer à jouer avec la plate-forme ESP, le node.mcu, les scripts lua et les bandes LEDs WS2812. Les enfants de Annie et Sébastien commencent à faire des plans de jeux décorations lumineuses et à décorer les cartes RFID!
|
2016-05-01 | 33 | Accélération: la date approche: On fait l’inventaire des participants prévus et du matériel déjà disponible pour commencer à fabriquer un premier prototype. Le projet a maintenant un nom: Lumivélo! |
2016-05-02 | 32 | Évolution: Le projet se précise – plus de son pour cette année, les lumières seront installées sur les vélos plutôt que sur les casques car cela laisse plus de latitude pour faire des grandes structures! On décide d’inclure des interrupteurs magnétiques pour que les séquences lumineuses puissent changer en fonction du rythme de pédalage des enfants. |
2016-05-06 | 28 | Hello World!: Ma première prise en main du ESP8266 grâce à un module Huzzah Feather. Premier code lua pour faire clignoter la LED rouge du board, puis Hello World! |
2016-05-08 | 26 | Premier prototype commencé: Les premières pancartes électorales de Coroplast sont découpées (l’étoile!) et premières lignes de code pour des motifs lumineux. |
2016-05-10 | 24 | Quelques embûches: Prise en main du logiciel de développement ESPlorer. Difficultés pour envoyer des fichiers sur le ESP8266 (une librairie « file » manquait lorsque l’on a compilé le firmware node.mcu!). Quelques « reboots » intempestifs. |
2016-05-12 | 22 | Premier prototype “breadboard” terminé: L’ensemble du module vélo est fonctionnel sur le “breadboard”. Reste à penser un design soudé utilisable en extérieur. L’essentiel du matériel commandé est arrivé. Il y en a assez pour environ 8 modules complets.
|
2016-05-15 | 19 | Premiers tests du noyau du système Lumivélo! : Sébastien a terminé d’assembler la boîte magique tandis que j’ai le premier module vélo (#0) autonome. Premier test en extérieur le soir même. Cela fonctionne et la porté est de 250m environ! Yahooooooooo! Un ordinateur reste nécessaire pour démarrer le serveur, lancer les scripts etc. Jean-François, Stéphane et leur deux familles respectives embarquent dans le projet! |
2016-05-21 | 13 | Début de la “production” des modules vélos: En plus du prototype #0, huit autres modules seront fabriqués à partir du chip ESP8266 seul, au rythme de un à deux par soir! Stéphane et Alexa commencent la fabrication de l’éclair. |
2016-05-24 | 10 | Boîte magique autonome: Tout démarre et fonctionne de façon autonome. Plus besoin d’ordinateur! |
2016-05-28 | 6 | Sprint: On lance la réalisation d’une seconde boîte magique (backup) tandis que Sébastien travaille fort au code lua (module client et serveur wifi + séquences de lumière). On fait le point sur les participants et la répartition du matériel! |
2016-05-29 | 5 | Premier test sur les vélos et avec les enfants!: Le matériel fonctionne bien – c’est beau – mais seul un vélo est connecté. Reste à configurer la boîte magique avec les adresses MAC de tous les modules. |
2016-05-31 | 3 | Dernière ligne droite: La baguette magique et l’arc-en-ciel sont terminés. Sébastien fige le protocole JSON pour le transfert de messages Lumivélo. On met à jour les firmware node.mcu sur tous les modules et on charge les 10 batteries! |
2016-06-02 | 1 | Last call: Sébastien réalise les 2 derniers montages pour vélos (le coeur et le panier-phare) – dernière soirée pour finaliser le système – Il est 1:30 AM quand le dernier module se synchronise aux sept autres. Dodo! |
2016-06-03 | 0 | Tour de l’île!: Ça marche! |
Galerie photo
- Une étoile est constituée en Coroplast et comporte 15 LEDs par face.
- Les LEDs sont cachées derrière une face de Coroplast semi-transparent servant à diffuser la lumière.
- De profil.
- Le prototype 0 est constitué à l’aide d’un module Huzzah feather de Adafruit.
- Le module ESP est monté sur une plaquette amovible (16 broches).
- Le montage est testé sur un « breadbord » avant de passer à une plaquette soudée.
- Prototypes 1 et 2 terminés!
- Le module convertisseur DC/DC est placé sous la puce ESP8266 pour protéger le potentiométre servant à ajuster la tension de sortie. Noter les broches à droite pour la connexion du cable série servant à programmer le module.
- Prêt pour la mise en boîte!
- Fin de la mini série: 9 modules terminés (et presque autant de designs subtilement améliorées d’une fois à l’autre!)
- Préparation pour un premier test une semaine avant le tour de l’île. La batterie et le module sont fixés au cadre, sous la selle. L’inerrupteur magnétique est visible derrière.
- Petits ajustements de dernière minute sur le prototype
- Alors Sébastien, arrives-tu à te connecter aux vélos (par wifi)??? A droite la boîte magique à partir de laquelle l’ensemble des Lumivélos seront commandés.
- Approche ton vélo que l’on puisse le débugger!
- Prototype d’éclair multicolore et connecté!
- Lorsque le réseau Lumivélo n’est pas disponible Il suffit de faire tourner la roue de la girafe pour que la couleur de la bande LED change automatiquement (un des modes de fonctionnement par défaut).
- Maël prêt pour le tour de l’île!
- Les vaillants pilotes d’essais de cette première scéance de test!
- Peux-tu reconfigurer le script init.lua de mon Lumi-éclair STP??
- Rendez-vous vendredi prochain pour le tour de l’île!
- Derniers ajustements la veille du jours J: il s’agit de mettre à jour tous les modules avec les dernières versions de firmware node.mcu et fichiers lua.
- Tous en bleu ciel!
- Oups, un petit problème électrique! Une LED a été écrasée par la chute d’un vélo. Malheureusement toutes celles qui suivent sont rendues inutilisables…
- En avant!
- La vaillante équipe sur le départ!
- Jour J! La flottille se rassemble dans la ruelle derrière chez Annie et Sébastien.
- Enfin les derniers essais avec presque tous les modules! Le tour de l’île est dans une vingtaine d’heures!
- Une seconde boîte magique est préparée en « backup ».
- Ici une baguette magique!
- Montage des décorations sur les vélos… La fatigue commence à se faire sentir!
- En avant pour l’aventure!
- Ohlala, ca va vite! Petite pause en cours de route.
- Il y a maintenant deux responsables pour changer les lumières de toute la troupe!
- Psychédélique!
- Annie version « pleins feux »!
- L’aprés tour de l’île: les rues paraissent bien calmes sans les milliers de vélos qui circulent encore à quelques rues de là…
- Sébastien fait une démonstration: quelques dixièmes de secondes suffisent pour changer d’une séquence à l’autre!
- Done! Yahoooooooooo!
- L’équipe Lumivélo après!
- …encore…
- …et encore…
- …et toujours…
- Aprés une dernière semaine sur les chapeaux de roues on prend enfin le temps d’admirer les montages d’un peu plus près.
- La boîte magique a fonctionné sans relâche pendant environ 3 heures. Les vélos les plus lumineux (300 LEDs) eux ont tenu environ 2 heures 30.
Encore de bons vieux (et néanmoins fatigants) gifs animés! Ambiance disco garantie!
Vidéos
Pour en faire un!
Tout le code Pi + Arduino + lua est disponible sur Github:
https://github.com/sebascabot/lumivelo
Laissez un commentaire si vous avez des questions!
(253)