Table des matières:
- Étape 1: Matériel requis:
- Étape 2: connexion matérielle:
- Étape 3: Code pour le suivi des mouvements:
- Étape 4: Candidatures:
Vidéo: Suivi de mouvement avec MPU-6000 et Arduino Nano : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Le MPU-6000 est un capteur de suivi de mouvement à 6 axes qui intègre un accéléromètre à 3 axes et un gyroscope à 3 axes. Ce capteur est capable de suivre efficacement la position et l'emplacement exacts d'un objet dans le plan tridimensionnel. Il peut être utilisé dans les systèmes qui nécessitent une analyse de position avec la plus haute précision.
Dans ce tutoriel, l'interfaçage du module de capteur MPU-6000 avec arduino nano a été illustré. Pour lire les valeurs d'accélération et d'angle de rotation, nous avons utilisé arduino nano avec un adaptateur I2c. Cet adaptateur I2C rend la connexion au module capteur facile et plus fiable.
Étape 1: Matériel requis:
Les matériaux dont nous avons besoin pour atteindre notre objectif comprennent les composants matériels suivants:
1. MPU-6000
2. Arduino Nano
3. Câble I2C
4. Bouclier I2C pour arduino nano
Étape 2: connexion matérielle:
La section de raccordement matériel explique essentiellement les connexions de câblage requises entre le capteur et l'arduino nano. Assurer des connexions correctes est la nécessité de base tout en travaillant sur n'importe quel système pour la sortie souhaitée. Ainsi, les connexions requises sont les suivantes:
Le MPU-6000 fonctionnera sur I2C. Voici l'exemple de schéma de câblage, montrant comment câbler chaque interface du capteur.
Prête à l'emploi, la carte est configurée pour une interface I2C, en tant que telle, nous vous recommandons d'utiliser cette connexion si vous êtes par ailleurs agnostique.
Tout ce dont vous avez besoin, c'est de quatre fils ! Seules quatre connexions sont nécessaires pour les broches Vcc, Gnd, SCL et SDA et celles-ci sont connectées à l'aide d'un câble I2C.
Ces connexions sont illustrées dans les images ci-dessus.
Étape 3: Code pour le suivi des mouvements:
Commençons maintenant par le code arduino.
Lors de l'utilisation du module capteur avec l'arduino, nous incluons la bibliothèque Wire.h. La bibliothèque "Wire" contient les fonctions qui facilitent la communication i2c entre le capteur et la carte arduino.
Le code arduino complet est donné ci-dessous pour la commodité de l'utilisateur:
#comprendre
// L'adresse I2C du MPU-6000 est 0x68 (104)
#define Adr 0x68
void setup()
{
// Initialiser la communication I2C en tant que maître
Fil.begin();
// Initialiser la communication série, définir le débit en bauds = 9600
Serial.begin(9600);
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de configuration du gyroscope
Wire.write(0x1B);
// Plage de pleine échelle = 2000 dps
Wire.write(0x18);
// Arrêter la transmission I2C
Wire.endTransmission();
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de configuration de l'accéléromètre
Wire.write(0x1C);
// Gamme pleine échelle = +/-16g
Wire.write(0x18);
// Arrêter la transmission I2C
Wire.endTransmission();
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de gestion de l'alimentation
Wire.write(0x6B);
// PLL avec référence xGyro
Wire.write(0x01);
// Arrêter la transmission I2C
Wire.endTransmission();
retard (300);
}
boucle vide()
{
données int non signées[6];
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de données
Wire.write(0x3B);
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 6 octets de données
Wire.requestFrom(Adr, 6);
// Lecture de 6 octets de données
if(Fil.disponible() == 6)
{
data[0] = Wire.read();
données[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
données[4] = Wire.read();
données[5] = Wire.read();
}
// Convertir les données
int xAccl = données[0] * 256 + données[1];
int yAccl = données[2] * 256 + données[3];
int zAccl = données[4] * 256 + données[5];
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de données
Wire.write(0x43);
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 6 octets de données
Wire.requestFrom(Adr, 6);
// Lecture de 6 octets de données
if(Fil.disponible() == 6)
{
data[0] = Wire.read();
données[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
données[4] = Wire.read();
données[5] = Wire.read();
}
// Convertir les données
int xGyro = données[0] * 256 + données[1];
int yGyro = données[2] * 256 + données[3];
int zGyro = données[4] * 256 + données[5];
// Sortie des données vers le moniteur série
Serial.print("Accélération dans l'axe X: ");
Serial.println(xAccl);
Serial.print("Accélération dans l'axe Y: ");
Serial.println(yAccl);
Serial.print("Accélération dans l'axe Z: ");
Serial.println(zAccl);
Serial.print("Axe X de rotation: ");
Serial.println(xGyro);
Serial.print("Axe Y de rotation: ");
Serial.println(yGyro);
Serial.print("Axe Z de rotation: ");
Serial.println(zGyro);
retard (500);
}
Dans la bibliothèque de fils Wire.write() et Wire.read() sont utilisés pour écrire les commandes et lire la sortie du capteur.
Serial.print() et Serial.println() sont utilisés pour afficher la sortie du capteur sur le moniteur série de l'IDE Arduino.
La sortie du capteur est montrée dans l'image ci-dessus.
Étape 4: Candidatures:
Le MPU-6000 est un capteur de suivi de mouvement, qui trouve son application dans l'interface de mouvement des smartphones et tablettes. Dans les smartphones, ces capteurs peuvent être utilisés dans des applications telles que les commandes gestuelles pour les applications et le contrôle du téléphone, les jeux améliorés, la réalité augmentée, la capture et la visualisation de photos panoramiques et la navigation piétonne et automobile. La technologie MotionTracking peut convertir les combinés et les tablettes en de puissants appareils intelligents 3D pouvant être utilisés dans des applications allant de la surveillance de la santé et de la condition physique aux services basés sur la localisation.
Conseillé:
Suivi du mouvement de l'œil humain : 6 étapes
Suivi du mouvement de l'œil humain : ce projet vise à capturer le mouvement de l'œil humain et affiche son mouvement sur un ensemble de lumières LED placées en forme d'œil. Ce type de projet pourrait potentiellement avoir de nombreuses utilisations dans le domaine de la robotique et plus précisément de l'humain
Moteur en mouvement avec suivi oculaire : 8 étapes
Moteur en mouvement avec suivi oculaire : Actuellement, les capteurs de suivi oculaire sont plus courants dans divers domaines, mais commercialement, ils sont plus connus pour les jeux interactifs. Ce tutoriel n'a pas la prétention d'élaborer les capteurs car il est très complexe et du fait de son utilisation de plus en plus courante le
Kits de voiture de suivi de robot intelligent bricolage Suivi de voiture photosensible: 7 étapes
DIY Smart Robot Tracking Car Kits Tracking Car Photosensible: Design by SINONING ROBOTVous pouvez acheter à partir de la puce de suivi du robot carTheoryLM393 comparer les deux photorésistances, lorsqu'il y a une LED de photorésistance latérale sur BLANC le côté du moteur s'arrêtera immédiatement, l'autre côté du moteur tourner, de sorte que
QeMotion - Suivi de mouvement pour chaque casque ! : 5 étapes (avec photos)
QeMotion - Suivi de mouvement pour chaque casque ! : Présentation : Cet appareil vous permet d'utiliser le mouvement de votre tête pour déclencher des événements dans pratiquement n'importe quel jeu vidéo. Il fonctionne en suivant le mouvement de votre tête (ou de votre casque) et en déclenchant des pressions sur le clavier pour certains mouvements. Alors votre comp
Suivi de mouvement 3D Tfcd grâce à la détection capacitive et à la sortie LED : 6 étapes (avec images)
Suivi de mouvement 3D Tfcd grâce à la détection capacitive et à la sortie LED : dans cette instruction, il est expliqué comment le mouvement d'une main peut être suivi dans un espace 3D en utilisant le principe de la détection capacitive. En changeant la distance entre une feuille d'aluminium chargée et votre main, la capacité du condensateur va varier