Satura rādītājs:

Kustību izsekošana, izmantojot MPU-6000 un Arduino Nano: 4 soļi
Kustību izsekošana, izmantojot MPU-6000 un Arduino Nano: 4 soļi

Video: Kustību izsekošana, izmantojot MPU-6000 un Arduino Nano: 4 soļi

Video: Kustību izsekošana, izmantojot MPU-6000 un Arduino Nano: 4 soļi
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Jūlijs
Anonim
Image
Image

MPU-6000 ir 6 asu kustības izsekošanas sensors, kurā ir iestrādāts 3 asu akselerometrs un 3 asu žiroskops. Šis sensors spēj efektīvi izsekot precīzu objekta atrašanās vietu un atrašanās vietu trīsdimensiju plaknē. To var izmantot sistēmās, kurām nepieciešama visaugstākā precizitāte.

Šajā apmācībā ir parādīta MPU-6000 sensora moduļa saskarne ar arduino nano. Lai nolasītu paātrinājuma un rotācijas leņķa vērtības, mēs esam izmantojuši arduino nano ar I2c adapteri. Šis I2C adapteris padara savienojumu ar sensora moduli vieglu un uzticamāku.

1. darbība. Nepieciešamā aparatūra:

Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra

Materiāli, kas nepieciešami mūsu mērķa sasniegšanai, ietver šādas aparatūras sastāvdaļas:

1. MPU-6000

2. Arduino Nano

3. I2C kabelis

4. I2C vairogs arduino nano

2. darbība. Aparatūras savienošana:

Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums

Aparatūras savienošanas sadaļa pamatā izskaidro nepieciešamos vadu savienojumus starp sensoru un arduino nano. Pareizu savienojumu nodrošināšana ir pamatvajadzība, strādājot pie jebkuras sistēmas vēlamajam rezultātam. Tātad nepieciešamie savienojumi ir šādi:

MPU-6000 darbosies, izmantojot I2C. Šeit ir elektroinstalācijas shēmas piemērs, kas parāda, kā savienot katru sensora saskarni.

Izņemot komplektu, tāfele ir konfigurēta I2C saskarnei, tāpēc mēs iesakām izmantot šo savienojumu, ja esat citādi agnostiķis.

Viss, kas Jums nepieciešams, ir četri vadi! Nepieciešami tikai četri savienojumi Vcc, Gnd, SCL un SDA, un tie ir savienoti, izmantojot I2C kabeli.

Šie savienojumi ir parādīti iepriekš redzamajos attēlos.

3. darbība. Kustības izsekošanas kods:

Kustības izsekošanas kods
Kustības izsekošanas kods

Sāksim ar arduino kodu tūlīt.

Izmantojot sensoru moduli ar arduino, mēs iekļaujam Wire.h bibliotēku. "Wire" bibliotēkā ir funkcijas, kas atvieglo i2c komunikāciju starp sensoru un arduino plati.

Viss arduino kods lietotāja ērtībai ir norādīts zemāk:

#iekļaut

// MPU-6000 I2C adrese ir 0x68 (104)

#define Addr 0x68

anulēts iestatījums ()

{

// Inicializēt I2C komunikāciju kā galveno

Wire.begin ();

// Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 9600

Sērijas sākums (9600);

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Izvēlieties žiroskopa konfigurācijas reģistru

Wire.write (0x1B);

// Pilns skalas diapazons = 2000 dps

Wire.write (0x18);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet akselerometra konfigurācijas reģistru

Wire.write (0x1C);

// Pilns skalas diapazons = +/- 16g

Wire.write (0x18);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet enerģijas pārvaldības reģistru

Wire.write (0x6B);

// PLL ar xGyro atsauci

Wire.write (0x01);

// Apturēt I2C pārraidi

Wire.endTransmission ();

kavēšanās (300);

}

tukša cilpa ()

{

neparakstīti int dati [6];

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet datu reģistru

Wire.write (0x3B);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Pieprasīt 6 baitus datu

Wire.requestFrom (Addr, 6);

// Izlasiet 6 baitus datu

ja (Wire.available () == 6)

{

dati [0] = Wire.read ();

dati [1] = Wire.read ();

dati [2] = Wire.read ();

dati [3] = Wire.read ();

dati [4] = Wire.read ();

dati [5] = Wire.read ();

}

// Konvertēt datus

int xAccl = dati [0] * 256 + dati [1];

int yAccl = dati [2] * 256 + dati [3];

int zAccl = dati [4] * 256 + dati [5];

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet datu reģistru

Wire.write (0x43);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Pieprasīt 6 baitus datu

Wire.requestFrom (Addr, 6);

// Izlasiet 6 baitus datu

ja (Wire.available () == 6)

{

dati [0] = Wire.read ();

dati [1] = Wire.read ();

dati [2] = Wire.read ();

dati [3] = Wire.read ();

dati [4] = Wire.read ();

dati [5] = Wire.read ();

}

// Konvertēt datus

int xGyro = dati [0] * 256 + dati [1];

int yGyro = dati [2] * 256 + dati [3];

int zGyro = dati [4] * 256 + dati [5];

// Izvadiet datus uz seriālo monitoru

Serial.print ("Paātrinājums X-asī:");

Serial.println (xAccl);

Serial.print ("Paātrinājums Y-asī:");

Serial.println (yAccl);

Serial.print ("Paātrinājums Z-asī:");

Serial.println (zAccl);

Serial.print ("Rotācijas X ass:");

Serial.println (xGyro);

Serial.print ("Y rotācijas ass:");

Sērijas.println (yGyro);

Serial.print ("Z rotācijas ass:");

Serial.println (zGyro);

kavēšanās (500);

}

Vadu bibliotēkā Wire.write () un Wire.read () tiek izmantotas komandu rakstīšanai un sensora izejas nolasīšanai.

Serial.print () un Serial.println () tiek izmantoti, lai parādītu sensora izvadi Arduino IDE sērijas monitorā.

Sensora izeja ir parādīta attēlā iepriekš.

4. darbība. Lietojumprogrammas:

Lietojumprogrammas
Lietojumprogrammas

MPU-6000 ir kustības izsekošanas sensors, kas tiek izmantots viedtālruņu un planšetdatoru kustības saskarnē. Viedtālruņos šos sensorus var izmantot tādās lietojumprogrammās kā žestu komandas lietojumprogrammām un tālruņa vadība, uzlabotas spēles, paplašinātā realitāte, panorāmas fotoattēlu uzņemšana un apskate, kā arī gājēju un transportlīdzekļu navigācija. MotionTracking tehnoloģija var pārvērst tālruņus un planšetdatorus par jaudīgām 3D viedām ierīcēm, kuras var izmantot lietojumprogrammās, sākot no veselības un fiziskās sagatavotības uzraudzības līdz pakalpojumiem, kas balstīti uz atrašanās vietu.

Ieteicams: