TURN ON YOUR CREATIVITY DAS ARDUINO

HEUTE SCHON EXPERIMENTIERT? Egal ob Sie eine Haussteuerung oder eine LED-Leuchte mit Farbwechsel bauen möchten – mit Arduino™ gelingt es auch Querein...
Author: Gabriel Amsel
22 downloads 0 Views 10MB Size
HEUTE SCHON EXPERIMENTIERT?

Egal ob Sie eine Haussteuerung oder eine LED-Leuchte mit Farbwechsel bauen möchten – mit Arduino™ gelingt es auch Quereinsteigern, die ersten Programme zu schreiben und so die eigenen Ideen zu verwirklichen. Mit diesem Lernpaket entdecken Sie die Grundlagen der Elektronik und der Arduino™-Programmierung und erfahren Schritt für Schritt, wie Sie vorgehen müssen, um Ihre Ideen in die Praxis umzusetzen. DIE BAUTEILE IM ÜBERBLICK

1 Arduino-Board UNO 1 Steckboard 2 Taster 1 Fototransistor PT331C 1 NPN-Transistor BC548C 1 Silizium-Dioden 1N4148 1 Piezo-Schallwandler 1 LED rot 1 LED grün 2 LED gelb 3 Widerstand 1,5 kΩ 1 Widerstand 4,7 kΩ 1 Widerstand 47 kΩ 1 Widerstand 10 kΩ 1 Widerstand 68 kΩ 1 Trimmwiderstand 10 kΩ PT10 1 Kondensator 1 µF 1 Isolierter Schaltdraht ca. 1m

DIESE PROJEKTE FÜHREN SIE DURCH:

Programmieren mit Schleifen Zufallszahlen generieren Ein einfaches Game Stoppuhr Spannung messen LED-Dimmer Ein- und Ausschaltverzögerung Musik mit ArduinoTM Mikrocontroller-Kerzenlicht Ausgänge überwachen Schuluhr Lüftersteuerung Dämmerungsschalter Alarmanlage Codeschloss Spannungsplotter Speicheroszilloskop Temperaturschalter Romantic Light Zeitschaltuhr Melodien komponieren State Machine Kapazitätsmesser … und viele mehr

Für Kinder unter 14 Jahren nicht geeignet!

Außerdem benötigen Sie: USB-Anschlusskabel

ISBN 978-3-645-65327-5

Arduino™ ist ein eingetragenes Markenzeichen der Arduino S.r.l und der damit verbundenen Firmen. © 2016 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, D-85540 Haar, Germany Innovationen, Irrtümer und Druckfehler vorbehalten. 2016/01

TURN ON YOUR CREATIVITY

DAS

ARDUINO



Dieses Lernpaket bietet alles, was Sie für Ihren Einstieg in die Programmierung benötigen: original Arduino™-Uno-Platine, Steckboard, Bauteile sowie ein 300-seitiges Handbuch und Software. So gelingen Ihre Projekte, und Arduino™ erwacht zum Leben.

DAS

DAS

TURN ON YOUR CREATIVITY

ARDUINO™ LERNPAKET

65327-5 HB_U1+U4_Layout 1 13.10.15 13:26 Seite 1

ARDUINO



ULLI SOMMER TURN ON YOUR CREATIVITY

DAS

FRANZIS ARDUINO

TM

LERNPAKET ORIGINAL ARDUINO UNO UND 20 WEITERE BAUTEILE FÜR 70 PROJEKTE

65148 Arduino Lernpaket_03.indd 1

06.10.2015 16:30:11

2 Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Alle in diesem Buch vorgestellten Schaltungen und Programme wurden mit der größtmöglichen Sorgfalt entwickelt, geprüft und getestet. Trotzdem können Fehler im Buch und in der Software nicht vollständig ausgeschlossen werden. Verlag und Autor haften in Fällen des Vorsatzes oder der groben Fahrlässigkeit nach den gesetzlichen Bestimmungen. Im Übrigen haften Verlag und Autor nur nach dem Produkthaftungsgesetz wegen der Verletzung des Lebens, des Körpers oder der Gesundheit oder wegen der schuldhaften Verletzung wesentlicher Vertragspflichten. Der Schadensersatzanspruch für die Verletzung wesentlicher Vertragspflichten ist auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht ein Fall der zwingenden Haftung nach dem Produkthaftungsgesetz gegeben ist. Liebe Kunden! Dieses Produkt wurde in Übereinstimmung mit den geltenden europäischen Richtlinien hergestellt und trägt daher das CE-Zeichen. Der bestimmungsgemäße Gebrauch ist in der beiliegenden Anleitung beschrieben. Bei jeder anderen Nutzung oder Veränderung des Produktes sind allein Sie für die Einhaltung der geltenden Regeln verantwortlich. Bauen Sie die Schaltungen deshalb genau so auf, wie es in der Anleitung beschrieben wird. Das Produkt darf nur zusammen mit dieser Anleitung weitergegeben werden. Das Symbol der durchkreuzten Mülltonne bedeutet, dass dieses Produkt getrennt vom Hausmüll als Elektroschrott dem Recycling zugeführt werden muss. Wo Sie die nächstgelegene kostenlose Annahmestelle finden, sagt Ihnen Ihre kommunale Verwaltung. (c) 2016 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, 85540 Haar Lektorat: concepts4u, München Layout: bora-dtp, München art&design: www.ideehoch2.de Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt. Die meisten Produktbeschreibungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden. Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller. Arduino™ ist ein eingetragenes Markenzeichen der Arduino LLC und der damit verbundenen Firmen.

