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

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.