2008931

Minicomputer selber programmieren - mit Arduino

29.10.2014 | 09:15 Uhr |

Mit Arduino planen, bauen und programmieren Sie ohne Vorkenntnisse Minicomputer für jeden Einsatzzweck. Wir gehen mit Ihnen die ersten einfachen Projekte Schritt für Schritt durch.

Die Zentrale Schaltstelle für sämtliche Arduino-Boards ist die Entwicklungsumgebung. Laden Sie sich deshalb zunächst einmal unter http://arduino.cc/en/Main/Software die Arduino IDE 1.0.6 für Ihr Betriebssystem herunter. Nur wenn Sie mit dem Arduino Yún und Arduino Due arbeiten wollen, müssen Sie die aktuelle Beta-Version 1.5.8 der Entwicklungsumgebung installieren. In beiden Fällen stehen Varianten für Windows, Mac OS X und Linux zur Auswahl. Im weiteren Verlauf beschreiben wir in diesem Ratgeber die Vorgehensweise für die Windows-Installer-Version.

Vor der Installation des Integrated Development Environment (IDE) schließen Sie Ihr Arduino-Modell mit dem meist im Lieferumfang enthaltenen USB-Kabel an eine freie USB-Buchse Ihres Rechners an. Ist das Kabel nicht im Lieferumfang enthalten, bekommen Sie im Fachhandel ein „Typ-A-auf-B-Stecker“-USB-Kabel für zwei Euro. Sobald Ihr Arduino mit dem PC verbunden ist, erkennt Windows (ab Vista) automatisch das Micro-Controller-Board und installiert die notwendigen Treiber.

Integrated Development Environment installieren

Installieren Sie jetzt die Arduino-Entwicklungsumgebung und bestätigen Sie die Lizenzvereinbarung mit „I Agree“. Im folgenden Installationsfenster können Sie über vier Checkboxen noch entscheiden, ob Sie den USB-Treiber und dazugehörige INO-Dateien installieren sowie Shortcuts auf die Software im Startmenü und auf dem Desktop einrichten wollen. Im Zweifelsfall lassen Sie alles so, wie es die Voreinstellungen vorsehen, und klicken jetzt auf „Next“. Im nachfolgenden Fenster legen Sie dann das Installationsverzeichnis über „Browse…“ fest oder übernehmen gleich die Vorauswahl „C:\Program Files\Arduino“, indem Sie mit einem Klick auf „Install“ bestätigen. Falls Sie vorher USB-Treiber in der Checkbox ausgewählt haben, müssen Sie abschließend noch dessen Installation bestätigen, bevor das Software-Setup der Entwicklungsumgebung „Completed“ meldet.

Smart Home-Ideen für Arduino-Projekte

Nach erfolgreicher Installation der Arduino-Software meldet die Routine „Completed“.
Vergrößern Nach erfolgreicher Installation der Arduino-Software meldet die Routine „Completed“.

Entwicklungsumgebung für Ihr Arduino-Modell einrichten

Starten Sie nun die Entwicklungsumgebung mit einem Doppelklick auf die Datei „Arduino.exe“, die sich auf dem Desktop befinden sollte – sofern Sie in der Checkbox nicht die Shortcut-Option für den Desktop deaktiviert haben. In diesem Fall finden Sie die ausführende Datei der Arduino-Software im Verzeichnis „C:\Program Files\Arduino“. Nach dem Programmstart wählen Sie ganz oben im Menü „Tools“ die Option „Boards“ aus und klicken auf das von Ihnen angeschlossene Arduino-Modell. In unserem konkreten Beispiel wählen wir hier den „Arduino Duemilanove w/ ATmega328“ aus. Ebenfalls im „Tools“-Menü stellen Sie unter „Serieller Port“ die COM-Schnittstelle ein, an die Ihr Arduino angeschlossen ist. In unserem Beispiel ist das „COM3“.

Wenn Sie die Entwicklungsumgebung zum ersten Mal aufrufen, sollten Sie als Erstes Ihr Arduino-Modell und den seriellen Port, an dem es angeschlossen ist, auswählen.
Vergrößern Wenn Sie die Entwicklungsumgebung zum ersten Mal aufrufen, sollten Sie als Erstes Ihr Arduino-Modell und den seriellen Port, an dem es angeschlossen ist, auswählen.

OUTPUT: Informationen senden – Beispiel blinkende LED

Ihr Arduino-Board ist jetzt einsatzbereit und lässt sich programmieren. Wir starten mit einer einfachen Aufgabenstellung: eine Leuchtdiode zum Blinken zu bringen. Dazu brauchen Sie eine bedrahtete Diode aus einem Elektronikfachmarkt wie etwa Conrad. Kostenpunkt: ab 7 Cent. Um die LED in Betrieb zu nehmen, lokalisieren Sie die digitalen Anschlusskontakte auf Ihrem Micro-Controller-Board – dies sind die von 0 bis 13 durchnummerierten Pins. Stecken Sie nun den etwas längeren Draht der LED (das ist der Pluspol) in den Pin 13 – dieser Kontakt besitzt bereits einen Vorwiderstand, der bei LEDs erforderlich ist. Der kürzere Draht Ihres LEDs kommt dann in den benachbarten Ground-Pin, der mit „GND“ beschriftet ist.

Jetzt geht es ans Programmieren der Leuchtdiode. Dazu nutzen wir zunächst ein Basisprogramm, das bereits in der Entwicklungsumgebung im „Datei“-Menü unter „Beispiele“ gespeichert ist. Wählen Sie dort unter „01. Basics“ „Blink“ aus. Es öffnet sich daraufhin ein Fenster mit einem rudimentären Blinkprogramm. Alle Programme, die in der Basis-Bibliothek enthalten sind oder die Sie später selber schreiben, heißen in der Arduino-Entwicklungsumgebung „Sketch“. Das englische Wort für „Entwurf“ soll dabei wohl den unvollendeten Zustand symbolisieren, dem ein Programmcode grundsätzlich innewohnt.

Ein Arduino-Sketch basiert auf der Programmiersprache C und besteht aus zwei grundlegenden Elementen: Der „Setup“-Teil steht immer am Anfang des Programmcodes und beschreibt, wie bestimmte Signalkontakte Ihres Arduino-Modells angesteuert und benutzt werden sollen. Er beginnt mit „void setup()“, alle nachfolgenden Anweisungen des Setups sind in zwei geschweiften Klammern zusammengefasst. Auch im „Loop“-Teil, beginnend mit „void loop()“, sind sämtliche Anweisungen in zwei geschweiften Klammern zusammengefasst. Allerdings wiederholt der Arduino hier alle Anweisungen in einer Dauerschleife. Jede Anweisung besteht aus einer Methode, zumeist gefolgt von ihren Parametern in Klammern. Den Abschluss einer Anweisung bildet immer das Semikolon. Am Beispiel des Blinkprogrammes erklären wir nachfolgend exemplarisch, wie der Setup- und der Loop-Teil in der Arduino-Programmiersprache genau funktionieren:

Im Setup-Teil des Blinkprogrammes steht zunächst eine Anmerkung respektive eine Erklärung – identifizierbar durch zwei vorangestellte Schrägstriche. Damit kennzeichnen Sie nicht ausführbaren Code. Als Nächstes folgt die erste Codezeile „int led = 13;“. Damit geben Sie dem Pin 13 den Namen „led“. Die zweite Codezeile „pinMode (led, OUTPUT)“ sagt Ihrem Arduino mit der Methode „pinMode“, dass er einen Pin ansteuern soll. Dabei definiert der Parameter „led“, welchen Pin der Arduino ansteuern soll. Der zweite Parameter „OUTPUT“ legt dagegen den Ausführungsmodus fest, etwa wenn der Arduino Objekte wie die LED steuern soll. Im Gegensatz dazu nutzen Sie den Parameter „INPUT“ für den Empfang von Steuersignalen, beispielsweise um einen Knopf zu drücken oder einen Schalter umzulegen.

Im Loop-Teil des Blinkprogramms lautet die erste Codezeile „digitalWrite (led, HIGH)“, wobei die Methode „digitalWrite“ für die Änderung des Zustands in aktiv oder inaktiv, 1 oder 0 respektive ein oder aus steht. Der erste Parameter „led“ legt wiederum den Pin 13 Ihres Arduino fest, und der zweite Parameter „HIGH“ definiert einen der beiden Zustände, in diesem Fall: ein, aktiv, Stromfluss. Mittels der Methode „delay“ teilen Sie dann Ihrem Arduino mit, dass er warten soll, wobei der Parameter „1000“ die Zeitspanne in Millisekunden definiert. In den beiden folgenden Codezeilen weisen Sie den Arduino an, die LED wieder auszuschalten („LOW“) und „1000“ Millisekunden, also eine Sekunde, verstreichen zu lassen, bevor der Arduino wieder zum Beginn des Loop-Teils springt und die Schleife von vorne anfängt.

Verändern Sie einen Basis-Sketch, wie hier die LED-Blinkfrequenz von 1000 auf 100 Millisekunden, müssen Sie neu kompilieren, bevor Sie ihn an den Arduino schicken.
Vergrößern Verändern Sie einen Basis-Sketch, wie hier die LED-Blinkfrequenz von 1000 auf 100 Millisekunden, müssen Sie neu kompilieren, bevor Sie ihn an den Arduino schicken.

Um das Blinkprogramm ausführen zu können, muss es zunächst auf Ihren Arduino übertragen werden. Klicken Sie dazu ganz oben links auf den nach rechts weisenden Pfeil („upload“). Die Arduino-Software schreibt den Programmcode daraufhin in den Flash-Speicher, weshalb man diesen Vorgang häufig auch als „Flashen“ bezeichnet. Die LED in Ihrem Arduino-Modell sollte anschließend im Abstand von einer Sekunde aus- und angehen.

Sie können jetzt das Grundprogramm nach Ihren Wünschen modifizieren, etwa indem Sie die Zeitschleife verändern. Wenn Sie zum Beispiel das „delay“ zwischen dem Ein- und dem Ausschalten der LED von „1000“ auf „100“ Millisekunden verkürzen, haben Sie im Nu eine hektisch blinkende Alarm-LED programmiert – praktisch, um als Indikator zu dienen und auf bestimmte Gegebenheiten aufmerksam zu machen. Allerdings haben Sie nun den Programmcode geändert und müssen ihn deshalb zunächst neu kompilieren. Bei diesem Vorgang übersetzt die Entwicklungsumgebung die Programmsprache in eine Maschinensprache, damit sie der Micro-Controller auf Ihrem Arduino-Board versteht. Dazu müssen Sie ganz links oben auf das Häkchensymbol („Überprüfen“) klicken. Abschließend „Flashen“ Sie Ihr abgeändertes Blinkprogramm wieder auf Ihr Arduino-Modell. Haben Sie alles richtig gemacht, müsste die LED jetzt wie verrückt blinken.

Arduino-Thermometer bauen - so geht's

INPUT: Daten verarbeiten – Beispiel Schalter offen oder zu

Nun widmen wir uns einmal exemplarisch der Datenverarbeitung. Dabei fungiert der Arduino als Messinstrument für den PC und soll ermitteln, ob ein Druckschalter offen oder geschlossen ist. Wenn Sie das Experiment in der Praxis nachvollziehen möchten, dann benötigen Sie dazu etwas ummantelten Draht, eine Steckplatine, einen Drucktaster mit vier Beinchen und einen axial bedrahteten Metallschicht-Widerstand mit 10 Kiloohm aus einem Elektronikfachmarkt. Der Kostenpunkt beträgt insgesamt rund 6 Euro. Um die Schaltung in Betrieb zu nehmen, überbrücken Sie den schmalen Gang in der Mitte der Steckplatine mit dem Drucktaster. Verbinden Sie daraufhin mithilfe eines Stücks Draht das linke obere Bein des Drucktasters mit Pin 2 Ihres Arduino-Boards. Nun schließen Sie an das linke untere Bein des Drucktasters das eine Ende des Widerstands an. Das andere Ende des Widerstands verbinden Sie über ein Stück Draht mit dem Ground-Pin („GND“) der Stromversorgung Ihres Arduino-Modells. Zum Schluss stellen Sie noch mit einem weiteren Stück Draht eine elektrische Verbindung zwischen dem rechten unteren Bein des Drucktasters und dem 5-Volt-Pin der Arduino-Stromversorgung her.

Damit der Arduino dem PC mitteilen kann, ob der Schalter offen oder geschlossen ist, müssen Sie eine Datenverbindung zwischen den beiden PCs aufbauen. Dazu nutzen Sie wiederum ein bereits gespeichertes Basisprogramm. Sie rufen es wie gehabt in der Entwicklungsumgebung im „Datei“-Menü ab, dort ist es unter „Beispiele“ gespeichert. Wählen Sie dort unter „01. Basics“ „DigitalReadSerial“ aus, um einen seriellen Kommunikationskanal aufzubauen. Durch die erste Codezeile „int pushButton = 2;“ geben Sie Pin 2 den Namen „pushButton“. Die zweite Codezeile „Serial.begin(9600)“ initialisiert die serielle Verbindung zwischen Arduino und PC mit einer fest definierten Datenrate von 9600 Bit pro Sekunde. Die letzte Setup-Anweisung lautet dann „pinMode (pushButton, INPUT)“ und sagt Ihrem Arduino, er soll den Pin „pushButton“ als „INPUT“ nutzen – also von diesem Pin Informationen abfragen.

Messwerte kann der Arduino mithilfe des Basis-Sketches „DigitalReadSerial“ auslesen und dann an einen anderen Rechner übermitteln.
Vergrößern Messwerte kann der Arduino mithilfe des Basis-Sketches „DigitalReadSerial“ auslesen und dann an einen anderen Rechner übermitteln.

Zustände ablesen sowie Messwerte anzeigen lassen

Im Loop-Teil des „Schalter offen oder zu“-Programms lesen Sie mit der Methode „digitalRead“ den Zustand des Schalters aus. Der kann wieder nur einen von zwei Zuständen annehmen, 1 oder 0 respektive ein oder aus. Mit der ersten Codezeile „int ButtonState = digitalRead (pushButton) geben Sie dem Auslesewert des Pins „pushButton“ den Namen „ButtonState“. Und in der zweiten Codezeile „Serial.printIn (ButtonState)“ speichert der Arduino den Auslesewert des Parameters „ButtonState“ zwischen und übermittelt den Messwert an den PC. Die letzte Anweisung „delay(1)“ sorgt für eine Verzögerung von einer Millisekunde vor jeder erneuten Abfrage des Auslesewertes.

Klicken Sie zum Abschluss nun wieder auf den nach rechts weisenden Pfeil („upload“), um das Programm auf Ihren Arduino zu übertragen. Wählen Sie danach im „Tool“-Menü den „Serial Monitor“ aus, um sich am PC die Auslesewerte in Echtzeit anzeigen zu lassen. Meldet der Arduino „0“, ist der Drucktaster offen und es fließt kein Strom. Erscheinen auf dem „Serial Monitor“ lauter Einser, ist der Drucktaster geschlossen und leitet Strom. Sie können jetzt auch wieder das Grundprogramm modifizieren, beispielsweise indem Sie die Intervalle zwischen dem Auslesen des Messwertes „delay(1)“ auf eine Sekunde („1000“) oder gleich eine Minute („60000“) verlängern.

0 Kommentare zu diesem Artikel

PC-WELT Hacks - Technik zum Selbermachen?

Raspberry Pi erfreut sich gerade unter Bastlern einer großen Beliebtheit. Kein Wunder, denn mit der 35-Euro-Platine lassen sich viele spannende Projekte realisieren. Vom Mediacenter, Netzwerkspeicher, Fotomaschine bis hin zum Überwachungssystem ist alles möglich. Dieser Bereich ist aber nicht nur dem Raspberry Pi gewidmet, sondern bietet auch viele Tipps, Tricks und Anleitungen für andere spannende Bastelprojekte.

2008931