Cuprins:
- Pasul 1: Hardware necesar:
- Pasul 2: conectare hardware:
- Pasul 3: Cod pentru urmărirea mișcării:
- Pasul 4: Aplicații:
Video: Urmărirea mișcării folosind MPU-6000 și Arduino Nano: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
MPU-6000 este un senzor de urmărire a mișcării cu 6 axe care are încorporat accelerometru pe 3 axe și giroscop cu 3 axe. Acest senzor este capabil să urmărească eficient poziția și locația exactă a unui obiect în planul tridimensional. Poate fi utilizat în sistemele care necesită analiza poziției cu cea mai mare precizie.
În acest tutorial a fost ilustrată interfața modulului senzor MPU-6000 cu arduino nano. Pentru a citi valorile accelerației și unghiului de rotație, am folosit arduino nano cu un adaptor I2c. Acest adaptor I2C face conexiunea la modulul senzor mai ușoară și mai fiabilă.
Pasul 1: Hardware necesar:
Materialele de care avem nevoie pentru îndeplinirea obiectivului nostru includ următoarele componente hardware:
1. MPU-6000
2. Arduino Nano
3. Cablu I2C
4. I2C Shield pentru arduino nano
Pasul 2: conectare hardware:
Secțiunea de conectare hardware explică practic conexiunile de cablare necesare între senzor și arduino nano. Asigurarea conexiunilor corecte este necesitatea de bază în timp ce lucrați la orice sistem pentru ieșirea dorită. Deci, conexiunile necesare sunt următoarele:
MPU-6000 va funcționa pe I2C. Iată exemplul schemei de cablare, care demonstrează cum se conectează fiecare interfață a senzorului.
Out-of-the-box, placa este configurată pentru o interfață I2C, ca atare, vă recomandăm să utilizați această conexiune dacă sunteți altfel agnostic.
Nu ai nevoie decât de patru fire! Sunt necesare doar patru conexiuni Vcc, Gnd, SCL și pinii SDA și acestea sunt conectate cu ajutorul cablului I2C.
Aceste conexiuni sunt prezentate în imaginile de mai sus.
Pasul 3: Cod pentru urmărirea mișcării:
Să începem cu codul arduino acum.
În timp ce utilizați modulul senzor cu arduino, includem biblioteca Wire.h. Biblioteca „Wire” conține funcțiile care facilitează comunicarea i2c între senzor și placa arduino.
Întregul cod arduino este dat mai jos pentru confortul utilizatorului:
#include
// Adresa MPU-6000 I2C este 0x68 (104)
#define Addr 0x68
configurare nulă ()
{
// Inițializați comunicarea I2C ca Master
Wire.begin ();
// Inițializați comunicarea serială, setați rata de transmisie = 9600
Serial.begin (9600);
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de configurare a giroscopului
Wire.write (0x1B);
// Gama completă a scării = 2000 dps
Wire.write (0x18);
// Opriți transmisia I2C
Wire.endTransmission ();
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de configurare a accelerometrului
Wire.write (0x1C);
// Gama completă a scării = +/- 16g
Wire.write (0x18);
// Opriți transmisia I2C
Wire.endTransmission ();
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de gestionare a energiei
Wire.write (0x6B);
// PLL cu referință xGyro
Wire.write (0x01);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (300);
}
bucla nulă ()
{
date int nesemnate [6];
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de date
Wire.write (0x3B);
// Opriți transmisia I2C
Wire.endTransmission ();
// Solicitați 6 octeți de date
Wire.requestFrom (Addr, 6);
// Citiți 6 octeți de date
if (Wire.available () == 6)
{
date [0] = Wire.read ();
date [1] = Wire.read ();
date [2] = Wire.read ();
date [3] = Wire.read ();
date [4] = Wire.read ();
date [5] = Wire.read ();
}
// Conversia datelor
int xAccl = data [0] * 256 + data [1];
int yAccl = data [2] * 256 + data [3];
int zAccl = data [4] * 256 + data [5];
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de date
Wire.write (0x43);
// Opriți transmisia I2C
Wire.endTransmission ();
// Solicitați 6 octeți de date
Wire.requestFrom (Addr, 6);
// Citiți 6 octeți de date
if (Wire.available () == 6)
{
date [0] = Wire.read ();
date [1] = Wire.read ();
date [2] = Wire.read ();
date [3] = Wire.read ();
date [4] = Wire.read ();
date [5] = Wire.read ();
}
// Conversia datelor
int xGyro = data [0] * 256 + data [1];
int yGyro = data [2] * 256 + data [3];
int zGyro = data [4] * 256 + data [5];
// Ieșire date pe monitorul serial
Serial.print ("Accelerare în axa X:");
Serial.println (xAccl);
Serial.print ("Accelerare în axa Y:");
Serial.println (yAccl);
Serial.print ("Accelerare în axa Z:");
Serial.println (zAccl);
Serial.print ("Axa X de rotație:");
Serial.println (xGyro);
Serial.print ("Axa Y de rotație:");
Serial.println (yGyro);
Serial.print ("Axa Z de rotație:");
Serial.println (zGyro);
întârziere (500);
}
În biblioteca de fire Wire.write () și Wire.read () sunt utilizate pentru a scrie comenzile și a citi ieșirea senzorului.
Serial.print () și Serial.println () sunt utilizate pentru a afișa ieșirea senzorului pe monitorul serial al IDE Arduino.
Ieșirea senzorului este prezentată în imaginea de mai sus.
Pasul 4: Aplicații:
MPU-6000 este un senzor de urmărire a mișcării, care își găsește aplicația în interfața de mișcare a smartphone-urilor și tabletelor. Pe smartphone-uri, acești senzori pot fi utilizați în aplicații, cum ar fi comenzile gestuale pentru aplicații și controlul telefonului, jocuri îmbunătățite, realitate augmentată, captare și vizualizare panoramică a fotografiilor și navigație pietonală și vehicul. Tehnologia MotionTracking poate converti telefoane și tablete în dispozitive inteligente 3D puternice care pot fi utilizate în aplicații care variază de la monitorizarea stării de sănătate și fitness până la servicii bazate pe locație.
Recomandat:
Urmărirea mișcării ochiului uman: 6 pași
Urmărirea mișcării ochiului uman: Acest proiect își propune să capteze mișcarea ochiului uman și își afișează mișcarea pe un set de lumini LED care sunt plasate în formă de ochi. Acest tip de proiect ar putea avea multe utilizări în domeniul roboticii și în special al umanității
DIY Smart Robot Urmărirea truselor de mașini Urmărirea mașinii fotosensibile: 7 pași
DIY Smart Robot Tracking Car Kits Tracking Car Photosensitive: Design by SINONING ROBOT Puteți cumpăra de la robotul de urmărire Teoria LM393 cip comparați cei doi fotorezistenți, când există un LED fotorezistor lateral pe ALB, partea motorului se va opri imediat, cealaltă parte a motorului răsuciți, astfel încât
QeMotion - Urmărirea mișcării pentru fiecare cască !: 5 pași (cu imagini)
QeMotion - Urmărirea mișcării pentru fiecare cască !: Prezentare generală: Acest dispozitiv vă permite să utilizați mișcarea capului pentru a declanșa evenimente în practic orice joc video. Funcționează urmărind mișcarea capului (sau căștile în acest sens) și declanșând apăsarea tastaturii pentru anumite mișcări. Așa că comp
Urmărirea mișcării ochilor utilizând senzorul infraroșu: 5 pași
Urmărirea mișcării ochilor folosind senzorul cu infraroșu: am folosit un senzor cu infraroșu pentru a simți mișcările ochilor și pentru a controla LED-ul. Am realizat globi oculari cu bandă LED NeoPixel
Urmărirea mișcării 3D Tfcd prin detectare capacitivă și ieșire LED: 6 pași (cu imagini)
Urmărirea mișcării 3D Tfcd prin detectare capacitivă și ieșire LED: În această instrucțiune este explicat modul în care mișcarea unei mâini poate fi urmărită într-un spațiu 3D utilizând principiul detectării capacitive. Prin schimbarea distanței dintre o folie încărcată de aluminiu și mâna dvs., capacitatea condensatorului va varia