.vscode | ||
.gitignore | ||
CMakeLists.txt | ||
main.c | ||
pico_sdk_import.cmake | ||
Readme.md | ||
SelectionCapteur.c | ||
SelectionCapteur.h | ||
vl53l1_platform.c | ||
vl53l1_platform.h | ||
vl53l1_types.h | ||
VL53L1X_api.c | ||
VL53L1X_api.h | ||
VL53L1X_calibration.c | ||
VL53L1X_calibration.h | ||
ws2812.c | ||
ws2812.h | ||
ws2812.pio |
Détection de l'adversaire - 2023
Le code présenté ici sert à la détection de l'adversaire pour les robots de l'équipe Poivron Robotique qui participe à la coupe de France de Robotique. Ce code tourne sur un Raspberry Pi Pico et une carte personnalisé sur laquelle sont banchés 12 capteurs VL53L1X.
Principe de fonctionnement
Les capteurs VL53L1X sont des capteurs I2C dont l'adresse est configurable. Cependant, le capteur revient à son adresse par défaut dès qu'il est éteint ou désactivé par la broche XSHUT
. Le Raspberry Pi Pico est relié à un 74HC4067, qui lui permet de désactiver un capteur à la fois.
Le code utilisé ici repose sur VL53L1X_Raspberry_Pi_Pico et l'exemple pour piloter les LED RGB ws2812 fourni avec le SDK du Raspberry Pi Pico.
Initialisation
La première étape de l'initialisation consiste à changer tous les capteurs d'adresses en une seule commande I2C.
La seconde étape consiste, pour chaque capteur, à le désactiver puis à le réactiver à l'aide du 74HC4067 et de la boche XSHUT
du composant. Ce faisant, il reprend son adresse par défaut et il est le seul à cette adresse. Ainsi il est possible, via le bus I2C de lui attribuer une adresse unique.
Démo
Une fois branchée à un ordinateur, le Raspberry Pi Pico propose un menu par la liaison USB/série.
- La commande "i" initialise les capteurs et change d'état les LEDs en fonction du succès de l'initialisation.
- La commande "j" démarre une lecture continue et renvoie les données des capteurs dans un format compatible avec Teleplot.