Cuprins:

Urmărirea mișcării folosind MPU-6000 și Arduino Nano: 4 pași
Urmărirea mișcării folosind MPU-6000 și Arduino Nano: 4 pași

Video: Urmărirea mișcării folosind MPU-6000 și Arduino Nano: 4 pași

Video: Urmărirea mișcării folosind MPU-6000 și Arduino Nano: 4 pași
Video: Mișcarea celulelor și construirea de țesut folosind ultrasunete – DrTech.ro 2024, Noiembrie
Anonim
Image
Image

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:

Hardware necesar
Hardware necesar
Hardware necesar
Hardware necesar
Hardware necesar
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:

Conectare hardware
Conectare hardware
Conectare hardware
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:

Cod pentru urmărirea mișcării
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:

Aplicații
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: