RaspberryPi, le basi: pulsanti. #9

pulsanti

Nona puntata! Caspita, per essere delle basi, ce ne sono di cosette da dire, non trovi? Che dici, parliamo di pulsanti?

Nelle puntate Precedenti…

  1. RaspberryPi, le basi: Cos’è e cosa non è. #1 
  2. RaspberryPi, le basi: Sistemi operativi ed installazione. #2 
  3. RaspberryPi, le basi: post installazione. #3 
  4. RaspberryPi, le basi: i software. #4 
  5. RaspberryPi, le basi: Comandi e file utili #5 
  6. RaspberryPi, le basi: accesso remoto al Desktop. #6 
  7. RaspberryPi, le basi: sicurezza informatica contro gli hacker. #7 
  8. RaspberryPi, le basi: le porte GPIO. #8 

GPIOZero ed i pulsanti

Nelle scorse puntate abbiamo posato le basi per creare un dispositivo in grado di soggiogare l’umanità grazie ad un Raspberry ed una banana; d’altronde avrai letto come la NASA si è fatta rubare dei dati, da un RaspberryPi.

Ricordalo, il dispositivo più pericoloso al mondo, è il temibile pulsante!

Si pulsante, certo puoi usare una banana ed un sensore capacitivo, ma il concetto è lo stesso. Un pulsante può lanciare missili e sterminare l’umanità, può donare fondi per salvare umani e non, può offrirci un caffé a noi editori di MoreWare, donandoci un bonus di +5 in destrezza; in pratica può svoltare le sorti dell’umanità ed il tuo RaspberryPi ha una sacco di porte GPIO a cui collegarli…

Il pulsante non fa altro che mandare un segnale alla porta GPIO da te scelta, e questo segnale grazie alle librerie GPIOZero è facilmente gestibile tramite Python.

Partiamo con nostro editor preferito, io uso nano, ma può usare MU o cose più tecniche, alla fine lo script python è pure sempre un file di testo; ecco magari eviterei notepad o write di windows, il loro comando fine riga non sempre va d’accordo con linux.

Dopo aver creato  il nostro script, chiamato fantasiosamente, off.py , indovina cosa farà?

Attenzione: ricorda che python usa l’identazione. Ciò significa che, se dimentichi un spazietto per strada, tutto di bloccherà. Lo so, anche io detesto questa cosa.

Importiamo il pulsante dalla libreria

decidiamo su che porta GPIO collegare il nostro pulsante

 

pinout pulsanti

Ok, possiamo gestire pulsante come vogliamo, sfruttando python.

Per avviare lo script sarà sufficiente scrivere python3 off.py.

Pulsante di spergnimento RaspberryPi

Ho notato che molti nuovi utenti di RaspberryPi, si chiedono come creare un pulsante per spegnere correttamente il RaspberryPi quindi vediamo come fare.

Creiamo il nostro script off.py.

Iniziamo spiegando al sistema come interpretarlo.

Importiamo Button dalla libreria gpiozero.

importiamo subprocess per eseguire i comandi eseguibili da shell.

importiamo la pausa.

creiamo una routine in cui possiamo mettere quello che preferiamo, in questo caso lo spegnimento corretto del RaspberryPi tramite il comando da shell “sudo poweroff”.

Spieghiamo che vogliamo lo spegnimento solo dopo averlo premuto 2 secondi, per evitare spegnimenti accidentali.

La documentazione ufficiale offre altri spunti di utilizzo,  che si possono adattare alle più svariate esigenze.

Ovviamente, lo script dovrà avviarsi in automatico quindi aggiungiamolo tramite

sudo crontab -e

aggiungendo alla fine

eseguendo crontab -e preceduto da sudo avremmo i diritti di root. Questo è il metodo facile, il metodo consigliato è l’uso di systemctl.

Colleghiamo il pulsante al pin GPIO 21 e GND, a RaspberryPi spento.

raspberry pi collegamento pulsanti

Riavviare e pregare testare, in caso di errori, leggiamo il log con

Ti invito a leggere la descrizione precisa con tutti i parametri della classe Button (pulsanti), la troverai molto interessante.

Essendo una rubrica sulle basi, direi che può bastare per oggi altrimenti poi uno si annoia, si addormenta, preme il pulsante ed esplode la casa…

Ci vediamo alla prossima puntata di RaspberryPi, le basi !

Seguici per non perdere le prossime novità

Tecnico Informatico Windows | Volontario digitale | Technical Editor per RaspberryItaly e MoreWare | con mille hobby. enrico.sartori@moreware.org

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.