Raspberry Pi, BeagleBone Black und Arduino: Nur etwas für Tüftler, Studenten und Enthusiasten, oder können diese Single-Board-Computer auch eine schnelle Entwicklungsumgebung für professionelle Embedded Developers darstellen?

Kaum ein Tag vergeht ohne die Ankündigung eines neuen Single-Board-Computers. Der sogenannte ‘Raspberry Pi’ Effekt leistete einen erheblichen Beitrag zu der Einführung dieser Boards. Doch während der Raspberry Pi zweifelsohne hauptverantwortlich für das wachsende Interesse an Small-Board-Computern ist, ist er in keineswegs allein. Viele andere Modelle sind bereits seit Jahren im Umlauf. Der Arduino ist wahrscheinlich der bekannteste und am häufigsten lizenzierte Small-Board-Computer auf dem Markt. So kommt es nicht von ungefähr, dass Raspberry Pi und Arduino zu den beliebtesten Single-Board-Computern zählen. Man findet sie buchstäblich in Tausenden von Projekten von ‘Tüftlern’ und Elektronikenthusiasten: Angefangen bei Web-Servern für Kühlschränke, bishin zu unabhängigen Langstrecken-Quadrocoptern. Das Ausmaß des Open-Source Eco-Systems von Arduinos Mikrocontroller-basierten Projekten, Quellcodes und Erweiterungsplatinen (sogenannte 'Shields') ist atemberaubend. Auch der Raspberry Pi erfreut sich stets größerer Beliebtheit. Mit seinem ARM-basierten Mikroprozessor und dem Linux Betriebssystem gestaltet er Projekte und Anwendungen wesentlich anders als der Arduino.

Dabei ist das Konzept eines Single-Board-Computers natürlich nicht neu. Halbleiter-Hersteller verkaufen diese bereits seit Jahren um die Integration ihrer neuesten Mikrocontroller-Geräte zu vereinfachen, indem sie eine mit zahlreichen Peripherie-Geräten und E/A ausgestattete Low-Cost-Evaluierungsplattform zur Verfügung stellen, die als Basis der neuesten Designs von Embedded Developers dienen kann. Der BeagleBone ist ein ideales Beispiel für ein derartiges Entwicklungs-Board: Es wurde von Texas Instruments im Jahre 2008 entwickelt, um Studenten den Umgang mit Open-Source Hardware- und Software-Entwicklung auf der Basis von TI’s OMAP3530 System-on-Chip (SoC) gezielt näher zu bringen. Einige Board-Entwicklungsschritte später erweist sich der im Kreditkartenformat gestaltete BeagleBone Black als ernstzunehmender Konkurrent von Arduino und Raspberry Pi.

Es besteht kein Zweifel, dass alle drei Boards dauerhaft für Ausbildungszwecke in Elektroniklehrgängen, sowie für Amateur-Projekte verwendet werden können – doch eignen sie sich auch als Basis neuen kommerziellen Designs von professionellen Embedded Developers?

Arduino

Zuallererst muss erwähnt werden, dass Arduino nicht einfach nur ein Board ist. Es ist viel mehr eine ganze Reihe an Boards. Davon basieren alle – bis auf eines – auf Atmels weitläufig unterstützter und beliebter ATmega Reihe an 8-bit AVR-basierten Mikrocontrollern. Die Arduino Familie beherbergt Produkte verschiedenster Größen, E/A- und Speicher-Konfigurationen. Der Arduino Uno ist das beliebteste Board der gesamten Reihe (Arduino selbst bezeichnet es als Referenz-Design) und basiert auf einem Atmel ATmega328 mit 16 MHz. E/A umfasst 6 Analog-Eingänge und 14 Digital-E/A, von denen insgesamt 6 als PWM verwendet werden können. Die MCU bietet 1 kB EEPROM, 2 kB SRAM und 32 kB Flash-Speicher. Der Arduino Due hingegen basiert auf einem Atmel SAM3X8E ARM 32-bit Cortex-M3 Mikroprozessor und verbessertem E/A mit 54 Digital-E/As, von denen jeweils 12 als PWM-Ausgang und Analog-Eingang, sowie 2 als Analog-Ausgang verwendet werden können. Dabei steht ein 512 kB Flash-Speicher zusammen mit insgesamt 96 kB SRAM zur Verfügung. Er läuft auf 84 MHz und ist somit das schnellste aller Arduino Boards.

 

Abbildung 1 – Arduino Uno

 

