ebook img

Arduino – Physical Computing für Bastler, Designer und Geeks, 2. Auflage PDF

400 Pages·2010·15.22 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 für Bastler, Designer und Geeks, 2. Auflage

2. A r u e fl g a g ,n Arduinoe hle W a d nx e e l dA O & l en un ni F a Mn Physical Computing für a i l u J Bastler, Designer & Geeks s y s l c l i i s e a r b ’ o Microcontroller-Programmierung für alle Rapid Prototyping Mit kompletter Programmiersprachenreferenz 2. Auflage 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: © 2010 by O’Reilly Verlag GmbH & Co. KG 1. Auflage 2009 2. Auflage 2010 Bibliografische Information Der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Lektorat: Volker Bombien, Köln Korrektorat: Kathrin Jurgenowski, Köln Satz: III-satz, Husby 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-995-3 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. Inhalt 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Elektronischer Würfel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 8 Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Alles hört auf mein Kommando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 DMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Barlicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 RF-Steckdosen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Gespensterschreck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 9 Wearable Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Programmierbare Kleidung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Wearable Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Die iPod-Steuerung im Mantel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 10 Musik-Controller mit Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Musik steuern mit dem Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Das MIDI-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Die MidiDuino-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 EinMIDI-Zauberstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 MIDI-Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 11 Musik mit Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Töne aus dem Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Erster Sketch: Töne mit langsamer PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Zweiter Sketch: Angenehme Klänge mit schneller PWM . . . . . . . . . . . . . . . . . . . . . . 252 Dritter Sketch: Steuerung von Klängen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Vierter Sketch: Berechnungen in einer Interrupt-Routine . . . . . . . . . . . . . . . . . . . . . 255 Fünfter Sketch: Musikalische Noten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 VI Inhalt A Arduino-Boards und -Shields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Arduino-Boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Arduino-Shields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 B Arduino-Bibliotheken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 EEPROM-Bibliothek: Wertelangfristig speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Ethernet-Bibliothek: mit dem Internet kommunizieren . . . . . . . . . . . . . . . . . . . . . . . 277 Firmata-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 LiquidCrystal-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Servo-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Debounce-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Wire-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 capSense-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 C Sprachreferenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Übersicht: Programmiersprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Struktur, Werte und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Programmwerte (Variablen, Datentypen und Konstanten) . . . . . . . . . . . . . . . . . . . . 297 Ausdrücke und Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 Sketch-Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Funktionsreferenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 D Händlerliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 Inhalt VII In diesem Kapitel: • Für wen ist dieses Buch Einleitung gedacht? (cid:129) Aufbau dieses Buchs (cid:129) Typografische Konventionen (cid:129) Verwendung der Code- beispiele (cid:129) Die Codebeispiele zu diesem Buch (cid:129) Die Arduino-Welt (cid:129) Dedication from David Cuartielles 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. Aber vorweg – um was geht es hier eigentlich genau? Arduino ist zum einen eine Plattform, die aus einem Mikrocontroller besteht, der ähnlich wie ein PC eigenständig Berechnungen durchführen 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 komplizierte 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

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.