Arduino - Maik Schmidt - E-Book

Arduino E-Book

Maik Schmidt

4,4

Beschreibung

Arduino ist ein Open-Source-Projekt, das sowohl aus Hardware als auch aus Software besteht. Ohne Vorlesungen in Elektrotechnik belegen zu müssen, können Sie erste Ideen mit Arduino in kürzester Zeit umsetzen. Von Anfang an praxisorientiert und ohne graue Theorie führt Sie dieses Buch in die Arduino- Welt ein. Teil 1 "Erste Schritte mit Arduino" vermittelt Ihnen die erforderlichen Grundlagen, um die elf Projekte aus Teil 2 bauen zu können. Zunächst erfahren Sie, wie Sie die IDE verwenden und wie Sie Programme kompilieren und auf den Arduino laden. Schnell beginnen Sie mit dem ersten Projekt - dem Elektrowürfel -, das Ihnen den Umgang mit einfachen Bauteilen wie Leuchtdioden, Tastern und Widerständen zeigt. Danach erlernen Sie den Umgang mit analogen und digitalen Sensoren. Sie verwenden einen Temperatur- und einen Ultraschallsensor, um einen digitalen Zollstock zu bauen. Messergebnisse visualisieren Sie im Webbrowser mit JavaScript, HTML5 und CSS3. Sie können auch mit vorhandener Hardware herumspielen und werden sehen, wie leicht es ist, zum Beispiel den Nunchuk für Nintendo Wii in eigenen Programmen einzusetzen oder eine Infrarotfernbedienung zu konstruieren. Schritt für Schritt erschließen Ihnen die Projekte so alle Möglichkeiten, die sich mit Arduino bieten. Zu jedem Projekt gibt es den vollständigen Programmcode zum Download. Wenn Sie an Elektronik interessiert sind und besonders daran, Ihre eigenen Spielzeuge, Modelle und Ideen umzusetzen, haben Sie das richtige Buch gekauft. Und wenn Sie schon Software entwickelt haben - vorzugsweise in C/C++ oder Java -, bringen Sie die besten Voraussetzungen mit.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 395

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
4,4 (16 Bewertungen)
10
3
3
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen. Er schreibt seit einigen Jahren Buchkritiken und Artikel für internationale Zeitschriften und hat auch selbst schon vier Bücher verfasst (»Enterprise Recipes with Ruby and Rails«, »Enterprise Integration with Ruby« und »Arduino: A Quick-Start Guide«).

Gern spricht er auf internationalen Konferenzen und seine besonderen Steckenpferde sind die Programmiersprache Ruby und die Mikroelektronik, speziell der Arduino.

Arduino

Ein schneller Einstieg in die Microcontroller-Entwicklung

2., aktualisierte und erweiterte Auflage

Maik Schmidt

Lektorat: Dr. Michael BarabasÜbersetzung: G&U Language & Publishing Services GmbH, Flensburg (www.GundU.com)Copy-Editing: Ursula Zimpfer, HerrenbergSatz: G&U Language & Publishing Services GmbH, Flensburg (www.GundU.com)Herstellung: Frank HeidtUmschlaggestaltung: Helmut Kraus, www.exclam.deDruck und Bindung: M.P. Media-Print Informationstechnologie GmbH, 33100 Paderborn

Copyright der englischen Originalversion © 2015 The Pragmatic Programmers, LLC.All rights reserved.

Bibliografische Information der Deutschen NationalbibliothekDie Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBNBuch 978-3-86490-126-3PDF 978-3-86491-645-8ePub 978-3-86491-646-5

2. Auflage 2015Copyright © 2015 dpunkt.verlag GmbHRingstraße 19 B69115 Heidelberg

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.5 4 3 2 1 0

Inhalt

Danksagung

Vorwort

Für wen dieses Buch gedacht ist

Was Sie in diesem Buch finden

Arduino Uno und die Arduino-Plattform

Programmcode und Konventionen

Online-Material

Was Sie benötigen

Startpakete

Die vollständige Teileliste

Teil 1       Erste Schritte mit Arduino

1       Willkommen bei Arduino

1.1     Was Sie benötigen

1.2     Was ist Arduino eigentlich genau?

1.3     Das Arduino-Board erkunden

1.4     Die Arduino-IDE installieren

1.5     Begegnung mit der Arduino-IDE

1.6     Hello, world!

1.7     Programme kompilieren und hochladen

1.8     Wenn es nicht funktioniert

1.9     Übungen

2       Umfangreichere Arduino-Projekte

2.1     Was Sie benötigen

2.2     Projekte und Programme verwalten

2.3     Voreinstellungen ändern

2.4     Serielle Schnittstellen einsetzen

2.5     Wenn es nicht funktioniert

2.6     Übungen

Teil 2       Elf Arduino-Projekte

3       Binäre Würfel

3.1     Was Sie benötigen

3.2     Mit Breadboards arbeiten

3.3     Eine LED auf dem Breadboard verwenden

3.4     Die erste Version des binären Würfels

3.5     Mit Tastern arbeiten

3.6     Ihren eigenen Taster einbauen

3.7     Ein Würfelspiel

3.8     Wenn es nicht funktioniert

3.9     Übungen

4       Eine Bibliothek für einen Morse-Code-Generator

4.1     Was Sie benötigen

4.2     Die Grundlagen des Morse-Codes

4.3     Den Morse-Code-Generator bauen

4.4     Das Morsezeichen-Generator-Interface zurechtbauen

4.5     Ausgeben von Morsezeichen

4.6     Die Klasse Telegraph installieren und verwenden

4.7     Ihre eigene Bibliothek veröffentlichen

4.8     Wenn es nicht funktioniert

4.9     Übungen

5       Die Außenwelt wahrnehmen

5.1     Was Sie benötigen

5.2     Entfernungen mit einem Ultraschallsensor messen

5.3     Die Genauigkeit mit Fließkommazahlen erhöhen

5.4     Die Genauigkeit mithilfe eines Temperatursensors erhöhen

5.5     Bauen Sie Ihr eigenes Armaturenbrett

5.6     Wenn es nicht funktioniert

5.7     Übungen

6       Ein bewegungsgesteuerter Game-Controller

6.1     Was Sie benötigen

6.2     Den Beschleunigungsmesser verdrahten

6.3     Den Beschleunigungsmesser zum Leben erwecken

6.4     Eckwerte finden und korrigieren

6.5     Ihren eigenen Game-Controller bauen

6.6     Weitere Projekte

6.7     Wenn es nicht funktioniert

6.8     Übungen

7       Ein Spiel für den bewegungsgesteuerten Game-Controller

7.1     Eine GameController-Klasse schreiben

7.2     Das Spiel wird geschrieben

7.3     Wenn es nicht funktioniert

7.4     Übungen

8       Videosignale mit dem Arduino generieren

8.1     Was Sie benötigen

8.2     Wie funktioniert analoges Video?

8.3     Einen Digital-Analog-Wandler (DAC) bauen

8.4     Den Arduino mit dem Fernseher verbinden

8.5     Die Bibliothek TVout verwenden

8.6     Ein TV-Thermometer bauen

8.7     In TVout mit Grafiken arbeiten

8.8     Wenn es nicht funktioniert

8.9     Übungen

9       Experimente mit dem Wii-Nunchuk

9.1     Was Sie benötigen

9.2     Den Wii Nunchuk anschließen

9.3     Mit dem Nunchuk kommunizieren

9.4     Die Klasse Nunchuk erstellen

9.5     Die Klasse Nunchuk verwenden

9.6     Eine eigene Spielkonsole bauen

9.7     Ein eigenes Videospiel schreiben

9.8     Wenn es nicht funktioniert

9.9     Übungen

10     Netzwerkeln mit Arduino

10.1   Was Sie benötigen

10.2   Sensordaten mit Ihrem PC ins Internet übertragen

10.3   Eine Anwendung bei Twitter anmelden

10.4   Nachrichten über Processing twittern

10.5   Mit einem Ethernet-Shield über das Netzwerk kommunizieren

10.6   DHCP und DNS

10.7   Wenn es nicht funktioniert

10.8   Übungen

11     Eine E-Mail-Alarmanlage bauen

11.1   Was Sie benötigen

