- Arduino-Plattform
-
Arduino-Plattform Basisdaten Aktuelle Version 0023
(9. November 2011)Betriebssystem plattformunabhängig Programmiersprache C/C++ Kategorie Freie Hardware Lizenz LGPL/GPL (freie Software) www.arduino.cc Die Arduino-Plattform ist eine aus Soft- und Hardware bestehende Physical-Computing-Plattform. Beide Komponenten sind im Sinne von Open Source quelloffen. Die Hardware besteht aus einem einfachen I/O-Board mit einem Mikrocontroller und analogen und digitalen Ein- und Ausgängen. Die Entwicklungsumgebung beruht auf der Entwicklungsumgebung von Processing und Wiring, die insbesondere Künstlern, Designern, Hobbyisten und anderen Interessierten den Zugang zur Programmierung und zu Mikrocontrollern erleichtern soll. Arduino kann benutzt werden, um eigenständige interaktive Objekte zu steuern oder um mit Softwareanwendungen auf Computern zu interagieren (z. B. Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider, diversen Skriptsprachen, Terminal, vvvv etc.). Arduino wird intensiv an Kunsthochschulen genutzt, um interaktive Installationen aufzubauen.
Das Arduino-Projekt wurde 2006 in der Kategorie Digital Communities mit dem Prix Ars Electronica ausgezeichnet.
Inhaltsverzeichnis
Hardware
Die Hardware basiert auf einem Atmel AVR-Mikrocontroller aus der megaAVR-Serie. Ursprünglich wurde der ATmega8, später der ATmega168 und aktuell der ATmega328, der ATmega1280 und der ATmega2560 verbaut. Alle Boards werden entweder über USB oder eine externe Spannungsquelle mit 5 Volt versorgt und verfügen über einen 16 MHz-Quarzoszillator (es gibt Varianten mit 3,3 V Versorgungsspannung und solche mit abweichendem Takt).
Konzeptionell werden alle Boards über eine serielle Schnittstelle programmiert. Der Mikrocontroller ist mit einem Boot-Loader vorprogrammiert, wodurch die Programmierung direkt über die serielle Schnittstelle ohne externes Programmiergerät erfolgen kann. Bei älteren Boards wurde hierfür die RS-232-Schnittstelle genutzt. Bei aktuellen Boards geschieht die Umsetzung von USB nach seriell über einen eigens entwickelten USB-Seriell-Konverter basierend auf dem ATmega8U2. Zuvor wurde dies mit dem populären Baustein FT232RL von FTDI realisiert.
Die Arduino-Boards stellen die meisten I/O-Pins des Mikrocontrollers zur Nutzung für elektronische Schaltungen zur Verfügung. Die aktuell gängigen Boards bieten 14 digitale I/O-Pins, von denen sechs PWM-Signale ausgeben können und sechs als analoge Eingänge dienen können. Für die Erweiterung werden vorbestückte oder teilweise unbestückte Platinen – sogenannte „Shields“ – angeboten, die auf das Arduino-Board aufsteckbar sind. Es können aber auch z.B. Steckplatinen für den Aufbau von Schaltungen verwendet werden.
Arduino µController Flash
KiBEEPROM
KiBSRAM
KiBDigitale
I/O Pins...mit
PWMAnaloge
EingängeAbmessungen
in mmNano ATmega328 32 1 2 14 6 8 43 × 18 Diecimila ATmega168 16 0.5 1 14 6 6 68,6 × 53,3 Duemilanove ATmega328 32 1 2 14 6 6 68,6 × 53,3 Uno ATmega328 32 1 2 14 6 6 68,6 × 53,3 Ethernet ATmega328 32 1 2 14[1] 4 6 68,6 × 53,3 Mega ATmega1280 128 4 8 54 14 16 101,6 × 53,3 Mega2560 ATmega2560 256 4 8 54 14 16 101,6 × 53,3 Mega ADK ATmega2560 256 4 8 54 14 16 101,6 × 53,3 LilyPad ATmega168V
oder ATmega328V16 0.5 1 14 6 6 ø 50 - ↑ Einige dieser 14 Pins sind reserviert.
Software
Arduino bringt eine eigene Integrierte Entwicklungsumgebung (IDE) mit. Dabei handelt es sich um eine plattformunabhängige Java-Anwendung. Sie basiert auf der IDE von Processing, einer auf die Einsatzbereiche Grafik, Simulation und Animation spezialisierten Entwicklungsumgebung. Die Arduino-IDE bringt einen Code-Editor mit und bindet gcc als Compiler ein. Zusätzlich werden die avr-gcc-Library und weitere Arduino-Libraries eingebunden, die die Programmierung in C/C++ stark vereinfachen.
Für ein funktionstüchtiges Programm genügt es, zwei Methoden zu definieren:
- setup() – wird beim Start des Programms einmalig aufgerufen, nützlich um z.B. Pins als Eingang oder Ausgang zu definieren
- loop() – wird durchgehend aufgerufen, solange bis das Arduino-Board ausgeschaltet wird
Hier ein Beispiel für ein Programm (Sketch in der Arduino-Diktion), das eine an das Arduino-Board angeschlossene LED blinken lässt:
int ledPin = 13; // die LED ist an Pin 13 angeschlossen void setup() { pinMode(ledPin, OUTPUT); // legt den LED-Pin als Ausgang fest } void loop() { digitalWrite(ledPin, HIGH); // LED an delay(1000); // 1 Sekunde warten digitalWrite(ledPin, LOW); // LED aus delay(1000); // 1 Sekunde warten }
Literatur
- Manuel Odendahl, Julian Finn, Alex Wenger: Arduino – Physical Computing für Bastler, Designer und Geeks, O'Reilly Verlag, 2009, ISBN 978-3-89721-893-2
- Ulli Sommer: Arduino : Mikrocontroller-Programmierung mit Arduino, Freeduino, Franzis Verlag, 2010, ISBN 978-3-64565-034-2
- Thomas Brühlmann: Arduino : Praxiseinstieg, mitp Verlag, 2010, ISBN 978-3-82665-605-7
- Michael Margolis: Arduino Cookbook, O'Reilly Verlag, 2011, ISBN 978-0-596-80247-9
- Dale Wheat: Arduino Internals, Apress Verlag, 2011, ISBN 978-1-430-23882-9
Weblinks
Commons: Arduino – Sammlung von Bildern, Videos und Audiodateien- Offizielle Webpräsenz (englisch)
- Deutschsprachiger Video Podcast (ardufact.de)
- Deutschsprachiges Tutorial für Einsteiger
- The Complete Beginners Guide to the Arduino (E-Buch, pdf, englisch von Earthshine Electronics)
- Kreativ programmieren mit Processing und Arduino (heise.de)
- Graphisch dokumentierte Beispiele zur Implementierung von Komponenten (fritzing – eine Projektgruppe der Fachhochschule Potsdam)
- Arduino The Documentary (2010) English HD
Wikimedia Foundation.