Home
Accesso / Registrazione
 di 

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 640x480 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 2592x1944) 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 1920x1080.

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.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Marven

Complimenti

Come al solito, ottimo lavoro, ben spiegato.
Devo dire che è un piacere leggere i tuoi articoli sempre interessanti
Ciao
Mario

ritratto di adrirobot

Ringraziamento

Ciao Mario
Ti ringrazio per i complimenti, sono contento che la mia opera sia apprezzata e spero utilizzata.
Questa guida è stata fatta seguendo varie fonti presenti in rete, ma come sarà capitato a te, a volte non sempre la spiegazione è completa e a qualcuna può mancare qualcosa.
Perciò ho pensato di realizzarne una che si basasse sulla mia personale esperienza, per cui dopo aver fatto varie prove, quella riportata è effettivamente quella da me utilizzata, con tanto di screenshot delle istruzioni.
In quanto a volte nelle istruzioni trovate alcuni comandi non erano corretti e non funzionavano magari per la presenza o assenza di uno spazio.
Segnalo che se altri avessero comunque dei problemi con l’installazione, sono disponibile a fornire aiuto.
Saluti
Adriano

ritratto di Piero Boccadoro

Ho trovato questo articolo

Ho trovato questo articolo mooooooooolto interessante e la voglia di mettere a punto questo esperimento in casa è tanta!
Bravo Adriano!
Ottimo lavoro.

Riprendo giusto un paio di concetti perchè secondo me sono fondamentali.
A un certo punto dici: "conviene maneggiare la scheda possibilmente dopo aver scaricato a terra".
Troppi sottovalutano questo fattore e mi sento di consigliare l'utilizzo del braccialetto antistatico a tutti coloro che lavorano con integrati particolarmente sensibili.
Non trascurate questo aspetto!

Dicevo, m'è venuta voglia di provare e la prima cosa che farei sarebbe proprio quella di lavorare aggiungendo l'audio... :D

ritratto di adrirobot

Aggiunta microfono alla scheda Raspberry pi

Ciao Piero.
Effettivamente vedere un filmato senza audio è deprimente.
Ho dato un'occhiata e credo che la via più breve sia quella di dotare la scheda Raspberry Pi di una Soud card di tipo USB.
Ho fatto alcune ricerche e ne ho trovati vari modelli, si va dalla Creative Sound Blaster Play!
http://uk.creative.com/p/sound-blaster/sound-blaster-play
A vari modelli cinesi a costi popolari 2-5 euro.
Resta da verificare la disponibilità dei driver per Raspbian “wheezy”, ma visto il costo si può sempre provare, vedrò di recuperarne uno e in caso positivo posso inserire un nuovo articolo.
In più una volta connesso il microfono ci si potrebbe lanciare in applicazioni di riconoscimento vocale come visibile in questo link
http://www.aonsquared.co.uk/raspi_voice_control
Saluti

ritratto di Rita.Iaquinangelo

foto

buonasera,da pricipiante 

so che sbaglio tanto  chiedo: le foto, come faccio a capire se sono  scattata  . scusate ma ci voglio provare

 a tutti costi nella riga  raspistill -v -o test.jpg

   grazie

ritratto di adrirobot

Foto

Se il modulo sta scattando la foto si accende il led rosso, e sul monitor si leggeranno vari messaggi.
Questo perché nella riga di comando è inserito il parametro -v
--verbose, Output verbose information during run

del resto se troverai il file test.jpg vedrai ciò che hai inquadrato.
Saluti
Adriano

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 7 utenti e 63 visitatori collegati.

Ultimi Commenti