Turinys:
- 1 veiksmas: reikalinga aparatūra:
- 2 veiksmas: prijungimas prie aparatūros:
- 3 veiksmas: judesio stebėjimo kodas:
- 4 žingsnis: programos:
Video: Judesio stebėjimas naudojant MPU-6000 ir „Arduino Nano“: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
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:
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:
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:
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:
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:
„QeMotion“- judesio stebėjimas kiekvienai laisvų rankų įrangai!: 5 žingsniai (su nuotraukomis)
„QeMotion“- judesio stebėjimas kiekvienai laisvų rankų įrangai! Tai veikia stebint jūsų galvos (ar ausinių) judėjimą ir tam tikrus judesius paspaudžiant klaviatūrą. Taigi jūsų kompas
Driežo terariumo stebėjimas naudojant „Adosia IoT WiFi“valdiklį + judesio aptikimas: 17 žingsnių (su nuotraukomis)
Driežo terariumo stebėjimas naudojant „Adosia IoT WiFi Controller + Motion Detect“: šioje pamokoje parodysime, kaip sukurti paprastą driežo terariumą saujai skinkų kiaušinių, kuriuos atsitiktinai radome ir sutrikome sodo lauke. Norime, kad kiaušiniai išsiristų saugiai, Taigi viskas, ką mes padarysime, yra sukurti saugią erdvę naudojant plastiką
Pagreitėjimo stebėjimas naudojant „Raspberry Pi“ir AIS328DQTR naudojant „Python“: 6 žingsniai
Pagreitėjimo stebėjimas naudojant „Raspberry Pi“ir „AIS328DQTR“naudojant „Python“: pagreitis yra baigtinis, manau, pagal kai kuriuos fizikos įstatymus.- Terry Riley A gepardas naudoja nuostabų pagreitį ir greitus greičio pokyčius. Greičiausias padaras į krantą kartkartėmis naudoja didžiausią tempą grobiui sugauti
Pagreitėjimo variantų stebėjimas naudojant „Raspberry Pi“ir MMA7455 naudojant „Python“: 6 žingsniai
Pagreitėjimo variantų stebėjimas naudojant „Raspberry Pi“ir „MMA7455“naudojant „Python“: nesuklydau, bandžiau gravitaciją. Jis vis dar veikia… Atskleidžiant greitėjantį erdvėlaivį, paaiškėjo, kad laikrodis aukščiausiame šaudyklės taške pasirenka greičiau nei vienas bazėje dėl gravitacinio laiko išsiplėtimo. Kai kurie
„Tfcd 3D“judesio stebėjimas naudojant talpinį jutiklį ir LED išvestį: 6 žingsniai (su paveikslėliais)
„Tfcd 3D“judesio sekimas naudojant talpinį jutiklį ir šviesos diodų išvestį: Šioje instrukcijoje paaiškinama, kaip galima stebėti rankos judesį 3D erdvėje, naudojant talpinio jutimo principą. Pakeitus atstumą tarp įkrautos aliuminio folijos ir jūsų rankos, kondensatoriaus talpa skirsis