Repository navigation
code_explanation
Laxenarde edited this page Aug 7, 2025
·
4 revisions
Ce projet permet de transmettre et recevoir des commandes pour piloter un ornithoptère (ou tout autre dispositif) à l'aide de modules radio NRF24L01 et d'un microcontrôleur compatible MicroPython (ESP32, ESP8266, etc).
- 🚀 Guide de démarrage - Installation et première utilisation
- 🔧 Configuration avancée - Installation et configuration détaillée
- 💻 Mode simulation PC - Testez sans ESP32 !
- 🔧 Scripts et outils - Automatisation du déploiement
- 🛠️ Dépannage - Résolution de problèmes
- Lecture de deux joysticks analogiques et de deux boutons.
- Transmission des valeurs lues via un module NRF24L01.
- Réception des commandes sur un autre module NRF24L01.
- Contrôle d'un moteur via la réception des commandes.
- Gestion de logs sur la carte.
- Abstraction des périphériques (joystick, bouton, servo-moteur) via des classes dédiées.
- Mode simulation PC : Testez sans ESP32 en utilisant des ports série virtuels.
-
source/programme_antenne_emission.py: Code principal pour l'émetteur. Lit les joysticks et boutons, envoie les données via la classeAntenne. -
source/programme_antenne_reception.py: Code principal pour le récepteur. Reçoit les données, les interprète et contrôle un moteur. -
source/antenne.py: ClasseAntennepour gérer la communication radio (émission/réception) avec le NRF24L01. -
source/components.py: Classes pour abstraire les périphériques matériels :-
Joystick: lecture de deux axes analogiques. -
Bouton: gestion d'un bouton avec pull-up. -
ServoMoteur: contrôle d'un servo-moteur via PWM. -
Moteur: contrôle d'un moteur via PWM.
-
-
source/nrf24l01.py: Pilote bas niveau pour le module radio NRF24L01. -
source/logger.py: ClasseLoggerpour enregistrer des logs sur la carte.
- Connecter deux joysticks (axes X/Y sur les broches analogiques) et deux boutons.
- Lancer
programme_antenne_emission.pysur la carte émettrice. - Les valeurs des joysticks et boutons sont envoyées en continu via le module NRF24L01.
- Connecter un moteur (ou tout autre actionneur) sur la broche prévue.
- Lancer
programme_antenne_reception.pysur la carte réceptrice. - Les commandes reçues pilotent le moteur selon la valeur du bouton.
Utilisez la classe Logger pour enregistrer des événements ou erreurs dans un fichier texte sur la carte.
-
scripts/deploy.sh: Automatisation du déploiement du code sur l'ESP (sélection du programme, upload, nettoyage des fichiers, renommage en main.py). -
scripts/start.sh: Ouverture automatique d'une session tmux avec les terminaux série pour surveiller les deux ESP et faciliter le développement. -
scripts/setup-precommit.sh: Installation automatique de l'environnement de développement avec pre-commit. -
scripts/run-tests.sh: Exécution des tests unitaires.
- MicroPython
- Modules matériels : NRF24L01, joysticks analogiques, boutons, moteur ou servo-moteur.
- Les broches utilisées sont configurables dans les fichiers Python.
- Par défaut :
- Joystick 1 : X=34, Y=35 ; bouton 1 : 33
- Joystick 2 : X=36, Y=39 ; bouton 2 : 32
- NRF24L01 : SPI1 (SCK=18, MOSI=23, MISO=19, CE=26, CSN=27)
- Moteur : 5
- Modifiez les broches dans les constructeurs des classes selon votre câblage.
- Adaptez le traitement des messages reçus dans
programme_antenne_reception.pyselon vos besoins.
Projet développé pour un usage pédagogique ou hobby autour de la radio et du contrôle.