ARDUINO-WORKSHOPS

Eine praktische Einführung mit 65 projekten

John Boxall

Übersetzung: G&U Language & Publishing Services GmbH, www.gundu.com

Satz: G&U Language & Publishing Services GmbH, www.gundu.com

Copy-Editing: Alexander Reischert, Köln

Lektorat: Dr. Michael Barabas

Herstellung: Friederike Diefenbacher-Keita

Umschlaggestaltung: Helmut Kraus, www.exclam.de

Druck und Bindung: M.P. Media-Print Informationstechnologie GmbH, 33100 Paderborn

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen National bibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN 978-3-86490-106-5

Deutsche Ausgabe der amerikanischen Auflage 2013

Translation copyright für die deutschsprachige Ausgabe © 2013 dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Copyright der amerikanischen Originalausgabe © 2013 by John Boxall

Title of American original: Arduino Workshop – A Hands-On Introduction with 65 Projects

No Starch Press, Inc., San Francisco • www.nostarch.com

ISBN: 978-1-59327-448-1

Die vorliegende Publikation ist urheberrechtlich geschützt.

Alle Rechte vorbehalten.

Die Zusammenstellung der Software wurde nach bestem Wissen und Gewissen vorgenommen.

Bitte berücksichtigen Sie die jeweiligen Copyright-Hinweise, die bei den Programmen enthalten sind.

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-Bezeich nungen 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 im Zusammenhang mit der Verwendung dieses Buches stehen.

5 4 3 2 1 0

Für die beiden Menschen, die stets an mich geglaubt haben: meine Mutter und meine liebste Kathleen

Inhalt

Danksagung

Kapitel 1: Einführung

Kapitel 2: Ein genauerer Blick auf den Arduino und die IDE

Kapitel 3: Erste Schritte

Kapitel 4: Grundbausteine

Kapitel 5: Funktionen

Kapitel 6: Zahlen, Variablen und arithmetische Operationen

Kapitel 7: Flüssigkristallanzeigen

Kapitel 8: Den Arduino erweitern

Kapitel 9: Numerische Tastenfelder

Kapitel 10: Benutzereingaben über einen Touchscreen

Kapitel 11: Gestatten, Familie Arduino!

Kapitel 12: Motoren und Bewegung

Kapitel 13: GPS für den Arduino

Kapitel 14: Drahtlose Datenübertragung

Kapitel 15: Infrarot-Fernbedienungen

Kapitel 16: RFID-Transponder lesen

Kapitel 17: Datenbusse

Kapitel 18: Echtzeituhren

Kapitel 19: Das Internet

Kapitel 20: Mobilfunkkommunikation

Index

Inhaltsverzeichnis

DANKSAGUNG

1

EINFÜHRUNG

Unbegrenzte Möglichkeiten

Die Masse macht’s

Teile und Zubehör

Erforderliche Software

Mac OS X

Windows XP und neuer

Ubuntu Linux 9.04 und höher

Sicherheit

Ausblick

2

EIN GENAUERER BLICK AUF DEN ARDUINO UND DIE IDE

Der Arduino

Die IDE

Der Befehlsbereich

Der Textbereich

Der Meldungsbereich

Ein erster Sketch in der IDE

Kommentare

Die Einrichtungsfunktion

Die Hardware steuern

Die Schleifenfunktion

Den Sketch überprüfen

Den Sketch hochladen und ausführen

Den Sketch bearbeiten

Ausblick

3

ERSTE SCHRITTE

Projekte planen

Elektrizität

Stromstärke

Spannung

Leistung

Elektronische Bauteile

Widerstände

Leuchtdioden (LEDs)

Steckplatinen

Projekt Nr. 1: LED-La-Ola

Der Algorithmus

Die Hardware

Der Sketch

Der Schaltplan

Den Sketch ausführen

Verwenden von Variablen

Projekt Nr. 2: Wiederholungen mit for-Schleifen

Die Helligkeit der LEDs durch Pulsbreitenmodulation ändern

Projekt Nr. 3: PBM-Beispiel

Weitere elektronische Bauteile

Transistoren

Gleichrichterdioden

Relais

Schaltungen mit höherer Spannung

Ausblick

4

GRUNDBAUSTEINE

Schaltpläne

Symbole für die Bauteile

Leitungen in Schaltplänen

Schaltpläne analysieren

Kondensatoren

Die Kapazität von Kondensatoren

Kapazitätswerte ablesen

Arten von Kondensatoren

Digitale Eingänge

Projekt Nr. 4: Beispiel für digitale Eingänge

Der Algorithmus

Die Hardware

Der Schaltplan

Der Sketch

Den Sketch ändern

Den Sketch analysieren

Konstanten mit #define erstellen

Digitale Eingangspins messen

Entscheidungen mit if

Mehr Entscheidungsmöglichkeiten mit if-then-else

Boolesche Variablen

Logische Vergleichsoperatoren

Zwei und mehr Vergleiche

Projekt Nr. 5: Eine Verkehrsampel

Das Ziel

Der Algorithmus

Die Hardware

Der Schaltplan

Der Sketch

Den Sketch ausführen

Analoge und digitale Signale

Projekt Nr. 6: Ein Testgerät für Einzelzellenbatterien

Das Ziel

Der Algorithmus

Die Hardware

Der Schaltplan

Der Sketch

Rechnen mit dem Arduino

Fließkommavariablen

Vergleichsoperatoren für Berechnungen

Die Genauigkeit der Analogmessung durch eine Bezugsspannung verbessern

Externe Bezugsspannung

Interne Bezugsspannung

Regelbare Widerstände

Piezoelektrische Summer

Das Schaltplansymbol

Projekt Nr. 7: Einen Piezosummer ausprobieren

Projekt Nr. 8: Ein Thermometer mit Ampelanzeige

Das Ziel

Die Hardware

Der Schaltplan

Der Sketch

Den Sketch weiterverwenden

Ausblick

5

FUNKTIONEN

Projekt Nr. 9: Eine Funktion zur Wiederholung einer Aktion erstellen

Projekt Nr. 10: Eine Funktion mit einstellbarem Blinkvorgang erstellen

Funktionen zur Rückgabe von Werten

Projekt Nr. 11: Ein Thermometer mit Blinkcodeanzeige

Die Hardware

Der Schaltplan

Der Sketch

Daten vom Arduino im seriellen Monitor anzeigen

Der serielle Monitor

Projekt Nr. 12: Die Temperatur im seriellen Monitor anzeigen

Debugging im seriellen Monitor

Entscheidungen mit while-Anweisungen

do-while

Daten vom seriellen Monitor an den Arduino senden

Projekt Nr. 13: Eine Zahl mit 2 multiplizieren

long-Variablen

Projekt Nr. 14: long-Variablen verwenden

Ausblick

6

ZAHLEN, VARIABLEN UND ARITHMETISCHE OPERATIONEN

Zufallszahlen generieren

Zufallszahlen aus dem Umgebungsstrom generieren

Projekt Nr. 15: Einen elektronischen Würfel erstellen

Die Hardware

Der Schaltplan

Der Sketch

Den Sketch ändern

Schnellkurs in Binärzahlen

Bytevariablen

Erweitern der digitalen Ausgänge mit Schieberegistern

Projekt Nr. 16: Eine Binärzahlenanzeige aus LEDs bauen

Die Hardware

Der Anschluss des 74HC595

Der Sketch

Projekt Nr. 17: Ein Binärzahlenquiz konstruieren

Der Algorithmus

Der Sketch

Arrays

Arrays definieren

Auf Werte in Arrays verweisen

In Arrays lesen und schreiben

Siebensegmentanzeigen

Die LEDs steuern

Projekt Nr. 18: Eine einstellige Anzeige konstruieren

Die Hardware

Der Schaltplan

Der Sketch

Zweistellige Zahlen anzeigen

Projekt Nr. 19: Zwei Siebensegmentanzeigen steuern

Die Hardware

Der Schaltplan

Modulo

Projekt Nr. 20: Ein Digitalthermometer konstruieren

Die Hardware

Der Sketch

LED-Matrixanzeigen

Die LED-Matrix im Schaltplan

Die Verbindungen herstellen

Bitarithmetik

Der bitweise AND-Operator

Der bitweise OR-Operator

Der bitweise XOR-Operator

Der bitweise NOT-Operator

Bitverschiebung nach links und rechts

Projekt Nr. 21: Eine LED-Matrix steuern

Projekt Nr. 22: Bilder auf einer LED-Matrix anzeigen

Projekt Nr. 23: Ein Bild auf einer LED-Matrix darstellen

Projekt Nr. 24: Eine LED-Matrix animieren

Der Sketch

Ausblick

7

FLüSSIGKRISTALLANZEIGEN

LCD-Zeichenmodule

Ein LCD-Zeichenmodul in einem Sketch verwenden

Text anzeigen

Variablen und Zahlen anzeigen

Projekt Nr. 25: Eigene Zeichen definieren

LCD-Grafikmodule

Das LCD-Grafikmodul anschließen

Die Flüssigkristallanzeige verwenden

Die Anzeige steuern

Projekt Nr. 26: Textfunktionen in Aktion

Aufwändigere Anzeigeeffekte hervorrufen

Projekt Nr. 27: Eine Temperaturverlaufskurve aufzeichnen

Der Algorithmus

Die Hardware

Das Ergebnis

Den Sketch ändern

Ausblick

8

DEN ARDUINO ERWEITERN

Shields

ProtoShield

Projekt Nr. 28: Einen eigenen Shield mit acht LEDs konstruieren

Die Hardware

Der Schaltplan

Die Struktur der ProtoShield-Platine

Der Entwurf

Die Bauteile festlöten

Den selbst gebauten Shield ändern

Sketche durch Bibliotheken erweitern

Die Bibliotheken für einen Shield importieren

microSD-Speicherkarten

Die microSD-Karte prüfen

Projekt Nr. 29: Daten auf die Speicherkarte schreiben

Projekt Nr. 30: Ein Gerät zur Temperaturaufzeichnung konstruieren

Die Hardware

Der Sketch

Zeitmessung mit millis() und micros()

Projekt Nr. 31: Eine Stoppuhr konstruieren

Die Hardware

Der Sketch

Interrupts

Interrupt-Modi

Interrupts einrichten

Interrupts aktivieren und deaktivieren

Projekt Nr. 32: Interrupts verwenden

Der Sketch

Ausblick

9

NUMERISCHE TASTENFELDER

Numerische Tastenfelder verwenden

Ein Tastenfeld anschließen

Programme für das Tastenfeld schreiben

Den Sketch testen

Entscheidungen mit switch-case

Projekt Nr. 33: Ein Schloss mit Tastenfeld konstruieren

Der Sketch

Funktionsweise

Den Sketch testen

Ausblick

10

BENUTZEREINGABEN ÜBER EINEN TOUCHSCREEN

Touchscreens

Den Touchscreen anschließen

Projekt Nr. 34: Bereiche auf dem Touchscreen ansprechen

Die Hardware

Der Sketch

Den Sketch testen

Kartierung des Touchscreens

Projekt Nr. 35: Einen Ein/Aus-Schalter mit zwei Zonen entwerfen

Der Sketch

Funktionsweise

Den Sketch testen

Projekt Nr. 36: Einen Schalter mit drei Berührungszonen entwerfen

Die Touchscreen-Karte

Der Sketch

Funktionsweise

Ausblick

11

GESTATTEN, FAMILIE ARDUINO!

Projekt Nr. 37: Einen eigenen Steckplatinen-Arduino bauen

Die Hardware

Der Schaltplan

Die Arduino-Pins

Einen Testsketch ausführen

Anschluss an eine handelsübliche Arduino-Platine

Die zahlreichen verschiedenen Arduino-Platinen

Arduino Uno

Freetronics Eleven

Der Freeduino

Der Boarduino

Der Arduino Nano

Der Arduino LilyPad

Der Arduino Mega 2560

Der Freetronics EtherMega

Der Arduino Due

Ausblick

12

MOTOREN UND BEWEGUNG

Kleine Bewegungen mithilfe von Stellmotoren

Stellmotoren auswählen

Einen Stellmotor anschließen

Den Stellmotor in Bewegung setzen

Projekt Nr. 38: Ein Zeigerthermometer bauen

Die Hardware

Der Schaltplan

Der Sketch

E-Motoren

Der Darlington-Transistor TIP120

Projekt Nr. 39: Den Motor steuern

Die Hardware

Der Schaltplan

Der Sketch

Projekt Nr. 40: Einen Roboter mit Raupenantrieb bauen und steuern

Die Hardware

Der Shield

Der Sketch

Kollisionserkennung

Projekt Nr. 41: Kollisionen mithilfe eines Mikroschalters erkennen

Der Schaltplan

Der Sketch

Infrarotsensoren zur Abstandsmessung

Verkabelung

Den IR-Abstandssensor testen

Projekt Nr. 42: Kollisionen mithilfe eines IR-Abstandssensors verhindern

Ultraschallsensoren

Den Ultraschallsensor anschließen

Den Ultraschallsensor verwenden

Den Ultraschallsensor testen

Projekt Nr. 43: Kollisionen mithilfe eines Ultraschall-Abstandssensors verhindern

Der Sketch

Ausblick

13

GPS FÜR DEN ARDUINO

Was ist GPS?

Den GPS-Shield testen

Projekt Nr. 44: Ein einfaches GPS-Empfangsgerät konstruieren

Die Hardware

Der Sketch

Die Position auf dem LCD-Bildschirm anzeigen

Projekt Nr. 45: Eine genaue GPS-gestützte Uhr konstruieren

Die Hardware

Der Sketch

Projekt Nr. 46: Den Bewegungsverlauf eines Objekts aufzeichnen

Die Hardware

Der Sketch

Standorte auf der Landkarte anzeigen

Ausblick

14

DRAHTLOSE DATENüBERTRAGUNG

Preiswerte Module für die drahtlose Datenübertragung

Projekt Nr. 47: Eine drahtlose Fernbedienung konstruieren

Die Hardware für die Senderschaltung

Der Schaltplan für den Sender

Die Hardware für die Empfängerschaltung

Der Schaltplan für den Empfänger

Der Sketch für den Sender

Der Sketch für den Empfänger

XBee-Module für eine drahtlose Übertragung mit größerer Reichweite und höherer Geschwindigkeit

Projekt Nr. 48: Datenübertragung mit einem XBee-Modul

Der Sketch

Den Computer für den Datenempfang einrichten

Projekt Nr. 49: Ein ferngesteuertes Thermometer bauen

Die Hardware

Der Aufbau

Der Sketch

Betrieb

Ausblick

15

INFRAROT-FERNBEDIENUNGEN

Was ist Infrarot?

Vorbereitung für die Infrarotübertragung

Der IR-Empfänger

Die Fernbedienung

Der Testsketch

Den Sketch testen

Projekt Nr. 50: Den Arduino fernsteuern

Die Hardware

Der Sketch

Den Sketch erweitern

Projekt Nr. 51: Ein Raupenfahrzeug fernsteuern

