ACCÉS AMB SEGURETAT
APERTURA DE LA PORTA AMB CODI DE SEGURETAT
ACCÉS AMB SEGURETAT
APERTURA DE LA PORTA AMB CODI DE SEGURETAT
Per qüestions de seguretat no és molt convenient que la porta d'entrada d'un habitatge s'obri automàticament cada vegada que algú s'hi apropa 🤔
Millor fer un tancament codificat amb un teclat: la porta només s'obrirà si el codi introduït és correcte. Inclús podem crear un sistema de bloqueig i d'alarma si s'introdueix codi erroni massa cops.
Definirem un codi textual (el meu és AABA) i utilitzarem com a teclat els botons de micro:bit: cada cop que es premi el botó A, s'afegirà una A al codi introduït, i cada cop que es premi el botó B, s'afegirà una B.
El botó A està connectat internament al pin 5, i el botó B al pin 11 de micro:bit. Per això aquests pins no estan disponibles a Robot:bit.
Definició del codi
Per desar el codi que es vagi generant en clicar els botons cal crear una variable (jo l'he anomenat codi). En iniciar-se el programa aquesta variable ha d'estar buida, perquè s'anirà omplint quan cliquem els botons.
Tingueu present:
Per defecte les variables en Makecode contenen nombres però a nosaltres ens interessa que contingui text. Això cal fer-ho saber al programa posant com a valor inicial un bloc de text buit.
Ara, cada cop que premem un botó de la micro:bit s'ha d'afegir una lletra o altra al valor anterior de la variable codi:
Podem comprovar l'efecte mostrant per pantalla el valor de la variable codi (tingueu present que el contingut de la variable és un text o cadena).
Comprovació del codi
El meu codi d'apertura de porta serà AABA. Aquest codi té 4 caràcters.
El programa ha de saber en tot moment quants caràcters té la variable codi, per tal que quan arribi a 4 comprovi si el codi introduït és correcte o no.
Cal una nova variable (aquest cop numèrica) que comenci amb valor 0 i cada cop que es premi un botó sumi 1 al seu valor:
Quan s'hagi introduït tots els caràcters al codi (en el meu cas, 4 caràcters) poden passar 2 coses:
En tots dos casos cal reiniciar les variables codi i comptador de caràcters per tal de poder tornar a introduir el codi des del començament.
Si el codi introduït és incorrecte ...
Si el codi introduït és incorrecte, en reiniciar la variable caracters s'ha de poder fer un nou intent, però quants intents considerem que hem de permetre abans de suposar que qui vol entrar és algú aliè a l'habitatge i bloquejar el sistema? Jo he permés 3 intents.
De la mateixa manera que utilitzem una variable comptador de caràcters introduïts, caldrà una nova variable comptador d'intents, que sumi 1 cada cop que s'hagi introduït 4 caràcters erròniament.
Recordeu afegir la apertura de la porta (posicionament del servo) i el tancament amb el sensor tàctil en cas que el codi introduït sigui correcte.
1. Bloquegem la porta: Fem que la resposta als botons només es produeixi si intents no és 3:
3. Desbloquegem el sistema prement els dos botons a l'hora, reiniciant totes les variables i aturant l'alarma.
2. Afegim al programa el que volem que passi quan intents = 3:
Si voleu que soni una alarma, definiu els sons des del menu Musica de Makecode.
El so sortirà pel brunzidor de Robot:bit, connectat internament al pin P0, i més potent que el de micro:bit V.2.
Convertim-lo en una funció i integrem-ho al programa d'il·luminació sostenible
De moment això és el que tinc: