Créez de superbes animations LED pilotées par le Web avec Raspberry Pi et Arduino
Composants et fournitures
![]() |
|
× | 1 | |||
![]() |
|
× | 1 | |||
![]() |
|
× | 1 |
Applications et services en ligne
![]() |
|
À propos du projet
Vue d'ensemble du projet
Arduino Light Animation (ALA) est une bibliothèque Arduino pour contrôler des LEDs et exécuter des animations colorées avec un minimum d'effort. La bibliothèque fournit plus de 30 animations prédéfinies et plusieurs palettes de couleurs. Pour plus d'informations sur la bibliothèque ALA, vous pouvez visiter mon blog.
Ce projet introduit une carte Raspberry Pi 3 qui fournira une page web permettant de contrôler les animations, les couleurs et la vitesse depuis un smartphone ou un PC en utilisant le navigateur web. Voici une courte vidéo d'AlaWeb en action.
Il y a peu de composants nécessaires pour ce projet.
- Bandeau LED RGB WS8212 : Ce bandeau contient plusieurs LEDs RGB qui peuvent être adressées individuellement via une interface à un fil, vous donnant un contrôle total sur la couleur de chaque LED RGB.
- Arduino : La célèbre carte microcontrôleur exécutera ma bibliothèque ALA pour piloter le bandeau LED en recevant les commandes du Raspberry Pi via le port série USB. Vous pouvez utiliser Arduino Uno, Nano et Mega.
- Raspberry Pi : Ce petit PC fournira la page web pour contrôler les paramètres d'éclairage et d'animation.
Le projet est assez simple si vous êtes familier avec les cartes Arduino et Raspberry Pi. J'ai divisé le projet en deux étapes pour vous guider dans le processus de configuration.
Câblage
Les bandeaux LED WS8213 sont très faciles à connecter. Vous avez juste besoin de suffisamment de puissance pour piloter toutes ces LEDs. Pour de très courts bandeaux (pas plus de 10 LEDs), vous pouvez même les alimenter directement depuis votre port USB, mais pour des bandeaux plus longs, vous devez fournir une bonne source d'alimentation. Comme point de départ, je suggère d'utiliser la broche 5V de l'Arduino pour alimenter le bandeau LED comme vous pouvez le voir dans la vidéo ci-dessus.
- Broche GND Arduino vers GND WS2812
- Broche 5V Arduino vers 5V WS2812
- Broche 6 Arduino vers broche Ctrl/Din WS2812

Si vous voulez piloter plus de pixels, vous devez fournir plus de puissance. Le calcul est simple. Chaque LED RGB consomme 60mA au blanc plein. Par exemple, pour piloter un bandeau de 2 m de long avec 60 LED/mètre, vous aurez besoin d'une alimentation 5V fournissant 2m * 60pixel/m * 60mA = 7,2 A.
Connectez votre alimentation, la carte Arduino et le bandeau WS8212 comme ceci.
- Masse alimentation vers GND Arduino et GND WS2812
- 5V alimentation vers broche 5V Arduino et 5V WS2812
- Broche 6 Arduino vers broche CTRL WS2812

Notez qu'en alimentant la broche 5V de l'Arduino, vous alimentez l'Arduino, donc vous n'avez pas besoin de le connecter à une seconde source d'alimentation sur le connecteur barillet. Soyez très prudent avec ce schéma de connexion car la broche 5V contourne le régulateur de tension et les protections. Pour plus de détails, vous pouvez lire ce guide.
Pour plus de détails sur le schéma de câblage des bandeaux LED WS8212, lisez ce guide.
Configuration Arduino
Connectez votre carte Arduino au port USB de votre PC. Ouvrez l'IDE Arduino et lancez le Gestionnaire de bibliothèques (Croquis > Inclure une bibliothèque > Gérer les bibliothèques) pour installer la dernière bibliothèque ALA.
Ouvrez l'exemple RgbStripSerial (Fichiers > Exemples > ALA > RgbStripSerial) et vérifiez que la définition de la constante NUM_PIXELS correspond au nombre de LEDs dans votre bandeau RGB. Rappelez-vous que si vous voulez piloter plus de 10 pixels, vous devez utiliser le schéma de connexion amélioré.
Vous pouvez maintenant téléverser le sketch sur votre carte en appuyant sur Ctrl+U depuis l'IDE Arduino ou en sélectionnant l'action Téléverser dans le menu Croquis. Si vous avez des problèmes pour téléverser le sketch, vérifiez le type de carte et le port dans le menu Outils.
Ouvrez le Moniteur Série Arduino (Outils > Moniteur Série) et vous verrez un message de bienvenue comme celui-ci.

Réglez « Newline » comme fin de ligne en bas à droite et assurez-vous que le débit est réglé sur 9600.
Essayez maintenant les commandes suivantes (en gras) sans espaces :
- A=101 - allume les LEDs
- A=251 - lance une animation « scanner Larson »
- P=2 - définit une palette arc-en-ciel
- A=242 - une autre animation
C'est cool, non ?
Vous pouvez expérimenter les différentes commandes et combinaisons en suivant cette courte référence :
- A=[code animation] - Définit l'animation. Les codes d'animation disponibles sont listés dans le fichier d'en-tête AlaLed.h.
- B=[luminosité] - Définit la luminosité. Doit être dans l'intervalle [0-100].
- D=[durée] - Définit la durée en millisecondes du cycle d'animation. Les valeurs standards sont entre 500 et 5000.
- C=[couleur] - Définit la couleur. Doit être une représentation RGB hexadécimale comme E8A240.
- P=[palette] - Définit la palette. Doit être dans l'intervalle [0-5].
Contrôlons maintenant les animations depuis votre smartphone.
Configuration du Raspberry Pi
Dans cette partie du projet, nous allons configurer la carte Raspberry Pi pour faire tourner un petit serveur web pour contrôler le bandeau LED depuis un navigateur web. Notez que la même application peut tourner sur n'importe quel PC avec Python 3 installé.
Prérequis : votre Raspberry Pi est déjà configuré et tourne sous le dernier Raspbian OS (j'ai testé avec Stretch) et est connecté à Internet.
Nous devons d'abord installer quelques bibliothèques pour Python 3 avec la commande suivante :
sudo pip3 install pyserial flask
Créez un répertoire personnel pour votre projet :
mkdir /home/pi/AlaWeb
cd /home/pi/AlaWeb
Téléchargez le dépôt git AlaWeb dans le répertoire LightStrip et extrayez-le.
wget https://github.com/bportaluri/AlaWeb/archive/master.zip
unzip master.zip
Tout le logiciel est maintenant prêt et configuré. Connectez le port USB de l'Arduino au Raspberry Pi. L'application AlaWeb que vous venez de télécharger communiquera avec la carte Arduino via la connexion série USB.
cd AlaWeb-master
sudo python3 AlaWeb.py
L'application AlaWeb listera tous les ports série USB et essaiera de détecter l'Arduino automatiquement. Si elle continue de boucler, interrompez l'exécution et essayez de passer le nom du port comme suit (en remplaçant l'id du port selon vos besoins) :
sudo python3 AlaWeb.py /dev/ttyACM0
Si tout va bien, vous devriez voir quelque chose comme ceci.

Ouvrez un navigateur web et connectez-vous à l'URL affichée. Vous obtiendrez une page web pleine de boutons permettant de contrôler le bandeau LED depuis un navigateur web.
Amusez-vous bien !

Code
AlaWeb
AlaWeb est le minuscule serveur web écrit en Python et Flask pour contrôler les animations depuis un navigateur web.
https://github.com/bportaluri/AlaWeb
ALA
Arduino Light Animation (ALA) est une bibliothèque pour cartes Arduino pour simplifier le développement d'animations lumineuses utilisant des LEDs et des bandeaux LED. Visitez cette page pour plus de détails : https://yaab-arduino.blogspot.it/p/ala.html
https://github.com/bportaluri/ALA
Schémas
Processus de fabrication
- Construire un système de détection d'incendie rapide et fiable avec Samsung SAMI, Arduino UNO et Raspberry Pi
- Construire un système aéroponique automatisé avec Raspberry Pi et capteur d'humidité
- Construire un robot avec Raspberry Pi et Python : Guide complet
- Construire un robot piloté par Internet avec streaming vidéo Arduino & Raspberry Pi
- gatoBot : Robot Raspberry Pi Zero W piloté par web avec vidéo en direct
- Panneau de contrôle Arduino Nano pour Flight Simulator 2020 – Affichage LCD et CDI
- Panneau commutateurs et LED pour Microsoft Flight Simulator 2020 basé sur Arduino
- Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
- Construire un robot quadrupède Arduino intelligent : guide étape par étape



