Projet Laisse Virtuelle

Mise en situation :

Je souhaite promener mon chien mais sans avoir une laisse

si le chien mais s'il s'éloigne de plus d'une certaine distance (30 mètres) pendant plus de 10 seconde, alors le boitier au coup du chien fait un bip et produit une lumière

Le maitre entend le son ou voit la lumière et retrouve son chien.


Cahier des charges :

si la carte microbit 1 du maître émet un cycle 0 - pause de 1 s puis 1 - pause de 1 s

si la carte microbit 2 chien reçoit un 0, alors il émet un 0 et met la variable tempsCourant à jour, arrête le buzzer et éteind la led

si elle reçoit un 1, alors il émet un 1 et met la variable tempsCourant à jour, arrête le buzzer et éteind la led

si elle ne reçoit pas de signal pendant plus de 10 secondes après tempsCourant alors pilote une led et un buzzer

si la carte microbit 1 du maître ne reçoit pas de 0 ou 1, alors elle


# code microbit 1 du maître

from microbit import *

import radio

radio.on()


tempsEtat = 0

etat = 0

tempsAlarme = 0

etatAlarme = 0

message = ''

pin0.write_digital(0)


while True:

   # toutes les 1s, changer d'état 0 <=> 1, afficher et emettre

   if running_time()-tempsEtat > 1000:

       etat = 1 - etat

       if etatAlarme == 0:

           display.show(str(etat))

       tempsEtat = running_time()

       radio.send(str(etat))


   if running_time() - tempsAlarme > 5000:

       etatAlarme = 1

       pin0.write_digital(1)   

       display.show(Image.HAPPY)


   # écouter les messages reçu ... désactiver l'alarme 

   message = radio.receive()

   if message:

       if etat == 1 and message == '1' or etat == 0 and message == '0':   

           etatAlarme = 0   

           tempsAlarme = running_time()

           pin0.write_digital(0)   

           display.show(Image.HAPPY)




Code microbit 2 : chien

# code microbit du chien 

from microbit import *

import radio

radio.on()


tempsEtat = 0

etat = 0

tempsAlarme = 0

etatAlarme = 0

message = ''

pin0.write_digital(0)

display.show(Image.HAPPY)

while True:   

   # écouter les messages reçu ... désactiver l'alarme 

   message = radio.receive()

   if etat == 0 and message == '1' or etat == 1 and message == '0':   

       etat = int(message[0])

       print(etat)

       # redéfinir tempsAlarme

       tempsAlarme = running_time()  

       # emettre le message

       radio.send(str(etat))

       # si l'alarme était active alors annuler l'alarme

       if etatAlarme == 1:

           pin0.write_digital(0)   

           etatAlarme = 0  

           display.show(Image.HAPPY)


   # écouter les messages reçu ... désactiver l'alarme

   if running_time() - tempsAlarme > 10000:

       etatAlarme = 1   

       display.show(Image.SAD) 

       radio.send('A')

       tempsAlarme = running_time() + 10000

       pin0.write_digital(1)   






N

Nicolas Jaeck

Nombre d'articles: 2

Voir tous les articles
Licence
Attribution Pas d'utilisation commerciale Pas de modification
licence CC BY-NC-ND
Nombre de lectures : 151