11.2   E-Mails von der Kommandozeile

11.3   E-Mails direkt von Arduino versenden

11.4   Bewegungserkennung mit einem passiven Infrarotsensor

11.5   Alles zusammenbauen

11.6   Wenn es nicht funktioniert

11.7   Übungen

12     Eine Universalfernbedienung konstruieren

12.1   Was Sie benötigen

12.2   Die Grundlagen von Infrarot-Fernbedienungen

12.3   Steuercodes abgreifen

12.4   Eine Fernbedienung nachbauen

12.5   Geräte im Browser fernsteuern

12.6   Einen Infrarotproxy bauen

12.7   Wenn es nicht funktioniert

12.8   Übungen

13     Motoren mit Arduino steuern

13.1   Was Sie benötigen

13.2   Kleine Motorenkunde

13.3   Servomotoren: Die ersten Schritte

13.4   Einen Beschuldigomaten bauen

13.5   Wenn es nicht funktioniert

13.6   Übungen

Teil 3      Anhänge

A      Grundlagen der Elektronik

A.1    Stromstärke, Spannung und Widerstand

A.2    Elektrische Schaltungen

A.3    Umgang mit einem Seitenschneider

A.4    Ein kleiner Lötkurs

A.5    Entlöten

B      Fortgeschrittene Arduino-Programmierung

B.1    Die Arduino-Programmiersprache

B.2    Bit-Operationen

C      Fortgeschrittene serielle Programmierung

C.1    Mehr über serielle Kommunikation

C.2    Serielle Kommunikation mit verschiedenen Programmiersprachen

D      Arduino mit dem Webbrowser steuern

D.1    Was sind Chrome-Apps?

D.2    Eine minimale Chrome-App erstellen

D.3    Die Chrome-App starten

D.4    Die Chrome-API für serielle Verbindungen

D.5    Eine Klasse für serielle Geräte schreiben

Bibliografie

Stichwortverzeichnis

Danksagung

Susannah Davidson Pfalzer war die Lektorin für die erste Ausgabe dieses Buches. Bei der Planung dieser zweiten Ausgabe hatte ich nicht vergessen, wie schwierig es war, die erste zu schreiben, aber ich wuste auch noch, wie großartig die Zusammenarbeit mit Susannah gewesen war. Und wieder ist es ihr gelungen, dieses Unternehmen zu einem wahren Vergnügen zu machen. Vielen Dank dafür!

Da dies nicht das erste Buch ist, das ich für Pragmatic Bookshelf schreibe, wußte ich bereits, wie professionell und nett alle Mitglieder des Teams sind. Aber sie werden sogar jedes Mal besser, und ich danke allen dafür, dass Sie dieses Buch möglich gemacht haben.

Ohne die verblüffenden Produkte des Arduino-Teams würde dieses Buch jeglicher Grundlage entbehren. Vielen Dank für die Erfindung von Arduino!

Ein großes Dankeschön geht auch an all diejenigen, die Beiträge zu diesem Buch geleistet haben. Christan Rattat hat alle Fotos aufgenommen, Kaan Karaca hat die Anzeige des Beschuldigomaten gestaltet, und Kassandra Perch hat den JavaScript-Code in Kapitel 12, Eine Universalfernbedienung konstruieren, verbessert.

Die Schaltpläne habe ich mit Fritzing1 erstellt. Ich möchte dem Fritzing-Team dafür danken, dass es ein so hervorragendes Hilfsmittel umsonst anbietet.

Für die Spiele, die ich in diesem Buch entwickelt habe, benötigte ich einige Grafiken. Auf der Website OpenGameArt2 habe ich erstaunliche Dinge gefunden. Für meinen Breakout-Clone habe ich einige der Grafiken von www.kenney.nl3 und einen großartigen Song von Alex Smith4 verwendet. Vielen Dank dafür, diese Werke gemeinfrei zur Verfügung zu stellen.

Das Hintergrundbild des Browserspiels stammt von ESA/Hubble, NASA, Digitized Sky Survey, MPG/ESO (Davide de Martin). Das Bild, das die Funktionsweise eines Rasterscans zeigt, wurde von Ian Harvey geschaffen.

Für einen Autor gibt es nichts Motivierenderes als Rückmeldungen. Daher möchte ich meinen Gutachtern Kevin Beam, Jessica Janiuk, Kassandra Perch, Mike Riley, Sam Rose und Matthew Sullivan danken. Aufgrund ihrer fundierten Kommentare und Vorschläge ist dieses Buch sehr viel besser geworden.

Zu guter Letzt möchte ich meiner wunderbaren Frau Tanja und meinem hinreißenden Sohn Mika für die Geduld und das Verständnis danken, die sie immer wieder zeigten, wenn ich noch eine Seite schreiben musste.

Vorwort

Herzlich willkommen bei Arduino und herzlich willkommen bei Computer-experimenten zum Anfassen. Arduino1 ist ein Open Source-Projekt, das sowohl aus Hardware als auch aus Software besteht. Ursprünglich sollte Arduino Künstlern und Designern den Zugang zu Microcontrollern für interaktive Kurse erleichtern. Heute verwenden Fachleute und Laien Arduino, um Projekte im Physical-Computing zu realisieren – und Sie können das auch.

Mit Arduino sammeln Sie mit Computern grundlegende Erfahrungen, die Sie seit den 1980er-Jahren nicht mehr machen konnten, denn seitdem gab es keine Selbstbau-Computer mehr. Und mit Arduino wird die Entwicklung von selbstent-wickelten Elektronikprojekten leicht gemacht, egal, ob Prototyp oder ausgefeiltes Spielzeug. Die Zeiten sind vorbei, in denen Sie Massen an Theorie und obskure Programmiersprachen lernen mussten, nur um eine LED zum Blinken zu bringen. Sie können Ihr erstes Arduino-Projekt in wenigen Minuten umsetzen, ohne Vorlesungen in Elektrotechnik belegen zu müssen.

Sie müssen also nichts über Elektronikprojekte wissen, um dieses Buch lesen zu können, und Sie legen von Anfang an richtig los. Auf den ersten Seiten lernen Sie nicht nur die wichtigsten Elektronikbauteile kennen, Sie erfahren auch, wie Sie die Programme schreiben, die Ihre Projekte zum Leben erwecken.

Dieses Buch ist von Anfang an praxisorientiert und vermeidet graue Theorie. Ich erkläre die Grundlagen für alle Projekte, und in jedem Kapitel finden Sie einen Abschnitt zur Fehlersuche – für den Fall, dass etwas schiefgeht. Dieses Buch bietet Ihnen einen Schnelleinstieg, mit dem Sie sofort loslegen und Ihre eigenen Projekte verwirklichen können.

Für wen dieses Buch gedacht ist

Wenn Sie an Elektronik interessiert sind und besonders daran, Ihre eigenen Spielzeuge, Modelle und Ideen umzusetzen, haben Sie das richtige Buch gekauft. Auch wenn Arduino ein hübsches Werkzeug für Designer und Künstler ist, können nur Softwareentwickler alle seine Möglichkeiten voll ausschöpfen. Wenn Sie also schon Software entwickelt haben – vorzugsweise in C/C++ oder Java –, bringen Sie die besten Voraussetzungen mit.

Aber es gibt noch etwas: Sie müssen die Projekte in diesem Buch nachbauen, ausprobieren und nach Ihrem Gusto verändern. Viel Spaß dabei! Haben Sie keine Angst, Fehler zu machen. Die Abschnitte zur Fehlersuche und die praktischen Erfahrungen, die Sie von Projekt zu Projekt sammeln, werden Ihnen bei allen Schwierigkeiten helfen. Über Elektronik zu lesen, ohne dabei etwas auszuprobieren, das ist nur die halbe Miete. Sie kennen das alte Sprichwort »Wir erinnern uns an fünf Prozent dessen, was wir hören, an zehn Prozent Geschriebenes und zu 95 Prozent an Dinge, die wir selbst erlebt haben.« Und machen Sie sich keine Sorgen: Sie benötigen keine Vorkenntnisse in Elektronikprojekten!

Wenn Sie noch niemals programmiert haben, fangen Sie mit einem Programmierkursus an oder lesen Sie zuerst ein Einsteigerbuch über Programmierung (Learn to Program [Pin09] ist ein netter Einstieg). Dann lesen Sie »Die C-Programmiersprache« [KR90] oder Sie lernen C++ mit »Die C++-Programmiersprache« [Str10].

Was Sie in diesem Buch finden

Dieses Buch besteht aus drei Teilen (»Erste Schritte mit Arduino«, »Elf Arduino-Projekte« und die Anhänge). In Teil 1 erlernen Sie die Grundlagen, die Sie kennen müssen, um die Projekte in Teil 2 zu bauen, lesen Sie die Kapitel also in ihrer Reihenfolge und gehen Sie die Übungen durch. Die Kapitel im zweiten Teil bauen ebenfalls aufeinander auf und verwenden jeweils Verfahren und Programmteile aus früheren Kapiteln.

Es gibt jedoch eine Ausnahme: In diesem Buch erstellen Sie mehrere Google Chrome-Apps, die Ihren Webbrowser mit dem Arduino verbinden. Anhang D, Steuerung des Arduino über einen Webbrowser, erklärt im Einzelnen, wie Chrome Apps funktionieren, weshalb Sie es nach Kapitel 4, Eine Bibliothek für einen Morse-Code-Generator, lesen sollten.

Hier ist eine Kurzübersicht:

Das Buch beginnt mit den Grundlagen der Arduino-Entwicklung. Sie lernen, wie Sie die IDE verwenden und wie Sie Programme kompilieren und hochladen. Schnell beginnen Sie mit dem ersten Projekt – dem Elektrowürfel –, das Ihnen den Umgang mit einfachen Bauteilen wie Leuchtdioden, Tastern und Widerständen zeigt. Mit dem Morse-Code-Generator sehen Sie, wie einfach es ist, Ihre eigenen Arduino-Bibliotheken anzulegen.

Dann lernen Sie den Umgang mit analogen und digitalen Sensoren. Sie verwenden einen Temperatursensor und einen Ultraschallsensor, um einen sehr genauen digitalen Zollstock und eine Einparkhilfe zu bauen. Dann verwenden Sie einen dreiachsigen Beschleunigungsmesser, um Ihren eigenen Spielcontroller zu bauen und eine Abwandlung des Spiels Breakout zu programmieren.

Bis zu diesem Zeitpunkt haben Sie Daten meistens über LEDs oder den seriellen Anschluss des Arduino ausgegeben. Nun werden Sie den Arduino an einen handelsüblichen Fernseher anschließen und eigene Videosignale daran ausgeben. Als Beispiel erstellen Sie eine grafische Thermometeranwendung, die Sie auf dem Fernseher in Ihrem Wohnzimmer wiedergeben können.

Bei der Elektronik müssen Sie Ihre Spielzeuge nicht zwingend selbst bauen. Sie können auch mit vorhandener Hardware herumspielen und Sie werden sehen, wie leicht es ist, z. B. den Nunchuk für Nintendo Wii in eigenen Programmen einzusetzen. Damit haben Sie schon bald alles Mateiral und alle Fähigkeiten, um Ihre eigene Videospielkonsole zu bauen.

Der Arduino ist kein Einzelgänger, sondern kann hervorragend mit verschiedenen Netzwerktechnologien zusammenarbeiten. Sie werden lernen, wie Sie den Arduino auf verschiedene Weise mit dem Internet verbinden und wie Sie damit Twitter-Meldungen und E-Mails verschicken. Außerdem konstruieren Sie eine Alarmanlage, die Ihnen eine E-Mail schickt, sobald sich jemand in Ihrer Abwesenheit in Ihrem Wohnzimmer bewegt.

Anwendungen oder Geräte mit dem Nunchuk zu steuern, ist nett, eine Fernbedienung ist aber eine viel spannendere Sache. Daher bauen Sie als Nächstes eine Universal-Fernbedienung, die Sie sogar von Ihrem Webbrowser aus steuern können.

Schließlich arbeiten Sie mit Elektromotoren, um ein Spaßgerät für Ihr nächstes Programmierprojekt zu bauen. Sie können es mit Ihrem Versionskontrollsystem verbinden, und immer dann, wenn eine Kompilierung fehlschlägt, bewegt es einen Pfeil auf den Namen des verantwortlichen Programmierers.

In den Anhängen lernen Sie die Grundlagen zur Elektronik und zu Lötarbeiten. Sie finden außerdem weiterführende Informationen über die Programmierung einer seriellen Schnittstelle und zur Arduino-Programmierung allgemein. In einem weiteren Anhang wird erklärt, wie Sie den Arduino über einen Webbrowser steuern können.

Jedes Kapitel beginnt mit einer ausführlichen Liste der Bauteile und Werkzeuge, die Sie für das vorgestellte Projekt benötigen. Jedes Kapitel enthält außerdem viele Fotos und Diagramme, die zeigen, wie alles zusammengebaut wird. Ferner finden Sie im Buch immer wieder Beschreibungen interessanter Arduino-Projekte in den Randnotizen (graue Kästen).

Manchmal läuft jedoch einfach etwas schief, und die Fehlersuche in Schaltkreisen kann schwer und komplex werden. Daher finden Sie in jedem Kapitel den Abschnitt Wenn es nicht funktioniert, in dem typische Probleme und deren Lösungen beschrieben werden.

Bevor Sie die Lösungen in diesen Abschnitten lesen, sollten Sie jedoch versuchen, sie zunächst einmal selbst zu finden. Das ist der beste Weg, um zu lernen. Für den unwahrscheinlichen Fall, dass Sie überhaupt keine Probleme bekommen, finden Sie am Ende jedes Kapitels eine Liste mit Übungen, die Ihre Fähigkeiten weiter verbessern.

Arduino Uno und die Arduino-Plattform

Nach dem Erscheinen verschiedener Arduino-Boards und IDE-Versionen entschied sich das Arduino-Team, die Version 1.0 der Plattform zu spezifizieren. Die Versionsnummerierung war zunächst allerdings nicht unmittelbar einsichtig. Zu Beginn des Projekts hatten die Entwickler die Versionsnummer bei jedem neuen Release um 1 erhöht. Als sie bei Nr. 23 angekommen waren, entschieden sie jedoch, die Versionsnummer 1.0 für das nächste Release zu verwenden. Daher ist Arduino 1.0 neuer als Arduino 23.

Arduino 1.0 wurde Ende 2011 freigegeben und bildet die Referenz für alle Entwicklungen. Außerdem ist Arduino Uno erschienen, und es gab schrittweise Verbesserungen an der IDE und den dazugehörigen Bibliotheken.

Daneben hat das Arduino-Team weitere Arduino-Platinen entwickelt, z. B. den Arduino Due2, den Arduino Leonardo3 und den Arduino Yún4, die entweder leistungsstärkere Mikrocontroller oder zusätzliche Hardware wie etwa ein WLAN-Modul aufweisen.

Die meisten der neuen Platinen wiesen eine neue ARM-Prozessorarchitektur auf, die nicht mit der Architektur der AVR-Prozessoren älterer Modelle kompatibel ist. Um dieses Problem zu lösen, hat das Arduino-Team parallel zur Version 1.0.x der Arduino IDE auch die Version 1.5.x entwickelt, die alle verschiedenen Prozessorarchitekturen unterstützen wird, ohne dass der Benutzer eingreifen muss. Zurzeit brauchen Sie Version 1.5 nur, wenn Sie den Arduino Due oder den Arduino Yún programmieren möchten. Für alle anderen Platinen verwenden Sie Version 1.0.x.

Daneben gibt es noch eine eigene IDE für den Arduino Galileo5. Diese Platine wurde von Intel entwickelt und ist mit dem Arduino kompatibel.

Die Informationen in diesem Buch sind auf dem neuesten Stand für die Version 1.0.6 der Arduino-Plattform und für den Arduino Uno. So gut wie alle Projekte funktionieren aber auch auf jüngeren Modellen wie dem Leonardo und dem Due sowie auf älteren wie dem Duemilanove und dem Diecimila. Der gesamte Code in diesem Buch wurde mit Arduino 1.0.6 getestet.

Programmcode und Konventionen

