🛠 Contrôler un capteur I2C avec l'ESP32-P4 Hydra
Objectifs
Ce tutoriel vous guide dans l'utilisation des interfaces de communication série, spécifiquement le bus I2C, sur la carte Adafruit Metro ESP32-P4 Hydra. Contrairement aux microcontrôleurs classiques, le P4 offre une grande flexibilité dans l'assignation des broches. Vous apprendrez à activer le périphérique I2C, à connecter un capteur standard (comme un BME280 ou un écran OLED) via le connecteur STEMMA QT ou les broches GPIO, et à interpréter les données brutes. L'objectif est de comprendre la gestion des registres et la communication maître-esclave sur cette architecture RISC-V haute performance.
Matériel nécessaire
- Carte Adafruit Metro ESP32-P4 Hydra
- Câble USB-C pour l'alimentation et le flash
- Un capteur ou module compatible I2C (ex: BME280, MPU6050) avec connecteur STEMMA QT ou fils Dupont
- Ordinateur avec Arduino IDE ou PlatformIO installé
Étapes
- Installation de l'environnement : Assurez-vous que le support ESP32-P4 est bien installé dans votre IDE. Sélectionnez le port série correspondant à la carte.
- Câblage physique : Branchez le capteur sur le connecteur STEMMA QT (VCC, GND, SDA, SCL) ou utilisez les broches GPIO dédiées à l'I2C par défaut. Vérifiez la tension d'alimentation (3,3 V).
- Initialisation du code : Dans votre programme, incluez les bibliothèques nécessaires (ex: Wire.h). Définissez les broches SDA et SCL si vous n'utilisez pas les valeurs par défaut.
- Configuration du bus : Appelez la fonction
Wire.begin()pour initialiser le bus I2C. Le P4 gère les interruptions matérielles pour optimiser les transferts. - Lecture des données : Utilisez
Wire.requestFrom()pour demander des données au capteur. Lisez les octets reçus dans une boucle. - Traitement : Convertissez les octets bruts en valeurs physiques (température, humidité) selon la datasheet du capteur.
Vérification
Ouvrez le moniteur série à une vitesse de 115200 bauds. Vous devriez voir les valeurs du capteur s'afficher régulièrement. Si aucune donnée n'apparaît, vérifiez le câblage (SDA/SCL inversés) et l'adresse I2C du périphérique.
Pour aller plus loin
Explorez l'utilisation du DMA (Direct Memory Access) pour transférer des données I2C sans solliciter le CPU principal, libérant ainsi les cœurs RISC-V pour des tâches de calcul intensif ou le traitement vidéo via MIPI.
Autres tutoriels pour cette carte
- Premier branchement et mise en route de la Metro ESP32-P4 Hydra
- Contrôler les GPIO et un affichage simple sur Metro ESP32-P4 Hydra
- Stocker des données sur la carte Adafruit Metro ESP32-P4 Hydra
- Premier démarrage de la Metro ESP32-P4 Hydra
- Mise en route avancée : Alimentation, USB et Debug sur ESP32-P4 Hydra
- Automatisation de stockage via USB High-Speed sur ESP32-P4 Hydra
Exemples de code pour cette carte
esp32-p4-hydra-gpio-blink.inoC++ (Arduino)esp32-p4-hydra-mpu6050-i2c.inoC++ (Arduino)esp32-p4-hydra-wifi-http.inoC++ (Arduino)esp32-p4-hydra-sdcard-write.inoC++ (Arduino)esp32-p4-hydra-usb-host-mouse.inoC++ (Arduino)esp32-p4-hydra-gpio-led-blink.inoC++ (Arduino)