Orodha ya maudhui:

Ufuatiliaji wa Mwendo Kutumia MPU-6000 na Arduino Nano: Hatua 4
Ufuatiliaji wa Mwendo Kutumia MPU-6000 na Arduino Nano: Hatua 4

Video: Ufuatiliaji wa Mwendo Kutumia MPU-6000 na Arduino Nano: Hatua 4

Video: Ufuatiliaji wa Mwendo Kutumia MPU-6000 na Arduino Nano: Hatua 4
Video: Jifunze kutumia kalenda yako kupanga Uzazi 2024, Desemba
Anonim
Image
Image

MPU-6000 ni Sensor ya Kufuatilia Mwendo wa 6-Axis ambayo ina 3-Axis accelerometer na 3-Axis gyroscope iliyoingia ndani. Sensor hii inauwezo wa ufuatiliaji mzuri wa nafasi halisi na eneo la kitu kwenye ndege ya 3-dimensional. Inaweza kuajiriwa katika mifumo ambayo inahitaji uchambuzi wa msimamo kwa usahihi wa hali ya juu.

Katika mafunzo haya ujumuishaji wa moduli ya sensorer ya MPU-6000 na nano ya arduino imeonyeshwa. Kusoma maadili ya kuongeza kasi na pembe ya kuzunguka, tumetumia arduino nano na adapta ya I2c. Adapter hii ya I2C inafanya unganisho kwa moduli ya sensa iwe rahisi na ya kuaminika zaidi.

Hatua ya 1: Vifaa vinahitajika:

Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika

Vifaa ambavyo tunahitaji kutimiza lengo letu ni pamoja na vifaa vifuatavyo vya vifaa:

1. MPU-6000

2. Arduino Nano

3. Cable ya I2C

4. I2C Shield kwa nano arduino

Hatua ya 2: Kuunganishwa kwa vifaa:

Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa

Sehemu ya uunganishaji wa vifaa kimsingi inaelezea uunganisho wa wiring unaohitajika kati ya sensa na nano ya arduino. Kuhakikisha unganisho sahihi ni hitaji la msingi wakati unafanya kazi kwenye mfumo wowote wa pato unalotaka. Kwa hivyo, viunganisho vinavyohitajika ni kama ifuatavyo.

MPU-6000 itafanya kazi juu ya I2C. Hapa kuna mfano wa mchoro wa wiring, unaonyesha jinsi ya kuweka waya kila kiunganishi cha sensa.

Nje ya sanduku, bodi imesanidiwa kwa kiolesura cha I2C, kwa hivyo tunapendekeza utumie uunganisho huu ikiwa wewe ni agnostic.

Unachohitaji ni waya nne! Viunganisho vinne tu vinahitajika Vcc, Gnd, SCL na SDA pini na hizi zimeunganishwa kwa msaada wa kebo ya I2C.

Uunganisho huu umeonyeshwa kwenye picha hapo juu.

Hatua ya 3: Nambari ya Kufuatilia Mwendo:

Nambari ya Kufuatilia Mwendo
Nambari ya Kufuatilia Mwendo

Hebu tuanze na nambari ya arduino sasa.

Wakati wa kutumia moduli ya sensorer na arduino, tunajumuisha maktaba ya Wire.h. Maktaba ya "Waya" ina kazi ambazo zinawezesha mawasiliano ya i2c kati ya sensa na bodi ya arduino.

Nambari nzima ya arduino imepewa hapa chini kwa urahisi wa mtumiaji:

# pamoja

// Anwani ya MPU-6000 I2C ni 0x68 (104)

#fafanua Kijalizo 0x68

kuanzisha batili ()

{

// Anzisha mawasiliano ya I2C kama Mwalimu

Wire.begin ();

// Anzisha mawasiliano ya serial, weka kiwango cha baud = 9600

Kuanzia Serial (9600);

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya usanidi wa gyroscope

Andika waya (0x1B);

// Kiwango kamili cha kiwango = 2000 dps

Andika waya (0x18);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya usanidi wa accelerometer

Andika waya (0x1C);

// Kiwango kamili cha kiwango = +/- 16g

Andika waya (0x18);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya usimamizi wa nguvu

Andika waya (0x6B);

// PLL na kumbukumbu ya xGyro

Andika waya (0x01);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

kuchelewesha (300);

}

kitanzi batili ()

{

data isiyoingia [6];

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya data

Andika waya (0x3B);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Omba ka 6 za data

Ombi la Wire. Toka (Addr, 6);

// Soma data 6 ya data

ikiwa (Waya haipatikani () == 6)

{

data [0] = Wire.read ();

data [1] = soma kwa waya ();

data [2] = soma kwa waya ();

data [3] = soma kwa waya ();

data [4] = soma kwa waya ();

data [5] = soma kwa waya ();

}

// Badilisha data

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

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

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

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya data

Andika waya (0x43);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Omba ka 6 za data

Ombi la Wire. Toka (Addr, 6);

// Soma data 6 ya data

ikiwa (Waya haipatikani () == 6)

{

data [0] = Wire.read ();

data [1] = soma kwa waya ();

data [2] = soma kwa waya ();

data [3] = soma kwa waya ();

data [4] = soma kwa waya ();

data [5] = soma kwa waya ();

}

// Badilisha data

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

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

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

// data ya Pato kwa mfuatiliaji wa serial

Serial.print ("Kuongeza kasi katika X-Axis:");

Serial.println (xAccl);

Serial.print ("Kuongeza kasi katika Y-Axis:");

Serial.println (yAccl);

Serial.print ("Kuongeza kasi katika Z-Axis:");

Serial.println (zAccl);

Serial.print ("X-Axis ya Mzunguko:");

Serial.println (xGyro);

Serial.print ("Y-Axis ya Mzunguko:");

Serial.println (yGyro);

Serial.print ("Z-Axis ya Mzunguko:");

Serial.println (zGyro);

kuchelewesha (500);

}

Katika maktaba ya waya Wire.write () na Wire.read () hutumiwa kuandika amri na kusoma pato la sensorer.

Serial.print () na Serial.println () hutumiwa kuonyesha pato la sensa kwenye mfuatiliaji wa serial wa IDE ya Arduino.

Pato la sensor linaonyeshwa kwenye picha hapo juu.

Hatua ya 4: Maombi:

Maombi
Maombi

MPU-6000 ni sensorer ya ufuatiliaji wa mwendo, ambayo hupata matumizi yake katika kiolesura cha mwendo cha simu mahiri na vidonge. Katika simu za rununu sensorer hizi zinaweza kuajiriwa katika matumizi kama vile maagizo ya ishara ya matumizi na udhibiti wa simu, michezo ya kubahatisha iliyoboreshwa, ukweli uliodhabitiwa, upigaji picha na kutazama panorama, na utembezaji wa watembea kwa miguu na gari. Teknolojia ya MotionTracking inaweza kubadilisha simu na vidonge kuwa vifaa vyenye nguvu vya akili vya 3D ambavyo vinaweza kutumika katika matumizi kutoka kwa ufuatiliaji wa afya na usawa hadi huduma za msingi wa eneo.

Ilipendekeza: