Microcontroller-Architekturen fĂĽr das Internet der Dinge am Beispiel Arduino
Die Arduino/Genuino Open-Source-Plattform besteht aus einer ganzen Spannbreite unterschiedlicher Leistungsdaten und Formfaktoren. Dies und warum sich Arduino als Plattform für das Internet der Dinge besonders gut eignet, möchte dieser Beitrag illustrieren.
Die Arduino/Genuino Open-Source-Plattform besteht aus einer ganzen Spannbreite unterschiedlicher Leistungsdaten und Formfaktoren. Dies und warum sich Arduino als Plattform für das Internet der Dinge besonders gut eignet, möchte dieser Beitrag illustrieren.
Weiterlesen nach der Anzeige
Das Besondere an Microcontrollerboards wie Arduino oder Beaglebone ist die Menge der verfügbaren analogen und digitalen Ein- und Ausgänge, an die sich Sensoren und Aktoren anschließen lassen. Die Größe des Arduino-Programmspeichers (32KByte) und des RAMs wirkt dagegen bescheiden. Da stellt ein Raspberry Pi schon ein ganz anderes Kaliber dar. Allerdings ist dafür beim Pi die Anzahl der verfügbaren I/O-Ein- und Ausgänge mickrig, weshalb er für Elektronikanwendungen entsprechende Erweiterungen benötigt, wie das Gertboard. Der Bestimmungszweck des Raspberry Pi besteht allerdings weniger in Mikrocontroller-Anwendungen, sondern hauptsächlich in der Nutzung als günstiger Multimedia-Rechner. Deshalb haben seine Erfinder den Raspberry Pi auch nicht als Open Source Hardware konzipiert.
Arduino fĂĽr DĂY-Anhänger
Im Vergleich zum leistungsstarken Beaglebone wirken die meisten Arduino-Boards eher schmalbrüstig. Dennoch fokussieren wir uns auf die Arduino-Familie. Ein Blick auf Amazon oder eBay genügt, um festzustellen, dass Arduino die am stärksten verbreitete Microcontroller-Plattform darstellt. Doch wer und was steckt hinter dieser Plattform?
Als im Jahre 2005 Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, und David Mellis das erste Arduino Board fertigstellten, hieß das Ziel: Entwicklung einer günstigen Hardwarelösung. Zielgruppe waren die Studenten des Interaction Design Institutes im italienischen Ivrea. Auf Basis von Mikroprozessoren des Herstellers Atmel entstand ein einfaches Microcontrollersystem. Das Besondere daran war die Verfügbarkeit von Arduino als Open-Source-Lösung. Um eine passende IDE auch für weniger IT-firme Studenten bereitzustellen, hat das Arduino-Team die Processing-IDE als Grundlage verwendet. Processing ist eine auf Basis von Java entwickelte Programmiersprache beziehungsweise Entwicklungsumgebung für die Umsetzung kreativer künstlerischer Designideen. Damit sind Arduino und Processing gewissermaßen Brüder im Geiste.
Inzwischen existieren zahlreiche Firmen im Rahmen der Maker-Bewegung, die Arduino-kompatible Hardware entwickeln und weltweit verkaufen. Gerade das chinesische Shenzen gilt als Hochburg fĂĽr entsprechende Low-Cost-Produkte. Arduino-Boards sind dort schon fĂĽr wenige Euro zu haben. Wer Aliexpress oder eBay durchforstet, wird geradezu von Angeboten ĂĽberrollt. Da kostet das Board auch schon einmal weniger als die Lieferung.
Innenausstattung
Innenleben eines Arduino
(Bild:Â http://arduino.cc)
Auf dem obigen Bild sind die typischen Komponenten eines Arduino zu sehen.
Weiterlesen nach der Anzeige
Neben Analog-Pins besitzen Arduino-Board zahlreiche Digital-Pins, von denen eine Untermenge PWM (Pulse-Width-Modulation) beherrscht. PWM bedeutet, dass nur für eine festgelegte Zeit pro Takt, dem sogenannten Duty-Cycle, eine 1 am Ausgang anliegt, sonst eine 0. Durch Verkürzen oder Verlängern dieser Duty-Cycles kann man zum Beispiel LEDs dimmen. Grob gesagt, entspricht die Helligkeit der LED dann dem Mittelwert des Ausgangssignals.
Herz des Arduino ist ein Prozessor von Atmel, meistens ein mit 16 MHz getakteter ATmega328 oder ATmega168. Typischerweise hat der Programmspeicher eine Größe von 16 KBytes, während der Datenspeicher mit  KBytes ausgelegt ist. Klingt nach wenig, ist es auch. Da aber die Hauptaufgabe eines Arduino in Messen, Steuern, Regeln besteht, ist diese Einschränkung eher von geringer Tragweite. Im Vergleich zum erfolgreichsten Microcontroller, dem Intel 8051, ist die Arduino-Ausstattung geradezu unvorstellbar üppig. Zudem existieren weitere Klassen von Arduino-Boards mit starken Abweichungen gegenüber diesen Leistungsdaten nach unten und nach oben. Dazu gleich mehr.
Hoch das Shield
Zu beachten ist die Tatsache, dass der verbreitete Arduino/Genuino Uno auf eine 5V-Versorgungsspannung setzt statt auf 3,3V. Das gilt allerdings nicht für alle Arduino-Varianten. Wichtig ist diese Tatsache etwa bei der Verwendung von Shields. Das sind preisgünstige Boards mit Zusatzfunktionalität, die man auf einen Arduino huckepack aufsetzt.
Verbreitet sind Sensor-Shields zum AnschlieĂźen von Sensoren, Motorshields zur Ansteuerung von Elektromotoren, Kommunikation-Shields zum Bereitstellen von Ethernet, Wifi, Bluetooth, Zigbee-Verbindungen, und Display-Shields zum Anschluss von Touchscreens.
Da die meisten Shields die Ein- und Ausgänge des Arduino-Boards an sogenannte Pin-Header (Reihen von Anschlüssen zum Einstecken von Anschlussdrähten) durchreichen, lassen sich trotz Shield die noch verfügbaren Ein- und Ausgänge nutzen.
Der abgebildete ICSP-Header (ICSP = In-Circuit Serial Programming) dient übrigens zum Anschluss von "Programmern". Für unsere Zwecke ist diese Möglichkeit allerdings weniger von Interesse.
Ein guter Anschluss
Eiin USB-Anschluss ermöglicht die Verbindung des Boards mit einem Computer. Die Stromversorgung kann über die USB-Schnittstelle oder über eine separate Stromversorgung erfolgen. Im letzteren Fall dient die USB-Verbindung lediglich zur seriellen Kommunikation. Wer die Arduino-IDE benutzt, gibt das verwendete Board und die USB-Schnittstelle an und kann mit dem Programmieren sogenannter Sketches beginnen. Daneben gibt es zahlreiche weitere Optionen für die Implementierung von Arduino-Programmen, von C/C++ bis Python, die wir im Rahmen der Serie noch kennenlernen.
Die Arduino GroĂźfamilie
Arduino ist als Open-Source-Hardware-Plattform konzipiert, weshalb es heute unzählige Arduino-Varianten gibt. Erwähnenswert sind Firmen wie Adafruit, SparkFun, Sainsmart oder Seeedstudio - die drei "e" sind übrigens keiner Tastenprellung geschuldet. Deren Nachbauten begnügen sich überwiegend mit dem Bauen von Boards, die zu existierenden Original-Boards kompatibel sind.
Kommen wir zu den Original-Boards: Wichtig sind zum Beispiel neben dem Arduino Uno der Mega (mit wesentlich mehr Ein- und Ausgängen als beim Uno), der Due (leistungsstärker als der Uno und mit 3,3V-Versorgungsspannung), der Yun (verfügt zusätzlich über einen leistungsstarken Prozessor und ein integriertes Embedded Linux samt Kommunikationsbausteinen).
Nach unten existieren Arduino Nano/Micro (sehr kleiner Formfaktor, dafĂĽr weniger Schnittstellen) und Lilypad (zum Integrieren in Kleidung bei sogenannten Wearables).
Und da wäre noch
Zu erwähnen ist an dieser Stelle noch der Esp8266 (Esp = Espruino). Dabei handelt es sich um ein sehr preisgünstiges Board, das ursprünglich einen Arduino mit Wifi-Netzen verbinden sollte, sich aber auch "standalone" als Mikrocontroller-Board mit Arduino-IDE-Unterstützung betreiben lässt. Oft findet man in diesem Zusammenhang übrigens auch das Synonym "nodemcu".
One more thing
Kommen wir zum britischen Vertreter der Arduino-Cousins, dem teensy. Die Leistungswerte des teensy sind indirekt proportional zu seiner winzigen Größe. Hier einmal zum Appetit anregen die Daten des teensy 3.2:
32 bit ARM Cortex-M4 72 MHz CPU (M4 = DSP Erweiterungen)
256K Flash Memory, 64K RAM, 2K EEPROM
21 Hochauflösende Analogeingänge(13 Bits nutzbar, 16 Bit Hardware)
34 Digital I/O Pins (5V Toleranz gegenüber digitalen Ein- und Ausgängen)
12 PWM Ausgabe-Pins
7 Timers für Zeitintervalle und Verzögerungen, im Gegensatz zum Arduino getrennt vom PWM
USB mit dedizierten DMA Speichertransfers
3 UARTs (Serielle Ports)
SPI, I2C, I2S,CAN Bus, IR Modulator
I2S (fĂĽr die Ausgabe hochwertiger Audiosignale)
Real Time Clock
4 allgemein verwendbare DMA Kanäle (getrennt von USB)
Touch Sensor Eingänge
Es handelt sich hier zwar ebenso wie beim nodemcu um keinen Arduino nach italienischem Reinheitsgebot, aber mittels der Software Teensyduino lässt sich auch der teensy mit der Arduino IDE programmieren. Für den Entwickler bleibt daher die darunterliegende Hardwareplattform transparent.
Fazit und Ausblick
Die Arduino-Plattform bietet somit eine reichhaltige Palette an Boards, Shields und weiteren Komponenten. Damit lassen sich Laserharfen, 3D-Drucker, Roboter und Drohnen bauen. Und zu den besonderen Stärken von Arduino-Boards gehört ihre vorzügliche Unterstützung von Sensorik und Aktorik.
Mit anderen Worten: Arduino ist wie geschaffen fĂĽr IoT-Anwendungen.
Bevor wir allerdings richtig loslegen können, müssen wir zuvor unsere Kenntnisse über elektrische Schaltungen und die zugrunde liegenden physikalischen Gesetze auffrischen. Das ist das Thema meines nächsten Beitrags.
()
Über 90.000 Leser vertrauen bereits darauf – wählen Sie jetzt Ihr passendes Paket!
Mit heise+ lesen Sie alle Inhalte auf heise online. Zusätzlich zu unseren Magazin-Inhalten erhalten Sie damit weitere exklusive Tests, Ratgeber und Hintergründe.