65148 Arduino Lernpaket_03.indd 2

06.10.2015 16:30:34

Inhalt

3

Inhalt Vorwort

1

7

Mikrocontroller-Grundlagen

13

1 2 3 4 5

12 12 13 14 17

Messen Steuern Regeln Aufbau und Funktionsweise Programmierung von Mikrocontrollern

2

Übersicht über die Arduino-Boards

21

1 2 3 4 5 6 7

22 23 25 27 29 30 31

3

Arduino-Shields

33

1 2 3 4 5

33 35 36 38 39

Arduino Mega Arduino UNO Arduino Leonardo Arduino Ethernet ArduPilot LilyPad USB-Adapter

Arduino Protoshield Ardumoto TellyMate XBee-Funkmodule Ethernet Shield

65148 Arduino Lernpaket_03.indd 3

06.10.2015 16:30:35

4

4

Franzis Arduino Lernpaket

Bauteile im Lernpaket

41

1 2 3

41 42

4 5 6 7

5

6

7

Alle Bauteile in der Übersicht Arduino UNO Anschlüsse und LEDs des Arduino-UNOExperimentierboards Stromversorgung Reset-Taster ISP-Anschluss Sicherheitshinweise

43 47 47 47 48

Die Bauteile und ihre Funktion

50

1 2 3 4 5 6 7 8 9

50 52 53 54 58 60 60 62 63

Schaltdraht Steckbrett Taster Widerstände Fototransistor Piezo-Schallwandler (Buzzer) Leuchtdioden Diode Transistoren

Die erste Inbetriebnahme des Arduinos

67

1 2 3

67 75 76

Installation unter Windows Installation unter MacOSX Installation unter Linux

Die Arduino-Programmierung

65148 Arduino Lernpaket_03.indd 4

79

06.10.2015 16:30:35

Inhalt

5

8

Ihr erstes eigenes Programm mit Arduino o

83

1

86

9

Arduino-Programmiergrundlagen

91

1 2 3 4

91 92 98

Was haben wir gemacht?

Bits und Bytes Aufbau eines Programms Ein weiteres Arduino-Programm Jetzt geht es los mit der ArduinoProgrammierung

10 Weitere Experimente mit Arduino 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

LED-Dimmer Soft-Blinker Taster entprellen Einfache Einschaltverzögerung Einfache Ausschaltverzögerung LEDs und Arduino Große Verbraucher schalten DAC mit PWM-Ports Mit Musik geht alles besser Romantisches Mikrocontroller-Kerzenlicht Überwachung des Personalausgangs Eine Uhr mit Arduino Schuluhrprogramm Lüftersteuerung Dämmerungsschalter Alarmanlage Codeschloss Kondensatormessgerät mit Autorange-Funktion

65148 Arduino Lernpaket_03.indd 5

100

187 188 192 198 204 206 208 212 216 223 228 231 234 237 242 249 253 256 261

06.10.2015 16:30:35

6

Franzis Arduino Lernpaket

19 20 21 22 23 24 25 26

Potenziometer und Trimmer professionell auslesen State Machine Ein 6-Kanal-Voltmeter mit Arduino Spannungs-Plotter selbst programmieren Das Arduino-Speicheroszilloskop StampPlot – der Profi-Datenlogger zum Nulltarif Steuern über VB.Net Temperaturschalter

265 298 273 276 280 285 288 291

11 Das Programm Fritzing

297

12 Das Programm Processing

299

13 Anhang

303

1 2 3

Elektrische Einheiten ASCII-Tabelle Bezugsquellen

303 304 310

Warnung! Augenschutz und LEDs: Blicken Sie nicht aus geringer Entfernung direkt in eine LED, denn ein direkter Blick kann Netzhautschäden verursachen! Dies gilt besonders für helle LEDs im klaren Gehäuse sowie in besonderem Maße für Power-LEDs. Bei weißen, blauen, violetten und ultravioletten LEDs gibt die scheinbare Helligkeit einen falschen Eindruck von der tatsächlichen Gefahr für Ihre Augen. Besondere Vorsicht ist bei der Verwendung von Sammellinsen geboten. Betreiben Sie die LEDs so wie in der Anleitung vorgesehen, nicht aber mit größeren Strömen.

65148 Arduino Lernpaket_03.indd 6

06.10.2015 16:30:35

Vorwort

7

Vorwort Bei vielen Mikrocontroller-Systemen muss man sich durch unzählige und für Anfänger schwer verständliche Datenblätter wühlen. Die Programmieroberflächen sind meist sehr kompliziert und für den Profi-Programmierer ausgelegt, der bereits jahrelange Erfahrung mit Mikrocontrollern besitzt. So wird der Zugang in die Welt der Mikrocontroller unnötig erschwert. Arduino hingegen ist eine leicht verständliche und schnell zu erlernende Open-Source-Plattform, basierend auf einem Mikrocontroller-Board mit einem Atmel-AVRController und einer einfach gehaltenen Programmierumgebung. Für die Interaktion zwischen Mensch und Mikrocontroller lassen sich diverse analoge und digitale Sensoren anschließen, die die Umwelt erfassen und die Daten an den Mikrocontroller weitergeben. Der Mikrocontroller verarbeitet die eingehenden Daten, und durch das Programm entstehen neue Ausgabedaten in analoger oder ditgitaler Form. Hierbei sind der Kreativität des Entwicklers keine Grenzen gesetzt. Egal, ob Sie eine Haussteuerung oder eine schöne LED-Leuchte mit Farbwechsel bauen möchten, mit Arduino gelingt es auch Quereinsteigern, die ersten funktionsfähigen Programme zu schreiben und so die eigenen Ideen zu verwirklichen.