Sämtliche E/As und Leistungen sind über zwei Steckerreihen zugänglich. Es ist dem Standard-Layout zu verdanken, dass die Erweiterungsmodule auf dem Board nun Platz für eine ganze Reihe an Zusatzgeräten für nahezu alle Funktionen bieten, darunter WiFi, LCD Bildschirme, ZigBee und viele weitere. Arduino selbst bietet ein weitläufiges Portfolio an, von Motorsteuerung über Ethernet bishin zu einem Wireless-Prototyping Shield. Mit der kostenfreien IDE zum Herunterladen werden Programmieren und Target-Upload zu einem Kinderspiel. Die IDE bedient sich einer C-basierten Sprache, dank der die E/A-Fähigkeiten des Boards mühelos zugänglich sind. Programme, von Arduino selbst als 'Sketches' bezeichnet, können über USB programmiert werden. Professionelle Entwickler bevorzugen meist jedoch den STK500-basierten Bootloader über die integrierte serielle Programmierstiftleiste (ICSP). Die Vorteile für Embedded Developer sind zahlreich. Board Design und IDE sind Open-Source und herausgegeben unter GPL. Die Creative Commons Attribution Share-ähnliche Lizenz ist sowohl für private, als auch für kommerzielle Produkte gültig – gleichwohl zu beachten ist, dass sämtliche eigenentwickelte Boards unter derselben Lizenz ausgegeben werden. Für den Fall, dass Sie sich der Gestaltung geradliniger industrieller Anwendungen kleineren Umfangs annehmen möchten, könnten die bestehenden Boards im Ist-Zustand und in Kombination mit den erforderlichen Shields eine realistische Option sein. Bei Designs größeren Umfangs und besserer BOM-Kostenkontrolle hingegen können gänzlich neu entwickelte Board-Designs die bessere Lösung sein. Für Anwendungen, die nicht zu rechenintensiv sind und zugleich die Interaktion mit zahlreichen Sensoren erfordern, ist Arduino mit Sicherheit die perfekte Lösung. Sie können es nahezu mit allem und jedem verbinden. Bei Designs mit eingeschränktem Raumangebot eignen sich entweder Uno, oder Arduino Mini, das kleinste aller Boards (eine vollständige Liste finden Sie unter arduino.cc). Entwickler können sich sicher sein, dass sich das Arduino Design ausgesprochen gut bewährt hat. Professionelle Tools beinhalten ein Eclipse-Plugin und eine IDE von Visual Micro.

BeagleBone Black

Der BeagleBone Black ist relativ neu auf dem Markt und zugleich das einzige Board, das von einem Halbleiter-Hersteller entwickelt wurde - Texas Instruments. Als Teil einer Community-supported Entwicklungsplattform für Embedded Developers, bootet er Linux eigenen Angaben zufolge in weniger als 10 Sekunden. Mit seinem unmittelbaren Vorgänger, dem BeagleBone, bewährte sich die Größe des Boards und die E/A Anschlussbelegung, die von nun an als Standard einer Arduino-ähnlichen Shields übernommen wurde, genannt 'Capes'. Nüchtern betrachtet ist der BeagleBone Black von Grund auf anders und wesentlich leistungsstärker als der Arduino.

 

Abbildung 2 – BeagleBone Black

Er ist eher ein Single-Board Computer als eine eingebettete Plattform. Der 'Black' basiert auf einem TI Sitara AM335x 1 GHz 32-bit ARM Cortex-A8 Anwendungsprozessor und klassifiziert sich somit als eigenständig. 512 MByte DRAM und 2GB Flash sind von Haus aus an Bord. Ausgestattet mit einem 3D-Grafikbeschleuniger und einem NEON Gleitkomma-Beschleuniger zielt der Black vor allem auf Hochleistungsanwendungen ab. Die Konnektivität beinhaltet USB, Ethernet, HDMI und Zugang zu bis zu 65 GPIO Steckern über 2 x 46 Stiftleisten, die auch für die Erweiterungs-Capes verwendet werden. Während Sie sich mit Arduino auf Arduino IDE und einzelne Programme beschränken, zeichnet sich der BeagleBone Black durch die Unterstützung zahlreicher Softwares aus. Einfach Netzteil, Tastatur, Maus und Bildschirm anschließen und der Black startet die vorinstallierte Angström Linux-Verteilung. Zu weiteren OS-Optionen zählen Android- und Ubuntu-Verteilungen. Zur Verfügung stehen diese und viele weitere Optionen auf der Community-Site auf beagleboard.org. Gleichwohl die Anzahl der erhältlichen Capes zu Beginn nicht gar so groß ist wie bei Arduinos Shields, nimmt diese Zahl mit der stets wachsenden Beliebtheit des Black immer mehr zu. Angesichts der höheren Leistung des Black sind die verfügbaren Capes oftmals wesentlich ausgereifter als manche von Arduino. Ebenso wie Arduino fordert auch die BeagleBoard Community die Integration des Designs von BeagleBone Black für kommerzielle Anwendungen. Alle Hardware-Designfiles sind in Open-Source-Lizenz erhältlich. Entwickler werden jedoch gebeten, das Board im Ist-Zustand ohne einer vollständigen Prüfung und Zustimmung seitens der BeagleBoard Community nicht in ein kommerzielles Design zu integrieren.

