Kazalo:

Sledenje gibanju z uporabo MPU-6000 in fotona iz delcev: 4 koraki
Sledenje gibanju z uporabo MPU-6000 in fotona iz delcev: 4 koraki

Video: Sledenje gibanju z uporabo MPU-6000 in fotona iz delcev: 4 koraki

Video: Sledenje gibanju z uporabo MPU-6000 in fotona iz delcev: 4 koraki
Video: Gluhi se pogovarjamo z uporabo spletne kamere 2024, November
Anonim
Image
Image

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 s fotonom delcev. Za branje vrednosti pospeška in vrtilnega kota smo uporabili delce z adapterjem I2c, ki omogoča enostavno in zanesljivo povezavo s senzorskim modulom.

1. korak: Potrebna strojna oprema:

Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema

Materiali, potrebni za izvedbo naše naloge, vključujejo naslednje komponente strojne opreme:

1. MPU-6000

2. Foton delcev

3. Kabel I2C

4. I2C ščit za foton delcev

2. korak: Priključitev strojne opreme:

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in fotonom delcev. 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:

Koda za sledenje gibanju
Koda za sledenje gibanju

Začnimo s kodo delcev zdaj.

Med uporabo senzorskega modula z arduinom vključujemo knjižnico application.h in spark_wiring_i2c.h. Knjižnica "application.h" in spark_wiring_i2c.h vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in delcem.

Za udobje uporabnika je spodaj navedena celotna koda delcev:

#include #include // Naslov MPU-6000 I2C je 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Nastavi spremenljivko Particle.variable ("i2cdevice", "MPU-6000"); Delci.variable ("xAccl", xAccl); Delci.variable ("yAccl", yAccl); Delci.variable ("zAccl", zAccl); Delci.variable ("xGyro", xGyro); Delci.variable ("yGyro", yGyro); Delci.variable ("zGyro", zGyro); // Inicializirajte komunikacijo I2C kot Master 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 obsega = +/- 16g Wire.write (0x18); // Ustavi prenos I2C Wire.endTransmission (); // Zagon prenosa I2C Wire.beginTransmission (Addr); // Izberite register za upravljanje porabe Wire.write (0x6B); // PLL z referenco xGyro Wire.write (0x01); // Ustavi prenos I2C Wire.endTransmission (); zamuda (300); } void loop () {unsigned int data [6]; // Zagon prenosa I2C Wire.beginTransmission (Addr); // Izberite podatkovni register Wire.write (0x3B); // Ustavi prenos I2C Wire.endTransmission (); // Zahtevaj 6 bajtov podatkov Wire.requestFrom (Addr, 6); // Preberite 6 bajtov podatkov, če (Wire.available () == 6) {data [0] = Wire.read (); podatki [1] = Wire.read (); podatki [2] = Wire.read (); podatki [3] = Wire.read (); podatki [4] = Wire.read (); podatki [5] = Wire.read (); } zamuda (800); // pretvorimo podatke xAccl = ((podatki [1] * 256) + podatki [0]); če (xAccl> 32767) {xAccl -= 65536; } yAccl = ((podatki [3] * 256) + podatki [2]); če (yAccl> 32767) {yAccl -= 65536; } zAccl = ((podatki [5] * 256) + podatki [4]); če (zAccl> 32767) {zAccl -= 65536; } zamuda (800); // Zagon prenosa I2C Wire.beginTransmission (Addr); // Izberite podatkovni register Wire.write (0x43); // Ustavi prenos I2C Wire.endTransmission (); // Zahtevaj 6 bajtov podatkov Wire.requestFrom (Addr, 6); // Preberite 6 bajtov podatkov, če (Wire.available () == 6) {data [0] = Wire.read (); podatki [1] = Wire.read (); podatki [2] = Wire.read (); podatki [3] = Wire.read (); podatki [4] = Wire.read (); podatki [5] = Wire.read (); } // pretvori podatke xGyro = ((podatki [1] * 256) + podatki [0]); če (xGiro> 32767) {xGyro -= 65536; } yGyro = ((podatki [3] * 256) + podatki [2]); če (yGyro> 32767) {yGyro -= 65536; } zGyro = ((podatki [5] * 256) + podatki [4]); če (zGyro> 32767) {zGyro -= 65536; } // Izhodni podatki na nadzorno ploščo Particle.publish ("Pospešek v osi X:", String (xAccl)); zamuda (1000); Particle.publish ("Pospešek v osi Y:", niz (yAccl)); zamuda (1000); Particle.publish ("Pospešek v osi Z:", niz (zAccl)); zamuda (1000); Particle.publish ("X-os rotacije:", String (xGyro)); zamuda (1000); Particle.publish ("Y-os vrtenja:", niz (yGyro)); zamuda (1000); Particle.publish ("Z-os vrtenja:", niz (zGyro)); zamuda (1000); }

Funkcija Particle.variable () ustvari spremenljivke za shranjevanje izhoda senzorja, funkcija Particle.publish () pa prikaže izpis na nadzorni plošči spletnega mesta.

Izhod senzorja je za vašo referenco prikazan na zgornji sliki.

4. korak: Aplikacije:

Aplikacije
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: