Entwicklungstools Arduino & Co.

Die Physical-Computing-Plattform Arduino sollte ursprünglich Künstlern und Designern einen einfachen Zugang zu digitalen Technologien und -Installationen öffnen. Inzwischen ist die Plattform so ausgereift, dass damit auch professionelle Prototypen entwickelt werden. Das ungewöhnliche Konzept der Open-Source-Hard- und -Software erhielt schon 2006 in Linz den „Prix Ars Electronica“.

Schaut man in die einschlägigen Foren und Portale zur Mikrocontroller-Technologie, dann kommt man heute am Thema Arduino kaum vorbei. Ein weiterer Impuls kam von Google, die sich für Arduino als „Android Open Accessory”-Kit entschieden haben [1]. Arduino ist eine Open-Source-Prototyping-Plattform auf der Grundlage flexibler und einfach zu nutzender Hard- und Software.

Primäres Einsatzziel für Arduino ist der direkte Kontakt mit der Umgebung. Arduino kann die Signale von Sensoren auswerten und durch Aktoren auf die Umgebung zurückwirken. Für Anwendungen, in denen der Zugriff auf die Umgebung ein zentrales Moment darstellt, wurde der Begriff des „Physical Computing“ geprägt.

Der auf den Arduino-Boards verwendete AVR-Mikrocontroller wird in einer auf „Wiring“ aufbauenden Programmiersprache programmiert. Die Programmierung erfolgt unter Verwendung einer Arduino-Entwicklungsumgebung (PC mit Windows/Linux/MacOS) mit gcc, unter Verwendung der avr-gcc-Library und weiteren Arduino-Libraries. Die eigentliche Programmierung in C/C++ wird dadurch weitgehend verborgen und stark vereinfacht.

Das Arduino-Projekt wurde 2006 in der Kategorie Digital Communities mit dem Prix Ars Electronica ausgezeichnet. Zu Arduino sind zahlreiche Veröffentlichungen erschienen, von denen einige Beispiele im Literaturverzeichnis unter [2] bis [5] angeführt sind.

Arduino-Hardware: Das Original

Das Arduino-Board gibt es in verschiedenen Versionen. Das gegenwärtige „Basic Board“ ist Arduino Uno, dessen Kern ein ATmega328 von Atmel ist. Die Arduino-Plattform ist aber nicht auf die 8-bit-AVR-Mikrocontroller beschränkt. Schon bald nach Einführung des Konzepts kamen erste Derivate, die auf Cortex-M3 aufbauen, gefolgt von ARM7 und PIC32. Bevor auf diese Derivate eingegangen wird, wird das „Arduino-Original“ als Beginn dieser Entwicklung betrachtet.

Auf dem Arduino-Uno-Board wird der AVR-Mikrocontroller noch durch Schaltungsteile zur Stromversorgung und eine als USB-Interface ausgelegte serielle Schnittstelle erweitert. Über das USB-Interface erfolgt der Programm-Download vom PC und die Kommunikation des Anwendungsprogramms mit dem PC sowie in einfachen Fällen auch die Stromversorgung.

Die auch als I/O-Board bezeichneten Arduino-Boards stellen dem Anwender 14 digitale Ein- bzw. Ausgänge zur Verfügung. Davon sind sechs auch als Pulsweitenmodulations-Ausgang nutzbar. Sechs weitere Eingänge führen auf den internen 10-bit-Analog-/Digitalumsetzer des AVR-Mikrocontrollers. SPI und I2C stehen als weitere Schnittstellen zur seriellen Kommunikation zur Verfügung.

Bild 1 zeigt ein Arduino Uno mit seiner weitgehend konventionellen Bestückung. An der Oberkante des Arduino-Uno-Boards befinden sich zwei achtpolige Buchsenleisten, die den Zugang zu den digitalen I/O-Pins 0 bis 13, zur analogen Referenzspannung AREF und zu Ground GND ermöglichen.

An der Unterkante sind zwei sechspolige Buchsenleisten zur Kontaktierung der sechs analogen Eingänge Analog In 0 bis 5 sowie der Versorgungsspannungen und Reset. Die Zuordnung der Anschlüsse des Arduino Uno zu den Pins des ATmega328 (und den Alternativfunktionen) zeigt die Tabelle:

Buchsenleiste 1 Oberkante
I/O01234567
AVRPD0PD1PD2PD3PD4PD5PD6PD7
 RxDTxDINT0INT1T0T1AINOAIN1
   0C2B  0COB0COA 
Buchsenleiste 2 Oberkante
I/O89
10111213  
AVRPB0PB1PB2PB3PB4PB5  
 ICP10C1A0C1B0C2AMISOSCK  
   SSMOSI    
Buchsenleiste 1 Unterkante
Analog In012345  
AVRPC0PC1PC2PC3PC4PC5  
 ADC0ADC1ADC2ADC3ADC4ADC5  
     SDASCL  
Tabelle 1. Zuordnung der Kontakte auf den Buchsenleisten des Arduino Uno zu den Pins des AVR-Mikrocontrollers. Die Buchsenleisten sind die Verbindung zu den Arduino Shields, die das betreffende CPU-Board erweitern.

Neben dem Arduino Uno gibt es weitere Varianten und zahlreiche Clones. Eine aktuelle Übersicht zu den verschiedenen Arduino-Boards ist unter diesem Link zu finden. Arduino-Clones sind hier gelistet. Erweitert wird das Basis-Board mit Arduino Shields, die über die Buchsenleisten  angeschlossen werden.

Bild 2 zeigt einen Stapel von Leiterplatten, bestehend aus einem Arduino-Board, einem GSM-Shield von HW Kitchen und einem Arduino Ethernet-Shield. Unter shieldlist.org/ kann man mit großer Wahrscheinlichkeit ein Shield für eigene Entwicklungen finden, ohne eine eigene Hard- und Software-Entwicklung starten zu müssen. Aktuell sind dort über 150 Shields gelistet.