Sisällysluettelo:
- Vaihe 1: Tarvittava laitteisto:
- Vaihe 2: Laitteiston kytkentä:
- Vaihe 3: Liikkeentunnistuksen koodi:
- Vaihe 4: Sovellukset:
Video: Liikkeen seuranta MPU-6000: n ja hiukkasfotonin avulla: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
MPU-6000 on 6-akselinen liikkeenseuranta-anturi, johon on upotettu 3-akselinen kiihtyvyysanturi ja 3-akselinen gyroskooppi. Tämä anturi pystyy tehokkaasti seuraamaan kohteen tarkan sijainnin ja sijainnin kolmiulotteisessa tasossa. Sitä voidaan käyttää järjestelmissä, jotka edellyttävät sijainnin analysointia mahdollisimman tarkasti.
Tässä opetusohjelmassa on kuvattu MPU-6000-anturimoduulin liitäntä hiukkasfotoniin. Kiihtyvyys- ja kiertokulman arvojen lukemiseen olemme käyttäneet hiukkasia I2c -sovittimen kanssa. Tämä I2C -sovitin tekee liitännän anturimoduuliin helppoa ja luotettavaa.
Vaihe 1: Tarvittava laitteisto:
Tehtävän suorittamiseen tarvittavat materiaalit sisältävät alla mainitut laitteistokomponentit:
1. MPU-6000
2. Hiukkasfotoni
3. I2C -kaapeli
4. I2C -suoja hiukkasfotonille
Vaihe 2: Laitteiston kytkentä:
Laitteiston kytkentäosio selittää periaatteessa anturin ja hiukkasfotonin väliset tarvittavat johdotusliitännät. Oikeiden liitosten varmistaminen on perustarve, kun työskentelet minkä tahansa järjestelmän kanssa halutun lähdön saavuttamiseksi. Tarvittavat liitännät ovat siis seuraavat:
MPU-6000 toimii I2C: n kautta. Tässä on esimerkki kytkentäkaaviosta, joka osoittaa, miten anturin jokainen liitäntä kytketään.
Valmis levy on konfiguroitu I2C-rajapintaa varten, joten suosittelemme käyttämään tätä kytkentää, jos olet muuten agnostikko. Tarvitset vain neljä johtoa!
Tarvitaan vain neljä liitäntää Vcc, Gnd, SCL ja SDA, ja ne on kytketty I2C -kaapelin avulla.
Nämä yhteydet on esitetty yllä olevissa kuvissa.
Vaihe 3: Liikkeentunnistuksen koodi:
Aloitetaan nyt hiukkaskoodista.
Kun käytät anturimoduulia arduinon kanssa, sisällytämme hakemistoon application.h ja spark_wiring_i2c.h. "application.h" ja spark_wiring_i2c.h -kirjasto sisältävät toiminnot, jotka helpottavat i2c -tiedonsiirtoa anturin ja hiukkasen välillä.
Koko hiukkaskoodi annetaan alla käyttäjän mukavuuden vuoksi:
#include #include // MPU-6000 I2C-osoite on 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Aseta muuttuja Particle.variable ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Particle.variable ("zGyro", zGyro); // Alusta I2C -tiedonsiirto Master Wire -laitteena.begin (); // Alusta sarjaliikenne, aseta baudinopeus = 9600 Serial.begin (9600); // Käynnistä I2C -lähetys Wire.beginTransmission (Addr); // Valitse gyroskoopin määritysrekisteri Wire.write (0x1B); // Koko asteikon alue = 2000 dps Wire.write (0x18); // Pysäytä I2C -lähetys Wire.endTransmission (); // Käynnistä I2C -lähetys Wire.beginTransmission (Addr); // Valitse kiihtyvyysmittarin määritysrekisteri Wire.write (0x1C); // Koko asteikon alue = +/- 16 g Wire.write (0x18); // Pysäytä I2C -lähetys Wire.endTransmission (); // Käynnistä I2C -lähetys Wire.beginTransmission (Addr); // Valitse virranhallintarekisteri Wire.write (0x6B); // PLL xGyro -viitteellä Wire.write (0x01); // Pysäytä I2C -lähetys Wire.endTransmission (); viive (300); } void loop () {unsigned int data [6]; // Käynnistä I2C -lähetys Wire.beginTransmission (Addr); // Valitse tietorekisteri Wire.write (0x3B); // Pysäytä I2C -lähetys Wire.endTransmission (); // Pyydä 6 tavua dataa Wire.requestFrom (Addr, 6); // Lue 6 tavua dataa, jos (Wire.available () == 6) {data [0] = Wire.read (); data [1] = Wire.read (); data [2] = Wire.read (); data [3] = Wire.read (); data [4] = Wire.read (); data [5] = Wire.read (); } viive (800); // Muunna tiedot xAccl = ((data [1] * 256) + data [0]); jos (xAccl> 32767) {xAccl -= 65536; } yAccl = ((data [3] * 256) + data [2]); jos (yAccl> 32767) {yAccl -= 65536; } zAccl = ((data [5] * 256) + data [4]); jos (zAccl> 32767) {zAccl -= 65536; } viive (800); // Käynnistä I2C -lähetys Wire.beginTransmission (Addr); // Valitse tietorekisteri Wire.write (0x43); // Pysäytä I2C -lähetys Wire.endTransmission (); // Pyydä 6 tavua dataa Wire.requestFrom (Addr, 6); // Lue 6 tavua dataa, jos (Wire.available () == 6) {data [0] = Wire.read (); data [1] = Wire.read (); data [2] = Wire.read (); data [3] = Wire.read (); data [4] = Wire.read (); data [5] = Wire.read (); } // Muunna tiedot xGyro = ((data [1] * 256) + data [0]); jos (xGyro> 32767) {xGyro -= 65536; } yGyro = ((data [3] * 256) + data [2]); jos (yGyro> 32767) {yGyro -= 65536; } zGyro = ((data [5] * 256) + data [4]); jos (zGyro> 32767) {zGyro -= 65536; } // Lähtötiedot kojelautaan Particle.publish ("Kiihtyvyys X-akselissa:", String (xAccl)); viive (1000); Particle.publish ("Kiihtyvyys Y-akselissa:", Jono (yAccl)); viive (1000); Particle.publish ("Kiihtyvyys Z-akselissa:", Jono (zAccl)); viive (1000); Particle.publish ("X-Axis of Rotation:", Jono (xGyro)); viive (1000); Particle.publish ("Y-pyörimisakseli:", Jono (yGyro)); viive (1000); Particle.publish ("Z-Axis of Rotation:", Jono (zGyro)); viive (1000); }
Particle.variable () -funktio luo muuttujat anturin lähdön tallentamiseksi ja Particle.publish () -toiminto näyttää tuotoksen sivuston kojelaudalla.
Anturilähtö näkyy yllä olevassa kuvassa.
Vaihe 4: Sovellukset:
MPU-6000 on liikkeenseuranta-anturi, joka löytää sovelluksensa älypuhelimien ja tablettien liikerajapinnassa. Älypuhelimissa näitä antureita voidaan käyttää sovelluksissa, kuten sovellusten elekomennot ja puhelimen ohjaus, parannettu pelaaminen, lisätty todellisuus, panoraamakuvien sieppaus ja katselu sekä jalankulkijoiden ja ajoneuvojen navigointi. MotionTracking-tekniikka voi muuttaa puhelimet ja tabletit tehokkaiksi 3D-älylaitteiksi, joita voidaan käyttää sovelluksissa terveydestä ja kuntotarkkailusta sijaintiin perustuviin palveluihin.
Suositeltava:
Ihmissilmän liikkeen seuranta: 6 vaihetta
Ihmissilmän liikkeen seuranta: Tämän projektin tarkoituksena on kaapata ihmissilmän liike ja näyttää sen liikkeen LED -valosarjalle, joka on sijoitettu silmän muotoon. Tämän tyyppisellä projektilla voi mahdollisesti olla monia käyttötarkoituksia robotiikan ja erityisesti human alalla
QeMotion - liikkeen seuranta jokaiselle kuulokkeelle!: 5 vaihetta (kuvilla)
QeMotion - liikkeen seuranta jokaiselle kuulokkeelle!: Yleiskatsaus: Tämän laitteen avulla voit käyttää pään liikettä tapahtumien käynnistämiseen periaatteessa missä tahansa videopelissä. Se toimii seuraamalla pään (tai kuulokkeiden) liikettä ja käynnistämällä näppäimistön painalluksia tiettyjä liikkeitä varten. Joten yrityksesi
Kiihtyvyyden seuranta Raspberry Pi: n ja AIS328DQTR: n avulla Pythonin avulla: 6 vaihetta
Kiihtyvyyden seuranta Raspberry Pi: n ja AIS328DQTR: n avulla Pythonin avulla: Kiihtyvyys on rajallinen, mielestäni joidenkin fysiikan lakien mukaan.- Terry Riley Gepardi käyttää hämmästyttävää kiihtyvyyttä ja nopeita nopeuden muutoksia jahtaessaan. Nopein olento rannalla silloin tällöin käyttää huipputahdiaan saaliin saamiseen
Silmien liikkeen seuranta infrapuna -anturin avulla: 5 vaihetta
Silmien liikkeen seuranta infrapuna -anturin avulla: Käytin infrapuna -anturia havaitsemaan silmien liikkeitä ja ohjaamaan LED -valoa
Tfcd 3D -liikkeen seuranta kapasitiivisen tunnistuksen ja LED -lähdön kautta: 6 vaihetta (kuvilla)
Tfcd 3D -liikkeen seuranta kapasitiivisen tunnistuksen ja LED -ulostulon kautta: Tässä ohjeessa selitetään, kuinka käden liikettä voidaan seurata 3D -tilassa kapasitiivisen tunnistuksen periaatteen avulla. Kun muutat etäisyyttä ladatun alumiinikalvon ja kätesi välillä, kondensaattorin kapasiteetti vaihtelee