Eine praktische Einführung mit 65 projekten
Ü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
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
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
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.
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.
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 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.
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.
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.
In diesem Abschnitt finden Sie Anleitungen zum Herunterladen und Einrichten der Arduino-IDE auf Mac OS X.
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.
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.
In diesem Abschnitt erfahren sie, wie Sie die Arduino-IDE unter Windows herunterladen, wie Sie die Treiber installieren und die IDE einrichten.
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
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.
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.
In diesem Abschnitt erfahren Sie, wie Sie die Arduino-IDE unter Ubuntu Linux herunterladen und einrichten.
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
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.
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.
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!
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.
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.
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, 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.
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.
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.
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.
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 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.
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.
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()
{
}
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: