Arduino-Plattform

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Arduino-Plattform
Bildschirmfoto der Arduino IDE Version 1.0.1
Basisdaten
Aktuelle Version 1.0.4 & 1.5.2 Beta
(6. Feb. 2013[1])
Betriebssystem plattformunabhängig
Programmier­sprache C und C++ (IDE: Java)
Kategorie Freie Hardware
Lizenz LGPL/GPL (freie Software)
www.arduino.cc
Arduino Uno mit USB-Schnittstelle und einem ATmega328-Mikrocontroller

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, Bastlern und anderen Interessierten den Zugang zur Programmierung und zu Mikrocontrollern erleichtern soll. Arduino kann verwendet 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 erhielt 2006 eine Anerkennung im Rahmen des Prix Ars Electronica[2] in der Kategorie Digital Communities.

Inhaltsverzeichnis

Hardware [Bearbeiten]

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-Schwingquarz (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 dafü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 das mit dem populären Baustein FT232RL von FTDI realisiert. Die Version Arduino Leonardo verwendet als Prozessor den ATmega32u4, welcher die USB-Unterstützung nativ bereitstellt und sich damit auch als Tastatur oder Maus gegenüber einem PC ausgeben kann.

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.

Die neueste Version Arduino Due besitzt einen ARM Cortex-M3 32-Bit-Prozessor vom Typ Atmel SAM3X8E und stellt mit 84MHz Taktfrequenz die leistungsstärkste Variante dar.

Arduino [3] µController Betriebs-
spannung
Flash
KiB
EEPROM
KiB
SRAM
KiB
Digitale
I/O Pins
… mit
PWM
Analoge
Eingänge
Interfaces Abmessungen
in mm
Nano[4] ATmega328 (8-bit) 5V 32 1 2 14 6 8 Mini-B USB, I²C 43 × 18
Diecimila[5] ATmega168 (8-bit) 5V 16 0.5 1 14 6 6 USB 68,6 × 53,3
Duemilanove[6] ATmega328 (8-bit) 5V 32 1 2 14 6 6 USB, SPI, ICSP, I²C 68,6 × 53,3
Uno[7] ATmega328 (8-bit) 5V 32 1 2 14 6 6 USB, SPI, ICSP, I²C 68,6 × 53,3
Ethernet[8] ATmega328 (8-bit) 5V 32 1 2 14* 4 6 Ethernet, SD card, SPI, TWI 68,6 × 53,3
Mega[9] ATmega1280 (8-bit) 5V 128 4 8 54 14 16 USB, SPI, ICSP, I²C, 4 UART 101,6 × 53,3
Mega2560[10] ATmega2560 (8-bit) 5V 256 4 8 54 14 16 USB, SPI, ICSP, I²C, 4 UART 101,6 × 53,3
Mega ADK[11] ATmega2560 (8-bit) 5V 256 4 8 54 14 16 USB, SPI, ICSP, I²C, 4 UART 101,6 × 53,3
LilyPad[12] ATmega168V oder
ATmega328V (8-bit)
2,7-5,5 V 16 0.5 1 14 6 6 USB ( FTDI Basic Breakout required ) ø 50
BT (Bluetooth)[13] ATmega328 (8-bit) 5V 32 1 2 14 4 6 Bluegiga WT11 Bluetooth, TWI, I²C, SPI 81,2 × 53,3
Leonardo[14] ATmega32U4 (8-bit) 5V 32 1 2.5 20 7 12 USB, ICSP, TWI, I²C, 1 UART 68,6 × 53,3
Esplora[15] ATmega32U4 (8-bit) 5V 32 1 2.5 - - - Micro USB, ICSP, Tinkerkit Konnektoren, TFT-Konnektor(LCD-Display)
Due[16] AT91SAM3X8E (32-bit) 3,3V 512 nicht vorhanden 96 54 12 12 USB, CAN, ICSP, 2 TWI, 2 I²C, 4 UART, 2 DAC 101,6 × 53,3

* Einige dieser 14 Pins sind reserviert.

Software [Bearbeiten]

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-Librarys eingebunden, die die Programmierung in C und C++ stark vereinfachen.

Für ein funktionstüchtiges Programm genügt es, zwei Methoden zu definieren:

  • setup() – wird beim Start des Programms (entweder nach dem Übertragen auf das Board oder nach Drücken des Reset-Tasters) einmalig aufgerufen, um z. B. Pins als Eingang oder Ausgang zu definieren.
  • loop() – wird durchgehend immer wieder durchlaufen, solange das Arduino-Board eingeschaltet ist.

Hier ein Beispiel für ein Programm (in der Arduino-Diktion: Sketch), welches eine an das Arduino-Board angeschlossene LED blinken lässt:

int ledPin = 13; // die LED ist an Pin 13 angeschlossen, was in der Variablen ledPin gespeichert ist
                 // (Diese LED ist bei den meisten Boards integriert)
 
void setup() {
    pinMode(ledPin, OUTPUT); // legt den LED-Pin als Ausgang fest
}
 
void loop() {
    digitalWrite(ledPin, HIGH); // LED anschalten
    delay(1000); // 1 Sekunde (=1000 ms) warten (delay() braucht den Parameter in ms)
    digitalWrite(ledPin, LOW); // LED ausschalten
    delay(1000); // 1 Sekunde warten
}

Siehe auch [Bearbeiten]

Weblinks [Bearbeiten]

 Commons: Arduino – Sammlung von Bildern, Videos und Audiodateien

Literatur [Bearbeiten]

Einzelnachweise [Bearbeiten]

  1. Arduino: Arduino Software Release Notes. 6. Februar 2013, abgerufen am 11. Mai 2013.
  2. Ars Electronica Archiv. Abgerufen am 24. November 2012.
  3. Arduino
  4. Nano
  5. Diecimila
  6. Duemilanove
  7. Uno
  8. Ethernet
  9. Mega
  10. Mega2560
  11. Mega ADK
  12. LilyPad
  13. BT (Bluetooth)
  14. Leonardo
  15. Esplora
  16. Due