Indholdsfortegnelse:

Bevægelsessporing ved hjælp af MPU-6000 og Raspberry Pi: 4 trin
Bevægelsessporing ved hjælp af MPU-6000 og Raspberry Pi: 4 trin

Video: Bevægelsessporing ved hjælp af MPU-6000 og Raspberry Pi: 4 trin

Video: Bevægelsessporing ved hjælp af MPU-6000 og Raspberry Pi: 4 trin
Video: Brilliant Smart Home Control Installation | Trin-for-trin guide! 2024, Juli
Anonim
Image
Image

MPU-6000 er en 6-akset bevægelsessporingssensor, der har 3-akset accelerometer og 3-akset gyroskop indlejret i det. Denne sensor er i stand til effektivt at spore den nøjagtige position og placering af et objekt i det tredimensionelle plan. Det kan bruges i de systemer, der kræver positionsanalyse til den højeste præcision.

I denne vejledning er grænsefladen mellem MPU-6000 sensormodul og hindbær pi blevet illustreret. For at aflæse værdierne for acceleration og rotationsvinkel har vi brugt hindbær pi med en I2c -adapter. Denne I2C -adapter gør forbindelsen til sensormodulet let og mere pålidelig.

Trin 1: Påkrævet hardware:

Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet

De materialer, vi har brug for for at nå vores mål, omfatter følgende hardwarekomponenter:

1. MPU-6000

2. Hindbær Pi

3. I2C -kabel

4. I2C Skjold til hindbær pi

5. Ethernet -kabel

Trin 2: Hardware -tilslutning:

Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning

Hardware -tilslutningssektionen forklarer grundlæggende de ledningsforbindelser, der kræves mellem sensoren og hindbær pi. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:

MPU-6000 fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren.

Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne tilslutning, hvis du ellers er agnostiker.

Alt du behøver er fire ledninger! Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel.

Disse forbindelser er vist på billederne ovenfor.

Trin 3: Kode til bevægelsessporing:

Kode til bevægelsessporing
Kode til bevægelsessporing

Fordelen ved at bruge hindbær pi er, at det giver dig fleksibiliteten i det programmeringssprog, hvor du vil programmere tavlen for at kunne tilslutte sensoren til den. Ved at udnytte denne fordel ved dette board demonstrerer vi her sin programmering i python. Python er et af de letteste programmeringssprog med den letteste syntaks. Python-koden til MPU-6000 kan downloades fra vores GitHub-fællesskab, der er Dcube Store

Ud over brugernes brugervenlighed forklarer vi også koden her:

Som det første trin i kodning skal du downloade SMBus -biblioteket i tilfælde af python, fordi dette bibliotek understøtter de funktioner, der bruges i koden. Så for at downloade biblioteket kan du besøge følgende link:

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

Du kan også kopiere arbejdskoden herfra:

import smbus

importtid

# Få I2C busbus = smbus. SMBus (1)

# MPU-6000 adresse, 0x68 (104)

# Vælg gyroskopkonfigurationsregister, 0x1B (27)

# 0x18 (24) Fuld skala = 2000 dps

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

# MPU-6000 adresse, 0x68 (104)

# Vælg accelerometer konfigurationsregister, 0x1C (28)

# 0x18 (24) Fuld skala område = +/- 16g

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

# MPU-6000 adresse, 0x68 (104)

# Vælg strømstyringsregister1, 0x6B (107)

# 0x01 (01) PLL med xGyro -reference

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

time.sleep (0,8)

# MPU-6000 adresse, 0x68 (104)

# Læs data tilbage fra 0x3B (59), 6 bytes

# Accelerometer 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)

# Læs data tilbage fra 0x43 (67), 6 bytes

# 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

# Output data til skærmen

print "Acceleration i X-akse: %d" %xAccl

print "Acceleration i Y-akse: %d" %yAccl

print "Acceleration i Z-akse: %d" %zAccl

print "X-rotationsakse: %d" %xGyro

print "Y-rotationsakse: %d" %yGyro

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

Koden udføres ved hjælp af følgende kommando:

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

Sensorens output vises på billedet ovenfor til brugerens reference.

Trin 4: Ansøgninger:

Ansøgninger
Ansøgninger

MPU-6000 er en bevægelsessporingssensor, som finder sin anvendelse i bevægelsesgrænsefladen på smartphones og tablets. I smartphones kan disse sensorer bruges i applikationer såsom gestuskommandoer til applikationer og telefonkontrol, forbedret spil, augmented reality, panoramafotografering og visning samt fodgænger- og køretøjsnavigation. MotionTracking-teknologi kan konvertere håndsæt og tablets til kraftfulde 3D intelligente enheder, der kan bruges i applikationer lige fra sundheds- og fitnessovervågning til lokationsbaserede tjenester.

Anbefalede: