Innholdsfortegnelse:
- Trinn 1: Nødvendig maskinvare:
- Trinn 2: Maskinvaretilkobling:
- Trinn 3: Kode for bevegelsessporing:
- Trinn 4: Søknader:
Video: Bevegelsessporing ved bruk av MPU-6000 og Arduino Nano: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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:
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:
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:
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:
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:
Hindring for å unngå robot ved bruk av Arduino Nano: 5 trinn
Hindring for å unngå robot ved hjelp av Arduino Nano: I denne instruksen skal jeg beskrive hvordan du kan hindre en robot ved å bruke Arduino
QeMotion - bevegelsessporing for hvert headset !: 5 trinn (med bilder)
QeMotion - Motion Tracking for Every Headset !: Oversikt: Denne enheten lar deg bruke hodebevegelsen til å utløse hendelser i stort sett alle videospill. Det fungerer ved å spore bevegelsen til hodet ditt (eller hodesettet i den forbindelse) og utløse tastaturpress for visse bevegelser. Så kompisen din
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: 4 trinn
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: Hei, jeg er Rithik. Vi kommer til å lage en Internett -kontrollert LED ved hjelp av telefonen din. Vi kommer til å bruke programvare som Arduino IDE og Blynk. Det er enkelt, og hvis du lyktes kan du kontrollere så mange elektroniske komponenter du vilTing We Need: Hardware:
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Atollic TrueStudio-Switch på LED-en ved å trykke på trykknappen ved bruk av STM32L100: 4 trinn
Atollic TrueStudio-Switch på LED-en ved å trykke på trykknappen ved bruk av STM32L100: I denne opplæringen til STM32 skal jeg fortelle deg hvordan du leser en GPIO-pin av STM32L100, så her skal jeg lage en ombord LED-glød av bare trykke på trykknappen