Die Hardware

Der Sketch

Ausblick

16

RFID-TRANSPONDER LESEN

Das Innenleben von RFID-Transpondern

Die Hardware testen

Der Schaltplan

Die Schaltung prüfen

Projekt Nr. 52: Ein einfaches RFID-Steuerungssystem konstruieren

Der Sketch

Funktionsweise

Daten im eingebauten EEPROM des Arduino speichern

Lesen und Schreiben im EEPROM

Projekt Nr. 53: Ein RFID-Steuerungssystem konstruieren, das sich die letzte Aktion merkt

Der Sketch

Funktionsweise

Ausblick

17

DATENBUSSE

Der I2C-Bus

Projekt Nr. 54: Einen externen EEPROM verwenden

Die Hardware

Der Schaltplan

Der Sketch

Das Ergebnis

Projekt Nr. 55: Einen IC zur Porterweiterung verwenden

Die Hardware

Der Schaltplan

Der Sketch

Der SPI-Bus

Die Anschlüsse

Den SPI-Bus nutzen

Daten an ein SPI-Gerät senden

Projekt Nr. 56: Ein Digitalpotenziometer verwenden

Die Hardware

Der Schaltplan

Der Sketch

Ausblick

18

ECHTZEITUHREN

Der Anschluss des RTC-Moduls

Projekt Nr. 57: Datum und Uhrzeit mit einem RTC-Modul einstellen und anzeigen

Die Hardware

Der Sketch

Funktionsweise

Projekt Nr. 58: Eine einfache Digitaluhr bauen

Die Hardware

Der Sketch

Funktionsweise

Projekt Nr. 59: Eine Stechuhr konstruieren

Die Hardware

Der Sketch

Funktionsweise

Ausblick

19

DAS INTERNET

Erforderliches Material

Projekt Nr. 60: Eine Fernüberwachungsstation konstruieren

Die Hardware

Der Sketch

Fehlersuche

Funktionsweise

Projekt Nr. 61: Einen Arduino-Tweeter konstruieren

Die Hardware

Der Sketch

Den Arduino vom Web aus steuern

Projekt Nr. 62: Eine Fernsteuerung für den Arduino einrichten

Die Hardware

Der Sketch

Den Arduino fernsteuern

Ausblick

20

MOBILFUNKKOMMUNIKATION

Die Hardware

Den Power-Shield vorbereiten

Die Hardware einrichten und testen

Die Betriebsfrequenz ändern

Projekt Nr. 63: Ein Arduino-Wählgerät bauen

Die Hardware

Der Schaltplan

Der Sketch

Funktionsweise

Projekt Nr. 64: Textnachrichten mit dem Arduino senden

Der Sketch

Funktionsweise

Projekt Nr. 65: Eine SMS-Fernsteuerung einrichten

Die Hardware

Der Schaltplan

Der Sketch

Funktionsweise

Ausblick

INDEX

Danksagung

An erster Stelle ein großes Dankeschön an das Arduino-Team: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino und David Mellis. Ohne eure Vorstellungskraft, eure Ideen und harte Arbeit wäre all dies nicht möglich.

Vielen Dank auch an meinen Fachgutachter Marc Alexander für seine Beiträge, Fachkenntnisse, Vorschläge, Unterstützung, Ideen und die langen Gespräche – und für seine Zähigkeit, ein so umfangreiches Projekt durchzustehen.

Ich möchte auch den folgenden Organisationen für die Bereitstellung von Bildern und für ihre Ermutigung danken: Adafruit Industries, Agilent Technologies, Gravitech, Freetronics, oomlout, Seeed Studio, Sharp Corporation und SparkFun. An Freetronics geht dabei noch ein zusätzliches Dankeschön für die hervorragenden Hardwareprodukte. Außerdem möchte ich bei all jenen danken, die viel Zeit in die Entwicklung der Arduino-Bibliotheken gesteckt und uns allen damit das Leben erleichtert haben.

Hut ab vor dem Team von Fritzing und ein Dankeschön für das wunderbare Open-Source-Programm zur Konstruktion von Schaltplänen, das ich in diesem Buch benutzt habe.

Außerdem möchte ich (ohne besondere Reihenfolge) den folgenden Personen danken, die mir Ermutigung, Anregung und Unterstützung geboten haben: Iraphne Childs, Limor Fried, Jonathan Oxer, Philip Lindsay, Nicole Kilah, Ken Shirriff, Nathan Kennedy, David Jones und Nathan Seidle.

Abschließend geht mein Dank noch an alle Mitarbeiter von No Starch Press, vor allem an Sondra Silverhawk, die mir dieses Buch vorschlug, an Serena Young für die engagierte Bearbeitung des Textes und an Bill Pollock für seine Unterstützung und Anleitung sowie dafür, dass er mich manchmal davon überzeugen konnte, dass es noch bessere Möglichkeiten gibt, um etwas zu erklären.

1

Einführung

Haben Sie sich beim Anblick eines technischen Geräts – etwa bei einem ferngesteuerten Bootsmodell, einer Liftsteuerung, einem Verkaufsautomaten oder einem elektronischen Spielzeug – jemals gefragt, wie es funktioniert? Haben Sie jemals den Wunsch verspürt, einen eigenen Roboter, einen elektronischen Signalgeber für eine Modelleisenbahn oder ein System zu bauen, um Wetterdaten aufzuzeichnen und zu analysieren?

Die Arduino-Platine (die Sie in Abb. 1–1 sehen) bietet Ihnen Gelegenheit, einige Geheimnisse der Elektronik auf praktische Weise zu erforschen. Das ursprünglich von Massimo Banzi und David Cuartielles erfundene System Arduino stellt eine günstige Möglichkeit dar, um interaktive Projekte wie ferngesteuerte Roboter, GPS-Ortungssysteme und elektronische Spiele zu konstruieren.

Seit der Einführung im Jahr 2005 ist das Arduino-Projekt exponentiell zu einem blühenden Geschäft gewachsen. Unterstützt wird es durch eine Community von Personen, die den gemeinsamen Wunsch haben, Neues zu erschaffen. Einzelpersonen und Gruppen, von Interessengruppen über Vereine und lokale Hackergemeinschaften bis zu pädagogischen Einrichtungen, zeigen Interesse am Experimentieren mit Arduino.

Abb. 1–1 Die Arduino-Platine

Um sich eine Vorstellung von der Vielfalt der Arduino-Projekte zu machen, die bisher realisiert wurden, können Sie einfach im Internet danach suchen. Dabei werden Sie verschiedene Gruppen finden, die Einführungskurse und gemeinsame Arbeiten mit gleichgesinnten, kreativen Menschen anbieten.

Unbegrenzte Möglichkeiten

Schon beim Durchblättern dieses Buches werden Sie feststellen, dass Arduino vielfältige Möglichkeiten bietet – von ganz einfachen Dingen, wie beispielsweise eine Lampe blinken zu lassen, bis zu komplizierten, etwa einer Interaktion mit einem Mobiltelefon.

Sehen Sie sich beispielsweise Philip Lindsays Gerät aus Abbildung 1–2 an. Es kann Textnachrichten von Mobiltelefonen empfangen und sie auf Leuchtbändern darstellen, wie man es in vielen Geschäften sieht. Dieses Gerät enthält eine Arduino-Platine und ein Handy-Shield, um Textnachrichten von einem Mobiltelefon empfangen zu können (ähnlich wie in Projekt 65). Die Nachricht wird dann an ein zwei große, preisgünstige Punktmatrix-Anzeigen geleitet, um sie gut sichtbar darzustellen.

Abb. 1–2 SMS-Lauftext

Große Anzeigetafeln, die mit einem Arduino verbunden werden können, sind käuflich zu erwerben, weshalb Sie sie nicht selbst basteln müssen. (Mehr dazu erfahren Sie auf http://www.labradoc.com/i/follower/p/project-sms-text-scroller.)

Wie wäre es mit einer einzigartigen Form von Heiratsantrag? Tyler Cooper wollte seiner Freundin auf originelle Weise einen Antrag machen, weshalb er ein Gerät konstruierte, das er einen »umgekehrten Geocache« nennt. Es handelt sich dabei um ein kleines Kästchen, das einen Verlobungsring enthält (siehe Abb. 1–3). Wird es in eine bestimmte Gegend getragen (was der interne GPS-Empfänger feststellt), dann entriegelt es sich, um die romantische Nachricht und den Ring freizugeben. Dieses Gerät können Sie mithilfe einer Arduino-Platine, eines GPS-Empfängers und eines LCD-Moduls (wie es in Kapitel 13 verwendet wird) sowie einem kleinen Servomotor leicht nachbauen. Letzterer dient als Riegel, um das Kästchen verschlossen zu halten, bis es sich am richtigen Ort befindet. Der erforderliche Code ist ziemlich einfach und in wenigen Stunden zu schreiben. Am zeitaufwändigsten ist die Auswahl des passenden Kästchens für das System. (Weitere Informationen erhalten Sie unter http://learn.adafruit.com/reverse-geocache-engagement-box/.)

Abb. 1–3 Heiratsantrag via Arduino

Ein weiteres Beispiel: Kurt Schulz wollte den Ladezustand der Batterie in seinem Moped überwachen. Nachdem er aber festgestellt hatte, wie einfach es ist, mit dem Arduino zu arbeiten, entwickelte sich dieses Projekt zu etwas, was er letztlich »Scooterputer« nannte – ein umfassendes Moped-Überwachungssystem. Der Scooterputer misst nicht nur die Batteriespannung, sondern kann auch Geschwindigkeit, zurückgelegte Strecke, Neigungswinkel, Temperatur, Uhrzeit und Datum, GPS-Position usw. anzeigen. Außerdem enthält er einen Mobiltelefon-Shield, der ferngesteuert werden kann. Damit ist es möglich, das Fahrzeug zu verfolgen, wenn es gestohlen werden sollte, und den Motor ferngesteuert abzuschalten. Das gesamte System wird über einen Touchscreen gesteuert (siehe Abb. 1–4). Jede der Funktionen bildet dabei einen einfachen Baustein, und ein ähnliches Gesamtsystem könnte jedermann innerhalb weniger Wochenenden zusammenstellen. (Mehr darüber auf http://www.janspace.com/b2evolution/arduino.php/2010/06/26/scooterputer/.)

Abb. 1–4 Die Anzeige des Scooterputers (mit freundlicher Genehmigung von Kurt Schulz)

Als Nächstes haben wir John Sarik, der sich gern mit den beliebten Sudoku-Rätseln beschäftigt ... und mit Nixie-Röhren zur Anzeige von Ziffern herumspielt. Diese beiden Antriebsfedern regten ihn dazu an, einen großen 81-stelligen Sudoku-Computer zu bauen. Der Benutzer kann das gesamte 9 x 9-Feld bespielen, wobei der Arduino die Zahlenanzeige steuert und die Einträge auf Gültigkeit prüft. Dies ist zwar schon ein Projekt für Fortgeschrittene, aber durchaus realisierbar, und auch die Elektronik ist nicht sehr kompliziert. Das Gerät ist ziemlich groß und sieht an der Wand beeindruckend aus, wie Abbildung 1–5 zeigt. (Mehr darüber auf http://trashbearlabs.wordpress.com/2010/07/09/nixie-sudoku/.)

Abb. 1–5 Ein Sudoku aus Nixie-Röhren

Das Team von Oomlout hat mit dem Arduino sogar eine Schreibmaschine gebaut, den TwypeWriter. Dabei ist ein Arduino über einen Ethernet-Shield mit dem Internet verbunden und durchsucht Twitter nach bestimmten Schlüsselwörtern. Wird ein Begriff gefunden, so wird der entsprechende Tweet an eine elektrische Schreibmaschine gesendet, um ihn auszudrucken. Der Arduino ist mit den Tastaturschaltkreisen der Schreibmaschine verbunden, sodass er einen Menschen simulieren kann, der die Tasten betätigt. Das Gerät sehen Sie in Abbildung 1–6. (Mehr darüber auf http://oomlout.co.uk/blog/twitter-monitoring-typewritter-twypwriter/.)

Abb. 1–6 Der TwypeWriter

Dies waren nur einige willkürlich herausgegriffene Beispiele dessen, was mit einem Arduino möglich ist. Eigene Projekte lassen sich ohne große Schwierigkeiten bauen, und nachdem Sie dieses Buch durchgearbeitet haben, ist die Umsetzung für Sie nicht mehr außer Reichweite.

Die Masse macht’s

Die Arduino-Plattform gewinnt von Tag zu Tag mehr Freunde. Wenn Sie besser in Gesellschaft, also in Kursen lernen, dann suchen Sie im Web nach Cult of Arduino, um zu erfahren, was andere Personen mit dem Arduino anstellen, und um Arduino-Gruppen kennenzulernen. Die Mitglieder solcher Gruppen werden Sie in die Welt des Arduino als einer Kunstform einführen. Viele arbeiten auch gleichzeitig daran, kleine Arduino-kompatible Platinen zu erfinden. Das Zusammensein mit diesen Gruppen kann viel Spaß machen. Sie lernen dabei interessante Leute kennen und können Ihre Arduino-Kenntnisse weitervermitteln.

Teile und Zubehör

Wie andere elektronische Geräte ist auch der Arduino bei vielen Einzelhändlern erhältlich, die zudem viele verschiedene andere Produkte und Zubehörteile anbieten. Achten Sie aber darauf, dass Sie einen Original-Arduino kaufen und keine Imitation, da Sie sonst ein fehlerhaftes und wenig leistungsfähiges Produkt erwerben können. Eine minderwertige Platine kann dazu führen, dass Ihr Projekt unter dem Strich mehr kostet. Eine Liste von Arduino-Anbietern finden Sie auf http://arduino.cc./en/Main/Buy/.

In der folgenden Liste finden Sie eine aktuelle Auswahl der Händler, die ich für den Kauf von Bauteilen und Zubehör rund um den Arduino empfehle (in alphabetischer Reihenfolge):1

• Adafruit Industries (http://www.adafruit.com/)

• DigiKey (http://www.digikey.com/)

• Jameco Electronics (http://www.jameco.com/)

• Little Bird Electronics (http://www.littlebirdelectronics.com/)

• Newark (http://www.newark.com/)

• nicegear (http://www.nicegear.co.nz/)

• Oomlout (http://www.oomlout.co.uk/)

• RadioShack (http://www.radioshack.com/)

• RS Components (http://www.rs-components.com/)

• SparkFun Electronics (http://www.sparkfun.com/)

Wie Sie in diesem Buch noch sehen werden, verwende ich verschiedene Arduino-kompatible Produkte von Freetronics (http://www.freetronics.com/). Alle erforderlichen Teile sind jedoch handelsüblich und lassen sich von vielen verschiedenen Einzelhändlern beziehen.

Aber gehen Sie noch nicht los, um einzukaufen! Nehmen Sie sich zunächst die Zeit, die ersten Kapitel zu lesen, um einen Eindruck davon zu bekommen, was sie brauchen, damit Sie kein Geld auf unnötige Dinge verschwenden.

Erforderliche Software

Ihren Arduino können Sie von praktisch jedem handelsüblichen Computer aus programmieren. An Software benötigen Sie dazu eine integrierte Entwicklungsumgebu 0ng (Integrated Development Environment, IDE). Sie kann auf folgenden Betriebssystemen ausgeführt werden:

• Mac OS X und höher

• Windows XP 32 oder 64 Bit oder höher

• Linux 32 oder 64 Bit (Ubuntu o. Ä.)

Um die richtige IDE herunterzuladen, blättern Sie zu der Überschrift für das von Ihnen verwendete Betriebssystem vor und folgen den Anweisungen. Sie brauchen auch ein passendes USB-Kabel für den Arduino. Wenn Sie noch nicht über einen Arduino verfügen, können Sie die IDE trotzdem schon herunterladen und ein bisschen damit herumspielen. Die Versionsnummer kann sich rasch ändern, weshalb die in diesem Buch verwendete Version möglicherweise nicht mehr die aktuellste ist. Die Anleitungen aber sollten nach wie vor gelten.

HINWEIS

Leider gab es bei Drucklegung dieses Buches Probleme mit der Installation unter Windows 8. Wenn Sie dieses Betriebssystem verwenden, schauen Sie im Arduino-Forum unter http://arduino.cc/forum/index.php/topic,94651.15.html nach.

Mac OS X

In diesem Abschnitt finden Sie Anleitungen zum Herunterladen und Einrichten der Arduino-IDE auf Mac OS X.

Die IDE installieren

Um die IDE auf dem Mac zu installieren, gehen Sie wie folgt vor:

1. Öffnen Sie in einem Webbrowser wie Safari die Downloadseite für die Software unter http://arduino.cc/en/Main/Software/ (siehe Abb. 1–7).

Abb. 1–7 Die Downloadseite für die IDE in Safari

2. Klicken Sie auf den Link Mac OS X. Die Datei wird heruntergeladen und erscheint dann im Fenster Downloads, das Sie in Abbildung 1–8 sehen.

Abb. 1–8 Die Datei ist komplett heruntergeladen.

3. Wenn der Download abgeschlossen ist, doppelklicken Sie auf die Datei, um die Installation auszulösen. Angezeigt wird das Fenster aus Abbildung 1–9.

HINWEIS

Das Paket, das sich hinter dem dritten Symbol verbirgt, müssen Sie nur dann installieren, wenn Sie einen Arduino haben, der älter als das UnoModell ist.

Abb. 1–9 Der neue Ordner mit der Arduino-IDE

4. Ziehen Sie das Arduino-Symbol über den Ordner Programme und lassen Sie die Maustaste los. Während die Datei kopiert wird, ist ein Statusfenster zu sehen.

5. Schließen Sie den Arduino über das USB-Kabel an den Mac an. Nach kurzer Zeit erscheint das Dialogfeld aus Abbildung 1–10.

Abb. 1–10 Eine neue Arduino-Platine wurde erkannt. In dem Dialogfeld kann anstelle von »Eleven« auch »Uno« angezeigt werden.

6. Klicken Sie auf Netzwerkeinstellungen und dann im Feld Netzwerk auf Übernehmen. Die Statusmeldung »nicht konfiguriert« können Sie ignorieren.

Die IDE einrichten

Nachdem Sie die IDE heruntergeladen haben, müssen Sie sie anhand der folgenden Anleitung öffnen und konfigurieren:

1. Öffnen Sie im Finder den Ordner Programme (siehe Abb. 1–11) und doppelklicken Sie auf das Arduino-Symbol.

Abb. 1–11 Der Ordner Programme

2. Möglicherweise wird eine Warnmeldung über das Öffnen von Programmen aus dem Web angezeigt. Wenn ja, klicken Sie einfach auf Öffnen, um fortzufahren. Anschließend sehen Sie wie in Abbildung 1–12 die IDE.

Abb. 1–12 Die IDE in Mac OS X

3. Sie sind schon so gut wie fertig. Bevor die Arduino-IDE zur Verfügung steht, müssen Sie nur noch zwei Kleinigkeiten ändern. Als Erstes müssen Sie ihr mitteilen, über welche Art von Anschluss der Arduino mit dem Mac verbunden ist. Wählen Sie Tools > Serial Port und dann die Option /dev/tty.usbmodem1d11 (siehe Abb. 1–13).

Abb. 1–13 Den USB-Port auswählen

4. Der letzte Schritt besteht darin, der IDE mitzuteilen, was für eine Arduino-Platine Sie angeschlossen haben. Das ist von entscheidender Bedeutung, da es Unterschiede zwischen den Platinen gibt. Wenn Sie beispielsweise das gebräuchlichste Modell verwenden, den Uno, dann wählen Sie wie in Abbildung 1–14 Tools > Board > Arduino Uno. Die Unterschiede zwischen den Platinenmodellen werden in Kapitel 11 ausführlicher erläutert.

Abb. 1–14 Das Platinenmodell auswählen

Damit sind Hardware und Software jetzt betriebsbereit. Blättern Sie zum Abschnitt »Sicherheit« auf S. 14 vor.

Windows XP und neuer

In diesem Abschnitt erfahren sie, wie Sie die Arduino-IDE unter Windows herunterladen, wie Sie die Treiber installieren und die IDE einrichten.

Die IDE installieren

Um die IDE für Windows zu installieren, gehen Sie wie folgt vor:

1. Öffnen Sie in einem Webbrowser wie Firefox die Downloadseite für die Software unter http://arduino.cc/en/Main/Software/ (siehe Abb. 1–15).

Abb. 1–15 Die Downloadseite für die IDE in Firefox unter Windows

2. Klicken Sie auf den Link Windows. Dadurch erscheint das Dialogfeld aus Abbildung 1–16. Klicken Sie auf Öffnen mit Windows Explorer und dann auf OK. Die Datei wird heruntergeladen, wie Sie in Abbildung 1–17 sehen.

Abb. 1–16 Die Datei herunterladen

Abb. 1–17 Firefox zeigt den Fortschritt des Downloads an.

3. Wenn der Download abgeschlossen ist, doppelklicken Sie auf die Datei. Angezeigt wird das Fenster aus Abbildung 1–18.

Abb. 1–18 Das IDE-Paket

4. Kopieren Sie den Ordner mit dem Namen arduino-0022 (oder einem ähnlichen Namen) an den Speicherort, an dem Sie Programme ablegen. Öffnen Sie anschließend den Zielordner. Dort sehen Sie jetzt das Programmsymbol Arduino wie in Abbildung 1–19. Um in Zukunft leichter darauf zugreifen zu können, sollten Sie eine Verknüpfung auf dem Desktop platzieren.

Abb. 1–19 Das IDE-Paket mit dem Symbol für die Anwendung Arduino

Die Treiber installieren

Als Nächstes müssen Sie die Treiber für die USB-Schnittstelle des Arduino installieren.

1. Schließen Sie den Arduino über das USB-Kabel an den PC an. Nach kurzer Zeit wird die Fehlermeldung »Die Gerätetreibersoftware wurde nicht installiert« (oder ähnlich) angezeigt. Schließen Sie einfach das Fenster oder die Sprechblase mit der Meldung.

2. Öffnen Sie die Windows-Systemsteuerung und darin den Geräte-Manager. Scrollen Sie nach unten, bis Sie den Arduino finden (siehe Abb. 1–20).

Abb. 1–20 Der Geräte-Manager

3. Rechtsklicken Sie unter Andere Geräte auf Arduino Uno und wählen Treiber aktualisieren. Aktivieren Sie im nächsten Dialogfeld die Option Auf dem Computer nach Treibersoftware suchen. Daraufhin wird das Dialogfeld Ordner suchen geöffnet. Klicken Sie auf Durchsuchen und wechseln Sie dann zu dem Ordner driver in dem Ordner der neu installierten Arduino-Software (siehe Abb. 1–21). Klicken Sie auf OK.

Abb. 1–21 Den Ordner drivers angeben

4. Klicken Sie im nächsten Dialogfeld auf Weiter. Möglicherweise zeigt Windows eine Meldung darüber an, dass der Herausgeber der Treibersoftware nicht überprüft werden kann. Klicken Sie auf die Option, die Software trotzdem zu installieren. Nach kurzer Zeit meldet Windows, dass der Treiber installiert ist, und gibt die Nummer des COM-Anschlusses an, mit dem der Arduino verbunden ist (siehe Abb. 1–22).

Abb. 1–22 Die Treiber wurden erfolgreich aktualisiert.

Die IDE einrichten

Sie sind fast fertig. Es sind nur noch zwei Kleinigkeiten erforderlich, um die IDE einzurichten.

1. Öffnen Sie die Arduino-IDE und teilen Sie ihr mit, über welche Art von Anschluss der Arduino mit dem PC verbunden ist. Wählen Sie Tools > Serial Port und dann die Nummer des COM-Anschlusses, die im Fenster Treibersoftware aktualisieren angezeigt wurde.

2. Der letzte Schritt besteht darin, der IDE mitzuteilen, was für eine Arduino-Platine Sie angeschlossen haben. Das ist von entscheidender Bedeutung, da es Unterschiede zwischen den Platinen gibt. Wenn Sie beispielsweise einen Uno haben, dann wählen Sie Tools > Board > Arduino Uno. Die Unterschiede zwischen den Platinenmodellen werden in Kapitel 11 ausführlicher erläutert.

Damit ist die Arduino-IDE komplett eingerichtet. Blättern Sie zum Abschnitt »Sicherheit« auf S. 14 vor.

Ubuntu Linux 9.04 und höher

In diesem Abschnitt erfahren Sie, wie Sie die Arduino-IDE unter Ubuntu Linux herunterladen und einrichten.

Die IDE installieren

Um die IDE zu installieren, gehen Sie wie folgt vor:

1. Öffnen Sie in einem Webbrowser wie Firefox die Downloadseite für die Software unter http://arduino.cc/en/Main/Software/ (siehe Abb. 1–23).

Abb. 1–23 Die Downloadseite für die IDE in Firefox unter Ubuntu

2. Klicken Sie je nachdem, was für ein System Sie haben, auf den Link 32-bit oder 64-bit für Linux. Wenn das Dialogfeld aus Abbildung 1–24 erscheint, wählen Sie Öffnen mit Archiv-Manager und klicken dann auf OK.

Abb. 1–24 Die Datei herunterladen

3. Nachdem die Datei heruntergeladen ist, wird sie im Archiv-Manager angezeigt (siehe Abb. 1–25). Kopieren Sie den Ordner mit dem Namen arduino-0022 (oder einem ähnlichen Namen) in Ihren gewohnten Programm- oder Benutzerordner.

Abb. 1–25 Das IDE-Paket

Die IDE einrichten

Als Nächstes müssen Sie die IDE einrichten.

1. Schließen Sie den Arduino über das USB-Kabel an den PC an. Öffnen Sie den zuvor kopierten Ordner arduino-0022 und doppelklicken Sie darin auf die Datei arduino, die in Abbildung 1–26 markiert ist.

Abb. 1–26 Der Ordner der Arduino-IDE mit der Datei arduino

2. Wenn das Dialogfeld aus Abbildung 1–27 erscheint, klicken Sie auf Ausführen. Dadurch wird die IDE wie in Abbildung 1–28 angezeigt.

Abb. 1–27 Berechtigungen zum Ausführen der IDE gewähren

Abb. 1–28 Die IDE unter Linux

3. Teilen Sie der IDE mit, über welche Art von Anschluss der Arduino mit dem Computer verbunden ist. Wählen Sie Tools > Serial Port und dann /dev/ttyACMx, wobei x eine einzelne Ziffer ist. (Es sollte nur einen Anschluss mit einem solchen Namen geben.)

4. Geben Sie an, was für einen Arduino Sie angeschlossen haben. Das ist von entscheidender Bedeutung, da es Unterschiede zwischen den Platinen gibt. Wenn Sie beispielsweise einen Uno haben, dann wählen Sie Tools > Board > Arduino Uno. Die Unterschiede zwischen den Platinenmodellen werden in Kapitel 11 ausführlicher erläutert.

Jetzt sind Hardware und Software betriebsbereit.

Sicherheit

Wie bei jedem anderen Hobby oder Handwerk sind Sie für Ihre eigene Sicherheit und die Ihrer Umgebung verantwortlich. Im weiteren Verlauf dieses Buches beschreibe ich Arbeiten mit einfachen Werkzeugen, batteriebetriebenen elektrischen Geräten, scharfen Messern und manchmal auch Lötkolben. Basteln Sie bei der Arbeit an Ihren Projekten niemals an der Hausstromversorgung herum, sondern überlassen Sie so etwas einem ausgebildeten Elektriker. Denken Sie daran, dass Kontakt mit dem Netzstrom tödlich sein kann.

Ausblick

Sie haben einen Weg vor sich, der sehr interessant ist und viel Spaß bereiten kann. Dabei werden Sie Dinge bauen, die Sie niemals für möglich gehalten haben. In diesem Buch finden Sie 65 Arduino-Projekte, von sehr einfachen bis zu ziemlich komplizierten. Alle sind darauf ausgelegt, Ihnen etwas beizubringen und etwas Nützliches zu konstruieren. Fangen wir also an!

2

Ein genauerer Blick auf den Arduino und die IDE

In diesem Kapitel sehen wir uns die Arduino-Platine sowie die IDE genauer an. Letztere dient dazu, sogenannte Sketche (der Arduino-Begriff für ein Programm) zu erstellen und auf den Arduino hochzuladen. Sie lernen den grundlegenden Aufbau von Sketchen und einige einfache Funktionen kennen, die Sie darin verwenden können. Außerdem werden Sie einen ersten Sketch schreiben und hochladen.

Der Arduino

Was genau ist ein Arduino? Laut der Arduino-Website (http://www.arduino.cc/) handelt es sich dabei um ...

[...] eine Open-Source-Plattform zur Erstellung von elektronischen Prototypen auf der Grundlage einer flexiblen, leicht zu verwendenden Hardware und Software. Sie ist für Künstler, Konstrukteure, Hobbybastler und alle anderen Personen gedacht, die ein Interesse daran haben, interaktive Objekte oder Umgebungen zu gestalten.

Einfach ausgedrückt, ist der Arduino ein winziges Computersystem, das Sie mit Anweisungen programmieren können, sodass es auf verschiedene Arten von Eingaben reagiert und verschiedene Arten von Ausgaben hervorruft. Das aktuelle Arduino-Modell, der Uno, ist kleiner als eine Handfläche, wie Sie in Abbildung 2–1 sehen.

Abb. 2–1 Der Arduino Uno ist ziemlich klein.

Für Uneingeweihte mag der Arduino nicht sehr beeindruckend aussehen, allerdings können Sie damit Geräte bauen, die mit der Umgebung in Wechselwirkung treten. Sie können eine fast unbegrenzte Palette von Eingabeund Ausgabegeräten wie Sensoren, Indikatoren, Anzeigen, Motoren usw. verwenden und genau die Art von Wechselwirkung programmieren, die Sie für ein funktionierendes Gerät benötigen. Beispielsweise haben Künstler Installationen mit Mustern aus Blinklichtern geschaffen, die auf die Bewegungen von Passanten reagieren. Highschool-Schüler haben autonome Roboter gebaut, die offenes Feuer erkennen und löschen können. Geografen haben Systeme konstruiert, die Temperatur und Feuchtigkeit überwachen und die Messwerte als Textnachricht ans Büro schicken. Wenn Sie im Internet suchen, werden Sie fast endlos viele weitere Beispiele finden.

Als Erstes wollen wir uns die Hardware des Arduino Uno (also den »physischen Teil«) genauer ansehen. Machen Sie sich keine Sorgen, wenn Sie manche Einzelheiten noch nicht genau verstehen, denn wir werden uns in späteren Kapiteln ausführlicher damit beschäftigen.

Beginnen wir also mit einem kurzen Rundgang um den Uno. An der linken Seite der Platine fallen gleich die beiden Anschlüsse aus Abbildung 2–2 ins Auge.

Abb. 2–2 Der USB- und der Stromanschluss

Links sehen Sie den USB-Anschluss (Universal Serial Bus), über den Sie die Platine mit Ihrem Computer verbinden können. Das dient drei verschiedenen Zwecken: Um die Platine mit Strom zu versorgen, um Ihre Anweisungen auf den Arduino hochzuladen und um Daten zum Computer zu senden und von ihm zu lesen. Rechts liegt der Stromanschluss. Darüber können Sie den Arduino über einen Standardadapter mit der Steckdose verbinden.

Unten rechts finden Sie das Herz der Platine: den Mikrocontroller aus Abbildung 2–3.

Abb. 2–3 Der Mikrocontroller

Dieser Mikrocontroller ist nicht nur das Herz, sondern auch das Gehirn des Arduino. Es handelt sich um einen winzigen Computer mit einem Prozessor zum Ausführen von Anweisungen, verschiedenen Arten von Arbeitsspeichern, um die Anweisungen von Sketchen festzuhalten, und verschiedenen Möglichkeiten zum Senden und Empfangen von Daten. Knapp unterhalb des Mikrocontrollers finden Sie zwei Reihen kleiner Anschlussbuchsen (siehe Abb. 2–4).

Abb. 2–4 Strom-und Analoganschlüsse

Die erste Reihe ist ein Stromanschluss und bietet auch die Möglichkeit zur Verbindung mit einem externen Reset-Schalter. Die zweite umfasst sechs analoge Eingänge, die zur Messung von elektrischen Signalen mit unterschiedlicher Spannung dienen. Außerdem können die Kontakte A4 und A5 verwendet werden, um Daten an andere Geräte zu senden und von ihnen zu empfangen.

An der oberen Kante der Platine befinden sich zwei weitere Anschlussreihen, die Sie in Abbildung 2–5 sehen.

Abb. 2–5 Die Kontakte für den digitalen Eingang und Ausgang

Die von 0 bis 13 durchnummerierten Kontakte (Pins) sind digitale Ein-/Ausgänge (E/A). Darüber können Sie erkennen, ob ein elektrisches Signal anliegt, oder ein solches Signal auf Befehl erzeugen. Die Pins 0 und 1 bilden auch den seriellen Port, der dazu dient, Signale an andere Geräte zu senden oder von ihnen zu empfangen, beispielsweise an einen/von einem Computer über USB. Die mit einer Tilde (~) beschrifteten Kontakte sind auch in der Lage, ein variables elektrisches Signal abzugeben, was für Beleuchtungseffekte und die Steuerung von Elektromotoren praktisch ist.

Des Weiteren gibt es die sehr nützlichen Leuchtdioden (Light Emitting Diodes, LEDs). Diese winzigen Geräte leuchten auf, wenn Strom durch sie hindurchfließt. Der Arduino verfügt über vier LEDs: Die eine mit der Bezeichnung ON liegt ganz rechts und gibt an, ob die Platine Strom hat, die drei anderen sind zu einer Gruppe zusammengefasst (siehe Abb. 2–6).

Abb. 2–6 Die LEDs auf der Platine

Die LEDs TX und RX leuchten, wenn Daten über den seriellen Port oder den USB-Anschluss zwischen dem Arduino und den angeschlossenen Geräten übertragen werden. Die LED L ist für Ihre eigenen Zwecke vorgesehen. (Sie ist mit dem digitalen E/A-Kontakt 13 verbunden.) Das kleine, schwarze, viereckige Bauteil links neben den LEDs ist ein winziger Mikrocontroller, der die USB-Schnittstelle steuert, über die der Arduino Daten an einen Computer senden und von ihm empfangen kann. Darum müssen Sie sich normalerweise aber nicht kümmern.

Schließlich gibt es noch den Reset-Schalter aus Abbildung 2–7.

Abb. 2–7 Der Reset-Schalter

Wie bei einem normalen Computer kann auch auf dem Arduino manchmal etwas schiefgehen. Wenn alle anderen Maßnahmen versagen, haben Sie noch die Möglichkeit, das System zurückzusetzen und den Arduino neu zu starten. Dazu dient der einfache Reset-Schalter auf der Platine (siehe Abb. 2–7).

Einer der großen Vorteile des Arduino-Systems ist die leichte Erweiterbarkeit. Es ist ganz einfach möglich, weitere Hardwarefunktionen hinzuzufügen. Auf die beiden Anschlussreihen an den Kanten des Arduino können Sie einen Shield aufstecken, eine weitere Platine mit Kontaktstiften, die in die Buchsen der Anschlüsse am Arduino passen. Der Shield aus Abbildung 2–8 beispielsweise enthält eine Ethernet-Schnittstelle, mit deren Hilfe der Arduino mit Netzwerken und dem Internet kommunizieren kann. Außerdem enthält er viel Platz für eigene Schaltungen.

Abb. 2–8 Arduino-Shield mit Ethernet-Schnittstelle

Wie Sie sehen, verfügt auch der Ethernet-Shield über die Anschlussreihen, sodass Sie weitere Shields darauf stapeln können. In Abbildung 2–9 wurde beispielsweise ein Shield mit einer großen numerischen Anzeige, einem Temperatursensor, einem zusätzlichen Datenspeicher und einer Riesen-LED aufgesteckt.

Abb. 2–9 Shield mit numerischer Anzeige und Temperatursensor

Sie müssen beachten, welche Shields welche Ein- und Ausgänge nutzen, damit es nicht zu Konflikten kommt. Außerdem ist es möglich, ganz leere Shields zu kaufen, auf denen Sie Ihre eigenen Schaltungen aufbauen. Mehr darüber erfahren Sie in Kapitel 8.

Ergänzt wird die Arduino-Hardware von der Software, einer Zusammenstellung von Anweisungen, die der Hardware sagen, was und wie sie etwas tun soll. Dabei werden zwei Arten von Software verwendet: erstens die integrierte Entwicklungsumgebung (IDE), um die es in diesem Kapitel geht, und zweitens die Arduino-Sketche, die Sie selbst schreiben.

Die IDE

Wie Abbildung 2–10 zeigt, sieht die Arduino-IDE wie ein einfaches Textverarbeitungsprogramm aus. Sie besteht aus drei Hauptbereichen: dem Befehls-, dem Text- und dem Meldungsbereich.

Abb. 2–10 Die Arduino-IDE

Der Befehlsbereich

Der Befehlsbereich, den Sie oben in Abbildung 2–10 sehen, enthält die Titelleiste, das Menü und die Symbole. Die Titelleiste zeigt den Dateinamen des jeweiligen Sketches (sketch_mar22a) sowie die Version der IDE an (Arduino 1.0). Darunter finden Sie eine Reihe von Menüelementen (File, Edit, Sketch, Tools und Help) und Symbole, die im Folgenden beschrieben werden.

Das Menü

Wie bei Textverarbeitungsprogrammen und Editoren können Sie auf die einzelnen Menüelemente klicken, um sich die verfügbaren Optionen anzusehen.

File Enthält die Optionen zum Speichern, Laden und Drucken von Sketchen. Außerdem finden Sie hier eine umfassende Sammlung von Beispielsketchen, die Sie öffnen können, und das Untermenü Preferences mit Voreinstellungen.

Edit Enthält die üblichen Befehle zum Kopieren, Einfügen und Suchen, die Sie auch in jeder Textverarbeitung finden.

Sketch Enthält Funktionen zum Überprüfen der Sketche vor dem Hochladen auf die Platine sowie Optionen für Sketchordner und den Import.

Tools Enthält verschiedene Funktionen sowie Befehle zur Auswahl des Platinentyps und des USB-Anschlusses.

Help Enthält Links zu verschiedenen Themen und nennt die Version der IDE.

Die Symbole

Unter der Menüleiste finden Sie sechs Symbole. Wenn Sie mit dem Mauszeiger darüberfahren, werden ihre Namen angezeigt. Von links nach rechts haben wir folgende Symbole:

Verify Klicken Sie hierauf, um zu prüfen, ob der Arduino-Sketch gültig ist oder irgendwelche Programmierfehler enthält.

Upload Hiermit wird der Sketch überprüft und auf die Arduino-Platine hochgeladen.

New Öffnet einen neuen, leeren Sketch in einem neuen Fenster.

Open Öffnet einen gespeicherten Sketch.

Save Speichert den geöffneten Sketch. Hat der Sketch noch keinen Namen, werden Sie dazu aufgefordert, einen anzugeben.

Serial Monitor Öffnet ein neues Fenster zum Übertragen von Daten zwischen Arduino und IDE.

Der Textbereich

Den Textbereich sehen Sie in der Mitte von Abbildung 2–10. Hier schreiben Sie Ihre Sketche. Der Name des aktuellen Sketches wird auf dem Reiter oben links im Textbereich angegeben. (Der Standardname besteht aus dem aktuellen Datum.) Den Inhalt des Sketches geben Sie hier wie in einer Textverarbeitung ein.

Der Meldungsbereich

Den Meldungsbereich sehen Sie unten in Abbildung 2–10. Meldungen der IDE werden auf der schwarzen Fläche angezeigt. Dabei kann es sich um Mitteilungen über die Überprüfung von Sketchen, über Statusmeldungen usw. handeln.

Unten rechts im Meldungsbereich werden der Platinentyp Ihres Arduino sowie der verwendete USB-Anschluss angezeigt – hier Arduino Duemilanove w/ATmega328 on COM6.

Ein erster Sketch in der IDE

Ein Arduino-Sketch ist ein Satz von Anweisungen, die Sie zusammenstellen, um eine bestimmte Aufgabe zu erledigen; mit anderen Worten: ein Programm. In diesem Abschnitt erstellen Sie einen einfachen Sketch, der dafür sorgt, dass eine LED des Arduino (siehe Abb. 2–11) wiederholt blinkt, indem er sie in Abständen von einer Sekunde ein- und ausschaltet. Außerdem laden Sie den Sketch auf die Platine hoch.

Abb. 2–11 Die mit L gekennzeichnete LED auf der Arduino-Platine

HINWEIS

Die einzelnen Befehle in dem hier vorgestellten Beispielsketch müssen Sie noch nicht genau verstehen. Wie wollen Ihnen zunächst nur zeigen, wie einfach es ist, den Arduino etwas tun zu lassen, um Ihr Interesse für die komplizierteren Dinge zu wecken.

Als Erstes schließen Sie den Arduino über das USB-Kabel an den Computer an. Öffnen Sie die IDE, wählen Sie Tools > Serial Port und dann den richtigen USB-Anschluss. Dadurch wird für eine korrekte Verbindung mit dem Arduino gesorgt.

Kommentare

Als Erstes fügen Sie einen Kommentar ein, in dem Sie festhalten, wozu der Sketch dient. Kommentare sind Hinweise von beliebiger Länge, die sich an den Leser des Sketches richten. Damit können Sie Anmerkungen für sich selbst und für andere hinterlegen, Anleitung geben und auf verschiedene Einzelheiten hinweisen. Wenn Sie Ihren Arduino programmieren (also Sketche schreiben), sollten Sie stets Kommentare einfügen, um deutlich zu machen, was Sie tun. Das kann sich als sehr hilfreich erweisen, wenn Sie sich später erneut mit dem Sketch befassen.

Um einen einzeiligen Kommentar hinzuzufügen, geben Sie zwei Schrägstriche ein und schreiben den Kommentar dann dahinter:

// Blink-LED-Sketch von Mary Smtih, erstellt am 09.09.12

Die beiden Schrägstriche weisen die IDE an, den darauf folgenden Text beim Überprüfen des Sketches zu ignorieren. (Wie bereits erwähnt, untersucht die IDE bei diesem Vorgang, ob alles korrekt und fehlerfrei geschrieben ist.)

Soll ein Kommentar mehrere Zeilen umfassen, müssen Sie ihn in der ersten dieser Zeilen mit /* einleiten und in der letzten mit */ abschließen:

/*
Arduino-Blink-LED-Sketch
von Mary Smith, erstellt am 09.09.12
*/

Wie die beiden Schrägstriche, die einen einzeiligen Kommentar einleiten, weisen auch die Zeichenfolgen /* und */ die IDE an, den Text dazwischen zu ignorieren.

Geben Sie mit einer dieser beiden Methoden in einem Kommentar den Zweck des Sketches ein und speichern Sie das Programm über File > Save as. Geben Sie einen kurzen Namen für den Sketch ein (z. B. blinky) und klicken Sie auf OK.

Die Standard-Dateinamenerweiterung für Arduino-Sketche ist .ino, was von der IDE automatisch hinzugefügt wird. Der vollständige Name in unserem Beispiel lautet also blinky.ino und sollte im Sketchbook angezeigt werden.

Die Einrichtungsfunktion

Der nächste Schritt beim Schreiben eines Sketches besteht immer darin, die Funktion void setup() hinzuzufügen. Sie enthält eine Reihe von Anweisungen, die der Arduino einmalig ausführt, wenn er zurückgesetzt oder eingeschaltet wird. Um diese Einrichtungsfunktion zu erstellen, fügen Sie hinter dem Kommentar folgende Zeilen in den Sketch ein:

void setup()
{

}

Die Hardware steuern

Unser Programm soll die Benutzer-LED auf dem Arduino blinken lassen, die mit dem digitalen Pin 13 verbunden ist. Ein solcher Pin kann entweder ein elektrisches Signal erkennen oder selbst ein solches hervorrufen. In diesem Objekt erzeugen wir ein elektrisches Signal, das die LED zum Leuchten bringt. Das mag sich jetzt etwas kompliziert anhören, aber Sie werden in den kommenden Kapiteln noch Genaueres über die digitalen Pins erfahren. Zunächst einmal fahren Sie einfach damit fort, den Sketch zu schreiben.

Geben Sie zwischen die geschweiften Klammern { und } Folgendes ein: