SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:
ARBEITEN MIT DEM ARDUINO KURZBESCHREIBUNG UND ZIELSETZUNG: In diesem optionalen Modul lernen die Schüler das Arbeiten mit Microcontrollern kennen. Das neu erworbene Wissen kann anschließend genutzt werden, um ihren bisherigen Infrarot Sender und - empfänger weiterzuentwickeln und daraus beispielsweise einen einfachen Abstandssensor zu machen. Mit Hilfe von Microcontrollern lassen sich aber auch Projekte aus anderen Modulen (z.b. Induktionssensoren) weiterentwickeln oder völlig neue Ideen umsetzen. Als Microcontroller wird der Controller des UNO Boards verwendet. Das Board bietet einfache Anschlussmöglichkeiten an den vorhandenen digitalen und analogen Ein- und Ausgängen und lässt sich über USB-Anschluss an den Computer anschließen und programmieren. Die Entwickler haben für die Programmierung eine eigene Entwicklungsumgebung geschaffen, die kostenlos Online erhältlich ist. DAUER: CA. 2 UNTERRICHTSSTUNDEN DIDAKTISCHE UND METHODISCHE HINWEISE: Die verwendete Programmiersprache basiert auf C/C++ und ist Java und C++ sehr ähnlich. Damit haben die Schülerinnen und Schüler bisher keine Erfahrung. Allerdings haben sie die für die Programmierung nötigen Grundbegriffe wie Attribut, Methode und wichtige algorithmische Kontrollstrukturen bereits in der 6. und 7. Jahrgangsstufe kennengelernt. Diese werden im Laufe der Unterrichtssequenz kurz wiederholt. Bei der Programmierung eines eigenen Microcontrollers arbeiten die Schüler in Gruppen. Die Gruppengröße ergibt sich hierbei aus der Anzahl der zur Verfügung stehenden Boards und der für die Programmierung nötigen Computer. Lernziele: Die SuS kennen die Funktion eines Microcontrollers. Die SuS können ein einfaches Programm für einen Microcontroller nachvollziehen. Die SuS können einfache Programme für einen Mircocontroller selbst schreiben.
1. & 2. UNTERRICHTSSTUNDE (EINFÜHRUNG MICROCONTROLLER AM BEISPIEL DES ARDUINO) Ablaufvorschlag: Motivation / Hinführung Lerninhalte Den Schülern werden zwei Schaltungen vorgeführt, bei denen ein Mikrocontroller verwendet wurde: Eine LED wird mit Hilfe einer beliebigen Infrarotfernbedienung ein- und wieder ausgeschaltet. Eine LED wird durch ein akustisches Signal (z.b. Klatschen oder Schnipsen) ein- und wieder ausgeschaltet. Medien Schaltung zur Steuerung einer LED mit einer Fernbedienung Schaltung zur Steuerung einer LED mit Hilfe eines Mikrofons Aufbau und Funktionsweise Microcontroller Der Aufbau des ARDUINO Boards mit integriertem Microcontroller wird mit Hilfe eines Arbeitsblattes erklärt. Aufbau und Programmierung siehe Anhang AB Arbeiten mit dem Programmieren des Boards Den SuS wird die Programmierumgebung für das Board vorgestellt. Anschließend bauen sie in Gruppen die Schaltung BlinkLicht auf und programmieren das Board mit dem vorgegebenen Sketch. Dabei beantworten sie Fragen zum Sketch auf dem Arbeitsblatt. Das AB wird besprochen und die Methoden setup() und loop() werden erklärt. AB Arbeiten mit dem Arbeitsauftrag 1: Die SuS bauen und programmieren selbständig eine Schaltung, bei der eine rote und eine grüne LED abwechselnd ein- und ausgeschaltet sind. Arbeitsauftrag 2: Die SuS bauen und programmieren einen Batterietester für 4,5 V Batterien. Die Batterie wird dabei an einen der analogen Eingänge angeschlossen. Beträgt die Spannung der Batterie weniger als 3 Volt, so soll das rote Lämpchen leuchten, sonst das grüne.
MATERIALIEN UND MEDIEN: Arbeitsblätter für das Portfolio: AB Arbeiten mit dem Material für den Unterricht Für die verwendeten und zu bauenden Schaltungen wird das folgende Material benötigt: UNO Platine IR-Empfänger (z.b. Vishay TSOP4838) Dynamisches Mikrofon (z.b. Universalmikrofon 58626 von Leybold) LED rot (z.b. 2,25V 20mA) LED grün (z.b. 2,2V 20mA) Vorwiderstände für die LEDs (bei obigen LEDs jeweils 150Ω) Flexible Steckbrücken 4,5 V Batterie Steckplatine USB-Kabel für den Anschluss des Boards an den Computer LITERATUR: - Ein schneller Einstieg in die Microcontroller-Entwicklung, 2. Auflage, 2015, Maik Schmidt, dpunkt.verlag Einführung in und Einführungsbeispiele unter: www.arduino.cc
SINNSORIK Aufbau des - UNO: ARBEITEN MIT DEM ARDUINO A GND 13 12 11 10 9 8 7 DIGITAL 6 5 4 3 2 1 0 USB Microcontroller POWER Res 3,3V 5V GND GND Vin ANALOG IN A0 A1 A2 A3 A4 A5 Die mit A0 A5 bezeichneten Pins sind analoge Eingänge. Dort können eingehende Signale registriert werden. Die mit 0 13 bezeichneten Pins sind digitale Ein- und Ausgänge. Dort können Signale sowohl empfangen werden, also auch Signale ausgegeben werden (z.b. Einschalten einer LED). Programmieren des Microcontrollers: Baue die Schaltung gemäß dem folgenden Plan auf! A GND 13 12 11 10 9 8 7 DIGITAL 6 5 4 3 2 1 0 USB Microcontroller POWER Res 3,3V 5V GND GND Vin ANALOG IN A0 A1 A2 A3 A4 A5 Schließe den mit Hilfe des USB-Kabels an deinen Computer an und öffne die Entwicklungsumgebung! Erstelle einen neuen Sketch: Datei Neu Schreibe den folgenden Sketch ab und lade ihn auf das Board hoch!
void setup() pinmode(12, OUTPUT); void loop() digitalwrite(12, HIGH); delay(500); digitalwrite(12, LOW); delay(500); Überlege zusammen mit deiner Gruppe, welche Bedeutung die folgenden Anweisungen haben: pinmode(12, OUTPUT): digitalwrite(12, HIGH): delay(500): Nützliche Anweisung für weitere Projekte: If (Bedingung) Sequenz 1 else Sequenz 2 Bsp.: Vgl. Programmiersprache Karol wenn Bedingung dann Sequenz 1 sonst Sequenz 2 *wenn if (eingangssignal > 50) digitalwrite(12, HIGH); else digitalwrite(12, LOW);
SINNSORIK SCHALTPLAN UND QUELLTEXT IR-GESTEUERTE LED A GND 13 12 11 10 9 8 7 DIGITAL 6 5 4 3 2 1 0 USB Microcontroller POWER Res 3,3V 5V GND GND Vin ANALOG IN A0 A1 A2 A3 A4 A5 int LEDPin = 12; int IREmpfangsPin = A3; int irempfang; boolean lampean = false; void setup() pinmode(ledpin, OUTPUT); IR Sensor void loop() irempfang = analogread(irempfangspin); if(irempfang < 500) if(lampean == false) digitalwrite(ledpin, HIGH); lampean = true; else digitalwrite(ledpin, LOW); lampean = false; delay(500); delay(1);
SCHALTPLAN UND QUELLTEXT KLATSCHLED A GND 13 12 11 10 9 8 7 DIGITAL 6 5 4 3 2 1 0 USB Microcontroller int LEDPin = 12; int MikrofonPin = A3; int lautstaerke; boolean lampean = false; void setup() pinmode(ledpin, OUTPUT); digitalwrite(ledpin, LOW); POWER ANALOG IN Res 3,3V 5V GND GND Vin A0 A1 A2 A3 A4 A5 Mikrofon void loop() lautstaerke = analogread(mikrofonpin); if(lautstaerke > 5) if(lampean == false) digitalwrite(ledpin, HIGH); lampean = true; else digitalwrite(ledpin, LOW); lampean = false; delay(100); delay(1);