Vorwort
Nirgendwo in der EDV wurde in den letzten zehn Jahren das Prinzip Eingabe-Verarbeitung-Ausgabe (EVA) so deutlich wie bei der Mikrocontroller-Plattform Arduino. Kaum eine Woche verging, in der nicht irgendein Bastler Musikinstrumente baute, die auf Bewegung reagierten, seine Zimmerpflanzen Twitter-Meldungen verschicken ließ oder neue Kunstwerke zur Interaktion einluden. Besonders offensichtlich ist die Eingabeseite: Das gern zitierte »Physical Computing« bezieht Sensoren verschiedenster Art mit ein: Schalter, Temperatursensoren, Annäherungssensoren, GPS-Empfänger.
Möglich macht es die Vielzahl an Schnittstellen: Digitale Eingänge reagieren auf Schalter, die beiden Bus-Systeme SPI und I2C erlauben die Anbindung von (bezahlbaren) Sensoren in Industriequalität — doch der Clou ist eine Reihe analoger Eingänge, die es erlauben, den Arduino selbst zum Sensor zu machen. Oder hätten Sie gedacht, dass es möglich ist, aus Alufolie, Kupferdraht, Widerständen, Kondensatoren und ganz viel Gehirnschmalz einen berührungslosen Sensor für die Füllmenge von Flüssigkeiten zu zaubern?
Arduino lebt nicht nur von genial einfacher Hardware für kleines Geld, sondern vor allem von einer großen Community aus Entwicklern, die Bibliotheken für viele Einsatzzwecke bereitstellen. Das alles zusammengenommen, führt zu schnellen Ergebnissen, für die nicht einmal viel Geld investiert werden muss — hätten Sie geglaubt, dass es möglich sein würde, mit Hardware für rund 10 Euro in einer guten Stunde einen kleinen Webserver zusammenzulöten, der Temperatur und Luftfeuchte anzeigt und dessen Programmierung keine 50 Zeilen Code braucht? Ich ehrlich gesagt auch nicht, bis ich die entsprechenden Optimierungen für dieses Buch vorgenommen habe.
Wer sind Sie? Vielleicht sind Sie ein Student oder wissenschaftlicher Mitarbeiter, der im Rahmen eines Forschungsprojekts Dutzende oder Hunderte kleine Sensoren lange Zeit in freier Wildbahn aussetzen muss — die müssen dann billig und zuverlässig sein. Oder Sie sind Eigenheimbesitzer, der seine Heizungs- und Lüftungssteuerung optimieren möchte — das soll einfach sein und flexibel in der Anwendung. Vielleicht möchten Sie das schrägste Musikinstrument der letzten 100 Jahre erfinden und suchen dafür nach Inspirationen? Möglicherweise wollen Sie auch einfach nur einen tollen Mausersatz für den heimischen PC bauen. Ich weiß es nicht.
Ich weiß, dass Sie neugierig sind (sonst hätten Sie nicht bis hierher gelesen), und ich mutmaße, dass Sie leicht umsetzbare Rezepte für einfache Sensoren suchen. Ich weiß jedoch nicht, wie viel Erfahrung mit Arduino Sie haben. Ich nehme an, dass Sie bereits Kontakt hatten und wissen, wie man die aufgelötete LED auf dem Arduino Uno zum Blinken bringt. Mehr müssen Sie nicht können. Wenn Sie noch gar keinen Kontakt hatten, ist das auch kein Problem — legen Sie los, Sie können nicht viel kaputt machen. Ich kann in diesem Buch zwar keinen kompletten Arduino-Einstieg bieten, aber ich verweise an den entsprechenden Stellen auf die passenden Tutorials.
In diesem Sinne: Lassen Sie uns gemeinsam loslegen: Keine Elektronikplattform wäre in Summe besser für die kreative Eingabeverarbeitung geeignet als der Arduino: Schlafmodi helfen beim Energiesparen, und die Vielzahl der Pins erleichtert den Bau kombinierter Sensoren. Und auch wenn die Betonung auf der Sensorseite liegt, dürfen Sie einige komplette Lösungen erwarten, die Verarbeitung und Ausgabe einbeziehen. So lernen Sie Sensoren kennen, die direkt auf SD-Karte schreiben, ihre Werte übers Netzwerk übertragen oder in den Äther funken. Wir lassen also auch die Verarbeitungs- und Ausgabeseite nicht zu kurz kommen und wünschen Ihnen viel Spaß — und noch viel mehr Anregungen für eigene Ideen — mit diesem Buch.
In diesem Sinne: Lassen Sie uns losmessen!
Konventionen im Buch
Jeder Autor macht seine eigenen Erfahrungen, und daraus sind Vorlieben für seine Arbeit an Projekten entstanden. Diese sind mit der Zeit einem Wandel unterworfen, was es umso wichtiger macht, die in diesem Buch verwendeten Konventionen etwas zu erläutern. Ich möchte mir keinesfalls anmaßen, dass meine Arbeitsweise die einzig wahre ist. Wenn Sie bereits Arduino-Erfahrung haben, werden Sie für viele Vorgehensweisen eigene »Best Practices« entwickelt haben, die genauso gut funktionieren (wenn Ihre Vorgehensweisen besser funktionieren, bin ich für einen Hinweis per E-Mail dankbar). Sollten Sie wenig Routine haben, betrachten Sie meine Erfahrung einfach als ganz bewährten Startpunkt.
Downloads, Updates und Errata
Die Codebeispiele in diesem Buch versuche ich, so kurz zu halten, dass Sie sie leicht abtippen können. Das gelingt nicht immer, und gelegentlich kommt es vor, dass ein Sketch nach längerer Laufzeit Probleme offenbart, die nachträglich korrigiert werden müssen. Um Ihnen den Einstieg zu erleichtern, finden Sie alle Bilder, Codebeispiele und Verdrahtungspläne auf meiner GitHub-Seite https://github.com/mschlenker/Arduino-Sensoren. Dort können Sie Einzeldateien herunterladen oder rechts mit dem Button Download ZIP ein Archiv aller Dateien herunterladen. Einen vollständigen Download finden Sie auch auf den Seiten des Franzis Verlags unter www.buch.cd.
Ein Blick ins GitHub-Repository lohnt sich, hier können Sie die aktuellen Quellcodes der Sketches im Buch herunterladen und finden hochauflösende, farbige Versionen aller Fotos.
Prinzipiell rate ich jedem, der Projekte in Angriff nimmt, die Software (beispielsweise in Form von Arduino-Sketches) oder andere Dokumentationen (Verdrahtungs- und Schaltpläne) involviert, sich mit Versions- und Revisionskontrollsystemen vertraut zu machen. Das oft gehörte »Gestern hat es doch noch funktioniert!« verliert nämlich schnell seinen Schrecken, wenn man alle Änderungen der letzten Tage zeilenweise nachvollziehen kann.
Der schnellste Einstieg in Git für Windows-Anwender dürfte der Client des Repository-Anbieters github.com sein. Selbstverständlich müssen Sie sich nicht von diesem Anbieter abhängig machen: Installieren Sie einen Git-Client lokal, »pullen« Sie meine Repositories und legen Sie eigene Repositories für eigene Zwecke an — aber vergessen Sie bitte das Backup nicht!
Bilder und Verdrahtungspläne
Wie andere Bücher dieser Reihe ist auch dieses Buch in Graustufen gedruckt. Ich versuche immer, die Verdrahtungsskizzen so zu zeichnen, dass sie auch ohne Farbe leicht nachvollziehbar sind. In vielen Fällen werden Sie aber die Schaltungen mehrerer Beispiele kombinieren wollen, was es erforderlich macht, die Bauelemente anders anzuordnen. Die für dieses Buch anfertigten Breadboard-Ansichten und Schaltpläne wurden mit der freien (und kostenlosen) Software Fritzing erstellt, Sie können sie für Linux, Windows und Mac OS X unter www.fritzing.org herunterladen.
Die freie Software Fritzing hilft beim Erstellen von Schaltplänen, besonders hilfreich ist die Steckplatinenansicht.
Die von mir erstellten FZZ-Dateien erhalten Sie unter den oben genannten Adressen (https://github.com/mschlenker, www.buch.cd). Rekombinieren Sie Bauelemente nach Belieben, fügen Sie Bauelemente hinzu oder kombinieren Sie Schaltungen. Außerdem können Sie Fritzing dafür verwenden, eigene Shields für Arduino Uno, Leonardo oder Pro Mini zu entwerfen. Diese lässt Fritzing ab Losgröße eins von einem Berliner PCB-Dienstleister wöchentlich belichten.
Inklusive Zersägen der großen Platine und Versand vergehen so im Regelfall maximal 14 Tage von der Aufgabe der Bestellung bis zum Eingang der Platine. Für die Weitergabe modifizierter Fritzing-Dateien auf Basis unserer Entwürfe gilt die Lizenz CC BY-SA 3.0. Auf Deutsch: Toben Sie sich aus, spinnen Sie unsere Ideen weiter, aber bitte nennen Sie die Quelle und weisen Sie auf Weitergabe unter gleichen Bedingungen hin. Projekte, die im Zuge der Umsetzung dieses Buchs nicht fertiggestellt werden konnten, die Dauerbaustellen des Autors sind oder die im Nachhinein von Lesern vorgeschlagen wurden, finden Sie in meinem Arduino-Blog www.arduino-hausautomation.de. Wenn Sie selbst etwas vorschlagen wollen, veröffentliche ich dies gern, solange Fritzing-Dateien und Sketches unter CC BY-SA 3.0 oder GPL v2 vorliegen. Um Kontakt mit mir aufzunehmen, verwenden Sie bitte die im Impressum angegebene E-Mail-Adresse.
Projekte oder Ideen, die es nicht ins Buch geschafft haben oder die von Lesern vorgeschlagen wurden, finden Sie im Blog www.arduino-hausautomation.de.
Arduino-IDE
Zur Entwicklung von Arduino-Sketches beziehen wir uns in diesem Buch auf die Arduino-Entwicklungsumgebung, die unter http://arduino.cc/en/Main/Software erhältlich ist. Andere Methoden der Softwareentwicklung sprechen wir nicht an. Falls Sie bislang keine Erfahrung mit Arduino haben: Besorgen Sie sich einen Arduino Uno und investieren Sie zwei Stunden in das Tutorial...