Warum sich Raspberry Pi, Arduino & Co. als Entwicklerplattform eignen

| Autor / Redakteur: Wolfgang Lex * / Margit Kuther

Raspberry Pi: nicht nur bei Makern sondern auch bei Entwicklern beliebt
Raspberry Pi: nicht nur bei Makern sondern auch bei Entwicklern beliebt (Bild: Conrad Electronic)

Singleboard-Computer wie Raspberry Pi und Arduino sind preiswert und bieten etliche Vorteile gegenüber Mikrocontrollern. Lesen Sie, welcher SBC für Ihre Anwendung am besten geeignet ist.

Scrollt man durch die Kommentare in Technologie-Foren oder -Nachrichten, stellt sich oft die Frage „Warum fehlt die Funktion X?“. Offensichtlich liegt dies nicht an der mangelnden Innovationskraft der Halbleiterhersteller. ICs werden immer kleiner, höher integriert und bieten immer mehr Funktionen. Wahrscheinlicher ist, dass die verantwortlichen Entwickler unter zu hohem Zeitdruck standen, um alternative Lösungen zu bewerten, mit denen sie ihr Design hätten differenzieren können. Zwar bieten fast alle Halbleiterhersteller eine Art Evaluierungsboard zusammen mit einem neuen IC an – das aber nicht immer so bereitgestellt wird, dass es sich für eine schnelle Evaluierung eignet.

Mikrocontroller (MCUs) mit ihren seriellen Schnittstellen, digitalen I/Os und A/D-Wandlern (als Peripherie) scheinen die ideale Wahl für die schnelle Umsetzung eines Prototypen zu sein. Da MCUs immer komplexer werden, haben sich jedoch auch ihre Entwicklungstools, Softwarebibliotheken und Entwicklungsboards weiterentwickelt. Trotz aller Bemühungen der Anbieter sind generische Entwicklungsboards mit steckbaren (Plug-in) MCU-Modulen nie flexibel genug – weder für Schnittstellen der nächsten Generation (USB und Ethernet) noch für die immer breitere Palette von Anwendungen, in denen MCUs eingesetzt werden.

MCUs sind meist auch eine Herausforderung, wenn sie in einen brauchbaren Zustand versetzt werden sollen. Die Funktion des gesamten Bausteins ist oft eng mit der Oszillatorfrequenz gekoppelt. Selbst bei Code-Ausschnitten aus früheren Projekten und einer Konfigurationsfunktion hat eine Änderung der Taktfrequenz Auswirkungen auf die Peripherie – von den Timern bis hin zu den seriellen Schnittstellen – und das alles, bevor die MCU auch nur annähernd einen nützlichen Abschnitt des Anwendungscodes ausführt.

Arduino, vom 8-Bit-AVR-Core leicht zum 32-Bit-ARM-Core wechseln

Arduino: punktet mit vereinfachter Entwicklungs- und Programmierumgebung
Arduino: punktet mit vereinfachter Entwicklungs- und Programmierumgebung (Bild: Conrad Electronic)

Die Einführung von Arduino war ein innovativer Schritt, auch wenn die Fachwelt ihn zunächst als Spielzeug für Hobbyisten belächelt hat. Durch die Standardisierung der verfügbaren physikalischen Schnittstellen und die Bereitstellung einer vereinfachten Entwicklungs- und Programmierumgebung sowie durchdachter Bibliotheken, die der 80:20-Regel in Bezug auf die Funktionsunterstützung folgten, ließ sich sehr schnell ein Prototyp erstellen. Entwickler können mit einem 8-Bit-AVR-Core beginnen, und sollte sich herausstellen, dass die Leistungsfähigkeit oder der Speicher zu begrenzt sind, ließe sich die Anwendung einfach für ein Board mit 32-Bit-ARM-Core neu kompilieren. Es ist nicht notwendig, den Code zu ändern oder Änderungen in der Prozessorarchitektur oder Taktfrequenz zu berücksichtigen.

Bietet zum Beispiel ein neuer MEMS-Sensor interessante Funktionen für eine Anwendung, könnte seine serielle Schnittstelle an einen Singleboard-Computer (SBC) angeschlossen und innerhalb einer halben Stunde eine erste Evaluierung vorgenommen werden.