65148 Arduino Lernpaket_03.indd 7

06.10.2015 16:30:35

8

Franzis Arduino Lernpaket

Das einfache Zusammenspiel aus Hard- und Software bildet die Basis für „Physical Computing“ – die Verbindung der realen Welt mit der des Mikrocontrollers, die aus Bits und Bytes besteht. Dieses Lernpaket vermittelt Ihnen die Grundlagen der Elektronik der Arduino-Programmierung und zeigt Ihnen auf verständliche Weise, wie Sie vorgehen müssen, um Ihre Ideen in die Praxis umzusetzen.

Ulli Sommer

CD zum Lernpaket Der Inhalt der CD.

Diesem Lernpaket liegt eine CD bei, die verschiedene Programme, Tools, Datenblätter und Beispiele enthält. Die CD erleichtert Ihnen das Arbeiten mit diesem Buch. Die hier abgedruckten Beispiele finden Sie natürlich auch auf der CD.

Inhalt der CD     

65148 Arduino Lernpaket_03.indd 8

Arduino-Entwicklungsumgebung (IDE) Beispiel-Programmcode Diverse Tools Datenblätter Schaltpläne

06.10.2015 16:30:36

9

Vorwort

GPL (General Public License) Sie können Ihre eigenen Programme mit anderen Anwendern über das Internet austauschen. Die Beispielprogramme stehen unter der Open-SourceLizenz GPL (General Public License) zur Verfügung. Daher sind Sie berechtigt, die Programme unter den Bedingungen der GPL zu modifizieren, zu veröffentlichen und anderen Anwendern zur Verfügung zu stellen, sofern Sie Ihre eigenen Programme ebenfalls unter die GPL-Lizenz stellen.

Systemvoraussetzungen     

Windows ab XP (32 oder 64 Bit) oder Linux (32 oder 64 Bit) oder Mac OS X, CD-Laufwerk Java Näheres finden Sie auf diesen Internetseiten:

Weiterführende Webseiten.

www.arduino.cc www.fritzing.org www.processing.org

Updates und Support Arduino wird ständig weiterentwickelt. Updates können kostenlos von folgender Website heruntergeladen werden: http://arduino.cc

65148 Arduino Lernpaket_03.indd 9

06.10.2015 16:30:36

TURN ON YOUR CREATIVITY

FRANZIS ARDUINO

MIKROCONTROLLERGRUNDLAGEN

65148 Arduino Lernpaket_03.indd 10

06.10.2015 16:30:37

1 Bevor wir uns näher mit dem Arduino beschäftigen, wollen wir uns zunächst einmal einen allgemeinen Überblick über die Mikrocontroller verschaffen. Mikrocontroller werden vor allem im Bereich der Automatisierungs-, der Mess-, Steuer- und Regeltechnik eingesetzt. Der Vorteil eines Mikrocontroller-Systems ist, dass es auf kleinstem Raum energieund kosteneffizient physikalische Größen misst und interpretiert, darauf aufbauend Entscheidungen trifft und Aktionen durchführt. Im Grunde ist jede Aufgabe, die Sie mit dem Arduino lösen möchten, eine MSR-Aufgabe (Messen, Steuern, Regeln).

MikrocontrollerSysteme arbeiten auf kleinstem Raum.

... DIE HAUPTAUFGABEN DES ARDUINOS: MESSEN, STEUERN, REGELN.

65148 Arduino Lernpaket_03.indd 11

06.10.2015 16:30:41

12

Franzis Arduino Lernpaket

1.1 | Messen Die Hauptaufgaben des Arduinos: Messen, Steuern, Regeln.

Unter „Messen“ versteht man ganz allgemein den Vorgang, physikalische Eingangswerte von Tastern, Schaltern, Lichtsensoren, Drucksensoren, Bewegungsmeldern, Lichtschranken, Spannungsteilern (Potis) u.v.m. zu erfassen. Sie werden dem Controller über die digitalen bzw. analogen Eingänge zugeführt. Arduino versteht Signale mit einem Spannungspegel von 0 oder 5 V bei den digitalen Eingängen. Die analogen Eingänge können 0 V bis 5 V mit einer Auflösung von (10 Bit) auswerten. Dabei entspricht 0 V (0) und 5 V (1023). Dieser Wert kann in unserer Software entsprechend interpretiert werden, um z. B. eine Batterie (1 x AA „Mignonzelle“) auf ihre Spannung zu überprüfen. Für größere Spannungen an den Eingängen, egal ob digital oder analog, benötigen wir einen Spannungsteiler, der die Eingangsspannung auf die maximale Eingangsspannung der ArduinoPorts reduziert. Dazu später mehr.

1.2 | Steuern Steuern bedeutet, auf einen Eingangswert zu reagieren.

65148 Arduino Lernpaket_03.indd 12

Unter dem Begriff „Steuern“ versteht man, auf einen Eingangswert zu reagieren. Ein einfaches Beispiel dafür ist ein Bügeleisen. Es steuert die Temperatur über einen Bimetallschalter. Ist die Bügelfläche kälter als am Bügeleisen eingestellt, so wird so lange geheizt, bis die gewünschte Temperatur erreicht ist. Fällt die Temperatur unter einen bestimmten Wert, so wird nachgeheizt, bis die Temperatur wieder stimmt. Zwischen den beiden Punkten „Heizung ein“ und „Heizung aus“ gibt es ein kleines Fenster – eine sogenannte Hysterese. Sie sorgt dafür, dass nicht zu oft

