Module Python stripleds
Introduction
Le module Python stripleds
est conçu pour piloter un ruban LED WS2812 connecté à un Arduino. Il permet de charger, configurer et exécuter des animations lumineuses complexes à partir de fichiers de définition textuels. Ce manuel inclut un exemple détaillé de fichier texte compatible avec la méthode load
.
Prérequis
Matériel
- Un Arduino (par ex. Mega, Uno, Nano) connecté à un ruban LED WS2812.
- Un ruban LED WS2812 avec alimentation adaptée au nombre de LEDs.
- Connexion USB entre l’Arduino et l’ordinateur.
Logiciel
- Python 3.6 ou supérieur.
- Installation de la bibliothèque
pyserial
:
3. Code C préchargé sur l’Arduino pour interpréter les commandes suivantes :
- CLEAR : Réinitialiser les animations.
- ADD <définition> : Ajouter une définition (animation, tableau, ou scène).
- START <scene_id> : Démarrer une scène.
- STOP : Arrêter toutes les animations en cours.
- BRIGHTNESS <valeur> : Régler la luminosité.
- STATUS : Obtenir l’état actuel.
Initialisation
Création de l’Objet
Paramètres
port
: Port série de l’Arduino (ex. :COM3
ou/dev/ttyUSB0
).baud_rate
: Taux de transfert série (par défaut : 9600).leds_number
: Nombre total de LEDs sur le ruban.run
: Active l’envoi de commandes série siTrue
.debug
: Affiche les commandes dans la console siTrue
.
Méthodes Disponibles
1. Effacer les Définitions : clear_definitions()
Réinitialise les définitions (animations, tableaux, scènes) sur l’Arduino.
2. Ajouter une Définition : add_definition(definition)
Ajoute une définition (animation, tableau, ou scène).
- Paramètre
definition
: Une chaîne de texte interprétée par l’Arduino.
Exemple :
3. Démarrer une Scène : start_scene(scene_id)
Démarre une scène spécifique.
- Paramètre
scene_id
: Identifiant de la scène (par ex.,s1
).
Exemple :
4. Arrêter les Animations : stop_scene()
Arrête toutes les animations en cours.
5. Régler la Luminosité : set_brightness(brightness)
Définit l’intensité lumineuse (valeur de 0 à 255).
Exemple :
6. Obtenir le Statut : get_status()
Récupère des informations sur l’état actuel du système.
Exemple :
7. Charger un Fichier de Définitions : load(definitions_path)
Charge un fichier texte contenant des définitions d’animations, tableaux et scènes.
Format d’un Fichier de Définitions
Un fichier de définitions contient trois types d’éléments :
- Animations (
aX
) : Définitions des animations appliquées à un groupe de LEDs. - Tableaux (
tX
) : Combinaisons de plusieurs animations avec durée. - Scènes (
sX
) : Combinaisons de tableaux exécutés en séquence.
Exemple de Fichier Compatible
Chargement du Fichier
Le fichier peut inclure des commentaires (lignes commençant par #
).
Les lignes vides ou les définitions incorrectes seront ignorées.
8. Fermer la Connexion : close()
Ferme le port série proprement.
Exemple Complet
Conseils Pratiques
- Validation des Définitions : Avant d’exécuter une animation, assurez-vous que le fichier de définitions correspond aux fonctionnalités implémentées dans le firmware Arduino.
- Test de Communication Série : Utilisez un terminal série pour vérifier les commandes envoyées et leur réponse.
- Gestion de l’Alimentation : Assurez-vous que votre alimentation est suffisante pour le nombre de LEDs configurées.
Manuel d’utilisation du firmware « stripleds »
Introduction
Le firmware « stripleds » contrôle un ruban LED WS2812 pour générer des animations lumineuses personnalisées. Il est conçu pour être utilisé sur une plateforme Arduino (ex. Mega), avec la bibliothèque FastLED. Ce manuel décrit en détail les fonctionnalités, la structure et les commandes pour exploiter efficacement le programme.
Caractéristiques principales
- Animations lumineuses personnalisées :
- Blink (clignotement)
- Static (couleur fixe)
- Rainbow (arc-en-ciel)
- Fire (feu)
- Heartbeat (battement de cœur)
- Snowfall (chute de neige)
- Smoke (fumée)
- Caterpillar (chenillard)
- Définition des animations :
- Jusqu’à 16 animations simultanées.
- Possibilité de regrouper des animations dans des tableaux.
- Organisation des tableaux dans des scènes.
- Commandes en temps réel :
- Gestion via le port série.
- Commandes pour ajouter, démarrer ou arrêter des scènes et animations.
- Support d’effets avancés :
- Palette de couleurs prédéfinies.
- Gestion des effets dynamiques (flocons, fumée, etc.).
- Configuration flexible :
- Jusqu’à 300 LEDs supportées (modifiable dans le code).
- Paramètres des animations adaptables (zones, couleurs, durées, etc.).
Installation
Matériel requis :
- Microcontrôleur : Arduino Mega ou équivalent.
- Ruban LED WS2812 (jusqu’à 300 LEDs).
- Résistance 470 Ω entre le DATA_PIN (broche 5) et l’entrée du ruban LED.
- Condensateur 1000 µF (facultatif, pour stabiliser l’alimentation).
Connexion :
- Connectez le DATA_PIN (broche 5) à l’entrée Data du ruban.
- Branchez le GND de l’Arduino au GND du ruban.
- Connectez une alimentation externe (adaptée au nombre de LEDs).
Utilisation du programme
Démarrage :
- Téléversez le programme sur l’Arduino via l’IDE Arduino.
- Ouvrez le moniteur série, configurez le baudrate à 9600.
- Le programme est prêt à recevoir des commandes série.
Commandes disponibles
1. Gestion des définitions
CLEAR
- Supprime toutes les animations, tableaux et scènes.
- Réponse :
OK Cleared definitions
ADD <definition>
- Ajoute une animation, un tableau ou une scène.
- Format des définitions :
- Animation :
id,animation,type,start,end,period,color1,color2
- Tableau :
id,tableau,duration,animation1,animation2,...
- Scène :
id,scene,tableau1,tableau2,...
- Animation :
- Exemple :
ADD a1,animation,blink,0,10,500,red,blue
- Réponse :
OK Animation added
ouER Invalid definition
2. Gestion des scènes
START <scene_id>
- Lance l’exécution d’une scène.
- Réponse :
OK Started scene
ouER Scene not found
STOP
- Arrête la scène en cours.
- Réponse :
OK Stopped scene
3. État du programme
STATUS
- Vérifie si une scène est en cours.
- Réponse :
running
ouidle
4. Luminosité globale
BRIGHTNESS <value>
- Définit la luminosité du ruban (0 à 255).
- Exemple :
BRIGHTNESS 128
- Réponse :
OK 128
Définitions détaillées
1. Animation
Champ | Description |
---|---|
id | Identifiant unique (ex. a1 ) |
type | Type d’animation (blink , static , etc.) |
start | LED de début |
end | LED de fin |
period | Période en millisecondes |
color1 | Couleur principale |
color2 | Couleur secondaire |
Exemple : ADD a1,animation,blink,0,50,500,red,blue
2. Tableau
Champ | Description |
---|---|
id | Identifiant unique (ex. t1 ) |
duration | Durée d’exécution (secondes) |
animations | Liste des animations à inclure |
Exemple : ADD t1,tableau,30,a1,a2
3. Scène
Champ | Description |
---|---|
id | Identifiant unique (ex. s1 ) |
tableaux | Liste des tableaux à exécuter |
Exemple : ADD s1,scene,t1,t2
Effets supportés
Effet | Description |
---|---|
blink | LEDs alternent entre deux couleurs. |
static | LEDs affichent une couleur fixe. |
rainbow | Effet arc-en-ciel sur la zone spécifiée. |
fire | Simule des flammes réalistes. |
heartbeat | Simule un battement de cœur. |
snowfall | Simule la chute de neige. |
smoke | Simule des particules de fumée en mouvement. |
caterpillar | Chenillard avec des couleurs dynamiques. |
Maintenance et dépannage
- LEDs éteintes :
- Vérifiez l’alimentation et les connexions.
- Envoyez
STATUS
pour vérifier l’état du programme.
- Animation incorrecte :
- Assurez-vous que les définitions sont valides.
- Supprimez tout avec
CLEAR
et réessayez.
- Problèmes de performance :
- Réduisez le nombre de LEDs ou la fréquence des animations.