»Arduino« Maker-Tool für IoT nutzen Rapid Application Development

Das IoT ist ohne eingebettete Systeme undenkbar. Erst kleine und kleinste Mikrocontroller mit intelligenten Kommunikationsschnittstellen und Anbindung ans Internet ermöglichen sinnvolles und flächendeckendes Einsammeln von Daten. Doch wie kompliziert ist der Einstieg in die Embedded-Welt?

Kaffeemaschine, E-Bike, Smartphone und Heizungssteuerung haben heute eines gemeinsam: Die Intelligenz wird mit Software auf einem Mikrocontroller zur Ausführung gebracht. Die Software entscheidet über das Verhalten, die Datenauswertung, eventuell anfallende Wartungszyklen oder vielleicht sogar über das Ende der Lebensdauer. Selbst Tintenpatronen werden zunehmend intelligenter, sie wissen ob sie vom Originalhersteller sind oder ob es sich um Plagiate handelt, sie kennen die Anzahl der Drucke und wissen wann sie leer sind. Und die Fitness-Industrie schafft eine kaum vorzustellende Wertschöpfungskette mit Apps für Smartphones, mit Sensoren, die den Vitalzustand des Probanden aufnehmen oder Geschwindigkeit und Trittfrequenz des Fahrrads aufzeichnen. Verbunden mit den GPS-Koordinaten der Geräte kann eine aussagefähige Analyse über den Fitness-Zustands eines Sportlers gemacht werden.

Zentrum der digitalen Welt sind häufig das Smartphone oder integrierte Modems, welche durch 3G- oder 4G-Schnittstellen einen uneingeschränkten Zugang in die weite Welt ermöglichen. Die Welt wird damit vernetzter, komplizierter und undurchsichtiger – gilt das auch für die Entwicklung der teilnehmenden Geräte? Für einen gewissen Grad sicherlich, auf der anderen Seite werden die Tools immer besser, um leistungsfähige Komponenten mit einem Minimum an Aufwand zu entwickeln.

Eingebettete Systeme

In der Regel sind eingebettete Systeme kompakte Geräte, die nicht unbedingt als »Computer« erkennbar sind, aber dennoch mit einer leistungsmäßig optimal skalierten Hardware ausgerüstet sind. Je nach Komplexität kann auf ein Betriebssystem verzichtet werden oder es werden spezielle Echtzeitbetriebssysteme oder Derivate von Android, Linux oder Windows verwendet.Insgesamt kann man feststellen, dass eingebettete Systeme immer auf eine spezifische Aufgabe hin optimiert sind. Das spiegelt sich in den Hardwareschnittstellen, den Kommunikationsschnittstellen, in der Benutzerschnittstelle und dem Betriebsverhalten wieder. Die Optimierung zeigt sich dann auch in den Systemkosten oder der Codegröße, dem benötigten Speicher und was auch sonst noch denkbar ist. Darüber hinaus spielt das Echtzeitverhalten bei Embedded-Systemen eine herausragende Rolle.

Während konventionelle Computersysteme aus einer Vielzahl unterschiedlichster Komponenten von der CPU über Speicher und Peripheriekomponenten bestehen, basieren eingebettete Systeme auf hoch integrierten Mikrocontrollern. Diese haben alle notwendigen Komponenten quasi auf dem Chip (Bild 1). Das hat viele Vorteile. Während bei konventionellen Computersystemen ein ausgeklügeltes Board-Design notwendig ist, kann der Mikrocontroller als monolitisches System mit Schnittstellen verstanden werden, wobei die Systemschnittstellen in der Regel unkritisch im Platinendesign sind. Der Aufbau eigener Systeme wird dadurch deutlich vereinfacht. Der Systemarchitekt muss lediglich einen Mikrocontroller mit den notwendigen Systemressourcen auswählen und auf ein akzeptables EMV-Verhalten achten, der Rest läuft gewissermaßen von allein.

Möchte man sogar auf das Design eigener Hardware verzichten, kann man auf eine große Anzahl von Lösungen zurückgreifen. Eine Vielzahl von Open-Source-Communities stellt sehr gut standardisierte Hard- und Softwarekonfigurationen zusammen, die den Einstieg in die Embedded-Welt einfach machen. Zwei Plattformen gewinnen hierbei zunehmend an Bedeutung. Das untere Ende der skalierbaren Embedded-Plattformen wird durch die Arduino-Systeme realisiert. Hier wird bewusst der Begriff der Arduino-Systeme gewählt, weil sich unter einer einheitlichen Entwicklungsumgebung verschiedenste skalierbare Mikrocontroller-Plattformen von 8-bit-CPUs mit wenigen MHz Taktfrequenz bis hin zu 32-bit-i586-kompatiblen Multicore-Systemen befindet. Für Arduino spricht:

  • Heute ist keine Embedded-Plattform für IoT-Systeme preiswerter verfügbar. Für unter 3 € sind vollständige IoT-Systeme mit Kommunikationsschnittstelle realisierbar oder über den chinesischen Distributor der Wahl lieferbar. 
  • Die Entwicklungssystematik von Arduino ermöglicht die extrem einfache und kostengünstige Realisierung eines Arduino-Derivates und damit die Nutzung der gesamten Entwicklungs-Toolchain.
  • Es gibt derzeit keine Hardwarebasis, die eine umfangreichere und skalierbare Komponentenbasis mit einer standardisierten Hardwareschnittstelle (Shield) bietet. Das führt dazu, dass das Shield-Interface von fast allen µC-Herstellern als Standardschnittstelle für Development-Boards verwendet wird.
  • Daraus, dass Arduino Open-Source ist, folgt als logische Konsequenz, Platinen-Layout und Software sind verfügbar und dürfen für eigene Anwendung verwendet werden. Als »Mutter aller Arduinos« kann der Arduino UNO angesehen werden. Dieser zeigt sehr deutlich die Philosophie von eingebetteten Systemen und die Einschränkungen, die selbst durch minimale Betriebssysteme in Kauf genommen werden müssen.