Kazalo:
- 1. korak: Potrebna strojna oprema:
- 2. korak: Priključitev strojne opreme:
- 3. korak: Koda za sledenje gibanju:
- 4. korak: Aplikacije:
Video: Sledenje gibanju z uporabo MPU-6000 in Arduino Nano: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
MPU-6000 je 6-osni senzor za sledenje gibanju, ki ima vgrajen 3-osni merilnik pospeška in 3-osni žiroskop. Ta senzor lahko učinkovito sledi natančnemu položaju in lokaciji predmeta v tridimenzionalni ravnini. Uporablja se lahko v sistemih, ki zahtevajo natančno analizo položaja.
V tej vadnici je prikazano povezovanje senzorskega modula MPU-6000 z arduino nano. Za branje vrednosti pospeška in kota vrtenja smo uporabili arduino nano z adapterjem I2c, ki omogoča enostavno in zanesljivo povezavo s senzorskim modulom.
1. korak: Potrebna strojna oprema:
Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:
1. MPU-6000
2. Arduino Nano
3. Kabel I2C
4. I2C ščit za arduino nano
2. korak: Priključitev strojne opreme:
Oddelek za priključitev strojne opreme v bistvu pojasnjuje potrebne ožičenje med senzorjem in arduino nano. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:
MPU-6000 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.
Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični.
Vse kar potrebujete so štiri žice! Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.
Te povezave so prikazane na zgornjih slikah.
3. korak: Koda za sledenje gibanju:
Začnimo s kodo arduino zdaj.
Med uporabo senzorskega modula z arduinom vključujemo knjižnico Wire.h. Knjižnica "Wire" vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in arduino ploščo.
Celotna koda arduino je podana spodaj za udobje uporabnika:
#vključi
// Naslov MPU-6000 I2C je 0x68 (104)
#define Addr 0x68
void setup ()
{
// Inicializirajte komunikacijo I2C kot mojster
Wire.begin ();
// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600
Serial.begin (9600);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite konfiguracijski register žiroskopa
Wire.write (0x1B);
// Celotno območje obsega = 2000 dps
Wire.write (0x18);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite konfiguracijski register merilnika pospeška
Wire.write (0x1C);
// Celotno območje lestvice = +/- 16g
Wire.write (0x18);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register za upravljanje porabe energije
Wire.write (0x6B);
// PLL z referenco xGyro
Wire.write (0x01);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (300);
}
void loop ()
{
podpisani int podatki [6];
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register podatkov
Wire.write (0x3B);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 6 bajtov podatkov
Wire.requestFrom (Addr, 6);
// Preberite 6 bajtov podatkov
če (Wire.available () == 6)
{
podatki [0] = Wire.read ();
podatki [1] = Wire.read ();
podatki [2] = Wire.read ();
podatki [3] = Wire.read ();
podatki [4] = Wire.read ();
podatki [5] = Wire.read ();
}
// Pretvorimo podatke
int xAccl = podatki [0] * 256 + podatki [1];
int yAccl = podatki [2] * 256 + podatki [3];
int zAccl = podatki [4] * 256 + podatki [5];
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register podatkov
Wire.write (0x43);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 6 bajtov podatkov
Wire.requestFrom (Addr, 6);
// Preberite 6 bajtov podatkov
če (Wire.available () == 6)
{
podatki [0] = Wire.read ();
podatki [1] = Wire.read ();
podatki [2] = Wire.read ();
podatki [3] = Wire.read ();
podatki [4] = Wire.read ();
podatki [5] = Wire.read ();
}
// Pretvorimo podatke
int xGyro = podatki [0] * 256 + podatki [1];
int yGyro = podatki [2] * 256 + podatki [3];
int zGyro = podatki [4] * 256 + podatki [5];
// Izhodni podatki na serijski monitor
Serial.print ("Pospešek v osi X:");
Serial.println (xAccl);
Serial.print ("Pospešek v osi Y:");
Serial.println (yAccl);
Serial.print ("Pospešek v osi Z:");
Serial.println (zAccl);
Serial.print ("X-os vrtenja:");
Serial.println (xGyro);
Serial.print ("Y-os vrtenja:");
Serial.println (yGyro);
Serial.print ("Z-os vrtenja:");
Serial.println (zGyro);
zamuda (500);
}
V knjižnici žic Wire.write () in Wire.read () se uporabljata za pisanje ukazov in branje izhoda senzorja.
Serial.print () in Serial.println () se uporabljata za prikaz izhoda senzorja na serijskem monitorju Arduino IDE.
Izhod senzorja je prikazan na zgornji sliki.
4. korak: Aplikacije:
MPU-6000 je senzor za sledenje gibanju, ki najde svojo uporabo v vmesniku gibanja pametnih telefonov in tabličnih računalnikov. V pametnih telefonih se ti senzorji lahko uporabljajo v aplikacijah, kot so ukazi s kretnjami za aplikacije in nadzor telefona, izboljšano igranje iger, razširjena resničnost, panoramsko zajemanje in ogled fotografij ter navigacija za pešce in vozila. Tehnologija MotionTracking lahko pretvori mobilne telefone in tablične računalnike v zmogljive 3D-inteligentne naprave, ki jih je mogoče uporabiti v aplikacijah, od spremljanja zdravja in telesne pripravljenosti do storitev, ki temeljijo na lokaciji.
Priporočena:
Sistem za sledenje gibanju glave za VR: 8 korakov
Head Motion Tracking System za VR: Moje ime je Sam KODO, v tem priročniku vas bom korak za korakom naučil, kako uporabljati senzorje Arduino IMU za izdelavo sistema za sledenje glavi za VR. V tem projektu boste potrebovali: - LCD zaslon HDMI : https: //www.amazon.com/Elecrow-Capacitive-interfac…- An
Zgradite nosilec za sledenje gibanju (BLE od Arduina do prilagojene aplikacije Android Studio): 4 koraki
Zgradite nosilec za sledenje gibanju (BLE od Arduina do prilagojene aplikacije Android Studio): Bluetooth Low Energy (BLE) je oblika komunikacije Bluetooth z nizko porabo energije. Nosljive naprave, kot so pametna oblačila, ki sem jih oblikoval pri podjetju Predictive Wear, morajo, kjer je to mogoče, omejiti porabo energije, da podaljšajo življenjsko dobo baterije, in pogosto uporabljajo BLE.
Sledenje gibanju človeškega očesa: 6 korakov
Sledenje gibanju človeškega očesa: Cilj tega projekta je zajeti gibanje človeškega očesa in prikazati njegovo gibanje na niz LED luči, ki so postavljene v obliki očesa. Ta vrsta projekta bi lahko imela veliko uporab na področju robotike in zlasti huma
QeMotion - sledenje gibanju za vse slušalke!: 5 korakov (s slikami)
QeMotion - Sledenje gibanju za vsako slušalko !: Pregled: Ta naprava vam omogoča, da z gibanjem glave sprožite dogodke v skoraj vseh video igrah. Deluje tako, da spremlja gibanje glave (ali slušalke glede na to) in sproži pritiske na tipkovnico za določene gibe. Torej vaš komp
Sledenje gibanju oči z infrardečim senzorjem: 5 korakov
Sledenje gibanju oči z infrardečim senzorjem: Za zaznavanje gibov oči in nadzor LED sem uporabil infrardeči senzor. Naredil sem zrkla z LED trakom NeoPixel