Faltava ainda um tipo qualquer de sensor para ter um sistema verdadeiramente autónomo por isso liguei um sensor de toque LEGO Mindstorms (ainda estilo RCX) a uma das entradas digitais PiFace.
O PiFace tem 8 entradas digitais com pull-ups internos (li algures que se podem desligar, deixando as entradas «flutuantes»). Como o sensor de toque RCX é um mero interruptor basta ligar um dos cabos a uma das entradas e o outro à massa. Com o sensor em repouso (interruptor aberto) a entrada do PiFace vai ler um “1” e quando ocorrer contacto (interruptor fechado) a entrada vai ficar ligada à massa e é lido um “0”.

É muito fácil acompanhar o estado do sensor, basta ler continuamente o estado da entrada. No script abixo usei a entrada #0 e acrescentei um atraso de 200 ms entre cada leitura para não inundar o terminal com mensagens “ON!” ou “OFF!”
#!/usr/bin/python3
import sys
from time import sleep
import pifacedigitalio
pifacedigital = pifacedigitalio.PiFaceDigital()
led7=pifacedigital.leds[7]
led6=pifacedigital.leds[6]
led7.turn_off()
led6.turn_off()
in0=pifacedigital.input_pins[0]
while(True):
if(in0.value != 0):
print("ON!")
else:
print("OFF!)
sleep(0.2)
E se quisermos usar o sensor para controlar o leão basta juntar tudo:
#!/usr/bin/python3
import sys
from time import sleep
import pifacedigitalio
DELAY_UP = 0.17
DELAY_DOWN = 0.14
DELAY_WAIT = 0.75
pifacedigital = pifacedigitalio.PiFaceDigital()
led7=pifacedigital.leds[7]
led6=pifacedigital.leds[6]
led7.turn_off()
led6.turn_off()
in0=pifacedigital.input_pins[0]
while(True):
if(in0.value != 0):
print("Para cima!")
led7.turn_on()
sleep(DELAY_UP)
led7.turn_off()
print("Espera!")
sleep(DELAY_WAIT)
print("Para baixo!")
led6.turn_on()
sleep(DELAY_DOWN)
led6.turn_off()
Para ligar o sensor à entrada #0 do Piface Digital cortei um cabo RCX a meio:
O diagrama abaixo ilustra a configuração final, no que diz respeito às ligações eléctricas:
