Dies ist eine alte Version des Dokuments!


Beispiel

Ein Beispiel zum Starten, hierbei ist zu bemerken, dass ein Beschleunigungssensor, um Neigungen und Bewegungen zu erfassen genutzt werden kann.

beschleunigung1.py
#beschleunigung 1
from microbit import *
 
#Akzelerometer (Beschleunigungssensor, um Gesten und Bewegungen zu erkennen)
 
while True:
    if accelerometer.was_gesture('shake'):
        display.show(Image.CONFUSED)
        sleep(3000)
    else:
         display.show(Image.HAPPY)

In diesem kurzen Programm wird durch eine Endlosschleife immer wieder über den Akzelerometer überprüft, ob dieser nach links geneigt wurde. Falls dies der Fall ist, wird ein „verwirrtes“ Emoji angezeigt. Durch das if, bzw. das wenn, kann eine Bedingung mit zwei oder mehr Ausgangsmöglichkeiten implementiert werden.

Dadurch verzweig sich das Programm in zwei oder mehrere Äste. Ein einzelner Programmteil wird nur dann ausgeführt, falls die Bedingung als True (wahr) gilt, ansonsten wird dieser Teil des Programms nicht ausgeführt.

Falls es nur ein if - else-Selektion ist, dann wird es nur eine Verzweigung des Programms in 2 Programmäste geben, falls es ein if - elif -…- else -Selektion ist, dann in 3 oder mehr Teile.

Aufgabe 11

  1. Schliessen Sie die Ampel so wie auf dem Bild an den Micro:bit an. Achten Sie darauf, dass die Masse (Erdung GRN) mit 0V verbunden ist.
  2. Untersuchen Sie das untenstehende unvollständige Programm. Was genau passiert? Beschreiben Sie kurz.
    # Imports go at the top
    from microbit import *
     
     
    while True:
     
        pin0.write_digital(1)
     
        if button_a.was_pressed():
            pin0.write_digital(0)
            pin1.write_digital(1) 
  3. Erweitern Sie das Programm so, dass beim Drücken von Knopf A die Ampel für einige Zeit auf Gelb und dann auf Grün wechselt und anschliessend wieder zurück auf Rot.
  4. Erweitern Sie das Programm nun weiter, so dass bei Grün ein kurzer Ton erzeugt wird und das Display „Go“ anzeigt.
  5. Erweitern Sie das Programm, dass beim Drücken von Knopf B das gelbe Licht 10 mal blinkt.
  6. Verändern Sie das Programm weiter, sodass wenn beide Knöpfe gleichzeitig gedrückt werden, ein Symbol Ihrer Wahl angezeigt wird und eine Folge von absteigenden Tönen erzeugt wird und gleichzeitig alle drei Lichter blinken.

mögliche Lösungen

 

Aufgabe 12

  1. Zeichnen Sie das Aktivitätsdiagramm des unten beschriebenen Programms, diskutieren Sie zu zweit.
  2. Schreiben Sie das Programm, welches die beiden Pulse misst.
  3. Ergänzen Sie das Programm, sodass die Werte von einem Micro:bit zum anderen gesendet werden!

Programm:
Es soll den jeweiligen Pulsschlag pro Minute von zwei Personen nacheinander anzeigen, dazu soll eine while-Schleife verwendet werden.
Der Puls soll wie auf dem Foto abgebildet, https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Pulse_evaluation.JPG/330px-Pulse_evaluation.JPGam eigenen Handgelenk gefühlt werden.
Der Mico:bit wird auf den Tisch neben das Handgelenk gelegt und bei jedem Pulsschlag wird auf den Knopf A bzw. auf den Knopf B - für die zweite Person - gerückt.
Um die gleiche Zeitspanne (beispielsweise 15 Sekunden) als Messperiode zu haben, ist ein akustisches Start- und Stoppsignal (ein Beep) nötig.
Der jeweils gemessene Puls wird in einer Variablen gespeichert. Die beiden Nutzer sollen auch mit Texten und Symbolen durch die Messung geleitet werden.

Tipps:

  • Die Bedingung button_a.is_pressed()= True könnte für Person A für die Verzweigung nötig sein.
  • Die 2.Programmieraufgabe könnte helfen
  • Ein Zähler ist nötig.
  • Die gemessenen Pulsschläge sind mit einem geeigneten Faktor proportional auf eine Zeitspanne von 60 Sekunden zu rechnen.
  • Das Menü Radio hilft für Teilaufgabe C.
  • Um einen Zahlenwert einer Variable in ein Wort (string) umzuwandeln, kann str(Zahlenwert) verwendet werden.

mögliche Lösung

Aufgabe 10

while True:
 
    pin0.write_digital(1)
 
    if button_a.was_pressed():
        pin0.write_digital(0)
        pin1.write_digital(1)
        sleep(500)
        pin1.write_digital(0)
        pin2.write_digital(1)
        sleep(2000)
        pin2.write_digital(0)
    if button_b.was_pressed():
        pin0.write_digital(0)
        counter=0
        while(counter<10):
            pin1.write_digital(1)
            sleep(500)
            pin1.write_digital(0)
            sleep(500)
            counter=counter+1

Aufgabe 13 - Lernfragen
Bearbeiten Sie die folgenden Lernfragen.

  1. Wie kann erreicht werden, dass ein Teil eines Programms nur in bestimmten Fällen ausgeführt wird?
  2. Warum ist das Verzweigen (Entscheiden) des Programms überhaupt nötig?
  3. Worauf muss geachtet werden, wenn eine 'if'-Selektion verwendet wird?
  4. Welches sind die wichtigsten Erkenntnisse der Programmieraufgaben 1 bis 10? Notieren Sie dies kurz!
  5. Formulieren Sie eine eigene Lernfrage

Weiter zu den Lernzielen

  • gf1/programmieren5.1710843275.txt.gz
  • Zuletzt geändert: 2024/03/19 11:14
  • von marroc