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".

Commenti (0)