AA_pcb1_sxc1146517_Nivellen77.jpg

© Nivellen77, sxc.hu

Let's Get Physical

Programmieren mit Arduino

09.06.2010
Die Arbeit mit der quelloffenen Hardware Arduino bietet einen unkomplizierten Einstieg in die Welt der Mikrocontroller und elektronischen Schaltungen. Erweiterte Funktionen wie Netzwerkzugang lassen sich über vorkonfektionierte Zurüst-Boards schnell ergänzen.

Ursprünglich entstand das Arduino-Projekt [1] an einem mittlerweile geschlossenen Design-Institut [2] im italienischen Turin und verdankt seinen Namen einem Studentencafé in dessen Nähe. Arduino hat es sich zum Ziel gesetzt, die Einstiegshürde in die Welt des Physical Computing zu senken. Unter Physical Computing versteht man die Verbindung von Software mit ihrer physischen Umwelt durch das Ansteuern von Sensoren, Motoren und diversen Ausgaben wie LEDs.

Computer bieten durch eine Fülle von Schnittstellen bereits viele Möglichkeiten, mit Sensoren und Geräten zu kommunizieren, jedoch lässt sich ein Motor oder Temperaturfühler nicht ohne Weiteres anschließen und steuern. Dazu braucht man zum einen Adapter und zum anderen gilt es von Fall zu Fall zu prüfen, in welcher Programmiersprache sich das System am einfachsten anzusprechen lässt. Weniger ist daher mehr.

Die Arduino-Plattform verbindet die freie Architektur eines Mikrocontroller-Boards mit analogen und digitalen Schnittstellen sowie einer zugehörigen Entwicklungsumgebung. Sie schließen das Board bequem über eine USB-Schnittstelle an den PC an, mit einer eigenen Stromquelle läuft es jedoch alternativ auch autark. Ein Bootloader ermöglicht es, Programme direkt per USB auf das Board zu schreiben.

Zur Programmierung dient eine C++-Implementation der eigentlich Java-basierten Sprache Processing. Bei Processing handelt es sich um eine vereinfachte Form von Java, die sich an den pragmatischen Anforderungen von Künstlern, Gestaltern und Einsteigern orientiert. Bei der integrierten Arduino-Entwicklungsumgebung handelt es sich um eine relativ schlanke Java-basierte IDE, die Ihnen alle notwendigen Hilfsmittel zu Verfügung stellt: Syntax-Highlighting, Codebeispiele, Kompilieren und das Übertragen von Programmen. Weitere Bibliotheken erweitern die Sprache um Treiber für elektronische Bauteile und zusätzliche Funktionen.

Erstausstattung

Für die Arbeit mit Arduino benötigen Sie ein Arduino-Board und ein USB-Kabel zur Programmierung und Kommunikation. Am besten greifen Sie zu einem der angebotenen Einsteiger-Sets, die in der Regel aus einem Board, einem USB-Kabel, verschiedenen elektronischem Komponenten sowie einer Steckplatine bestehen [3].

Es gibt verschiedene Varianten und Generationen von Arduino. Die beste Wahl für Einsteiger ist das aktuelle Arduino Duemilanove (Abbildung 1). Auf ihm befinden sich ein ATmega328-Mikrocontroller von Atmel, ein Reset-Schalter, 14 digitale I/O Pins, sechs analoge Eingänge, eine USB-Schnittstelle, ein Anschluss für eine Stromversorgung, je eine Tx/Rx-LED (Senden/Empfangen), eine Power-LED und eine Test-LED.

Abbildung 1: Italienische Leckerei: Das Arduino Duemilanove ist nach dem Jahr seines Entstehens benannt, 2009.

Die Entwicklungsumgebung laden Sie für verschiedene Betriebssysteme auf Arduino.cc [4] herunter. Sie müssen das Archiv lediglich entpacken. Neben einer Java-Laufzeitumgebung benötigt die IDE auf dem Rechner einen Compiler für den AVR Atmel sowie einige Build-Werkzeuge. Die notwendigen Programme und Bibliotheken richten Sie auf einem aktuellen Ubuntu-Desktop mithilfe der Paketverwaltung schnell ein:

