Valdetectie#
In het algemene deel van deze cyclus (Voorbeeld: valdetectie) hebben een voorbeeld gegeven voor een valdetectiehorloge. Hier laten zien hoe je dat zelf kunt maken.
Het zijn eigenlijk twee aparte systemen die met elkaar communiceren. Op de micro:bit zit een zender en ontvanger waarmee je radio-signalen kunt versturen en ontvangen. Hieronder vind je een filmpje waarin dat wordt uitgelegd.
We laten eerst zien hoe je het toestandsdiagram voor het horloge kunt omzetten in een micro:bit programma.

Fig. 42 Toestandsdiagram#
De gebeurtenissen zijn:
gevallen -> op de micro:bit kun je detecteren of er wordt geschud met de micro:bit
reset-knop ingedrukt -> hiervoor gebruiken we knop A.
Hieronder het programma. Bij het opstarten moet je aangeven in welke groep de radiosignalen moeten worden verzonden. Je kunt de micro:bit namelijk in verschillende groepen met elkaar laten communiceren.
from microbit import *
import radio
state = 1
radio.config(group=1)
radio.on()
while True:
if accelerometer.was_gesture('shake'):
if state == 1:
state = 2
radio.send("gevallen")
if button_a.was_pressed():
if state == 2:
state = 1
radio.send("ok")

Fig. 43 Toestandsdiagram#
Dan het systeem van degene die hulp moet gaan bieden.
from microbit import *
import radio
state = 1
radio.config(group=1)
radio.on()
while True:
if button_b.was_pressed():
state = 1
display.show(Image.HAPPY)
msg = radio.receive()
if msg == "gevallen":
if state == 1:
state = 2
display.show(Image.SAD)
elif msg == "ok":
if state == 2:
state = 1
display.show(Image.HAPPY)
De gebeurtenissen zijn:
signaal “gevallen” ontvangen
signaal “ok” ontvangen
reset-knop ingedrukt -> hiervoor gebruiken we knop B
Je kunt deze twee programma’s op twee verschillende micro:bits zetten en testen. Let er goed op dat de woorden (“gevallen” en “OK”) die worden verstuurd en ontvangen op beide systemen precies gelijk zijn, het is hoofdlettergevoelig.