ELEGOO 4 Roues sous MicroPython avec Raspberry-Pi Pico (suite et fin)
Bonjour à tous,
il y a quelques semaines, je vous présentais un projet de conversion d'un véhicule ELEGOO vers MicroPython.
Le but étant de remplacer le codage C Arduino par du codage Python au sein de l'institut Saint-Anne de Gosselie (ISA).
Elegoo sous MicroPython - un projet MCHobby |
Le projet est maintenant achevé et dispose d'une carte d'interface pour Raspberry-Pi Pico et d'une bibliothèque MicroPython.
Si vous ne connaissez pas encore MicroPython, je vous recommande chaleureusement le livre Raspberry-Pi Pico et Pico W (aussi disponible aux editions ENI).
Le Spécial Eté du magazine Programmez.fr contiendra un dossier spécialement dédié à MicroPython et Pico.
La carte Elegoo-4WD-Pico
Les extensions et schéma présentées dans l'article précédent ont pris forme sur cette carte spécialement conçue pour ce projet.
Adaptateur ELEGOO-4WD-PICO |
Une fois les divers composants installés, voici à quoi ressemble la carte une fois équipée des composants.
Adaptateur ELEGOO-4WD-PICO |
Le petit connecteur Qwiic/StemmaQt en bas à gauche permet de connecter facilement des extensions compatibles Qwiic... comme par exemple un SerLCD 16x2 de SparkFun (comme sur l'imahe.
Elegoo avec Ecran SerLCD de SparkFun (interface Qwiic) |
Bibliothèque
La bibliothèque micropython-elegoo-4wd permet de prendre facilement le contrôle du Rover avec quelques lignes de code Python.
La classe Rover (rover.py) permet de:
- Commander les moteurs: rover.motors.forward() , rover.motors.stop(), rover.motors.right() pour tourner à droite, etc.
Voir les détails de test_motor.py - Detecter la ligne: rover.read_line() retourne une liste avec l'état des 3 capteurs [gauche,centrée,droite] .
Voir les détails de test_line.py . - Detecter un obstacle: le capteur ultrasonique HC-SR04 est ici utiliser pour rapporter la distance d'un objet avec rover.distance.distance_in_cm() .
Voir les détails de test_ultrasonic.py . - Contrôler le servo-moteur: pour orienter le capteur ultrasonique avec rover.servo.angle() .
Voir les détails de test_servo.py .
Enfin, la bibliothèque permet d'accéder de façon uniforme aux bus I2C, UART et SPI que la carte expose sur ses différents connecteurs. Ces références de bus pourront alors être utilisés avec des bibliothèques MicroPython pour contrôler du matériel via UART, bus I2C, bus SPI. La collection esp8266-upy contient de nombreux pilotes et exemples MicroPython.
Voir les exemples test_i2c.py test_serial.py, test_spi.py .
Bonne découverte
Dominique
Écrire un commentaire