AA_pcb1_sxc1146517_Nivellen77.jpg

© Nivellen77, sxc.hu

Programmieren mit Arduino

Let's Get Physical

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 08/2016: Multimedia

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

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

Aktuelle Fragen

Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...
lidl internetstick für linux mint
rolf meyer, 04.06.2016 14:17, 3 Antworten
hallo zusammen ich benötige eure hilfe habe einen lidl-internetstick möchte ihn auf linux mint i...