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/O 0 1 2 3 4 5 6 7
AVR PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7
  RxD TxD INT0 INT1 T0 T1 AINO AIN1
      0C2B     0COB 0COA  
Buchsenleiste 2 Oberkante
I/O 8 9
10 11 12 13    
AVR PB0 PB1 PB2 PB3 PB4 PB5    
  ICP1 0C1A 0C1B 0C2A MISO SCK    
      SS MOSI        
Buchsenleiste 1 Unterkante
Analog In 0 1 2 3 4 5    
AVR PC0 PC1 PC2 PC3 PC4 PC5    
  ADC0 ADC1 ADC2 ADC3 ADC4 ADC5    
          SDA SCL    

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.