Aller au contenu

Correction exercice 04

Pour la version ou le joystick déclanche un lancer :

from sense_emu import SenseHat
from time import sleep
from random import randint

sense = SenseHat()

while True:
    for event in sense.stick.get_events():
        if event.direction == "middle" and event.action == "pressed":
            sense.show_letter(str(randint(1, 6)))
            sleep(1)
            sense.clear()

    sleep(0.05)   # petite pause pour ne pas saturer le CPU

Pour la version ou le mouvement déclanche un lancer :

# Ce programme permet de simuler un lancer de des declancher par un mouvement du sense_emu_gui.
#
# Contrairement a la version montrer en classe j'ai ajouter un "cooldown" afin d'eviter que l'affichage change 
# sans mouvement. 
#
# Petite subtilite, la fonction get_accelerometer_raw() ne lit  pas les variations de gyroscope sur l'axe Z (yaw)


from sense_emu import SenseHat
from time import sleep, time
from random import randint

sense = SenseHat()

old_accel = sense.get_accelerometer_raw()

COOLDOWN = 2.0          # secondes minimum entre deux lancers
last_trigger = 0        # timestamp du dernier lancer


while True:

    accel = sense.get_accelerometer_raw()
    now = time()

    if (abs(accel["x"] - old_accel["x"]) > 1 or
        abs(accel["y"] - old_accel["y"]) > 1):

        if now - last_trigger > COOLDOWN:
            sense.show_letter(str(randint(1, 6)))
            last_trigger = now
            sleep(1)

            accel = sense.get_accelerometer_raw()

    old_accel = accel
    sleep(0.3)