Fahrzeugdaten übertragen mit dem Raspberry Pi

Hardware

Für so eine Aufgabe möchte man einen leistungsfähigen Server verbauen. Im Renneinsatz relevant sind aber in erster Linie die Größe, das Gewicht, der Stromverbrauch und nicht zuletzt der Preis. Da bietet sich fast zwangsläufig ein Raspberry Pi an. Auch im neuesten Rennfahrzeug von joanneum racing graz [1] sammelt ein solcher die Messdaten, wertet sie aus und stellt sie dem Boxenteam bereits während des Rennens zur Verfügung.

Daneben kommen ein aktiver USB-Hub, ein WLAN-Stick, eine WLAN-fähige Kamera, ein CAN-USB-Adapter sowie ein UMTS-Stick zur Datenübertragung an die Box zum Einsatz – und unvermeidlicherweise ein paar Kabel (Abbildung 4).

Abbildung 4: Die Hardware-Komponenten im Testaufbau.

CAN unter Linux

Der Linux-Kernel bringt bereits etliche Treiber für den CAN-Bus mit, als einheitliche Abstraktionschicht lassen sich diese als Netzwerk-Devices ansprechen (Abbildung 5). Die Treiber beweisen übrigens, dass nicht nur private Kernel-Hacker und IT-Firmen am freien Betriebssystemkern mitprogrammieren – der Code wurde von Volkswagen Group Electronic Research beigetragen.

Abbildung 5: SocketCAN im Linux Kernel. (Bild: Wikimedia Commons)

Auch der verwendete Treiber für den USB-CAN Adapter der Firma Peak ist eigentlich in dem Linux-Kernel enthalten – allerdings nicht beim Standard-Raspbian. Man muss daher das Modul selbst kompilieren, aber auch das erweist sich als nicht ganz einfach: Im Standard-Raspbian-Image [2] versieht ein von der Raspberry Pi Foundation modifizierter, speziell optimierter Kernel (3.6.11+) den Dienst, der im Repository weder die passenden Kernel-Sourcen noch die zugehörigen Header führt.

Es gilt also, erst einmal auf den Standard-Kernel von Raspbian zu wechseln (Listing 2, Zeile 1) und anschließend in der Datei /boot/config.txt den neuen Kernel einzutragen (kernel=vmlinuz-3.6-trunk-rpi). Nach einem anschließenden Neustart fehlt zwar noch der Peak-Treiber [3] (Listing 2, Zeile 2), aber es liegen zumindest die passenden Header-Files vor, sodass man den Treiber nun übersetzen und installieren kann (Listing 3).

Listing 2

 

$ sudo apt-get install linux-image-3.6-trunk-rpi linux-headers-3.6-trunk-rpi libpopt-dev
$ grep CAN_PEAK /boot/config-3.6-trunk-rpi
# CONFIG_CAN_PEAK_USB is not set

Listing 3

 

$ wget http://www.peak-system.com/fileadmin/media/linux/files/peak-linux-driver-7.9.tar.gz
$ tar xvzf peak-linux-driver-7.9.tar.gz
$ cd peak-linux-driver-7.9
$ make PCI=NO_PCI_SUPPORT USB=USB_SUPPORT
$ sudo make install
$ sudo depmod -a

Damit liegt das Modul nun einsatzbereit vor. Man lädt es entweder selbst mit sudo modprobe pcan oder steckt den CAN-Adapter ein – das Modul wird dann automatisch geladen. Im Fall eines Kernel-Updates darf man allerdings nicht vergessen, den CAN-Treiber wieder zu kompilieren und neu zu installieren.

Der PCAN-Treiber legt bei der Installation automatisch die Datei /etc/modprobe.d/pcan.conf an. Um die Bitrate des CAN-Busses auf 1 Mbit/s zu erhöhen, muss man bei diesem Modul die Geschwindigkeit beim Laden des Moduls angeben – automatisiert klappt das beispielsweise mit options pcan bitrate=0x0014 in dieser Datei. Werte für andere Geschwindigkeiten finden Sie in der Tabelle "PCAN-Modul: Geschwindigkeiten" (entnommen aus dem PCAN-Quellcode). Bei anderen CAN-Modulen erreichen Sie dasselbe mit folgendem Befehl:

# ip link set can0 type can bitrate 1000000

PCAN-Modul: Geschwindigkeiten

Bitrate

Moduloption

1000 kbit/s

0x0014

500 kbit/s

0x001C

250 kbit/s

0x011C

125 kbit/s

0x031C

100 kbit/s

0x432F

50 kbit/s

0x472F

20 kbit/s

0x532F

10 kbit/s

0x672F

5 kbit/s

0x7F7F

Zum Zugriff auf das CAN-Netzwerk-Device gibt es im Userspace die Can-Utilities [4], die man nach dem Herunterladen des Quellcodes mit make; sudo make install installiert. Zum Auslesen des CAN-Busses dient das Tool candump (siehe Listing 1). Ein Datenpaket auf dem CAN-Bus besteht aus einer 11 Bit langen CAN-ID, es folgen eine Längenangabe (1 bis 8 Byte) sowie die Daten. Bei Bedarf ließen sich mit cansend sogar eigene Nachrichten in den CAN-Bus schreiben.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 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

  • PiXtend: Leichter Einstieg in die industrielle Steuerungstechnik (SPS)

    Der Raspberry Pi eignet sich dank des GPIO-Ports auch für den Einsatz in der Industrie. Dort stößt er aber schnell an seine Grenzen. Mit dem PiXtend-Board lassen sich bei Bedarf leicht analoge Ein- und Ausgänge oder PWM-Anschlüsse aufrüsten.

  • Nautische Navigation mit dem RasPi und OpenCPN

    Im zweiten Teil der Serie über den Raspberry Pi auf Sportbooten zeigt der Mini-Computer, dass er sich als ideale Basis für ein Low-Cost-Navigationssystem eignet: OpenCPN und ein GPS-Empfänger genügen.

  • Raspberry Pi via Funk aufwecken

    Möchten Sie Ihren RasPi nur mit Batteriestrom speisen, ist es sinnvoll, ihn nur dann zu aktivieren, wenn Sie ihn auch brauchen. Quasi auf Zuruf bootet der Mini-Rechner per Funknachricht, gesendet im europäischen 868-MHz-Band.

  • Die AnonyMeBox von Pi3g im Test

    Mithilfe der AnonyMeBox surfen Sie von allen Ihren Rechnern und mobilen Geräten aus anonym im Internet, ohne dazu die Tor-Software auf den Clients installieren und einrichten zu müssen.

  • Der Raspberry Pi 3 Model B im Detail

    Viele Raspberry-Fans wünschten sich für die nächste Generation des Mini-Computers USB 3.0, SATA-Schnittstelle und Gigabit-Ethernet. Dies alles bietet der Raspberry Pi 3 nicht, dafür aber WLAN, Bluetooth und eine schnelle 64-Bit-CPU.

Aktuelle Ausgabe

12/2017
Schräge Hacks

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial eines Mini-PC. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Digitaler Widerstand

  • 3, 2, 1 … los!

    Ein Countdown ist nicht nur in der Raumfahrt sinnvoll. Mit einem Raspberry Pi und etwas Elektronik zählen Sie die Zeit bis zu einem beliebigen Ereignis optisch eindrucksvoll herunter.

  • Blog out of the box

    Das bei Bloggern beliebte CMS Wordpress kommt besonders Einsteigern mit einer einfachen Oberfläche und aktiven Community entgegen. Mit Blog In A Box setzen Sie ein solches Komplettsystem im Handumdrehen auf einem RasPi auf.

  • Angetestet

    Barefootd 1.4.1 leitet Ports und Verbindungen weiter, schlanke OpenSSH-Alternative Dropbear 2017.75, Httpbench 0.2.2 erfasst Webserver-Reaktionszeiten, Mtr 0.92 kombiniert Traceroute und Ping.

  • Öfter mal was Neues?

    Mit dem neuen Raspbian-Release "Stretch" schlägt die Raspberry Pi Foundation überflüssige technische Kapriolen, die einer auf Bildung und Ausbildung fokussierten Organisation schlecht zu Gesicht stehen, findet Chefredakteur Jörg Luther.

  • Aufgeweckt

    Dank der Chat-Plattform Telegram und einem eigenen Chatbot kommunizieren Sie mit dem Mini-PC selbst durch eine Firewall hindurch.

  • Elektropuzzle

    Das Board PiXtend erweitert den RasPi zu einer leistungsfähigen Steuereinheit. Neben dem Komplett-Kit bietet der Hersteller die Platine als Bausatz an, die Lötprofis viel Spaß bereitet und Einsteigern bei den ersten Schritten in der Elektronik-Welt hilft.

  • Nerds only

    Der Nerd-Wecker weckt – und macht gleichzeitig jede Menge Spaß beim Bauen und Anpassen.

  • Hightech-Halloween

    Ein gestandener Bastler zelebriert Halloween mit allerlei technischem Hokuspokus. Der Raspberry Pi liefert dafür die ideale Ausgangsbasis.