Installiamo la camera board sulla Raspberry Pi.

raspberry-pi_camera_module_copertina_articolo

Si sta sempre più diffondendo l’utilizzo della piccola scheda embedded Raspberry Pi e si moltiplicano le applicazioni che la vedono protagonista. In questo articolo, analizzeremo la Raspberry Pi Camera che permette alla Raspberry Pi di scattare foto sino a una risoluzione di 2592  x  1944, di realizzare dei video a una risoluzione massima di 1920 x 1080 x 10bpp a 30 fps, oppure con risoluzione inferiore sino a 90 fps.

Già dal momento del lancio, sulla scheda Raspberry Pi è presente un connettore, siglato S5, per la connessione di una telecamera con l'unità di elaborazione grafica, GPU (Graphics Processing Unit) presente all’interno del processore BCM2835 della BROADCOM: si tratta di un VideoCore tecnologia IV che consente applicazioni come riproduzione multimediali, trattamento d’immagini, riprese video, visione streaming, grafica e giochi 3D.

La connessione utilizza il protocollo CSI-2 che è uno standard utilizzato nella maggior parte dei cellulari. 

 

 

Dopo la realizzazione di alcuni prototipi e, a seguito delle primi test di Compatibilità elettromagnetica (EMC), il Team di sviluppo procedeva ad alcune modifiche al circuito approdando infine alla versione che è ora in vendita.

Il circuito attuale riporta il numero di revisione 1.3.

Caratteristiche

La camera board misura 25 x 20 x 9 mm3 e pesa solo 3 grammi.

Questo la rende ideale per progetti come telecamere di sicurezza nascoste, esperimenti con palloni sonda ad alta quota, oppure come macchina fotografica a bordo di un robot. La fotocamera è pienamente supportata dalla più recente versione del sistema operativo di Raspberry Pi, il Raspbian.

Il sensore d’immagine, modello OV5647, montato sul modulo è realizzato dalla OmniVision in tecnologia CMOS.

Si tratta di un sensore da 5 megapixel con una lente a fuoco fisso e presenta le seguenti caratteristiche:

  • Dimensione matrice attiva: 2592 x 1944
  • Dimensione del pixel: 1.4 μm x 1.4 μm
  • Alimentazione del core: 1,5 V
  • Alimentazione analogica: 2,6-3V
  • Alimentazione I/O: 1,7-3V
  • Dimensione lente: 1/4”
  • Formati d’uscita: 8-/10-bit RGB RAW output
  • Controllo automatico dell'esposizione (AEC)
  • Bilanciamento automatico del bianco (AWB)
  • Filtro automatico banda (ABF)
  • Rilevamento automatico luminosità 50/60 Hz
  • Calibrazione del livello di nero automatico (ABLC)
  • Digital porta video (DVP) Interfaccia uscita parallela
  • 32 byte embedded one-time programmable (OTP) memory

La camera board è in grado di catturare le immagini così come il video ad alta definizione.

Le fotografie vengono catturate ad una risoluzione di 2592 x 1944, mentre il video è supportato a 1080p a 30 fps, 720p a 60 FPS e VGA 640×480 a 60 o 90 FPS.

Installazione del driver

Purtroppo la camera board non è "plug and play" e occorre eseguire alcuni passaggi preparatori prima di poterla utilizzare con la Raspberry Pi.

Quelli che seguono sono i passi che ho utilizzato, ma in rete se ne possono trovare altri.

Il presupposto è quello di disporre di una versione del sistema operativo Raspbian "Wheezy" che eventualmente può essere scaricato a questo link e installato su una scheda SD che sia di almeno 4GB di capacità.

Dopo l’avvio, se non appare la pagina di configurazione, si potrà digitare il comando:

sudo raspi-config

Apparso il menu, ci sono due opzioni che bisogna impostare prima di iniziare l'installazione del software della fotocamera:

1 . Espandere il file system per occupare tutta la scheda SD.

L’avvenuta espansione sarà confermata al successivo riavvio.

2 . Impostare la memoria divisa per destinare 128 Mbyte alla GPU.

 

3. Una volta completata l’operazione, occorrerà selezionare <OK> e quindi selezionare Yes alla richiesta “Would you like to reboot now?” per riavviare la scheda Raspberry Pi.

Nel caso aveste già una versione del sistema operativo, conviene verificare la presenza di qualche aggiornamento.

Per fare questo si digiterà il comando:

sudo apt-get update

Quindi si proseguirà con il comando:

sudo apt-get upgrade –y

L'aggiornamento potrebbe richiedere alcuni minuti per completarsi.

Il prossimo passo sarà quello di aggiornare il firmware del Raspberry Pi, per permettere l'installazione di tutti i driver necessari al funzionamento modulo telecamera. I passi sono

1 . L'installazione del pacchetto git-core:

sudo apt- get install git-core –y

2 . Scaricamento del  ' RPI -update ' script

 sudo wget http://goo.gl/1BOfJ -O /usr/ bin/rpi-update

3 . Cambiamento dei permessi in scrittura del ' RPI – update' in modo da poterlo eseguire

sudo chmod +x /usr/bin/rpi–update

4 . Esecuzione dello script 'RPI – update' in modo da aggiornare il firmware del Raspberry Pi

sudo rpi-update

Questa operazione richiederà diversi minuti per essere completata.

Aggiornamento file config.txt

Occorre ora aggiornare il file di configurazione caricato all’avvio del sistema operativo; per fare questo si può utilizzare il seguente comando:

sudo nano /boot/config.txt