Das Arduino-Ökosystem bietet auch das dringend benötigte Debug-Tool für Entwickler von Embedded-Anwendungen und eine einfach zu bedienende serielle Schnittstelle. Die Lösung ist bereits mit einem Seriell-zu-USB-Wandler verbunden, so dass sich das Board problemlos an einen Entwicklungs-PCs anschließen lässt. Schließlich kann etwa die Zeichenfolge „hello, world\n“ auf einer MCU ausgegeben werden – mit Code, der den Beispielen in den Büchern von Kernighan und Ritchie ähnelt. Mit etwas zusätzlichem Aufwand lassen sich serielle Daten auch mit anderer Open-Source-Software wie Processing grafisch darstellen.

Eine Vielfalt an Sensor- und Schnittstellenmodulen erlauben auch dem Einsteiger rasch die gewünschte Funktionalität zu ergänzen. Diese digitalen Sensoren oder Peripheriemodule haben meist eine I²C- oder SPI-Schnittstelle und Bibliotheken der Hersteller machen die Einbindung und und das Ansprechen der Module sehr einfach. Die Arduino-IDE hilft mit dem Bibliotheksmanager auf gleichzeitig einfache und effiziente Weise bei der Suche nach der passenden Bibliothek in github.com, dem umfassenden Entwicklerforum und Online-Service.

Falls als seltene Ausnahme für brandneue oder sehr spezielle Hardware tatsächlich keine brauchbare Bibliothek verfügbar sein sollte, kann man auch eine eigene Bibliothek entwickeln. Anstatt hexadezimale Werte in nummerierte Register zu schreiben, lässt sich die Funktion in sinnvolle Funktionsaufrufe wie „configOutput“ oder „readTemperature“ umwandeln. Ein guter Ausgangspunkt für die Entwicklung solcher Bibliotheken ist das Tutorial „Writing a Library for Arduino“.

Arduino-Motor-Shield: vereinfacht das Prototyping von DC- und Schrittmotorsteuerungen
Arduino-Motor-Shield: vereinfacht das Prototyping von DC- und Schrittmotorsteuerungen (Bild: Conrad Electronic)

Die zukunftsorientierteren Chiphersteller und Drittanbieter von Tools bieten vollständige Hardware- und Softwarelösungen für die Arduino-Entwicklungsumgebung. Software wird als Bibliothek bereitgestellt, während die Hardware als „Shield“ vorliegt, das auf die standardisierten Arduino-Uno-Formfaktor-Boards passt. Ein Beispiel ist der Motor-Shield. Er umfasst den bewährten Dual-Vollbrücken-Motortreiber L298P sowie zwei Operationsverstärker zur Strommessung. Die Bibliothek nutzt Pulsbreitenmodulation; digitale I/Os und analoge Eingangsbibliotheken steuern die Motordrehzahl und Drehrichtung sowie die Strommessung.

Mini-PC-Platine Raspberry Pi, geeignet für IoT-Anwendungen

Raspberry Pi 4 B: Endlich 1,5 GHz, USB 3.0 und 4-GByte-DDR4-RAM
Raspberry Pi 4 B: Endlich 1,5 GHz, USB 3.0 und 4-GByte-DDR4-RAM (Bild: Farnell)

Mit dem Wachstum bei Smartphones und Apps suchen viele Entwickler nach Möglichkeiten, um einfach mit IoT-Anwendungen experimentieren zu können. Hier bietet der Raspberry Pi eine kompetente Plattform an. Der Neuling Raspberry Pi 4 B sowie das Modell Raspberry Pi 3 B+ sind im Wesentlichen ein PC im Kreditkartenformat, mit Video- und Audioausgang sowie USB, Ethernet und WLAN. Raspberry Pi verwendet das Debian-basierte Betriebssystem (OS) Raspbian zusammen mit dem schlanken LXDE-Desktop.

Alternative Betriebssysteme wie Ubuntu MATE sind ebenfalls verfügbar, vielfach aber noch nicht für den Raspberry Pi 4. Mit allen gängigen Unix- und Linux-Paketen lassen sich einfache Anwendungen schnell erstellen, die in nahezu jeder Programmiersprache, die der Entwickler beherrscht, über TCP oder UDP kommunizieren. Es gibt auch eine breite Community von Entwicklern, die bereit ist zu helfen und Beispiele zur Verfügung zu stellen. Pakete wie Node-RED, die in Raspbian enthalten sind und fast vollständig auf schriftlichen Code verzichten, ermöglichen eine einfache Drag-and-Drop-Programmierung von IoT-Anwendungen.

Auch die Elektronikfunktionen des Raspberry Pi lassen sich einfach erweitern. So bietet das Board selbst einen standardisierten zweireihigen Header mit analogen und digitalen I/Os sowie den seriellen Schnittstellen SPI und I2C. Bibliotheken sind in der OS-Distribution für Programmiersprachen wie Python enthalten, um mit ihnen zu interagieren. Zweitens können Drittanbieter auch für Raspberry Pi Zusatzmodule entwickeln, so genannte „HATs“, um die Integration von ICs vereinfachen, die vom Raspberry Pi gesteuert werden.

Raspberry Pi Sense HAT: er bietet verschiedene Sensoren und eine 8-x-8-Matrix aus LEDs
Raspberry Pi Sense HAT: er bietet verschiedene Sensoren und eine 8-x-8-Matrix aus LEDs (Bild: Conrad Electronic)

Ein Beispiel ist der Sense Hat, der verschiedene Sensoren enthält, darunter ein MEMS-Gyroskop, einen Beschleunigungsmesser, ein Magnetometer und ein Barometer zusammen mit einem Temperatur- und Feuchtigkeitssensor. Er enthält auch eine 8 x 8 Matrix aus LEDs zur Ausgabe einfacher Bilder oder Symbole für Situationen, in denen eine HDMI-Anzeige nicht geeignet ist.

Halbleiterbausteine entwickeln mit MikroElektronika-Boards

Für die schnelle Evaluierung von Halbleiterbausteinen lohnt sich ein Blick auf das Angebot an „Click“-Entwicklungsboards von MikroElektronika. Ursprünglich als Funktionserweiterung der MikroE-MCU-Entwicklungsboards konzipiert, wurde die standardisierte Schnittstelle von MCU-Herstellern wie Microchip, NXP und Quectel übernommen. Die Schnittstelle und der Formfaktor der Boards sind im mikroBUS-Standard festgeschrieben. Hier werden spezifische Pins für die Stromversorgung, serielle Schnittstellen, ein Analogsignal und ein digitales Interrupt-Signal definiert.

Click Board von MikroElektronika: Damit lassen sich Funktechniken wie GPS einfach evaluieren.
Click Board von MikroElektronika: Damit lassen sich Funktechniken wie GPS einfach evaluieren. (Bild: Conrad Electronic)

Die Click-Boards lassen nur wenige Anforderungen unberührt und bieten Lösungen von der MP3-Kodierung und -Dekodierung über kapazitive Berührungssensoren bis hin zu digitalen Potentiometern. Die Integration mit anderen Prototyping-Systemen ist auch mit einem Click Shield für Arduino und Click Hat für Raspberry Pi möglich. Zusammen mit den Hardware- und Softwaretools von MikroElektronika erhalten Anwender Zugriff auf die umfangreichen LIBSTOCK-Softwarebibliotheken, die den Einstieg erleichtern.

M5Stack, werksseitig mit Gehäuse und TFT-Display

Arduino und Raspberry Pi werden als ungeschützte Platine geliefert, wodurch die Gefahr eines Kurzschlusses am Arbeitsplatz des Entwicklers besteht. Natürlich gibt es verschiedene Gehäuse, die die Hardware vor solchen Ereignissen schützt und trotzdem Zugriff auf die Steckverbinder des Boards ermöglicht. Es stehen aber auch andere Plattformen zur Verfügung, die komplett mit Schutzgehäusen ausgestattet sind.

M5Stack von Maker Factory: basiert auf dem Prozessor ESP32 und bietet ein Gehäuse mit Display und Lautsprecher
M5Stack von Maker Factory: basiert auf dem Prozessor ESP32 und bietet ein Gehäuse mit Display und Lautsprecher (Bild: Conrad Electronic)

Der M5Stack von Maker Factory basiert auf dem Prozessor ESP32. Die Lösung umfasst nicht nur ein Gehäuse, sondern auch ein TFT-Farbdisplay mit 320 x 240 Pixel und einen kleinen Lautsprecher für die Audioausgabe. Das modulare Design ermöglicht Erweiterungen, einschließlich Batterie, Ladestation und GPS für das Prototyping. Der M5Stack lässt sich mit derselben Entwicklungssoftware programmieren, die auch das Arduino-Ökosystem, UIFlow, eine visuelle Entwicklungsumgebung oder sogar MicroPython verwendet. Er verfügt auch über eine Schnittstelle, die den einfachen Anschluss verschiedener Grove-Module ermöglicht, die von Seeed bereitgestellt werden und eine Vielzahl von I/O-Modulen umfassen. Dazu zählen einfache Schalter und Sensoren als auch komplexe Displays, Bewegungssensoren und Funklösungen.

Da die Erwartungen der Verbraucher an ihre Elektronikgeräte in Bezug auf Funktion und Design steigen, benötigen Entwickler Tools, um Halbleiterlösungen effizient zu evaluieren und so die Vorteile eines frühen Markteintritts nutzen zu können. Obwohl ursprünglich als Spielzeug betrachtet, stehen Entwicklern heute verschiedene kompetente, hochqualitative SBCs zur Verfügung, die die Grundlage für eine Prototypen-Entwicklung bilden. Dies, gepaart mit einem nahezu endlosen Angebot an Sensor- und Evaluierungsboards mit harmonisierten Formfaktoren und Schnittstellen, lässt keine Entschuldigung mehr übrig, nicht jede neue Halbleiterlösung auszuprobieren, die auf den Markt kommt.

Checkliste zur Evaluierungsplanung

Bei der Planung der Evaluierung neuer Halbleiterbausteine ist folgendes zu beachten:

  • Gibt es ein Standard-Formfaktor-Evaluierungsboard (Click, Grove, Shield oder HAT)?
  • Gibt es ein Board mit derselben Grundfläche des Boards für den Baustein, der evaluiert werden soll?
  • Sind die Bausteine austauschbar?.
  • Stellt der Anbieter eine Bibliothek für den Einsatz mit meinem bevorzugten SBC zur Verfügung?
  • Gibt es Codebeispiele, die man verwenden oder ändern kann?
  • I2C-Schnittstellen erfordern Pull-up-Widerstände, aber die meisten SBCs enthalten bereits geeignete Widerstände.
  • SPI-Schnittstellen mit mehr als einer Peripheriefunktion erfordern zusätzlich ein „Chip-Select“-Signal. Dazu muss möglicherweise ein zusätzlicher SBC-GPIO-Pin ausgewählt und separat über Software angesteuert werden.
Möglichkeiten und Grenzen des Raspberry Pi im Industrieeinsatz

Möglichkeiten und Grenzen des Raspberry Pi im Industrieeinsatz

30.01.19 - Eignet sich Raspberry Pi für industrielle Projekte oder nicht. Mit dem Industrial Starterkit von Kontron und dessen zahlreichen Industrieschnittstellen können Entwickler die Industrietauglichkeit des Raspberry Pi für ihr Projekt testen. lesen

Raspberry Pi goes Industry: Professionelle Automatisierung mit PiXtend

Raspberry Pi goes Industry: Professionelle Automatisierung mit PiXtend

16.09.18 - Der programmierbare Raspberry Pi stellt Rechenleistung und Netzanbindung. Mittels Interfaceerweiterung PiXtend entsteht eine vollwertige Kleinsteuerung mit allen notwendigen I/Os. lesen

Mit Arduino-kompatiblen Modulen Radarsensoren flexibel aufbauen

Mit Arduino-kompatiblen Modulen Radarsensoren flexibel aufbauen

18.07.18 - Radarsensoren lassen sich mit Hilfe von Arduino-kompatiblen radino-Modulen leicht aufbauen. Auf diese Weise lässt sich auch das Funkprotokoll nachträglich ändern. lesen

* Wolfgang Lex ist Projektmanager Technology & Maker, Conrad Electronic SE

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46068251 / Raspberry & Co.)