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:04] – [Auftrag 2] 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>
  
 <code python auftrag_1.py> <code python auftrag_1.py>
-asd+# Imports go at the top 
 +from microbit import * 
 + 
 +x = 2 
 +y = 2 
 + 
 +while True: 
 +    if button_a.get_presses(): 
 +        x -= 1 
 +    if button_b.get_presses(): 
 +        x += 1 
 +    if x < 0: x = 0 
 +    elif x > 4: x = 4 
 +    display.clear() 
 +    display.set_pixel(x,y,9) 
 +    sleep(100)
 </code> </code>
 +
 +<code python auftrag_2.py>
 +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 python auftrag_3.py>
 +</code>
 +
  
 </nodisp> </nodisp>
  
 +++++
  
  • talit/microbit.1713726274.txt.gz
  • Zuletzt geändert: 2024-04-21 19:04
  • von sca