Innholdsfortegnelse:

Bevegelsessporing ved bruk av MPU-6000 og Raspberry Pi: 4 trinn
Bevegelsessporing ved bruk av MPU-6000 og Raspberry Pi: 4 trinn

Video: Bevegelsessporing ved bruk av MPU-6000 og Raspberry Pi: 4 trinn

Video: Bevegelsessporing ved bruk av MPU-6000 og Raspberry Pi: 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 bringebær pi blitt illustrert. For å lese verdiene for akselerasjon og rotasjonsvinkel har vi brukt bringebær pi 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. Bringebær Pi

3. I2C -kabel

4. I2C Shield for bringebær pi

5. Ethernet -kabel

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvaretilkoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og bringebær -pi. Å 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

Fordelen med å bruke bringebær pi er at det gir deg fleksibiliteten til programmeringsspråket der du vil programmere brettet for å koble sensoren til det. Ved å utnytte denne fordelen med dette brettet, demonstrerer vi her programmeringen i python. Python er et av de enkleste programmeringsspråkene med den enkleste syntaksen. Python-koden for MPU-6000 kan lastes ned fra vårt GitHub-fellesskap som er Dcube Store

I tillegg til brukernes brukervennlighet, forklarer vi koden også her:

Som det første trinnet i kodingen må du laste ned SMBus -biblioteket i tilfelle python fordi dette biblioteket støtter funksjonene som brukes i koden. Så for å laste ned biblioteket kan du besøke følgende lenke:

pypi.python.org/pypi/smbus-cffi/0.5.1

Du kan også kopiere arbeidskoden herfra:

importer smbus

importtid

# Få I2C -bussbuss = smbus. SMBus (1)

# MPU-6000-adresse, 0x68 (104)

# Velg konfigurasjonsregister for gyroskop, 0x1B (27)

# 0x18 (24) Fullskalaområde = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

# MPU-6000-adresse, 0x68 (104)

# Velg akselerometer konfigurasjonsregister, 0x1C (28)

# 0x18 (24) Fullskalaområde = +/- 16g

bus.write_byte_data (0x68, 0x1C, 0x18)

# MPU-6000-adresse, 0x68 (104)

# Velg strømstyringsregister1, 0x6B (107)

# 0x01 (01) PLL med xGyro -referanse

bus.write_byte_data (0x68, 0x6B, 0x01)

time.sleep (0,8)

# MPU-6000-adresse, 0x68 (104)

# Les data tilbake fra 0x3B (59), 6 byte

# Akselerometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bus.read_i2c_block_data (0x68, 0x3B, 6)

# Konverter dataene

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

hvis xAccl> 32767:

xAccl -= 65536

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

hvis yAccl> 32767:

yAccl -= 65536

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

hvis zAccl> 32767:

zAccl -= 65536

# MPU-6000-adresse, 0x68 (104)

# Les data tilbake fra 0x43 (67), 6 byte

# Gyrometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bus.read_i2c_block_data (0x68, 0x43, 6)

# Konverter dataene

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

hvis xGyro> 32767:

xGyro -= 65536

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

hvis yGyro> 32767:

yGyro -= 65536

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

hvis zGyro> 32767:

zGyro -= 65536

# Utdata til skjermen

print "Akselerasjon i X-aksen: %d" %xAccl

print "Akselerasjon i Y-aksen: %d" %yAccl

print "Akselerasjon i Z-aksen: %d" %zAccl

print "X-Axis of Rotation: %d" %xGyro

print "Y-rotasjonsakse: %d" %yGyro

print "Z-aksen for rotasjon: %d" %zGyro

Koden kjøres med følgende kommando:

$> python MPU-6000.py gt; python MPU-6000.py

Sensorens utgang er vist på bildet ovenfor for referanse til brukeren.

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: