Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:microbit_programmieren_grundlagen [2023-08-29 09:04] – [Tasten & Touch-Logo] gragf_informatik:microbit_programmieren_grundlagen [2025-08-13 06:21] (aktuell) hof
Zeile 12: Zeile 12:
 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>
Zeile 57: Zeile 56:
   * 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 ====
Zeile 69: Zeile 68:
 Ü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 ====
Zeile 137: Zeile 136:
  
   * Es dauert seine Zeit, bis der Befehl `display.scroll("Hallo")` ausgeführt ist. Wenn du während dieser Zeit die A-Taste (mehrmals) drückst, wird keine Ente angezeigt, weil das Programm noch nicht bei der ersten if-Verzweigung angelangt ist.   * Es dauert seine Zeit, bis der Befehl `display.scroll("Hallo")` ausgeführt ist. Wenn du während dieser Zeit die A-Taste (mehrmals) drückst, wird keine Ente angezeigt, weil das Programm noch nicht bei der ersten if-Verzweigung angelangt ist.
-  * Wenn der Text fertig angezeigt ist und du die A-Taste in diesem Moment nicht gedrückt hältst, springt das Progamm in die zweite if-Verzweigung, denn die A-Taste wurde vorher (mehrmals) gedrückt. Nun wird eine Sekunde lang angezeigt, wie oft die A-Taste gedrückt wurde.+  * Wenn der Text fertig angezeigt ist und du die A-Taste in diesem Moment //nicht// gedrückt hältst, wird keine Ente angezeigt, denn im Moment der if-Abfrage ist die Taste nicht gedrückt. Sofern du aber vorher (mehrmals) die A-Taste gerückt hast, springt das Programm nun in die zweite if-Verzweigung und es wird eine Sekunde lang angezeigt, wie oft die A-Taste gedrückt wurde.
   * 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 144:
   * `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`, aber gibt die Anzahl Klicks seit dem letzten Funktionsaufruf zurück. Der Funktionsaufruf setzt den Zähler wieder auf Null zurück.+  * `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():` wandelt Python die Zahl in einen Wahrheitswert (Wahr oder Falsch) um, wobei Null mit `False` übersetzt wird und jede andere Zahl mit `True`.     * Hinweis: `get_presses()` gibt eine Zahl zurück. In einer Bedingung wie `if button_a.get_presses():` wandelt Python die Zahl in einen Wahrheitswert (Wahr oder Falsch) um, wobei Null mit `False` übersetzt wird und jede andere Zahl mit `True`.
  
Zeile 164: Zeile 163:
 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 =====
  
Zeile 183: Zeile 182:
 </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: 
Zeile 215: Zeile 214:
 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.]]
  
  
Zeile 240: Zeile 239:
 </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]].
Zeile 247: Zeile 246:
 ==== 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*
Zeile 263: Zeile 262:
 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) # Schläge pro Takt ist Standard+music.set_tempo(ticks = 8) # Standardeinstellung:Schläge pro Takt
  
 music.play(my_melody) music.play(my_melody)
Zeile 488: Zeile 487:
 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 ===
Zeile 505: Zeile 506:
         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>
Zeile 543: Zeile 545:
  
 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> 
  
  • gf_informatik/microbit_programmieren_grundlagen.1693299848.txt.gz
  • Zuletzt geändert: 2023-08-29 09:04
  • von gra