In Sachen Software-Entwicklung weist der BeagleBone Black angenehme Überraschungen auf: Anfänger und auch erfahrene Entwickler werden mit Freude herausfinden, dass der Black über einen eigenen Web-Server verfügt, der eine Übersicht über die Fähigkeiten des Boards bietet. Zusätzlich dazu gibt es zahlreiche Webseiten, um BoneScript Codes anzuzeigen und abzurufen, die Arduino-ähnlichen Zugang zu E/A bieten. Befehle wie digitalWrite() und pinMode() sind denen von Arduino sehr ähnlich. Ebenso ist eine lokale Replik der beliebten Cloud9 IDE auf dem Board enthalten, die eine für die meisten Anwendungen passende IDE bietet. Darüberhinaus sind alle normalen Linux Befehle und Netzwerkprogramme, darunter SSH, verfügbar. Während die Bonescript Befehle eine gute Möglichkeit bieten, das Board kennenzulernen, neigen professionelle Entwickler oftmals zu Sprachen wie Perl, Python und C++, die allesamt mit beliebten IDEs wie Eclipse, GCC oder über TI’s Code Composer Studio unterstützt werden. Mit ihrem ausführlich dokumentierten Zugang zu E/A und der breit angelegten Softwareunterstützung stellen BeagleBone Black-basierte Designs eine ideale Basis für die Gestaltung von Anwendungen dar, die eine Internet-Verbindung, gute E/A-Konnektivität und mittlere CPU-Leistung erfordern.

Raspberry Pi

Abbildung 3 – Raspberry Pi – Modell B board

Raspberry Pi: das Board, das verantwortlich ist für das zunehmende öffentliche Interesse an Single-Board-Computern. Ursprünglich entwickelt für Universität- und Hochschulstudenten, entwickelte sich das Pi mit seinem wesentlich breiteren Spektrum rasch zum Favoriten der Community. Grundschulen und Scout-Groups haben allesamt Anwendungen für den Raspberry Pi für sich entdeckt. In technischer Hinsicht hat der Pi mehr mit BeagleBone Black als mit dem Arduino gemeinsam. Basierend auf einem Broadcom BCM2835 SoC, verfügt er über einen ARM1176 MPU Core mit 700 Mhz, sowie über 512 Mbytes RAM. Zusätzlich wird eine SD-Speicherkarte mit 4 GB oder mehr benötigt. Zahlreiche Linux Verteilungen, darunter Fedora, Debian und Raspian, sind erhältlich für den Raspberry Pi – im Gegensatz zum BeagleBone Black sind sie jedoch nicht vorinstalliert. Für einen professionellen Entwickler stellt das natürlich kein Hindernis dar, bei ihren weniger erfahrenen Kollegen mag das schon anders aussehen. Mit Onboard USB, Ethernet, HDM und einem Composite Video-Ausgang glänzt der Pi. Ein einzelner Erweiterungssteckverbinder bietet Zugang zu GPIO, sowie zu SPI, I2C und zur Stromversorgung.

Gleichwohl er keinerlei GPIO-Erweiterung an einer Tochterleiterplatten-Anordnung unterstützt, wie zum Beispiel Shields und Capes, profitiert der Raspberry Pi von einer Reihe an Prototypen-Boards und Modulen, die mit den allermeisten Designs kompatibel sind und von Dritten entwickelt wurden. Doch der Raspberry Pi verfügt über einen Audio-Out-Jack, was bei den anderen Standard-Boards nicht der Fall ist. Die vielfältige Unterstützung von Linux gewährleistet, dass alle beliebten Programmiersprachen, darunter C/C++, Perl und Python, unterstützt werden. Visuell-basierte Programmiertools, wie zum Beispiel Sketch, erwiesen sich als äußerst beliebt unter Studenten. Das Besonderes des Raspberry Pi: Das Broadcom SoC Gerät in der Form einer VideoCore 4 GPU. Dies erlaubt die Wiedergabe in Blu-Ray-Qualität mit H.264 und unterstützt die Anforderungen von OpenGL ES2.0 und OpenVG. So ist es keine Überraschung, dass der Raspberry Pi ein breites Spektrum an HD-Video-Anwendungen unterstützt und für derartige Designs überaus viele Softwares unterstützt – etwas, was Arduino und BeagleBone Black nicht haben.

 

Fazit

Jedes bewertete Board bietet professionellen Entwicklern die Gelegenheit, die Design- und Prototypenphase eines neuen Produkts zu verkürzen. Die Wahl von Programmiersprache, E/A-Anforderungen und -Anwendung, wird zusammen mit den eigenen Fähigkeiten der Entwickler das gewählte Board erheblich beeinflussen. Bei der Integration eines neuen Designs mit zahlreichen Sensor-E/As könnte ein unerfahrener Entwickler eher zu einem Board mit besseren E/A Tutorials und mehr Support tendieren. Auf welches Board die Entscheidung auch immer fallen mag – Entwickler können sich sicher sein, dass die Wahl eines Boards, das bereits von vielen Ingenieuren genutzt wird und in zahlreichen Foren diskutiert wird, mit wesentlich weniger Aufwand verbunden sein wird, als die Gestaltung eines völlig Neuen.