ebook img

Arduino – Physical Computing fur Bastler, Designer und Geeks PDF

384 Pages·2001·6.77 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Arduino – Physical Computing fur Bastler, Designer und Geeks

Arduino s c i s a Physical Computing b s für Bastler, Designer & Geeks y l l i e r ’ ➜ Microcontroller- o Programmierung für alle ➜ Prototype Your Life ➜ Mit kompletter Programmiersprachen- referenz Manuel Odendahl, Julian Finn & Alex Wenger Arduino – Physical Computing für Bastler, Designer und Geeks Manuel Odendahl, Julian Finn, Alex Wenger Beijing · Cambridge · Farnham · Köln · Sebastopol · Taipei · Tokyo Die Informationen in diesem Buch wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Verlag, Autoren und Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene Fehler und deren Folgen. Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und sind möglicherweise eingetragene Warenzeichen. Der Verlag richtet sich im Wesentlichen nach den Schreibweisen der Hersteller. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Kommentare und Fragen können Sie gerne an uns richten: O’Reilly Verlag Balthasarstr. 81 50670 Köln Tel.: 0221/9731600 Fax: 0221/9731608 E-Mail: [email protected] Copyright der deutschen Ausgabe: © 2009 by O’Reilly Verlag GmbH & Co. KG 1. Auflage 2009 Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Lektorat: Volker Bombien, Köln Fachliche Begutachtung: Maximilian Rest, Köln Korrektorat: Eike Nitz, Köln Satz: III-satz, Husby, www.drei-satz.de Umschlaggestaltung: Michael Oreal, Köln Produktion: Karin Driesen, Köln Belichtung, Druck und buchbinderische Verarbeitung: Druckerei Kösel, Krugzell; www.koeselbuch.de ISBN 978-3-89721-893-2 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. First Hier Mini IVZ eingeben! Inhalt Erstellen auf den Abstand untere Tabellenlinie zu Textanfang 1,8 cm Arbeitsseiten -> also: manuell auf den Arbeitsseiten ziehen!!! (siehe Muster) Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX 1 Von Königen und Kondensatoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Die Geschichte des Arduino-Projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Der Arduino, das unbekannte Gerät . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Arduino-Projekte: eine kleine Vorstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Die Arduino-Entwicklungsumgebung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2 Physical Computing, elektrischeGrundlagen und der Sprung ins kalte Wasser . . . . . . . . . 31 Elektrische Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Schaltungen, Bauteile und Schaltbilder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Löten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Fehlersuche in elektronischen Schaltungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3 Workshop LED-Licht. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Eine blinkende LED – das »Hello World« desPhysical Computing. . . . . . . . . . . . . . 84 4 LEDs für Fortgeschrittene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 LED-Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Animationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Tamagotchi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Brainwave und Biofeedback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Max. Max. Linie Linie V 5 Sprich mit mir, Arduino!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Nach Hause telefonieren mit der seriellen Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Automatisierung mit Gobetwino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 6 Arduino im Netz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Hello World – ein Mini-Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Sag's der Welt mit Twitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Fang die Bytes – Datalogger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 7 Sensoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Sensoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Aktoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Elektronischer Würfel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 8 Ein kleiner Arduino-Roboter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Flieg, Arduino, flieg! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Arduino und der Asuro-Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 9 Musik-Controller mit Arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Musik steuern mit dem Arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Das MIDI-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Die MidiDuino-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Zweiter Sketch: Mikroskopischer Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Dritter Sketch: Miniatur-Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Vierter Sketch: EinMIDI-Zauberstab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Fünfter Sketch: MIDI-Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 10 Musik mit Arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Töne aus dem Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Erster Sketch: Töne mit langsamer PWM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Zweiter Sketch: Angenehme Klänge mit schneller PWM . . . . . . . . . . . . . . . . . . . . . . 240 Dritter Sketch: Steuerung von Klängen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Vierter Sketch: Berechnungen in einer Interrupt-Routine. . . . . . . . . . . . . . . . . . . . . . 244 Fünfter Sketch: Musikalische Noten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 A Arduino-Boards und Shields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Arduino-Boards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Arduino-Shields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 VI Inhalt B Arduino-Bibliotheken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 EEPROM-Bibliothek: Wertelangfristig speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Ethernet-Bibliothek: mit dem Internet kommunizieren . . . . . . . . . . . . . . . . . . . . . . . 265 Firmata-Bibliothek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 LiquidCrystal-Bibliothek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Servo-Bibliothek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Debounce-Bibliothek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Wire-Bibliothek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 capSense-Bibliothek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 C Sprachreferenz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Übersicht: Programmiersprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Struktur, Werte und Funktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Programmwerte (Variablen, Datentypen und Konstanten). . . . . . . . . . . . . . . . . . . . . 287 Ausdrücke und Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Kontrollstrukturen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Sketch-Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Funktionsreferenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 D Händlerliste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 Inhalt VII Die Informationen in diesem Buch wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Verlag, Autoren und Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene Fehler und deren Folgen. Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und sind möglicherweise eingetragene Warenzeichen. Der Verlag richtet sich im Wesentlichen nach den Schreibweisen der Hersteller. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Kommentare und Fragen können Sie gerne an uns richten: O’Reilly Verlag Balthasarstr. 81 50670 Köln Tel.: 0221/9731600 Fax: 0221/9731608 E-Mail: [email protected] Copyright der deutschen Ausgabe: © 2009 by O’Reilly Verlag GmbH & Co. KG 1. Auflage 2009 Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Lektorat: Volker Bombien, Köln Fachliche Begutachtung: Maximilian Rest, Köln Korrektorat: Eike Nitz, Köln Satz: III-satz, Husby, www.drei-satz.de Umschlaggestaltung: Michael Oreal, Köln Produktion: Karin Driesen, Köln Belichtung, Druck und buchbinderische Verarbeitung: Druckerei Kösel, Krugzell; www.koeselbuch.de ISBN 978-3-89721-893-2 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. First In diesem Kapitel: Hier Mini IVZ eingeben! • Für wen ist dieses Buch Einleitung gedacht? (cid:129) Aufbau dieses Buchs (cid:129) Typographische Konven- tionen (cid:129) Verwendung der Code- beispiele (cid:129) Die Codebeispiele zu diesem Buch (cid:129) Die Arduino-Welt Erstellen auf den Abstand untere Tabellenlinie zu Textanfang 1,8 cm Arbeitsseiten -> also: manuell auf den Arbeitsseiten ziehen!!! (siehe Muster) Vielleicht stehen Sie gerade im Laden und überlegen sich, ob Sie dieses Buch kaufen möchten. Vielleicht haben Sie es auch schon erworben, wofür wir uns natürlich recht herzlich bedanken. In jedem Fall aber halten Sie gerade das erste deutschsprachige Buch zum Thema Arduino in den Händen. Arduino ist die Verbindung aus einem Board, das einen Mikrocontroller beherbergt, mit einer Programmiersprache, die es sehr leicht macht, diesem kleinen Pro- zessor auch Befehle zu erteilen. Zusammen bilden die beiden die Basis für sogenanntes Physical Computing, die Verbindung der rea- len, physischen Welt mit der virtuellen Welt der Einsen und Nullen. Der Arduino eignet sich hervorragend für alle möglichen Projekte, denn er ist günstig zu erwerben und einfach und vor allem schnell zu programmieren. So wird die Zeit von der fixen Idee bis zur Umsetzung möglichst kurz gehalten. Das bewahrt viele gute Pro- jekte vor dem Papierkorb, in dem sie unweigerlich landen, wenn ihre Schöpfer vor allzu großen Problemen stehen. Der Arduino wurde im italienischen Ivrea entwickelt, um Design- studenten möglichst leicht zu bedienende Werkzeuge an die Hand zu geben, und hat seit 2005 einen fast beispiellosen Siegeszug ange- treten. Rund um den Globus finden sich nun an Kunsthochschulen Seminare zur Programmierung, zum Löten und über physikalische Grundlagen, begünstigt durch die einfache Verfügbarkeit dieser Technologie. Mehr über die Geschichte des Arduino finden Sie in Kapitel1, Von Königen und Kondensatoren. Aber vorweg ? um was geht es hier eigentlich genau? Arduino ist zum einen eine Plattform, die aus einem Mikrocontroller besteht, Max. Max. der ähnlich wie ein PC eigenständig Berechnungen durchführen Linie Linie IX kann, aber auch leicht mit vielen Sensoren zur Interaktion mit der Umwelt verbunden werden kann. Arduino ist aber auch die dazu- gehörige Entwicklungsumgebung, und – nicht zu vergessen – das Framework, das viele komplizierten Details der hardwaregestützten Entwicklung einfacher macht. So kann mit einem einzelnen Knopf- druck der Programmcode sowohl kompiliert als auch direkt über USB in den Arduino geladen werden. All das erlaubt die schnelle Entwicklung von Prototypen; aber dadurch, dass alle Teile auf bestehenden Standards wie C++ und verbreiteten Mikrocontrollern basieren, kann es später auch losge- löst vom Arduino-Konzept weiterverwendet werden. Für wen ist dieses Buch gedacht? Sie haben die Einleitung gelesen und fragen sich nun, ob Sie zu den »Bastlern, Designern und Geeks« gehören, die der Buchtitel anspricht? Nun, wahrscheinlich schon. Dieses Buch versucht, sei- nen Leserinnen und Lesern die Welt des Physical Computing und damit auch der Programmierung anhand von praktischen Beispie- len näherzubringen. Sie alle haben gemeinsam, dass sie fortan neues Entwickeln wollen, entweder in der realen Welt als Gegenstand oder virtuell auf dem Rechner als Daten und Software. Hier fügen sich mit Arduino zwei Welten zusammen, die eigentlich nie richtig voneinander getrennt waren, und doch ist das Überqueren dieser Grenze für viele eine hohe Hürde. Der Programmierer scheut den Lötkolben und löst Probleme lieber auf seine Weise, wogegen der Bastler lieber noch drei weitere Bausätze verwendet, als dass er sich mit der Program- mierung eines Computers oder Mikrocontrollers auseinandersetzt. Bastlern, die bisher vielleicht nur in der physischen Welt an ihren Projekten gearbeitet haben, werden dadurch neue Möglichkeiten eröffnet: Sie können die im Buch aufgezeigten Ideen verfolgen und dabei lernen, wie der Arduino zu ihrem Hobby viele neue Aspekte beisteuern kann. Als Designer und Medienkünstler werden Sie bislang möglicher- weise ähnliche Probleme gehabt haben: Die Inspiration war da, bloß an der Umsetzung hat es gehapert. Mit dem Arduino können einfache Prototypen schnell umgesetzt werden, sodass man sich nicht mit allzu komplizierter Technik aufhalten muss. Man kommt auch nicht mehr in die Situation, dass Informatiker einem gern hel- X Einleitung fen würden, aber einfach nicht so recht verstehen, was man ihnen eigentlich sagen will. Auch wenn Sie schon Erfahrung mit einer Programmiersprache haben, sollten Sie nun das Buch nicht beiseite legen: Es ist so aufge- baut, dass die Programmierung beiläufig erklärt wird, während die einzelnen Projekte zusammengesetzt werden. Selbst als Geek, des- sen natürliche Umgebung meist aus einem Codedschungel besteht, wird Ihnen die Lektüre also kaum langweilig werden. Besonders wenn Sie zwar im Schlaf Software schreiben können, dafür aber noch unerfahren in Sachen Lötkolben, Sensoren und Widerstände sind, wird Ihnen dieses Buch bieten, was Sie suchen. All das erlaubt das schnelle Erstellen von Prototypen, sodass nicht die langwierige, umständliche Umsetzung, sondern die Idee im Vordergrund steht. All das heißt natürlich auch, dass dieses Buch sich vor allem an Ein- steiger richtet. Trotzdem geht es z.B. in Kapitel9 und 10, die sich mit der Anbindung von Arduino an die Welt der Musik beschäfti- gen, auch ein wenig mehr in die Tiefe. Weiterhin bietet der Anhang eine vollständige Referenz der Programmiersprache, sodass Sie diese Seiten auch im weiteren Verlauf Ihrer Physical-Computing- Karriere auf dem Schreibtisch behalten sollten, um jederzeit nach- schlagen zu können. Der Projektcharakter ist bewusst nach den Prinzipien des Rapid Prototyping gestaltet, um die Fantasie der Leser nicht unnötiger- weise einzuengen. Wir freuen uns natürlich über Projektbeschrei- bungen und Bilder der daraus entstandenen Arbeiten, die Sie uns gern über Twitter (@arduinobuch) zuschicken können. Hilfreich ist es, wenn Sie zum Buch auch ein Arduino-Board erwer- ben, falls Sie noch keines besitzen. In Kapitel1 finden Sie Hinweise dazu, wo Sie den hier verwendeten Arduino Duemilanove beziehen können. Weiterhin wird für die im Buch beschriebenen Workshops eine Reihe von Bauteilen benötigt. Wir empfehlen, dass Sie die Liste der benötigten Teile zu Anfang durchlesen und entsprechend einkaufen. Zudem wäre es hilfreich, wenn Sie einen Lötkolben, ausreichend Lötzinn und Entlötlitze sowie ein Steckbrett besitzen. Aufbau dieses Buchs Die Kapitel dieses Buchs lassen sich einteilen in einzelne Work- shops und Erläuterungen der physikalischen Aspekte der Entwick- lung von Arduino-Projekten. Nach der Einleitung und Einführung Aufbau dieses Buchs XI

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.