Satura rādītājs:
- 1. darbība. Nepieciešamā aparatūra:
- 2. darbība. Aparatūras savienošana:
- 3. darbība. Kustības izsekošanas kods:
- 4. darbība. Lietojumprogrammas:
Video: Kustību izsekošana, izmantojot MPU-6000 un Arduino Nano: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
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:
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 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:
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:
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:
Sejas izsekošana, izmantojot ARDUINO !!!: 7 soļi
Sejas izsekošana, izmantojot ARDUINO !!!: Iepriekšējā pamācībā es dalījos ar to, kā jūs varat sazināties starp Arduino un Python, izmantojot “pyserial” moduli, un vadīt LED. Ja neesat to redzējis, pārbaudiet to šeit: KOMUNIKĀCIJA ARDUINO & PYTHON! Un kā jūs varat noteikt krāsu
Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)
Izsekošana un izsekošana maziem veikaliem: šī ir sistēma, kas paredzēta maziem veikaliem, kas ir paredzēts uzstādīt uz e-velosipēdiem vai motorolleriem, lai veiktu piegādi nelielā attālumā, piemēram, maizes ceptuve, kas vēlas piegādāt konditorejas izstrādājumus. Ko nozīmē izsekošana un izsekošana? Izsekošana un izsekošana ir sistēma, ko izmanto
QeMotion - kustību izsekošana katrai austiņai!: 5 soļi (ar attēliem)
QeMotion - kustību izsekošana visām austiņām! Tas darbojas, izsekojot jūsu galvas (vai austiņu) kustībai un aktivizējot tastatūras nospiešanu noteiktām kustībām. Tātad jūsu kompānija
Paātrinājuma variāciju izsekošana, izmantojot Raspberry Pi un MMA7455, izmantojot Python: 6 soļi
Paātrinājuma variāciju izsekošana, izmantojot Raspberry Pi un MMA7455, izmantojot Python: es neklupju, es testēju gravitāciju. Tas joprojām darbojas … Paātrinātā kosmosa kuģa attēlojums paskaidroja, ka pulkstenis, kas atrodas augstākajā šahtas punktā, gravitācijas laika paplašināšanās dēļ izvēlētos ātrāk nekā tas, kas atrodas bāzē. Daži
Acu kustības izsekošana, izmantojot infrasarkano sensoru: 5 soļi
Acu kustības izsekošana, izmantojot infrasarkano sensoru: es izmantoju infrasarkano staru sensoru, lai uztvertu acu kustības un kontrolētu gaismas diodi. Es izveidoju acu ābolus ar LED lenti NeoPixel