Innholdsfortegnelse:

Bevegelsessporing ved bruk av MPU-6000 og Arduino Nano: 4 trinn
Bevegelsessporing ved bruk av MPU-6000 og Arduino Nano: 4 trinn

Video: Bevegelsessporing ved bruk av MPU-6000 og Arduino Nano: 4 trinn

Video: Bevegelsessporing ved bruk av MPU-6000 og Arduino Nano: 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 MPU-6000 sensormodulen og arduino nano blitt illustrert. For å lese verdiene for akselerasjon og rotasjonsvinkel har vi brukt arduino nano 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 vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:

1. MPU-6000

2. Arduino Nano

3. I2C -kabel

4. I2C Shield for arduino nano

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvarekoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og arduino nano. Å 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 arduino -koden nå.

Mens vi bruker sensormodulen med arduinoen, inkluderer vi Wire.h -biblioteket. "Wire" -biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og arduino -kortet.

Hele arduino -koden er gitt nedenfor for brukerens bekvemmelighet:

#inkludere

// MPU-6000 I2C-adressen er 0x68 (104)

#define Addr 0x68

ugyldig oppsett ()

{

// 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 konfigurasjonsregister for gyroskop

Wire.write (0x1B);

// Fullskalaområde = 2000 dps

Wire.write (0x18);

// Stopp I2C -overføring

Wire.endTransmission ();

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Velg konfigurasjonsregister for akselerometer

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);

}

hulrom ()

{

usignerte 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 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

int xAccl = data [0] * 256 + data [1];

int yAccl = data [2] * 256 + data [3];

int zAccl = data [4] * 256 + data [5];

// 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 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

int xGyro = data [0] * 256 + data [1];

int yGyro = data [2] * 256 + data [3];

int zGyro = data [4] * 256 + data [5];

// Utdata til seriell skjerm

Serial.print ("Akselerasjon i X-akse:");

Serial.println (xAccl);

Serial.print ("Akselerasjon i Y-akser:");

Serial.println (yAccl);

Serial.print ("Akselerasjon i Z-akse:");

Serial.println (zAccl);

Serial.print ("X-rotasjonsakse:");

Serial.println (xGyro);

Serial.print ("Y-aksen for rotasjon:");

Serial.println (yGyro);

Serial.print ("Z-aksen for rotasjon:");

Serial.println (zGyro);

forsinkelse (500);

}

I trådbiblioteket brukes Wire.write () og Wire.read () til å skrive kommandoene og lese sensorutgangen.

Serial.print () og Serial.println () brukes til å vise sensorens utgang på den serielle skjermen til Arduino IDE.

Sensorens utgang er vist på bildet ovenfor.

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: