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 [2023-09-13 09:12] – [Aufgabe G0: Distanzmesser] gragf_informatik:microbit_und_roboter_programmieren:aufgaben_hof [2024-09-30 07:54] (aktuell) – [Aufgabe G6 (Medium): Remote Control] hof
Zeile 360: Zeile 360:
    1. Wie musst du den micro:bit halten und wie musst du dich bewegen?    1. Wie musst du den micro:bit halten und wie musst du dich bewegen?
  
-=== Aufgabe C4 (Advanced) ===+=== Aufgabe C4 ===
  
    1. Schreibe ein Programm, welches die **Gesamtbeschleunigung** misst und den Wert in der Konsole ausgibt. Füge nach jeder Messung wieder eine Pause ein.    1. Schreibe ein Programm, welches die **Gesamtbeschleunigung** misst und den Wert in der Konsole ausgibt. Füge nach jeder Messung wieder eine Pause ein.
    1. Hältst du den micro:bit still, sollten der bekannte Wert $9.81$ (oder zumindest Wert in der Nähe davon) angezeigt werden, unabhängig davon, in welche Richtung der micro:bit zeigt.    1. Hältst du den micro:bit still, sollten der bekannte Wert $9.81$ (oder zumindest Wert in der Nähe davon) angezeigt werden, unabhängig davon, in welche Richtung der micro:bit zeigt.
    1. Bewege den micro:bit nun so, dass du eine möglichst grosse Beschleunigung misst. Beschädige ihn aber nicht!    1. Bewege den micro:bit nun so, dass du eine möglichst grosse Beschleunigung misst. Beschädige ihn aber nicht!
-   1. Mit den Tasten sollst du nun zwischen drei Modi umstellen können:+   1. Erweiterung: Mit den Tasten sollst du nun zwischen drei Modi umstellen können:
       1. Anzeige in mg (z.B. $1018$)       1. Anzeige in mg (z.B. $1018$)
       1. Anzeige in $g$'s (z.B. $1.02$)       1. Anzeige in $g$'s (z.B. $1.02$)
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 492: Zeile 492:
   * shake   * shake
   * freefall   * freefall
 +
 +
 ==== Aufgaben E (Audio) ==== ==== Aufgaben E (Audio) ====
  
Zeile 504: Zeile 506:
  
 === Aufgabe E3 === === Aufgabe E3 ===
-Schreibe ein Programm, das die Umgebungslautstärke auf dem Display angezeigt (`microphone.sound_level()` - [[https://microbit.org/get-started/user-guide/python/#microphone|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>
Zeile 532: Zeile 534:
 </code> </code>
 ++++ ++++
 +++++Als Equalizer|
 +<code python>
 +from microbit import *
 +
 +
 +while True:
 +    # Sound level from 0..250
 +    level = microphone.sound_level()
 +    # How many leds do we light up?
 +    leds = int(5 * level / 250)
 +    # How bright ist the last led?
 +    brightness = level % 10
 + 
 +    for x in range(5):
 +        for y in range(5):
 +            if x < 4:
 +                display.set_pixel(x, y, display.get_pixel(x+1,y))
 +            elif 4-y < leds:
 +                display.set_pixel(x, y, 9)
 +            elif 4-y == leds:
 +                display.set_pixel(x, y, brightness)
 +            else:
 +                display.set_pixel(x, y, 0)
 + 
 +    sleep(200)
 +</code>
 +++++
 +
 </nodisp> </nodisp>
 +
 === Zusatzaufgabe E4: Mini-Keyboard === === Zusatzaufgabe E4: Mini-Keyboard ===
 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 658: Zeile 689:
 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 812: Zeile 843:
  
    * Arbeite für diese Aufgaben in einer **2er-Gruppe**.    * Arbeite für diese Aufgaben in einer **2er-Gruppe**.
-   * [[gf_informatik:microbit_programmieren_grundlagen#maqueen_interface#maqueen|Hier]] ist erklärt, wie der Distanzsensor und die Motorsteuerung funktionieren und wie der Microbit mit diesen Modulen kommuniziert.+   * [[gf_informatik:microbit_programmieren_grundlagen#maqueen|Hier]] ist erklärt, wie der Distanzsensor und die Motorsteuerung funktionieren und wie der Microbit mit diesen Modulen kommuniziert.
    * Studiere auf jeden Fall die **Theorie** zum [[gf_informatik:microbit_programmieren_grundlagen#maqueen_interface|Maqueen Interface]]. Das brauchst du, damit du den Maqueen einfach steuern und seine Sensoren auslesen kannst.    * Studiere auf jeden Fall die **Theorie** zum [[gf_informatik:microbit_programmieren_grundlagen#maqueen_interface|Maqueen Interface]]. Das brauchst du, damit du den Maqueen einfach steuern und seine Sensoren auslesen kannst.
  
-=== Aufgabe G0: Distanzmesser ===+=== Aufgabe G0: Distanzmesser (schwieriger als gedacht) ===
  
-Schreibe ein Programm, das das Display heller werden lässt, je näher der Maqueen zu einem Objekt ist. Betrachte zuerst den Beispiel-Code in der  Theorie zum [[gf_informatik:microbit_programmieren_grundlagen#ultraschall-sensor|Ultraschall-Distanzmesser]]. +Schreibe ein Programm, das das Display heller werden lässt, je näher der Maqueen zu einem Objekt ist. Betrachte zuerst den Beispiel-Code in der  Theorie zum [[gf_informatik:microbit_programmieren_grundlagen#distanzmesser|Distanzmesser]]. 
-  * Das Programm soll für einen Distanz-Bereich zwischen 0 und 9 Dezimetern funktionieren.+  * Das Programm soll für einen Distanz-Bereich zwischen 0 und 9 Dezimetern (1 Dezimeter = 10cm) funktionieren.
   * Verwende eine bereits bekannte Methode, um die Display-Helligkeit abhängig von einer Variable zu setzen.   * Verwende eine bereits bekannte Methode, um die Display-Helligkeit abhängig von einer Variable zu setzen.
  
 === Aufgabe G1: Figur abfahren === === Aufgabe G1: Figur abfahren ===
  
-   1. Studiere die Theorie zur **Driver**-Schnittstelle ([[gf_informatik:microbit_programmieren_grundlagen#motorsteuerung]])+   1. Studiere die Theorie zur **Driver**-Schnittstelle ([[gf_informatik:microbit_programmieren_grundlagen#motorsteuerung|Motorsteuerung]])
    1. Lasse den Maqueen ein **Quadrat** fahren.    1. Lasse den Maqueen ein **Quadrat** fahren.
    1. Lasse deinen Maqueen eine der folgenden **Optionen** abfahren:    1. Lasse deinen Maqueen eine der folgenden **Optionen** abfahren:
Zeile 829: Zeile 860:
       1. Für **Narzist:innen**: eigener Name / Spitzname / Initialen       1. Für **Narzist:innen**: eigener Name / Spitzname / Initialen
       1. Für **Schleimer:innen**: Name / Initialen der Lehrperson (aber kein Spitzname!)       1. Für **Schleimer:innen**: Name / Initialen der Lehrperson (aber kein Spitzname!)
-      1. Für **Royalist:innen:** Portrait der Queen+      1. Für **Royalist:innen:** Portrait des Königs
  
 === Aufgabe G2: Fahren bis zum Hindernis === === Aufgabe G2: Fahren bis zum Hindernis ===
  
-Verwende die `Chassis`-Schnittstelle und fahre geradeaus bis zu einem HindernisWende um 90 Grad und wiederhole drei Mal. +Verwende die `Chassis`-Schnittstelle. Wenn die A-Taste gedrückt wurde, soll der Roboter losfahren. Wenn er ein Hindernis (weniger als 8 cm) vor sich hat, soll er stopppen.
 === Aufgabe G3: Staubsaugroboter === === Aufgabe G3: Staubsaugroboter ===
  
Zeile 865: Zeile 895:
   * 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 ===
Zeile 897: Zeile 927:
         chassis.stop()         chassis.stop()
 </code> </code>
 +++++
 +</nodisp>
 +<nodisp 1>
 +++++Lösungen|
  
 === G3 === === G3 ===
  • gf_informatik/microbit_und_roboter_programmieren/aufgaben_hof.1694596356.txt.gz
  • Zuletzt geändert: 2023-09-13 09:12
  • von gra