Turinys:

Judesio stebėjimas naudojant MPU-6000 ir „Arduino Nano“: 4 žingsniai
Judesio stebėjimas naudojant MPU-6000 ir „Arduino Nano“: 4 žingsniai

Video: Judesio stebėjimas naudojant MPU-6000 ir „Arduino Nano“: 4 žingsniai

Video: Judesio stebėjimas naudojant MPU-6000 ir „Arduino Nano“: 4 žingsniai
Video: 4 patarimai kaip sumažinti netikrų suveikimų skaičių naudojant judesio jutiklius / EP73 2024, Lapkritis
Anonim
Image
Image

MPU-6000 yra 6 ašių judesio sekimo jutiklis, turintis 3 ašių akselerometrą ir 3 ašių giroskopą. Šis jutiklis gali efektyviai sekti tikslią objekto padėtį ir vietą trimatėje plokštumoje. Jis gali būti naudojamas sistemose, kurioms reikia aukščiausio tikslumo padėties analizės.

Šioje pamokoje buvo parodyta MPU-6000 jutiklio modulio sąsaja su arduino nano. Norėdami perskaityti pagreičio ir sukimosi kampo vertes, mes naudojome arduino nano su I2c adapteriu. Šis I2C adapteris leidžia lengvai ir patikimiau prijungti prie jutiklio modulio.

1 veiksmas: reikalinga aparatūra:

Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra

Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:

1. MPU-6000

2. „Arduino Nano“

3. I2C kabelis

4. „I2C Shield“, skirtas „arduino nano“

2 veiksmas: prijungimas prie aparatūros:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

Techninės įrangos prijungimo skyrius iš esmės paaiškina laidų jungtis, reikalingas tarp jutiklio ir „arduino nano“. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:

MPU-6000 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.

Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas.

Viskas, ko jums reikia, yra keturi laidai! Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.

Šie ryšiai parodyti aukščiau esančiose nuotraukose.

3 veiksmas: judesio stebėjimo kodas:

Judesio sekimo kodas
Judesio sekimo kodas

Pradėkime nuo arduino kodo dabar.

Naudodami jutiklio modulį su arduino, įtraukiame „Wire.h“biblioteką. „Wire“bibliotekoje yra funkcijos, palengvinančios i2c ryšį tarp jutiklio ir arduino plokštės.

Visas arduino kodas vartotojo patogumui pateiktas žemiau:

#įtraukti

// MPU-6000 I2C adresas yra 0x68 (104)

#define Addr 0x68

negaliojanti sąranka ()

{

// Inicijuoti I2C komunikaciją kaip pagrindinį

Wire.begin ();

// Inicijuoti nuoseklųjį ryšį, nustatyti duomenų perdavimo spartą = 9600

Serial.begin (9600);

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite giroskopo konfigūracijos registrą

Wire.write (0x1B);

// Visas skalės diapazonas = 2000 dps

Wire.write (0x18);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite akselerometro konfigūracijos registrą

Wire.write (0x1C);

// Visas skalės diapazonas = +/- 16g

Wire.write (0x18);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite energijos valdymo registrą

Wire.write (0x6B);

// PLL su „xGyro“nuoroda

Wire.write (0x01);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

vėlavimas (300);

}

tuštumos kilpa ()

{

nepasirašyti int duomenys [6];

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite duomenų registrą

Wire.write (0x3B);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Prašyti 6 baitų duomenų

Wire.requestFrom (Addr, 6);

// Perskaitykite 6 baitus duomenų

jei (Wire.available () == 6)

{

duomenys [0] = Wire.read ();

duomenys [1] = Wire.read ();

duomenys [2] = Wire.read ();

duomenys [3] = Wire.read ();

duomenys [4] = Wire.read ();

duomenys [5] = Wire.read ();

}

// Konvertuoti duomenis

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

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

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

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite duomenų registrą

Wire.write (0x43);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Prašyti 6 baitų duomenų

Wire.requestFrom (Addr, 6);

// Perskaitykite 6 baitus duomenų

jei (Wire.available () == 6)

{

duomenys [0] = Wire.read ();

duomenys [1] = Wire.read ();

duomenys [2] = Wire.read ();

duomenys [3] = Wire.read ();

duomenys [4] = Wire.read ();

duomenys [5] = Wire.read ();

}

// Konvertuoti duomenis

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

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

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

// Duomenų išvedimas į serijinį monitorių

Serial.print ("pagreitis X ašyje:");

Serial.println (xAccl);

Serial.print ("pagreitis Y ašyje:");

Serial.println (yAccl);

Serial.print („Pagreitis Z ašyje:“);

Serial.println (zAccl);

Serial.print ("X sukimosi ašis:");

Serial.println (xGyro);

Serial.print („Y sukimosi ašis:“);

Serial.println (yGyro);

Serial.print („Z sukimosi ašis:“);

Serial.println (zGyro);

vėlavimas (500);

}

Laidų bibliotekoje Wire.write () ir Wire.read () naudojami komandoms rašyti ir jutiklio išėjimui skaityti.

Serial.print () ir Serial.println () naudojami jutiklio išėjimui rodyti „Arduino IDE“serijos monitoriuje.

Jutiklio išvestis parodyta aukščiau esančiame paveikslėlyje.

4 žingsnis: programos:

Programos
Programos

MPU-6000 yra judesio sekimo jutiklis, kuris yra pritaikytas išmaniųjų telefonų ir planšetinių kompiuterių judesio sąsajoje. Išmaniuosiuose telefonuose šie jutikliai gali būti naudojami tokiose programose, kaip programų gesto komandos ir telefono valdymas, patobulinti žaidimai, papildyta realybė, panoraminės nuotraukų fiksavimas ir peržiūra, pėsčiųjų ir transporto priemonių navigacija. „MotionTracking“technologija gali paversti telefonus ir planšetinius kompiuterius į galingus 3D išmaniuosius įrenginius, kurie gali būti naudojami įvairiose programose-nuo sveikatos ir tinkamumo stebėjimo iki vietos nustatymo paslaugų.

Rekomenduojamas: