Home / LinuxUser / 2010 / 07 / Programmieren mit Arduino

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.
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!

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

2674 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...