Primi passi con Raspberry Pi
Primo post dell’anno, primi esperimenti divertentissimi. Natale ha portato un nuovo giochino sulla mia scrivania: il Raspberry Pi 4. Inutile dire che è un regalo graditissimo e infatti mi sono messo subito a giocarci. Ammetto però che dopo l’euforia iniziale, dopo averlo configurato con Raspbian è sorta la domanda: e ora che ci faccio? Una domanda molto stupida che ha una sola risposta intelligentissima: TUTTO. Sì perché la flessibilità di questo cosetto è incredibile. Ma andiamo con ordine.
Sul web esistono una marea di progetti pronti per essere realizzati sul raspi, ma i primi risultati che ho trovato si limitavano a usare questa scheda come piattaforma per il retrogaming o come server domestico. Per quanto la cosa possa essere molto divertente, questi progetti non mi entusiasmano particolarmente, soprattutto perché a mio avviso non rendono giustizia a questa scheda (nulla toglie che possiamo tenere una scheda SD con su Retropie configurato e pronto all’uso e usarne un’altra per tutti gli altri esperimenti).
Un’applicazione che invece mi incuriosiva di più riguarda l’utilizzo dei GPIO presenti sulla scheda che sono facilmente gestibili tramite degli script python. La parola python mi ha fatto venire subito in mente i bot di telegram e ho deciso di iniziare da questa accoppiata anche per praticare un po’ di python. Il bot telegram verrà trattato in un altro post, in questo mi limiterò a fare una prima configurazione del raspberry.
Dopo aver scaricato raspian e installato l’immagine sulla micro SD, ho subito avuto la necessità di poter lavorare contemporaneamente sullo stesso monitor sia con il raspberry che non il mio PC. Per fare questo ho pensato che il modo più pratico, in un primo momento, fosse di utilizzare VNC, uno dei software di controllo remoto più diffusi. Ho quindi installato un server VNC sul raspi mentre sul mio PC utilizzo un semplice client.
Per installare VNC basta dare i seguenti comandi da terminale:
sudo apt update
sudo apt install realvnc-vnc-server realvnc-vnc-viewer
Ora controlliamo che il controllo remoto sia abilitato sul raspberry. Se non sbaglio lo era già di default ma per sicurezza andiamo a controllare alla voce Menu > Preferences > Raspberry Pi Configuration > Interfaces e assicuriamoci che la voce VNC sia abilitata. Alternativamente è possibile farlo anche da linea di comando, ma mi sta bene pure l’interfaccia grafica. Dal momento che entrambe le macchine sono connesse alla stessa rete locale è sufficiente appuntarsi l’indirizzo del raspberry (un semplice ifconfig da terminale) e inserirlo su VNC Viewer che ho installato sul PC. Ci chiederà di inserire la password del nostro utente e a questo punto avremo una pratica finestra dove vediamo il desktop del raspberry.
Per visualizzare correttamente il desktop anche nel caso in cui non ci sia nessun dispositivo video collegato al raspberry è necessario modificare la risoluzione di default dello schermo. Per fare questo basta lanciare il comando:
sudo raspi-config
e navigare in Advanced Option > Resolution. Io ho scelto “DMT Mode 85 1280x720 60Hz 16:9”, ma è sufficiente mettere qualcosa diversa dal default.
Da quando ho iniziato a scrivere questo post è passato qualche mese e nel frattempo ho ricevuto un simpatico case in plexiglass fatto da più layer con tanto di mini ventola di raffreddamento. Per il bassissimo carico di lavoro a cui è sottoposto per ora il mio Raspberry non sarebbe assolutamente necessario aggiungere una ventola di raffreddamento, ma visto che ce l’ho già perché non usarla? Ho collegato quindi la ventolina ai pin +5V e GND. Giustamente lei gira al massimo della velocità, ma purtroppo fa anche un gran rumore pressocché inutile dato che non serve tenere le temperature così basse, ancor più con un carico di lavoro praticamente nullo.
Ho deciso quindi di fare un piccolo circuitino il più compatto possibile per poter controllare in PWM la velocità di rotazione della ventola in funzione alla temperatura attuale del micro.
#Program to Control the Fan Speed To control fan speed, we use a software PWM signal from the RPi.GPIO library. Use the calib_fan.py program to find the FAN_MIN value by running in the terminal: ‘python3 calib_fan.py’ Check several values between 0 and 100% (should be around 20%) and see what is the minimum value for your fan to turn on. You can change the correspondence between temperature and fan speed at the beginning of the code. There must be as many tempSteps as speedSteps values. This is the method that is generally used in PC motherboards, moving points on a Temp / Speed 2-axis graph.
To run the program automatically at startup create a directory /home/pi/Scripts/ and place the fan_ctrl.py file inside that directory. In the same directory, copy the file named launcher.sh Edit the /etc/rc.locale file and add a new line before the “exit 0”: sudo sh ‘/home/pi/Scripts/launcher.sh’