Obsah:

Sledovanie pohybu pomocou MPU-6000 a fotónu častíc: 4 kroky
Sledovanie pohybu pomocou MPU-6000 a fotónu častíc: 4 kroky
Anonim
Image
Image

MPU-6000 je 6-osý snímač sledovania pohybu, ktorý má v sebe zabudovaný 3-osový akcelerometer a 3-osový gyroskop. Tento senzor je schopný efektívne sledovať presnú polohu a umiestnenie objektu v trojrozmernej rovine. Môže byť použitý v systémoch, ktoré vyžadujú analýzu polohy s najvyššou presnosťou.

V tomto tutoriáli bolo ilustrované prepojenie senzorového modulu MPU-6000 s fotónom častíc. Na čítanie hodnôt zrýchlenia a uhla rotácie sme použili častice s adaptérom I2c. Tento adaptér I2C umožňuje jednoduché a spoľahlivejšie pripojenie k modulu senzora.

Krok 1: Potrebný hardvér:

Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér

Materiály potrebné na splnenie našej úlohy zahŕňajú nižšie uvedené hardvérové komponenty:

1. MPU-6000

2. Fotón častíc

3. Kábel I2C

4. I2C štít pre časticový fotón

Krok 2: Pripojenie hardvéru:

Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru

Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a fotónom častíc. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:

MPU-6000 bude fungovať na I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.

Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik. Všetko, čo potrebujete, sú štyri drôty!

Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.

Tieto spojenia sú znázornené na obrázkoch vyššie.

Krok 3: Kód na sledovanie pohybu:

Kód pre sledovanie pohybu
Kód pre sledovanie pohybu

Začnime teraz s časticovým kódom.

Pri použití senzorového modulu s arduino zahrnujeme knižnicu application.h a spark_wiring_i2c.h. Knižnica "application.h" a spark_wiring_i2c.h obsahuje funkcie, ktoré uľahčujú i2c komunikáciu medzi senzorom a časticou.

Celý kód častíc je pre pohodlie užívateľa uvedený nižšie:

#zahrnúť #zahrnúť // adresa 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ť premennú Particle.variable ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Častica.proměnná ("xGyro", xGyro); Častica.proměnná ("yGyro", yGyro); Častica.proměnná ("zGyro", zGyro); // Inicializácia komunikácie I2C ako Master Wire.begin (); // Inicializácia sériovej komunikácie, nastavenie prenosovej rýchlosti = 9600 Serial.begin (9600); // Spustenie prenosu I2C Wire.beginTransmission (Addr); // Vyberte register konfigurácie gyroskopu Wire.write (0x1B); // Celý rozsah stupnice = 2000 dps Wire.write (0x18); // Zastavenie prenosu I2C Wire.endTransmission (); // Spustenie prenosu I2C Wire.beginTransmission (Addr); // Vyberte register konfigurácie akcelerometra Wire.write (0x1C); // Celý rozsah stupnice = +/- 16g Wire.write (0x18); // Zastavenie prenosu I2C Wire.endTransmission (); // Spustenie prenosu I2C Wire.beginTransmission (Addr); // Vyberte register správy napájania Wire.write (0x6B); // PLL s referenciou xGyro Wire.write (0x01); // Zastavenie prenosu I2C Wire.endTransmission (); oneskorenie (300); } void loop () {nepodpísané int údaje [6]; // Spustenie prenosu I2C Wire.beginTransmission (Addr); // Vyberte dátový register Wire.write (0x3B); // Zastavenie prenosu I2C Wire.endTransmission (); // Požiadajte o 6 bajtov údajov Wire.requestFrom (Addr, 6); // Prečítajte 6 bajtov údajov, ak (Wire.available () == 6) {data [0] = Wire.read (); údaje [1] = Wire.read (); údaje [2] = Wire.read (); údaje [3] = Wire.read (); údaje [4] = Wire.read (); údaje [5] = Wire.read (); } oneskorenie (800); // Previesť údaje xAccl = ((údaje [1] * 256) + údaje [0]); ak (xAccl> 32767) {xAccl -= 65536; } yAccl = ((údaje [3] * 256) + údaje [2]); if (yAccl> 32767) {yAccl -= 65536; } zAccl = ((údaje [5] * 256) + údaje [4]); ak (zAccl> 32767) {zAccl -= 65536; } oneskorenie (800); // Spustenie prenosu I2C Wire.beginTransmission (Addr); // Vyberte dátový register Wire.write (0x43); // Zastavenie prenosu I2C Wire.endTransmission (); // Požiadajte o 6 bajtov údajov Wire.requestFrom (Addr, 6); // Prečítajte 6 bajtov údajov, ak (Wire.available () == 6) {data [0] = Wire.read (); údaje [1] = Wire.read (); údaje [2] = Wire.read (); údaje [3] = Wire.read (); údaje [4] = Wire.read (); údaje [5] = Wire.read (); } // Previesť údaje xGyro = ((údaje [1] * 256) + údaje [0]); ak (xGyro> 32767) {xGyro -= 65536; } yGyro = ((údaje [3] * 256) + údaje [2]); ak (yGyro> 32767) {yGyro -= 65536; } zGyro = ((údaje [5] * 256) + údaje [4]); ak (zGyro> 32767) {zGyro -= 65536; } // Výstup údajov na palubnú dosku Particle.publish ("Zrýchlenie v osi X:", reťazec (xAccl)); oneskorenie (1000); Particle.publish ("Zrýchlenie v osi Y:", reťazec (yAccl)); oneskorenie (1000); Particle.publish ("Zrýchlenie v osi Z:", reťazec (zAccl)); oneskorenie (1000); Particle.publish ("Osa X rotácie:", reťazec (xGyro)); oneskorenie (1000); Particle.publish ("Os otáčania Y:", reťazec (yGyro)); oneskorenie (1000); Particle.publish ("Osa Z rotácie:", reťazec (zGyro)); oneskorenie (1000); }

Funkcia Particle.variable () vytvára premenné na ukladanie výstupu zo senzora a funkcia Particle.publish () zobrazuje výstup na palubnej doske webu.

Výstup senzora je pre vašu referenciu zobrazený na obrázku vyššie.

Krok 4: Aplikácie:

Aplikácie
Aplikácie

MPU-6000 je snímač sledovania pohybu, ktorý nachádza svoje uplatnenie v pohybovom rozhraní smartfónov a tabletov. V smartfónoch je možné tieto senzory použiť v aplikáciách, ako sú gestové príkazy pre aplikácie a ovládanie telefónu, vylepšené hranie hier, rozšírená realita, panoramatické snímanie a prezeranie fotografií a navigácia chodcov a vozidiel. Technológia MotionTracking dokáže konvertovať mobilné telefóny a tablety na výkonné 3D inteligentné zariadenia, ktoré je možné použiť v aplikáciách od monitorovania zdravia a kondície po služby založené na polohe.

Odporúča: