26

Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen
Page 2: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

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

Page 3: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Maik Schmidt

ArduinoEin schneller Einstieg in die Microcontroller-Entwicklung

Page 4: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Lektorat: Dr. Michael BarabasÜbersetzung: Volkmar GronauCopy-Editing: Anja StillerSatz: G&U Language & Publishing Services GmbH, Flensburg (www.GundU.com)Herstellung: Nadine ThieleUmschlaggestaltung: Helmut Kraus, www.exclam.de Druck und Bindung: M.P. Media-Print Informationstechnologie GmbH, 33100 Paderborn

Copyright der englischen Originalversion © 2011 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-89864-764-9PDF 978-3-86491-199-6ePub 978-3-86491-200-9

1. Auflage 2012 Copyright © 2012 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

Page 5: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Für Yvonne, die großartigste kleine Schwester der Welt.

Page 6: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen
Page 7: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

vii

Inhalt

Danksagung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

Für wen dieses Buch gedacht ist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

Was Sie in diesem Buch finden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi

Arduino Uno und die Arduino-Plattform . . . . . . . . . . . . . . . . . . . . . . . . . . xvii

Programmcode und Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii

Online-Material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii

Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix

Startpakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix

Die vollständige Teileliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx

Teil 1 Erste Schritte mit Arduino 1

1 Willkommen bei Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1 .2 Was ist Arduino eigentlich genau? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1 .3 Das Arduino-Board erkunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1 .4 Die Arduino-IDE installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1 .5 Begegnung mit der Arduino-IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1 .6 Programme kompilieren und hochladen . . . . . . . . . . . . . . . . . . . . . . . 15

1 .7 Arbeiten mit LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1 .8 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1 .9 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 8: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Inhaltviii

2 Arduino intern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2 .2 Projekte und Programme verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2 .3 Voreinstellungen ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2 .4 Serielle Schnittstellen einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2 .5 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2 .6 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Teil 2 Acht Arduino-Projekte 37

3 Binäre Würfel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3 .2 Mit Breadboards arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3 .3 Eine LED auf dem Breadboard verwenden . . . . . . . . . . . . . . . . . . . . . 42

3 .4 Die erste Version des binären Würfels . . . . . . . . . . . . . . . . . . . . . . . . . 44

3 .5 Mit Tastern arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3 .6 Ihren eigenen Taster einbauen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3 .7 Ein Würfelspiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3 .8 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3 .9 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4 Ein Morse-Code-Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4 .2 Die Grundlagen des Morse-Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4 .3 Den Morse-Code-Generator bauen . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4 .4 Das Generator-Interface zurechtbauen . . . . . . . . . . . . . . . . . . . . . . . . 63

4 .5 Ausgeben von Morsezeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4 .6 Die Klasse Telegraph installieren und verwenden . . . . . . . . . . . . . . . . 66

4 .7 Der Endschliff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4 .8 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4 .9 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Page 9: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Inhalt ix

5 Die Außenwelt wahrnehmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5 .2 Entfernungen mit einem Ultraschallsensor messen . . . . . . . . . . . . . . . 76

5 .3 Die Genauigkeit mit Fließkommazahlen erhöhen . . . . . . . . . . . . . . . . 82

5 .4 Die Genauigkeit mithilfe eines Temperatursensors erhöhen . . . . . . . . . 84

5 .5 Daten mit Processing an den Computer übertragen . . . . . . . . . . . . . . . 91

5 .6 Sensordaten darstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5 .7 Das Fundament der Anwendung legen . . . . . . . . . . . . . . . . . . . . . . . . 95

5 .8 Serielle Kommunikation in Processing implementieren . . . . . . . . . . . . 96

5 .9 Sensordaten grafisch darstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

5 .10 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

5 .11 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

6 Ein bewegungsgesteuerter Game-Controller . . . . . . . . . . . . . . . . . . . . . 103

6 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6 .2 Den Beschleunigungsmesser verdrahten . . . . . . . . . . . . . . . . . . . . . . 104

6 .3 Den Beschleunigungsmesser zum Leben erwecken . . . . . . . . . . . . . . . 106

6 .4 Eckwerte finden und korrigieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

6 .5 Ihren eigenen Game-Controller bauen . . . . . . . . . . . . . . . . . . . . . . . . 110

6 .6 Ihr eigenes Spiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6 .7 Weitere Projekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

6 .8 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

6 .9 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

7 Experimente mit dem Wii-Nunchuk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

7 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7 .2 Den Wii Nunchuk anschließen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7 .3 Mit dem Nunchuk kommunizieren . . . . . . . . . . . . . . . . . . . . . . . . . . 125

7 .4 Die Klasse Nunchuk erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7 .5 Die Klasse Nunchuk verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

7 .6 Einen farbigen Würfel drehen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7 .7 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

7 .8 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

Page 10: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Inhaltx

8 Netzwerkeln mit Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

8 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

8 .2 Sensordaten mit Ihrem PC ins Internet übertragen . . . . . . . . . . . . . . 138

8 .3 Eine Anwendung bei Twitter anmelden . . . . . . . . . . . . . . . . . . . . . . . 140

8 .4 Nachrichten über Processing twittern . . . . . . . . . . . . . . . . . . . . . . . . 142

8 .5 Mit einem Ethernet-Shield über das Netzwerk kommunizieren . . . . . 146

8 .6 E-Mails von der Kommandozeile . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

8 .7 E-Mails direkt von Arduino versenden . . . . . . . . . . . . . . . . . . . . . . . 153

8 .8 Bewegungserkennung mit einem passiven Infrarotsensor . . . . . . . . . 157

8 .9 Alles zusammenbauen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8 .10 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

8 .11 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

9 Eine Universalfernbedienung konstruieren . . . . . . . . . . . . . . . . . . . . . . . 165

9 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

9 .2 Die Grundlagen von Infrarot-Fernbedienungen . . . . . . . . . . . . . . . . . 167

9 .3 Steuercodes abgreifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

9 .4 Eine eigene Apple-Fernbedienung bauen . . . . . . . . . . . . . . . . . . . . . . 171

9 .5 Geräte im Browser fernsteuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

9 .6 Einen Infrarotproxy bauen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

9 .7 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

9 .8 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

10 Motoren mit Arduino steuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

10 .1 Was Sie benötigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

10 .2 Einführung in Motoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

10 .3 Servomotoren: Die ersten Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

10 .4 Einen Beschuldigomaten bauen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

10 .5 Wenn es nicht funktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

10 .6 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

Page 11: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Inhalt xi

Teil 3 Anhänge 197

A Grundlagen der Elektronik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

A .1 Stromstärke, Spannung und Widerstand . . . . . . . . . . . . . . . . . . . . . . 199

A .2 Ein kleiner Lötkurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

B Fortgeschrittene Arduino- Programmierung . . . . . . . . . . . . . . . . . . . . . . 209

B .1 Die Arduino-Programmiersprache . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

B .2 Bit-Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

C Fortgeschrittene serielle Programmierung . . . . . . . . . . . . . . . . . . . . . . . 213

C .1 Mehr über serielle Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . 213

C .2 Serielle Kommunikation mit verschiedenen Programmier sprachen . . 215

D Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

Page 12: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen
Page 13: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

xiii

Danksagung

Es wird für mich nicht einfacher, Bücher zu schreiben, je mehr ich verfasse . Wahr-scheinlich wird es mir niemals möglich sein, es ganz aus eigener Kraft zu schaffen . Ich werde immer auf die Hilfe anderer angewiesen sein . Auch zu diesem Buch haben viele wunderbare Menschen beigetragen .

Als Erstes muss ich meiner unglaublich talentierten Lektorin Susannah David-son Pfalzer danken . Nur dank ihrer fundierten Ratschläge, ihrer Geduld und ihrer Ermutigung war ich in der Lage, dieses Buch abzuschließen . Ich habe ihr sehr viel zu verdanken!

Auch das Team von Pragmatic Bookshelf war wieder erstaunlich professionell . Meine Herausgeber waren sehr mitfühlend, als ich schwere Zeiten durchmachte . Dafür bin ich ebenfalls sehr dankbar .

Ohne die verblüffenden Produkte des Arduino-Teams würde dieses Buch jeg-licher 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 Tod E . Kurt hat mir erlaubt, seinen hervorragenden C-Code für den Arduino-Zugriff über den seriellen Port zu verwenden .

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 einen Autor gibt es nichts Motivierenderes als Rückmeldungen . Daher möchte ich meinen Gutachtern René Bohne, Stefan Christoph, Georg Kaindl, Kaan Karaca, Christian Rattat, Stefan Rödder, Christoph Schwaeppe, Federico Tomassetti und Tony Williamitis danken . Aufgrund ihrer fundierten Kommentare und Vorschläge ist dieses Buch sehr viel besser geworden . Auch bin ich allen Test-lesern, die mich auf Fehler hingewiesen haben, zu Dank verpflichtet .

1 http://fritzing.org/

Page 14: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Danksagungxiv

Im Februar 2010, als ich gerade die erste Hälfte dieses Buches geschrieben hatte, starb meine Mutter . Das war die schwerste Zeit in meinem Leben, und ohne die Unterstützung durch meine Familie und meine Freunde hätte ich dieses Buch niemals fertig stellen können . Wir vermissen dich sehr, Mama!

Zu guter Letzt möchte ich Tanja dafür danken, dass sie Vertrauen in mich ge-setzt und mir wieder Spaß am Leben vermittelt hat, als ich es am dringendsten brauchte .

Page 15: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

xv

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-Compu-ting 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 Vor-lesungen 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 istWenn Sie an Elektronik interessiert sind und besonders daran, Ihre eigenen Spiel-zeuge, 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

1 http://arduino.cc

Page 16: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Vorwortxvi

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 auszuprobie-ren, 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 Program-mierkursus an oder lesen Sie zuerst ein Einsteigerbuch über Programmierung (Learn to Program [Pin09] ist ein netter Einstieg) . Dann lesen Sie »Die C-Programmier-sprache« [KR90] oder Sie lernen C++ mit »Die C++-Programmiersprache« [Str00] .

Was Sie in diesem Buch findenDieses Buch besteht aus drei Teilen (»Erste Schritte mit Arduino«, »Acht 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 Rei-henfolge 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 .

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 hochla-den . 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 verwen-den einen Temperatursensor und einen Ultraschallsensor, um einen sehr ge-nauen digitalen Zollstock zu bauen . Dann verwenden Sie einen dreiachsigen Beschleunigungsmesser, um Ihren eigenen Spielcontroller zu bauen und eine Abwandlung des Spiels Breakout zu programmieren .

■■ Bei der Elektronik müssen Sie die 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 .

Page 17: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Arduino Uno und die Arduino-Plattform xvii

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

■■ Apropos Webbrowser: Arduino mit dem Internet zu vernetzen ist leicht . Sie werden daher eine Alarmanlage bauen, die Ihnen eine E-Mail sendet, wenn sich jemand in Ihrem Wohnzimmer bewegt, während Sie nicht im Haus sind .

■■ Schließlich arbeiten Sie mit Elektromotoren, um ein Spaßgerät für Ihr nächstes Programmierprojekt zu bauen . Es verbindet sich mit Ihrem Versionskontroll-system, 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 .

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 Schalt-kreisen 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 versu-chen, 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 .

Alle Projekte in diesem Buch wurden mit Arduino Uno, Arduino Duemilanove und den Arduino IDE-Versionen 18 bis 22 getestet . Sie sollten, wenn möglich, die neueste Version verwenden .

Arduino Uno und die Arduino-PlattformNach dem Erscheinen verschiedener Arduino-Boards und IDE-Versionen entschied sich das Arduino-Team, die Version 1 .0 der Plattform zu spezifizieren . Sie bildet die Referenz für alle zukünftigen Entwicklungen und wird vermutlich Ende 20112 freigegeben . Mittlerweile ist Arduino Uno erschienen, und es gab schrittweise Verbesserungen an der IDE und den dazugehörigen Bibliotheken .

2 http://arduino.cc/blog/2010/01/01/uno-punto-zero/

Page 18: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Vorwortxviii

Zum jetzigen Zeitpunkt ist nicht genau geklärt, wie Arduino 1 .0 aussehen wird . Das Arduino-Team versucht, diese Version so abwärtskompatibel wie möglich zu machen . Für die neuen Arduino Uno-Boards ist dieses Buch auf dem aktuellen Stand . Alle Projekte laufen auch mit älteren Arduino-Boards wie Duemilanove und Diecimila . Das Buch ist auf dem Stand von Version 22 der Arduino-Plattform . Die Entwicklung dieser Plattform können Sie online verfolgen .3

Programmcode und KonventionenAuch 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 Processing4, im Anhang C .2, Serielle Ver-bindungen mit unterschiedlichen Programmiersprachen, lernen Sie jedoch auch, andere Programmiersprachen zu verwenden, um mit Arduino zu kommunizieren .

Wann immer Sie neben einem Absatz das Symbol für eine kurvenreiche Straße sehen, verlangsamen Sie Ihr Tempo und lesen Sie gründlich . Denn auf diese Weise sind schwierige oder gefährliche Verfahren gekennzeichnet .

Online-MaterialFü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 . Wenn Sie dieses Buch als eBook besitzen, klicken Sie auf den kleinen grauen Kasten über den Programmen, um die Datei direkt herunterzuladen . Sie können gern (in eng- Sie können gern (in eng-Sie können gern (in eng-lischer 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 .5

Auf der Webseite finden Sie außerdem einen Link auf Fotos bei Flickr6 . 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!

3 http://code.google.com/p/arduino/issues/list?q=milestone=1.04 http://processing.org5 http://www.dpunkt.de/arduino6 http://flickr.com

Page 19: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

xix

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 kos-tengünstige Bauteile, die für alle Projekte dieses Buchs benötigten Teile kosten insgesamt etwa 160,– Euro .

StartpaketeArduino-Komponenten und Elektronikteile erhalten Sie in vielen Onlineshops . Zu den besten in Deutschland gehört Watterott1 . Dort finden Sie hervorragende Start-pakete, und ich kann Ihnen nur raten, eines davon zu erwerben . In den USA zäh-len 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 Frit-zing Starter Kit kaufen, benötigen Sie nur noch die folgenden Zusatzteile:

■■ Parallax PING)))-Sensor

■■ TMP 36 Temperatursensor von Analog Devices

■■ 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

1 http://www.watterott.com2 http://makershed.com3 http://adafruit.com

Page 20: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Was Sie benötigenxx

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

■■ ein Arduino-Board wie Uno, Duemilanove oder Diecimila, erhältlich bei Wat-terott, Adafruit oder Makershed .

■■ ein Standard-USB-Kabel Typ A-B für USB 1 .1 oder 2 .0 . Davon haben Sie wahr-scheinlich schon einige . Wenn nicht, bestellen Sie sich eins .

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

■■ ein 100 Ohm-Widerstand, 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) .

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

4 http://reichelt.de5 http://conrad.de6 http://voelkner.de7 http://westfalia.de8 http://www.analog.com/en/sensors/digital-temperature-sensors/tmp36/products/product.html

Page 21: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Die vollständige Teileliste xxi

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

■■ einen Nintendo Nunchunk-Controller, erhältlich in nahezu jedem Spielzeug-laden oder z . B . bei Amazon .

■■ das Arduino Ethernet-Shield (Artikelnummer 2008436) von Watterott

■■ einen Infrarotsensor wie den PNA 4602 . Erhältlich bei Adafruit (Bestellnum-mer 157) oder Digi-Key (suchen Sie nach PNA 4602) .

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

■■ 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:

■■ ein Arduino Proto-Shield von Watterott (Artikelnummer 2009660) oder von Adafruit (Bestellnummer 51) . Sie benötigen auch ein kleines Breadboard (Artikelnummer 2009596 bei Watterott) . Ich kann dieses Shield nur wärms-tens empfehlen!

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

■■ einen Neigungssensor, erhältlich bei Adafruit (Bestellnummer 173) oder Mouser (Bestellnummer 107-2006-EV) . Der Sensor ist auch im Fritzing Starter Kit von Watterott enthalten .

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

Page 22: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen
Page 23: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

Teil 1 Erste Schritte mit Arduino

Page 24: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen
Page 25: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

3

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 Tastatu-ren 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: Tasta-turen 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■■ ein Arduino-Board wie das Uno, Duemilanove oder Diecimila

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

■■ eine LED

■■ die Arduino-IDE (lesen Sie dazu den Abschnitt 1 .4, Die Arduino IDE installieren) .

Diese Teile benötigen Sie in jedem Kapitel, daher werde ich sie nicht wieder er-wähnen .

Page 26: Maik Schmidt arbeitet seit beinahe 20 Jahren als … · 2013. 7. 23. · Maik Schmidt arbeitet seit beinahe 20 Jahren als Softwareentwickler für mittelständische und Großunternehmen

1 Willkommen bei Arduino4

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 Elektro-niklä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– 1 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–1 Sie können unter vielen unterschiedlichen Arduinos wählen.

1 http://arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf2 http://arduino.cc/en/Main/Boards