L’utilizzo della Raspberry Pi Camera su un Compute Module 4 (CM4) richiede alcune configurazioni particolari, specialmente quando si utilizza una carrier board come la Ochin V2. In questa guida, vedremo come configurare correttamente la fotocamera e quali sono i comandi utili per gestirla con il nuovo stack libcamera.
Prima di cominciare, per coloro i quali non conoscono la carrier board ochin V2 consiglio di leggere i seguenti articoli:
- Ochin V2 di Seeed Studio: la carrier board per Raspberry Pi CM4
- Come configurare il Raspberry Pi Compute Module 4 con ochin V2
Prerequisiti
- Un Compute Module 4 (CM4) con Raspberry Pi OS a 64 bit (se non sai come installare RPI OS su CM4 con Ochin v2 puoi leggere la guida apposita)
- Una carrier board Ochin V2, che permette il collegamento di una o due fotocamere.
- Una Raspberry Pi Camera V1, V2 o un’altra fotocamera compatibile.
La fine dello stack legacy (raspistill/raspivid)
A partire da Raspberry Pi OS a 64 bit, lo stack legacy che supportava i comandi raspistill
e raspivid
non è più incluso di default. Al suo posto, viene utilizzato il nuovo stack libcamera, che richiede alcuni accorgimenti per configurare correttamente i sensori.
Quali telecamere sono compatibili?
Raspberry Pi offre una gamma di telecamere compatibili, tra cui:
- Camera Module V2 (IMX219) – 8 MP
- High Quality Camera (IMX477) – 12 MP
- Camera V3 (IMX708) – 12 MP con obiettivi standard o grandangolari
- Global Shutter Camera (IMX296) – 1.6 MP per fotografia ad alta velocità
Le telecamere di terze parti come IMX290, IMX327 e OV9281 sono supportate attraverso l’integrazione con libcamera, un’API open-source per il controllo delle fotocamere
Configurazione del file config.txt
per la fotocamera
Per configurare correttamente una telecamera su CM4, è necessario modificare il file config.txt situato in /boot/firmware/
. Di seguito i passaggi fondamentali:
- Disattiva il rilevamento automatico delle fotocamere: Modifica il parametro
camera_auto_detect=1
impostandolo a 0:camera_auto_detect=0
- Aggiungi la direttiva per il modello di fotocamera. Per esempio, se stai usando una Camera V2, dovrai aggiungere:
dtoverlay=imx219
Per l’uso di due fotocamere, specifica la fotocamera collegata ai connettori CAM0 e CAM1:
dtoverlay=imx477,cam0
dtoverlay=imx219,cam1
- Riavvia il sistema per applicare le modifiche:
sudo reboot
- Verifica il collegamento delle fotocamere utilizzando il comando:
libcamera-hello --list-cameras
Questo mostrerà tutte le fotocamere connesse e riconosciute dal sistema. Ecco qui un esempio di ouput:
1234567Available cameras-----------------0 : ov5647 [2592x1944 10-bit GBRG] (/base/soc/i2c0mux/i2c@1/ov5647@36)Modes: 'SGBRG10_CSI2P' : 640x480 [58.92 fps - (16, 0)/2560x1920 crop]1296x972 [43.25 fps - (0, 0)/2592x1944 crop]1920x1080 [30.62 fps - (348, 434)/1928x1080 crop]2592x1944 [15.63 fps - (0, 0)/2592x1944 crop]
Comandi di base di libcamera per foto e video
Con l’introduzione di Raspberry Pi OS Bullseye, i comandi legacy come raspistill
e raspivid
non sono più supportati. Ora si utilizzano i comandi libcamera, che offrono maggiore flessibilità e controllo:
- Per scattare una foto:
libcamera-still -o immagine.jpg
Questo comando salva l’immagine catturata in un file JPEG. Puoi personalizzare il comando con vari parametri, come la risoluzione o il bilanciamento del bianco:
libcamera-still -o immagine.jpg --width 1920 --height 1080
- Per registrare un video:
libcamera-vid -t 10000 -o video.h264
Questo comando registra un video di 10 secondi in formato H.264. Puoi specificare la durata con il parametro
-t
(espresso in millisecondi). Se vuoi interrompere manualmente la registrazione, puoi usareCTRL + C
Esempio di script Python:
Ecco uno script semplice per scattare una foto usando Picamera2:
import os
os.system("libcamera-still -o test.jpg --vflip --hflip")
Questo comando scatta una foto, applicando una rotazione verticale e orizzontale (utile quando la telecamera è montata capovolta). Puoi personalizzare lo script per aggiungere più controlli
Utilizzo di Picamera2 in Python
Se desideri programmare la tua fotocamera usando Python, la libreria Picamera2 è la soluzione più adatta. Essa sostituisce la vecchia libreria Picamera e offre un’interfaccia moderna per interagire con libcamera.
Installazione di Picamera2:
Se non è già installata, puoi farlo con:
sudo apt install -y python3-picamera2
Soluzioni per chi ha bisogno dello stack legacy
Se per qualche motivo hai bisogno dello stack legacy, ad esempio per utilizzare software che dipendono ancora da raspistill
o raspivid
, potresti considerare l’uso di Raspberry Pi OS a 32 bit. In questo caso, puoi abilitare lo stack legacy da raspi-config
e seguire la documentazione ufficiale per configurare i file necessari (come il dt-blob.bin
).
Per maggiori informazioni sulla configurazione dello stack legacy, puoi consultare la documentazione ufficiale di Raspberry Pi:
Documentazione Raspberry Pi Camera
Conclusione
La transizione al nuovo stack libcamera
ha portato molti miglioramenti nelle prestazioni e nella flessibilità d’uso delle fotocamere su Raspberry Pi, soprattutto su configurazioni avanzate come il CM4 con la board Ochin V2. Seguendo queste istruzioni, sarai in grado di configurare e utilizzare al meglio la tua fotocamera, sfruttando tutte le potenzialità del nuovo stack.
Iscriviti ai nostri gruppi Telegram
Link utili