Usare una telecamera con il Raspberry Pi
Una telecamera trasforma un Raspberry Pi da controllore a robot che vede. Questo sblocca il line following, il rilevamento di oggetti e la navigazione, tutto dai pixel.
Due tipi di telecamera
- Telecamere a nastro (CSI) si collegano alla porta dedicata del Pi e si gestiscono con la libreria moderna
picamera2. Veloci e a bassa latenza. - Telecamere USB si collegano a una porta USB e funzionano con
VideoCapturedi OpenCV. Comode, latenza un po' piu' alta.
Il loop centrale
Ogni programma di visione e' un ciclo: prendi un frame, elaboralo, agisci.
frame = camera.capture_array() # prendi un'immagine
# elabora: trova la linea, rileva un oggetto
# decidi cosa deve fare il robotLa risoluzione e' un compromesso
Un'immagine piu' grande ha piu' dettaglio ma richiede piu' tempo per l'elaborazione, il che abbassa il frame rate. I robot quasi sempre rimpiccioliscono l'immagine prima di elaborarla (ad esempio a qualche centinaio di pixel di larghezza). Meno risoluzione significa loop piu' veloce, e un loop veloce fa reagire il robot in tempo. Il dettaglio che non ti serve rallenta e basta.
L'illuminazione e' tutto
Le telecamere valgono quanto la luce. Ombre e riflessi rovinano il rilevamento del colore. I robot seri aggiungono la propria illuminazione LED e calibrano i colori sul campo vero, perche' la luce in gara non e' mai la luce del tuo laboratorio.
Dai pixel alle decisioni
Una volta ottenuto un frame usi l'elaborazione immagini (OpenCV) o una rete neurale per trovare cio' che conta: la linea, un marcatore, un target. Vediamo le basi nella lezione su OpenCV.