Auch wenn dieses Buch von Open Source-Hardware und -Elektronik handelt, finden Sie darin viele Programmbeispiele. Sie sind nötig, um die Hardware zum Leben zu erwecken und mit ihr die Projekte umzusetzen.

Für alle Programme, die auf Arduino laufen, verwenden wir C/C++. Für alle Programme auf dem PC verwenden wir hauptsächlich JavaScript und Processing6, im Anhang C.2, Serielle Verbindungen mit unterschiedlichen Programmiersprachen, lernen Sie jedoch auch, andere Programmiersprachen zu verwenden, um mit Arduino zu kommunizieren.

Online-Material

Für dieses Buch gibt es eine Website unter http://www.dpunkt.de/arduino, von der Sie alle Programme für die Projekte in diesem Buch herunterladen können. Sie können gern (in englischer Sprache) am Diskussionsforum teilnehmen und andere Leser oder mich online treffen. Wenn Sie in diesem Buch Fehler, Tippfehler oder andere Ärgernisse finden, lassen Sie es bitte auch mich und die anderen Leser über die Errata-Seite wissen.7

Auf der Webseite finden Sie außerdem einen Link auf Fotos bei Flickr8. Hier finden Sie alle Fotos dieses Buchs in hoher Auflösung. Es gibt dort auch Fotos von Projekten anderer Leser, und wir würden uns freuen, auch Ihre Fotos dort zu finden.

Fangen wir also an!

Was Sie benötigen

Die folgenden Teile werden für die Projekte dieses Buchs benötigt. Zusätzlich werden die benötigten Bauteile separat in jedem Kapitel aufgelistet, so dass Sie Projekte kapitelweise ausprobieren können, ohne alle Teile auf einmal kaufen zu müssen. Auch wenn Ihnen die Liste lang erscheint, handelt es sich doch um kostengünstige Bauteile, die für alle Projekte dieses Buchs benötigten Teile kosten insgesamt etwa 160,– Euro.

Startpakete

Arduino-Komponenten und Elektronikteile erhalten Sie in vielen Onlineshops. Zu den besten in Deutschland gehört Watterott1. Dort finden Sie hervorragende Startpakete, und ich kann Ihnen nur raten, eines davon zu erwerben. In den USA zählen Makershed2 und Adafruit3 zu meinen Favoriten, und je nach Dollarkurs und Versandkosten kann es sich lohnen, dort einzukaufen.

Eine gute und kostengünstige Lösung ist das Fritzing Starter Kit von Watterott. Es enthält nahezu alle Bauteile für die Projekte aus diesem Buch und viele weitere nützliche, die Sie für Ihre eigenen Projekte verwenden können. Wenn Sie das Fritzing Starter Kit kaufen, benötigen Sie nur noch die folgenden Zusatzteile:

Parallax PING)))-Sensor

ADXL 335-Beschleunigungssensor

6-Pin-Pfostenverbinder, 2,54 mm

Nintendo Nunchuk-Controller

einen passiven Infrarotsensor

eine Infrarot-LED

einen Infrarot-Empfänger

ein Ethernet-Shield

ein Proto-Shield

ein Cinch-Kabel (Composite Video)

Alternativ gibt es bei Makershed und Adafruit (Bestellnummer 170) ebenfalls günstige Arduino-Startpakete.

Alle Anbieter verbessern ihre Startpakete laufend, lesen Sie die Online-Kataloge daher sorgfältig.

Die vollständige Teileliste

Wenn Sie die Bauteile lieber stückweise (oder kapitelweise) kaufen möchten statt eines Startpaketes, finden Sie hier die Liste aller im Buch verwendeten Bauteile. Jedes Kapitel hat ebenfalls eine Bauteilliste und ein Bild mit allen im Kapitel benötigten Teilen. Die genannten Websites sind eine bequeme Einkaufsquelle für die Teile, viele davon erhalten Sie jedoch auch anderswo. Kaufen Sie dort, wo Sie sich am besten aufgehoben fühlen.

Gute Quellen für Einzelkomponenten sind beispielsweise Reichelt Elektronik4, Conrad5, Völkner6 und Westfalia7. Im Laufe der Jahre hat sich auch Amazon zu einem hervorragenden Anbieter von Elektronikteilen gemausert. Hier die Bauteile mit Bezugsquellen im Einzelnen:

ein Arduino-Board wie Uno, erhältlich bei Watterott, Adafruit oder Makershed.

ein Standard-USB-Kabel, je nach verwendetem Arduino-Modell entweder Typ A-B oder Typ A-micro-B. Davon haben Sie wahrscheinlich schon einige. Wenn nicht, bestellen Sie sich eins, z. B. bei Amazon.

ein Breadboard in halber Größe. Suchen Sie in deutschen Online-Shops unter den Stichworten »Steckboard« oder »Steckplatine«.

drei LEDs (vier weitere werden für eine Zusatzübung benötigt). Es ist nicht sinnvoll, LEDs einzeln zu kaufen. Kaufen Sie lieber gleich ein 20er-Pack.

Widerstände mit einmal 100 Ohm, einmal 330 Ohm, zweimal 10 kOhm und dreimal 1 kOhm. Auch hier lohnt der Einzelkauf nicht. Kaufen Sie eine größere Packung oder besser ein Sortiment.

zwei Taster. Kaufen Sie keine einzelnen, sondern mindestens vier Stück.

etwas Kabel, am besten Jumperkabel für das Breadboard. Sie erhalten es bei Watterott, Makershed oder Adafruit.

einen Parallax PING)))-Sensor (Artikelnummer 20091090) von Watterott.

einen passiven Infrarot-Sensor (Artikelnummer 2009805) von Watterott.

einen Temperatursensor TMP 36 von Analog Devices8. Sie erhalten ihn bei Adafruit (Bestellnummer 165). Alternativ können Sie einen Temperatursensor LM35-CZ von Texas Instruments9 verwenden, der in Europa etwas einfacher zu erhalten ist. Sie erhalten ihn bei Watterott (Artikelnummer 2009783). Er ist nicht vollkommen kompatibel zum TMP36, aber im Text wird auf die Unterschiede hingewiesen.

einen ADXL 335-Beschleunigungssensor inklusive Breakout-Board. Sie erhalten es z. B. bei Watterott (Artikelnummer 20091016).

einen 6-Pin-Pfostenverbinder (auch: Stiftleiste, Stiftverbinder) in 2,54 mm (beim ADXL 335 von Adafruit enthalten). Normalerweise können Sie nur Pfostenleisten mit mehr Kontakten kaufen. In diesem Fall kürzen Sie die Leiste einfach.

ein Arduino Proto-Shield von Watterott (Artikelnummer 2009660) oder von Adafruit (Bestellnummer 51). Sie benötigen auch ein kleines Breadboard (Artikelnummer 2009596 bei Watterott). Dieses Shield ist zwar optional, ich kann es aber nur wärmstens empfehlen, insbesondere für den Spielcontroller mit Bewegungssensor. Beachten Sie, dass dieses Shield als Bausatz geliefert wird, sodass Sie es selbst zusammenlöten müssen.

einen Nintendo Nunchuk-Controller, erhältlich in nahezu jedem Spielzeugladen oder z. B. bei Amazon.

das Arduino Ethernet-Shield (Artikelnummer 2008436) von Watterott

einen Infrarotsensor wie den TSOP38238. Erhältlich bei Adafruit (Bestellnummer 157) oder Digi-Key (suchen Sie nach TSOP38238).

eine Infrarot-LED, erhältlich bei Reichelt oder Conrad (suchen Sie nach IR-LED).

ein Cinch-Kabel (Composite Video), beispielsweise erhältlich bei Adafruit (Artikelnummer 863).

einen 5-V-Servomotor wie den Hitec HS-322 HD oder den Vigor Hextronic, erhältlich bei Adafruit oder Sparkfun. Suchen Sie nach Standard-Servomotoren mit einer Betriebsspannung von 4.8 V bis 6 V. In vielen Starter-Kits ist bereits ein Servomotor enthalten.

Für einige der Übungen benötigen Sie zusätzliche Bauteile:

einen Piezo-Summer oder -Lautsprecher. Suchen Sie in einem Online-Shop nach Piezo-Summer bzw. Piezo-Signalgeber.

Für den kleinen Lötkurs benötigen Sie:

einen Lötkolben mit 25-30 Watt Leistung, Bleistiftspitze und Lötständer.

Elektronik-Lötzinn mit Flussmittelkern. Der Durchmesser sollte 1 mm nicht überschreiten.

einen Schwamm.

Sie finden diese Dinge in jedem Elektronikladen. Dort gibt es Löt-Sets für Anfänger mit weiteren nützlichen Werkzeugen. So z. B. bei Adafruit (Bestellnummer 136) oder Makershed (Bestellnummer MKEE2).

Teil 1

Erste Schritte mit Arduino

1 Willkommen bei Arduino

Arduino wurde ursprünglich für Designer und Künstler entwickelt, also für Menschen mit geringem technischen Wissen. Auch ohne Programmierkenntnisse konnten diese Personen ausgefeilte Design-Prototypen und verblüffende interaktive Kunstwerke erschaffen. Es überrascht daher nicht, dass die ersten Schritte mit Arduino sehr leicht fallen, besonders, wenn Sie schon technisches Hintergrundwissen haben.

Trotzdem ist es wichtig, dass die Grundlagen stimmen. Sie holen das meiste aus Arduino heraus, indem Sie sich selbst mit dem Arduino-Board vertraut machen, mit der Entwicklungsumgebung und mit Techniken wie der seriellen Datenübertragung.

Wenn Sie bereits mit Computern gearbeitet haben, werden Sie sich fragen, was das besondere am Physical Computing ist und was das bedeutet. Letztlich sind Computer physische Objekte, und sie nehmen Eingaben von physischen Tastaturen und Mäusen entgegen. Sie geben Ton und Filme auf physische Lautsprecher und Bildschirme aus. Ist also die ganze Computerei nicht eine physische Sache?

Eigentlich ist die normale IT eine Teilmenge der physischen Computerei: Tastaturen und Mäuse sind Sensoren für Eingaben der Umgebung, und Bildschirme und Drucker sind Aktoren oder Wandler. Doch die Steuerung spezieller Sensoren und Wandler mit normalen Computern ist sehr kompliziert. Mit Arduino jedoch ist es ein Leichtes, ausgefeilte und sogar verrückte Geräte zu steuern. Im Rest dieses Buchs lernen Sie, wie das vonstatten geht, und in diesem Kapitel machen Sie die ersten Schritte ins Physical Computing, indem Sie lernen, wie Sie Arduino steuern, welche Tools Sie benötigen und wie Sie sie installieren und konfigurieren. Danach gehen wir sofort zum spaßigen Teil über: Sie entwickeln Ihr erstes Arduino-Programm.

1.1 Was Sie benötigen

1. ein Arduino-Board wie das Uno, Duemilanove oder Diecimila

2. ein USB-Kabel, um Arduino mit Ihrem Computer zu verbinden

3. die Arduino-IDE (lesen Sie dazu den Abschnitt 1.4, Die Arduino IDE installieren).

Abb. 1–1 Alle Teile, die Sie in diesem Kapitel benötigen

Fotos wie dieses finden Sie in den meisten der folgenden Kapitel, wobei die Zahlen in der Abbildung den angegebenen Nummern in der Teileliste entsprechen. Standardteile wie Arduino-Boards und USB-Kabel werden in den anderen Fotos jedoch nicht mehr gezeigt.

1.2 Was ist Arduino eigentlich genau?

Anfänger sind oft verwirrt, wenn sie mit dem ersten Arduino-Projekt beginnen. Wenn Sie nach Arduino suchen, hören und lesen Sie eigenartige Namen wie Uno, Duemilanove, Diecimila, LilyPad oder Seeduino. Das Problem ist: Es gibt nicht »das« Arduino.

Vor einigen Jahren entwickelte das Arduino-Team ein Microcontroller-Board und veröffentlichte den Bauplan unter einer Open Source-Lizenz. Einige Elektronikläden führen komplett aufgebaute Boards. Diejenigen unter Ihnen, die an Elektronik interessiert sind, können den Schaltplan1 aber auch herunterladen und selbst ein Board bauen.

Mit den Jahren verbesserte das Arduino-Team das Board und veröffentlichte mehrere neue Versionen. Die haben normalerweise italienische Bezeichnungen wie Uno, Duemilanove oder Diecimila, und Sie finden online eine Liste2 aller vom Arduino-Team entwickelten Boards.

Abbildung 1–2 zeigt eine kleine Auswahl der verfügbaren Arduinos. Sie mögen unterschiedlich aussehen, haben aber viele Gemeinsamkeiten, und man kann sie alle mit denselben Tools und Bibliotheken programmieren.

Abb. 1–2 Sie können unter vielen unterschiedlichen Arduinos wählen.

Diese Platinen folgen zwar alle demselben Prinzip, unterscheiden sich aber in den Einzelheiten. So hat der Arduino Due3 mehr I/O-Pins als alle anderen Modellen und darüber hinaus einen 32-Bit-ARM-Mikrocontroller. Der Arduino Nano4 dagegen wurde zur Verwendung auf einem Steckbrett konzipiert, sodass er überhaupt keine Anschlussbuchsen aufweist. Nach meiner Erfahrung ist es für Anfänger am besten, mit einem der »Standard«-Boards zu beginnen, etwa dem Uno.

Das Arduino-Team hat aber nicht nur die Hardware stetig verbessert. Es gibt auch Neuentwicklungen für spezielle Anwendungen. Zum Beispiel wurde das LilyPad5 entwickelt, um Microcontroller in Textilien zu integrieren. Sie können damit interaktive T-Shirts entwerfen.

Zusätzlich zu den offiziellen Boards finden Sie im Web zahllose Arduino-Nachbauten. Jeder darf das ursprüngliche Board verwenden und abändern, und daher haben viele Menschen eigene Versionen des Arduino-Boards entwickelt. Unter vielen anderen finden Sie dort Freeduino, Seeduino, Boarduino und das erstaunliche Paperduino6, einen Arduino-Klon ohne geätzte Platine. Alle Bauteile sind an einem normalen Stück Papier befestigt.

Arduino ist ein registriertes Warenzeichen. Nur die offiziellen Boards werden »Arduino« genannt. Die Klone haben normalerweise Namen, die auf »duino« enden. Sie können für die Projekte in diesem Buch jeden Klon verwenden, der mit dem Original-Arduino vollständig kompatibel ist.

1.3 Das Arduino-Board erkunden

In Abbildung 1–3 sehen Sie ein Foto des Arduino-Boards und der wesentlichen Teile. Ich erkläre diese nacheinander. Fangen wir mit dem USB-Anschluss an: Um Arduino an Ihren Computer anzuschließen, benötigen Sie ein USB-Kabel. Der Typ dieses Kabel hängt davon ab, was für einen Arduino Sie verwenden. So hat beispielsweise der Arduino Uno eine große B-Standardbuchse, während andere Modelle wie der Leonardo oder der Due über kleine micro-B-Anschlüsse verfügen.

Abb. 1–3 Die wichtigsten Arduino-Komponenten

Den USB-Anschluss können Sie für unterschiedliche Zwecke einsetzen:

neue Software auf das Board hochladen (wie das geht, erfahren Sie im Abschnitt 1.7, Programme kompilieren und hochladen).

mit dem Arduino-Board und Ihrem Computer kommunizieren (mehr erfahren Sie im Abschnitt 2.4, Die serielle Schnittstelle verwenden).

das Arduino-Board mit Energie versorgen.

Da es sich um ein elektronisches Gerät handelt, benötigt Arduino Strom. Eine Möglichkeit der Energieversorgung ist der Anschluss an den USB-Port Ihres Computers. Das ist jedoch nicht immer sinnvoll. Einige Projekte benötigen gar keinen Computer, und es wäre viel zu aufwändig, den Computer nur als Arduino-Stromquelle zu nutzen. Außerdem liefert der USB-Port nur 5 V, und manchmal benötigen Sie mehr.

In diesen Fällen ist es am besten, ein Netzteil zu verwenden (siehe Abbildung 1–4), das 9 V liefert (empfohlen wird eine Spannung zwischen 7 V und 12 V).7 Sie benötigen ein Netzteil mit 2,1-mm-Hohlstecker mit Pluspol am Innenstift. (Noch müssen Sie nicht wissen, was das bedeutet, besorgen Sie sich einfach ein Netzteil im örtlichen Elektronikladen). Schließen Sie es an den Stromanschluss von Arduino an, und es startet sofort, auch ohne Anschluss an einen Computer. Übrigens: Auch wenn Sie Arduino über USB anschließen, wird die externe Stromversorgung verwendet, sofern sie angeschlossen ist.

Abb. 1–4 Arduino funktioniert auch mit einem externem Netzteil.

Beachten Sie, dass ältere Versionen der Arduino-Boards (Arduino-NG und Diecimila) nicht automatisch zwischen externer Stromversorgung und USB-Strom umschalten. Statt dessen gibt es einen Jumper zur Spannungswahl, PWR_SEL, und Sie müssen ihn auf EXT oder USB umstecken (siehe Abbildung 1–5).

Abb. 1–5 Ältere Arduino-Boards haben einen Jumper zur Wahl der Stromversorgung.

Jetzt wissen Sie, wie Sie Arduino mit Strom versorgen. Arduino ist nicht geizig und teilt seinen Strom gern mit anderen Geräten. In Abbildung 1–3 sehen Sie mehrere Sockel (die ich manchmal auch »Pins« nenne, da sie mit Pins des Microcontrollers verbunden sind) für die Stromversorgung.

Mit den Pins 3V3 und 5V können Sie an Arduino angeschlossene Geräte mit 3,3 V oder 5 V versorgen.

Zwei Masse-Pins (GND) bieten einen gemeinsamen Masseanschluss für die externen Geräte und Arduino.

Manche Projekte müssen mobil sein, so dass eine mobile Stromversorgung z. B. mit Batterien erforderlich ist. Sie können eine externe Stromquelle wie ein Akkupack an die Sockel Vin und GND anschließen.

Wenn Sie ein Netzteil an den Stromeingang von Arduino anschließen, können Sie die Spannung über den Vin-Pin anzapfen.

Unten rechts auf dem Board sehen Sie sechs analoge Eingangspins namens A0-A5. Hier können Sie Analogsensoren an Arduino anschließen. Sie nehmen Sensordaten entgegen und wandeln sie in Werte zwischen 0 und 1023 um. Im Kapitel 5, Die Außenwelt wahrnehmen, verwenden wir sie, um einen Temperaturfühler an Arduino anzuschließen.

Oben auf dem Board befinden sich 14 digitale I/O-Pins namens D0-D13. Je nach Bedarf können Sie die Pins zur digitalen Ein- und Ausgabe verwenden, so dass Sie den Zustand eines Tasters abfragen oder eine LED an- und ausschalten können (dies machen wir im Abschnitt 3.5, Arbeiten mit Tastern). Sechs davon (D3, D5, D6, D9, D10 und D11) können auch als analoge Ausgabepins fungieren. In diesem Modus wandeln sie Werte zwischen 0 und 255 in eine Analogspannung um.

Analoge und digitale Signale

Fast alle Prozesse verlaufen analog. Immer, wenn Sie ein Naturphänomen wie Elektrizität oder Schall wahrnehmen, empfangen Sie ein Analogsignal. Eine der wichtigsten Eigenschaften von Analogsignalen ist ihre Stufenlosigkeit. Zu jedem gegebenen Zeitpunkt können Sie den Signalpegel messen und theoretisch können Sie auch die kleinste Pegeländerung erkennen.

Doch auch, wenn wir in einer analogen Welt leben, befinden wir uns zugleich im digitalen Zeitalter. Als die ersten Computer vor wenigen Jahrzehnten gebaut wurden, erkannten die Menschen schnell, dass es viel einfacher ist, reale Daten und Informationen zu verarbeiten, wenn sie als Zahlen und nicht als Analogsignal wie Spannung oder Lautstärke vorliegen. Es ist z. B. viel leichter, Töne mit einem Computer zu bearbeiten, wenn die Schwingungen als eine Reihe von Zahlen gespeichert werden. Jede Zahl in dieser Reihe entspricht dem Pegel eines Signals zu einem bestimmten Zeitpunkt.

Statt also das gesamte Analogsignal zu speichern (wie auf einer Schallplatte), messen wir den Signalpegel nur zu bestimmten Zeitpunkten (siehe Abbildung 1–6). Diesen Vorgang nennen wir »Sampling« oder »Abtasten« und die gespeicherten Werte »Samples« oder »Messwerte«. Die Häufigkeit, in der neue Messwerte erzeugt werden, nennen wir »Abtastrate«. Bei Musik-CDs liegt die Abtastrate beispielsweise bei 44,1 kHz: Wir erfassen 44100 Werte pro Sekunde.

Wir müssen die Messwerte außerdem auf einen bestimmten Bereich beschränken. Bei einer Musik-CD umfasst jeder Messwert 16 Bit. In Abbildung 1–6 wird der Bereich durch zwei gestrichelte Linien dargestellt, und am Anfang des Signals mussten wir eine Signalspitze abschneiden.

Sie können sowohl analoge als auch digitale Geräte an Arduino anschließen und müssen sich meistens keine Gedanken darüber machen. Arduino übernimmt automatisch die Umwandlung von analog in digital für Sie und umgekehrt.

All diese Pins sind mit dem Microcontroller verbunden. Ein Microcontroller kombiniert eine CPU mit Peripheriefunktionen wie I/O-Kanälen. Es gibt viele verschiedene Arten von Microcontrollern, die meisten Arduinos verwenden einen ATmega328, einen 8-Bit-Microcontroller von einer Firma namens Atmel. Es gibt jedoch Arduino-Modelle mit leistungsstärkeren Microcontrollern, z. B. den Arduino Mega oder den Arduino Due.

Auch wenn moderne Computer ihre Programme von der Festplatte laden, ein Microcontroller muss normalerweise programmiert werden. Das bedeutet, dass Sie Ihre Software mit einem Kabel auf den Microcontroller übertragen müssen. Nachdem das Programm hochgeladen ist, verbleibt es dort, bis es von einem neuen Programm überschrieben wird. Immer wenn Sie Arduino mit Strom versorgen, wird das momentan im Microcontroller gespeicherte Programm automatisch ausgeführt. Manchmal wollen Sie aber, dass Arduino das aktuelle Programm komplett neu startet. Mit der Reset-Taste rechts am Board können Sie das tun. Wenn Sie sie drücken, wird alles auf den Anfangszustand gebracht, und das Programm im Microcontroller startet neu (wir machen das im Abschnitt 3.4, Erste Version des binären Würfels).

Die meisten Arduino-Boards weisen auch einige LEDs auf. Mehr darüber erfahren Sie im Abschnitt 1.6, Hello, world!

1.4 Die Arduino-IDE installieren

Um den Einstieg in Arduino so leicht wie möglich zu machen, haben die Arduino-Entwickler eine einfache, aber nützliche integrierte Programmierumgebung (IDE) entwickelt, die auf vielen verschiedenen Betriebssystemen läuft. Bevor Sie mit Ihren ersten Projekten loslegen können, müssen Sie sie installieren.

Wichtiger Hinweis: Zurzeit sind zwei Versionen der IDE erhältlich (1.0.6 und 1.5.8beta8). Version 1.5.8beta brauchen Sie nur für den Arduino Yún und den Arduino Due. Für alle anderen Boards verwenden Sie 1.0.6 (bzw. 1.0.x, wenn eine neuere Version erhältlich ist). Die folgende Anleitung gilt für die Verison 1.0.6.

Die Arduino-IDE unter Windows installieren

Die Arduino-IDE läuft auf allen neueren Versionen von Microsoft Windows, wie Windows 8.1 und Windows 7. Die Software wird in zwei Spielarten geliefert, einmal als Windows Installer-Variante und einmal als eigenständiges ZIP-Archiv. Die neueste Version beider Varianten finden Sie jeweils auf der Download-Seite von Arduino9.

Wenn Sie auf Ihrem Computer Administratorrechte haben, sollten Sie den Installer verwenden, da er nicht nur die IDE, sondern auch alle erforderlichen Treiber installiert. Sie müssen dann normalerweise keine weiteren Schritte ausführen, sondern können gleich damit beginnen, die IDE zu nutzen.

