Sensordaten in Raspberry Pi integrieren: GPS & MPU-9150 Hands-On Guide
Abstract
Lernen Sie, wie Sie Daten von einem GPS-Modul und einem MPU-9150 IMU auf einem Raspberry Pi über I²C- und UART-Schnittstellen anschließen und auslesen und die Informationen in Echtzeit für autonome Navigation verarbeiten.
Schlüsselwörter: I2C-Kommunikation, UART-Kommunikation, Adafruit Ultimate GPS Breakout, Sparkfun MPU-9150 Breakout, Raspberry Pi Setup
Einführung
Sensordaten-Akquisition ist das Rückgrat jedes digitalen Steuerungssystems. Wenn ein eingebetteter Controller diese Eingaben verarbeitet, wird die Wahl der Kommunikationsschnittstelle kritisch. Für ein Robotik-Navigationsprojekt sind kontinuierliche GPS-Positionsupdates und präzise Kursmessungen essenziell. Dieses Tutorial demonstriert, wie man ein GPS-Modul und einen Magnetometer an einen Raspberry Pi verdrahtet, die Daten remote anzeigt und in Steuerungssoftware integriert.
Ziel
Dieses fortgeschrittene Tutorial setzt Vertrautheit mit Raspberry Pi OS und grundlegenden Bash-Befehlen voraus. Es führt Sie durch das Auslesen von Beschleunigungsmesser- und GPS-Daten über die seriellen Schnittstellen des Pi, das Verdrahten der Sensoren und das Konfigurieren der nötigen Hardware-Treiber.
Informationen
Hardware
- Sparkfun 9-Degrees-of-Freedom Breakout (MPU-9150)
- Adafruit Ultimate GPS Breakout
Der MPU-9150 ist ein Multi-Chip-Modul, das einen MPU-6050 (3-Achsen Gyroskop & Beschleunigungsmesser) und einen AK8975 digitalen Kompass kombiniert. Er wird in Smartphones und Tablets für seinen niedrigen Stromverbrauch und hohe Performance breit eingesetzt.
Der Adafruit Ultimate GPS basiert auf einem MTK3339 Chip, bietet 10 Hz Update-Rate, 22-Satelliten-Tracking und externen Antennenport. Seine rote LED zeigt Signalstatus: 1 Hz während der Suche und 15-Sekunden-Blinken bei Fix.
Kommunikationsstandards
I²C nutzt zwei bidirektionale Leitungen (SDA & SCL), um einen Master (den Pi) mit mehreren Slaves zu verbinden, jeder mit einzigartiger Adresse.
UART überträgt Daten asynchron in 5-8-Bit-Frames bei programmierbarer Baudrate, benötigt separate TxD und RxD Leitungen.
Teileliste
- Raspberry Pi
- Netzteil
- WLAN-Dongle
- Sparkfun MPU-9150 Breakout
- Adafruit Ultimate GPS Breakout
- USB-zu-TTL Adapter (optional)
- Breadboard
- M-to-F Jumper-Kabel
Annahmen
- Internetzugang verfügbar.
- Raspberry Pi OS installiert und auf Desktop-Modus eingestellt.
- Maus, Tastatur und HDMI-Monitor angeschlossen.
Prozeduren
- Pi's GPIO-Pins identifizieren: UART nutzt GPIO 14 (Tx) & 15 (Rx); I²C nutzt GPIO 2 (SDA) & 3 (SCL).
- GPS verdrahten: GPS Tx an Pi Rx, Rx an Pi Tx, 3,3V oder 5V an Vin, GND an Pi Ground.
- MPU-9150 verdrahten: Vcc an 3,3V, GND an Ground, SDA an GPIO 2, SCL an GPIO 3.
- I²C auf Pi aktivieren:
sudo apt-get update && sudo apt-get install i2c-tools libi2c-devausführen.- WiringPi installieren:
git clone git://git.drogon.net/wiringPi && cd wiringPi && sudo nano /etc/modulesundsnd-bcm2835,i2c-bcm2708,i2c-devhinzufügen. /boot/config.txtbearbeiten,dtparam=i2c1=onunddtparam=i2c_arm=onhinzufügen, dann rebooten.
- MPU-6050 Demo installieren:
git://github.com/richardghirst/PiBits.gitklonen, zuMPU6050-Pi-Demonavigieren,libgtkmm-3.0-devinstallieren.I2Cdev.cppundsetup-i2c.shbearbeiten,/dev/i2c-0durch/dev/i2c-1ersetzen.- Mit
makekompilieren,./setup-i2c.shausführen, dann mitsudo i2cdetect -y 1verifizieren. - Demo mit
./demo_rawausführen für rohe Gyro- und Beschleunigungsdaten.
- GPS-Datenerfassung einrichten:
- Adafruits GPS Daemon Guide ist Startpunkt, aber für custom handling nutzen wir die Open-Source libgps Library.
git://github.com/wdalmut/libgps.gitklonen, mitmake && sudo make installkompilieren.- Mit mitgeliefertem
position_logger.cBeispiel testen: viagcc -o position_logger position_logger.c -lgps -lmkompilieren und./position_loggerausführen. Bei Fix werden Breiten- und Längengrad in Dezimalgrad ausgegeben.
Fazit
Dieses Tutorial deckte Hardware-Verdrahtung, Aktivierung von Kommunikationsprotokollen und grundlegendes Software-Setup für zwei gängige Sensoren auf einem Raspberry Pi ab. Während die Beispiele auf Datenanzeige fokussieren, erweitern dieselben Prinzipien sich auf die Integration von Sensorausgaben in anspruchsvolle Navigations- oder Steuerungsalgorithmen. Beherrschung jeder Sensor-Library und solides Verständnis von C/C++ Entwicklung ermöglichen komplexere, Echtzeit-Sensorfusion.
Referenzen
- Kevin Townsend. Adafruit Ultimate GPS on the Raspberry Pi, 15. Juli 2014.
- Walter Dal Mut. UART NMEA GPS Library für Raspberry Pi, 08. Sept 2014.
- InvenSense. MPU-9150 Datasheet, 18. Sept 2013.
Herstellungsprozess
- Mehrere DS18B20 1-Wire Sensoren an Raspberry Pi anschließen für präzises Temperaturmonitoring
- Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
- Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Günstiger Raspberry Pi Bodenfeuchtesensor für smarte Bewässerung
- Echtzeit Pan/Tilt Gesichtstracking auf Raspberry Pi – Praktischer Leitfaden
- Lego Mindstorms NXT Ultraschallsensor direkt an Raspberry Pi anschließen
- HC-SR04 Ultraschallsensor an Raspberry Pi anschließen – Praktischer Leitfaden
- Erstes IoT-Projekt mit Raspberry Pi, DHT11 und ThingSpeak bauen
- Automatisiertes Aeroponik-System mit Raspberry Pi und Feuchtigkeitssensor bauen