Preiswertes Prototyping
Raspberry Pi als Steuerknecht, Kleinrechner, Gateway
Die dritte Generation des Raspberry Pi ist die neueste Entwicklungsstufe der populären Maker-Plattform. Der Zuwachs an Rechenleistung hält sich allerdings in Grenzen – viel interessanter ist beim Raspberry Pi das umfangreiche Hardware-/Software-Ökosystem.
Im Februar 2016 erschien mit dem Raspberry Pi 3 die dritte Generation des populären Kleincomputers. Zwar gibt es inzwischen wesentlich mehr Versionen des Raspberry Pi (siehe Tabelle), aber der eigentlich Boom begann mit dem Modell B. Dieses Board wurde zwar für Ende Februar 2012 angekündigt, doch die Raspberry Pi Foundation wurde vom eigenen Erfolg überrannt und die viel zu wenigen Exemplare waren sofort ausverkauft. Zusammen mit den Distributoren Farnell und RS Components fuhr die Foundation die Fertigung hoch, sodass ab Juni 2012 die Auslieferung der Boards in großen Stückzahlen beginnen konnte.
Familienstammbaum: Neben den hier aufgeführten Modellen gab es noch ein Modell A+, das aber ebenso wie das Modell A praktisch keine Marktbedeutung hat. Wichtiger sind die drei Generationen des eingesetzten Broadcom-SoC.
© BroadcomDer Erfolg des Raspberry Pi beruht u.a. darauf, dass man für den sagenhaften Preis von 35 Dollar einen voll einsatzbereiten Linux-Rechner bekommt. In der Praxis kostet das nackte Board inkl. Mehrwertsteuer im Einzelhandel zwischen 35 und 40 Euro. Zusätzlich benötigt man noch eine (Mikro-)SD-Speicherkarte als Massenspeicher, ein USB-Netzteil sowie sinnvollerweise ein Gehäuse. Auch mit diesen Teilen kostet ein Raspberry Pi noch weit unter 100 Euro. Tastatur, Bildschirm und Kabel dürften in den meisten computeraffinen Haushalten vorhanden sein.
Etwas seltsam mutet heute an, dass fast alle Raspis den Namenszusatz „Model B“ tragen. Anfangs gab es noch ein „Model A“ ohne Ethernet-Buchse und mit nur einem USB-Anschluss, das jedoch keine Marktbedeutung erlangte. Ebenso folgte zwischendurch noch ein „Model A+“, das aber angesichts abweichender Board-Abmessungen in keines der bestehenden Gehäuse passte und ebenfalls keine Akzeptanz fand. Was den Raspis der ersten Generation gemeinsam ist, ist der Rechenkern ARM1176JZF-S, der schon damals nicht auf der Höhe der Zeit war. Die Entscheidung für den angestaubten ARM11 war allerdings den Kosten geschuldet und dem langwierigen Entwicklungszeitraum bis zur Marktreife.
Ein echter Durchbruch war dann der Raspberry Pi 2 im letzten Jahr, der mit dem Quadcore ARM Cortex-A7 einen zwar nicht brandneuen, aber preiswerten und leistungsfähigen Rechenkern brachte. Der Raspberry Pi 2 ist ein vollwertiger Linux-Rechner, der die von der Raspberry Pi Foundation betreute Linux-Distribution „Raspbian“ in einem grafischen Desktop bootet und eine Menge installierter Anwendungsprogramme bereithält. Zwar fühlt sich das Web-Browsen und die Arbeit mit den Libre-Office-Programmen etwas zäh an, aber für einen Sub-100-Euro-Rechner ist das Preis-Leistungs-Verhältnis unschlagbar.
Das gilt auch für den aktuellen Raspberry Pi 3 (Bild 1), bei dem mit den vier Cortex-A53-Kernen eine 64-bit-ARM-Architektur mit ARM-v8-Befehlssatz Einzug gehalten hat. Benchmarks sehen den Raspberry Pi 3 ca. 30 Prozent schneller als seinen Vorgänger. In der direkten Arbeit ist das eine gerade noch wahrnehmbare Beschleunigung, für die allein sich der Kauf der neuen Version kaum lohnen würde. Viel praktischer ist allerdings die Integration von WLAN und Bluetooth 4.0 in den neuen Pi, die entsprechende USB-Dongles überflüssig machen. Seit Mai 2015 gibt es in Raspbian endlich auch integrierte Treiberunterstützung für das Bluetooth-Modul, die händisches Herunterladen und Konfigurieren von Treibern überflüssig macht.
Gescheitertes Compute Module
Eine Sonderstellung nehmen das Compute Module und der Raspberry Pi Zero ein. Das Compute Module hat einen SO-DIMM-Kantensteckverbinder und wird auf ein I/O Board gesteckt. Dementsprechend hat das Modul selbst keine I/O-Schnittstellen – die entsprechenden Steckverbinder müssen auf dem I/O Board aufgelötet werden. Das Compute Module zielt nach dem Paradigma der ARM- und x86-Computermodule à la Qseven und COM Express auf den professionellen Einsatz, wo ein anwendungsspezifisches Träger-Board entwickelt wird.
Bild 2: Der Raspberry Pi Zero ist eine mit 65 × 35 mm2 besonders kleine Implementierung des Raspberry Pi – inzwischen allerdings nicht mehr mit der neuesten Prozessor- generation.
© FarnellDer Vorteil soll darin bestehen, dass die Schnittstellen für die integrierte Peripherie (Display, Audio, USB) und weitere per GPIO angebundene Peripherie zusammengefasst werden können. Das war ein von der Raspberry Pi Foundation gut gemeinter Ansatz; in der Praxis verwendet die Industrie aber lieber den originalen Raspberry Pi, der günstiger und seit Version 2 noch dazu viel leistungsfähiger ist.
Auf mehr Resonanz scheint das Raspberry Pi Zero (Bild 2) zu stoßen. Bei diesem mit 65 × 35 mm2 extrem kompakten Modul wurde an Prozessor und Schnittstellen gespart: Es trägt das SoC der ersten Raspberry-Pi-Generation, allerdings höher getaktet, und hat HDMI- und USB-Schnittstellen nur in miniaturisierter Form an Bord. Die GPIO-Leiste ist nicht bestückt und muss vom Anwender aufgelötet werden. Dafür kostet das Board „nur 5 Dollar“ – in der Praxis werden mit den notwendigen USB- und HDMI-Adaptern 15 Euro fällig.
Bild 3: Mit dem Gehäuse von EMTrust kann man einen Raspberry Pi Zero auf der Hutschiene montieren
© EMTrusMit EMTrust setzt auch ein industrieller Systemhersteller auf den Raspberry Pi Zero. Im Webshop von EMTrust gibt es verschiedene Gehäuse für den Zero (Bild 3). Die robusten Gehäuse bieten Zugang zu allen Schnittstellen und lassen sich einfach montieren. Eine Ergänzung ist mit dem EMTrust-Modul-System möglich. Diese Module sind eigentlich als robuste USB-Erweiterungen für x86-Industrie-PCs entwickelt worden, lassen sich über USB aber auch mit dem Raspberry Pi Zero verbinden. Zum Lieferprogramm gehören CAN-, Seriell- und Gigabit-Ethernet-Modul sowie ein Kartenträger für Mini-PCI-Express-Karten.
Viele Raspberry-Pi-Fans hätten sich mehr Arbeitsspeicher oder Gigabit-Ethernet, vielleicht auch einen SATA-Port gewünscht. Hier sind der Raspberry Pi Foundation allerdings durch die Architektur des Broadcom-SoC die Hände gebunden. Es fällt auf, dass ein Bestandteil über alle Raspberry-Pi-Generationen gleich geblieben ist: der VideoCore IV der drei Broadcom-Chips BCM2835/36/37. Dieser Videoprozessor ist das eigentliche Herz des Chips. Die ARM-Prozessoren sind jeweils nur an ihn angebunden und werden vom VideoCore gebootet. Auch die Peripherie und der Arbeitsspeicher werden über den VideoCore angesteuert. Das Broadcom-SoC wurde seinerzeit von Eben Upton, Mitbegründer der Raspberry Pi Foundation, ausgewählt, der zuvor bei Broadcom gearbeitet hatte. Da er in die spezielle Architektur des Bausteins eingearbeitet war, lag es nahe, diesen zu verwenden.Nun kann der Videocore IV allerdings nicht mehr als 1 GB Arbeitsspeicher adressieren und auch sonst gerät er mit der inzwischen dritten Raspberry-Pi-Generation an seine Grenzen. Es wird spannend werden, wie sich der Raspberry Pi unter diesen Randbedingungen weiterentwickeln wird. Zumal die Foundation bisher alles daran setzte, die Software-Kompatibilität über die verschiedenen Generationen hinweg zu erhalten. Gerade die umfangreiche Software-Unterstützung hat den Raspberry Pi so erfolgreich gemacht.
Raspberry Pi mit Matlab und Simulink
Mit seiner preiswerten Hardware bietet sich der Raspberry Pi sowohl als Experimentiersystem für Maker und im akademischen Umfeld an, wird aber auch in Unternehmen gerne als Prototyping-System eingesetzt. Kommerzielle Anbieter sind auf den Zug aufgesprungen und bieten Hardware- und Software-Erweiterungen an, die auch für professionelle und industrielle Anwender nützlich sind. Zu den Pionieren auf diesem Gebiet zählt Mathworks, die sich sehr stark bei der Unterstützung von Universitäten engagieren und ihre Produkte Matlab und Simulink relativ kostengünstig an wissenschaftliche Institutionen lizenzieren.
Bild 4: Das Support Package für Matlab macht den Raspberry Pi zum Sensor, von dem Werte in Matlab auf dem Entwicklungs-PC eingelesen werden können.
© MathworksMathworks unterstützt den Raspberry Pi mit eigenen Zusatzpaketen bzw. Bibliotheken. Für Matlab existiert ein Support Package, mit dem der Raspi als ferngesteuertes Sensorsystem eingesetzt werden kann. Das Support Pa¬ckage stellt eine Kommunikationsverbindung mit dem Raspi über WLAN und Ethernet her (Bild 4), um dann Daten von den Sensoren oder der Peripherie des Raspi einzulesen. Diese Daten können dann auf dem Entwicklungsrechner mit Matlab analysiert, verarbeitet und dargestellt werden. Das Matlab Support Package enthält Bibliotheken mit Matlab-Funktionen für das Raspberry Pi Camera Board, das I2C-Interface, das SPI-Interface, die serielle Schnittstelle, die GPIO-Pins und die Linux-Befehlszeile. Die Daten dieser Geräte bzw. Anschlüsse können auf den Entwicklungsrechner übertragen werden. Mit weiteren Add-ons wie der DSP System Toolbox und der Image Processing Toolbox können die Daten auf dem Host-System verarbeitet werden. Eine lokale Installation von Matlab auf dem Raspberry Pi ist nicht möglich.
Das sieht anders aus beim Simulink Support Package. Hier wird eine echte Cross-Entwicklung möglich. Das bedeutet: Auf dem Entwicklungsrechner wird mit den Simulink-Blöcken eine Schaltung entworfen, die dann – ebenfalls auf dem Entwicklungsrechner – simuliert wird. Funktioniert alles zur Zufriedenheit, dann wird der Code auf den Raspberry Pi übertragen und läuft dort eigenständig. Das Support-Paket erweitert Simulink durch Blöcke, die die I/O-Anschlüsse des Raspberry Pi ansteuern und auslesen. Auch ein interaktiver Modus ist möglich, bei dem die Parameter geändert werden können, während der Pi das Simulink-Programm ausführt. Mit der Audio-Schnittstelle verfügt der Raspberry Pi über einen D/A- und A/D-Umsetzer, dessen Signale durch Simulink gelesen und geschrieben werden können, ferner werden die Kamera- und die Display-Schnittstelle und die GPIO-Pins unterstützt. Über die Netzwerkschnittstellen können UDP-Pakete gesendet und empfangen werden, außerdem können mit Simulink Daten an die Cloud-Plattform Thingspeak gesendet werden.
Einsatz als SPS
Codesys ist das Synonym für Soft-SPS auf dem PC. Auch für den Raspberry Pi gibt es ein SPS-Laufzeitsystem, das allerdings nicht für den Produktiveinsatz gedacht ist, sondern für Unterricht und Prototyping. Als Grund hierfür gibt 3S, der Hersteller von Codesys, an, dass das Raspberry-Pi-Laufzeitsystem nicht echtzeitfähig ist. Der Jitter ist abhängig von diversen Faktoren, u.a. den parallel ausgeführten Linux-Applikationen. Er liegt im Idealfall bei etwa 50 µs mit Maximalwerten bei etwa 400 µs.
Eine speicherprogrammierbare Steuerung arbeitet in Zyklen: Zunächst werden alle Eingänge eingelesen (Prozessabbild), dann findet die Verarbeitung des SPS-Programms statt und die Ergebnisse werden auf die Ausgänge geschrieben. Damit dieses Prinzip in dynamischen Regelkreisen funktioniert, muss jeder Zyklus innerhalb einer festen Zeit abgearbeitet werden, sonst gerät das System aus dem Tritt. Nun wird man den Raspberry Pi aber nicht dafür einsetzen, die schnellen Antriebe in irgendwelchen Druck- oder Verpackungsmaschinen zu synchronisieren. Oft geht es nur darum, ein paar LED-Anzeigen ein- oder auszuschalten, Ventile oder Relais zu betätigen und eingelesene Sensorwerte anzuzeigen. Dafür eignet sich Codesys auf Raspberry Pi hervorragend.
Bild 5: Der Raspberry Pi als Steuerung – mit dem Codesys-Laufzeitsystem und der Visualisierung über den integrierten Webserver Webvisu.
© 3S SoftwareDas Codesys-Laufzeitsystem wird in das Raspbian- bzw. Debian-Linux des Raspi integriert und mit jedem Systemstart automatisch geladen. Damit später alles funktioniert, sind ein paar Vorkehrungen auf dem Raspi zu treffen, etwa dass SPI und I2C aktiviert sind, eine feste IP-Adresse zugewiesen ist und noch ein paar Sachen mehr, die auf der Codesys Website genau beschrieben sind. Anschließend kann das Laufzeitsystem per IP-Verbindung vom Entwicklungsrechner auf den Raspberry Pi übertragen werden. Auch hier findet – wie bei Simulink – eine Cross-Entwicklung statt: Entwickelt wird auf einem PC, das entwickelte Programm läuft auf dem Zielsystem, dem Raspberry Pi, ab.
Die unlizenzierte Version der Laufzeitumgebung beendet sich nach zwei Stunden von selbst, aber auch eine Lizenz, mit der das System dann zeitlich unbefristet läuft, ist mit 35 Euro praktisch für ein Taschengeld zu haben. Das Codesys-Paket enthält einige Beispielanwendungen, die den Funktionsumfang zeigen. Ein Bestandteil von Codesys ist z.B. der integrierte Webserver „Webvisu“, der Prozessdaten visualisiert (Bild 5). Im Browser können der Status von Ein-/Ausgängen, numerische Werte und Kurvenverläufe in verschiedenen Visualisierungen angezeigt werden. Ebenfalls über den Webserver werden Einzelbilder oder ein Videostream angezeigt, wenn am Raspberry Pi eine Kamera angeschlossen ist. Ein weiteres Beispiel zeigt die Ansteuerung von GPIO-Signalen und deren Visualisierung im Webbrowser. Weitere Beispiele setzen Hardware-Erweiterungen voraus, mit denen sich Ein-/Ausgänge in der SPS-üblichen Form eines Prozessabbilds einlesen lassen, Informationen auf einem Zeilen-Display darstellen lassen, ein Servomotor angesteuert wird usw. Die Möglichkeiten mit Codesys sind sehr umfangreich und die erforderliche Zusatz-Hardware, z.B. von PiFace, ist preiswert.
Ein ähnliches System wie Codesys ist das Soft-SPS-Programmiersystem von logi.cals. Auch von dieser Firma gibt es ein Evaluierungssystem für den Raspberry Pi. Hier wird mit der Entwicklungsumgebung logi.CAD 3 das SPS-Programm erstellt. Eine schlanke Version, logi.CAD 3 compact, kann kostenlos von der Webpräsenz des Herstellers heruntergeladen werden. Auf dem Pi wird auch hier eine Runtime installiert, deren kostenlose Version nach einer Stunde den Dienst einstellt.
Robuste Hardware für den SPS-Einsatz
Die meisten Steuerungsanwendungen kommen kaum ohne Hardware-Erweiterungen aus, denn mit den vier USB-Schnittstellen und der GPIO-Leiste sind die Einsatzmöglichkeiten des Raspberry Pi als Steuerung äußerst begrenzt. Im großen Angebot der Zubehörhersteller finden sich allerdings viele Fundstücke – sowohl mit professionellem Erscheinungsbild als auch für den fliegenden Aufbau auf dem Labortisch. Zu letzterem zählen die Module von PiFace, mit denen man Zeilen-Display, eine Klemmenleiste für digitale I/Os, Platine mit vier Relais und eine SPI-Bus-Leiterplatte mit vier Steckplätzen an den Pi anschließen kann.
Bild 6: PIXtend hat zahlreiche Erweiterungsanschlüsse für Steuerungsanwendungen. Der Raspberry Pi wird in der Mitte aufgesteckt und wirkt fast etwas verloren. Unter dem Metallgehäuse kann das System sogar produktiv in einem Schaltschrank eingesetzt werden.
© ReicheltZiemlich professionell sieht dagegen das Erweiterungs-Board PiXtend aus, wobei die Frage ist, wer hier wen erweitert (Bild 6). Der Raspberry Pi wird aufgesteckt und wirkt fast etwas verloren. Die Liste der Anschlüsse ist umfangreich: digitale und analoge Ein- und Ausgänge, PWM-/Servoausgänge, Relais, serielle Schnittstellen einschließlich CAN, Echtzeituhr, Anschluss für Temperatursensor, 433-MHz-Funkmodul und integriertes Schaltnetzteil. Alle Ein-/Ausgänge sind kurzschlussfest. Ein Kunststoffgehäuse für die Hutschiene und eine Edelstahlhaube sind als Zubehör erhältlich.
Ebenfalls professionell sind die Boards von Horter & Kalb. Der Hersteller hat sich auf Komponenten für (Simatic-)Steuerungen und den I2C-Bus spezialisiert und bietet dieses Zubehör teilweise auch für den Raspberry Pi an. Auf die GPIO-Leiste des Raspi wird ein I2C-Modul gesteckt. Von hier aus sind die Erweiterungsmodule per Kabel angeschlossen. Hierzu zählen analoge und digitale Ein-/Ausgangsmodule (jeweils 8 bit) sowie Karten mit fünf analogen Eingängen oder vier analogen Ausgängen (Auflösung jeweils 10 bit).
Ethernet Powerlink
Ebenfalls in die Kategorie Steuerungstechnik fällt Ethernet Powerlink. Dieses Echtzeit-Ethernet-Protokoll hat die Firma Kalycito auf dem Raspberry Pi 2 implementiert. Die Software besteht aus einem openPowerlink Master und -Slave mit Linux. Kalycito hat eine Demoanwendung entwickelt, die zeigt, dass Powerlink auf dem Raspberry Pi 2 in Kombination mit Steuerungen und dezentralen I/O-Systemen eine interessante Plattform für die vernetzte Industrie- und Heimautomatisierung sein kann. Die Demo wurde mit dem unmodifizierten Open-Source-Paket erstellt. Eine Kurzanleitung und vorgefertigte Demo-Binärdateien können für den Einstieg verwendet werden, bevor die C-Programme für das Senden und Empfangen von Daten über die I/O-Pins weiter modifiziert werden. Weitere Informationen zur Demo-Anwendung gibt es im Internet.
Bild 7: Raspberry Pi im industriellen Gehäuse von Janz Tec. Nicht sichtbar: Die von Janz Tec entwickelte Basisplatine, die auch den D-Sub-Steckverbinder mit der CAN-Schnittstelle enthält. Dazu gibt es die Software für den Einsatz des Raspberry Pi als CAN Gateway.
© Janz TecEinsatz als CAN Gateway
Die Firma Janz Tec hat mit dem emPC-A/RPI ein industrielles Gehäuse für den Raspberry Pi entwickelt (Bild 7). Dieser Pi ist allerdings auf einer von Janz Tec entwickelten Basisplatine montiert, die ein 24-Volt-Netzteil enthält sowie CAN Interface, Echtzeituhr, serielle Schnittstelle und einige digitale Ein-/Ausgänge zum System hinzufügt. Im robusten Metallgehäuse kann dieses System z.B. als kostengünstiges und flexibles Gateway eingesetzt werden. Dazu hat Janz Tec ein Bündel geschnürt, dessen Software von emtas stammt. Das CiA 309 Gateway erlaubt den Zugriff auf CANopen-Netzwerke über eine Netzwerkverbindung. Das Gateway kann dabei auch als CANopen Master agieren und neben den Standard-Diensten wie SDO und PDO auch NMT-Kommandos senden. Die Knotennummer ist bei Programmstart einstellbar. Das Gateway stellt einen TCP-Server auf einem konfigurierbaren Port bereit, mit dem sich TCP Clients verbinden können. Die Kommunikation erfolgt über ASCII-Zeichen. Die Software wird in einer kostenlosen Demoversion auf jedem Gerät mit ausgeliefert. Sie enthält alle Features der Vollversion und ist lediglich in der Laufzeit beschränkt.
Vorcompilierte Beispiele zur Evaluation von CANopen-Anwendungen sind ebenfalls im Lieferumfang des emPC-A/RPI integriert. Die Beispiele implementieren das Profil CiA 401 für generische I/O-Module. Sie ermöglichen auf einfache Art Test und Implementierung von SDO, Node Guarding, Heartbeat, PDO und EMCY-Diensten. Die Beispiele nutzen dabei die SocketCAN-Schnittstelle des emPC A/RPI.
Schließlich gehört zu dem Paket noch das Open-Source Tool „horch“, das CAN-Layer-2-Nachrichten in Textform wandelt. So lassen sich CAN-Nachrichten auf dem Raspberry Pi aufzeichnen und anzeigen. Darüber hinaus kann horch auch als Server arbeiten, der über TCP/IP CAN-Layer-2-Nachrichten an einen Client transportiert. Mit horch lässt sich der Raspberry Pi somit sehr einfach als Datenlogger, zur Fehlersuche oder als CAN-Gateway nutzen.





