Sollten Sie dagegen keine Administratorrechte haben, laden Sie das ZIP-Archiv herunter und entpacken Sie es an einem Speicherort Ihrer Wahl. Bevor Sie die IDE starten, müssen Sie die Treiber für den USB-Anschluss des Arduino installieren. Wie Sie dazu vorgehen müssen, hängt davon ab, welches Arduino-Modell und welche Windows-Version Sie verwenden.

Treiber für aktuelle Arduino-Boards installieren

Um die Treiber für aktuelle Boards wie den Arduino Uno zu installieren, müssen Sie den Arduino über USB an Ihren Computer anschließen und die Treiberinstallation starten. Dieser automatische Vorgang schlägt jedoch meistens fehl, weshalb Sie die Systemsteuerung auf Ihrem Rechner öffnen und dort den Geräte-Manager öffnen müssen (unter System und Sicherheit)10. Im Abschnitt Anschlüsse (COM und LPT) sollten Sie dann den Eintrag Arduino UNO (COMxx) finden (siehe Abbildung 1–6).

Abb. 1–6 Gewöhnlich wird der Arduino im Geräte-Manager angezeigt

Wenn Sie den Eintrag nicht finden, suchen Sie nach dem Eintrag Unbekanntes Gerät unter Andere Geräte (siehe Abbildung 1–7).

Abb. 1–7 Manchmal wird der Arduino nicht richtig erkannt

Rechtsklicken Sie auf den Eintrag für den Arduino und wählen Sie Treiber aktualisieren und dann Auf dem Computer nach Treibersoftware suchen. Wechseln Sie zum Ordner drivers des entpackten Archivs und wählen Sie die Datei arduino. inf (siehe Abbildung 1–8). In älteren Versionen der IDE hieß diese Datei Arduino UNO.inf.

Abb. 1–8 Der Inhalt des Treiberordners

Nach der Installation der Treiber können Sie die Arduino IDE starten und mit dem Board arbeiten.

Unter Windows 8.x müssen Sie zunächst einige der Schutzmechanismen deaktivieren, bevor Sie die Treiber isntallieren können.11

Treiber für ältere Boards installieren

Die Treiberinstallation für ältere Boards wie Duemilanove, Diecimila und Nano verläuft ein wenig anders. Allerdings müssen Sie auch hier als Erstes die Platine an den Computer anschließen.

Unter Windows Vista läuft die Treiberinstallation normalerweise automatisch. Lehnen Sie sich zurück und sehen Sie den Meldungen des Hardware-Assistenten zu, bis Ihnen angezeigt wird, dass Sie die neue USB-Hardware verwenden können.

Windows 8.x, Windows 7 und Windows XP finden die Treiber auf Microsoft Update möglicherweise nicht automatisch. Früher oder später fragt Sie der Hardware-Assistent nach dem Pfad zum Treiber, nachdem Sie die automatische Installation abgebrochen haben. Dann müssen Sie das richtige Arduino-Installationsverzeichnis für Ihr Board angeben, hier also drivers/FTDI USB Drivers.

Nachdem die Treiber installiert sind, starten Sie die ausführbare Datei Arduino im Hauptverzeichnis des Archivs durch Doppelklick.

Beachten Sie, dass sich die USB-Treiber nicht so oft ändern wie die Arduino-IDE. Immer wenn Sie eine neue Version der IDE installieren, prüfen Sie auch, ob Sie neue Treiber installieren müssen. Meistens ist das nicht der Fall.

Die Arduino-IDE auf dem Mac installieren

Die Arduino-IDE ist als ZIP-Datei für die aktuelle Version von Mac OS X erhältlich.12 Laden Sie sie herunter, doppelklicken Sie sie und ziehen Sie das Arduino-Symbol in den Ordner Programme. Die IDE benötigt die Java Virtual Machine. Falls Sie diese noch nicht installiert haben, bittet Mac OS X Sie um die Erlaubnis, das nachzuholen.

Wenn Sie Arduino Uno oder Arduino Mega 2560 verwenden, sind Sie fertig und können die IDE starten. Bevor Sie die IDE mit älteren Arduinos wie Duemilanove, Diecimila oder Nano verwenden können, müssen Sie Treiber für die serielle Schnittstelle von Arduino installieren. Die neueste Version finden Sie online.13 Laden Sie das Paket für Ihre Plattform herunter (sie hat gewöhnlich einen Namen wie FTDIUSBSerialDriver_10_4_10_5_10_6.mpkg), doppelklickenSie darauf und folgen Sie den Installationsanweisungen.

Wenn Sie eine neue Version der Arduino-IDE installieren, müssen Sie die Treiber normalerweise nicht erneut installieren (außer, es gäbe auch eine neuere Treiberversion).

Die Arduino-IDE unter Linux installieren

Der Installationsvorgang ist bei den verschiedenen Linux-Distributionen nicht einheitlich. Die Arduino-IDE funktioniert mit fast allen modernen Linux-Versionen hervorragend, der Installationsvorgang ist jedoch sehr unterschiedlich. Häufig müssen Sie Zusatzsoftware installieren (z. B. die virtuelle Java-Maschine), die bei anderen Betriebssystemen bereits vorinstalliert ist.

Am besten schlagen Sie in der offiziellen Dokumentation14 die speziellen Anweisungen für Ihr System nach.

Nachdem die Treiber und die IDE installiert sind, sehen wir nun nach, was es dort gibt.

1.5 Begegnung mit der Arduino-IDE

Wenn Sie eine IDE wie Eclipse, Xcode oder Microsoft Visual Studio verwendet haben, sollten Sie Ihre Erwartungen herunterschrauben, weil die Arduino-IDE recht einfach ist. Sie besteht hauptsächlich aus einem Editor, einem Compiler, einem Loader und einem Monitor für die serielle Schnittstelle (siehe Abbildung 1–9 – oder starten Sie einfach die IDE auf Ihrem Computer).

Abb. 1–9 Eine aufgeräumte Arduino-IDE

Es gibt keine Zusatzfunktionen wie Debugger oder Autovervollständigung. Sie können nur wenige Voreinstellungen ändern, und als Java-Anwendung wird die IDE nicht vollständig in den Mac-Arbeitsplatz integriert. Trotzdem kann man sie gebrauchen, und es gibt sogar ein wenig Unterstützung für das Projektmanagement.

In Abbildung 1–10 sehen Sie die Werkzeugleiste der IDE, mit der Sie schnellen Zugriff auf die wichtigsten Funktionen erhalten.

Mit der Schaltfläche Verify (Übersetzen) können Sie das Programm kompilieren, das gerade im Editor ist. In mancher Hinsicht ist die Bezeichnung »Verify« (= überprüfen) nicht günstig gewählt, da die Funktion mehr als die syntaktische Überprüfung des Programms vornimmt: Sie überführt die Software in eine für das Arduino-Board passende Darstellung. Diese Funktion können Sie auf dem Mac mit dem Tastaturbefehl Cmd-R und auf allen anderen Systemen mit Strg-R aufrufen.

Wenn Sie auf die Schaltfläche Upload klicken (Cmd-U bzw. Strg-U), kompiliert die IDE das aktuelle Programm und transferiert es auf das Arduino-Board, das Sie unter Tools > Serial Port ausgewählt haben. Mehr dazu lernen Sie im Abschnitt 1.7, Programme kompilieren und hochladen.

Die Schaltfläche New (Neue Datei) (Cmd-N bzw. Strg-N) erstellt ein neues Programm, indem der Inhalt des aktuellen Editor-Fensters gelöscht wird. Bevor das geschieht, können Sie alle ungespeicherten Änderungen sichern.

Mit Open (Cmd-O bzw. Strg-O) öffnen Sie eine auf dem System befindliche Programmdatei.

Save (Cmd-S bzw. Strg-S) speichert das aktuelle Programm.

Arduino kommuniziert mit dem Computer über die serielle Schnittstelle. Wenn Sie auf die Schaltfläche Serial Monitor (Serielles Terminal) klicken (Umschalt-Cmd-M bzw. Umschalt-Strg-M), können Sie verfolgen, wie Daten zu Arduino und von dort wieder zurück gesendet werden.

Abb. 1–10 Die IDE-Werkzeugleiste bietet schnellen Zugriff auf wichtige Funktionen.

Auch wenn die Verwendung der IDE einfach ist, könnten Sie ergänzende Informationen benötigen oder auf Probleme stoßen. Verwenden Sie in diesen Fällen das Menü Help. Es verweist auf hilfreiche Informationen, die man auf der Arduino-Website finden kann, zusammen mit schnellen Lösungen für typische Probleme, Referenzinformationen und Anleitungen.

1.6 Hello, world!

Um mit den wichtigsten IDE-Funktionen vertraut zu werden, erstellen wir ein einfaches Programm, das eine Leuchtdiode (LED) zum Blinken bringt. Eine LED ist eine günstige und effiziente Lichtquelle, und Arduino wird bereits mit mehreren LEDs geliefert. Eine LED zeigt an, ob das Board mit Strom versorgt wird, und zwei weitere LEDs blinken, wenn Daten über eine serielle Verbindung übertragen werden (siehe Abbildung 1–11).

Abb. 1–11 Auf dem Arduino-Board befinden sich mehrere LEDs.

In unserem ersten Projekt lassen wir die Arduino-Status-LED blinken. Die Status-LED ist an den digitalen I/O-Pin 13 angeschlossen. Digital-Pins sind eine Art Schalter und können sich in einem von zwei Zuständen befinden: HIGH oder LOW. Bei HIGH wird der Ausgabe-Pin auf 5V eingestellt, die durch die LED fließen und sie zum Leuchten bringen. Wird er auf LOW gesetzt, fließt kein Strom mehr und die LED geht aus. Sie müssen im Moment nicht im Detail wissen, was genau vor sich geht. Wenn Sie neugierig sind, werfen Sie einen Blick in den Abschnitt A.1, Strom, Spannung und Widerstand, im Anhang.

Öffnen Sie die IDE und geben Sie folgenden Code in den Editor ein:

welcome/HelloWorld/HelloWorld.ino

Zeile 1

const unsigned int

LED_PIN

13

;

-

const unsigned int

PAUSE

500

;

-

-

void

setup

() {

5

pinMode

(

LED_PIN

,

OUTPUT

);

-

}

-

-

void

loop

() {

-

digitalWrite

(

LED_PIN

,

HIGH

);

10

delay

(

PAUSE

);

-

digitalWrite

(

LED_PIN

,

LOW

);

-

delay

(

PAUSE

);

-

}

Sehen wir nun, wie das funktioniert, und untersuchen wir das Programm Stück für Stück: In den ersten zwei Zeilen definieren wir zwei Konstanten vom Typ int mit dem Schlüsselwort const. LED_PIN bezieht sich auf die Nummer des digitalen Ausgabepins, und PAUSE definiert die Länge einer Blinkperiode in Millisekunden.

Jedes Arduino-Programm benötigt eine Funktion namens setup, und unsere beginnt in Zeile 4. Die Definition folgt immer diesem Schema:

<Rückgabewerttyp> <Funktionsname> '(' <Parameterliste> ')'

In unserem Fall ist der Funktionsname setup, und der Rückgabetyp ist void: Die Funktion gibt nichts zurück. setup erwartet keine Argumente, so dass wir die Parameterliste leer lassen. Bevor wir aber mit der Analyse des Programms weitermachen, sollten Sie etwas mehr über die Arduino-Datentypen lernen.

Arduino-Datentypen

Alle in Arduino gespeicherten Daten gehören zu einem bestimmten Typ. Abhängig von Ihren Bedürfnissen können Sie aus den folgenden wählen:

Arduino-Funktionen

Arduino ruft die Funktion setup ein Mal beim Hochfahren auf, und wir verwenden sie in unserem Hello-world-Beispiel aus Abschnitt 1.6, um das Board und alle angeschlossene Hardware zu initialisieren. Mit der Methode pinMode machen wir Pin 13 zum Ausgabe-Pin. Dadurch stellen wir sicher, dass der Pin genug Spannung liefert, damit die LED leuchtet. Die Voreinstellung für den Pin ist INPUT, und INPUT und OUTPUT sind vordefinierte Konstanten.15

Eine weitere notwendige Funktion namens loop beginnt in Zeile 8. Sie enthält die Hauptlogik des Programms und ist eine unendliche Schleife. Unser Programm muss die an Pin 13 angeschlossene LED zunächst einschalten. Um das zu tun, verwenden wir digitalWrite und übergeben die Nummer des Pins sowie die Konstante HIGH. Das bedeutet, dass der Pin bis auf Weiteres 5 V liefert und die am Pin angeschlossene LED leuchtet.

Das Programm ruft dann delay auf und wartet 500 Millisekunden, ohne etwas zu tun. Während dieser Pause verbleibt Pin 13 auf HIGH und die LED leuchtet weiter. Schließlich erlischt die LED, wenn der Pin-Status mit digitalWrite zurück auf LOW gesetzt wird. Wir warten wieder 500 Millisekunden, und die loop-Funktion endet. Arduino startet sie erneut, und die LED blinkt.

Im nächsten Abschnitt lernen Sie, wie Sie das Programm zum Laufen bringen und es auf Arduino hochladen.

1.7 Programme kompilieren und hochladen

Bevor Sie ein Programm kompilieren und auf Arduino hochladen, müssen Sie zwei Dinge in der IDE konfigurieren: den verwendeten Arduino-Typ und die serielle Schnittstelle, an der das Board angeschlossen ist.

Den Typ zu bestimmen, ist leicht, denn der Name steht auf dem Board. Gängige Typen sind Uno, Duemilanove, Diecimila, Nano, Mega, Mini, NG, BT, LilyPad, Pro oder Pro Mini. In einigen Fällen müssen Sie prüfen, welchen Microcontroller Ihr Arduino verwendet. Meistens ist es ein ATmega328. Sie finden die Bezeichnung auf dem Microcontroller aufgedruckt. Wenn Sie den richtigen Typ herausgefunden haben, wählen Sie ihn im Menü Tools > Board.

Jetzt müssen Sie im Menü Tools > Serial Port wählen, an welcher Schnittstelle Arduino angeschlossen ist. Unter Mac OS X beginnt der Name der seriellen Schnittstelle mit /dev/tty.usbserial oder /dev/tty.usbmodem (auf meinem MacBook Pro ist es /dev/tty.usbmodem24321). Auf Linux-Systemen sollte der Name /dev/ ttyUSB0, /dev/ttyUSB1 oder ähnlich lauten, abhängig von der Anzahl der USB-Ports Ihres Computers.

Auf dem Windows-System müssen Sie den Geräte-Manager verwenden, um den richtigen USB-Port herauszufinden. Suchen Sie im Geräte-Manager unter Anschlüsse (COM & LPT) den USB-Eintrag (siehe Abbildung 1–6). Normalerweise wird der Port COM1, COM2 oder ähnlich genannt.

Wenn Sie die richtige Schnittstelle gewählt haben, klicken Sie auf die Schaltfläche Verify. Sie sollten nun die folgende Ausgabe im IDE-Meldungsbereich sehen (in der Arduino-IDE werden Programme Sketches genannt).

Binary sketch size: 1082 bytes (of a 32256 byte maximum)

Das bedeutet, dass die IDE den Quelltext erfolgreich in 1082 Bytes Maschinencode kompiliert hat, den wir auf den Arduino hochladen können. Sehen Sie stattdessen eine Fehlermeldung, prüfen Sie, ob Sie das Programm richtig eingegeben haben (im Zweifelsfall laden Sie den Code von der Website zum Buch herunter).16 Abhängig vom Arduino-Board kann byte maximum unterschiedlich sein. Auf einem Arduino Duemilanove sind es normalerweise 14336.

Klicken Sie jetzt auf die Schaltfläche Upload und nach einigen Sekunden sehen Sie im Meldungsbereich folgende Nachricht:

Binary sketch size: 1082 bytes (of a 32256 byte maximum)

Das ist dieselbe Meldung wie nach dem Kompilieren und sie sagt uns, dass die 1082 Bytes Maschinencode erfolgreich auf Arduino übertragen wurden. Im Falle von Fehlern prüfen Sie, ob Sie den richtigen Arduino-Typ und die korrekte Schnittstelle im Menü Tools gewählt haben.