06.10.2015 16:30:45

13

1 Mikrocontroller-Grundlagen

ein- bzw. ausgeschaltet wird und dadurch die mechanischen Kontakte zu schnell verschleißen oder die Steuerung zu „nervös“ reagiert. Bei einem Mikrocontroller könnte man das Bimetall durch einen Temperatursensor ersetzen. Der Mikrocontroller würde den Wert analog oder digital über einen passenden Temperatursensor erfassen. Das Programm würde die Schwellenwerte für „ein“ bzw. „aus“ vergleichen und einen digitalen Ausgang schalten, der wiederum ein Relais oder einen Transistor ansteuert, um die Heizung je nach Bedarf ein- oder auszuschalten.

Die Hysterese.

1.3 | Regeln

Bild 1.1: Beispiel einer Ein- und Ausgabeverarbeitung anhand eines Gewächshauses.

Der Unterschied zwischen Steuern und Regeln besteht darin, dass eine Steuerung nur bestimmte Ein- und Aus-Zustände kennt. Eine Regelung hinge-

65148 Arduino Lernpaket_03.indd 13

06.10.2015 16:30:46

14

Franzis Arduino Lernpaket

gen ist stufenlos. Ein Tempomat im Auto ist z. B. eine Regelung. Diese versucht immer, die gespeicherte Geschwindigkeit zu halten. Wäre hier nur eine Steuerung verbaut, wäre die Fahrt mit Tempomat sehr unangenehm, da dieser nur „Gas geben“, „Nichts tun“ und „Bremsen“ kennen würde.

Mögliche Anwendungsgebiete des Arduinos - privat und industriell.

Das Spektrum möglicher Anwendungen von Mikrocontrollern reicht vom privaten Gebrauch (z.  B. Steuerung eines Gewächshauses oder Aquariums, Hausbeleuchtung) bis zum industriellen Bereich, wo komplette Produktionsanlagen mit MikrocontrollerSystemen gesteuert, gewartet und betrieben werden können. Das Bild auf der vorangegangenen Seite zeigt eine typische Datenverarbeitung zur Steuerung der Bewässerungsanlage eines Gewächshauses. Der Mikrocontroller nimmt dabei über Sensoren Messwerte der Umgebungstemperatur und der Bodenfeuchte auf. Die Messwerte werden durch eine digitale Logik in Form eines Programms im Mikrocontroller (kurz: μC oder MC C genannt) interpretiert. So wird bestimmt, ob sich die Pumpe einschaltet oder nicht.

1.4 | Aufbau und Funktionsweise Grundbausteine von Mikrocontrollern.

65148 Arduino Lernpaket_03.indd 14

Als vollwertiger Computer im Kleinstformat weist jeder Mikrocontroller – ähnlich einem PC  – grundlegende elektronische Bausteine auf, die in Abb. 1.2 näher beschrieben werden. Grundbausteine jedes Mikrocontrollers sind die CPU, der Arbeitsspeicher (RAM) sowie der Programmspeicher (FLASH) und die Peripherie.

06.10.2015 16:30:50

1 Mikrocontroller-Grundlagen

15

MC-Schema

Bild 1.2: Prinzipieller Aufbau eines Mikrocontrollers.

1.4.1 | Die CPU Die wichtigste Funktionseinheit ist die zentrale Recheneinheit, die CPU (engl.: Central Processing Unit). Sie kann als das „Gehirn“ des Mikrocontrollers verstanden werden. Dort werden die Befehle und arithmetische Operationen abgearbeitet.

65148 Arduino Lernpaket_03.indd 15

Die CPU ist das Gehirn des Mikrocontrollers.

06.10.2015 16:30:51

16

Franzis Arduino Lernpaket

1.4.2 | Arbeits- und Programmspeicher Der Arbeitsspeicher dient zur temporären Datenablage.

Arbeits- und Programmspeicher sind logisch getrennt. Das Benutzerprogramm wird dabei meist in einem nichtflüchtigen Flash-Speicher, dem Programmspeicher, abgelegt. Je nach Controllersystem kann man auf Programmspeicher von mehreren Kilo- bis Megabyte zurückgreifen. Bei einigen Systemen ist es darüber hinaus möglich, den Programmspeicher durch externe Flash-Komponenten aufzustocken. Der Arbeitsspeicher (RAM – engl. Random Access Memory) dient zur temporären Ablage von Rechen-, Mess- und Steuergrößen. Das Ziel ist, möglichst schnell auf eine begrenzte Anzahl von Daten zugreifen zu können. Der RAM-Speicher ist in der Regel deutlich kleiner als der Flash-Speicher, dafür aber um ein Vielfaches schneller. Die Werte des RAM werden zur Laufzeit erzeugt und sind, anders als beim FlashSpeicher, flüchtig. Nach einem Neustart des Controllers befinden sich im RAM keine gespeicherten Werte mehr.

1.4.3 | Peripherie Digitale Ein- und Ausgänge gehören zu den Peripheriebausteinen.

65148 Arduino Lernpaket_03.indd 16

Als „Peripherie“ bezeichnet man jene Komponenten eines Mikrocontrollers, die nicht durch CPU und Speicherbausteine abgedeckt werden. Insbesondere Komponenten, die eine Schnittstelle zur Außenwelt darstellen, wie digitale Ein- und Ausgänge (kurz: I/O für Input/Output), werden zu den Peripheriebausteinen gezählt. Die meisten Mikrocontroller-Boards, wie auch unser Arduino, bieten eine Vielzahl von Einund Ausgängen mit verschiedenen Funktionen. Dazu gehören digitale, aber auch analoge Ein- und Ausgänge (ADC und DAC).

06.10.2015 16:30:58

17

1 Mikrocontroller-Grundlagen

1.5 | Programmierung von Mikrocontrollern 1.5.1 | Was ist ein Programm? Ein Programm ist die Beschreibung eines Informationsverarbeitungsprozesses. Im Lauf eines solchen Prozesses wird aus einer Menge von variablen oder konstanten Eingangswerten eine Menge von Ausgangswerten berechnet. Die Ausgangswerte sind entweder selbst Ziel der Informationsgewinnung oder dienen mittelbar zur Reaktion auf die Eingangswerte. Neben den eigentlichen Berechnungen kann ein Programm Anweisungen zum Zugriff auf die Hardware des Computers oder zur Steuerung des Programmflusses enthalten. Ein Programm besteht aus mehreren Zeilen sogenannten Quelltextes. Dabei enthält jede Zeile eine oder mehrere Rechen- oder Steueranweisungen. Neben diesen Anweisungen bestimmt ihre Reihenfolge ganz wesentlich die eingangs beschriebene Informationsverarbeitung. Die Ausführung der den Anweisungen entsprechenden Operationen durch den Steuercomputer erfolgt sequenziell, also der Reihe nach. Eine Folge von Programmanweisungen mit einem bestimmten Ziel nennt man auch Algorithmus.

Programmanweisungen mit einem bestimmten Ziel bezeichnet man als Algorithmus.

1.5.2 | Arduino versteht C C (oder auch die Variante ANSI-C C) sind relativ einfach zu erlernende Programmiersprachen. C ist eine imperative Programmiersprache, die der Informatiker Dennis Ritchie in den frühen 70er-Jahren an den Bell Laboratories für das Betriebssystem Unix entwickelte. Seitdem ist sie weltweit stark verbreitet. Die Anwendungsbereiche von C sind sehr verschieden. Es wird z. B. zur System- und Anwendungsprogrammierung eingesetzt. Die grundlegenden Programme aller Unix-Systeme

65148 Arduino Lernpaket_03.indd 17

Die Programmiersprache C.

06.10.2015 16:30:59

18

Franzis Arduino Lernpaket

und die Systemkerne vieler Betriebssysteme sind in C programmiert. Zahlreiche Sprachen wie C++, ObjectiveC, C#, Java, PHP P oder Perll orientieren sich an der Syntax und anderen Eigenschaften von C. Es lohnt sich also, sich mit dieser Programmiersprache zu beschäftigen, da man später auch leicht auf andere Mikrocontroller-Systeme umsteigen kann. Für fast alle Mikrocontroller existiert ein freier C-Compiler, den die Hersteller zum Download anbieten. Das C innerhalb von Arduino ist jedoch einfacher gehalten als die professionellen C-Compiler und nimmt Ihnen dadurch sehr viel Arbeit ab. Vor allem die komplizierten Hardware-Routinen bleiben Ihnen bei Arduino erspart, da sie bereits als feste Befehle in der Entwicklungsumgebung integriert sind. Zudem gibt es mittlerweile für fast jede Hardware eine Arduino-Bibliothek, die einfach eingebunden wird. Schon können Sie mit der neuen Hardware, z. B. mit einem digitalen Drucksensor, kommunizieren. Die Bausteine des Arduinos.

Die Arduino-Hardware besteht ausschließlich aus gängigen, allgemein verfügbaren Bauteilen. Daher ist es leicht, ihre Funktionsweise zu verstehen und die Schaltung an Ihre Wünsche anzupassen oder Erweiterungen vorzunehmen. Den Kern bildet ein ATmega-Controller aus Atmels weit verbreiteter 8-Bit-AVR-Familie. Hinzu kommen Schaltungsteile zur Stromversorgung und eine serielle Schnittstelle. Letztere ist bei den neueren Arduino-Versionen als USB-Interface ausgelegt. Über diesen Anschluss erfolgt der Download unserer Programme und bei Bedarf auch die Kommunikation zwischen PC und Arduino während der Programmausführung, um z. B. der Hardware Kommandos zu erteilen oder Messwerte von Arduino zu lesen. Weil Arduino-Boards so einfach und universell ausgelegt sind, werden sie häufig auch schlicht als I/OBoard bezeichnet. Das Arduino-UNO-Board stellt dem Anwender 14 digitale Ein-/Ausgänge (I/Os) zur Ver-

65148 Arduino Lernpaket_03.indd 18

06.10.2015 16:31:01

1 Mikrocontroller-Grundlagen

19

fügung, davon sind sechs als Analog-Ausgang (8 Bit PWM) zu verwenden. Weitere sechs Eingänge können analoge Signale erfassen (10 Bit ADC). Bei Bedarf stehen SPI und I2C als weitere digitale Schnittstellen zur Kommunikation bereit. Mit diesen können Sie Ihr ArduinoUNO-Board schnell und einfach mit Bausteinen erweitern, die ebenfalls diese Schnittstelle besitzen. Die Arduino-Boards gibt es mittlerweile in mehreren Varianten, und seit kurzem ist neben den klassischen 8-Bit-Arduinos eine 32-Bit-Version mit ordentlich Rechenleistung für komplexeste Aufgaben verfügbar.

