| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung |
| gf_informatik:microbit_programmieren_grundlagen [2025-08-13 05:23] – [Text anzeigen] hof | gf_informatik:microbit_programmieren_grundlagen [2025-11-19 14:27] (aktuell) – [Beschleunigung messen] gra |
|---|
| * Verwende den Chrome Browser (oder Edge) | * Verwende den Chrome Browser (oder Edge) |
| * Tipp zum **Speichern:** | * Tipp zum **Speichern:** |
| * Kopiere deinen Code jeweils in ein Word Dokument. | * Speichere das Python-Script über die drei Punkte neben dem `Save` Button: {{.:microbit_programmieren_grundlagen:pasted:20250813-052046.png?nolink&300}}. |
| * Verwende z.B. folgende Vorlage: {{ :gf_informatik:mikktrl_rob_aufgaben_template.docx |Template Aufgaben}} | * Speichere die Dateien in `OneDrive - Kantonsschule Romanshorn/2M/Informatik/Robotik` |
| * Bonus bei diesem Vorgehen: schöne Übersicht von allen deinen Codes! | |
| * Alternative: | |
| * Speichere das Python-Script über die drei Punkte neben dem `Save` Button: {{.:microbit_programmieren_grundlagen:pasted:20250813-052046.png?nolink&300}}. | |
| |
| <nodisp 2> | <nodisp 2> |
| Über das ''Image''-Objekt kannst du auf eine Reihe von vordefinierten Bildern zugreifen. | Über das ''Image''-Objekt kannst du auf eine Reihe von vordefinierten Bildern zugreifen. |
| |
| [[https://microbit-micropython.readthedocs.io/en/latest/tutorials/images.html|Hier findest du eine Übersicht über die Bilder und eine Anleitung zum Erstellen von eigenen Bildern und Animationen.]] | [[https://microbit-micropython.readthedocs.io/en/stable/tutorials/images.html|Hier findest du eine Übersicht über die Bilder und eine Anleitung zum Erstellen von eigenen Bildern und Animationen.]] |
| |
| ==== Animationen mit Bilder-Listen ==== | ==== Animationen mit Bilder-Listen ==== |
| In Python kannst du auf einfache Weise Listen erstellen, [[gf_informatik:programmieren_iii#listen|das hast du hier gelernt]]. Im folgenden Code wird eine Liste von Bildern erstellt und angezeigt. | In Python kannst du auf einfache Weise Listen erstellen. Im folgenden Code wird eine Liste von Bildern erstellt und angezeigt. |
| |
| <code python> | <code python> |
| 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://microbit-micropython.readthedocs.io/en/latest/pin.html | Für mehr Infos siehe hier: https://microbit-micropython.readthedocs.io/en/stable/pin.html |
| ===== - Beschleunigungssensor ===== | ===== - Beschleunigungssensor ===== |
| |
| * Die Funktion ''get\_values()'' gibt Werte in der Einheit **mg** zurück, $1000$ mg entsprechen 1 g: $1 g = 9.81 \text{m}/\text{s}^2$. | * Die Funktion ''get\_values()'' gibt Werte in der Einheit **mg** zurück, $1000$ mg entsprechen 1 g: $1 g = 9.81 \text{m}/\text{s}^2$. |
| * Standardmässig beträgt der Messbereich des Beschleunigungssensors +/- 2 $g$. | * Standardmässig beträgt der Messbereich des Beschleunigungssensors +/- 2 $g$. |
| * Mit ''get\_values()'' erhältst du die Beschleunigungen $a_x,a_y,a_z$ für die drei einzelnen Koordinaten. Die **Gesamtbeschleunigung** (Betrag der Beschleunigung) ist dann gegeben durch den Satz von Pythagoras in 3D: $$a = \sqrt{a_x^2 + a_y^2 + a_z^2}$$ **Achtung:** Dieser Wert ist immer positiv. Du verlierst damit also sämtliche Informationen über die Richtung der Beschleunigung. | * Mit ''get\_values()'' erhältst du die Beschleunigungen $a_x,a_y,a_z$ für die drei einzelnen Koordinaten. Die **Gesamtbeschleunigung** (Betrag der Beschleunigung) ist dann gegeben durch den Satz von Pythagoras in 3D: $$a = \sqrt{a_x^2 + a_y^2 + a_z^2}$$ |
| | In python geht das so: |
| | <code python> |
| | import math |
| | # ... |
| | ax, ay, az = accelerometer.get_values() |
| | a = math.sqrt(ax*ax + ay*ay + az*az) |
| | </code> |
| | |
| | **Achtung:** Die Gesamtbeschleunigung ist immer positiv. Du verlierst damit also sämtliche Informationen über die Richtung der Beschleunigung. |
| |
| |
| Die Funktion ''is_gesture()'' gibt ''True'' zurück, wenn der Beschleunigungssensor die in den Klammern angegebene Geste erkannt hat. Sonst gibt sie ''False'' zurück. | Die Funktion ''is_gesture()'' gibt ''True'' zurück, wenn der Beschleunigungssensor die in den Klammern angegebene Geste erkannt hat. Sonst gibt sie ''False'' zurück. |
| |
| [[https://microbit-micropython.readthedocs.io/en/latest/accelerometer.html|Hier findest du eine Übersicht über Funktionen des Beschleunigungssensors.]] | [[https://microbit-micropython.readthedocs.io/en/stable/accelerometer.html|Hier findest du eine Übersicht über Funktionen des Beschleunigungssensors.]] |
| |
| [[https://microbit-micropython.readthedocs.io/en/latest/tutorials/gestures.html|Hier findest du eine Übersicht über alle Gesten und eine Anleitung dazu, wie du aus deinem Microbit einen Magic8Ball programmieren kannst.]] | [[https://microbit-micropython.readthedocs.io/en/stable/tutorials/gestures.html|Hier findest du eine Übersicht über alle Gesten und eine Anleitung dazu, wie du aus deinem Microbit einen Magic8Ball programmieren kannst.]] |
| |
| |
| </code> | </code> |
| |
| * Die Zeile ''import music'' importiert das Modul ''music''. Dieses enthält die Funktionen ''pitch()'', ''play()'' und [[https://microbit-micropython.readthedocs.io/en/latest/music.html#functions|weitere Funktionen.]] | * Die Zeile ''import music'' importiert das Modul ''music''. Dieses enthält die Funktionen ''pitch()'', ''play()'' und [[https://microbit-micropython.readthedocs.io/en/stable/music.html#functions|weitere Funktionen.]] |
| * Der Funktion ''pitch()'' wird die //Frequenz// des Tons in Hertz und die //Dauer// des Tons in Millisekunden übergeben. | * Der Funktion ''pitch()'' wird die //Frequenz// des Tons in Hertz und die //Dauer// des Tons in Millisekunden übergeben. |
| * Wenn du kurz testen willst, welche Frequenz wie klingt, [[https://musiclab.chromeexperiments.com/Oscillators/|klicke hier]]. | * Wenn du kurz testen willst, welche Frequenz wie klingt, [[https://musiclab.chromeexperiments.com/Oscillators/|klicke hier]]. |
| ==== Melodien erstellen und abspielen ==== | ==== Melodien erstellen und abspielen ==== |
| |
| Das Modul ''music'' enthält schon [[https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies|ein paar vordefinierte Melodien.]] Folgender Code spielt eine solche Melodie ab: | Das Modul ''music'' enthält schon [[https://microbit-micropython.readthedocs.io/en/stable/music.html#built-in-melodies|ein paar vordefinierte Melodien.]] Folgender Code spielt eine solche Melodie ab: |
| <code python> | <code python> |
| from microbit import* | from microbit import* |
| 1. Konvertiere das Bild in einen String: `s = repr(Image.HAPPY)` | 1. Konvertiere das Bild in einen String: `s = repr(Image.HAPPY)` |
| 1. Entferne alles, so dass String noch die Form `s = '00000:00000:00900:00000:00000'` hat. | 1. Entferne alles, so dass String noch die Form `s = '00000:00000:00900:00000:00000'` hat. |
| | 1. Mit [[https://docs.python.org/3/library/stdtypes.html#str.removeprefix|str.removeprefix]] und `str.removesuffix` kannst du die unnötigen Teile entfernen. |
| 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. |