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_programmieren_grundlagen [2023-08-29 09:04] – [Tasten & Touch-Logo] gra | gf_informatik:microbit_programmieren_grundlagen [2026-01-08 07:08] (aktuell) – [Grundlagen] sca | ||
|---|---|---|---|
| Zeile 12: | Zeile 12: | ||
| Eine kurze Übersicht zu den wichtigsten Funktionen in englischer Sprache findest du im [[https:// | Eine kurze Übersicht zu den wichtigsten Funktionen in englischer Sprache findest du im [[https:// | ||
| - | In der [[https:// | + | In der [[https:// |
| ===== - Getting started ===== | ===== - Getting started ===== | ||
| Für die Programmierung des Microbits nutzen wir den Online-Editor: | Für die Programmierung des Microbits nutzen wir den Online-Editor: | ||
| - | | + | * **Online-Editor: |
| - | - Link: https:// | + | * Link: https:// |
| - | - Verwende Chrome Browser (oder Edge) | + | * Verwende |
| - | - Tipp zum **Speichern: | + | * Tipp zum **Speichern: |
| - | - Kopiere deinen Code jeweils in ein Word Dokument. | + | * Lege auf OneNote eine Seite an, z.B. " |
| - | - Verwende | + | * Copy-Paste deine Codes dort hinein |
| - | | + | |
| - | + | ||
| - | <nodisp 2> | + | |
| - | ++++ Mu Editor| | + | |
| - | - **Offline-Editor: | + | |
| - | - **Mu Editor** (https:// | + | |
| - | - Lade [[|hier]] die Installationsdatei herunter. | + | |
| - | - Installiere den Editor gemäss den Anweisungen. | + | |
| - | - Verbinde den Microbit über das USB-Kabel mit deinem Computer. | + | |
| - | - Für macOS-User: Stelle sicher, dass die Applikationen " | + | |
| - | - Starte den Editor. | + | |
| - | - Klicke auf den Mode-Button oben links und wähle den Modus " | + | |
| - | - Schreibe untenstehende Code-Zeilen. | + | |
| - | - Klicke auf die " | + | |
| - | + | ||
| - | ++++ | + | |
| - | </ | + | |
| <code python> | <code python> | ||
| Zeile 57: | Zeile 40: | ||
| * Die zweite Zeile sagt dem Display, dass es die Zeichenkette " | * Die zweite Zeile sagt dem Display, dass es die Zeichenkette " | ||
| - | Über das display-Objekt kannst du auf weitere Display-Funktionen zugreifen. Wenn du im Mu-Editor '' | + | Über das `display`-Objekt kannst du auf weitere Display-Funktionen zugreifen. Wenn du im Mu-Editor '' |
| ==== Bilder anzeigen ==== | ==== Bilder anzeigen ==== | ||
| Zeile 69: | Zeile 52: | ||
| Über das '' | Über das '' | ||
| - | [[https:// | + | [[https:// |
| ==== Animationen mit Bilder-Listen ==== | ==== Animationen mit Bilder-Listen ==== | ||
| - | In Python kannst du auf einfache Weise Listen erstellen, [[gf_informatik: | + | In Python kannst du auf einfache Weise Listen erstellen. Im folgenden Code wird eine Liste von Bildern erstellt und angezeigt. |
| <code python> | <code python> | ||
| Zeile 137: | Zeile 120: | ||
| * Es dauert seine Zeit, bis der Befehl `display.scroll(" | * Es dauert seine Zeit, bis der Befehl `display.scroll(" | ||
| - | * Wenn der Text fertig angezeigt ist und du die A-Taste in diesem Moment nicht gedrückt hältst, | + | * Wenn der Text fertig angezeigt ist und du die A-Taste in diesem Moment |
| * Wenn der Text fertig angezeigt ist und du die A-Taste gedrückt hältst, springt das Programm in die erste, dann in die zweite if-Verzeigung. Es wird also erst eine Sekunde lang eine Ente angezeigt, dann die Anzahl Tastendrücke. | * Wenn der Text fertig angezeigt ist und du die A-Taste gedrückt hältst, springt das Programm in die erste, dann in die zweite if-Verzeigung. Es wird also erst eine Sekunde lang eine Ente angezeigt, dann die Anzahl Tastendrücke. | ||
| Zeile 145: | Zeile 128: | ||
| * `is_pressed()` gibt `True` zurück, wenn die Taste im Moment des Aufrufs gedrückt ist, aber sagt nichts darüber aus, ob sie in der Vergangenheit gedrückt worden ist. | * `is_pressed()` gibt `True` zurück, wenn die Taste im Moment des Aufrufs gedrückt ist, aber sagt nichts darüber aus, ob sie in der Vergangenheit gedrückt worden ist. | ||
| * `was_pressed()` gibt `True` zurück, wenn die Taste seit dem letzten Aufruf der Funktion gedrückt worden ist, also auch, wenn die Taste bereits wieder losgelassen wurde. Wenn die Taste seit dem letzten Aufruf der Funktion immer noch gedrückt ist und die Funktion erneut aufgerufen wird, gibt sie `False` zurück. Nur wenn die Taste inzwischen losgelassen und //erneut// gedrückt wurde, gibt die Funktion `True` zurück. | * `was_pressed()` gibt `True` zurück, wenn die Taste seit dem letzten Aufruf der Funktion gedrückt worden ist, also auch, wenn die Taste bereits wieder losgelassen wurde. Wenn die Taste seit dem letzten Aufruf der Funktion immer noch gedrückt ist und die Funktion erneut aufgerufen wird, gibt sie `False` zurück. Nur wenn die Taste inzwischen losgelassen und //erneut// gedrückt wurde, gibt die Funktion `True` zurück. | ||
| - | * `get_presses()` funktioniert ähnlich wie `was_pressed`, | + | * `get_presses()` funktioniert ähnlich wie `was_pressed()`, aber gibt die Anzahl Klicks seit dem letzten Funktionsaufruf zurück. Der Funktionsaufruf setzt den Zähler wieder auf Null zurück. |
| * Hinweis: `get_presses()` gibt eine Zahl zurück. In einer Bedingung wie `if button_a.get_presses(): | * Hinweis: `get_presses()` gibt eine Zahl zurück. In einer Bedingung wie `if button_a.get_presses(): | ||
| Zeile 164: | Zeile 147: | ||
| Sobald du nun den Stromkreis zwischen Ground (GND) und Pin 0 schliesst (beide gleichzeitig berühren oder mit Kabel verbinden), sollte nun ein Happy-Smile angezeigt werden. | Sobald du nun den Stromkreis zwischen Ground (GND) und Pin 0 schliesst (beide gleichzeitig berühren oder mit Kabel verbinden), sollte nun ein Happy-Smile angezeigt werden. | ||
| - | Für mehr Infos siehe hier: https:// | + | Für mehr Infos siehe hier: https:// |
| ===== - Beschleunigungssensor ===== | ===== - Beschleunigungssensor ===== | ||
| Zeile 183: | Zeile 166: | ||
| </ | </ | ||
| - | Innerhalb der Endlos-Schleife '' | + | Innerhalb der Endlos-Schleife '' |
| * '' | * '' | ||
| * in der zweiten Zeile sind zwei Funktionen ineinander verschachtelt: | * in der zweiten Zeile sind zwei Funktionen ineinander verschachtelt: | ||
| Zeile 196: | Zeile 179: | ||
| * Die Funktion '' | * Die Funktion '' | ||
| * Standardmässig beträgt der Messbereich des Beschleunigungssensors +/- 2 $g$. | * Standardmässig beträgt der Messbereich des Beschleunigungssensors +/- 2 $g$. | ||
| - | * Mit '' | + | * Mit '' |
| + | In python geht das so: | ||
| + | <code python> | ||
| + | import math | ||
| + | # ... | ||
| + | ax, ay, az = accelerometer.get_values() | ||
| + | a = math.sqrt(ax*ax + ay*ay + az*az) | ||
| + | </ | ||
| + | |||
| + | **Achtung: | ||
| Zeile 215: | Zeile 207: | ||
| Die Funktion '' | Die Funktion '' | ||
| - | [[https:// | + | [[https:// |
| - | [[https:// | + | [[https:// |
| Zeile 240: | Zeile 232: | ||
| </ | </ | ||
| - | * Die Zeile '' | + | * Die Zeile '' |
| * Der Funktion '' | * Der Funktion '' | ||
| * Wenn du kurz testen willst, welche Frequenz wie klingt, [[https:// | * Wenn du kurz testen willst, welche Frequenz wie klingt, [[https:// | ||
| Zeile 247: | Zeile 239: | ||
| ==== Melodien erstellen und abspielen ==== | ==== Melodien erstellen und abspielen ==== | ||
| - | Das Modul '' | + | Das Modul '' |
| <code python> | <code python> | ||
| from microbit import* | from microbit import* | ||
| Zeile 263: | Zeile 255: | ||
| my_melody = [' | my_melody = [' | ||
| - | music.set_tempo(bpm = 180) # 120 Schläge pro Minute | + | music.set_tempo(bpm = 180) # Standardeinstellung: |
| - | music.set_tempo(ticks = 8) # 8 Schläge pro Takt ist Standard | + | music.set_tempo(ticks = 8) # Standardeinstellung: |
| music.play(my_melody) | music.play(my_melody) | ||
| Zeile 321: | Zeile 313: | ||
| from microbit import * | from microbit import * | ||
| import radio | import radio | ||
| + | |||
| + | radio.on() | ||
| while True: | while True: | ||
| Zeile 345: | Zeile 339: | ||
| 1. Konvertiere das Bild in einen String: `s = repr(Image.HAPPY)` | 1. Konvertiere das Bild in einen String: `s = repr(Image.HAPPY)` | ||
| + | 1. Sende s mit print an die Konsole, damit du siehst, wie s aussieht. | ||
| 1. Entferne alles, so dass String noch die Form `s = ' | 1. Entferne alles, so dass String noch die Form `s = ' | ||
| + | 1. Mit [[https:// | ||
| 1. Versende diesen String. | 1. Versende diesen String. | ||
| 1. Wandle den empfangenen String mit `Image()` wieder in ein Bild um und zeige es an. | 1. Wandle den empfangenen String mit `Image()` wieder in ein Bild um und zeige es an. | ||
| Zeile 488: | Zeile 484: | ||
| Zur Installation des Codes lädst du [[https:// | Zur Installation des Codes lädst du [[https:// | ||
| * Alternative: | * Alternative: | ||
| + | |||
| + | **Beachte: | ||
| === Distanzmesser === | === Distanzmesser === | ||
| Zeile 505: | Zeile 503: | ||
| dist = newdist | dist = newdist | ||
| # Show distance in decimeters | # Show distance in decimeters | ||
| - | display.show(dist) | + | |
| + | | ||
| sleep(100) | sleep(100) | ||
| </ | </ | ||
| Zeile 543: | Zeile 542: | ||
| chassis.forward(speed=100) # Vorwärts fahren mit Geschwindigkeit 100 | chassis.forward(speed=100) # Vorwärts fahren mit Geschwindigkeit 100 | ||
| + | sleep(1000) | ||
| chassis.stop() # Stoppen | chassis.stop() # Stoppen | ||
| - | chassis.left() # Links drehen | + | chassis.left() # Links drehen |
| + | sleep(500) | ||
| + | chassis.stop() # Wieder anhalten | ||
| </ | </ | ||