Version avec LED, clignotante

MéthodeCode feu Maître

1
from microbit import *
2
from time import ticks_ms
3
import radio
4
5
radio.config(group=2)
6
radio.on()
7
8
DUREE = 10  # 10 secondes
9
attente = DUREE
10
feuRouge = True
11
clignotant = ticks_ms()
12
13
def afficheRouge():
14
    pin1.write_digital(1)
15
    pin0.write_digital(0)
16
17
def afficheOrange():
18
    pin1.write_digital(0)
19
    # orange clignotant
20
    if ticks_ms()-clignotant < 500:
21
        pin0.write_digital(1)
22
    else:
23
        pin0.write_digital(0)
24
25
def afficheAttente(attente):
26
    display.show(str(attente))
27
28
while True:
29
    if feuRouge :
30
        afficheRouge()
31
    else :
32
        afficheOrange()
33
34
    # Action toutes les secondes
35
    if ticks_ms()-clignotant > 1000:
36
        clignotant = ticks_ms()
37
        attente -= 1
38
        afficheAttente(attente)
39
        radio.send(str(attente))
40
41
    # Alternance du feu
42
    if attente == 0 :
43
        attente=DUREE
44
        feuRouge = not feuRouge
45
        if feuRouge :
46
            radio.send("VERT")
47
        else:
48
            radio.send("ROUGE")

MéthodeCode feu Esclave

1
from microbit import *
2
from time import ticks_ms
3
import radio
4
5
radio.config(group=2)
6
radio.on()
7
8
feuRouge = True
9
clignotant = ticks_ms()
10
11
def afficheRouge():
12
    pin1.write_digital(1)
13
    pin0.write_digital(0)
14
15
def afficheOrange():
16
    pin1.write_digital(0)
17
    # orange clignotant
18
    if ticks_ms()-clignotant < 500:
19
        pin0.write_digital(1)
20
    else:
21
        pin0.write_digital(0)
22
23
def afficheAttente(attente):
24
    display.show(str(attente))
25
26
while True:
27
    # Traitement des messages du maitre
28
    incoming = radio.receive()
29
    if incoming:
30
        if incoming == "VERT" :
31
            feuRouge = False
32
        elif incoming == "ROUGE" :
33
            feuRouge = True
34
        elif len(incoming)==1:
35
            afficheAttente(int(incoming))
36
37
    # Affichage Rouge / Orange
38
    if feuRouge :
39
        afficheRouge()
40
    else :
41
        afficheOrange()
42
43
    # Compteur temps à 0 toute les secondes
44
    if ticks_ms()-clignotant > 1000:
45
        clignotant = ticks_ms()