Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:microbit [2024-04-21 19:05] – [Lösungen] scatalit:microbit [2024-04-29 11:36] (aktuell) – [Lösungen Aufgaben] sca
Zeile 35: Zeile 35:
  
  
-===== - Micro:bit kennenlernen =====+===== - Aufgaben =====
  
 Die hilfreichste Quelle ist das Wiki vom Grundlagenfach 2M: https://sca.ksr.ch/doku.php?id=gf_informatik:microbit_programmieren_grundlagen Die hilfreichste Quelle ist das Wiki vom Grundlagenfach 2M: https://sca.ksr.ch/doku.php?id=gf_informatik:microbit_programmieren_grundlagen
  
-==== Auftrag 1 ====+==== Aufgabe 1: LED-Matrix ==== 
 + 
 +Erstelle GitHub-Repo **microbit**, lege darin die Codes ab.
  
    1. Das LED im Zentrum der $5 \times 5-$LED-Matrix soll leuchten. Drückt man den linken/rechten Knopf, soll sich das Licht nach links/rechts bewegen. Es soll immer genau eine LED leuchten.<WRAP>    1. Das LED im Zentrum der $5 \times 5-$LED-Matrix soll leuchten. Drückt man den linken/rechten Knopf, soll sich das Licht nach links/rechts bewegen. Es soll immer genau eine LED leuchten.<WRAP>
Zeile 49: Zeile 51:
    1. Wahrscheinlich gibt es jetzt eine Fehlermeldung, wenn man über den Rand hinauslaufen will. Vermeide dies! Erreicht man den linken/rechten Rand, geht es nicht weiter in die linke/rechte Richtung.    1. Wahrscheinlich gibt es jetzt eine Fehlermeldung, wenn man über den Rand hinauslaufen will. Vermeide dies! Erreicht man den linken/rechten Rand, geht es nicht weiter in die linke/rechte Richtung.
  
-==== Auftrag 2 ====+==== Aufgabe 2: Würfel ====
  
 Implementiere einen Würfel. Drückt man eine der beiden Tasten, soll eine Zufallszahl $1$ bis $6$ generiert (-> random-Modul) und das entsprechende Würfelsymbol angezeigt werden. Zeichne die Bilder mit `display.set_pixel(...)` selbst. Implementiere einen Würfel. Drückt man eine der beiden Tasten, soll eine Zufallszahl $1$ bis $6$ generiert (-> random-Modul) und das entsprechende Würfelsymbol angezeigt werden. Zeichne die Bilder mit `display.set_pixel(...)` selbst.
  
-==== Auftrag 3 ====+==== Aufgabe 3: Misc ====
  
-   1. **Buttons und LED-Matrix**: +   1. FotoschauIm micro:bit sind viele verschiedene Bilder vordefiniertSpeichere einige davon in einer Liste. Mit den beiden Knöpfen soll man die Bilder durchgehen können
-      1. Micro:bit reagiert auf Tastendruck +   1. Designe ein eigenes hübsches Bild und füge es der Fotoschau hinzu
-      1. Bilder anzeigen auf LED-Matrix +   1. Random ShakeDer micro:bit verfügt über einen BeschleunigungssensorMit diesem kann man u.a. bestimmen, ob der micro:bit gerade geschüttelt wird. Modifiziere deinen Code aus Aufgabe 2: Jedes Mal, wenn der micro:bit geschüttelt wird, wird eine neue Zahl gewürfelt. Das Schütteln kann man auch in Online-Editor simulieren.
-      1eigene Bilder designen und anzeigen +
-      1. Mit Knöpfen durch Liste mit Bildern gehen (Achtung: evkennen 1M Listen noch nicht) +
-   1. **Beschleunigungssensor**: +
-      1. Was macht dieser? Was bedeuten gemessene Werte? +
-      1. Bild auf LED-Matrix leuchtet heller, je höher Beschleunigung ist+
-   1. **BLE**: +
-      1Was ist BLE? Wozu ist es gut? +
-      1Nachrichten zwischen zwei Micro:bits hin und her senden.+
  
-==== Lösungen ====+Optional: 
 + 
 +   1. Benötigt zwei micro:bits: Über BLE können mehrere micro:bit miteinander kommunizieren. Verbinde zwei micro:bit miteinander und modifiziere den Würfel-Code wie folgt: Auf beiden micro:bits wird immer der gleiche Würfel angezeigt. Drückt man auf einem der beiden micro:bits einen Knopf, wird eine neue Zahl gewürfelt und auf *beiden* angezeigt.  
 + 
 + 
 +==== Lösungen Aufgaben ==== 
 + 
 + 
 +++++Lösungen|
  
 <nodisp 2> <nodisp 2>
Zeile 91: Zeile 93:
  
 <code python auftrag_2.py> <code python auftrag_2.py>
-asd+from microbit import * 
 +import random 
 + 
 +def dice(n): 
 +    display.clear() 
 +    if n == 1: 
 +        display.set_pixel(2,2,9) 
 +    elif n == 2: 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +    elif n == 3: 
 +        display.set_pixel(2,2,9) 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +    elif n == 4: 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +    elif n == 5: 
 +        display.set_pixel(2,2,9) 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +    elif n == 6: 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +        display.set_pixel(0,2,9) 
 +        display.set_pixel(4,2,9) 
 + 
 +while True: 
 +    if button_a.get_presses() or button_b.get_presses(): 
 +        dice(random.randint(1,6)) 
 +    sleep(100) 
 +</code> 
 + 
 +Alternative Ideen für dice-Funktion: 
 + 
 +<code python> 
 + 
 +### Variante 1 
 + 
 +def dice(n): 
 +    display.clear() 
 +    if n == 1: 
 +        display.set_pixel(2,2,9) 
 +    elif n == 2: 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +    elif n == 3: 
 +        display.set_pixel(2,2,9) 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +    elif n == 4: 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +    elif n == 5: 
 +        display.set_pixel(2,2,9) 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +    elif n == 6: 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +        display.set_pixel(0,2,9) 
 +        display.set_pixel(4,2,9) 
 + 
 +### Variante 2 
 +def dice(n): 
 +    dots = [ 
 +        [[2,2]], 
 +        [[0,4],[4,0]], 
 +        [[2,2],[0,4],[4,0]], 
 +        [[0,4],[4,0],[0,0],[4,4]], 
 +        [[2,2],[0,4],[4,0],[0,0],[4,4]], 
 +        [[0,4],[4,0],[0,0],[4,4],[0,2],[4,2]], 
 +    ] 
 +    display.clear() 
 +    for pixel in dots[n-1]: 
 +        display.set_pixel(pixel[0],pixel[1],9) 
 + 
 +### Variante 3 
 + 
 +def dice(n): 
 +    display.clear() 
 +    if n % 2 == 1: 
 +        display.set_pixel(2,2,9) 
 +    if n >= 2: 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +    if n >= 4: 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +    if n == 6: 
 +        display.set_pixel(0,2,9) 
 +        display.set_pixel(4,2,9)
 </code> </code>
  
 <code python auftrag_3.py> <code python auftrag_3.py>
-asd 
 </code> </code>
 +
  
 </nodisp> </nodisp>
  
 +++++
  
  • talit/microbit.1713726342.txt.gz
  • Zuletzt geändert: 2024-04-21 19:05
  • von sca