Blog
GPIO del Raspberry Pi: controllare l'hardware da Python
Alessandro Panait·
GPIO sta per General Purpose Input/Output. Sono i pin lungo il bordo del Raspberry Pi che gli permettono di interagire col mondo fisico: accendere un LED, far girare un motore tramite un driver, leggere un pulsante.
Leggere e scrivere i pin
Sul Raspberry Pi OS moderno, la libreria consigliata e' gpiozero:
from gpiozero import LED, Button
led = LED(17)
button = Button(2)
led.on()
if button.is_pressed:
led.off()Semplice: crei un oggetto per un pin, poi lo accendi o lo leggi.
La regola che salva il Pi
Il GPIO del Raspberry Pi lavora a 3.3V, non 5V. Questo conta:
- Non mandare mai 5V su un pin di ingresso GPIO. Un segnale a 5V da un Arduino o un sensore puo' danneggiare il Pi in modo permanente. Usa un level shifter, o collega le schede via USB.
- Il Pi non puo' pilotare un motore direttamente. I pin GPIO danno correnti minuscole. Per muovere un motore serve un driver (un ponte H) alimentato a parte.
Usi comuni in un robot
- Mandare comandi on/off a un driver motore.
- Leggere un pulsante di avvio.
- Accendere luci tramite un relay.
- Mandare qualche bit a un'altra scheda come segnale.
Buona abitudine: massa comune
Se il Pi controlla un'altra scheda, collega le loro masse insieme. Senza una massa condivisa i segnali digitali diventano inaffidabili anche se sembra tutto cablato bene. E' la causa numero uno dei bug "funziona a volte".