Arduino-Boards gibt es mit unterschiedlichen Merkmalen.

Die original Arduino-Platinen stammen vom Hersteller Smart Projects aus Italien und sind sehr günstig über diverse Internetshops zu beziehen. Es gibt mittlerweile auch zahllose Klone und Nachbauten von anderen Anbietern, schließlich handelt es sich um Open Hardware. Ein wichtiger Unterstützer des Arduino-Projekts ist Sparkfun aus Boulder, Colorado. Die Kooperation mit dem US-Partner hat eine Reihe optimierter Arduino-Boards und Unmengen von Sensoren und Aktoren hervorgebracht. Außerdem ist mit LilyPad ein wichtiger Ableger entstanden, der das Thema Wearable Computing aufgreift. Die meisten Anwender setzen auf den von Smart Projects gefertigten Arduino UNO, der in diesem Lernpaket enthalten ist.

65148 Arduino Lernpaket_03.indd 19

Arduino UNO: der Arduino aus diesem Lernpaket.

06.10.2015 16:31:01

TURN ON YOUR CREATIVITY

FRANZIS ARDUINO ÜBERSICHT ÜBER DIE ARDUINOBOARDS

65148 Arduino Lernpaket_03.indd 20

06.10.2015 16:31:03

2 Bekannte Arduino-Varianten sind die Arduino-MegaBoards mit einem leistungsstärkeren Mikrocontroller (Atmega1280), der mehr Speicher, I/O-Pins und Funktionen bietet. Wesentlich kleiner ist der Arduino Mini, ein Board im DIP24-Format. Das ganze Modul lässt sich auf einen 24-poligen DIL-Sockel stecken. Die Version Arduino Pro Mini von Sparkfun ist nahezu identisch damit, wird aber ohne „Beinchen“ (seitliche Stifte) geliefert. Diese Module erfordern zum Programmieren einen USBAdapter, der an der Schmalseite der Module angesteckt werden kann. Das LilyPad-Board von Leah Buechley (in Zusammenarbeit mit Sparkfun) ist auch Arduino-kompatibel und verfolgt einen ganz eigenen Zweck. LilyPad und Zubehör sind darauf ausgelegt, in Kleidung eingenäht zu werden, um dort eine möglichst enge Symbiose von Technik und Künstler zu realisieren. Die charakteristische runde Form des LilyPad-Boards erregt ebenso Aufmerksamkeit wie die Farbgebung und die kreisförmige Anordnung der Kontakte. Zahlreiche kleine Peripherieplatinen (Sensoren, LEDs, Taster ...) ergänzen das LilyPad-Boards zu einem ganzen System unter dem Motto „Elektronik mit der Nähmaschine“.

Weitere ArduinoVarianten.

Das LilyPadBoard und seine Anwendung in der Funktionsbekleidung.

Tipp: Weitere Board-Versionen und Zubehörteile finden Sie auf der Arduino-Projektseite. Die Produktseiten von SparkFun Electronics finden Sie unter: http://www.sparkfun.com/categories/103

65148 Arduino Lernpaket_03.indd 21

06.10.2015 16:31:11

22

Franzis Arduino Lernpaket

2.1 | Arduino Mega

Bild 2.1: Arduino MEGA.

Die technischen Daten.

65148 Arduino Lernpaket_03.indd 22

Technische Daten:         

ATmega2560 Mikrocontroller 16 MHz Takt 256 KB Flash (8 KB davon benötigt der Bootloader) 8 KB SRAM, 4 KB EEPROM 54 digitale I/O-Pins, davon 15 als PWM nutzbar Hardware-UARTs I2C-Interface, SPI 16 analoge Eingänge (10 Bit) USB-Interface, Spannungsversorgung, Bootloader etc., wie beim Arduino Duemilanove  Abmessungen ca. 101 x 53 x 15 mm

06.10.2015 16:31:17

2 Eine kleine Übersicht über die Arduino-Boards

23

2.2 | Arduino UNO

Bild 2.2: Arduino UNO (SMD-Edition).

Dieses Board ist in unserem Lernpaket enthalten und ist zudem das Arduino-Standard-Board, basierend auf dem Atmel Atmega328P-Mikrocontroller. Das günstige und leistungsfähige Board dürfte wohl das meistverkaufte Mikrocontroller-Board weltweit sein. Es besitzt 14 digitale I/Os, wovon sechs als PWM-Ausgänge verwendet werden können. Es hat sechs analoge Eingänge, einen 16-MHZ-Oszillator als Taktgeber, eine USB-B-Buchse zur Programmierung und Datenausgabe, einen Reset-Taster, eine Stromversorgungsbuchse und einen ISP-Stecker zur Programmierung über einen Atmel-Programmer. Es verträgt als externe Stromversorgung nur Gleichspannung.

65148 Arduino Lernpaket_03.indd 23

Was der Arduino aus diesem Lernpaket alles kann.

06.10.2015 16:31:26

24

Franzis Arduino Lernpaket

Diese Version ist der direkte Nachfolger der ersten Arduino-Boards und behält die Arduino-Standards, die zu den Anfangszeiten gesetzt wurden, zu 100 Prozent bei. Die großen Unterschiede sind: Platine mit SMDBestückung, kein FTDI-USB-zu-UART-Brückenchip mehr, sondern ein Atmega16U2, und ein leistungsfähigerer Mikrocontroller. Die technischen Daten.

