Workshop Elektronischer Würfel

Aus innolab
Version vom 2. Juni 2021, 14:37 Uhr von Eckstein (Diskussion | Beiträge) (Die Idee aus pädagogischer Sicht[Bearbeiten | Quelltext bearbeiten])
Zur Navigation springen Zur Suche springen

Diese Seite befindet sich noch im Aufbau

Elektronischer Würfel
P3D Spielfiguren.jpg
Allgemeine Informationen
Klassenstufe ab Klasse 8
Zeitumfang 4 x 2 Unterrichtsstunden
Schwierigkeitsgrad mittel bis hoch (anpassbar)
Equipment Microprozessoren, PC


Zurück zu den Projekten.

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, Reichen 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

Software

Sonstiges

Anleitung

Vorbereitung

Konstruktion am PC

Tipps

Für den Schüler

Unser kleinstes Arduino-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.

Würfelsumme und Pinbelegung
Zahl Binärzahl (8 bit) LEDs zu schaltende Pins
1 0000 0001
Schaltung der Würfel-LEDS
Schaltung der Würfel-LEDS
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.

Weiterführende Links