# apt-get install gcc-avr binutils-avr avr-libc librxtx-java avrdude

Weitere Informationen und Hilfe für Problemfälle (etwa mit Ubuntu "Hardy" oder 64-Bit-Versionen) finden Sie im Arduino-Wiki [5]. Es gibt zudem inoffizielle Paket-Repositories für verschiedenste Distributionen.

Nach dem Starten der Arduino-IDE und dem Anschließen des Boards müssen Sie in der Entwicklungsumgebung noch über Tools | Serial Port den korrekte Anschluss konfigurieren. Meist handelt es sich um /dev/ttyUSB0.

Hallo Welt

Das "Hallo Welt" des Physical Computing ist das Blinken einer Leuchtdiode (LED). Erfreulicherweise befindet sich auf dem Arduino eine Test-LED am digitalen Pin 13, die Sie für einen ersten Versuch ohne weiteren Aufwand ansteuern können. Listing 1 zeigt das entsprechende Programm und verdeutlicht gleichzeitig die generelle Struktur eines Arduino-Processing-Programms: Es gibt eine setup()-Methode, die beim Start einmal zum Einsatz kommt, und eine loop()-Methode, die das Programm kontinuierlich durchläuft. Variablen gilt es vor Gebrauch unter Zuweisen eines Datentyps zu deklarieren.

Listing 1

// Hallo Welt, Physical-Computing-Variante:
// Test-LED zum Blinken bringen
int ledPin = 13;           // LED am digitalen Pin 13
void setup() {
  pinMode(ledPin, OUTPUT); // setze Modus auf Ausgabe
}
void loop() {
  digitalWrite(ledPin, HIGH);   // schalte LED ein
  delay(1000);                  // warte eine Sekunde
  digitalWrite(ledPin, LOW);    // schalte LED aus
  delay(1000);                  // warte eine Sekunde
}

Die setup()-Methode des Beispielprogramms legt fest, dass es sich bei Pin 13 um eine Ausgabe handelt. Die loop()-Methode setzt abwechselnd den Status HIGH (Strom an) und LOW (Strom aus) für den Pin, dazwischen wartet sie jeweils eine Sekunde. Mittels eines Mausklicks auf Upload kompilieren Sie das Programm und übertragen es gleich zum Arduino. Während der Übertragung flackern die Tx/Rx-LEDs, kurz danach startet das Programm automatisch. Die Test-LED blinkt dann kontinuierlich im Sekunden-Takt. Hallo, Arduino!

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 02/2016: Alt-PCs flott machen

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Der Tipp der Woche

Schon gewußt?

14.11.2015

Auch unter Ubuntu 15.10 kann man wieder mit dem Startmedienersteller (alias Startup Disk Creator) ein Live-System auf einem USB-Stick einrichten. ...

Fehler des Startmedienerstellers von Ubuntu 15.10 umgehen

Aktuelle Fragen

Tails Update
Val Lerie, 11.01.2016 10:51, 0 Antworten
Hallo zusammen, updaten > update Speichern unter > Persistent nicht möglich, mit der Meldung;...
Recoll
Jürgen Heck, 20.12.2015 18:13, 4 Antworten
Wie kann man mit Recoll nach bestimmten Zeichen/Satzzeichen bzw. Zeichenkombinationen suchen, z....
Wings Platinum 4 auf Linux?
Bodo Steguweit, 18.12.2015 11:37, 4 Antworten
Hallo in die Runde ich nutze für meine Diashows Wings Platinum 4 als Diareferent. Arbeite jetzt...
Bandbreite regulieren
Georg Armani, 25.11.2015 16:50, 1 Antworten
Hallo, ich bin ein Neuling in Sachen Linux und hoffe auf Hilfe. Ich habe zwei Windows Rechner...
Windows 10 verhindert LINUX
Hans Wendel, 17.11.2015 17:47, 7 Antworten
Hallo alle, mit einem W10-Laptop (vorher war Win7) wollte ich LINUX ausprobieren. Alles, was ni...