Per azionare il motore che apre la porta, occorre inserire la password pre-impostata (AABAA) premendo i bottoni A e B del micro:bit. Per confermare la password occorre premere contemporaneamente i bottoni A + B. Se la password è giusta, compare il segno di spunta e la porta si apre; altrimenti compare una X ed è possibile riprovare.
Quando compare il segno di spunta, è possibile inserire una nuova password premendo i bottoni A e B, confermando l’inserimento premendo contemporaneamente A + B. La nuova password viene visualizzata una volta prima di diventare attiva.
Per chiudere la porta, occorre premere insieme A + B senza inserire password.
Ovviamente, ogni volta che si riaccende il micro:bit si riparte dalla password pre-impostata.
Il codice in Python:
def on_button_pressed_a():
global tentativo, nuovapassword
if stato == "inserimento":
tentativo = "" + tentativo + "A"
else:
nuovapassword = "" + nuovapassword + "A"
input.on_button_pressed(Button.A, on_button_pressed_a)
def on_button_pressed_ab():
global nuovapassword, stato, tentativo, password
if stato == "inserimento":
if tentativo == password:
basic.show_icon(IconNames.YES)
pins.servo_write_pin(AnalogPin.P0, 90)
nuovapassword = ""
stato = "modifica"
else:
basic.show_icon(IconNames.NO)
stato = "inserimento"
pins.servo_write_pin(AnalogPin.P0, 0)
basic.pause(500)
basic.clear_screen()
tentativo = ""
else:
password = nuovapassword
basic.show_string("" + (password))
stato = "inserimento"
input.on_button_pressed(Button.AB, on_button_pressed_ab)
def on_button_pressed_b():
global tentativo, nuovapassword
if stato == "inserimento":
tentativo = "" + tentativo + "B"
else:
nuovapassword = "" + nuovapassword + "B"
input.on_button_pressed(Button.B, on_button_pressed_b)
nuovapassword = ""
stato = ""
tentativo = ""
password = ""
password = "AABAA"
tentativo = ""
stato = "inserimento"
nuovapassword = ""
pins.servo_write_pin(AnalogPin.P0, 0)