Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung |
gf_informatik:microbit_programmieren_grundlagen [2023-08-29 09:11] – [Tasten & Touch-Logo] gra | gf_informatik:microbit_programmieren_grundlagen [2025-08-13 06:21] (aktuell) – hof |
---|
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 ==== |
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 ===== |
| |
</code> | </code> |
| |
Innerhalb der Endlos-Schleife ''while True'' werden zwei Befehele ständig wiederholt: | Innerhalb der Endlos-Schleife ''while True'' werden zwei Befehle ständig wiederholt: |
* ''sleep(100)'' lässt das Programm während 100 Millisekunden in der Funktion sleep() verharren, | * ''sleep(100)'' lässt das Programm während 100 Millisekunden in der Funktion sleep() verharren, |
* in der zweiten Zeile sind zwei Funktionen ineinander verschachtelt: | * in der zweiten Zeile sind zwei Funktionen ineinander verschachtelt: |
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* |
my_melody = ['g3:4', 'g3:4', 'b3:4', 'g3:4','c4:4', 'f4:4', 'c4:4', 'g3:8'] | my_melody = ['g3:4', 'g3:4', 'b3:4', 'g3:4','c4:4', 'f4:4', 'c4:4', 'g3:8'] |
| |
music.set_tempo(bpm = 180) # 120 Schläge pro Minute wäre Standard | music.set_tempo(bpm = 180) # Standardeinstellung: 120 Schläge pro Minute (bpm) |
music.set_tempo(ticks = 8) # 8 Schläge pro Takt ist Standard | music.set_tempo(ticks = 8) # Standardeinstellung: 4 Schläge pro Takt |
| |
music.play(my_melody) | music.play(my_melody) |
Zur Installation des Codes lädst du [[https://github.com/tkilla77/maqueen/releases/latest/download/maqueen.hex|maqueen.hex]] herunter und auf den Microbit drauf (an einfachsten: Datei auf die Seite ziehen). | Zur Installation des Codes lädst du [[https://github.com/tkilla77/maqueen/releases/latest/download/maqueen.hex|maqueen.hex]] herunter und auf den Microbit drauf (an einfachsten: Datei auf die Seite ziehen). |
* Alternative: Lade [[https://github.com/tkilla77/maqueen/blob/master/maqueen/maqueen.py|maqueen.py]] und füge die Datei deinem Projekt hinzu. | * Alternative: Lade [[https://github.com/tkilla77/maqueen/blob/master/maqueen/maqueen.py|maqueen.py]] und füge die Datei deinem Projekt hinzu. |
| |
| **Beachte:** Du benötigst jeweils **zwei** Dateien in deinem Projekt: `maqueen.py` ist die Bibliothek für die Motorensteuerung, diese musst du weder lesen noch verstehen. In der Hauptdatei `main.py` ist dein eigener Code, der die Motorensteuerung benützt (mit `from maqueen import *`). |
| |
=== Distanzmesser === | === Distanzmesser === |
dist = newdist | dist = newdist |
# Show distance in decimeters | # Show distance in decimeters |
display.show(dist) | print(str(dist) + "0cm") # print on console |
| display.show(dist) # ... and on display |
sleep(100) | sleep(100) |
</code> | </code> |
| |
chassis.forward(speed=100) # Vorwärts fahren mit Geschwindigkeit 100 | chassis.forward(speed=100) # Vorwärts fahren mit Geschwindigkeit 100 |
| sleep(1000) # 1s weiterfahren |
chassis.stop() # Stoppen | chassis.stop() # Stoppen |
chassis.left() # Links drehen | chassis.left() # Links drehen bis auf weiteres |
| sleep(500) # Wenden während einer halben Sekunde |
| chassis.stop() # Wieder anhalten |
</code> | </code> |
| |