| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung |
| gf_informatik:microbit_programmieren_grundlagen [2024-09-15 08:08] – [Motorsteuerung] hof | gf_informatik:microbit_programmieren_grundlagen [2025-11-19 14:27] (aktuell) – [Beschleunigung messen] gra |
|---|
| Eine kurze Übersicht zu den wichtigsten Funktionen in englischer Sprache findest du im [[https://microbit.org/get-started/user-guide/python/|Microbit-Python-Guide]] | Eine kurze Übersicht zu den wichtigsten Funktionen in englischer Sprache findest du im [[https://microbit.org/get-started/user-guide/python/|Microbit-Python-Guide]] |
| |
| In der [[https://microbit-micropython.readthedocs.io/en/latest/index.html|Microbit-Micropython-Dokumentation]] findest du //alle// Informationen zur Programmierung des Micro-Bit. | In der [[https://microbit-micropython.readthedocs.io/en/stable/|Microbit-Micropython-Dokumentation]] findest du //alle// Informationen zur Programmierung des Micro-Bit. |
| |
| ===== - 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:** | * **Online-Editor:** |
| - Link: https://python.microbit.org/ | * Link: https://python.microbit.org/ |
| - Verwende 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! | |
| |
| <nodisp 2> | <nodisp 2> |
| * Die zweite Zeile sagt dem Display, dass es die Zeichenkette "Hello, World!" als Laufschrift anzeigen soll – oder etwas genauer formuliert: Vom ''display''-Objekt wird die Funktion ''scroll()'' aufgerufen und dieser Funktion wird die Zeichenkette "Hello, World!" übergeben. | * Die zweite Zeile sagt dem Display, dass es die Zeichenkette "Hello, World!" als Laufschrift anzeigen soll – oder etwas genauer formuliert: Vom ''display''-Objekt wird die Funktion ''scroll()'' aufgerufen und dieser Funktion wird die Zeichenkette "Hello, World!" übergeben. |
| |
| Über das display-Objekt kannst du auf weitere Display-Funktionen zugreifen. Wenn du im Mu-Editor ''display'' und dann einen Punkt eintippst, erhältst du eine Liste mit allen Display-Funktionen. Die wichtigsten sind ''clear()'' zum Löschen des Displays und ''show()'' zur Anzeige von einem oder mehreren Bildern. | Über das `display`-Objekt kannst du auf weitere Display-Funktionen zugreifen. Wenn du im Mu-Editor ''display'' und dann einen Punkt eintippst, erhältst du eine Liste mit allen Display-Funktionen. Die wichtigsten sind ''clear()'' zum Löschen des Displays und ''show()'' zur Anzeige von Text oder Bildern. |
| |
| ==== Bilder anzeigen ==== | ==== Bilder anzeigen ==== |
| Ü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. |