66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# Configurazione
|
|
|
|
# Cartella dei file
|
|
cartella=/home/pi/pistampa/idee
|
|
|
|
# PIN per la lettura del pulsante
|
|
pulsante=18
|
|
|
|
# PIN per l'alimentazione del pulsante
|
|
alimentazione=23
|
|
|
|
# Numero di cicli per spegnimento
|
|
spegnimento=100
|
|
|
|
# Da qui in poi non toccare se non si sa cosa si fa
|
|
|
|
# funzioni
|
|
stampa() {
|
|
# Questa funzione usa l'opzione -R di sort per randomizzare l'output.
|
|
#lpr $(ls ${cartella} | sort -R | tail -n1)
|
|
|
|
# Debug
|
|
cat $(ls ${cartella} | sort -R | tail -n1)
|
|
}
|
|
|
|
# Inizializzazione
|
|
echo "${pulsante}" > /sys/class/gpio/export
|
|
echo "${alimentazione}" > /sys/class/gpio/export
|
|
|
|
echo "in" > /sys/class/gpio/gpio${pulsante}/direction
|
|
echo "out" > /sys/class/gpio/gpio${alimentazione}/direction
|
|
echo "1" > /sys/class/gpio/gpio${alimentazione}/value
|
|
|
|
contatore=0
|
|
while true; do
|
|
if [[ $(cat /sys/class/gpio/gpio${pulsante}/value) -eq 1 ]]; then
|
|
# Il bottone è premuto.
|
|
let "contatore += 1"
|
|
else
|
|
# Il bottone non è premuto.
|
|
if [[ ${contatore} -gt 0 ]]; then
|
|
# Se il contatore è maggiore di zero, il pulsante è stato premuto
|
|
# per un certo periodo di tempo ma ora non lo è più
|
|
if [[ ${contatore} -gt ${spegnimento} ]]; then
|
|
# Se il contatore ha superato il tempo di spegnimento, esco dal
|
|
# loop.
|
|
break
|
|
else
|
|
# Se non ha superato il tempo di spegnimento, stampo quindi
|
|
# annullo il contatore
|
|
stampa
|
|
contatore=0
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Faccio pulizia sui PIN
|
|
echo "${pulsante}" > /sys/class/gpio/unexport
|
|
echo "${alimentazione}" > /sys/class/gpio/unexport
|
|
|
|
# Infine spengo il raspberry
|
|
poweroff
|