Che aprirà, tramite un semplice elaboratore di testi, il file config.txt

in questo file dovremo aggiungere le seguenti due righe alla fine del file :

start_file = start_x.elf

fixup_file = fixup_x.dat

Inoltre assicuratevi che la seguente riga sia presente all'interno del file (questa linea dovrebbe essere stata aggiunta quando l'allocazione della memoria della GPU è stato fissato a 128 mega); se così non fosse aggiungete la seguente riga alla fine del file:

gpu_mem = 128

A questo punto l’installazione del software della fotocamera può dirsi completato. Possiamo arrestare il sistema e passare al collegamento fisico del modulo, digitiamo quindi il comando:

sudo shutdwn -h now

Come si collega il modulo

Passiamo ora ad installare fisicamente il modulo: la confezione in cui è contenuta la telecamera contiene al suo interno una busta antistatica, in quanto questo modulo, come molti altri componenti elettronici, è molto sensibile all’elettricità statica.

Per questo motivo conviene maneggiare la scheda possibilmente dopo aver scaricato a terra eventuali cariche, magari toccando il rubinetto di un lavello o un termosifone.

La telecamera è già dotata di un cavo piatto (flat cable) per la connessione.

Il collegamento è molto semplice, in quanto si limita alla connessione del cavo piatto al connettore posto in prossimità di quello per la connessione di rete RJ45.

Se è ancora presente, occorrerà rimuovere una piccola pellicola che protegge il connettore.

A questo punto, rivolgendo il lato del cavo colorato di blu verso il connettore Ethernet, si dovrà inserire completamente il cavo a nastro nello slot, assicurandosi che sia dritto, premendo delicatamente verso il basso sino ad agganciarlo in posizione.

A questo indirizzo è presente un video che mostra chiaramente come effettuare la connessione.

E’ consigliabile eventualmente realizzarsi un proprio supporto per mantenere in posizione il modulo camera, oppure acquistarne uno, che può essere trovato in rete.

Utilizzo del software della fotocamera

Una volta che il computer Raspberry Pi è stato riavviato, è possibile accedere al software della fotocamera per scattare fotografie o registrare video.

Per l’elenco dei vari comandi disponibili "Raspistill" per scattare fotografie e "Raspivid" per realizzare filmati.

Per ognuno è presente l'aiuto in linea che mostra tutte le varie opzioni disponibili: per richiamarlo è sufficiente digitare il comando senza opzioni.

raspistill

oppure

raspivid

Potete ora provare ad effettuare una semplice fotografia (risoluzione 2592×1944) tramite il comando sottoriportato, durante le operazioni saranno mostrate delle informazioni sulle caratteristiche dell’immagine.
Il piccolo led rosso presente sulla scheda, si accenderà segnalando che il circuito è attivo.

raspistill -v –o test.jpg

Piccola nota, assicurarsi che l'orientamento del modulo sia corretto, con cavo in basso, in caso contrario l’immagine apparirà invertita.

Per registrare un filmato, considerando che conterrà solo immagini video HD senza audio, occorre digitare

raspivid –o video.h264

viene creato un filmato della lunghezza di 5 secondi con una risoluzione di 1920×1080.

Un’altra possibilità data dal programma, è quella di scattare delle foto in sequenza, per esempio se digitiamo questo comando:

raspistill -o immagine_%04d.jpg -tl 5000 -t 60000

Viene scattata una foto ogni 5 secondi (5000 millisecondi) per 1 minuto (60000 millisecondi) creando una sequenza di 12 immagini.

Il comando "% 04d" si tradurrà in un numero di quattro cifre che appare in ogni nome del file.

immagine_0001.jpg

immagine _0002.jpg

immagine _0011.jpg

immagine _0012.jpg

E’ possibile a questo punto creare una sequenza di immagini unendole con uno specifico programma.

Può essere utilizzato "avconv" che è un convertitore di sorgenti audio/video, ma che può anche convertire tra frequenze di campionamento arbitrarie e ridimensionare il video al volo con un filtro polifase di alta qualità.

Maggiori informazioni a questo link.

È’ possibile installare questa utile libreria con il seguente comando:

sudo apt-get -y install Libav-tools

Per costruire il file video dalla sequenza con delle immagini con una risoluzione di 1280 × 720, si può utilizzare il comando seguente che crea un filmato “timelapse” di formato mp4:

avconv -r 10 -i immagini_%04d.jpg -r 10 -vcodec libx264 -crf 20 -g 15 -vf [...]
[...] crop=2592:1458,scale=1280:720 timelapse.mp4

Anche in questo caso è possibile avere l’help del programma digitando il comando:

avconv -h

Conclusioni

In questo breve articolo si sono potute illustrare solo alcune delle possibilità offerte dal modulo, ma esaminando le varie opzioni disponibili, si potrà approfondire la conoscenza del modulo e magari mettere a punto nuove applicazioni.

Un esempio potrebbe essere quello proposto dall’articolo Raspberry Pi: casa domotica e videosorveglianza gestibile da remoto con assistente personale.

STAMPA     Tags:, , ,

8 Comments

  1. Rita.Iaquinangelo 23 febbraio 2014
  2. adrirobot adrirobot 23 febbraio 2014
  3. ismaele ottavio.caruso 21 settembre 2014
  4. Giorgio B. Giorgio B. 23 settembre 2014
  5. Marven 6 novembre 2013
  6. adrirobot adrirobot 7 novembre 2013
  7. Piero Boccadoro Piero Boccadoro 8 novembre 2013
  8. adrirobot adrirobot 8 novembre 2013

Leave a Reply