Inhalt

Titelei

Impressum

Inhalt

1 Einführung

1.1 Maker ‒ die Erfinder von morgen

1.2 Was dich in diesem Buch erwartet

1.3 Wie dieses Buch aufgebaut ist

2 Willkommen in der Arduino-Welt!

2.1 Was ist überhaupt der Arduino?

2.2 Los geht’s! Installation der Arduino-Software

2.2.1 Die Arduino-Software downloaden

2.2.2 Den USB-Treiber unter Windows installieren

2.3 Die Entwicklungsumgebung starten und den ersten Sketch übertragen

3 Dein erster Schaltkreis

3.1 Schaltungsaufbau mit dem Breadboard (Steckbrett)

3.1.1 Aufbau

3.1.2 Versorgungsspannung

3.1.3 Einschränkungen

3.2 Vom Programm zur Schaltung: Hardwareentwicklung mit dem Arduino

3.3 Dein erster Stromkreis

3.4 „Es werde Licht!“ Eine LED zum Leuchten bringen

3.5 Jetzt nehmen wir Kontakt auf: Ein- und Ausgänge am Arduino

3.6 Wir tasten uns heran: Eine LED per Taster steuern (Teil 1)

3.7 Morsen mit dem Arduino: Eine LED per Taster steuern (Teil 2)

3.8 If-Abfragen erstellen: Eine LED per Taster steuern (Teil 3)

3.9 Ein Taster, zwei Wirkungen: Eine LED ein- und ausschalten

4 Der Schlüssel zum Verstehen aller Schaltungen

4.1 Der Schaltplan ‒ die abstrakte Essenz der Schaltung

4.2 Spannung, Strom, Widerstand ‒ das Dreigespann der Elektrotechnik

4.3 Bitte parallel in Reihen aufstellen! Das Gesetz der Reihenschaltung

4.4 Das Multimeter ‒ ein Multitalent für Strom, Spannung und Widerstand

4.5 Schaltplanentwicklung und -zeichnung mit Fritzing

4.5.1 Die Steckplatinen-Ansicht

4.5.2 Die Schaltplan-Ansicht

4.5.3 Die Platinen-Ansicht

4.5.4 Die Code-Ansicht

5 Eine Ampel mit Tag- und Nachtschaltung

5.1 Arduino-Ampel vs. reale Ampelsteuerung

5.2 Die Ampel zeigt grün für den Arduino: eine Tagschaltung programmieren

5.3 Nachts sind alle Ampeln gelb: eine Nachtschaltung programmieren

5.4 Ein Spannungsteiler in Aktion: Messdaten mit einem Analog-Digital-Wandler auslesen

6 Eine Weltzeituhr mit Alarmfunktion

6.1 Das LCD-Display HD44780 anschließen

6.2 Text auf dem Display darstellen

6.3 Strings oder Rechnen mit Wörtern: Der Arduino als Digitaluhr (Teil 1)

6.4 Was schlägt die Stunde? Der Arduino als Digitaluhr (Teil 2)

6.5 Bits und Bytes bis zum Überlaufen: Der Arduino als Digitaluhr (Teil 3)

6.6 Wie Funktionen funktionieren: Der Arduino als Digitaluhr (Teil 4)

6.7 Ein wenig Zeitrechnung muss sein: Der Arduino als Digitaluhr (Teil 5)

6.8 Der Arduino als Weltzeituhr (Teil 1)

6.9 Arrays ‒ die virtuellen Sortimentskästen: Der Arduino als Weltzeituhr (Teil 2)

6.10 New York, Rio, Tokyo: Der Arduino als Weltzeituhr (Teil 3)

6.11 Jetzt wird der Arduino laut: Weltzeituhr mit Alarmfunktion

7 Eine Mini-Wetterstation mit Analoganzeige

7.1 Der Temperatur- und Luftfeuchtigkeitssensor DHT11

7.2 Serielle Info für die Fehlersuche: Einsatz des seriellen Monitors

7.3 Jetzt kann das Wetter kommen! Aufbau der Wetterstation

7.4 Statusmeldungen des DHT11-Sensors ausgeben

7.5 Die case-Abfragetechnik: DHT11-Fehlercodes, Temperatur und Luftfeuchtigkeit ausgeben

7.6 Ein Statustaster gratis! Statusabfrage mit dem Reset-Taster des Arduino

7.7 Messuhr mit Stil: Analoge Temperaturanzeige

7.8 Die Bauteile für die Temperaturanzeige: Servo und Potentiometer

7.9 Das Potentiometer: Dateneingabe auf analoge Weise

7.10 Der Servo-Motor: Arme und Beine für den Arduino

7.11 Wir bauen ein Thermometer: Skala und Zeiger für die Temperaturanzeige

7.12 Das Thermometer ist fertig: Berechnung der Temperaturskala

7.13 Der Variablentyp float: Umrechnung der Temperatur in Winkelwerte

8 Eine temperaturgeregelte Lüftersteuerung

8.1 Jetzt kommt Bewegung ins Spiel: ein Gleichstrommotor als Lüfter

8.2 Ein Ventil für elektrischen Strom: der Transistor

8.3 Spannungsspitzen vermeiden: eine Diode zum Schutz des Arduino

8.4 Temperaturmessung mit dem TMP36-Sensor

8.5 Alles geregelt dank Arduino: Temperaturregelung und Lüfterschaltung verbinden

9 Exkurs: Internet der Dinge (IoT) mit dem Particle Photon

9.1 Particle Photon & Co.: Mikrocontroller von Particle.io

9.2 Déjà-vu für Arduino-Kenner: Die Parallelen zwischen Arduino und Particle Photon

9.3 Den Particle Photon einrichten und einen ersten Sketch übertragen

9.3.1 Ohne Particle-Account und Strom geht nichts

9.3.2 Ein Multifarbentalent: die Bedeutung der LED-Farben beim Particle Photon

9.3.3 Anmeldung per Smartphone: die Particle-App

9.3.4 Den ersten Sketch übertragen

10 Eine Pflanzenbewässerungsanlage: Kombination von Arduino und Particle Photon

10.1 Benötigte Bauteile

10.2 Aufbau und Programmierung der Pflanzenbewässerungsanlage

10.3 Steuerung der Pflanzenbewässerung übers Internet

11 Der Piezoeffekt: Wie du mit dem Sound von 1880 deinen Arduino rockst

11.1 Ohne Sound geht nichts: Tonerzeugung mit Piezo-Summer oder Lautsprecher

11.2 Do Re Mi Fa So La Ti: eine Tonleiter spielen

11.3 Auf das Timing kommt es an: die Tondauer festlegen

11.4 Melodiegenerator und Lautstärkeregler

11.5 Rechnen mit Tönen: ein Pitch-Regler kontrolliert die Tonhöhe

11.6 Auf und ab: eine Melodie in allen Tonarten erklingen lassen

12 Echt stark! Eine Verstärkerschaltung mit Transistor für den Arduino

12.1 Wir bauen einen Mini-Audioverstärker

12.2 Das Grundprinzip der Verstärkung: So funktioniert der Transistor

12.3 Stromspeicher und Wechselstrom-Ventil: So funktioniert der Kondensator

12.4 Der Kondensator schützt die Ein- und Ausgänge

13 Ein Sythesizer aus Arduino und Digital-Analog-Wandler

13.1 Von Zahlen zu Spannungen: der Digital-Analog-Wandler

13.2 Sag es mit 1 und 0: die Binärdarstellung mit dem Arduino

13.3 Mit PORTD die digitalen Pins kontrollieren

13.4 Auf die Klangfarbe kommt es an: Sinus-, Rechteck- und Dreieckschwingung

13.5 Der Arduino gibt den Takt vor: Änderung der Wellenform

13.6 Jetzt wird Sound draus: Änderung der Tonhöhe

14 Eine Arduino-Drum Machine

14.1 So wird der Arduino zur Drum Machine

14.2 Retro-Drum Sound mit 8 bit: Samples für die Drum Machine

14.3 Mehrdimensionale Arrays für die Programmierung der Drum Machine

15 Ein autonom fahrendes Roboterauto

15.1 Empfohlene Starthilfe: ein Roboter-Bausatz

15.2 Zusammenbau des Roboter-Bausatzes

15.2.1 Schritt 1: Einbau von Chassis und Motoren

15.2.2 Schritt 2: Installation des Motortreibers

15.2.3 Schritt 3: Einbau des Arduino und des Batteriegehäuses

15.2.4 Schritt 4: Vorbereitung des Ultraschall-Sensors

15.2.5 Schritt 5: Einbau des Arduino Uno und des Sensor Shields

15.2.6 Schritt 6: Einbau des Ultraschall-Sensors

15.3 Programmierung des Roboterautos

Hinderniserkennung

Entfernungsmessung

16 Bob, der humanoide Roboter

16.1 Humanoide Roboter für alle: das InMoov-Projekt

16.2 Wir bauen einen humanoiden Roboter (Teil 1): Organisation ist alles

16.3 Wir bauen einen humanoiden Roboter (Teil 2): 3D-Druck und Zusammenbau der Einzelteile

16.4 Wir bauen einen humanoiden Roboter (Teil 3): Typische Fehler und wie man sie am besten vermeidet

17 Alles, was du für deine Arduino-Projekte über Programmierung wissen musst

17.1 Grundstruktur von Arduino-Sketches

17.2 Einbinden von Libraries

17.3 Schreiben und Auslesen von Daten

17.4 Variablen

17.4.1 Int/Long-Variablen

17.4.2 String-Variablen

17.4.3 Float/Double-Variablen

17.4.4 Boolean-Variablen

17.4.5 Arrays

17.5 Serieller Monitor

17.6 Abfragen

17.6.1 If-Abfragen

17.6.2 Case-Abfragen

17.7 Schleifen

17.7.1 For-Schleifen

17.7.2 Do while-Schleifen

17.8 Definition eigener Funktionen und Prozeduren

17.9 Systemvariablen und Funktionen

17.9.1 millis()

17.9.2 PORTD

17.9.3 tone(Frequenz)

17.9.4 sizeof(Variable)

17.9.5 delay(T) und delayMicroseconds(t)

18 Alles, was du für deine Arduino-Projekte über Hardware wissen musst

18.1 Schaltplan

18.2 Ohmsches Gesetz

18.3 Widerstand

18.4 Leuchtdiode (LED)

18.5 Potentiometer

18.6 Schalter und Taster

18.7 Fotowiderstand (LDR)

18.8 LCD-Display

18.9 Piezo-Töner

18.10 Temperatur- und Luftfeuchtigkeitssensor DHT11

18.11 Servo-Motor

18.12 DC-Motor

18.13 Diode

18.14 Transistor

18.15 Kondensator

19 Ausblick: Noch mehr Mikrocontroller und Projektideen

19.1 Weitere Arduino-Boards

19.2 Weitere Mikrocontroller-Plattformen

19.3 Löten und Platinenbau

19.4 Ausblick: Musik-Projekte (Audio und Midi)

19.5 Ausblick: Messen und Steuern im Haus (Smart Home)

19.6 Ausblick: Roboterbau und -programmierung

19.7 Vernetze dich! Projektideen teilen

Robert Jänisch
Jörn Donges

Mach was mit Arduino!

Einsteigen und durchstarten mit Drum Machine, Roboterauto und Co.

Die Autoren:

Robert Jänisch, Köln
Jörn Donges,Hamburg

Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.

Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb 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.

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.

Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.

Lektorat: Julia Stepp
Herstellung: Cornelia Rothenaicher
Herstellung: Vorname Name
Umschlagrealisation: Stephan Rönigk
Titelillustration: © Ryan McGuire (http:// gratisography.com/#objects)
Satz: Kösel Media GmbH, Krugzell
Druck und Bindung: CPI books GmbH, Ulm
Printed in Germany

Print-ISBN  978-3-446-45128-5
E-Book ISBN  978-3-446-45128-5

Verwendete Schriften: SourceSansPro und SourceCodePro (Lizenz)
CSS-Version: 1.0

Font License Zurück zum Impressum

Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

1Einführung

Im Zuge der Initiative „Start Coding“ (http://start-coding.de) ließ Ranga Yogeshwar folgenden Satz fallen: „Programmieren ist die Sprache des 21. Jahrhunderts.“ Was genau möchte er uns damit sagen? Er möchte zum Ausdruck bringen, dass die Fähigkeit des Programmierens in unserer vernetzten und digitalen Welt immer wichtiger wird. Wenn wir davon ausgehen, dass Softwareentwickelung eine immer größere Bedeutung gewinnt, dann ist die Verbindung von Software und Hardware die Königsdisziplin.

Um genau diese Verbindung von Software und Hardware wird es in diesem Buch gehen, denn Arduino ist eine aus Soft- und Hardware bestehende Physical-Computing-Plattform. Die hier entwickelten Projekte werden nicht auf deinem Computerbildschirm enden, sondern in der realen Welt erlebbar werden. Wir werden Objekte bauen, die mit deinem Umfeld interagieren können. Das können Gegenstände aus dem alltäglichen Leben, wie z. B. ein Wecker, sein. Das können aber auch solch futuristische Dinge wie ein humanoider Roboter oder eine vollautomatisierte Pflanzenbewässerungsanlage sein. Hast du Lust, zusammen mit uns zum Erfinder zu werden?

1.1 Maker ‒ die Erfinder von morgen

Vielleicht fragst du dich, was dieses Buch mit Erfindungen zu tun hat. Alle großen Erfindungen fingen mit einer kleinen Idee und großer Leidenschaft an. Einige von ihnen haben die Welt grundlegend verändert. Wusstest du, dass viele große Erfindungen gar nicht im Labor eines Unternehmens, sondern durch Menschen wie dich und mich gemacht wurden? Gary Fisher hat zum Beispiel das Mountain Bike erfunden. Ottomar von Mayenburg hat 1907 auf einem Dachboden die Zahnpasta erfunden. Es gibt hunderte von Beispielen faszinierender Dachboden- und Garagen-Erfindungen. Der Zeitungsartikel „50 deutschen Erfindungen, die die Welt veränderten“1 gibt dir einen Vorgeschmack. Leider scheinen wir in Deutschland vergessen zu haben, wer der Hauptdarsteller einer Erfindung ist. Du bist es! Erfindungen sind kein Hexenwerk. Du benötigst aber einige Grundlagen, um als Erfinder durchstarten zu können.

Dieses Buch liefert dir das nötige Wissen und die erforderlichen Werkzeuge, um dir das Erfinden und Herstellen von Dingen zu ermöglichen. Das kann eine twitternde Topfpflanze oder ein intelligentes Türschloss sein. Die einzige Grenze ist deine Vorstellungskraft.

Nun fragst du dich sicherlich: Was braucht der Erfinder von morgen? Er benötigt:

Neueste Technologie und frisches Wissen sind das Alphabet des 21. Jahrhunderts. Wenn du neue Technologien beherrschst, konsumierst du Produkte und Services nicht einfach nur, sondern gestaltest deine Welt selbstbestimmt. Du kannst zum Beispiel

Wäre es nicht aufregend, solche Dinge zu bauen und mit der physikalischen Welt interagieren zu lassen? Stell dir vor, was du mit deinen Ideen alles verändern könntest.

Mit diesem Buch möchten wir dich auf deinem Weg zum Erfinder von morgen begleiten. Du wirst erfahren, wie du durch den Einsatz neuester Technologien und deiner Innovationskraft die Welt verändern kannst.

Auf Basis spannender Arduino-Projekte wirst du neue Technologien entdecken, kennenlernen und ausprobieren. Mit dem erworbenen Wissen wirst du in der Lage sein, deine eigenen Projekte zu verwirklichen und diese mit der Maker-Community zu teilen.

„Was ist denn ein Maker?“ fragst du dich nun vielleicht. Maker ist eigentlich nur ein modernes Wort für Erfinder. Früher war es deutlich schwerer, auf gleichgesinnte Erfinder zu treffen. Beflügelt durch das Internet, Maker Faires (Messen) und FabLabs (offene Werkstätten) ist in der Zwischenzeit jedoch eine sehr lebhafte Maker-Community entstanden.

Im Zuge der Digitalisierung wird auch Hobbybastlern der Zugang zu High Tech ermöglicht. Der Maker von heute kann programmieren, löten und kennt sich mit Hardware-Plattformen wie dem Arduino aus. Dennoch ist der Weg zum „smarten“ Maker ein langer und nur wenige schaffen es, diesen erfolgreich zu meistern.

Die Maker-Community ist eine bunt gemischte Truppe. Manche bringen viele Vorkenntnisse mit, andere gar keine. Eines haben sie aber alle gemeinsam: Sie haben eine Idee und wollen diese umsetzen. Diese überproportionale Begeisterung für eine Sache macht den reinen Konsumenten zum Maker, der seine eigenen Produkte und Services bauen möchte. Um den Schritt von der „Zero“ zum „Hero“ zu meistern, müssen zwei wichtige Kriterien erfüllt sein:

Beide Kriterien sind in Deutschland noch nicht zur vollsten Zufriedenheit erfüllt, doch die stetig wachsende Maker-Community mit ihren FabLabs und Maker Spaces ist auf einem guten Weg.

Der Wunsch, Dinge zu verbessern, neue Technologien zu nutzen und Wissen mit anderen zu teilen, macht den Maker zum „smarten“ Maker. Um ein „smarter“ Maker zu werden, musst du dich mit anderen Makern austauschen und vernetzen, das heißt, du musst Zugang zu deren Expertise bekommen.

In den FabLabs und digitalen Communities entstehen neue Erfindungen und Innovationen. Wissen wird ausgetauscht und konzentriert sich. Einige dieser Erfindungen finden auch außerhalb der Maker-Community starken Zuspruch. Durch erfolgreiche Crowdfunding-Kampagnen wird ein Zugang zum Markt geschaffen. So kann das Fundament zu einem wirtschaftlichen Unternehmen gelegt werden. Auch wenn nur die Erfindungen einiger mutiger und smarter Maker es auf dieses Level schaffen, so kann die Auswirkung dennoch gigantisch sein. Der italienische Physiker und Elektroningenieur Guglielmo Marconi2 wurde auf diesem Wege zum Pionier der drahtlosen Telekommunikation.

Wir hoffen, dass dieses Buch dich dabei unterstützen wird, ein „smarter“ Maker zu werden.

1.2 Was dich in diesem Buch erwartet

Auf Basis des Arduino werden wir in diesem Buch die spannende Welt der Mikrocontroller erkunden. Du benötigst dafür keine besonderen Vorkenntnisse. Es reicht, wenn du Interesse an der Mikrocontrollertechnik mitbringst, und Spaß am Aufbau von Schaltungen sowie der Entwicklung von Programmen hast. Aber sonst wärst du ja wahrscheinlich nicht hier, oder?

In elf spannenden Projekten lernst du alles, was du über Programmierung und Hardware wissen musst, um deine eigenen Ideen mit dem vielseitigen Mikrocontroller-Board zu verwirklichen. Wir haben Wert darauf gelegt, dass du keine graue Theorie pauken musst, sondern gleich mit dem Aufbau von nützlichen Geräten loslegen und wertvolle Praxiserfahrung erwerben kannst.

Nachdem du die Beispiele in diesem Buch aufgebaut und nachprogrammiert hast, wirst du genug über die Arduino-Plattform wissen, um deine eigenen Schaltungsideen planen und umsetzen zu können. Mit diesem Buch im Regal wirst du über den Werkzeugkasten verfügen, den du benötigst, um deiner Kreativität freien Lauf zu lassen. Sicherlich werden dir schon beim Nachbauen der Projekte Ideen kommen, wie man diese erweitern und verändern kann. Fühle dich stets frei, dies zu tun! Die Arduino-Plattform ist genau dafür gemacht. Sie soll Raum zum Experimentieren und Ausprobieren geben, und dich in die Lage versetzen, ohne theoretischen Ballast zur Umsetzung zu gelangen. Im Fachjargon sagt man dazu „Rapid Prototyping“. Das heißt so viel wie „eine Idee schnell mal ausprobieren“. Es wird dann rasch klar, ob die Idee funktioniert, und an welchen Stellen sie noch erweitert oder verbessert werden muss. So kannst du deine Projekte Schritt für Schritt immer weiter optimieren. Und wer weiß, vielleicht treffen wir uns dann irgendwann auf einer Erfindermesse wieder?

1.3 Wie dieses Buch aufgebaut ist

Wenn du noch keine Erfahrung mit dem Arduino hast, dann solltest du die Kapitel nacheinander durcharbeiten, denn sie bauen aufeinander auf. Neue Dinge werden wir immer dann erklären, wenn sie zum ersten Mal auftreten. Daher nimmt der Schwierigkeitsgrad der Projekte im Verlauf des Buches zu.

Solltest du ein Theoriefan sein, kannst du auch zu Beginn auch erst einmal zu Kapitel 17 und 18 springen. Dort findest du die wichtigsten Programmier- und Hardwarekenntnisse, die in die diesem Buch vermittelt werden, in der Zusammenfassung.

Bevor wir die ersten Arduino-Projekte realisieren, erhältst du in den Kapiteln 2 bis 4 erst einmal die wichtigsten Grundlagen für deine Arbeit mit dem Arduino. Dazu zählen u. a. die Installation der Entwicklungsumgebung sowie das Lesen von elektronischen Schaltungen. Auch hier werden wir bereits mit zahlreichen Beispielen arbeiten.

Anschließend stürzen wir uns direkt in die Praxis. In Kapitel 5 bauen wir eine Arduino-gesteuerte Ampelschaltung. Du wirst überrascht sein, wie schnell das geht. Danach bauen wir einige nützliche Geräte, die dich im Alltag unterstützen. In Kapitel 6 lernst du, wie man eine Weltzeituhr mit Alarmfunktion baut. In Kapitel 7 entwickeln wir eine Mini-Wetterstation mit Analoganzeige. In Kapitel 8 realisieren wir eine temperaturgeregelte Lüftersteuerung.

Wenn Du dich nun fragst, wie du eine ganz individuelle Smart Home-Lösung entwickeln kannst, sind die nächsten beiden Kapitel etwas für dich. In Kapitel 9 erklären wir dir, wie du mit dem Particle Photon, einer Arduino-ähnlichen Hardware-Plattform, mit dem Internet vernetzte Schaltungen entwickeln kannst. Diese nutzen wir in Kapitel 10, um eine automatische Pflanzenbewässerungsanlage zu bauen.

Ein weiteres faszinierendes Gebiet ist die Tonerzeugung mit dem Arduino. In den Kapiteln 11 bis 14 unternehmen wir einen Ausflug in die Welt der Synthesizer und gesampelten Sounds. Dabei lernst du wichtige Hardware-Konzepte wie die Digital-Analog-Wandlung kennen. Im letzten und anspruchsvollsten Sound-Projekt werden wir eine echte Drum Machine bauen (Kapitel 14).

In Kapitel 15 und 16 lernst du die aufregende Welt der Robotik kennen. Wir bauen ein autonom fahrendes Roboterauto und einen humanoiden Roboter.

Wie bereits erwähnt, erhältst du in Kapitel 17 und 18 noch einmal eine Zusammenfassung der wichtigsten Programmier- und Hardwarekenntnisse, die in die diesem Buch vermittelt werden. Diese Kapitel kannst du jederzeit nutzen, um eine bestimmte Sache nachzuschlagen oder dein Wissen aufzufrischen.

Das Buch schließt mit einem Ausblick auf andere Mikrocontroller-Boards sowie spannende Projektideen, die du darüber hinaus noch realisieren kannst.

Die Sketches sämtlicher Projekte aus diesem Buch findest du unter www.deskfactory.de/mach-was-mit-arduino. Dort berichten wir auch über neue Projekte und bieten dir Platz für Fragen und Austausch.

So, und nun wünschen wir dir viel Vergnügen bei der Lektüre dieses Buches! Wir hoffen, dass du genauso viel Spaß beim Umsetzen der Projekte hast wie wir.

Köln/Hamburg, März 2017

Robert Jänisch

Jörn Donges

Fussnoten

1 https://www.welt.de/wirtschaft/karriere/leadership/gallery12202607/50-Erfindungen-die-die-Welt-veraenderten.html

2 Hier erfährt du mehr über Guglielmo Marconi: https://www.youtube.com/watch?v=v8qXtu0-__k

2Willkommen in der Arduino-Welt!

Wenn man vom Arduino spricht, ist meistens die Hardware, also die Platine mit dem Mikrocontroller, gemeint. Zusätzlich zur Hardware wird auch eine Softwareumgebung ausgeliefert, mit der du Programme für den Arduino schreiben kannst. Bevor wir uns in den folgenden Kapiteln in die Praxis stürzen, erhältst du an dieser Stelle erst einmal einen kompakten Schnelleinstieg in die Arduino-Welt.

Wir vermitteln dir die wichtigsten Grundlagen zur Arduino-Hardware und zeigen dir, wie du die dazugehörige Software auf deinem Rechner installierst. Außerdem lernst du, wie du in der Software, auch Entwicklungsumgebung genannt, verschiedene Einstellungen vornehmen kannst, um deinen Arduino zu konfigurieren. Sind alle Einstellungen korrekt gewählt, wird es ein Leichtes für dich sein, ein Programm an die Arduino-Hardware zu übertragen. Am Ende des Kapitels wirst du in der Lage sein, Programme auf deinem Arduino auszuführen.

2.1 Was ist überhaupt der Arduino?

Bei der Arduino-Plattform handelt es sich um eine komplette Experimentier- und Entwicklungsumgebung für die beliebten und weit verbreiteten Mikrocontroller der Firma Atmel. 2016 wurde die Firma Atmel von der Firma Microchip gekauft. Der Mikrocontroller-Chip ist zwar das Hirn und die Schaltzentrale eines jeden Projekts, aber um ihn zum Leben zu erwecken, braucht es noch ein wenig mehr. Der Chip muss mit Strom versorgt werden, und es muss eine Möglichkeit geben, Programme und Daten darauf zu schreiben. Natürlich benötigt man auch noch weitere Ein- und Ausgänge, um zum Beispiel Sensoren auszulesen oder einen Motor bzw. ein Display anzusteuern.

All diese Grundfunktionen stellt die Arduino-Plattform bereit. Sie bettet den Atmel-Chip in eine Umgebung ein, in der alles Nötige schon vorhanden ist, sodass du sofort mit eigenen Ideen und Projekten loslegen kannst. Dazu gehört auch eine komplette Entwicklungsumgebung, mit der du am PC deine Programme entwickeln und dann auf das Board übertragen kannst.

Es werden verschiedene Boards von Arduino angeboten, die für ganz unterschiedliche Anwendungen geeignet sind. Zum Beispiel ist der Arduino Mega mit seinen 54 digitalen Ein- und Ausgabeports ein wahrer Kommunikationskünstler, während der winzige ArduPilot dazu gedacht ist, seinen Dienst in kleinen Modellfliegern zu verrichten. In diesem Buch werden wir das Standardmodell, den Arduino Uno, benutzen. Der Arduino Uno eignet sich am besten zum Einstieg und ist auch der am weitesten verbreitete Controller der Arduino-Familie. Du bekommst ihn für circa 25 Euro bei den einschlägigen Elektronikhändlern, wie etwa Conrad, Reichelt oder Flikto.

Bild 2.1 Das Arduino Uno-Board

2.2 Los geht’s! Installation der Arduino-Software

Im ersten Schritt werden wir die Arduino-Software herunterladen und installieren. Sie sorgt dafür, dass du deine Programme (oder Sketches, wie man beim Arduino sagt) auf dem PC oder Laptop entwickeln und dann übertragen kannst. Danach kannst du den Arduino schon für einen ersten Test in Betrieb nehmen. Hierfür ist noch kein weiterer Schaltungsaufbau nötig.

Für die folgenden Schritte brauchst du:

  • ein Arduino Uno- Board

  • ein USB-Anschlusskabel

  • das Arduino-Softwarepaket

2.2.1 Die Arduino-Software downloaden

Die Arduino-Entwicklungsumgebung und die dazugehörigen Treiber kannst du unter http://www.arduino.cc herunterladen. Unter Downloads findest du ein zip-Paket, in dem alles, was du brauchst, bereits zusammengestellt ist. Entpacke einfach die zip-Datei an eine beliebige Stelle auf deiner Festplatte. Die Entwicklungsumgebung muss nicht installiert werden, sondern wird einfach durch einen Doppelklick auf die Datei arduino.exe gestartet. Dies hat den Vorteil, dass du die Umgebung mit deinen Projektdaten auch mobil von einem USB-Stick aus einsetzen kannst. Du wirst deshalb also keine Probleme haben, dich mit anderen Makern auszutauschen und zusammen an Projekten zu arbeiten.

Die Datei arduino.exe startet die integrierte Entwicklungsumgebung (IDE). Hier werden die Programme erstellt, verwaltet und auf den Controller übertragen. Die IDE verwendet als Programmiersprache eine speziell angepasste Version der Sprache C, in die bereits umfangreiche Bibliotheken zur Ansteuerung des Controllers eingebunden sind. Das erleichtert den Einstieg in die Programmierung, da man sich erst einmal nicht näher mit den hardwarenahen Details beschäftigen muss. Der Atmel-Controller selbst versteht natürlich nur Maschinensprache, deshalb müssen die Programme zuerst von einem Compiler übersetzt werden.

2.2.2 Den USB-Treiber unter Windows installieren

Bevor du deinen ersten Sketch übertragen kannst, musst du jedoch erst einmal den USB-Treiber installieren. Wir beschreiben im Folgenden den Vorgang für Windows-Nutzer. Wenn du Linux einsetzt, findest du entsprechende Anleitungen in der Readme-Datei des Download-Pakets. Aktuelle Informationen zum Betrieb des Arduino unter den verschiedenen Linux-Distributionen stehen auch unter http://playground.arduino.cc/Learning/Linux.

  1. Verbinde den Arduino Uno über das USB-Kabel mit deinem Rechner und warte, bis Windows ein Unbekanntes Gerät erkennt (Bild 2.2).

  2. Öffne die Systemsteuerung im Startmenü und wähle dort den Bereich Geräte und Drucker aus.

  3. Öffne mit einem Rechtsklick auf das Icon Unbekanntes Gerät den Dialog Eigenschaften.

  4. Wähle den Reiter Hardware aus und klicke dort auf den Button Eigenschaften.

  5. Es öffnet sich ein weiterer Dialog. Wähle hier Einstellungen ändern aus.

  6. Klicke nun auf Treiber aktualisieren.

  7. Im nächsten Dialog wählst du Auf dem Computer nach Treibersoftware suchen aus.

  8. Klicke auf Weiter und dann auf Durchsuchen.

  9. Suche nun den Ort aus, an dem du das Arduino-Softwarepaket entpackt hast, und navigiere zum Unterordner driver.

  10. Klicke auf Weiter. Das System findet und installiert jetzt die richtigen Treiber.

Bild 2.2 Installation des Arduino-USB-Treibers unter Windows 7

2.3 Die Entwicklungsumgebung starten und den ersten Sketch übertragen

Bevor du den ersten Sketch auf den Arduino übertragen kannst, musst du noch einstellen, welches Board und welchen UBS-Anschluss du nutzt. Dies machst du wie folgt: Klicke auf Werkzeuge und wähle dort unter Board dein Arduino-Board aus. Als Nächstes suchst du unter WERKZEUGE > PORT den UBS-Port aus, an dem dein Arduino angeschlossen ist. Hier sollte eigentlich nur ein Port angezeigt werden.

Jetzt kannst du den ersten Sketch auf den Arduino übertragen. Starte dazu die integrierte Entwicklungsumgebung mit einem Doppelklick auf . Wähle DATEI > BEISPIELE > 01 BASICS > BLINK aus. Nun öffnet sich ein Fenster mit einem mitgelieferten Beispiel-Sketch.

Bild 2.4

Sobald der Arduino am Strom angeschlossen ist, leuchtet er.

Den ersten Sketch übertragen

RXTXTX(Transmit)RXReceiveL

delay(milliseconds);Bild 2.41000

An diesem Code-Beispiel kannst du auch den grundsätzlichen Aufbau eines Sketches erkennen. Es gibt zwei Hauptfunktionen, die immer wieder auftauchen werden:

Das Schlüsselwort void sagt dem C-Compiler, dass jetzt eine Funktion definiert wird, die keinen Wert zurückliefert. So etwas nennt man auch eine Prozedur, mit der eine bestimmte Tätigkeit ausgeführt wird.

setuploopsetuplooplooploop

In den Arduino-Projekten (Kapitel 5 bis 16) wirst du Schritt für Schritt mehr zur Programmierung erfahren. Solltest du dir einen strukturierten Überblick verschaffen wollen, findest du in Kapitel 17 alle Programmiergrundlagen in der Zusammenfassung.

Kapitel 3