
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:54


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 dalelių fotonu. Norėdami perskaityti pagreičio ir sukimosi kampo vertes, naudojome daleles su I2c adapteriu. Šis I2C adapteris leidžia lengvai ir patikimiau prijungti jutiklio modulį.
1 veiksmas: reikalinga aparatūra:



Mūsų užduočiai atlikti reikalingos medžiagos apima toliau nurodytus aparatūros komponentus:
1. MPU-6000
2. Dalelių fotonas
3. I2C kabelis
4. I2C skydas dalelių fotonui
2 veiksmas: prijungimas prie aparatūros:


Techninės įrangos prijungimo skyrius iš esmės paaiškina laidų jungtis, reikalingas tarp jutiklio ir dalelių fotono. 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 dalelių kodo dabar.
Naudodami jutiklio modulį su „arduino“, įtraukiame „application.h“ir „spark_wiring_i2c.h“biblioteką. Bibliotekoje „application.h“ir spark_wiring_i2c.h yra funkcijos, palengvinančios i2c ryšį tarp jutiklio ir dalelės.
Visas dalelių kodas pateikiamas žemiau, kad būtų patogiau vartotojui:
#include #include // MPU-6000 I2C adresas yra 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Nustatyti kintamąjį Particle.variable ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Dalelių.kintamasis ("yAccl", yAccl); Dalelių kintamasis ("zAccl", zAccl); Dalelių.kintamasis ("xGyro", xGyro); Dalelių.kintamasis ("yGyro", yGyro); Dalelių.kintamasis ("zGyro", zGyro); // Inicijuoti I2C ryšį kaip pagrindinį laidą.begin (); // Inicijuoti serijinį 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); } void loop () {unsigned int data [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) {data [0] = Wire.read (); duomenys [1] = Wire.read (); duomenys [2] = Wire.read (); duomenys [3] = Wire.read (); duomenys [4] = Wire.read (); duomenys [5] = Wire.read (); } uždelsimas (800); // Konvertuoti duomenis xAccl = ((duomenys [1] * 256) + duomenys [0]); if (xAccl> 32767) {xAccl -= 65536; } yAccl = ((duomenys [3] * 256) + duomenys [2]); if (yAccl> 32767) {yAccl -= 65536; } zAccl = ((duomenys [5] * 256) + duomenys [4]); if (zAccl> 32767) {zAccl -= 65536; } uždelsimas (800); // 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) {data [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 xGyro = ((duomenys [1] * 256) + duomenys [0]); if (xGyro> 32767) {xGyro -= 65536; } yGyro = ((duomenys [3] * 256) + duomenys [2]); if (yGyro> 32767) {yGyro -= 65536; } zGyro = ((duomenys [5] * 256) + duomenys [4]); if (zGyro> 32767) {zGyro -= 65536; } // Išvesties duomenys į prietaisų skydelį Particle.publish ("Pagreitis X ašyje:", eilutė (xAccl)); vėlavimas (1000); Particle.publish ("pagreitis Y ašyje:", eilutė (yAccl)); vėlavimas (1000); Particle.publish ("Pagreitis Z ašyje:", eilutė (zAccl)); vėlavimas (1000); Particle.publish ("X sukimosi ašis:", eilutė (xGyro)); vėlavimas (1000); Particle.publish ("Y sukimosi ašis:", eilutė (yGyro)); vėlavimas (1000); Particle.publish ("Z sukimosi ašis:", eilutė (zGyro)); vėlavimas (1000); }
Funkcija „Particle.variable ()“sukuria kintamuosius, kad išsaugotų jutiklio išvestį, o „Particle.publish“() rodo išvestį svetainės prietaisų skydelyje.
Jutiklio išvestis yra 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:
Saulės skydelio stebėjimas naudojant dalelių fotoną: 7 žingsniai

Saulės skydų stebėjimas naudojant dalelių fotoną: Projekto tikslas - pagerinti saulės kolektorių efektyvumą. Projektas skirtas prižiūrėti saulės fotovoltinės energijos gamybą, siekiant pagerinti saulės jėgainės veikimą, stebėjimą ir priežiūrą. Šiame projekte dalelės ph
Temperatūros stebėjimas naudojant MCP9808 ir dalelių fotoną: 4 žingsniai

Temperatūros stebėjimas naudojant MCP9808 ir dalelių fotoną: MCP9808 yra labai tikslus skaitmeninis temperatūros jutiklis ± 0,5 ° C I2C mini modulis. Jie yra su vartotojo programuojamais registrais, palengvinančiais temperatūros jutimo programas. MCP9808 didelio tikslumo temperatūros jutiklis tapo pramone
Temperatūros ir drėgmės stebėjimas naudojant SHT25 ir dalelių fotoną: 5 žingsniai

Temperatūros ir drėgmės stebėjimas naudojant SHT25 ir dalelių fotoną: Neseniai dirbome prie įvairių projektų, kuriems reikėjo stebėti temperatūrą ir drėgmę, ir tada supratome, kad šie du parametrai iš tikrųjų vaidina lemiamą vaidmenį įvertinant sistemos darbo efektyvumą. Abu Indijoje
Oro kokybės stebėjimas naudojant dalelių fotoną: 11 žingsnių (su nuotraukomis)

Oro kokybės stebėjimas naudojant dalelių fotoną: Šiame projekte PPD42NJ dalelių jutiklis naudojamas matuoti oro kokybę (PM 2,5), esančią ore su dalelių fotonu. Jis ne tik rodo duomenis dalelių konsolėje ir dweet.io, bet ir rodo oro kokybę naudojant RGB šviesos diodą, jį pakeičiant
Konferencijų salės stebėjimas naudojant dalelių fotoną: 8 žingsniai (su nuotraukomis)

Konferencijų salės stebėjimas naudojant dalelių fotoną: Įvadas Šioje dalelėje integruota „Slack“, naudojant „Webhooks“, kad būtų galima gauti realaus laiko atnaujinimus, ar kambarys yra prieinamas, ar ne. PIR jutikliai naudojami