Buch lesen: «Mit Arduino die elektronische Welt entdecken»
Inhalt
Impressum
Grußwort zur vierten Auflage von Teo Swee Ann, CEO von Espressif
Einleitung
Arduino für alle
Der Layoutfehler, der Geschichte machte
Von den Segnungen des Copy&Paste – und seinen Beschränkungen
Wie ich mein Buch aufgebaut habe
Wie ich die Bastelprojekte gestaltet habe
Meine Website mit weiteren Arduino- und Elektronikthemen
Voraussetzungen
Benötigte Bauteile
Verhaltensregeln
Kapitel 1: Arduino: Die Hardware
Das Arduino-Uno-Board
Physikalische Größen
Kapitel 2: Arduino: Die Software
Arduino-IDE oder Arduino Create?
Was befindet sich wo?
Wir testen die Kommunikation zwischen Computer und Arduino
Die Bibliothekenverwaltung
Die Boardverwaltung
Der Sketch-Code in der Entwicklungsumgebung
Troubleshooting
Wie deine Idee in den Mikrocontroller kommt
Kapitel 3: Keine Angst vorm Programmieren – Coding Basics
Was ist ein Programm beziehungsweise ein Sketch?
Was sind Kontrollstrukturen?
Kapitel 4: Das Arduino-Discoveryboard
Das Arduino-Discoveryboard
Bastelprojekt 1: Hallo Welt – das Blinken einer LED
»Hallo Welt« wird geblinkt
Workshop zur blinkenden LED
Bastelprojekt 2: Arduino-Low-Level-Programmierung
Die Zugänge des Mikrocontrollers
Die Programmierung eines Ports
Register und C++-Befehle
Der Pullup-Widerstand
Bastelprojekt 3: Einen Taster sicher abfragen
Die Manipulation interner Pullup-Widerstände
Bastelprojekt 4: Blinken mit Intervallsteuerung
Drücke den Taster – und er reagiert
Bastelprojekt 5: Der störrische Taster
Ich wurde geprellt!
Bastelprojekt 6: Ein Lauflicht
Immer der Reihe nach
Register direkt beeinflussen
Die Bit-Manipulation
Der Lauflicht-Workshop
Bastelprojekt 7: Die Port-Erweiterung
Eine digitale Port-Erweiterung
Ein konventionelles Schieberegister
Ein einfacher Binärzähler
Bastelprojekt 8: Die Port-Erweiterung 2.0
Digitale Porterweiterung 2.0
Der Bit-Manipulations-Workshop
Platinenbau-Workshop
Bastelprojekt 9: Die Erstellung einer Arduino-Bibliothek
Bibliotheken verstehen und nutzen
Die Schieberegister-Library
Wo gibt es viele interessante Libraries?
Bastelprojekt 10: Eine Ampelschaltung
Die Ampelphasen
Eine interaktive Ampelschaltung
Workshop zur Ampelschaltung
Bastelprojekt 11: Der elektronische Würfel
Wie wird ein Würfel simuliert?
Der elektronische Würfel auf Platine – ein Blick in die Zukunft
Workshop zum elektronischen Würfel
Bastelprojekt 12: Der LED-Ring
Acht LEDs in einem Ring
Roulette-Workshop
Bastelprojekt 13: Der Lichtsensor
Ein veränderlicher Widerstand
Wir werden kommunikativ mit Processing
Workshop zum Lichtsensor
Bastelprojekt 14: Der Richtungsdetektor
Vom Arduino zu Processing
Grafikausgabe mit Processing
Workshop zum Richtungsdetektor
Bastelprojekt 15: Die Ansteuerung eines Servos
Was ist ein Servo?
Potentiometer – ein veränderlicher Widerstand
Bastelprojekt 16: Das Tischsonar
Der Ultraschallsensor
Der Ultraschallsensor mit dem Arduino
Der Datenempfang und die Visualisierung mit Processing
Workshop zum Tischsonar
Bastelprojekt 17: Die Siebensegmentanzeige
Die Siebensegmentanzeige genau erklärt
Workshop zur Siebensegmentanzeige
Bastelprojekt 18: Die Siebensegmentanzeige – Teil 2: Mir gehen die Pins aus
Das Problem mit mehreren Ziffern
Zwei Schieberegister
Das Multiplexing
Bastelprojekt 19: Die Temperatur messen mit Thermistoren
Heiß oder kalt oder was?
Bastelprojekt 20: Der Reaktionstester
Wie misst man Reaktionsfähigkeit?
Die Tab-Registerkarte in der Arduino IDE
Workshop zum Reaktionstester
Bastelprojekt 21: Ein Keypad am Arduino
Wie funktioniert ein Keypad?
Bastelprojekt 22: Ein Keypad als Arduino-Shield
Noch ein Keypad?
Ein kleines Zahlenratespiel
Workshop zum Keypad
Bastelprojekt 23: Das LC-Display
Eine alphanumerische Anzeige
Das Zahlenratespiel reloaded
Eigene Zeichen definieren
Ein LC-Display mit mehr Zeilen
Workshop zum LC-Display
Bastelprojekt 24: Die I²C-Kommunikation
Was bedeutet I²C?
Wir programmieren einen EEPROM-Monitor
Workshop zum EEPROM
Bastelprojekt 25: Port-Erweiterung über die I²C-Schnittstelle
Der Port-Expander MCP23017
Bastelprojekt: Beim Port-Expander MCP23017 die Ausgänge ansteuern
Bastelprojekt: Beim Port-Expander MCP23017 die Eingänge abfragen
Bastelprojekt 26: Schritt für Schritt zum Schrittmotor
Noch mehr Bewegung
Ein eigenes Motor-Shield basteln
Einen eigenen Sketch-Code programmieren
Bastelprojekt 27: Der ArduBot und seine Motorsteuerung
Wir werden mobil
Bastelprojekt 28: Der autonome ArduBot
Wir werden autonom
Bastelprojekt 29: Eine Lüftersteuerung
Einen Ventilator sinnvoll steuern
Workshop zum Lüfter
Bastelprojekt 30: Sound und mehr
Hast du Töne
Das Farben-Sequenz-Spiel
Workshop zum Farben-Sequenz-Spiel
Bastelprojekt 31: Data Monitoring
Datenerfassung und Visualisierung
Workshop zur Visualisierung
Bastelprojekt 32: Der Arduino-Talker – Wir programmieren ein Übertragungsprotokoll
Wir sprechen mit dem Arduino
Bastelprojekt 33: Die drahtlose Kommunikation über Bluetooth
Was ist Funkkommunikation?
Das Bluetooth-Modul HC-06
Workshop zu Bluetooth
Bastelprojekt 34: Netzwerkkommunikation
Was ist ein Netzwerk?
Workshop zur Netzwerkkommunikation
Bastelprojekt 35: Das ESP32-Board
Den ESP32 kennenlernen
Blinken mit dem ESP32
Das ESP32-Board D1 R32
Bastelprojekt: Der Temperatur-Logger
Workshop zum Temperatur-Logger
Bastelprojekt 36: Die Digital-Analog-Wandlung
Das R2R-Netzwerk
Bastelprojekt: Wir schalten die Bits
Bastelprojekt mit dem PCF8591P
Analyse des I²C-Datenstroms
Bastelprojekt 37: Arduino mit einer Blocksprache programmieren
S4A – Scratch for Arduino
ArduBlock – Arduino mit Block
Das Open Roberta Lab
Node-RED – Blocksprache fürs IoT
Bastelprojekt 38: Eine Interrupt-Steuerung
Was verstehen wir unter einem Interrupt?
Die Timer des Arduino Uno
Bastelprojekt 39: Das fliegende TFT-Display
Die Ansteuerung eines OLED
Das Kompassmodul CMPS11
Bastelprojekt 40: Build your own Arduino
Wie findet ein Sketch den Weg in den ATMega328?
Die Programmierung mit PlatformIO
Bastelprojekt Bootloader Burner als Mini-Shield
Bastelprojekt 41: Arduino meets Raspberry Pi
Wir erwecken den Arduino unter dem Raspberry Pi zum Leben
Bastelprojekt: Servomotoren mit einem Schieberegler steuern
Bastelprojekt 42: Der ArduTrak
Der ArduTrak und seine Tastatur
Workshop zum ArduTrak
Bastelprojekt 43: Mit Node-RED fürs Internet der Dinge programmieren
Wie Node-RED arbeitet
Bastelprojekt mit dem Temperatur- und Feuchtigkeitssensor DHT11
Bastelprojekt 44: Bluetooth und das Android-Smartphone
Smartphone App mit dem App-Inventor
Bastelprojekt 45: MQTT
M2M-Kommunikation mit MQTT
Bastelprojekt 46: LoRa und LoRaWAN
LoRa-Grundlagen
Zwei LoRa-Nodes kommunizieren miteinander
Das The Things Network (TTN)
Bastelprojekt: Der Temperatursensor DHT11 sendet ins TTN
Workshop zum LoRa-Bastelprojekt
Bastelprojekt 47: Eine Leiterplatine mit KiCad erstellen
KiCad kennenlernen
Günstige PCB-Herstellung
Bastelprojekt 48: Einen MIDI-Controller bauen
Die Digital Audio Workstation
Einige Grundlagen
Workshop zum MIDI-Controller
Mit Arduino die elektronische Welt entdecken
Erik Bartmann
Impressum
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:
Bombini Verlags GmbH
Kaiserstraße 235
53113 Bonn
E-Mail: service@bombini-verlag.de
Copyright:
© 2021 by Bombini Verlag
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.
Umschlaggestaltung: Michael Oreal, Köln (www.oreal.de) electronic publication: III-satz, Husby, www.drei-satz.de
ISBN 978-3-946496-29-8
Grußwort zur vierten Auflage von Teo Swee Ann, CEO von Espressif
Dear Erik,
In 2016, I came across a book of yours, which was about ESP8266, a microcontroller that my company Espressif had developed and released two years earlier. It was the first book ever written about ESP8266. Although I do not speak German and, therefore, I could not read it, I still understood the basic statements you made about ESP8266, as I was going through your text. Your beautiful and numerous illustrations helped me guess the accompanying text. Most importantly, I liked that you promoted the ESP8266 microcontroller as a tool for the Maker movement in as early as 2016. In any case, your assessment back then has been proved correct: Today, in every Maker workshop, no matter where in the world, one can find an ESP8266 or its successor, ESP32, alongside an Arduino and a Raspberry Pi board.
As I learned later, you had also written an extensive book about Arduino. Since its first edition in 2011, this 1,000-page book has been published in three editions already, and has become a reference book about Arduino in German. In this book, not only you do describe the functionality of the Arduino hardware and software, but you also cover the entire Maker catalogue of relevant topics. You explain the basics about electronics in detail and in an easy-to-understand way, you give an introduction to programming, and you show in numerous projects what great things can be developed with the Arduino platform.
In addition, you let the Maker think outside the box, discussing cutting-edge ideas that push the Arduino hobbyist’s creativity further. You have included MQTT, Node-RED, and LoRa-related topics, among many others that can help every Maker develop truly awesome and even complicated projects on their own. I am pleased to see that you have also covered ESP32 with its own project in your book.
I wish you much success for the fourth edition of your Arduino book.
Teo Sween Ann
Einleitung
Arduino für alle
Als ich mein erstes Buch über Arduino schrieb, gab es zwei oder drei Händler in Deutschland, über die man das Arduino-Board beziehen konnte, und ungefähr 800 Videos wurden bei YouTube aufgelistet, wenn man das Suchwort Arduino eingab. Für Elektronikprofis war dieser Mikrocontroller kaum ein Thema und wenn, dann belächelten sie eher seine Leistungsfähigkeit.
Die Arduino-Entwickler, die sich 2005 in der italienischen Kunst-Uni Ivrea ans Werk machten, einen leicht zu programmierenden Mikrocontroller zu entwerfen, hatten nicht den Elektronikprofi im Visier, sondern den Kunststudenten mit wenig Programmier- und Hardwarekenntnissen. Ihr Fokus lag dabei auf dem schnellen Realisieren von Ideen, dem Prototyping: eine künstlerische Idee, die der Student ohne Unterstützung von Ingenieuren und Programmierern selbst realisieren konnte.
Der Layoutfehler, der Geschichte machte
Die Arduino-Macher, allesamt keine Hardwarespezialisten, stellten den ersten Arduino-Mikrocontroller, den Arduino Uno, unter eine freie Hardwarelizenz, wobei sie die Erfahrungen der Open-Source-Bewegung auf die Hardwarewelt übertrugen. Sie legten die Schaltpläne offen, so dass jedermann frei darin war, das Board nach- oder umzubauen. Und die Arduino-Programmierumgebung – oder auch IDE genannt (Integrated Development Environment) – stellten sie ebenfalls unter eine Open-Source-Lizenz, jeder konnte die Software frei nutzen.
Bald schon wurde das Arduino-Board nicht nur von Studenten der italienischen Uni genutzt, sondern entwickelte sich zu einer praktischen Prototyping-Plattform, erst für Elektronik-Nerds, dann für Hobbyisten auf der ganzen Welt. Wesentlich beigetragen zur erfolgreichen Verbreitung dieser Plattform hat das Internet, das es ermöglichte, Schaltungen und dazugehörige Softwareprogramme leicht zu verbreiten – und Dank der freien Lizenz – auch nutzbar für alle zu machen. Ein riesiger weltweiter Pool von Ideen entstand, entwickelt von Hobbyisten, die stolz einer weltweiten Community ihre Projekte vorstellten. Projektideen wurden von irgendjemandem auf der Welt übernommen, vielleicht sogar verbessert und wieder ins Netz gestellt.
In den Folgejahren entwickelten sich der Arduino und seine Entwicklungsumgebung zu einem Quasistandard in der weltweiten Bastlerwelt. Eine neue, leicht zugängliche Plattform für E-Bastler war entstanden. Das blieb auch nicht den großen Hardwareproduzenten verborgen, die registriert hatten, dass zunehmend der Arduino für alle möglichen Steuerungs- und Messaufgaben eingesetzt wurde. Um die Möglichkeiten des Arduino-Boards zu erweitern, wurden Ergänzungsplatinen, die genau auf den Arduino Uno passten, sogenannte Shields, entwickelt.
Spätestens zu dem Zeitpunkt, als einer der größten Produzenten von Hardware seine Entwicklungsabteilung anwies, zukünftig das Layout des Arduino-Boards als Basis für ihre Hardware anzusehen, war klar, dass der Arduino aus der Technikwelt nicht mehr wegzudenken war. Kleine Anekdote am Rande: Wie schon gesagt, die Arduino-Entwickler waren zu Beginn noch keine Hardwarespezialisten, so dass sie leider einen Layoutfehler in das Arduino-Uno-Board einbauten. Um kompatibel mit dem Quasistandard zu bleiben, übernahm der namhafte weltweite Hersteller brav diesen Layoutfehler. Bis heute.
Von den Segnungen des Copy&Paste – und seinen Beschränkungen
Als ich mein erstes Arduino-Buch plante, fragte ich mich, was ein Bastler vor allem braucht, um mit dem Arduino eigene Projekte zu realisieren. Es war ja schon zu diesem Zeitpunkt möglich, sich über das Internet und über die gerade entstehenden Arduino-Communities und -foren lauffähige Programme zu besorgen, sie auf den eigenen Arduino hochzuladen und schon lief das Projekt auch in heimischer Umgebung, vielleicht noch versehen mit ein paar gezielten Eingriffen in den Code. Musste zusätzliche Hardware verbaut werden, orientierte man sich beim Nachbau an der Schaltung.
Was also sollte ein Buch über den Arduino noch enthalten außer der Beschreibung des Boards und der Entwicklungsumgebung und wie man die Programme vom PC auf den Mikrocontroller bekommt? Was passiert, wenn man eine Schaltung nachgebaut hat und sie dann erweitern möchte? Um einen guten konzeptionellen Ansatz für mein Buch zu finden, fragte ich mich, was mir am meisten dabei geholfen hat, eigene Elektronikprojekte zu bauen. Die Antwort war simpel und ernüchternd: Mir haben meine Grundkenntnisse in Elektrotechnik dabei geholfen, aus Ideen funktionierende Technikprojekte zu machen.
Ich finde es absolut beeindruckend, dass Menschen, die nichts mitbringen außer Bastellust, mit dem Arduino bereits nach einer halben Stunde eine Ampelschaltung auf dem Steckbrett betreiben können, ohne jemals zuvor einen Mikrocontroller in der Hand gehalten oder eine Zeile Code geschrieben zu haben. Es reicht dazu ein YouTube-Video und vielleicht noch eine Schritt-für-Schritt-Beschreibung, schon blinken die LEDs im gewünschten Ampelschaltungsrhythmus auf dem Schreibtisch zu Hause. Vielleicht hat man dann noch Spaß daran, den Rhythmus abzuändern, indem man im Code an der entsprechenden Stelle, die leicht zu finden ist, herumtüftelt – das war es dann aber auch schon. Um mehr daraus zu machen, braucht man ein paar Grundkenntnisse der Elektronik und der Elektrotechnik. Deshalb habe ich dieses Buch geschrieben.
Wie ich mein Buch aufgebaut habe
Zunächst finde ich wichtig, dir möglichst viel über die Hardware und Software von Arduino mitzuteilen, damit du die gesamte Klaviatur kennenlernst, auf der hier gespielt wird. In Kapitel 1, »Arduino: Die Hardware«, stelle ich dir ziemlich detailliert das Arduino-Board mit allen Bauteilen, der Stromversorgung und den Schnittstellen vor. Daneben gibt’s eine Auffrischung einiger physikalischer Grundbegriffe, die bei der Mikroelektronik eine Rolle spielen. Kannst du lesen, musst du aber nicht. In Kapitel 2, »Arduino: Die Software«, lernst du, das Board zu kontrollieren. Du erfährst, wie der Workflow zwischen PC oder Notebook und dem Arduino-Board abläuft und wie der Arduino-Code aufgebaut ist, um den Mikrocontroller steuern zu können.
In Kapitel 3, »Keine Angst vorm Programmieren – Coding Basics«, bekommst du eine geballte Packung Basic-Wissen übers Programmieren präsentiert. Auch dieses Kapitel geht wie die vorherigen Kapitel manchmal sehr in die Tiefe, aber im Zweifelsfall gilt auch hier: Kannst du lesen, musst du jetzt aber nicht. Ich empfehle dir, die ersten Kapitel als eine Art Referenzkapitel anzusehen, auf die du später im Buch – oder sogar später bei deinen eigenen Arduino-Bastelprojekten – zugreifen kannst, wenn du etwas genauer wissen möchtest.
In Kapitel 4, »Das Arduino-Discoveryboard«, stelle ich dir ein von mir entwickeltes Entwickler-Board vor. Ich habe auf einer Platine Standardelektronikbauteile verbaut, die bei den Arduino-Bastelprojekten ständig gebraucht werden. Die Bauteile habe ich auf der Platine fest verlötet, so dass ich nur noch den Arduino anschließen muss und die Projekte dann durchführen kann. Der Vorteil? Die lästige Wurschtelei auf dem Breadboard entfällt weitestgehend und der Schaltungsaufbau ist übersichtlicher. Du kannst das Arduino Discoveryboard nachbauen, dabei kannst du dich gleich im Löten üben.
Und dann geht es endlich los mit den Arduino-Bastelprojekten und deiner Bastelleidenschaft! Die Projekte fangen sehr leicht an, aber das ändert sich recht schnell, sie werden von Projekt zu Projekt komplexer. An den Stellen, an denen Grundlagenwissen notwendig ist, streue ich Texte ein, die das Bastelprojekt etwas theoretischer beleuchten. So wächst hoffentlich von Projekt zu Projekt auch dein Elektronikgrundwissen, so dass du schon bald in der Lage sein wirst, meine Projekte abzuändern oder sogar ganz eigene Bastelprojekte zu entwickeln.