image

Image

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

Image

Lektorat: Dr. Michael Barabas
Übersetzung: G&U Language & Publishing Services GmbH, Flensburg (www.GundU.com)
Copy-Editing: Ursula Zimpfer, Herrenberg
Satz: G&U Language & Publishing Services GmbH, Flensburg (www.GundU.com)
Herstellung: Frank Heidt
Umschlaggestaltung: Helmut Kraus, www.exclam.de
Druck 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 Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;
detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

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

2. Auflage 2015
Copyright © 2015 dpunkt.verlag GmbH
Ringstraße 19 B
69115 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:

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:

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:

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

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

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).

Image

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.

Image

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.

Image

Abb. 1–3 Die wichtigsten Arduino-Komponenten

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

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.

Image

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).

Image

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.

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.

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).

Image

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).

Image

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.

Image

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

12Programme