Workshop Elektronischer Würfel: Unterschied zwischen den Versionen
(→Technische Geräte) |
(→Die Idee aus pädagogischer Sicht[Bearbeiten | Quelltext bearbeiten]) |
||
Zeile 20: | Zeile 20: | ||
*Bau und Test einfacher elektrische Schaltungen | *Bau und Test einfacher elektrische Schaltungen | ||
− | **LED als Diode, Widerstände, | + | **LED als Diode, Widerstände, Reihen- und Parallelschaltungen |
**Erstellen und Lesen von Schaltplänen | **Erstellen und Lesen von Schaltplänen | ||
*Programmierung auf unterschiedlichem Abstraktions- und Hardware-Niveaus | *Programmierung auf unterschiedlichem Abstraktions- und Hardware-Niveaus | ||
Zeile 37: | Zeile 37: | ||
===Technische Geräte=== | ===Technische Geräte=== | ||
− | * einen PC (Windows/Linux/Android/MacOS) mit der Arduino-Umgebung und einem USB-Anschluss | + | *einen PC (Windows/Linux/Android/MacOS) mit der Arduino-Umgebung und einem USB-Anschluss |
− | * ein Steckboard | + | *ein Steckboard |
− | * ein ESP8266 oder einen vergleichbaren Microprozessor (ESP32/Arduino/Seeeduino u.s.w.) mit mindestens drei freien digitalen PINs | + | *ein ESP8266 oder einen vergleichbaren Microprozessor (ESP32/Arduino/Seeeduino u.s.w.) mit mindestens drei freien digitalen PINs |
− | * Steckbrücken und/oder Jumper-Kabel | + | *Steckbrücken und/oder Jumper-Kabel |
− | * LEDs (mindestens 7 Stück pro ) | + | *LEDs (mindestens 7 Stück pro ) |
− | * Widerstände | + | *Widerstände |
− | ** die [https://www.led-shop.com/Vorwiderstand-berechnen Berechnung] der Vorwiderstände einer LED erfolgt entweder per Hand mit den Kenndaten der LED oder mithilfe des [https://www.pollin.de/led-vorwiderstands-rechner LED-Rechners] | + | **die [https://www.led-shop.com/Vorwiderstand-berechnen Berechnung] der Vorwiderstände einer LED erfolgt entweder per Hand mit den Kenndaten der LED oder mithilfe des [https://www.pollin.de/led-vorwiderstands-rechner LED-Rechners] |
===Software=== | ===Software=== | ||
− | * minimal wird die Arduino-Umgebung benötigt | + | *minimal wird die Arduino-Umgebung benötigt |
===Sonstiges=== | ===Sonstiges=== |
Version vom 2. Juni 2021, 15:07 Uhr
Diese Seite befindet sich noch im Aufbau
Elektronischer Würfel | |
---|---|
Allgemeine Informationen | |
Klassenstufe | ab Klasse 8 |
Zeitumfang | 4 x 2 Unterrichtsstunden |
Schwierigkeitsgrad | mittel bis hoch (anpassbar) |
Equipment | Microprozessoren, PC |
Zurück zu den Projekten.
Inhaltsverzeichnis
Die Idee
Wir bauen einen elektronischen Würfel, der zufällig Zahlen von Eins bis Sechs erzeugen und diese auf LEDs in der üblichen Form anzeigen kann. Realisiert wird dieses Projekt mit Hilfe von Mikroprozessoren vom AtTiny bis zum, ESP8266/ESP32 und die Programmierung reicht vom Assemblercode für den AtTiny über C++ in der Arduino-Umgebung bis hin zum visuellen Blockly-Script.
Am Ende verstehst du, wie man zufällige Ereignisse mit Mikroprozessoren generieren kann und welche Unterschiede es zwischen physikalischem und deterministischem Zufall gibt. Du lernst auch etwas über elektrische Grundschaltungen und - falls du dich für die AtTiny-Variante entscheidest - wie ein Mikroprozessor arbeitet. Einfache Programmiererfahrungen sind hilfreich aber keine Voraussetzung für diesen Workshop.
Die Idee aus pädagogischer Sicht[Bearbeiten | Quelltext bearbeiten]
Außerhalb der Alltäglichkeit von Schule kann der Schuler im Workshop folgende Kompetenzen erlernen oder festigen:
- Bau und Test einfacher elektrische Schaltungen
- LED als Diode, Widerstände, Reihen- und Parallelschaltungen
- Erstellen und Lesen von Schaltplänen
- Programmierung auf unterschiedlichem Abstraktions- und Hardware-Niveaus
- Zusammenhang von Schaltung und Programm
- Optional: Übertragung des Aufbaus der Schaltung in ein Platinen-Layout
- Notwendigkeit und Realisierung von Zufallsgeneratoren
- physikalischer Zufall
- Nutzung und Bewertung eingebaute Funktionen
- eigene Versuche (AtTiny)
- Darstellung von Zahlen, Binär- und Dezimalsystem
Was kann das Fraunhofer IMWS leisten?
Neben dem technischen Wissen und dem Erfahrungsschatz unserer Mitarbeiter auch in Form von Weiterbildungen und Einführungsveranstaltungen für interessierte Pädagogen und Erfahrungen vergangener Projekte zur Programmierung von Mikroprozessoren, verfügen wir über einen Schülersatz von PCs Mikroprozessoren für erste Versuche.
Diese Materialien benötigt ihr
Technische Geräte
- einen PC (Windows/Linux/Android/MacOS) mit der Arduino-Umgebung und einem USB-Anschluss
- ein Steckboard
- ein ESP8266 oder einen vergleichbaren Microprozessor (ESP32/Arduino/Seeeduino u.s.w.) mit mindestens drei freien digitalen PINs
- Steckbrücken und/oder Jumper-Kabel
- LEDs (mindestens 7 Stück pro )
- Widerstände
- die Berechnung der Vorwiderstände einer LED erfolgt entweder per Hand mit den Kenndaten der LED oder mithilfe des LED-Rechners
Software
- minimal wird die Arduino-Umgebung benötigt
Sonstiges
Anleitung
Vorbereitung
Tipps
Für den Schüler
Unser kleinstes Arduino-Würfel-Programm
1 /* Reduziertes Würfelprogramm ohne Random-Funktion
2 -----------------------------------------------------------------------------------------*/
3 byte ledPin[3] = {D1, D2, D3}; // D1: eine LED, D2: 2 LEDS, D3: 4LEDS
4
5 void showDice(byte dice) {
6 for (byte i=0; i<=2; i++) // für alle drei Stellen
7 digitalWrite(ledPin[i], (dice>>i)&B1); // schalte PIN je nach Inhalt der Stelle
8 }
9
10 void setup() {
11 for(byte i=0; i<=2; i++) // für alle drei Stellen
12 pinMode(ledPin[i], OUTPUT); // schalte PIN aus
13 }
14
15 void loop() {
16 showDice(micros()%6 + 1); // alternative: random(6)
17 delay(1999); // warte 1,999 Sekunden und mache weiter
18 }
Die Randomfunktion erfolgt in Zeile 16 zeitgesteuert über den lokalen Zeitstempel (micros() oder nanos()) . Alternativ könnte auch ein Taster verwendet werden.
Warum erzeugt dies in der Realität trotzdem zufällige Werte?
Schaltung der LEDs für den Würfel
Es werden drei Pins benötigt, an denen eine (PIN 0), zwei (PIN 1) und vier (PIN 2) LEDs angeschlossen sind.
Zahl | Binärzahl (8 bit) | LEDs | zu schaltende Pins |
---|---|---|---|
1 | 0000 0001 | PIN 0 | |
2 | 0000 0010 | PIN 1 | |
3 | 0000 0011 | PIN 0 und 1 | |
4 | 0000 0100 | PIN 2 | |
5 | 0000 0101 | PIN 2 und 0 | |
6 | 0000 0110 | Pn 2 und 1 |
Es werden nur drei Pins für alle sechs LEDs benötigt (0, 1, 2). Der Vorteil liegt in der direkten Übersetzung von Binärzahlen in die Schaltung.
Den Unterschied zum üblichen Würfel bilden die Zahlen 2 und 3, die nicht wie gewohnt diagonal sondern quer dargestellt werden.
Wie funktioniert die Übersetzung Zahl in PIN-Belegung?
Die Funktion showDice(byte dice)
wird im Programm mit einer Zahl aufgerufen z.B. showDice(5)
.
Jetzt müssen nacheinander die letzten drei Stellen dieser Zahl im Binärcode ausgelesen werden.
Stelle 0:
dice >> 0
verschiebt den Wert der Variable dice
um 0 Bit nach rechts (also gar nicht), aus 0000 0101
wird 0000 0101
Das Ergebnis wird logisch UND-verknüpft mit der Zahl B1 (= 0000 0001): 0000 0101 && 0000 0001 = 0000 0001
( 1, PIN 0 einschalten).
Alle Stellen, in denen in beiden Zahlen eine Null vorkommt, werden Null, alle Stellen, in denen in beiden zahlen eine 1 vorkommt bleiben 1.
Die Schift(Schiebe)-Operation verschiebt die interessante Stelle nach ganz rechts außen, die Zahl 0000 0001 dient als Filter und löscht alle anderen Stellen aus.
(dice >> 0) && B1
kombiniert einfach beides.
Stelle 1:
dice >> 1
verschiebt die Zahl um 1 Bit nach rechts und füllt links mit Nullen auf, aus 0000 0101
wird 0000 0010
0000 0010 && 0000 0001 = 0000 0000
(0, PIN 1 ausschalten)
Stelle 2:
dice >> 2
verschiebt die Zahl um 2 Bit nach rechts und füllt links mit Nullen auf, aus 0000 0101 wird 0000 0001
0000 0001 && 0000 0001 = 0000 0001
(1, PIN 2 einschalten)
Für den Lehrer
- Die Voraussetzung im Umgang mit Computern streuen bei den Kindern sehr stark. Unterschiedliche Anspruchsniveaus können ein Gleichgewicht schaffen.
- Alle Tücken, die Computer aufweisen können, möglichst vor der Benutzung durch den Schülern eliminieren.