65148 Arduino Lernpaket_03.indd 24

Technische Daten:       

ATmega328P 16 MHz Takt 32 KB Flash (davon 0,5 KB für Bootloader) 2 KB SRAM, 1 KB EEPROM 14 digitale I/O-Pins, davon sechs als PWM nutzbar sechs analoge Eingänge (10 Bit) On-Board-USB-Schnittstelle mit Mega 16U2 von Atmel  5 V Betriebsspannung, Speisung über USB oder über Spannungsregler (7 V bis 12 V Eingangsspannung)  Abmessungen ca. 69 x 53 x 15 mm

06.10.2015 16:31:35

2 Eine kleine Übersicht über die Arduino-Boards

25

2.3 | Arduino Leonardo

Bild 2.3: Arduino Leonardo.

Das Leonardo-Board ist ein auf dem Atmega32U4 basierendes Mikrocontroller-Board. Es besitzt 20 digitale I/Os, wobei sieben als PWM-Ausgänge genutzt werden können. Programmiert wird das Board wie üblich über USB und den auf dem Atmega befindlichen Bootloader. Der Unterschied zu den anderen Boards ist, dass hier eine Mikro-USB-Buchse vorhanden ist, statt der üblichen Standard-USB-B-Buchse. Zudem befindet sich auf diesem Board kein zusätzlicher USB-Chip, der die Kommunikation zwischen PC und Mikrocontroller übernimmt. Dieser USB-Chip ist bereits im Mikrocontroller enthalten.

65148 Arduino Lernpaket_03.indd 25

Das Leonardo-Board und seine technischen Spezifikationen.

06.10.2015 16:31:36

26

Franzis Arduino Lernpaket

Dies ermöglicht zudem die Kommunikation zum PC per Maus und Tastatur (HID = engl. Human Interface Device).

Technische Daten: Die technischen Daten.

           

65148 Arduino Lernpaket_03.indd 26

ATmega32U4 16 MHz Takt Programmierung über USB 5-Volt-Technik 20 digitale I/Os, sieben davon können zur PWMErzeugung genutzt werden 12 analoge 10-Bit-Eingänge 32 KB FLASH (4 KB benötigt der Bootloader) 2,5 KB SRAM 1 KB EEPROM Ausgangsstrom pro I/O max. 40 mA Versorgungsspannung 7 V bis 12 V Abmessungen ca. 69 x 53 x 15 mm

06.10.2015 16:31:44

2 Eine kleine Übersicht über die Arduino-Boards

27

2.4 | Arduino Ethernet

Bild 2.4: Arduino Ethernet.

Das Arduino-Ethernet-Board basiert auf einem Atmel-Atmega328-Mikrocontroller. Es besitzt 14  I/ Os und sechs analoge Eingänge. Es weist außerdem einen 16-MHz-Oszillator, einen RJ45-Anschluss, eine Stromversorgungsbuchse, einen ICSP-(ISP)-Stecker und einen Reset-Taster auf. Zudem kann eine Powerover-Ethernet-Platine eingelötet werden.

Arduino Ethernet und wie es sich von den übrigen Arduino-Boards unterscheidet.

Der große Unterschied zwischen diesem Board und den übrigen Arduino-Boards ist, dass hier statt der USB-Buchse eine Ethernet-Buchse zur Programmierung vorhanden ist. Die Ethernet-Kommunikation übernimmt der auf dem Board befindliche Wiznet-Ethernet-Controller, der an den Atmega328

65148 Arduino Lernpaket_03.indd 27

06.10.2015 16:31:45

28

Franzis Arduino Lernpaket

angeschlossen ist. Der microSD-Card-Leser kann zum Speichern und Lesen von Daten und Internetseiten verwendet werden.

Technische Daten: Die technischen Daten.

           

65148 Arduino Lernpaket_03.indd 28

ATmega328 16 MHz Takt Programmierung über Ethernet RJ45 5-Volt-Technik 14 digitale I/Os, vier davon können zur PWMErzeugung genutzt werden sechs analoge 10-Bit-Eingänge 32 KB FLASH (0,5 KB benötigt der Bootloader) 2 KB SRAM 1 KB EEPROM Ausgangsstrom pro Port ± 40 mA Versorgungsspannung 7 bis 12 V Abmessungen ca. 70 x 53 x 15 mm

06.10.2015 16:31:52

29

2 Eine kleine Übersicht über die Arduino-Boards

2.5 | ArduPilot

Bild 2.5: ArduPilot – Arduino-kompatibler UAV-Controller ATmega328 (Quelle: SparkFun).

Für die Modellflieger ist der ArduPilot ein äußerst interessantes Spielzeug. Er ermöglicht das autonome Fliegen eines Modellflugzeugs.

ArduPilot für ambitionierte Modellbauflieger.

Tipp: Mehr dazu finden Sie unter: http://diydrones.com

65148 Arduino Lernpaket_03.indd 29

06.10.2015 16:31:53

30

Franzis Arduino Lernpaket

2.6 | LilyPad

Bild 2.6: LilyPad Arduino (Quelle: Elmicro).

Das LilyPad wurde für E-Textilien entwickelt, also für elektronische Kleidung. Es kann direkt in die Kleidung oder in ein Textilstück eingenäht werden. Die Verbindung zu Sensoren und Aktoren kann über leitfähige Fäden hergestellt werden. Die Schaltung lässt sich unsichtbar verstauen. Entworfen wurde das LilyPad von Leah Buechley und SparkFun Electronics.

Einsatzmöglichkeiten des LilyPad.

Das LilyPad lässt sich beispielsweise einsetzen, wenn Kleidung für Fußgänger oder Fahrradfahrer im Dunkeln leuchten und damit mehr Sicherheit bieten soll.

Die technischen Daten.

Technische Daten:

65148 Arduino Lernpaket_03.indd 30

 ATmega328V und ältere ATmega168V mit 16-MHzQuarztakt  Programmierung über USB-Adapter (ARDUINO/ USB)  Spannungsversorgung 2,7 V bis 5,5 V  14 Digital-I/O-Pins (sechs davon als PWM nutzbar)  sechs analoge 10-Bit-Eingänge  Ausgangsstrom pro Digitalport 40 mA  32 KB oder 16 KB (ATmega168) FLASH (2 KB benötigt der Bootloader für sich)  1 KB (ATmega168) oder 2 KB (ATmega328) SRAM  512-(ATmega168) oder 1-KB-EEPROM

06.10.2015 16:31:57

31

2 Eine kleine Übersicht über die Arduino-Boards

2.7 | USB-Adapter

Diesen Programmieradapter gibt es in einer 3,3-Vund in einer 5-V-Ausführung.

Bild 2.7: USB-Adapter mit FTDI-Chip (Quelle: Elmicro).

Der Adapter wird zum Programmieren der Arduino-Boards ohne USB-Anschluss benötigt, z.  B. des Arduino Mini. Die Pinbelegung entspricht den Original-Arduino-Spezifikationen. Der Adapter kann auch zur Kommunikation verwendet werden (virtuelle serielle Schnittstelle). Dieses Feature muss man für eigene Entwicklungen einfach haben. Es ermöglicht, einen Sketch h auf das Board zu laden, ohne die Reset-Taste zu drücken.

USB-Adapter sind mehr als technische Spielzeuge.

Es gibt eine Menge verschiedener ErweiterungsBoards, die mit den Arduino-Boards verwendet werden können. Wenn man sich im Internet umsieht, findet man fast monatlich neue Boards und nützliche Erweiterungen. Die Erweiterungs-Boards werden in der Arduino-Gemeinde Shieldss genannt und besitzen alle den gleichen Formfaktor. Das hat den Vorteil, dass man sie einfach auf die Arduino-Boards aufstecken kann. Ausgenommen sind die kleinen Units und das LilyPad.

Weitere nützliche Boards und Erweiterungen.

65148 Arduino Lernpaket_03.indd 31

06.10.2015 16:31:58

HEUTE SCHON EXPERIMENTIERT?

Egal ob Sie eine Haussteuerung oder eine LED-Leuchte mit Farbwechsel bauen möchten – mit Arduino™ gelingt es auch Quereinsteigern, die ersten Programme zu schreiben und so die eigenen Ideen zu verwirklichen. Mit diesem Lernpaket entdecken Sie die Grundlagen der Elektronik und der Arduino™-Programmierung und erfahren Schritt für Schritt, wie Sie vorgehen müssen, um Ihre Ideen in die Praxis umzusetzen. DIE BAUTEILE IM ÜBERBLICK

1 Arduino-Board UNO 1 Steckboard 2 Taster 1 Fototransistor PT331C 1 NPN-Transistor BC548C 1 Silizium-Dioden 1N4148 1 Piezo-Schallwandler 1 LED rot 1 LED grün 2 LED gelb 3 Widerstand 1,5 kΩ 1 Widerstand 4,7 kΩ 1 Widerstand 47 kΩ 1 Widerstand 10 kΩ 1 Widerstand 68 kΩ 1 Trimmwiderstand 10 kΩ PT10 1 Kondensator 1 µF 1 Isolierter Schaltdraht ca. 1m

DIESE PROJEKTE FÜHREN SIE DURCH:

Programmieren mit Schleifen Zufallszahlen generieren Ein einfaches Game Stoppuhr Spannung messen LED-Dimmer Ein- und Ausschaltverzögerung Musik mit ArduinoTM Mikrocontroller-Kerzenlicht Ausgänge überwachen Schuluhr Lüftersteuerung Dämmerungsschalter Alarmanlage Codeschloss Spannungsplotter Speicheroszilloskop Temperaturschalter Romantic Light Zeitschaltuhr Melodien komponieren State Machine Kapazitätsmesser … und viele mehr

Für Kinder unter 14 Jahren nicht geeignet!

Außerdem benötigen Sie: USB-Anschlusskabel

ISBN 978-3-645-65327-5

Arduino™ ist ein eingetragenes Markenzeichen der Arduino S.r.l und der damit verbundenen Firmen. © 2016 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, D-85540 Haar, Germany Innovationen, Irrtümer und Druckfehler vorbehalten. 2016/01

TURN ON YOUR CREATIVITY

DAS

ARDUINO



Dieses Lernpaket bietet alles, was Sie für Ihren Einstieg in die Programmierung benötigen: original Arduino™-Uno-Platine, Steckboard, Bauteile sowie ein 300-seitiges Handbuch und Software. So gelingen Ihre Projekte, und Arduino™ erwacht zum Leben.

DAS

DAS

TURN ON YOUR CREATIVITY

ARDUINO™ LERNPAKET

65327-5 HB_U1+U4_Layout 1 13.10.15 13:26 Seite 1

ARDUINO