Lade Inhalt...

Programmieren des Arduino Uno im Technologie-Unterricht

Seminararbeit 2015 25 Seiten

Informatik - Programmierung

Leseprobe

Inhaltsverzeichnis

Vorbemerkung

A. Das Mikocontroller Board
I. Was ist ein Mikrocontroller?
II. Auswahl des Mikrocontroller Boards
III. Vorstellung der Hardware

B. Kurzanleitung zum Programmieren des Mikrocontrollers
I. Erklärung der Entwicklungsumgebung
II. Einführung in die Programmiersprache

C. Beispielprogramme
I. Eine LED schalten
II. Farb LED
III. Reihen LEDs
IV. Motorsteuerung

D. Aufgetretene Probleme

E. Das Programm „fritzing“

F. Fazit

Abbildungsverzeichnis

Literaturverzeichnis

Vorbemerkung

Ziel der Arbeit ist es, ein für den Einsatz im Unterricht geeignetes Mikrocontroller Board auszuwählen, um den Schülern im Technologieunterricht anhand von praktischen Anwendungsbeispielen das Programmieren näher zu bringen. Durch Erstellen einer Kurzanleitung zur Inbetriebnahme des Boards wird ein schneller Einstieg in das Thema ermöglicht. Mit Hilfe von Beispielprogrammen sollen die Schüler Schritt für Schritt in die Programmiersprache und Entwicklungsumgebung des Mikrokontrollers eingeführt werden und durch bereitgestellte Hilfsmittel, z.B. einer Auflistung aller wichtigen Befehle, Aufgaben zunehmend freier bearbeiten. Da es sich bei den Informationen dieser Seminararbeit zum großen Teil um allgemein gültige Angaben aus der Elektrotechnik und Informatik handelt, werden hier in den meisten Fällen sinngemäße Zitate verwendet. Zum besseren Verständnis ist es häufig nötig, Grafiken direkt in den Text einzuarbeiten.

A. Das Mikocontroller Board

Mikrocontroller werden heutzutage in nahezu allen elektronischen Geräten eingesetzt. Egal ob Fernseher, Auto oder Smartphone, keines dieser Geräte würde ohne einen Mikrocontroller funktionieren. Zusätzlich findet die Wissenschaft immer neue, komplexere Anwendungsgebiete und die Zahl der produzierten Chips steigt jährlich. Umso wichtiger ist es, den Schülern bereits im Unterricht grundlegende Kenntnisse im Umgang mit dem Controller beizubringen. Da dieser eigentlich nur ein kleiner Chip mit einer gewissen Anzahl von Pins ist, wäre er in dieser Form für den Einsatz im Unterricht nicht geeignet (siehe Abbildung 1). Deshalb befindet sich der Chip in diesem Fall auf einer Platine. Dort sind sämtliche Schnittstellen leicht zugänglich und beschriftet angebracht.

I. Was ist ein Mikrocontroller?

Ein Mikrocontroller ist ein leistungsfähiges, kompaktes, programmierbares Rechensystem. Er enthält einen Prozessor (CPU), der für die Rechenaufgaben und das Steuern des Controllers zuständig ist. Weiter verfügt ein Mikrocontroller über einen Programmspeicher (FLASH), auf welchem das Programm gespeichert wird und über einen Datenspeicher (RAM), auf dem temporäre Daten abgelegt werden. Darüber hinaus sind digitale und häufig auch analoge Ein-/ und Ausgabe-Ports sowie Kommunikationsbausteine (COM, USB, UART,…) vorhanden. Die Ein-/ Ausgabe-Ports ermöglichen zum Beispiel den Aufbau einer elektronischen, vom Mikrocontroller gesteuerten Schaltung, während die Kommunikationsbausteine zur Herstellung einer Verbindung mit dem Computer verwendet werden. Des Weiteren verfügt ein Mikrocontroller über ein oder mehrere Zeitgeber, wodurch zeitlich geregelte Programme möglich werden. Zusammengefasst lässt sich ein Mikrocontroller daher als Ein-Chip-Mikrocomputer bezeichnen. (Vgl. Mikrocontrollerprogrammierung lernen mit myAVR)

II. Auswahl des Mikrocontroller Boards

Auf dem Markt gibt es sehr großes Angebot unterschiedlicher Mikrocontroller mit verschiedensten Spezifikationen und Einsatzgebieten. Für die Auswahl eines geeigneten Boards wurden in Absprache mit der betreuenden Lehrkraft die wesentlichen Kriterien für den Einsatz des Controllers im Technologieunterricht festgelegt. Zuerst sollte der Preis nicht mehr als 50 Euro betragen, um den finanziellen Aufwand, einen oder mehrere Computerräume der Schule damit auszustatten, möglichst gering zu halten. Als weiteres wichtiges Kriterium wurde der Umfang und die Qualität der Lieferung festgelegt, da bei einer separaten Bestellung der Bauteile für den Aufbau einer Schaltung zusätzliche Kosten entstehen würden und diese nach Möglichkeit vermieden werden sollten. Außerdem musste die Platine auch in geringen Stückzahlen (15 -30 Stück) zu diesem Preis erhältlich und verfügbar sein. Auch sollte der Mikrocontroller in den Sprachen C/C++ oder Visual Basic programmierbar sein. Um das eigenständige Einarbeiten in die Materie zu ermöglichen, war es ein weiterer Aspekt, dass ausführliche Dokumentationen und Fachliteratur über das Projekt frei verfügbar sind. Ferner wurde vorausgesetzt, dass sich der Einstieg in das Arbeiten mit dem Mikrocontroller Board möglichst einfach und schnell bewerkstelligen lässt, da die Schüler nur alle zwei Wochen zwei Unterrichtsstunden Technologie haben. Ansonsten hätte das Arbeiten mit komplexen Boards wenig Aussicht auf Erfolg. Zuletzt sollten die Ein-/Ausgabe-Schnittstellen problemlos für den Aufbau einer Schaltung geeignet sein. Basierend auf diesen Auswahlkriterien kamen drei Mikrocontroller Boards in die engere Auswahl.

Diese sind der Raspberry Pi, das myAVR Board MK2 und der Arduino Uno R3. Das myAVR Board MK2 bietet alle geforderten Funktionen, hat jedoch einen entscheidenden Nachteil. Die Lizenz für den Download der Entwicklungsumgebung sowie das dringend benötigte Benutzerhandbuch sind verhältnismäßig teuer. Damit ist das Arbeiten mit diesem Board zu unwirtschaftlich und kommt deshalb nicht in Frage. Der Raspberry Pi bietet sogar noch wesentlich mehr Funktionen als gefordert. An diesem Punkt ist das jedoch unpassend, da der Umgang mit dieser Platine im Unterricht möglichst simpel gehalten werden soll. Ein umfassender Einstieg in die Welt des Raspberry Pi ist daher in der Schule aus zeitlichen Gründen sehr schwer zu realisieren. (Vgl. Raspbarry Pi vs. Arduino Mikrocontroller Boards). Die Entwicklungsumgebung des Arduino Uno R3 ist im Internet für jeden User zum Download kostenlos zugänglich. Des Weiteren existieren diverse Handbücher, Dokumentationen und Turorials mit deren Hilfe ein Einsieg schnell möglich ist. Zuletzt kann man bei diesem Board ein sehr umfangreiches „Einsteiger-Paket“ für 39,99€ auf amazon.de erwerben. Da der Lieferumfang je nach Verkäufer variieren kann wird hier auf dessen Auflistung verzichtet. Für den Einsatz im Unterricht ist der Arduino Uno daher am besten geeignet und wird für die Seminararbeit verwendet.

III. Vorstellung der Hardware

Im Folgenden wird genauer auf die Hardware des Arduino Uno R3 (Abbildung 1) eingegangen und die wichtigsten Bauteile der Platine erklärt.

Abbildung 1: Hardware, modifiziert nach URL 1

Abbildung in dieser Leseprobe nicht enthalten

Um den Arduino mit Strom zu versorgen, gibt es zwei sinnvolle Möglichkeiten. Die Stromversorgungsbuchse(1). Hier muss unbedingt darauf geachtet werden, dass die Eingangsspannung einen Wert zwischen 6 V und 20 V nicht verlässt, da die Platine sonst Schaden nehmen könnte. Die optimale Eingangsspannung liegt zwischen 7 und 12 V. Alternativ kann auch die USB-Buchse(2) verwendet werden. Diese wird abgesehen von der Stromversorgung auch zum Übertragen der Software und für den allgemeinen Datenaustausch zwischen dem Arduino und Computer benötigt. Wenn der Reset-Taster(3) betätigt wird, startet sich das Board neu und beginnt mit der Abarbeitung des auf dem Mikrocontroller gespeicherten Programms von vorne. Das Drücken des Tasters kann nützlich sein, wenn der Arduino scheinbar nicht mehr reagiert, normalerweise wird es jedoch nur in seltenen Fällen nötig sein. Unter (4) sind drei LEDs zu erkennen. Die mit L bezeichnete LED ist die sogenannte Benutzer-LED. Sie eignet sich zur Fehlersuche und zu Kontrollzwecken und kann mit einem passenden Befehl auf „HIGH“ oder „LOW“ also „Ein“ oder „AUS“ geschaltet werden. Die mit RX (Englisch, abgekürzt für Receiver) beschriftete LED leuchtet immer dann kurz auf, wenn der Arduino Daten vom Computer empfängt. Die mit TX (Englisch, abgekürzt für Transmitter) LED leuchtet immer, wenn das Board Daten an den Computer sendet. Die Pins 0-13 (5) sind die Digitalen Ein- und Ausgänge des Arduino. Die Pins 0 und 1 sind ebenfalls mit TX und RX gekennzeichnet. Man könnte über diese Pins eine serielle Datenübertragung mit anderen Bauteilen herstellen, doch es ist davon abzuraten diese Pins überhaupt zu verwenden. Da der Arduino Uno nur über eine serielle Schnittstelle verfügt und diese bereits intern mit dem USB-Anschluss verbunden ist, könnte dies Störungen verursachen. Digitale Ein- und Ausgänge können nur zwei Werte annehmen, nämlich „HIGH“ (5V) und „LOW“ (0V). Das Board verfügt über 6 Pins mit denen eine Pulsweitenmodulation(PWM) möglich ist. Diese sind alle durch ein ~ vor der Pin Nummer gekennzeichnet. Mit Hilfe der PWM ist es möglich, Spannungswerte zwischen 0V und 5V stufenlos zu simulieren und dadurch z.B. eine LED zu dimmen. Die Power LED (6) zeigt an ob der Arduino mit einer Spannungsquelle verbunden ist. Der Mikrocontroller ATmega328 (7) der Firma Atmel ist das Herzstück des Arduino Uno. Es handelt sich hier um einen 8-Bit Mikrocontroller mit einer maximalen Taktfrequenz von 20MHz. Die fünf analogen Input Pins (8) A0 bis A5 können angelegte Spannungen zwischen 0V und 5 V auswerten. Dieser Spannungswert wird intern in eine Zahl zwischen 0 und 1023 umgewandelt. Dadurch wird es möglich, zum Beispiel den Stellwert eines Potentiometers abzufragen und damit weiter zu arbeiten. Das Arbeiten mit analogen Werten wird später eingehender behandelt. Die mit (9) gekennzeichneten Pins dienen in erster Linie zum Aufbau von Schaltungen. Sobald der Arduino mit einer Stromversorgung verbunden ist, liegt an den beiden Spannungs-Pins (5V/3,3V) die jeweilige Spannung geregelt an. Diese kann nun abgegriffen und zur Versorgung externer Bauteile, beispielsweise von Sensoren, Motoren, LEDs oder Ähnlichem verwendet werden. Es ist immer darauf zu achten, dass niemals Spannung an einen der beiden Ausgänge angelegt wird, da sonst das Board zerstört werden kann. Der mit GND (Englisch, abgekürzt für Ground) beschriftete Pin ist der Bezugspunkt für alle Spannungen auf dem Arduino Board. Er ist zugleich der Minuspol der Stromversorgung und entspricht damit dem Spannungswert 0V. (vgl. Knapp,2014,54-64)

B. Kurzanleitung zum Programmieren des Mikrocontrollers

Der nächste Abschnitt widmet sich einer Kurzanleitung mit deren Hilfe der Einstieg in die Welt des Arduino schnell und einfach möglich sein soll.

I. Erklärung der Entwicklungsumgebung

Bei der Entwicklungsumgebung des Arduino Uno, sowie allen anderen Arduino Boards, handelt es sich um die gleichnamige Software Arduino. Die aktuelle Version steht im Internet unter https://www.arduino.cc/en/Main/Software kostenlos zum Download bereit. Beim ersten Ausführen der Software müssen zuerst zwei kurze Einstellungen vorgenommen werden, bevor der Mikrocontroller programmiert werden kann. Zunächst wird der Arduino über einen USB- Stecker mit dem Computer verbunden und anschließend die Software ausgeführt.

Abbildung 2: Auswahl des Ports

Abbildung in dieser Leseprobe nicht enthalten

Danach muss über die Registerkarte „Werkzeuge“ der serielle Port, über welchen der Arduino mit dem Computer verbunden ist, ausgewählt werden. Dies ist in den meisten Fällen der COM3 oder höher (Abbildung 2).

Abbildung 3: Auswahl der Platine

Abbildung in dieser Leseprobe nicht enthalten

Anschließend ist es nötig, ebenfalls über die Registerkarte „Werkzeuge“, die richtige Platine auszuwählen. In diesem Fall ist dies der Arduino Uno (Abbildung 3).

Im Anschluss werden nun die wichtigsten Bestandteile der IDE (Englisch, abgekürzt für Integrated Development Environment) kurz vorgestellt und ihre Funktion genauer erläutert (Abbildung 4).

Abbildung 4: Entwicklungsumgebung

Abbildung in dieser Leseprobe nicht enthalten

Durch das Betätigen der mit (1) gekennzeichneten Schaltfläche „Verifizieren“ wird der eingegebene Code kompiliert[1]. Es werden, falls vorhanden, Fehler in der Syntax erkannt und anschließend im „Nachrichtenbereich“ (9) angezeigt. Beim Anklicken einer Fehlermeldung wird die betreffende Zeile im Code graphisch hervorgehoben. Die Betätigung des „Hochladen“ Buttons (2) bewirkt, dass der Code auf den Arduino übertragen und dort im Programmspeicher festgehalten wird. Auch in diesem Fall wird das Programm zuerst kompiliert und aufgetretene Fehler angezeigt. „Neu“ (3) bewirkt das Öffnen einen neuen Code-Fenster-Tabs. Mit Hilfe der Taste „Öffnen“ (4) lassen sich bereits vorhandene Sketches öffnen und nach Belieben weiter bearbeiten. Durch Betätigen von „Speichern“ (5) wird das aktuell geöffnete Programm abgespeichert. Der „Serial Monitor“ (6) ist ein nützliches Werkzeug beim Programmieren des Arduino. Er kann sehr effizient zum Debuggen[2] verwendet werden, da auf ihm über eine serielle Verbindung Informationen, welche vom Arduino gesendet werden, ausgegeben werden können. Es kann beispielsweise der Wert einer sich ständig ändernden Variable ausgegeben und dadurch überprüft werden. Unter (7) findet man den aktuellen Namen des Sketches. Wird er nicht geändert, so wird das Programm beim nächsten Speichern auch unter diesem Namen auf der Festplatte abgelegt. Im „Codebereich“ (8) wird das Programm geschrieben.

II. Einführung in die Programmiersprache

Bei der Programmiersprache, die beim Arbeiten mit dieser Entwicklungsumgebung eingesetzt wird, handelt es sich um eine abgeänderte und teilweise stark vereinfachte Version der „Sprache C“. Häufig ist es der Fall, dass mehrere Befehle in C, die gemeinsam eine gewisse Aktion hervorrufen, unter einem simplen Befehl in dieser NXC (Englisch, abgekürzt für Not exactly C) Version zusammengefasst sind. Dies hat einerseits den Vorteil, dass Schüler bereits nach einer kurzen Einarbeitungszeit erste funktionierende Programme selbst schreiben können. Andererseits verhindert das Arbeiten mit dieser Sprache auch, dass der Schüler tiefer in die Sprache C einsteigt und den Ablauf komplexerer Programme näher kennenlernt.

1) Aufbau eines Sketches

Programme werden in der Entwicklungsumgebung Arduino als „Sketch“ bezeichnet. Dieser besteht aus mindestens zwei Teilen. Beim Öffnen eines neuen Sketches erscheinen diese beiden Teile automatisch:

void setup()

{

Anweisungen;

}

void loop()

{

Anweisungen;

}

Die setup() Funktion wird beim Start des Programms nur einmal durchlaufen. Hier werden die im Programm verwendeten Pins des Arduino entweder als Eingang oder Ausgang definiert. Zusätzlich kann über den setup() Teil eine serielle Kommunikation mit dem Computer initialisiert werden. Diese lässt sich anschließend über den seriellen Monitor optisch darstellen.

Der loop() Teil des Sketches wird in einer Endlosschleife ständig wiederholt. In diesem Teil wird der Code geschrieben. Durch das ständige Wiederholen der Schleife ist es möglich, durch Veränderung von Variablen[3], Änderungen im Programmablauf zu erreichen.

Variablen sollten im besten Fall bereits vor dem Setup Teil deklariert[4] werden. Zwar ist eine Deklaration auch im loop() Teil möglich, allerdings ist die Variable dann auch nur in dieser Funktion verwendbar. Die setup() Funktion hat in diesem Fall keinen Zugriff auf die Variable. Dies kann zu Fehlern führen und ist daher grundsätzlich zu vermeiden.

[...]


[1] In Maschinensprache übersetzt, damit der Mikrocontroller damit arbeiten kann.

[2] Fehlersuche in Programmen

[3] Mehr zu Variablen und Datentypen unter 2)

[4] festgelegt

Details

Seiten
25
Jahr
2015
ISBN (eBook)
9783668132955
ISBN (Buch)
9783668132962
Dateigröße
1.6 MB
Sprache
Deutsch
Katalognummer
v310220
Note
13
Schlagworte
Arduino Uno Mikrocontroller Programmieren Einstieg

Autor

Zurück

Titel: Programmieren des Arduino Uno im Technologie-Unterricht