Innholdsfortegnelse:

Bevegelsessporing ved bruk av MPU-6000 og Particle Photon: 4 trinn
Bevegelsessporing ved bruk av MPU-6000 og Particle Photon: 4 trinn

Video: Bevegelsessporing ved bruk av MPU-6000 og Particle Photon: 4 trinn

Video: Bevegelsessporing ved bruk av MPU-6000 og Particle Photon: 4 trinn
Video: ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! 2024, November
Anonim
Image
Image

MPU-6000 er en 6-akset bevegelsessensor som har 3-akset akselerometer og 3-akset gyroskop innebygd i den. Denne sensoren er i stand til effektivt å spore nøyaktig posisjon og plassering av et objekt i det tredimensjonale planet. Den kan brukes i systemene som krever posisjonsanalyse med høyeste presisjon.

I denne opplæringen har grensesnittet mellom sensormodulen MPU-6000 og partikkelfoton blitt illustrert. For å lese verdiene for akselerasjon og rotasjonsvinkel har vi brukt partikkel med en I2c -adapter. Denne I2C -adapteren gjør tilkoblingen til sensormodulen enkel og mer pålitelig.

Trinn 1: Nødvendig maskinvare:

Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves

Materialene som kreves for å utføre vår oppgave inkluderer maskinvarekomponenter som er nevnt nedenfor:

1. MPU-6000

2. Partikkelfoton

3. I2C -kabel

4. I2C -skjerm for partikkelfoton

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvarekoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og partikkelfotonet. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:

MPU-6000 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.

Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker. Alt du trenger er fire ledninger!

Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.

Disse sammenhengene er vist på bildene ovenfor.

Trinn 3: Kode for bevegelsessporing:

Kode for bevegelsessporing
Kode for bevegelsessporing

La oss begynne med partikkelkoden nå.

Mens vi bruker sensormodulen med arduino, inkluderer vi application.h og spark_wiring_i2c.h biblioteket. "application.h" og spark_wiring_i2c.h biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og partikkelen.

Hele partikkelkoden er gitt nedenfor for brukerens bekvemmelighet:

#include #include // MPU-6000 I2C-adressen er 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Angi variabel Particle.variable ("i2cdevice", "MPU-6000"); Partikkel.variabel ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Partikkel.variabel ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Partikkel.variabel ("zGyro", zGyro); // Initialiser I2C -kommunikasjon som Master Wire.begin (); // Initialiser seriell kommunikasjon, sett overføringshastighet = 9600 Serial.begin (9600); // Start I2C -overføring Wire.beginTransmission (Addr); // Velg gyroskopkonfigurasjonsregister Wire.write (0x1B); // Fullt skalaområde = 2000 dps Wire.write (0x18); // Stopp I2C -overføring Wire.endTransmission (); // Start I2C -overføring Wire.beginTransmission (Addr); // Velg akselerometer konfigurasjonsregister Wire.write (0x1C); // Full skala område = +/- 16g Wire.write (0x18); // Stopp I2C -overføring Wire.endTransmission (); // Start I2C -overføring Wire.beginTransmission (Addr); // Velg strømstyringsregister Wire.write (0x6B); // PLL med xGyro -referanse Wire.write (0x01); // Stopp I2C -overføring Wire.endTransmission (); forsinkelse (300); } void loop () {unsigned int data [6]; // Start I2C -overføring Wire.beginTransmission (Addr); // Velg dataregister Wire.write (0x3B); // Stopp I2C -overføring Wire.endTransmission (); // Be om 6 byte med data Wire.requestFrom (Addr, 6); // Les 6 byte med data hvis (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 (); } forsinkelse (800); // Konverter dataene xAccl = ((data [1] * 256) + data [0]); hvis (xAccl> 32767) {xAccl -= 65536; } yAccl = ((data [3] * 256) + data [2]); hvis (yAccl> 32767) {yAccl -= 65536; } zAccl = ((data [5] * 256) + data [4]); hvis (zAccl> 32767) {zAccl -= 65536; } forsinkelse (800); // Start I2C -overføring Wire.beginTransmission (Addr); // Velg dataregister Wire.write (0x43); // Stopp I2C -overføring Wire.endTransmission (); // Be om 6 byte med data Wire.requestFrom (Addr, 6); // Les 6 byte med data hvis (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 (); } // Konverter dataene xGyro = ((data [1] * 256) + data [0]); hvis (xGyro> 32767) {xGyro -= 65536; } yGyro = ((data [3] * 256) + data [2]); hvis (yGyro> 32767) {yGyro -= 65536; } zGyro = ((data [5] * 256) + data [4]); hvis (zGyro> 32767) {zGyro -= 65536; } // Utdata til dashbordet Particle.publish ("Acceleration in X-Axis:", String (xAccl)); forsinkelse (1000); Particle.publish ("Akselerasjon i Y-akser:", String (yAccl)); forsinkelse (1000); Particle.publish ("Acceleration in Z-Axis:", String (zAccl)); forsinkelse (1000); Particle.publish ("X-Axis of Rotation:", String (xGyro)); forsinkelse (1000); Particle.publish ("Y-Axis of Rotation:", String (yGyro)); forsinkelse (1000); Particle.publish ("Z-Axis of Rotation:", String (zGyro)); forsinkelse (1000); }

Particle.variable () -funksjonen oppretter variablene for å lagre sensorens utgang og Particle.publish () -funksjonen viser utgangen på dashbordet til nettstedet.

Sensorutgangen er vist på bildet ovenfor for din referanse.

Trinn 4: Søknader:

Applikasjoner
Applikasjoner

MPU-6000 er en bevegelsessporingssensor, som finner sin anvendelse i bevegelsesgrensesnittet til smarttelefoner og nettbrett. I smarttelefoner kan disse sensorene brukes i applikasjonene, for eksempel bevegelseskommandoer for applikasjoner og telefonkontroll, forbedret spill, utvidet virkelighet, panoramafotografering og visning, samt fotgjenger og kjøretøynavigasjon. MotionTracking-teknologien kan konvertere telefoner og nettbrett til kraftige 3D-intelligente enheter som kan brukes i applikasjoner som spenner fra helse- og treningsovervåking til stedsbaserte tjenester.

Anbefalt: