microbitsensoren
Deutsch   English   

10. WEITERE MICRO:BIT SENSOREN

 

 

DU LERNST HIER...

 

mit folgenden micro:bit Sensoren umzugehen:

  • Lichtsensor
  • Temperatursensor
  • Touchsensor
  • Mikrofon-Sensor

 

 

LICHTSENSOR

 

Für die Messung der Umgebungshelligkeit verwendet micro:bit die LEDs auf der vorderen Seite der Platine. Normalerweise wandeln die LEDs Strom in sichtbares Licht um. Man kann aber auch umgekehrt das sichtbare Licht in Strom umwandeln. micro:bit kann diesen Strom messen und für die Helligkeit der Umgebung die Werte zwischen 0 und 255 zurückgeben, wobei 0 ganz dunkel und 255 sehr hell bedeutet.

 

Beachte, dass micro:bit für die Helligkeitsmessung nur die oberste LEDs Reihe verwendet. Wenn du diese abdeckst, sollte der Wert 0 angezeigt werden.

 

 

MUSTERBEISPIEL

  Die Helligkeit der Umgebung wird mit dem Befehl display.read_light_level() gemessen

und mit print() im Ausgabefenster angezeigt. Die Messperiode beträgt hier 1000 Millisekunden.

Programm:

from microbit import *

while True:
    lightValue = display.read_light_level()
    print(lightValue)
    sleep(1000)
► In Zwischenablage kopieren

 

 

TEMPERATURSENSOR

 

Der Temperatursensor ist im Prozessor integriert. Er gibt die Umgebungstemperatur zurück. Die Messergebnisse sind aber nicht exakt, da der Prozessor warm wird, insbesondere, wenn er längere Zeit im Betrieb ist.
Für exakte Temperaturmessung solltest du einen externen Sensor verwenden, z.B. den Temperatur und Feuchtigkeitssensor SHT85.

 

 

 

 

MUSTERBEISPIEL

  In deinem Beispiel wird mit dem Befehl temperature() die Temperatur in °C gemessen

und mit print() im Ausgabefenster angezeigt. Die Messperiode beträgt 300 Millisekunden. Wenn du den micro:bit beim Prozessor mit deinen warmen Fingern berührst, wird einen höhere Temperatur angezeigt.

Programm:

from microbit import *

while True:
    temp = temperature()
    print(temp)
    sleep(300)
► In Zwischenablage kopieren

 

 

TOUCHSENSOR

 

Der Touchsensor befindet sich im micro:bit Logo. Wenn du das Logo berührst, gibt der Sensor True zurück, sonst False.

 

 

 

 

MUSTERBEISPIEL

  Der Befehl pin_logo.is_touched() gibt True zurück, wenn du das Logo berührst, sonst False. Du kannst diese Werte mit print() im Ausgabefenster anzeigen. In deinem Beispiel wird auf dem Display das Image YES angezeigt, falls das Logo berührt wird, sonst das Image NO.

Programm:

from microbit import *

while True:
    if pin_logo.is_touched():
        display.show(Image.YES)  
    else:
        display.show(Image.NO)  
    sleep(100)
► In Zwischenablage kopieren

Beachte: Bei einer Überprüfung auf Wahrheitswerte schreibst du nicht

if pin_logo.is_touched() == True:
sondern eleganter
if pin_logo.is_touched():

 

 

MIKROFON-SENSOR

 

Der micro:bit V2 ist mit einem Mikrofon ausgestattet, welches als kleiner goldfarbiger Chip auf der Rückseite sichtbar ist. Der Mikrofon-Sensor misst den Schallpegel und gibt Werte 0 bis 255 zurück. 0 entspricht vollständiger Stille, 255 ist ganz laut.

 

 

 

 

MUSTERBEISPIEL

  In deinem Beispiel wird mit dem Befehl microfone.sound_level() das Umgebungsgeräusch gemessen und mit print() angezeigt. Ist der Schallpegel grösser als 40, werden alle LEDs auf dem Display während 500 Millisekunden angezeigt.

Programm:

from microbit import *

def on():
    for y in range(5):
        for x in range(5):
            display.set_pixel(x, y, 9)
    sleep(500)
            
def off():
    display.clear()
                
while True:
    level = microphone.sound_level()
    print(level)
    if level > 40:
        on()
    else:
        off()            
    sleep(100)
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Der Lichtsensor gibt mit dem Befehl display.read_light_level() die Helligkeit der Umgebung als Wert zwischen 0 und 255 zurück.

Der Temperaursensor misst mit dem Befehl temperature() die Temperatur in °C.

Der Befehl pin_logo.is_touched() gibt True zurück, wenn du das micro:bit Logo berührst.

Der Befehl microfone.sound_level() gibt die Lautstärke der Umgebunsgeräusche als Wert zwischen 0 und 255 zurück.

 

 

 

ZUM SELBST LÖSEN

 

 

1.

Schreibe ein Programm, welches alle LEDs auf dem Display einschaltet, wenn der Lichtsensor einen Helligkeitswert kleiner als 100 zurückgibt. Wenn der light-level grösser als 100 ist, leuchten die LEDs nicht mehr.


2.

Beim Berühren des micro:bit Logos soll die Melodie JUMP_UP abgespielt werden.

   

3.

Bezeichne die Anfangstemperatur als temp0. Danach werden alle 1000 Millisekunden die Werte des Temperatur-Sensors abgefragt. Falls die Temperatur steigt, wird das Image ARROW_N, falls sie sinkt das Image ARROW_S und ARROW_E falls Sie gleich bleibt, angezeigt.

4.
Ein Programm mit einem Klatsch starten.
Schreibe eine Funktion go() mit welscher der leuchtende Punkt oben links startet und danach das ganze Display durchläuft, d.h. ein LED wird während 400 Millisekunden eingeschaltet und dann wieder ausgeschaltet. Dann wird das rechts nebenstehende LED ein und ausgeschaltet..., ist die erste Reihe fertig, werden die LEDs in der zweiten Zeile der Reihe nach eingeschaltet..
 
Die Funktion go() wird aufgerufen, wenn der sound_level > 40 ist, z.B. mit einem Klatsch.