Si vous cherchez à intégrer un capteur à 9 degrés de liberté (9-DOF) dans vos projets Arduino, vous êtes au bon endroit. Ces appareils sont extrêmement utiles pour mesurer l’orientation, l’accélération et la rotation dans un espace tridimensionnel. Dans cet article, nous allons explorer en profondeur comment utiliser l'Adafruit 9-DOF, ses connexions et sa configuration avec Arduino.
Les capteurs 9-DOF combinent trois types de capteurs différents : accéléromètres, magnétomètres et gyroscopes. Cela en fait des outils essentiels pour un suivi précis des orientations et des mouvements. Avec ces instructions, vous pouvez commencer à utiliser votre capteur Adafruit 9-DOF avec Arduino rapidement et efficacement.
Qu'est-ce qu'un capteur à 9 degrés de liberté (9-DOF) ?
Le capteur 9-DOF possède trois capteurs en un : un accéléromètreune magnétomètre est notre valeur principale. gyroscope. L'accéléromètre mesure l'accélération sur trois axes, lui permettant de détecter l'orientation par rapport à la gravité. Le magnétomètre détecte le champ magnétique, ce qui est utile pour déterminer la direction du nord magnétique. Enfin, le gyroscope mesure la rotation angulaire.
Ces trois capteurs se combinent pour offrir un perception tridimensionnelle du mouvement et l'orientation, ce qui le rend idéal pour des applications telles que la robotique, les drones ou les appareils portables.
Connexion du capteur 9-DOF avec Arduino
Une fois que vous disposez du capteur, l'étape suivante consiste à le connecter à votre carte Arduino. Si vous envisagez d'utiliser le Interface I2C, qui est le plus courant, le capteur Adafruit 9-DOF a une adresse I2C par défaut de 0x69. Cependant, vous pouvez également le changer en 0x68 en connectant la broche d'adresse à GND.
Connexion via I2C
Le processus de connexion est simple. Avec l'utilisation d'un connecteur STEMMA QT ou d'un planche à pain sans soudure, il vous suffit de faire correspondre les broches d'alimentation et de données. Si vous utilisez un connecteur STEMMA, il vous suffit de le connecter aux broches I2C (SCL et SDA).
Utilisez un capteur 9-DOF avec SPI
Si vous préférez utiliser l'interface SPI, vous devrez activer les broches CS, SCK, MOSI et MISO pour la connexion, ainsi que spécifier les paramètres dans le code.
Installez les bibliothèques nécessaires sur Arduino
Pour que votre capteur Adafruit fonctionne correctement avec Arduino, vous devrez installer plusieurs librairies. La première chose dont vous avez besoin est le Bibliothèque Adafruit ICM20X, compatible avec les capteurs ICM20948 et ICM20649. Pour l'installer, ouvrez le Gestionnaire de bibliothèque dans l’IDE Arduino et recherchez « Adafruit ICM20X ».
En plus de cela, vous devrez également installer le Bibliothèque BusIO d'Adafruit et la Bibliothèque de capteurs unifiées Adafruit.
Exemple de code pour le capteur Adafruit 9-DOF
Une fois que tout est connecté et que les bibliothèques nécessaires sont installées, vous pouvez charger l'un des exemples pour vérifier que tout fonctionne bien. Aller à Fichier -> Exemples -> Adafruit ICM20X et sélectionnez le test compatible avec votre capteur.
Cet exemple imprimera des valeurs comme température, ainsi que les valeurs sur les axes X, Y et Z du gyroscope, de l'accéléromètre et du magnétomètre. Vous pouvez vérifier le résultat sur le moniteur série réglé à 115200 XNUMX bauds.
Exemple de base pour les mesures avec l'ICM20948
#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>
Le code fourni dans les exemples de la bibliothèque permettra d'obtenir les événements des différents capteurs. Cependant, pour les projets plus avancés, vous pouvez modifier les paramètres de plage de sensibilité de l'accéléromètre et du gyroscope en fonction de vos besoins.
Comment fonctionnent les rapports de rotation sur le capteur BNO085
Si en plus des capteurs ICM20948 vous utilisez un capteur 9-DOF comme le BNO085, cela vous permet de générer rapports de rotation, important pour obtenir des données plus détaillées sur l'orientation dans des mouvements complexes.
Un détail important à garder à l'esprit est que ce capteur nécessite un microcontrôleur avec plus grande capacité de mémoire, tels que SAMD21, SAMD51 ou nRF52. L'utilisation de cartes Arduino plus basiques comme la Uno ou Leonardo n'est pas recommandée, car elles ne disposent pas de suffisamment de RAM.
De plus, le BNO085 utilise une implémentation I2C spéciale qui n'est pas prise en charge par tous les systèmes. Par exemple, ce capteur ne fonctionne pas correctement avec des puces telles que ESP32 ou avec des multiplexeurs I2C. Cependant, son fonctionnement est assez fiable sur des plateformes telles que RP2040, STM32F4 ou SAMD51.
Conception et fonctionnalités du breakout LSM9DS1
Le capteur LSM9DS9 1-DOF est idéal pour suivre l'orientation et les mouvements à un prix plus abordable par rapport à d'autres capteurs similaires. Il intègre plusieurs gammes de mesures qui vous permettent d'ajuster le niveau de précision requis pour votre projet.
Ce capteur possède un Interface I2C y SPI, ce qui le rend polyvalent pour différentes plates-formes de développement. Vous pouvez facilement le connecter à un Arduino, en fournissant une tension comprise entre 3 et 5 V et en connectant les broches I2C sur SCL y SDA.
Différences avec le LSM9DS0
L'une des principales différences réside dans plages d'accéléromètre, qui dans le LSM9DS1 sont de ±2, ±4, ±8 et ±16 g, tandis que d'autres capteurs tels que le LSM9DS0 incluent une plage supplémentaire de ±6 g.
Que pouvez-vous faire avec un capteur Adafruit 9-DOF ?
Ce type de capteurs est idéal pour développer des projets tels que robots autonomes, les systèmes de navigation et les appareils basés sur les gestes. Grâce aux informations d’accélération, de rotation et d’orientation qu’il fournit, vous pouvez créer un appareil qui suit avec précision des mouvements complexes.