Wissen, wie’s geht. Leseprobe In dieser Leseprobe erfahren Sie alles zur Arduino-Plattform und können sofort Ihr erstes Arduino-Projekt verwirklichen. Außerdem können Sie einen Blick in das vollständige Inhalts- und Stichwort- verzeichnis des Buches werfen. »Die Arduino-Plattform« »Los geht’s – Erste Praxis« Inhalt Index Der Autor Leseprobe weiterempfehlen Markus Knapp Roboter bauen mit Arduino – Die Anleitung für Einsteiger 409 Seiten, broschiert, in Farbe, Oktober 2014 24,90 Euro, ISBN 978-3-8362-2941-8 www.galileo-press.de/3642 Kapitel 4 Die Arduino-Plattform In diesem Kapitel erfahren Sie unter anderem, was es mit der berühmten Arduino-Platt- form auf sich hat. Außerdem werden Sie die Software installieren und kennenlernen. Zunächst werden Sie sehen, was Arduino überhaupt ist. In Abschnitt 4.2 erläutere ich Ihnen dann die Bestandteile der Arduino-Hardware und gebe Ihnen eine Einführung in die Arduino-Software. Ich werde Ihnen das Roboterkit zu diesem Buch erläutern und aufzeigen, in welchem Kapitel Sie später die Einzelteile verwenden. Im Anschluss wer- den Sie in Abschnitt 4.3 die Arduino-Software und Treiber auf Ihrem Computer installie- ren. Dadurch werden Sie am Ende dieses Kapitels die Grundlagen kennen, die Sie benötigen, um in Kapitel 7, »Los geht’s! – Erste Praxis«, Ihr erstes Arduino-Programm zu schreiben und auf dem Arduino-Board zum Leben zu erwecken. 4.1 Was ist Arduino? Wenn ich den Slogan der Projektwebseite1 frei übersetze, ist Arduino »eine Open-Source- Elektronikplattform zum Erstellen von Prototypen, die auf flexibler, einfach zu benutzen- der Hard- und Software basiert. Sie ist für Künstler, Designer, Bastler und jeden gedacht, der daran interessiert ist, interaktive Objekte oder Umgebungen zu erstellen«. Das erste Arduino-Board wurde bereits 2005 entwickelt und ist einer Legende zufolge nach einer Kneipe benannt. Das Arduino-Board war ursprünglich für Schulen gedacht, und es entwickelte sich schnell eine große Anhängerschaft, da sowohl die eigens dafür entwickelte Software als auch die Hardware hervorragend für Einsteiger geeignet sind. Allein in den ersten drei Jahren wurden circa 50.000 Arduino-Boards verkauft – ein äußerst erfolgreiches Open-Source-Projekt. Beim Arduino-Projekt sind sowohl die Hardware als auch die Software Open Source. 4.1.1 Die Arduino-Projektwebseite Auch wenn die meisten Texte auf der Website des Arduino-Projekts in englischer Spra- che abgefasst sind, sollte sie später Ihre erste Anlaufstelle sein. Warum? Auch wenn Sie 1 http://arduino.cc 53 4 Die Arduino-Plattform 4.2 Die Arduino-Hardware in Kapitel 6, »Programmiergrundlagen«, mehr über die »Arduino-Programmierspra- wurde. Es gibt neben diesem Board viele weitere Arduino-Boards, die ich Ihnen in che« gelernt haben werden, können immer mal wieder Fragen auftauchen. Neben der Abschnitt 4.2.3 vorstellen werde. Zunächst will ich aber die einzelnen Bestandteile des vollständigen Sprachreferenz2 finden Sie auf der Webseite unzählige fertige Beispiele Arduino Uno erläutern. Schauen Sie sich dazu Abbildung 4.1 genauer an. mit ausführlichen Beschreibungen. Zusätzlich gibt es eine FAQ (eine Liste häufig gestell- ter Fragen) und ein Supportforum. Außerdem finden Sie dort eine Übersicht über die vielen verschiedenen Arduino-Boards, die immer auf dem aktuellsten Stand gehalten wird. Speichern Sie sich also gleich den Link der Projektseite, um ihn immer griffbereit zu haben. 4.2 Die Arduino-Hardware Nach dieser Einleitung werde ich nun näher auf die Arduino-Hardware eingehen. Zuerst aber ein wichtiger Sicherheitshinweis. Achtung: Elektrostatische Aufladung zerstört den Arduino! Bevor Sie elektrische Bauteile oder Platinen wie Ihren Arduino berühren, sollten Sie sich zur Sicherheit immer »entladen«! Entladen? Sicherlich haben Sie schon mal »einen gewischt bekommen«, als Sie auf Abbildung 4.1 Der »Arduino Uno« und seine wichtigsten Bestandteile einem Teppichboden mit Schuhen mit Gummisohle herumgelaufen sind und dann Wenn Sie sich bereits mit Elektronik beschäftigt haben, wird Ihnen das eine oder andere einen leitenden Gegenstand oder einen anderen Menschen berührt haben. Die Ursache Bauteil auf der Platine vielleicht bekannt vorkommen. In diesem Fall können Sie die fol- dafür ist statische Aufladung, die leicht mehrere 10.000 Volt erreichen kann. genden Beschreibungen gegebenenfalls überspringen. Falls Sie ein Einsteiger sind, Da elektronische Bauteile und damit auch Ihr Arduino-Board verhältnismäßig empfind- dann lassen Sie sich von den neuen Abkürzungen und Begriffen, die Sie in Abbildung 4.1 lich gegen diese hohen Spannungen sind, sollten Sie elektrische Aufladung sicher »los- sehen, nicht abschrecken. Ich erkläre sie nun der Reihe nach. Ich beginne in der Abbil- werden«. Dies können Sie ganz einfach tun, indem Sie sich kurz vor dem Berühren einer dung beim Reset-Taster links oben und gehe dann im Uhrzeigersinn weiter. Platine über die Erde (Masse) entladen. In einer Wohnung oder einem Haus geht das am einfachsten, indem Sie kurz einen Wasserhahn, eine nicht lackierte Stelle Ihres Compu- Arduino Uno R3 – die Version zählt! ters oder eines Heizkörpers berühren, denn diese sind immer geerdet. Als zusätzliche Obwohl das Arduino-Board schon eine Weile existiert, gibt es gelegentlich doch noch Vorsichtsmaßnahme sollten Sie Platinen immer nur am Rand anfassen und die Bauteile kleine Veränderungen, um es weiter zu verbessern. Um festzustellen, ob Sie die aktuelle oder Stecker nicht direkt an ihren Pins berühren. So erkennt man Sie gleich als Experten Version haben, hilft ein kurzer Blick auf die Unterseite des Boards. Die Versionsnummer – und das wollen Sie doch so schnell wie möglich werden, oder? finden Sie dort, wie in Abbildung 4.2: gezeigt. Entwickler sprechen bei einer neuen Ver- sion oft auch von einem Release. Darum beginnt die Versionsnummer hier mit einem »R«. Aktuelle Informationen über die Releases finden Sie jederzeit in der offiziellen 4.2.1 Das Arduino-Board für den Roboter Arduino-Hardwarereferenz3. Alle Angaben in diesem Buch beziehen sich auf die derzeit Das Board, das Sie später auf Ihrem Roboter verwenden, heißt Arduino Uno. »Uno« ist aktuelle Version Arduino Uno R3. Italienisch und bedeutet »Eins«. Denn es war das erste Arduino-Board, das je entwickelt 2 http://arduino.cc/en/Reference/HomePage 3 http://arduino.cc/en/Main/ArduinoBoardUno 54 55 4 Die Arduino-Plattform 4.2 Die Arduino-Hardware bene Software auf Fehler analysieren und würden zweifellos auf die fehlerhafte Anwei- sung delay(4000000000) stoßen und sie korrigieren. Denglisch Das Wort Reset ist in der deutschen Sprache heutzutage sehr gebräuchlich, obwohl es ein englisches Wort ist. Wenn Sie den Reset-Taster betätigen, hieße es korrekt »einen Reset durchführen« oder »ausführen«. Viele sagen aber auch einfach »den Arduino resetten«. Das klingt vielleicht ungewohnt. Aber Download und downloaden klangen auch einmal seltsam oder Kidnapping und gekidnappt. Benutzt werden diese Begriffe aber mittlerweile alle – und im Duden stehen sie auch. Der ICSP-Stecker 2 Lassen Sie sich nicht dadurch verwirren, dass die Beschreibung hier mit dem ICSP-Ste- cker Nummer 2 beginnt. ICSP steht für In-Circuit Serial Programming und bedeutet so Abbildung 4.2 Die Versionsnummer auf der Rückseite des Boards viel wie »Programmieren in der Platine«. Der Reset-Taster In der Vergangenheit mussten Mikrocontroller zum Übertragen neuer Software stets aus der Platine entfernt werden. Sie wurden dazu in eine spezielle zusätzliche Hardware Das englische Wort Reset bedeutet »zurücksetzen« oder »in Grundstellung bringen«. gesteckt und dann neu programmiert. Das bedeutete durch das ständige Entfernen und Wenn Sie den Reset-Taster auf dem Arduino-Board betätigen, startet sich das Board wie Stecken der Bauteile eine hohe mechanische Belastung, und es wurde zusätzliche Hard- ein Computer neu und beginnt mit der Abarbeitung der im Mikrocontroller gespeicher- ware zum Programmieren benötigt. ten Software. Vermutlich werden Sie den Reset-Taster selten benötigen. Denn in dem Moment, in dem Sie das Board mit Strom versorgen, ist es immer in Grundstellung. Um Mit der Einführung des ICSP-Steckers konnte zumindest direkt auf das zu programmie- aber an einen definierten Startpunkt zu gelangen, wenn das Arduino-Board scheinbar rende Bauteil zugegriffen werden, ohne es zu entfernen – externe Hardware zum Pro- nicht mehr reagiert, ist der Reset sehr hilfreich. grammieren ist weiterhin notwendig. Der ICSP-Stecker 2 wird zum Programmieren des zweiten Mikrocontrollers auf dem Arduino-Board verwendet. Er ist nur zur internen Ein Beispiel dazu: Sie wollen Ihren Roboter künftig durch die Gegend fahren lassen, und Verwendung, denn er regelt die Übertragung zwischen USB-Anschluss und dem wenn er ein Hindernis erkennt, soll eine LED alle vier Sekunden blinken (siehe Kapitel 7, Arduino-Board. Für alle in diesem Buch beschriebenen Projekte benötigen Sie keinen »Los geht’s! – Erste Praxis«). Dazu werden Sie später die Anweisung delay verwenden, der ICSP-Stecker. die den Arduino schlicht und einfach »warten« lässt (siehe Abschnitt 6.12, »Verzögerun- gen und Zeitsteuerung«). Wenn der Arduino vier Sekunden lang nichts tun soll, wäre die Anweisung dazu delay(4000). Wenn Sie jedoch in Ihrem Programm versehentlich Ein-/Ausgänge (oben und unten) die Anweisung delay(4000000000) einfügen, weil Sie auf der Taste (0) (Null) eingeschla- Dies sind nach der Stromversorgung die wichtigsten Stecker auf einem Arduino-Board. fen sind, so würde der Arduino 4.000.000 Sekunden warten und scheinbar nicht mehr Ich gehe auf die einzelnen Pins der Ein-/Ausgangsbuchsen in Abschnitt 4.2.2 ein. reagieren. 4.000.000 Sekunden entsprechen nämlich ungefähr 46 Tagen. Hier käme nun der Reset-Taster ins Spiel: Anstatt mühsam die Stromversorgung vom Benutzer-LED Roboter zu trennen und wiederherzustellen, können Sie einfach den Reset-Taster ein- Die mit »L« beschriftete LED auf dem Arduino ist sehr hilfreich, da sie hervorragend zu mal kurz betätigen, und das Programm startet von vorne. Um bei dem Roboter-Hinder- Kontrollzwecken oder zur Fehlersuche eingesetzt werden kann. Die LED leuchtet auf, nis-Beispiel zu bleiben: Ihr Roboter würde wieder losfahren und erst beim nächsten wenn sie mit dem passenden Befehl auf HIGH gesetzt wird, und erlischt bei LOW. Wie Hindernis stehen bleiben und dort lange Zeit warten. Sie könnten dann Ihre geschrie- das genau funktioniert, erfahren Sie in Kapitel 7, »Los geht’s! – Erste Praxis«. Wie Sie die 56 57 4 Die Arduino-Plattform 4.2 Die Arduino-Hardware LED zur Fehlersuche nutzen können, erkläre ich Ihnen in Abschnitt 6.14, »Fehlersuche/ Ihrem Computer und der USB-Buchse des Arduino-Boards. Dabei kommunizieren Ihr Debugging und die Anzeige von Werten«. Computer und der Arduino miteinander, tauschen also Daten aus. Wenn der Computer dabei Daten an den Arduino sendet, leuchtet zur Bestätigung des Empfangs auf dem Power-LED Arduino kurz die RX-LED (Rx, englisch abgekürzt für Receiver = Empfänger). Sendet der Die Power-LED (engl. Power. dt. Energie) zeigt durch Leuchten an, dass das Arduino- Arduino etwas zum Computer, leuchtet kurz die TX-LED auf dem Board (Tx, englisch Board mit einer Stromversorgung verbunden ist. abgekürzt für Transmitter = Sender). Solange beide Übertragungs-LEDs während der Datenübertragung blinken, können Sie davon ausgehen, dass alles funktioniert und die ICSP-Stecker 1 Kommunikation zwischen Computer und Arduino einwandfrei läuft. Wie der ICSP-Stecker 2 wird auch der Stecker Nummer 1 für eine besondere Art der Soft- wareübertragung auf Ihr Arduino-Board verwendet. In Ihrem Arduino ist nämlich Stromversorgungsbuchse neben der »normalen« Software auch noch ein sogenannter Bootloader enthalten. Die- Um Ihr Arduino-Board mit Strom zu versorgen, haben Sie zwei Möglichkeiten: die ser Bootloader ermöglicht die Aktualisierung der Software im Mikrocontroller direkt Stromversorgungsbuchse oder die USB-Buchse. Wenn Sie später in Kapitel 7 Ihr Board per USB (»Upload«) und ohne spezielle zusätzliche Hardware. Für spezielle Anwendun- mit einem USB-Kabel mit Ihrem Computer verbinden, werden Sie feststellen, dass gen kann es notwendig sein, diesen Bootloader zu umgehen. Und in diesem Fall würden sofort die Power-LED leuchtet und alles auf dem Board mit Energie versorgt wird. Egal, Sie den ICSP-Stecker 1 benötigen. Sie können ihn aber vorerst ignorieren, da Sie Ihr ob Sie das Arduino-Board per USB- oder über die Stromversorgungsbuchse anschließen, Board hier ausschließlich über die USB-Buchse programmieren werden. das Board erkennt die Quelle automatisch. Zur Nutzung der Stromversorgungsbuchse benötigen Sie einen Hohlstecker mit 2,1 mm Mikrocontroller Innendurchmesser (siehe Abbildung 4.3). Der Pluspol liegt dabei in der Mitte des Ste- Der Mikrocontroller ist das Herz und das Gehirn des Arduino-Boards. Er wurde bereits ckers und die Masse (Minus) entsprechend außen. Der Stromverbrauch des Arduino in Abschnitt 2.3, »Wie und womit »denkt« ein Roboter?«, beschrieben. Uno liegt bei einer Eingangsspannung von 7 Volt bei ca. 0,29 Watt (290 mW). Montagepunkt Stromversorgung – Mindest- und Maximalwerte Die vier Montagepunkte dienen zur Befestigung des Arduino-Boards auf Ihrem Robo- Wenn Sie die Stromversorgungsbuchse mit einem externen Netzteil oder Akku verwen- ter. Sie sollten unbedingt nur diese Löcher nutzen, da auf der Ober- und der Unterseite den, achten Sie unbedingt darauf, dass dabei die Grenzwerte nicht lange überschritten Leiterbahnen verlaufen, die die einzelnen Bauteile miteinander verbinden. Würden Sie werden! Das Netzteil muss außerdem eine Gleichspannung (DC = Direct Current Vol- diese durchbohren, wäre das Board danach unbrauchbar! tage) liefern. Empfohlene Eingangsspannung: 7–12 Volt Tipp Kurzzeitig erlaubte Grenzwerte: 6–20 Volt Wenn Sie Ihr Arduino-Board später irgendwo mit Schrauben befestigen wollen, verwen- den Sie Schrauben aus Kunststoff (Polyamid). Sie vermeiden damit Kurzschlüsse durch leitende Metallschrauben, da einige Bauteile sehr dicht an den Montagelöchern verlö- tet sind. Übertragungs-LEDs (TX/RX) Wenn Sie später in Kapitel 7, »Los geht’s! – Erste Praxis Ihr erstes selbst geschriebenes Programm auf den Arduino übertragen, geschieht dies über eine Verbindung zwischen Abbildung 4.3 Ein typischer Hohlstecker von einem Netzteil 58 59 4 Die Arduino-Plattform 4.2 Die Arduino-Hardware USB-Buchse Roboter standardmäßig keine Verwendung findet, gehe ich hier nicht weiter auf seine Die USB-Buchse auf dem Arduino-Board hat drei verschiedene Funktionen: Details ein. Ein Tipp aber noch: Die beiden I2C-Pins SDA und SDL sind auf der Unterseite des Boards beschriftet! Auf der Oberseite war wegen des ICSP-Steckers 2 kein Platz mehr. (cid:2) Stromversorgung des Arduino Übrigens: Aus rechtlichen Gründen wurde die I2C-Schnittstelle früher TWI-Interface (cid:2) Schnittstelle zum Übertragen der Software auf das Arduino-Board genannt (Two-Wire-Interface, englisch für Zweidraht-Schnittstelle), denn der Hersteller (cid:2) allgemeiner Datenaustausch zwischen Arduino und Computer Philips hatte lange Zeit die Rechte an dem Namen I2C. Sie finden die Bezeichnung TWI daher oft noch in älteren Datenblättern. Auch die Software-Bibliothek des Arduino-Pro- Wenn Sie ein Arduino-Board per USB-Kabel mit Ihrem Computer verbinden, erhält es jektes zur Nutzung der I2C-Pins heißt bis heute noch Wire4. darüber Strom. Sie brauchen also, wie ich in der Beschreibung der Stromversorgungs- buchse erläutert habe, keine separate Energiezufuhr. Die zweite Funktion ist das Über- tragen Ihrer geschriebenen Software auf das Arduino-Board (siehe Kapitel 7, »Los geht’s! – Erste Praxis«). Die Software wird später das »Verhalten« Ihres Roboters ausma- chen. Drittens kann Ihr Arduino-Board Daten an Ihren Computer senden. So werden Sie zum Beispiel in Abschnitt 7.2.3 einen Infrarotdistanzsensor ansteuern und auf dem Bildschirm Text sehen, den Ihnen Ihr Arduino über den USB-Anschluss sendet: Sie bekommen die gemessene Entfernung auf dem Bildschirm live angezeigt. Dies ist, neben der LED, für die Fehlersuche ebenfalls sehr hilfreich. Wichtig: Erst installieren – dann anschließen! Bevor Sie Ihr Arduino-Board per USB-Kabel an den Computer anschließen, müssen Sie bei einigen Betriebssystemen einen sogenannten Treiber installieren. Wie das geht, erkläre ich Ihnen in Abschnitt 4.2.5. Diese Reihenfolge sollten Sie unbedingt einhalten, da ansonsten der Arduino möglicherweise nicht einwandfrei von Ihrem Computer erkannt wird! Abbildung 4.4 Die Ein- und Ausgänge des »Arduino Uno« 4.2.2 Die Ein- und Ausgänge des Arduino-Boards im Detail AREF Kommen wir nun zu den wichtigsten Anschlüssen auf Ihrem Arduino-Board: den Ein- Dieser Pin ist ein Eingang, an dem eine beliebige Spannung zwischen 0 und 5 Volt ange- und Ausgängen des Arduino Uno. In Abbildung 4.4 sind die einzelnen Pins der breiten legt werden kann. Er kann nur in Verbindung mit den analogen Eingängen A0 bis A5 Buchsen beschriftet, und ich werde diese im Folgenden der Reihe nach erläutern. (»ANALOG IN«) genutzt werden und dient diesen als Referenz (AREF = Analoge Refe- renzspannung). Näheres dazu wird später unter »Analoge Eingänge« beschrieben. SCL und SDA Diese beiden Pins sind für die sogenannte I2C-Schnittstelle (Aussprache: »I-Quadrat-C«). Masse (GND) Vielfach wird diese auch I2C-Schnittstelle genannt (Aussprache: »I-Zwei-C«). Generell Der Masse-Pin (englisch Ground, abgekürzt GND) ist der Bezugspunkt für alle Spannun- dient eine Schnittstelle (englisch Interface) dazu, unterschiedliche Schaltungen oder gen auf dem Arduino-Board. Er ist zugleich der Minuspol der Stromversorgung und ent- Teile von ihnen miteinander zu verbinden. Aber auch ganze Geräte werden über spricht damit auch 0 Volt. Schnittstellen verbunden. So sind zum Beispiel USB-Stecker am Eingang oder Ausgang eines Gerätes Bestandteil der USB-Schnittstelle. Da das I2C-Interface bei Ihrem Arduino- 4 http://arduino.cc/en/Reference/Wire 60 61 4 Die Arduino-Plattform 4.2 Die Arduino-Hardware Digitale Ein-/Ausgänge übertragung mit anderen Bauteilen durchführen. Da der Arduino Uno aber nur über Die Pins 2 bis 13 dienen als Eingang oder Ausgang. Das heißt, eine Spannung kann an eine serielle Schnittstelle verfügt, die auf der Platine intern bereits mit dem USB- Anschluss verbunden ist, sollten Sie diese Pins nicht verwenden. Denn immer, wenn Sie einen Pin angelegt werden (Eingang) oder der Arduino kann eine Spannung ausgeben ein Programm auf den Arduino übertragen oder später den Serial Monitor (siehe (Ausgang). Abschnitt 7.2.3) verwenden, werden dabei die Daten auch über diese beiden Pins laufen. Störungen wären also vorprogrammiert. Für den in diesem Buch beschriebenen Robo- Vorsicht! ter werden diese Pins nicht verwendet. Spannungen unter 0 oder über 5 Volt an einem der Pins zerstören Ihr Arduino-Board! Analoge Eingänge Da es sich um digitale Ein-/Ausgänge handelt, »verstehen« diese Pins wie ein Computer Im Gegensatz zu den digitalen Eingängen können Sie an die Eingänge A0 bis A5 eine nur zwei Zustände: 0 oder 1. In der Elektronik Ihres Arduino Uno entspricht das 0 Volt beliebige Spannung zwischen 0 und 5 Volt anlegen. »Analog« bedeutet, dass die Span- oder 5 Volt bzw. allgemein LOW oder HIGH. nung wirklich jeden Wert dazwischen haben darf. Das Einlesen eines dieser Eingänge geschieht mit dem Befehl analogRead. Sie werden diesen Befehl in Abschnitt 7.2.3 ken- Expertenwissen zum Angeben: Logikpegel im Detail nenlernen, wenn Sie einen Sensor auslesen, der eine analoge Spannung ausgibt. Beim Wie so oft im Leben ist nicht alles schwarz-weiß, so auch bei den Logikpegeln. Tatsäch- Einlesen einer analogen Spannung vergleicht der Arduino die an einem der Pins A0 bis lich müssen es nicht exakt 0 Volt oder 5 Volt sein. Je nach verwendetem Bauteil gibt es A5 anliegende Spannung standardmäßig mit 5 Volt. So erhalten Sie zum Beispiel beim unterschiedliche Ober- oder Untergrenzen. Bei dem auf dem Arduino-Board verwende- Anlegen von 0 Volt eine 0 als Zahlenwert in der Software; bei 2,5 Volt ist der Zahlenwert ten Mikrocontroller sind es die folgenden: 128, und bei 5 Volt beträgt er 2556. Möchten Sie eine Spannung mit einem geringeren Maximalwert als 5 Volt einlesen (zum Beispiel 3,14 Volt) und dennoch Werte in der Soft- Eingang Ausgang ware von 0 bis 255 erhalten, so kommt der Pin AREF ins Spiel. Sie werden diese Funktion vermutlich nicht so häufig benötigen, und sie wird auch in diesem Buch nicht verwen- LOW 0,00–1,50 V 0,00–0,50 V det. Für weitere Informationen sei daher an dieser Stelle wieder einmal auf die Arduino- HIGH 3,50–5,00 V 4,44–5,00 V Referenz7 und den dort beschriebenen Befehl analogReference verwiesen. Das bedeutet zum Beispiel, dass alle Spannungen zwischen 0,00 und 1,50 Volt an einem Vin Eingang als LOW erkannt werden oder dass alle Spannungen zwischen 4,44 und 5,00 Dieser Pin gehört zu den Stromversorgungspins und kann sowohl als Eingang als auch Volt an einem Ausgang als HIGH gelten. Die Bereiche zwischen den hier aufgelisteten als Ausgang genutzt werden. An diesen Pin können 7–12 Volt angelegt werden, die dann sogenannten Logikpegeln gelten schlichtweg als undefiniert. Das heißt, es ist nicht vor- das Arduino-Board mit Energie versorgen (falls Sie nicht die USB-Verbindung oder die hersagbar, wie sich der Arduino hier verhält. Stromversorgungsbuchse dafür benutzen wollen). Wenn Sie aber das Board per USB- oder Hohlstecker mit Strom versorgen, dann liegen an diesem Pin 5 Volt an. Warum einige der Pins mit einer Tilde (~) gekennzeichnet sind und was die Beschriftung PWM~ auf der Platine bedeutet, erfahren Sie in Abschnitt 7.4.2). Ich will es ja auch etwas Masse (GND) spannend für Sie machen. (siehe vorige Beschreibung) TX/RX 5V Wie Sie bereits im Abschnitt 4.2.1 unter »Übertragungs-LEDs (TX/RX)« erfahren haben, Dieser Pin dient nur als Ausgang. Sobald das Arduino-Board per USB- oder Stromversor- geht es hier um Datenübertragung. Sie könnten über diese Pins eine serielle5 Daten- gungsbuchse mit Strom versorgt wird, kommen an diesem Pin geregelte 5 Volt Span- 5 Seriell bedeutet, dass die Daten Bit für Bit hintereinander übertragen werden (siehe auch http:// 6 Warum der Wert von 0 bis 255 geht, erfahren Sie in Abschnitt 6.3.4. de.wikipedia.org/wiki/Serielle_Datenübertragung) 7 http://arduino.cc/en/Reference/AnalogReference 62 63 4 Die Arduino-Plattform 4.2 Die Arduino-Hardware nung »heraus«. Diese können Sie zur Stromversorgung weiterer kleinerer Bauteile, z.B. Arduino-Board mit mehr Leistung zu versehen. Ein anderes Mal ging es nicht um mehr von Sensoren, verwenden. Geben Sie niemals eine Spannung an diesen Ausgang, da sie Geschwindigkeit oder Speicher, sondern um mehr Ein- und Ausgänge (Pins). Oftmals das Arduino-Board zerstören kann! wurde aber auch nur die Form verändert oder die Größe der Arduino-Platine reduziert. 3,3V SMD-Bauteile An diesem Pin liefert das Arduino-Board eine Spannung von 3,3 Volt. Bitte beachten Sie, Um die Größe einiger Arduino-Boards zu verringern und auch um die Kosten zu sen- dass hier nur ein maximaler Strom von 50 mA geliefert wird. Geben Sie niemals eine ken, wurde auf Bauteile zurückgegriffen, die sich SMD-Bauteile nennen. SMD ist die eng- Spannung an diesen Ausgang, da sie das Arduino-Board zerstören kann! lische Abkürzung für Surface-Mounted Device, was so viel wie »auf der Oberfläche montiertes Bauteil« bedeutet. Denn im Unterschied zu dem Arduino-Mikrocontroller, Reset dessen Pins in eine Fassung gesteckt sind und deren »Beinchen« wiederum durch die Platine hindurch gehen, gibt es auf dem Board auch einen Mikrocontroller, der auf der Dieser Pin dient zum Anschluss eines eigenen Reset-Tasters. Sobald dieser Pin mit Oberfläche »montiert« (aufgelötet) ist. Und glauben Sie mir, die kleinen SMD-Bauteile Masse (GND) verbunden wird, wird ein Reset des Arduino-Boards ausgelöst. Wenn Sie stehen den großen in nichts nach. Denn den meisten Platz bei den großen Bauteilen Ihr Arduino-Board mit Shields (siehe Abschnitt 7.2.7) erweitern, kann es sein, dass diese nehmen mittlerweile nur die großen Anschlusspins ein. den Reset-Taster auf dem Board blockieren. Dafür ist dann dieser Pin nützlich. In Abbildung 4.5 sehen Sie deutlich den Unterschied der beiden Bauteiltypen auf Ihrem IOREF Arduino-Board: Dieser Pin liefert eine Referenzspannung, mit der der Mikrocontroller auf dem Arduino- (cid:2) Oben 1 finden Sie den Mikrocontroller als SMD-Bauteil, Board arbeitet. Der Pin kann intern von Shields genutzt werden, mit denen das Board (cid:2) unten 2 einen Mikrocontroller in alter Bauweise. erweitert werden kann (siehe Abschnitt 7.2.7). Fehlt da nicht etwas? Was ist mit dem freien Pin? Wie Ihnen vielleicht aufgefallen ist, ist in Abbildung 4.4, links neben dem Pin IOREF, ein Pin nicht beschriftet. Der Grund hierfür ist ganz simpel: Er ist nicht in Verwendung. Möglicherweise »kitzeln« die Entwickler des Boards später noch einmal neue Funktio- nen aus dem Arduino Uno heraus. Dann wird dieser Pin vielleicht noch belegt. Aktuell ist das jedoch nicht der Fall. Aber seien Sie gewiss: Sie haben bereits so unzählige Mög- lichkeiten mit Ihrem Arduino-Board! 4.2.3 Verschiedene Arduino-Boards Das Arduino-Board wäre vermutlich nicht so erfolgreich, wenn es nicht vollständig Open Source wäre. Dieses Konzept ermöglichte die Entwicklung vieler Arduino-Boards, die nicht vom Arduino-Projekt selbst stammen, aber offiziell mit dem Arduino-Logo versehen sind, weil sie dem Projektstandard8 entsprechen. Viele Arduino-Boards wur- den bereits entwickelt und veröffentlicht. Manchmal geschah dies, um das schlanke Abbildung 4.5 SMD-Bauteil im Vergleich zur alten Bauweise 8 http://arduino.cc/en/Main/Policy 64 65 4 Die Arduino-Plattform 4.2 Die Arduino-Hardware Die herkömmliche Bauweise hat aber auch Vorteile. Wie Sie sehen, ist der große Mikro- Ein Nachteil bei diesem Board ist der verwendete 3,3-Volt-Logikpegel, da viele Shields controller in eine Fassung gesteckt und kann bei einem Defekt leicht ausgetauscht wer- mit einem 5-Volt-Logikpegel arbeiten und damit an diesem Board nicht ohne Weite- den. Das ist bei SMD-Teilen sehr schwierig, denn diese müssen mit speziellen res eingesetzt werden können (siehe auch in Abschnitt 4.2.2 unter »Digitale Ein-/Aus- Werkzeugen aus- und wieder eingelötet werden. Dies ist bei einigen Bauteilen mit der gänge«). Hand bereits nicht mehr möglich, da diese die Pins sogar an der Unterseite des Bauteils haben, wo kein Lötkolben hinkommt. So bleibt dann leider oft nur Entsorgen und Neu- Arduino-Roboter kaufen, eine Entwicklung, die für unsere Umwelt alles andere als förderlich ist. Dafür hat Ein Arduino-Roboter? Wieso erfahre ich erst jetzt davon? Richtig, es gibt auch einen die SMD-Technik immer preiswertere Geräte ermöglicht, da die Bauteile immer kleiner Roboter der Arduino-Community. Und er hat sogar ein Display auf seiner Oberseite. Der und damit günstiger werden – nur eben leider nicht, was Reparaturen angeht. Nachteil dieses Roboters ist sein Preis: Er kostet über 200 EUR. Nun aber zu der versprochenen Auflistung verschiedener Arduino-Boards. Obwohl es sich nur um eine kleine Auswahl handelt, sollte sie Ihnen einen guten Überblick geben. Und vielleicht entwickeln Sie ja eines Tages Ihr eigenes offizielles Arduino-Board? Arduino Due Der Arduino Due ist im Vergleich zum Arduino Uno ein leistungsfähigeres Board. Sein wesentlicher Vorteil sind zweifelsohne die unzähligen Ein- und Ausgänge, sein großer Speicher für Software und sein USB-Port, an den sogar eine Maus, Tastatur oder ein Smartphone angeschlossen werden können. Abbildung 4.7 Die Ober- (links) und Unterseite (rechts) des offiziellen Arduino-Roboters10 Arduino Esplora Im Gegensatz zu den »normalen« Arduino-Boards stellt der Arduino Esplora auf seiner Platine eine Vielzahl von Sensoren und Aktoren (siehe Abschnitt 2.2.2 und 2.2.3) zur Ver- fügung. Unter anderem finden Sie auf dem Board: LEDs, einen Mini-Joystick, einen Temperatursensor, ein Mikrofon, einen Piezo (siehe Abschnitt 7.3.1), einen Beschleuni- gungssensor, einen Lichtsensor und vieles mehr. Lassen Sie sich nicht durch die Bauform täuschen: Das Board sieht vielleicht wie ein Gamepad aus, ist aber ein vollwer- tiges Arduino-Board mit Mikrocontroller. Abbildung 4.6 Der »Arduino Due« mit mehr als 54 Ein- und Ausgängen9 9 Bild: http://arduino.cc, CC BY-SA 3.0 10 Bild: http://arduino.cc, CC BY-SA 3.0 66 67 4 Die Arduino-Plattform 4.2 Die Arduino-Hardware Arduino Micro Der Arduino Uno ist Ihnen zu groß? Dann greifen Sie doch zu einem Arduino Micro. Dank SMD-Technik ist die Platine auf beiden Seiten eng mit Bauteilen bestückt. So wird jeder Millimeter ausgenutzt. Und ein USB-Anschluss zum Übertragen der Software hat auch noch auf das Board gepasst. Abbildung 4.8 Der »Arduino Esplora« sieht wie ein Gamepad aus.11 LilyPad Arduino USB Abbildung 4.10 Der kleine »Arduino Micro« (Maße: 5,0 × 1,3 cm)13 Wie bereits erwähnt, gibt es für alle möglichen Zwecke einen Arduino. Warum also nicht die eigene Kleidung um ein Mikrocontroller-Board aus der Arduino-Familie ergänzen? Arduino Nano Kein Problem mit dem kleinen LilyPad Arduino USB. Mit ihm lässt sich zum Beispiel ein Lauflicht als Anstecker realisieren. Es geht noch kleiner – auch wenn Abbildung 4.11 es nicht so deutlich zeigt, da der direkte Vergleich fehlt. Der Arduino Nano ist noch einmal geschrumpft und bietet dennoch unter anderem 14 digitale Ein- und Ausgänge, eine LED und eine I2C-Schnittstelle auf kleinstem Raum. Es geht übrigens noch kleiner: Der TinyDuino14 hat eine Größe von lediglich 2 × 2 cm. Abbildung 4.11 Der »Arduino Nano« (Maße: 4,3 × 1,8 cm)15 Abbildung 4.9 Arduino als Anstecker? Der »LilyPad Arduino USB«12 13 Bild: http://arduino.cc, CC BY-SA 3.0 11 Bild: http://arduino.cc, CC BY-SA 3.0 14 http://tiny-circuits.com/products/tinyduino/ 12 Bild: http://arduino.cc, CC BY-SA 3.0 15 Bild: http://arduino.cc, CC BY-SA 3.0 68 69
Description: