🛠 Piloter les GPIO et lire l'IMU sur XIAO STM32C5

Seeed Studio XIAO STM32C5 · intermediaire · Apprenez à configurer les broches GPIO et à lire les données du capteur inertielle LSM6DS3TR-C intégré.

Objectifs

Ce tutoriel vise à comprendre la gestion des entrées-sorties numériques (GPIO) et l'interaction avec le capteur inertielle 6 axes LSM6DS3TR-C présent sur la carte XIAO STM32C5. Nous allons configurer une LED pour l'indicateur visuel et lire les données d'accélération via le bus I2C interne. Ce niveau intermédiaire suppose une familiarité avec la compilation de code embarqué.

Matériel nécessaire

Étapes

  1. Préparez votre environnement de développement. Si vous utilisez STM32CubeIDE, créez un nouveau projet en sélectionnant le microcontrôleur STM32C5A3CG. Assurez-vous que la fréquence système est bien réglée sur 144 MHz pour exploiter la pleine puissance du cœur Arm Cortex-M33.
  1. Configurez les périphériques dans le CubeMX. Activez l'interface I2C connectée au LSM6DS3TR-C. Notez que ce capteur est directement câblé sur la carte, il n'y a pas de soudure à effectuer. Configurez également un GPIO en mode sortie pour une LED (par exemple, la LED utilisateur si disponible, ou une broche libre comme D0).
  1. Générez le code et ouvrez le fichier principal (main.c). Incluez les bibliothèques nécessaires pour le pilote du LSM6DS3TR-C. Si vous utilisez Zephyr RTOS via PlatformIO, ajoutez les dépendances du driver du capteur dans votre fichier platformio.ini.
  1. Initialisez le système et le capteur. Dans la fonction main, appelez la fonction d'initialisation du bus I2C, puis celle du capteur inertielle. Vérifiez que le capteur répond correctement en lisant son ID de périphérique.
  1. Implémentez la boucle de lecture. Lisez les valeurs d'accélération (X, Y, Z) en continu. Pour afficher ces données, configurez l'UART (via USB-C) en mode Full-Speed et envoyez les valeurs formatées sur le moniteur série.
  1. Ajoutez une logique de réaction GPIO. Par exemple, si la valeur d'accélération Z dépasse un seuil (simulant un choc ou une inclinaison), allumez la LED configurée à l'étape 2 en mettant la broche à l'état haut (HAL_GPIO_WritePin). Éteignez-la sinon.

Vérification

Ouvrez le moniteur série de votre IDE à 115200 bauds. Vous devriez voir les valeurs d'accélération défiler. En inclinant ou tapotant légèrement la carte, observez la variation des chiffres et l'allumage instantané de la LED, confirmant que la liaison entre la lecture du capteur et la commande GPIO est fonctionnelle.

Pour aller plus loin

Explorez le circuit de chauffage programmable par PWM du LSM6DS3TR-C pour réduire la dérive thermique. Configurez un timer PWM pour activer le chauffage et observez la stabilisation des mesures après quelques minutes. Vous pouvez également explorer les deux contrôleurs CAN FD, en utilisant le FDCAN2 avec le transceiver embarqué pour communiquer avec d'autres nœuds CAN.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels