Daten-Logging am Fahrrad und Motorrad mit dem RasPi

Programmierung

Das Erfassen der Daten am Raspberry Pi erfolgte bei den Projekten mittels Python. Da die Skriptsprache von Anfang an als Basis für Experimente mit dem Mini-PC gedacht war, stehen heute viele Python-Pakete zum Ansteuern der GPIO-Pins und anderer Komponenten bereit.

Listing 1 zeigt, wie das Auslesen des Potentiometers zum Messen des Lenkwinkeleinschlags klappt, das über einen A/D-Wandler am SPI-Bus hängt. Der Bus ist ab Werk deaktiviert, in den Advanced Options des Tools Raspi-config schalten Sie ihn frei [3].

Listing 1

 

#!/usr/bin/python
# Notwendige Pakete importieren
import spidev
import time
import os
import sys
import RPi.GPIO as GPIO
time.sleep(300)
GPIO.setmode(GPIO.BCM)
# GPIO-Pin 23 = Eingang
GPIO.setup(23, GPIO.IN)
# SPI-Bus öffnen
spi = spidev.SpiDev()
spi.open(0,0)
# Variablen definieren
# Abtastrate
delay = 0.5
# Dateipfad
file = "/boot/daten/messungen/poti.txt"
# Trennung
trennzeichen = ';'
# file loeschen
os.remove(file)
def schreiben(data):
  # in Datei schreiben
  fobj_out = open(file,"a")
  fobj_out.write(str(position))
  fobj_out.write(trennzeichen)
  fobj_out.close()
  print position
while True:
  # Daten auslesen
  data = spi.xfer2([0x00])
  schreiben(data)
  time.sleep(delay)
  if GPIO.input(23):
    sys.exit()

Sensoren programmieren

Um mit den einzelnen Sensoren zu kommunizieren, kam die GPIO-Schnittstelle des Raspberry Pi zum Einsatz. Deren Pins dienen sowohl als Eingänge als auch als Ausgänge. Weitere Informationen zum Programmieren der Anschlüsse finden Sie in einem Artikel in RPG 05/2013 [4].

Um die Sensoren so lange abzufragen, bis der Taster zum Beenden der Aufzeichnung ein Signal gibt, laufen die Programme in via while True: realisierten Endlosschleifen. Um die erfassten Daten in eine Datei zu schreiben, kommt ein einfacher Datenstrom zum Einsatz, der diese öffnet, die Werte der einzelnen Variablen in jedem Durchlauf ablegt, sie zum Schluss speichert und die Datei wieder schließt. Als Trennzeichen dient ein Semikolon.

Die Verbindung zwischen Raspberry Pi und GPS-Sensor kommt über die TTL-Pins und ein USB-TTL-Adapterkabel zustande. Der Rechner fragt die Daten bei laufender Messung in einer Endlosschleife ab und schreibt sie mit einem Zeitstempel in eine Datei. Weitere Informationen zur Kombination aus einem Raspberry Pi und dem GPS-Sensor von Adafruit finden Sie auf der Homepage des Unternehmens [5].

Beim Messen der Geschwindigkeit haben die Gruppen unterschiedliche Ansätze gewählt: Zwei Teams verwendeten einen Hallsensor, um die Drehzahl zu erfassen. Die Motorrad-Gruppe dagegen hat das ABS-Signal aus dem Motorsteuergerät verwendet. An dieser Stelle der Warnhinweis: Basteln Sie nicht ohne gute Kenntnisse der Fahrzeugtechnik selbst an der Elektronik eines Gefährts herum.

Beim Ansatz mit dem Hallsensor führten schlussendlich unterschiedliche Wege zum Ziel: Der Sensor liefert pro Umdrehung des Rads eine positive Flanke, die wiederum einen Interrupt auslöst, was eine Variable um den Wert 1 erhöht. Anschließend wertet das Programm die Variable alle zwei Sekunden aus und rechnet die Daten in Umdrehungen pro Minute um. Diese schreibt es danach wieder in die Datei. Damit das Auswerten klappt, erfasst die Software zu Beginn und am Ende des Durchlaufs die Systemzeit und bildet die Differenz.

Eine weitere Möglichkeit besteht darin, die Differenz der Zeit (ebenfalls über die interne Systemzeit) zwischen den einzelnen Messpunkten zu erfassen und über den Umfang des Rads auf die Geschwindigkeit zu schließen. Die Drehzahl liefert dann die Taktfrequenz für die restliche Sensorik. Das spart Speicher und erfasst im Stillstand keine Parameter. Die Testperson beendet die Messung über einen Taster, der mit sys.exit() das Python-Programm abbricht.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • PHP auf dem Raspberry Pi

    Es muss nicht immer Python sein: Auch per PHP lassen sich auf dem RasPi die GPIO-Pins ansteuern, was das Ganze für Webapps interessant macht.

  • RasPi-Alternative Banana Pi im Test

    Zum Basteln genügt die Leistung des Raspberry Pi locker, doch als Mini-Server oder Multimedia-Center dürfte er ruhig ein wenig mehr Saft haben. Der Banana Pi verspricht Kompatibilität zum Raspberry Pi – bei einem Plus an Rechenleistung.

  • Raspberry Pi und Arduino via UART koppeln

    Sowohl der RasPi als auch der Arduino bringen serielle Schnittstellen mit. Kleine Anpassungen genügen, um beide darüber kommunizieren zu lassen. So können Sie viele bestehende Arduino-Projekte auch mit dem Raspberry Pi nutzen.

  • Display T. Box 7: Raspberry-Set mit Touchscreen und Gehäuse

    Viele RasPi-Projekte erfordern einen Bildschirm samt Eingabemöglichkeit, etwa einen kleinen Touchscreen und eine entsprechend optimierte GUI. Die Display T. Box 7 vereint den offiziellen RasPi-Touchscreen mit einem praktischen Gehäuse.

  • Raspberry Pi im Naturschutz

    In einem Naturschutzgebiet bedrohen Fuchs und Marder seltene bodenbrütende Vögel. Als Gegenmaßnahme dienen Lebendfallen, die ein Tandem aus Mikrocontroller und RasPi überwacht.

Aktuelle Ausgabe

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.