LedDroid: Bande de leds personnalisée

image principale LedDroid: Bande de leds personnalisée

Difficulté:

Si vous rêvez de fabriquer un décors lumineux personnalisé à base d'une bande de leds adressables: c'est ici que ça se passe. Dans ce tutoriel vous pourrez commander une bande de leds adressables avec un Raspberry pi. Les bandes de leds adressables permettent de commander chaque led indépendamment des autres car chaque led est associée à un micro-contrôleur. Les animations qu'on peut imaginer sont alors infinies: poursuites, vas-et-viens, fermetures, ouvertures, stroboscope, vagues etc ... dans des millions de configurations colorimétriques différentes: c'est INFINI.

Matériel :

Budget : Non défini

Etape 1 : Le LedDroid en action

une petite démo du LedDroid

Etape 2 : Matériel nécessaire

  • Un Raspberry pi 3 avec Raspbian installé sur un SD card 16Go mini, et son alimentation.

  • 1 afficheur 7 segments à anode commune (attention à ne pas prendre un modèle à cathode commune il ne fonctionnerait pas sur ce circuit), et prévoir 2 rangées de connecteurs femelle dupont 5 pins qui seront soudées sur le circuit pour éviter de souder l'afficheur 7 segments (personnellement j'achète des rangées de 20 qui sont sécables).

  • 1 74HC595N et son support 16 pins à souder: il va commander l'afficher 7 segment.

  • 1 level shifter 74AHCT125, et son support 14 pins à souder: il va convertir les signaux 3v du raspi en 5v pour la bande de leds.

  • 3 boutons poussoirs type no 6mm

  • résistances: 9*220 ohms, 6*10k ohms

  • condensateurs: 2 * 100nF céramique (ils serviront de condensateur de découplage pour les 2 circuits intégrés du montage) + 1 * 470uF pour stabiliser la tension supplémentaire 5v.

  • 1 led 5mm rouge: elle sert à repérer les boutons poussoirs lorsque le circuit est positionné dans un endroit sombre

  • 1 petit interrupteur à glissière ON-ON 3 broches 2,54mm: il permet d'allumer ou d'éteindre la led rouge.

  • 1 bornier 3 broches pas 2,54mm, compatible 10A: on y branchera la bande de leds 3 fils (1 masse, 1 VCC 5v, et au milieu le fil de commande)

  • 1 bornier 2 broches pas 2,54mm, compatible 10A: pour y brancher l'alimentation externe 5v

  • 1 connecteur 2*20pin femelle pas 2,54mm : c'est le connecteur vers le Raspberry pi.

  • 1 bande de leds adressable neopixel, j'ai poté pour celles sur fond noir. Quellques explications sur leur fonctionnement avec un Rasppberry pi: c'est ici

  • 1 alimentation 5V externe, minimum 2A jusqu'à 10A.

  • il faudra prévoir des branchements et raccords pour relier la bande de leds et l'alim 5v aux borniers.

  • Le circuit imprimé à faire fabriquer à partir des fichiers GERBER fournis ci-dessous.

  • Le programme python à télécharger ci-dessous, suivre les instructions de configuration dans l'étape suivante.

Etape 3 : Configuration du système

Télécharger le programme ledDroid.py sur ma page Github (garantie d'avoir la dernière version en cas de correctif publié), et déposez-le dans /home/pi/ (ou n'importe où ailleurs mais adaptez ce qui suit).

Pour pouvoir commander la bande de leds, il faut installer la bibliothèque python fournie par Adafruit en suivant ce guide très simple. Moi j'ai exécuté un simple pip3 install adafruit-circuitpython-neopixel

 Une fois la bibliothèque installée, il faut exécuter le programme python avec des droits admin: donc toujours ajouter "sudo" sinon vous aurez un beau message d'erreur.

 exemple d'exécution en ligne de commande: sudo python3 /home/pi/ledDroid.py

 Si vous souhaitez que le programme démarre automatiquement au démarrage du Raspberry pi, c'est simple sous Raspbian:

  • sudo nano /etc/rc.local pour ouvrir le fichier de configuration de démarrage automatique

  • juste avant la ligne "exit 0" ajouter sudo python3 /home/pi/ledDroid.py & , en supposant que le programme python est déposé dans /home/pi. le petit caractère "&" en fin de ligne est très important: il signifie d’exécuter le pgm en tâche de fond.

  • CTRL-O pour enregistrer, et CTRL-X pour sortir.

  • pour tester: sudo /etc/rc.local et le programme doit se lancer: si vous voyez un "1" apparaître sur l'afficheur 7 segments, c'est bon signe. Appuyez sur le bouton "Confirm" et l'animation n°1 va s’exécuter. Appuyez sur "Off" et le Raspberry va s'éteindre.

  • Au prochain démarrage: le programme s’exécute tout seul.

Etape 4 : Pour aller plus loin

Le programme a été développé en python 3 orienté objet, vous pourrez l'adapter facilement pour créer vos propres animations:

  • La classe SevenDisplay permet de gérer l'affichage sur l'afficheur 7 segments, sous la forme d'un thread. Elle affiche notamment le n° de l'animation choisie entre 1 et 9 et affiche un serpentin animé lors d'une animation en cours.

  • La classe RubanLeds gère les animations sur le ruban de leds, sous forme d'un thread aussi. Il y a plusieurs méthodes qui permettent de créer des poursuites, des ouvertures/fermetures, des animations arc-en-ciel de toutes les couleurs, des stroboscopes etc ... C'est ici que vous pouvez adapter/créer vos propres animations.

  • La classe Application gère la gestion des boutons poussoirs et du port GPIO.

Vous pouvez toujours me joindre sur mon site https://www.papsdroid.fr ou sur ma page facebook si vous avez une idée précise mais ne savez pas comment faire: je m'en occupe avec grand plaisir tant que j'en ai le temps !

Sources :

https://www.papsdroid.fr/post/tutoriel-leddroid


Ces tutoriels devraient vous plaire

vignette Montez facilement votre console de jeu rétrogaming avec RECALBOX !
Montez facilement votre console de jeu rétrogaming avec RECALBOX !
vignette Préparer un fichier pour une découpe et une gravure laser
Préparer un fichier pour une découpe et une gravure laser
vignette Connecter un  écran LCD en I2C
Connecter un écran LCD en I2C

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers