Inhaltsverzeichnis:

Bewegungsverfolgung mit MPU-6000 und Raspberry Pi - Gunook
Bewegungsverfolgung mit MPU-6000 und Raspberry Pi - Gunook

Video: Bewegungsverfolgung mit MPU-6000 und Raspberry Pi - Gunook

Video: Bewegungsverfolgung mit MPU-6000 und Raspberry Pi - Gunook
Video: Raspberry Pi MPU-6000 6-Axis Motion Tracking Sensor Python Tutorial 2024, Juli
Anonim
Image
Image

MPU-6000 ist ein 6-Achsen-Bewegungsverfolgungssensor, in den ein 3-Achsen-Beschleunigungsmesser und ein 3-Achsen-Gyroskop eingebettet sind. Dieser Sensor ist in der Lage, die genaue Position und Position eines Objekts in der dreidimensionalen Ebene effizient zu verfolgen. Es kann in Systemen eingesetzt werden, die eine Positionsanalyse mit höchster Präzision erfordern.

In diesem Tutorial wurde die Anbindung des MPU-6000 Sensormoduls an Raspberry Pi dargestellt. Zum Auslesen der Werte von Beschleunigung und Drehwinkel haben wir Raspberry Pi mit einem I2c-Adapter verwendet. Dieser I2C-Adapter macht die Verbindung zum Sensormodul einfach und zuverlässiger.

Schritt 1: Erforderliche Hardware:

Erforderliche Hardware
Erforderliche Hardware
Erforderliche Hardware
Erforderliche Hardware
Erforderliche Hardware
Erforderliche Hardware

Zu den Materialien, die wir zur Erreichung unseres Ziels benötigen, gehören die folgenden Hardwarekomponenten:

1. MPU-6000

2. Himbeer-Pi

3. I2C-Kabel

4. I2C-Schild für Himbeer-Pi

5. Ethernet-Kabel

Schritt 2: Hardwareanschluss:

Hardware-Anschluss
Hardware-Anschluss
Hardware-Anschluss
Hardware-Anschluss

Der Abschnitt zum Hardwareanschluss erklärt im Wesentlichen die erforderlichen Kabelverbindungen zwischen dem Sensor und dem Himbeer-Pi. Die Sicherstellung korrekter Verbindungen ist die Grundvoraussetzung bei der Arbeit an jedem System für die gewünschte Ausgabe. Die erforderlichen Verbindungen sind also wie folgt:

Der MPU-6000 wird über I2C arbeiten. Hier ist das Beispiel-Verdrahtungsdiagramm, das zeigt, wie jede Schnittstelle des Sensors verdrahtet wird.

Out-of-the-box ist das Board für eine I2C-Schnittstelle konfiguriert, daher empfehlen wir, diesen Anschluss zu verwenden, wenn Sie ansonsten agnostisch sind.

Alles was Sie brauchen sind vier Drähte! Es werden nur vier Anschlüsse benötigt Vcc, Gnd, SCL und SDA Pins und diese werden mit Hilfe von I2C Kabel verbunden.

Diese Verbindungen sind in den obigen Bildern dargestellt.

Schritt 3: Code für Bewegungsverfolgung:

Code für Bewegungsverfolgung
Code für Bewegungsverfolgung

Der Vorteil der Verwendung von Raspberry Pi ist, dass Sie die Flexibilität der Programmiersprache haben, in der Sie das Board programmieren möchten, um den Sensor damit zu verbinden. Diesen Vorteil dieses Boards nutzend, demonstrieren wir hier seine Programmierung in Python. Python ist eine der einfachsten Programmiersprachen mit einfachster Syntax. Der Python-Code für MPU-6000 kann von unserer GitHub-Community heruntergeladen werden, dem Dcube Store

Neben der Benutzerfreundlichkeit erklären wir den Code auch hier:

Als ersten Schritt der Codierung müssen Sie im Falle von Python die SMBus-Bibliothek herunterladen, da diese Bibliothek die im Code verwendeten Funktionen unterstützt. Um die Bibliothek herunterzuladen, können Sie den folgenden Link besuchen:

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

Sie können den Arbeitscode auch von hier kopieren:

smbus importieren

Importzeit

# I2C-Busbus abrufen = smbus. SMBus(1)

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

# Gyroskop-Konfigurationsregister auswählen, 0x1B(27)

# 0x18(24) Skalenendwert = 2000 dps

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

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

# Wählen Sie das Konfigurationsregister des Beschleunigungsmessers, 0x1C(28)

# 0x18(24) Skalenendwert = +/-16g

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

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

# Wählen Sie das Energieverwaltungsregister1, 0x6B(107)

# 0x01(01) PLL mit xGyro-Referenz

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

time.sleep(0.8)

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

# Daten von 0x3B(59) zurücklesen, 6 Byte

# Beschleunigungsmesser X-Achse MSB, X-Achse LSB, Y-Achse MSB, Y-Achse LSB, Z-Achse MSB, Z-Achse LSB

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

# Konvertieren Sie die Daten

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

wenn xAccl > 32767:

xAccl -= 65536

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

wenn yAccl > 32767:

yAccl -= 65536

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

wenn zAccl > 32767:

zAccl -= 65536

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

# Daten von 0x43(67), 6 Bytes zurücklesen

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

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

# Konvertieren Sie die Daten

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

wenn xGyro > 32767:

xGyro -= 65536

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

wenn yGyro > 32767:

yGyro -= 65536

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

wenn zGyro > 32767:

zGyro -= 65536

# Daten auf den Bildschirm ausgeben

print "Beschleunigung in X-Achse: %d" %xAccl

print "Beschleunigung in Y-Achse: %d" %yAccl

print "Beschleunigung in Z-Achse: %d" %zAccl

print "X-Rotationsachse: %d" %xGyro

print "Y-Rotationsachse: %d" %yGyro

print "Z-Rotationsachse: %d" %zGyro

Der Code wird mit folgendem Befehl ausgeführt:

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

Die Ausgabe des Sensors wird im obigen Bild zur Referenz des Benutzers angezeigt.

Schritt 4: Anwendungen:

Anwendungen
Anwendungen

MPU-6000 ist ein Motion-Tracking-Sensor, der seine Anwendung in der Bewegungsschnittstelle von Smartphones und Tablets findet. In Smartphones können diese Sensoren in Anwendungen wie Gestenbefehlen für Anwendungen und Telefonsteuerung, Enhanced Gaming, Augmented Reality, Panoramafotoaufnahme und -betrachtung sowie Fußgänger- und Fahrzeugnavigation eingesetzt werden. Die MotionTracking-Technologie kann Handys und Tablets in leistungsstarke 3D-intelligente Geräte umwandeln, die in Anwendungen eingesetzt werden können, die von der Gesundheits- und Fitnessüberwachung bis hin zu standortbasierten Diensten reichen.

Empfohlen: