Thomas Brühlmann
Arduino
Praxiseinstieg
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.
Bei der Herstellung des Werkes haben wir uns zukunftsbewusst für umweltverträgliche und wiederverwertbare Materialien entschieden.
Der Inhalt ist auf elementar chlorfreiem Papier gedruckt.
ISBN 978-3-7475-0056-9
4. Auflage 2019
www.mitp.de
E-Mail: mitp-verlag@sigloch.de
Telefon: +49 7953 / 7189 – 079
Telefax: +49 7953 / 7189 – 082
© 2019 mitp Verlags GmbH & Co. KG, Frechen
Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Arduino is a registered Trademark of the Arduino Team (http://arduino.cc/en/Main/FAQ)
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Lektorat: Sabine Schulz
Sprachkorrektorat: Petra Heubach-Erdmann
Coverbild: Produktbild Arduino Uno Rev.3 © 2019, arduino.cc
Satz: Reemers Publishing Services GmbH, Krefeld
Druck: Medienhaus Plump GmbH, Rheinbreitbach
Inhaltsverzeichnis
1 Einleitung
1.1 Aufbau des Buches
1.2 Downloads und weiterführende Informationen
1.3 Weitere Quellen
1.4 Danksagung
2 Arduino-Plattform
2.1 Am Anfang war der König
2.2 Be a Maker
2.3 Arduino-Plattform
2.4 Hardware
2.4.1 Arduino Uno/Genuino Uno
2.5 Software
2.6 Installation der Software
2.6.1 Installation des USB-Treibers unter Windows 7
und Windows 10
2.6.2 Installation des USB-Treibers unter Windows XP
2.6.3 Installation des USB-Treibers unter Mac OS X
2.6.4 Installation des USB-Treibers unter Linux
2.7 Get Connected
2.7.1 Verbindungskabel
2.7.2 Verbindung und »Blink«
2.7.3 Projekt Blink
2.8 Arduino-Entwicklungsumgebung
2.8.1 Voreinstellungen
2.8.2 Aufbau Entwicklungsumgebung
2.8.3 Menü- und Symbolleiste
2.8.4 Editor
2.8.5 Ausgabefenster
2.9 Arduino-Boards
2.9.1 Arduino Leonardo
2.9.2 Arduino Due
2.9.3 Arduino Yun
2.9.4 Arduino Mega 2560
2.9.5 Arduino Nano
2.9.6 Arduino Mini
2.9.7 Arduino LilyPad
2.10 Arduino-kompatible Boards
3 Startschuss
3.1 Das Arduino-Board
3.1.1 Stromlaufplan
3.1.2 Microcontroller – Das Gehirn
3.1.3 Anschlussbelegung
3.1.4 Stromversorgung
3.2 Steckbrett – Experimentieren ohne Löten
3.2.1 Spannungsversorgung auf dem Steckbrett
3.3 Spannung, Strom und Herr Ohm
3.4 Widerstand & Co
3.4.1 Widerstand
3.4.2 Potentiometer
3.4.3 Kondensator
3.4.4 Diode
3.4.5 Leuchtdiode
3.4.6 Transistor
3.4.7 Integrierte Schaltung (IC)
3.4.8 Relais
3.4.9 Schalter
3.4.10 Taster
3.5 Programmcode
3.5.1 Integer, Typen und Variablen
3.5.2 Struktur
3.6 Testen
3.6.1 Serieller Monitor
3.6.2 Code-Debugging
3.7 Projekt Blink
3.8 Projekt Wechselblinker
4 Eingänge und Ausgänge
4.1 Digitale Eingänge
4.1.1 Pin als Eingang setzen
4.1.2 Digitalen Eingang lesen
4.1.3 Digitalen Eingang entprellen
4.1.4 Hohe Eingangssignale
4.2 Digitale Ausgänge
4.2.1 Ausgang setzen und ausgeben
4.2.2 Praxis-Tipp: Status eines Ausgangs lesen
4.3 Analoge Welt
4.3.1 Analoge Signale einlesen
4.3.2 Analoge Signale ausgeben
4.4 Serielle Kommunikation
4.4.1 Serielle Schnittstelle (RS232)
4.4.2 Schnittstellenerweiterung
4.4.3 I2C/2-Wire (Two-Wire)
4.5 Drahtlose Kommunikation
4.5.1 433-MHz-Kommunikation
4.5.2 Daten übertragen mit RFM12B Transceiver
4.6 Projekt: Würfel
5 Sensoren
5.1 Sensoren
5.1.1 LDR (Fotowiderstand)
5.1.2 NTC/PTC
5.1.3 Integrierte Temperatursensoren
5.1.4 Pt100 und Thermoelemente
5.1.5 Feuchtesensoren
5.1.6 Kombinierte Umweltsensoren
5.1.7 Schaltersensoren
5.1.8 Abstandssensoren
5.1.9 Beschleunigungssensor
5.1.10 Kompass
5.1.11 Hall-Sensor
5.2 Projekt Kompass mit Richtungsanzeige
5.3 Projekt Gefrierschrankwächter
5.4 Kontaktloses Fieberthermometer
6 Aktoren
6.1 Relais
6.2 Servos
6.2.1 Analoge Temperaturanzeige
6.2.2 Servos als Motoren für Miniroboter
6.3 Motoren
6.4 Hohe Lasten schalten
6.5 Projekt: Roboter mit Wii-Steuerung
7 Anzeigen
7.1 Leuchtdiode (LED)
7.1.1 Konstantstromquelle mit Transistor
7.1.2 Konstantstromquelle mit Spannungsregler
7.1.3 Helligkeit steuern
7.1.4 LED als Berührungssensor
7.1.5 Jetzt wird es hell
7.2 7-Segment-Anzeigen
7.2.1 Port Expander über den I2C-Bus
7.3 LC-Display (LCD)
7.3.1 Paralleles LC-Display
7.3.2 Serielle LC-Displays
7.4 LC-Display Nokia 3310/5110
7.5 OLED-Display
7.6 LED-Matrix
7.7 Projekt Geschwindigkeitsmesser fürs Fahrrad
7.8 Projekt Schrittzähler
8 Datenverarbeitung
8.1 Daten speichern
8.1.1 Daten im ATmega-Controller speichern
8.1.2 Daten in externem EEPROM ablegen
8.1.3 Daten auf SD-Karte speichern
8.2 Daten ins Internet senden
8.3 Projekt: Programmierbarer Signalgeber
8.4 Sinusgenerator
8.5 Projekt: Digitales Netzteil
8.5.1 Hochspannungsteil
8.5.2 Leistungsteil
8.5.3 Ansteuerungsteil
8.5.4 Spannungsversorgungen
8.5.5 Aufbau des Geräts
8.6 Projekt Sollwerteingabe mit Drehgeber
8.6.1 Projekt-Erweiterung – Ausgabe als Analogwert
9 Erweiterungen
9.1 Bibliotheken
9.1.1 Ethernet-Bibliothek
9.1.2 Wire-Bibliothek
9.1.3 SoftwareSerial
9.1.4 TinyGPS-Bibliothek
9.1.5 NMEA
9.1.6 PString-Bibliothek
9.1.7 TextFinder-Bibliothek
9.1.8 Matrix-Bibliothek
9.1.9 LiquidCrystal-Bibliothek (LCD)
9.1.10 JeeLib
9.1.11 Stepper-Bibliothek
9.1.12 Wii Nunchuk
9.2 Hardware-Erweiterungen (Shields)
9.2.1 Protoshield
9.2.2 Protonly-Protoshield
9.2.3 Floweronly-Protoshield
9.2.4 Ethernet Shield
9.2.5 Datalogger und GPS Shield
9.2.6 Adafruit Motor Shield
9.2.7 DFRobot Motor Shield
9.2.8 Diduino-MsMot-Shield
9.2.9 Keypad Shield
9.2.10 Wave Shield
9.2.11 SD Card Shield
9.2.12 Nano Shield
9.2.13 Lithium Backpack
9.2.14 ITEAD Power Shield
9.2.15 RFM12B Shield
9.2.16 CC3000 WiFi Shield
9.2.17 Schraubklemmen-Shield
9.3 Hardware-Adapter
9.3.1 RFM12B-Breakout-Board
9.3.2 Wii-Nunchuk-Adapter
10 Arduino im Einsatz
10.1 Verbindung zum Internet
10.1.1 Netzwerkverbindung
10.1.2 Arduino als Webserver
10.1.3 Der Arduino als Webclient
10.1.4 Eingänge und Ausgänge übers Internet steuern
10.1.5 Wireless Ethernet (WiFi)
10.2 ESP-Module und Arduino
10.2.1 Integration in Arduino
10.2.2 ESP8266
10.2.3 ESP8266-ESP12E
10.2.4 Wemos D1 Mini
10.2.5 WiFi-Bibliothek für ESP8266
10.3 Heute schon getwittert?
10.4 Arduino mailt
10.4.1 Mail direkt versenden
10.4.2 Mail via PHP-Skript versenden
10.5 XML einlesen
10.5.1 XML lesen mit TextFinder
10.5.2 Wetterdaten von OpenWeatherMap abfragen
10.6 RSS einlesen
10.7 You got mail
10.8 Umweltdaten sammeln
10.9 Projekt Wetterstation
11 Fehlersuche/Troubleshooting
11.1 Allgemeines Vorgehen
11.2 Fehler in der Schaltung
11.3 Fehler im Programm
11.4 Probleme mit der IDE
11.5 Hallo Arduino-Board
12 DIY Boards und Clones
12.1 Boards
12.1.1 Minimalschaltung Arduino
12.1.2 Bare Bone Breadboard Arduino
12.1.3 Really Bare Bone Board (RBBB)
12.1.4 Helvetino
12.1.5 Sippino
12.1.6 RFBoard
12.2 Programmieradapter (USB-Wandler)
12.2.1 Anschlussbelegung FTDI
12.3 Programmierung über ICSP
12.3.1 Der Arduino als Programmiergerät (Arduino ISP)
12.4 Arduino im Miniaturformat mit ATtiny
12.4.1 tinyAVR und Arduino
12.4.2 Boardpakete für ATtiny
12.4.3 (Blink-)Schaltung mit ATtiny
12.4.4 Programmierung des ATtiny-Microcontrollers
12.4.5 AVR-Programmer
12.4.6 Projekt Selbstbau-Programmieradapter
12.4.7 Projekt ICSP-Breakout-Board fürs Steckbrett
12.4.8 Projekt Windlicht
12.4.9 Prototypen-Board für ATtiny84
13 Tools für Praktiker
13.1 Hardware
13.1.1 Steckbrett und Kabel
13.1.2 Lochrasterplatinen
13.1.3 Lötkolben und Lötzinn
13.1.4 Zangen
13.1.5 Biegelehre
13.1.6 Multimeter
13.1.7 Oszilloskop – Spannung sichtbar machen
13.2 Software
13.2.1 Schaltungsaufbau mit Fritzing
13.2.2 Eagle CAD
13.2.3 KiCad
13.2.4 Oszilloskop mit Arduino
13.3 Leiterplatten herstellen
13.3.1 Datenformat Gerber
13.3.2 Gerber-Daten aus Fritzing
13.3.3 Gerber-Daten aus Eagle
13.3.4 Gerber-Daten prüfen
13.3.5 Leiterplatten von OSH Park
A Codereferenz
A.1 Programmstruktur
A.2 Aufbau einer Funktion
A.3 Konventionen
A.4 Datentypen
A.5 Datentypkonvertierung
A.6 Variablen & Konstanten
A.6.1 Variablen
A.6.2 Konstanten
A.7 Kontrollstrukturen
A.8 Mathematische Funktionen
A.9 Zufallszahlen
A.10 Arithmetik und Vergleichsfunktionen
A.11 Funktionen
A.11.1 Digitale Ein- und Ausgänge
A.11.2 Analoge Ein- und Ausgänge
A.11.3 Tonausgabe
A.11.4 Interrupts
A.12 Zeitfunktionen
A.13 Serielle Kommunikation
B Boards
B.1 Vergleich der Board-Varianten
B.2 Anschlussbelegung Microcontroller
C Bezugsquellen
C.1 Bezugsquellen und Lieferanten
D Listings
D.1 Wii-Nunchuk-Funktionsbibliothek (Kapitel 5)
D.2 Mailchecker (Kapitel 8)
E Migration zu Arduino 1.0
F Stücklisten
Stichwortverzeichnis
Kapitel 1
Einleitung
Vor Ihnen liegt die 4. Auflage von »Arduino Praxiseinstieg« und die Erfolgsgeschichte von Arduino geht weiter. Auch im Jahr 2019 gehört die Arduino-Plattform zur ersten Wahl, wenn es um einen Einstieg in die Programmierung von Microcontrollern geht.
In der Zwischenzeit sind viele Microcontroller-Boards auf den Markt gekommen und auch wieder verschwunden. Der Arduino Uno, das Standardboard für den Einsteiger, Maker und Bastler ist weiterhin das Zugpferd im Arduino-Projekt.
Das Thema »Internet of Things«, abgekürzt IoT, wird auch immer wichtiger für die Arduino-Community. Neue Boards mit WiFi und die fantastischen ESP-Module unterstützen viele Projekte beim drahtlosen Einsatz.
Dieses Praxisbuch soll ein Führer beim Einstieg in das Thema Arduino sein und den Leser dabei unterstützen, Schritt für Schritt Hard- und Software kennenzulernen, um die ersten Erfolgserlebnisse feiern zu können. Die hier zum Einsatz kommende Art des Mixes von Hard- und Software wird »Physical Computing« genannt. Physical-Computing-Projekte haben meist einen künstlerischen Hintergrund und verbinden den Menschen mit den digitalen Systemen. Die Verbindung zwischen Mensch oder Umwelt und digitalen Systemen wird auch in vielen Selbstbau- oder Bastelprojekten umgesetzt. Dabei geben Eingabeelemente und Sensoren Signale an Computersysteme weiter, in unserem Fall das Arduino-Board, und diese verarbeiten die Informationen in Form einer Reaktion, beispielsweise einer Ausgabe auf ein Display oder das Ansteuern einer Lampe, eines Motors oder eines Servos.
Bestimmt sind viele Inhalte und Beispiele in diesem Buch auch an anderen Orten in ähnlicher Form zu finden. Wichtige und grundlegende Informationen müssen trotzdem erwähnt werden, damit das Verständnis für den nächsten Schritt vorhanden ist.
Darum gibt es im Buch auch viele Verweise auf Lösungen und Beispiele, die bereits realisiert wurden. Einige sagen jetzt vielleicht, dass man für eine Linkliste normalerweise kein Geld bezahlt. Aber oft ist es schwierig, das Richtige in der großen Masse von Informationen im Internet zu finden. Gute Ideen sollten auch erwähnt werden, da sie wieder neue Ideen für eigene Anwendungen generieren.
1.1Aufbau des Buches
Am besten arbeitet man das Buch der Reihe nach durch, da die einzelnen Kapitel aufeinander aufbauen. In den ersten Kapiteln werden zunächst die wichtigsten Grundlagen der Hard- und Software des Arduino-Projekts beschrieben. Wer dieses Wissen bereits erworben hat, kann diese Kapitel natürlich überspringen.
In Kapitel 2 wird kurz über die Entstehung des Arduino berichtet und die Idee vom Basteln, Testen und Ausprobieren erläutert. Das Ganze ist aber kurz gehalten, da das Ziel dieses Buches die praktische Arbeit ist. Im Anschluss beginnt dann der praktische Teil. Sie lernen zuerst die Hardware und die verschiedenen Arduino-Boards kennen. Begriffe werden erklärt und dann startet schon die eigentliche Installation der Software, der Entwicklungsumgebung. Nach erfolgreicher Installation und Verbindung mit der Arduino-Plattform schließt das Kapitel mit dem ersten Programm, dem Testprogramm Blink. Es folgt eine Einführung in die Oberfläche der Entwicklungsumgebung, und schon ist sie für die ersten Programme bereit.
Kapitel 3 startet mit einem Hardwareteil, in dem Sie die Arduino-Boards und den Schaltungsaufbau mit dem Steckbrett kennenlernen. Anschließend werden die Begriffe Strom, Spannung und Widerstand sowie die wichtigsten elektronischen Bauelemente erklärt. Als Nächstes werden die wichtigsten Begriffe rund um den Programmcode erklärt: Was ist eine Variable und wie ist eine Funktion aufgebaut? Nach der Einführung in die Struktur der Arduino-Programme wird das Testen und Debuggen des Programmcodes beschrieben. Hier wird aufgezeigt, wie man den seriellen Monitor zur Fehlersuche nutzen kann.
Digitale Eingänge lesen und Ausgänge schalten sind die nächsten Schritte in Kapitel 4. Die erste Leuchtdiode wird zum Leuchten gebracht. Im Anschluss befassen wir uns mit der analogen Welt. Es werden grundsätzliche Themen wie die Auflösung von Analogwandlern erklärt. Das erste richtige Programm liest die Sensorspannung eines Temperatursensors ein und gibt den Wert im seriellen Monitor aus. Nach dem Einlesen von analogen Werten werden analoge Signale mittels Pulsweitenmodulation ausgegeben.
Das nächste Thema in Kapitel 4 ist die serielle Kommunikation über die serielle Schnittstelle (RS232). Es werden Daten ausgegeben und eingelesen. Anschließend wird der Datentransfer über einen 2-Draht-Bus (I2C-Bus und Two-Wire-Bus) beschrieben. Daten werden von einem Master zum Slave versendet, wodurch ein Miniatur-Servo gesteuert wird. Weiter werden praktische I2C-Anwendungen wie ein serieller Sensor und eine busfähige Uhrenanwendung realisiert. Zum Schluss wird noch eine drahtlose Kommunikation mittels 433-MHz-Technologie erklärt. Ein Projekt, in dem ein elektronischer Würfel aufgebaut wird, schließt dieses Kapitel ab.
In Kapitel 5 werden Sensoren wie ein Fotowiderstand und viele Temperatursensoren sowie weitere Sensoren zur Umwelterfassung beschrieben. Danach folgt die Beschreibung sonstiger Sensoren. Mit einem Beschleunigungssensor wird eine kleine Wasserwaage realisiert. Als Kapitelprojekte werden ein elektronischer Kompass, ein Gefrierschrankwächter und ein kontaktloses Fieberthermometer realisiert.
Als Nächstes folgen in Kapitel 6 die Aktoren wie Relais und Servo. Bei einer Servoanwendung wird ein Servo zu einer analogen Temperaturanzeige umgebaut. Nun lernt der Leser die verschiedenen Motoren und deren Ansteuerung kennen. Die Erläuterung der Frage, wie man hohe Lasten schaltet, schließt das Thema Aktoren ab. Als Kapitelprojekt wird ein kleiner Roboter realisiert. Der kleine Roboter kann dabei mittels einer bekannten Komponente aus dem Spieleboxbereich gesteuert werden, dem Wii Nunchuk, dem Joystick für die Wii-Spielkonsole.
Kapitel 7 behandelt die verschiedenen Anzeigeelemente. Es wird erklärt, wie man diese ansteuert und wie man die Helligkeit regeln oder fest begrenzen kann. Beispiele von Ansteuermöglichkeiten für LC-Displays und LED-Matrix und Beispiele mit Nokia-Display und OLED-Display runden das Thema Anzeigen ab. Ein Geschwindigkeitsmesser fürs Fahrrad und ein Schrittzähler für Jogger schließen dieses Kapitel ab.
Kapitel 8 beschreibt die verschiedenen Arten der Datenverarbeitung. Es werden Daten in ein EEPROM und auf eine SD-Karte geschrieben. In einem praktischen Projekt wird ein programmierbarer Signalgeber zur Erzeugung analoger Signale realisiert. Dabei lernen Sie eine neue Variante der Ansteuerung von Digitalports kennen. Als Abschlussprojekt wird ein Netzteil aufgebaut, das über eine Folientastatur bedient wird.
In Kapitel 9 werden verschiedene Softwarebibliotheken zur Erweiterung der Arduino-Funktionalität vorgestellt. Der zweite Teil dieses Kapitels behandelt die Hardwareerweiterungen, »Shields« genannt. Einige wichtige und nützliche Shields werden etwas genauer betrachtet. Zum Abschluss dieses Kapitels wird eine praktische Lösung zur Herstellung eines Wii-Adapters vorgestellt.
Kapitel 10 beschreibt verschiedene praktische Arduino-Lösungen und wie man mittels Ethernet-Erweiterung mit dem Arduino kommunizieren kann. Wir werden einen E-Mail-Checker realisieren und unsere Mailbox abfragen. Eine Anwendung wird Meldungen an Twitter senden. Zum Abschluss dieses Kapitels werden Sensordaten gesammelt und an ein Auswertungstool übertragen. Im Schlussprojekt dieses Kapitels wird eine kleine Wetterstation aufgebaut, die das aktuelle Wetter und die Wettervorhersage für den kommenden Tag anzeigt.
Fehlersuche und Troubleshooting sind die Themen in Kapitel 11. Es wird gezeigt, wie man die eigene Schaltung oder das neu erstellte Programm zum Laufen bringt.
Kapitel 12 beschreibt die verschiedenen Arduino-Clones und wie man sich einen minimalen Arduino auf dem eigenen Steckbrett aufbauen kann.
In Kapitel 13 werden verschiedene Werkzeuge beschrieben, die bei den Arduino-Projekten nützlich und hilfreich sind. Neben Steckbrett, Lötkolben und Zangen werden auch Messgeräte wie Multimeter und Oszilloskop erläutert. Im Teil zum Thema Softwaretools lernen Sie Programme zur Schaltplan- und Leiterplattenerstellung kennen. Abschließend wird die auf einem Arduino-Board basierende Variante eines Oszilloskops beschrieben.
Im Schlussteil und Anhang des Buches finden Sie eine Codereferenz, eine Board-Übersicht, Informationen über Bezugsquellen sowie Anpassungen, die bei der Migration von älteren Arduino-Anwendungen auf die aktuelle Version 1.x nötig sind. Das letzte Kapitel im Anhang listet alle Stücklisten der Beispiele und Projekte aus dem Buch auf.
1.2Downloads und weiterführende Informationen
Weitere Informationen zu den Anwendungen und Beispielen im Buch sind auf der Buchwebsite erhältlich:
http://arduino-praxis.ch
Die Beispielskripte stehen im Downloadbereich zur Verfügung.
http://arduino-praxis.ch/download/
Für Anmerkungen oder Anregungen zu diesem Thema und die Kontaktaufnahme mit dem Autor stehen die Kontaktseite der Buchwebsite, E-Mail und Twitter zur Verfügung.
Die E-Mail-Adresse zum Buch lautet:
kontakt@arduino-praxis.ch
Der Twitter-Account lautet:
http://twitter.com/arduinopraxis oder der User @arduinopraxis.
Im Blog zum Buch werden laufend neue und interessante Projekte sowie Produktvorstellungen aus der Arduino-Welt publiziert.
1.3Weitere Quellen
Die größte Quelle für weitere Fragen zum Arduino ist natürlich das Internet. Zu fast jedem Problem gibt es bereits realisierte Lösungen oder Ansätze.
Für Arduino-Anwender sind folgende Websites ideale und empfehlenswerte Anlaufstellen bei Problemen und Fragen.
Arduino-Website:
http://arduino.cc/
Arduino-Forum:
http://www.arduino.cc/forum/
Make:Blog:
http://blog.makezine.com/
Explore & Learn Adafruit:
https://learn.adafruit.com/
1.4Danksagung
Mein Dank geht vor allem an meine Familie, meine Frau Aga und meine beiden Jungs Tim und Nik. Auch während der Arbeit an der 4. Auflage dieses Buches mussten sie wieder viele Stunden ohne mich auskommen. Die Skiferien haben sie abermals allein verbracht und auch viele Stunden an den Wochenenden waren für das Schreiben des Buches verplant. Aber alle haben sehr viel Verständnis gezeigt und mich dabei unterstützt. Mittlerweile lötet auch mein jüngerer Sohn Nik Prototypen-Leiterplatten sauber zusammen.
Einen Dank möchte ich auch meinem Hardwarelieferanten aussprechen. Die Firma Boxtec (http://shop.boxtec.ch/) hat meine Arbeit am Buch mit Musterkomponenten und Vergünstigungen beim Hardwareeinkauf unterstützt. Lieber Christoph, herzlichen Dank dafür.
Ein weiterer Dank geht an die Arduino-Community. Ohne sie wäre dieses Buch nicht entstanden, niemand hätte originelle Lösungen und Lösungsansätze realisiert, die mich zu meinem Buch inspirierten. Viele nette und konstruktive E-Mails und Kommentare zum Buch haben mir Auftrieb für die 4. Auflage geben.
Natürlich möchte ich auch einen Dank an das Arduino-Core-Team aussprechen. Die Realisierung dieses Open-Source-Projekts ist eine Bereicherung für die Hardwaregemeinde. Die Idee einer Open-Source-Plattform, offener Hardware und kostenloser Entwicklungstools ist einfach großartig.
Zum Schluss möchte ich mich wiederum bei meiner Lektorin Sabine Schulz bedanken. Sie hat mir die nötige Zeit gegeben, um diese 4. Auflage mit vielen neuen Projekten zu schreiben.
Abbildung 1.1: Nik lötet eine Prototypen-Platine.