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
gf_informatik:microbit_und_roboter_programmieren:aufgaben_hof [2025-08-04 12:22] hofgf_informatik:microbit_und_roboter_programmieren:aufgaben_hof [2025-09-23 12:14] (aktuell) hof
Zeile 31: Zeile 31:
 === Lösungen === === Lösungen ===
  
-<nodisp 2>+<nodisp 1>
 ++++Tipps zu den Aufgaben| ++++Tipps zu den Aufgaben|
 === A2 === === A2 ===
Zeile 107: Zeile 107:
  
  
-<nodisp 2>+<nodisp 1>
 ++++Lösungen Aufgaben A| ++++Lösungen Aufgaben A|
 === A1 === === A1 ===
Zeile 262: Zeile 262:
 Tipps: Tipps:
    * Definiere zuerst Bilder für die sechs Seiten des Würfels.    * Definiere zuerst Bilder für die sechs Seiten des Würfels.
-   * Verwende das ''random''-Modul, um eine random Zahl (resp. random Bild) zu bestimmen.+   * Verwende das ''random''-Modul, um eine random Zahl (resp. random Bild) zu bestimmen ([[gf_informatik:programmieren_ii#zufallszahlen|1M Dossier zu Zufallszahlen]]).
  
 {{ :gf_informatik:wuerfel.jpg?100 |}} {{ :gf_informatik:wuerfel.jpg?100 |}}
Zeile 280: Zeile 280:
 Zwei Spielerinnen würfeln abwechslungsweise (eine mit linkem, eine mit rechtem Knopf). Es wird immer die jeweils gewürfelte Zahl angezeigt. Im Hintergrund werden für beide Spielerinnen diese Werte aufsummiert. Wer zuerst die Summe 42 (oder mehr) erreicht hat, hat gewonnen. Von dieser Spielerin wird dann das Lieblingstier angezeigt. Zwei Spielerinnen würfeln abwechslungsweise (eine mit linkem, eine mit rechtem Knopf). Es wird immer die jeweils gewürfelte Zahl angezeigt. Im Hintergrund werden für beide Spielerinnen diese Werte aufsummiert. Wer zuerst die Summe 42 (oder mehr) erreicht hat, hat gewonnen. Von dieser Spielerin wird dann das Lieblingstier angezeigt.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösungen Aufgaben B| ++++Lösungen Aufgaben B|
  
Zeile 381: Zeile 381:
 Tipp 2: Verwende die Funktion ''int()'', um aus einer Kommazahl eine Ganzzahl zu machen. Tipp 2: Verwende die Funktion ''int()'', um aus einer Kommazahl eine Ganzzahl zu machen.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösungen Aufgaben C| ++++Lösungen Aufgaben C|
 === C1 === === C1 ===
Zeile 508: Zeile 508:
 Schreibe ein Programm, das die Umgebungslautstärke auf dem Display angezeigt (`microphone.sound_level()` - [[https://microbit-micropython.readthedocs.io/en/v2-docs/microphone.html|Dokumentation]]). Je lauter, desto mehr und hellere Punkte sollen leuchten. Wie reagiert der Microbit auf das Programm aus E1 / E2, das auf einem anderen Gerät abgespielt wird? Schreibe ein Programm, das die Umgebungslautstärke auf dem Display angezeigt (`microphone.sound_level()` - [[https://microbit-micropython.readthedocs.io/en/v2-docs/microphone.html|Dokumentation]]). Je lauter, desto mehr und hellere Punkte sollen leuchten. Wie reagiert der Microbit auf das Programm aus E1 / E2, das auf einem anderen Gerät abgespielt wird?
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
 <code python> <code python>
 from microbit import * from microbit import *
 + 
 while True: while True:
-    # Sound level from 0..250+    # Sound level from 0..255
     level = microphone.sound_level()     level = microphone.sound_level()
-    # How many leds do we light up+    # How bright do we get
-    leds = int(25 * level / 250) +    brightness = int(* level / 255
-    # How bright ist the last led? + 
-    brightness = level % 10 +
     for x in range(5):     for x in range(5):
         for y in range(5):         for y in range(5):
-            value = x * 5 + y +            display.set_pixel(x, y, brightness) 
-            if value < leds: + 
-                display.set_pixel(x,y,9) +
-            elif value == leds: +
-                display.set_pixel(x,y,brightness+
-            else: +
-                display.set_pixel(x,y,0+
     sleep(10)     sleep(10)
 </code> </code>
Zeile 550: Zeile 542:
         for y in range(5):         for y in range(5):
             if x < 4:             if x < 4:
 +                # Copy value from next column, such that the columns
 +                # scroll from right to left side of display. 
                 display.set_pixel(x, y, display.get_pixel(x+1,y))                 display.set_pixel(x, y, display.get_pixel(x+1,y))
             elif 4-y < leds:             elif 4-y < leds:
 +                # In the rightmost column, draw the bar for the current
 +                # volume.
                 display.set_pixel(x, y, 9)                 display.set_pixel(x, y, 9)
             elif 4-y == leds:             elif 4-y == leds:
 +                # Top non-dark pixel of the bar is dimmed according to fractional 
 +                # volume.
                 display.set_pixel(x, y, brightness)                 display.set_pixel(x, y, brightness)
             else:             else:
 +                # The top pixels of the last column are black (cleared)
                 display.set_pixel(x, y, 0)                 display.set_pixel(x, y, 0)
    
Zeile 567: Zeile 566:
 Schreibe ein Programm, um Musik abzuspielen. Verwende das `pin_logo`, `pin1` und `pin2` als berührungsempfindlicher Sensor (`pin1.set_touch_mode(pin1.CAPACITIVE)`). Wieviele Kombinationen der drei Pins gibt es? Das sollte für eine [[wpde>Diatonik|diatonische Tonleiter]] reichen... Schreibe ein Programm, um Musik abzuspielen. Verwende das `pin_logo`, `pin1` und `pin2` als berührungsempfindlicher Sensor (`pin1.set_touch_mode(pin1.CAPACITIVE)`). Wieviele Kombinationen der drei Pins gibt es? Das sollte für eine [[wpde>Diatonik|diatonische Tonleiter]] reichen...
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
 <code python> <code python>
Zeile 689: Zeile 688:
 In einer früheren Aufgabe hast du Schere-Stein-Papier bereits einmal programmiert. Programmiere es nun so (um), dass die beiden Spieler:innen beide ihren micro:bit in der Hand halten. Um einen Zug zu machen, wird der micro:bit geschüttelt. Die micro:bit kommunizieren natürlich über BLE miteinander. Das Ergebnis eines Zuges und der aktuellste Spielstand könnte auch über den Lautsprecher ausgegeben werden. Im Dossier kannst du nachlesen, wie man Sounds abspielen kann. In einer früheren Aufgabe hast du Schere-Stein-Papier bereits einmal programmiert. Programmiere es nun so (um), dass die beiden Spieler:innen beide ihren micro:bit in der Hand halten. Um einen Zug zu machen, wird der micro:bit geschüttelt. Die micro:bit kommunizieren natürlich über BLE miteinander. Das Ergebnis eines Zuges und der aktuellste Spielstand könnte auch über den Lautsprecher ausgegeben werden. Im Dossier kannst du nachlesen, wie man Sounds abspielen kann.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösungen Aufgaben F| ++++Lösungen Aufgaben F|
 === F1 === === F1 ===
Zeile 895: Zeile 894:
   * Button B: fährt nach rechts (wenn Touch Logo gleichzeitig gedrückt)   * Button B: fährt nach rechts (wenn Touch Logo gleichzeitig gedrückt)
  
-<nodisp 2>+<nodisp 1>
 ++++Lösungen| ++++Lösungen|
 === G1 === === G1 ===
  • gf_informatik/microbit_und_roboter_programmieren/aufgaben_hof.1754310144.txt.gz
  • Zuletzt geändert: 2025-08-04 12:22
  • von hof