Guida all’uso della Raspberry Pi Camera su Compute Module 4 con Ochin V2

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:

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:

  1. Disattiva il rilevamento automatico delle fotocamere: Modifica il parametro camera_auto_detect=1 impostandolo a 0:
    camera_auto_detect=0
  2. 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
  3. Riavvia il sistema per applicare le modifiche:
    sudo reboot
  4. 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:

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 usare CTRL + C

raspberry

Per saperne di più arducam ha fornito la documentazione per usare i comandi con libcamera.
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
Vedremo come utilizzare questa libreria in un prossimo articolo.

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

Seguici per non perdere le prossime novità!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.