Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Sensordata integreren in een Raspberry Pi: Een praktische gids

Samenvatting

Leer hoe u data van een GPS-module en een MPU-9150 IMU op een Raspberry Pi kunt verbinden en uitlezen via I²C- en UART-interfaces, en de informatie in realtime verwerkt voor autonome navigatie.

Trefwoorden: I2C-communicatie, UART-communicatie, Adafruit Ultimate GPS Breakout, Sparkfun MPU-9150 Breakout, Raspberry Pi Setup

Inleiding

Sensor-data-acquisitie is de ruggengraat van elk digitaal besturingssysteem. Wanneer een embedded controller deze inputs verwerkt, wordt de keuze van de communicatieinterface kritiek. Voor een robotnavigatieproject zijn continue GPS-locatie-updates en accurate koersmetingen essentieel. Deze tutorial demonstreert hoe u een GPS-module en een magnetometer aan een Raspberry Pi kabelt, de data extern bekijkt en integreert in besturingssoftware.

Doel

Deze geavanceerde tutorial veronderstelt bekendheid met Raspbian en basis bash-commando's. Het begeleidt u door het uitlezen van accelerometer- en GPS-data via de seriële interfaces van de Pi, het bedraden van de sensoren en het configureren van de benodigde hardware-drivers.

Informatie

Hardware

  • Sparkfun 9-Degrees-of-Freedom Breakout (MPU-9150)
  • Adafruit Ultimate GPS Breakout

De MPU-9150 is een multi-chip-module die een MPU-6050 (3-as gyroscoop & accelerometer) en een AK8975 digitale kompas combineert. Het wordt wijd gebruikt in smartphones en tablets vanwege zijn lage stroomverbruik en hoge prestaties.

De Adafruit Ultimate GPS is gebouwd rond een MTK3339-chip, met een 10 Hz-updaterate, 22-satelliet-tracking en een externe antennepoort. De rode LED geeft signaalstatus aan: 1 Hz tijdens zoeken en 15-seconde knipperingen wanneer een fix bereikt is.

Communicatiestandaarden

I²C gebruikt twee bidirectionele lijnen (SDA & SCL) om een master (de Pi) met meerdere slaves te verbinden, elk met een uniek adres.

UART transmiteert data asynchroon in 5–8-bit frames op een door de programmeur gedefinieerde baudrate, met afzonderlijke TxD- en RxD-lijnen.

Onderdelenlijst

  • Raspberry Pi
  • Voeding
  • Wi-Fi-dongle
  • Sparkfun MPU-9150 breakout
  • Adafruit Ultimate GPS breakout
  • USB-naar-TTL-adapter (optioneel)
  • Breadboard
  • M-naar-F jumper wires

Aannames

  • Internettoegang is beschikbaar.
  • Raspbian is geïnstalleerd en ingesteld op desktop-modus.
  • Een muis, toetsenbord en HDMI-monitor zijn aangesloten.

Procedures

  1. Identificeer de GPIO-pins van de Pi: UART gebruikt GPIO 14 (Tx) & 15 (Rx); I²C gebruikt GPIO 2 (SDA) & 3 (SCL).
  2. GPS bedraden: Verbind de GPS's Tx met Pi's Rx, Rx met Pi's Tx, voorzie 3,3 V of 5 V aan Vin, en verbind GND met de ground van de Pi.
  3. MPU-9150 bedraden: Verbind Vcc met 3,3 V, GND met ground, SDA met GPIO 2, en SCL met GPIO 3.
  4. I²C op de Pi inschakelen:
    • Voer sudo apt-get update && sudo apt-get install i2c-tools libi2c-dev uit.
    • Installeer WiringPi: git clone git://git.drogon.net/wiringPi && cd wiringPi && sudo nano /etc/modules en voeg snd-bcm2835, i2c-bcm2708, i2c-dev toe.
    • Bewerk /boot/config.txt om dtparam=i2c1=on en dtparam=i2c_arm=on toe te voegen, herstart daarna.
  5. MPU-6050 demo installeren:
    • Kloon git://github.com/richardghirst/PiBits.git, navigeer naar MPU6050-Pi-Demo, installeer libgtkmm-3.0-dev.
    • Bewerk I2Cdev.cpp en setup-i2c.sh om /dev/i2c-0 te vervangen door /dev/i2c-1.
    • Compileer met make, voer ./setup-i2c.sh uit, verifieer met sudo i2cdetect -y 1.
    • Voer de demo uit met ./demo_raw om ruwe gyro- en accelerometerdata te bekijken.
  6. GPS-data-acquisitie instellen:
    • Adafruit's GPS Daemon-gids is een startpunt, maar voor custom handling gebruiken we de open-source libgps-bibliotheek.
    • Kloon git://github.com/wdalmut/libgps.git, compileer met make && sudo make install.
    • Test met het meegeleverde position_logger.c voorbeeld: compileer via gcc -o position_logger position_logger.c -lgps -lm en voer ./position_logger uit. Wanneer een fix verkregen is, print latitude en longitude in decimale graden.

Conclusie

Deze tutorial dekte de hardware-bedrading, het inschakelen van communicatieprotocollen en de basissoftware-setup voor twee gangbare sensoren op een Raspberry Pi. Hoewel de voorbeelden zich richten op dataweergave, strekken dezelfde principes zich uit naar het integreren van sensoroutputs in geavanceerde navigatie- of besturingsalgoritmes. Beheersing van elke sensorbibliotheek en een solide greep op C/C++-ontwikkeling zullen complexere, realtime sensorfusie mogelijk maken.

Referenties

Productieproces

  1. Meerdere DS18B20 1-Wire Sensoren Aan Een Raspberry Pi Koppelen Voor Nauwkeurige Temperatuurmonitoring
  2. Professionele temperatuurbewaking met Raspberry Pi en DS18B20
  3. Accurate temperatuurbewaking in een serverkast met Raspberry Pi
  4. Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
  5. Een Goedkope Raspberry Pi Grondvochtigheidssensor Bouwen voor Slimme Irrigatie
  6. Real-time Pan/Tilt gezichtsvolging op een Raspberry Pi – Praktische Gids
  7. Een Lego Mindstorms NXT-ultrasone sensor direct verbinden met een Raspberry Pi
  8. Een HC-SR04 ultrasone sensor verbinden met een Raspberry Pi – Een praktische gids
  9. Bouw je eerste IoT-project met Raspberry Pi, DHT11 en ThingSpeak
  10. Een geautomatiseerd aeroponisch systeem bouwen met Raspberry Pi en vochtigheidssensor
  11. Een Raspberry Pi thuistemperatuurmonitor bouwen met MCP9808, InfluxDB & Grafana