Sisällysluettelo:

Liikkeen seuranta MPU-6000: n ja hiukkasfotonin avulla: 4 vaihetta
Liikkeen seuranta MPU-6000: n ja hiukkasfotonin avulla: 4 vaihetta

Video: Liikkeen seuranta MPU-6000: n ja hiukkasfotonin avulla: 4 vaihetta

Video: Liikkeen seuranta MPU-6000: n ja hiukkasfotonin avulla: 4 vaihetta
Video: Digital Motion Processing test on MPU 2024, Marraskuu
Anonim
Image
Image

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:

Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
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ä
Laitteiston kytkentä
Laitteiston kytkentä
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:

Liikkeentunnistuksen koodi
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:

Sovellukset
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: