Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:microbit_und_roboter_programmieren:aufgaben_hof [2025-12-02 16:38] – [Aufgabe F3 – Maximale Distanz] gra | gf_informatik:microbit_und_roboter_programmieren:aufgaben_hof [2026-01-03 10:21] (aktuell) – [Lösungen] gra | ||
|---|---|---|---|
| Zeile 391: | Zeile 391: | ||
| <code python> | <code python> | ||
| from microbit import * | from microbit import * | ||
| - | |||
| - | counter = 9 | ||
| s1 = ' | s1 = ' | ||
| Zeile 534: | Zeile 532: | ||
| Je fester der micro:bit beschleunigt wird, desto heller soll die LED-Matrix leuchten. | Je fester der micro:bit beschleunigt wird, desto heller soll die LED-Matrix leuchten. | ||
| - | Tipp 1: Verwende evtl. deine Funktion aus A3 (Advanced 1), mit der du ein Bild von gewünschter Helligkeit erstellen kannst. | + | Tipp 1: Verwende evtl. deine Funktion aus A5, mit der du ein Bild von gewünschter Helligkeit erstellen kannst. |
| Tipp 2: Verwende die Funktion '' | Tipp 2: Verwende die Funktion '' | ||
| Zeile 540: | Zeile 538: | ||
| === Lösungen === | === Lösungen === | ||
| - | < | + | < |
| ++++Lösungen Aufgaben C| | ++++Lösungen Aufgaben C| | ||
| === C1 === | === C1 === | ||
| Zeile 650: | Zeile 648: | ||
| Studiere zuerst den kurzen [[gf_informatik: | Studiere zuerst den kurzen [[gf_informatik: | ||
| - | === Aufgabe D1 === | + | === Aufgabe D1 – Ente oder Haus === |
| Schreibe ein Programm, das eine Ente anzeigt, wenn du den Microbit schüttelst und ein Haus, wenn du ihn nach oben drehst. | Schreibe ein Programm, das eine Ente anzeigt, wenn du den Microbit schüttelst und ein Haus, wenn du ihn nach oben drehst. | ||
| Zeile 692: | Zeile 690: | ||
| === Lösungen === | === Lösungen === | ||
| - | < | + | < |
| ++++Lösungen Aufgaben D| | ++++Lösungen Aufgaben D| | ||
| Zeile 898: | Zeile 896: | ||
| * Mit den beiden Knöpfen soll das Alphabet durchgegangen werden können. | * Mit den beiden Knöpfen soll das Alphabet durchgegangen werden können. | ||
| * Mit dem Touch-Logo soll der Buchstabe versendet werden können. | * Mit dem Touch-Logo soll der Buchstabe versendet werden können. | ||
| - | * Sobald ein Buchstabe empfangen wurde, soll er drei mal hintereinander | + | * Sobald ein Buchstabe empfangen wurde, soll er drei mal hintereinander |
| === Aufgabe F6 – Abstimmen === | === Aufgabe F6 – Abstimmen === | ||
| Zeile 986: | Zeile 984: | ||
| === F3 === | === F3 === | ||
| + | <code python> | ||
| + | from microbit import * | ||
| + | import radio | ||
| + | |||
| + | radio.on() | ||
| + | # radio.config(group = 43) # evtl. eigene Gruppe festlegen. | ||
| + | |||
| + | while True: | ||
| + | radio.send(' | ||
| + | message_full = radio.receive_full() | ||
| + | if message_full: | ||
| + | # text = message_full[0] | ||
| + | signal_strength = message_full[1] | ||
| + | print(signal_strength) | ||
| + | else: | ||
| + | print(" | ||
| + | sleep(100) | ||
| + | </ | ||
| + | |||
| + | === F4 === | ||
| + | <code python> | ||
| + | from microbit import * | ||
| + | import radio | ||
| + | |||
| + | radio.on() | ||
| + | radio.config(group = 43) | ||
| + | |||
| + | while True: | ||
| + | # send | ||
| + | radio.send(' | ||
| + | |||
| + | # receive | ||
| + | message_full = radio.receive_full() | ||
| + | if message_full: | ||
| + | text = message_full[0] | ||
| + | signal_strength = abs(message_full[1]) | ||
| + | print(signal_strength) | ||
| + | if signal_strength < 35: | ||
| + | display.show(Image.HAPPY) | ||
| + | elif signal_strength < 55: | ||
| + | display.show(Image.MEH) | ||
| + | else: | ||
| + | display.show(Image.SAD) | ||
| + | |||
| + | sleep(50) | ||
| + | </ | ||
| + | |||
| + | === F5 === | ||
| + | <code python> | ||
| + | from microbit import * | ||
| + | import radio | ||
| + | |||
| + | alphabet = ' | ||
| + | |||
| + | radio.on() | ||
| + | # radio.config(group = 43) # evtl. eigene Gruppe festlegen. | ||
| + | |||
| + | i = 0 | ||
| + | while True: | ||
| + | display.show(alphabet[i]) | ||
| + | if button_a.was_pressed(): | ||
| + | i = (i - 1) % len(alphabet) | ||
| + | if button_b.was_pressed(): | ||
| + | i = (i + 1) % len(alphabet) | ||
| + | if pin_logo.is_touched(): | ||
| + | radio.send(alphabet[i]) | ||
| + | sleep(200) | ||
| + | |||
| + | message_in = radio.receive() | ||
| + | if message_in: | ||
| + | for n in range(3): | ||
| + | display.show(message_in) | ||
| + | sleep(300) | ||
| + | display.clear() | ||
| + | sleep(300) | ||
| + | </ | ||
| + | |||
| + | === F6 === | ||
| + | <code python> | ||
| + | |||
| + | </ | ||
| + | |||
| + | === F7 === | ||
| + | <code python> | ||
| + | |||
| + | </ | ||
| + | |||
| + | === F8 === | ||
| Einfache aber nicht sehr elegante Lösung: | Einfache aber nicht sehr elegante Lösung: | ||
| <code python> | <code python> | ||
| Zeile 1063: | Zeile 1149: | ||
| </ | </ | ||
| - | === F4 === | + | === F9 === |
| <code python> | <code python> | ||
| - | from microbit import * | ||
| - | import radio | ||
| - | |||
| - | radio.on() | ||
| - | radio.config(group = 43) | ||
| - | while True: | + | </ |
| - | # send | + | |
| - | radio.send(' | + | |
| - | # receive | + | === F10 === |
| - | message_full | + | <code python> |
| - | if message_full: | + | |
| - | text = message_full[0] | + | |
| - | signal_strength | + | |
| - | | + | |
| - | if signal_strength | + | |
| - | display.show(Image.HAPPY) | + | |
| - | elif signal_strength < 55: | + | |
| - | display.show(Image.MEH) | + | |
| - | else: | + | |
| - | display.show(Image.SAD) | + | |
| - | sleep(50) | ||
| </ | </ | ||
| + | |||
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 1099: | Zeile 1168: | ||
| * Studiere auf jeden Fall die **Theorie** zum [[gf_informatik: | * Studiere auf jeden Fall die **Theorie** zum [[gf_informatik: | ||
| - | === 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: | ||
| - | * 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. | ||
| === Aufgabe G1 – Figur abfahren === | === Aufgabe G1 – Figur abfahren === | ||
| Zeile 1121: | Zeile 1185: | ||
| Programmiere einen Staubsaugroboter: | Programmiere einen Staubsaugroboter: | ||
| + | |||
| + | === Aufgabe G4 – Remote Control (Advanced) === | ||
| + | |||
| + | Aufgabe für 2 Personen: | ||
| + | Schreiben Sie eine Fernsteuerung für den Maqueen. Der eine Microbit sendet Signale (links / rechts / geradeaus), der andere empfängt diese und setzt sie in Steuersignale für den Roboter um. | ||
| + | |||
| + | Mögliche Steuerbelegung: | ||
| + | * Touch Logo: muss berührt werden, um zu fahren; ohne Buttons fährt er geradeaus. | ||
| + | * Button A: fährt nach links (wenn Touch Logo gleichzeitig gedrückt) | ||
| + | * Button B: fährt nach rechts (wenn Touch Logo gleichzeitig gedrückt) | ||
| Probiere den Roboter aus - würde er funktionieren? | Probiere den Roboter aus - würde er funktionieren? | ||
| + | === Aufgabe G5 – Distanzmesser (Advanced) === | ||
| - | === Aufgabe | + | 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: |
| + | * 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. | ||
| + | |||
| + | === Aufgabe | ||
| Verwende deine Kenntnisse zur Funk-Steuerung, | Verwende deine Kenntnisse zur Funk-Steuerung, | ||
| Zeile 1131: | Zeile 1210: | ||
| * der Roboter soll mittels Radio andere Roboter finden und möglichst nahe zu ihnen fahren. Sind die zwei Roboter nah genug, sollen sie anhalten und ihre Bottom-LEDS auf die gleiche Farbe einstellen. | * der Roboter soll mittels Radio andere Roboter finden und möglichst nahe zu ihnen fahren. Sind die zwei Roboter nah genug, sollen sie anhalten und ihre Bottom-LEDS auf die gleiche Farbe einstellen. | ||
| - | === Aufgabe | + | === Aufgabe |
| Verwende den Bodensensor, | Verwende den Bodensensor, | ||
| Zeile 1138: | Zeile 1217: | ||
| * Wie einer schmalen Linie (1cm)? | * Wie einer schmalen Linie (1cm)? | ||
| - | === Aufgabe G6 – Remote Control (Medium) === | ||
| - | |||
| - | Aufgabe für 2 Personen: | ||
| - | Schreiben Sie eine Fernsteuerung für den Maqueen. Der eine Microbit sendet Signale (links / rechts / geradeaus), der andere empfängt diese und setzt sie in Steuersignale für den Roboter um. | ||
| - | |||
| - | Mögliche Steuerbelegung: | ||
| - | * Touch Logo: muss berührt werden, um zu fahren; ohne Buttons fährt er geradeaus. | ||
| - | * Button A: fährt nach links (wenn Touch Logo gleichzeitig gedrückt) | ||
| - | * Button B: fährt nach rechts (wenn Touch Logo gleichzeitig gedrückt) | ||
| <nodisp 1> | <nodisp 1> | ||