L'anticamera del cestino

Raccolta differenziata di esperienze di dubbia utilità

Posts Tagged ‘Webcam

QuickCam Pro 9000 su Ubuntu 8.10

with 7 comments

La qualità delle immagini acquisite con la webcam QuickCam Pro 9000 prima e dopo la procedura descritta in questa guida

La qualità delle immagini acquisite con la webcam QuickCam Pro 9000 prima e dopo la procedura descritta in questa guida

I miei esperimenti con le webcam continuano. In questo articolo descrivo come pilotare la messa a fuoco di una webcam Logitech QuickCam Pro 9000 su Ubuntu 8.10.

Avendo necessità di effettuare acquisizioni periodiche da webcam da una distanza ravvicinata  mi sono orientato sulla webcam Logitech QuickCam Pro 9000. La scelta è ricaduta su questa webcam in primo luogo per le caratteristiche tecniche della webcam. Sul sito della Logitech si legge: “Ottica Carl Zeiss® con messa a fuoco automatica: dettagli e chiarezza superiore grazie all’obiettivo Carl Zeiss®. Immagini nitidissime anche con inquadrature ravvicinate.”. Secondariamente, stando a quanto riportato sul wiki ufficiale di Ubuntu, la webcam sembrava essere supportata completamente fin dalla versione 7.10 di Ubuntu, a parte la segnalazione di alcuni crash di Skype.

Sfortunatamente una volta collegata la webcam in oggetto alla mio PC ho potuto riscontrare che in effetti la webcam funziona out of the box tranne che per il controllo della messa fuoca.

Ecco come sono riuscito ad ottenere il controllo della messa a fuoco.

Per prima cosa è necessario installare la libreria libwebcam sviluppata dal QuickCamTeam. Sfortunatamente la libreria deve necessariamente essere compilata manualmente e, come se non bastasse, la versione ufficiale non funziona (almeno io non sono riuscito a compilarla) occorre quindi utilizzare la subversione svn. Per prima cosa scaricare la subversione svn:

wget -r http://svn.quickcamteam.net/svn/qct/Linux/

In accordo con quanto riportato nel file README della libreria occorre avere installato i complilatori e i paccheti dai queli la licenza dipende (uvcvideo, libxml2, gengetopt). Mentre il primo è quasi sicuramente presente, gli altri due vanno installati:

sudo apt-get install libxml2-dev gengetopt

A questo punto portatevi dentro la cartella che contiene i file sorgente

cd svn.quickcamteam.net/svn/qct/Linux/

e in accordo con il file readme scaricate 2 script necessari alla compilazione che dovranno essere collocati nella cartella Common/include/

cd Common/include/
wget http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk/uvcvideo.h
wget http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk/uvc_compat.h
cd -

A questo punto possiamo iniziare la compilazione del pacchetto che dovrebbe concludersi senza problemi.

mkdir build
cd build
cmake ..
make
sudo make install

Se la compilazione non ha restituito errori possiamo testare l’installazione la quale molto probabilmente vi restituirà l’errore seguente:

uvcdynctrl -c
uvcdynctrl: error while loading shared libraries: libwebcam.so.0.1.1: cannot open shared object file: No such file or directory

Per risolvere è necessario creare un link simbolico alla libreria richiesta:

sudo ln -s /usr/local/lib/libwebcam.so.0.1.1 /usr/lib/libwebcam.so.0.1.1

Torniamo a lanciare uvcdynctrl il quale dovrebbe restituire la lista dei controlli disponibili per la webcam (il focus non è ancora presente).

uvcdynctrl -c
Listing available controls for device video0:
Exposure, Auto Priority
Exposure (Absolute)
Exposure, Auto
Backlight Compensation
Sharpness
White Balance Temperature
Power Line Frequency
Gain
White Balance Temperature, Auto
Saturation
Contrast
Brightness

A questo punto installiamo il pacchetto guvcview che ci permetterà di controllare la webcam in tutti i suoi parametri, messa a fuoco inclusa.

In accordo con la guida riportata sul sito ufficiale di guvcview aggiungiamo al file /etc/apt/source.lst le righe seguenti

deb http://ppa.launchpad.net/pj-assis/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/pj-assis/ppa/ubuntu intrepid main

Importiamo le chiavi:

gpg --keyserver keyserver.ubuntu.com --recv 0x9750A93F69FAF7DA
gpg --export --armor 0x9750A93F69FAF7DA |sudo apt-key add -

Aggiorniamo la lista dei pacchetti ed installiamo guvcview.

sudo apt-get update
sudo apt-get install guvcview

Modifichiamo il file /etc/udev/rules.d/80-uvcdynctrl.rules come segue:

###########################################
# Rules for adding dynamic UVC extension unit controls to UVC devices
################################################
ACTION=="add", SUBSYSTEM=="video4linux", DRIVERS=="uvcvideo", ENV{idVendor}="$at
tr{idVendor}", ENV{idProduct}="$attr{idProduct}", RUN+="/lib/udev/uvcdynctrl"

A questo punto lachiando il comando seguente dovremmo essere in grado di controllare la messa a fuoco della webcam:

sudo guvcview

Written by Max-B

16 marzo 2009 at 13:13

Pubblicato su GNU/Linux

Taggato con , ,

Webcam su un server web

with 5 comments

Questa guida descrive i passaggi necessari per configurare una webcam collegata ad un webserver GNU/Linux in grado di acquisire immagini ad una cadenza definita. Successivamente viene descritto come autamatizzare la gestione di un archivio storico delle immagini.  Per la presente guida è stata utilizzata una webcam Logitech QuickCam S5500 la quale funziona out of the box su Ubuntu 8.10

Installazione della macchina GNU/Linux

La mia idea iniziale era quella di creare un server LAMP con Debian Lenny. Tuttavia, dopo l’installazione, ho riscontrato alcuni problemi nel riuscire a gestire la webcam. Ho tentato successivamente una installazione di Ubuntu Server 8.04, sempre in configurazione LAMP, ma ancora una volta senza successo. In entrambi i casi, all’avvio del tool webcam, il programma mi andava in segmentation fault. Sicuramente il problema sarebbe stato risolvibile, tuttavia ho preferito  aggirare l’ostacolo cambiando nuovamente installazione.

Mi sono orientato quindi ad una installazione Ubuntu mini 8.10. Ho effettuato una installazione minimale e successivamente attraverso il tasksel ho preparato il server LAMP.

Gestire la webcam

Lo strumento che ho utilizzato per gestire la webcam si chiama: webcam. Una volta lanciato senza opzioni, il programma andrà a leggere il file di configurazione dell’utente ~/.webcamrc

Ecco come ho configurato questo file:

[grab]
device = /dev/video0
text = "geotecnica %Y-%m-%d %H:%M:%S"
archive = /var/www/archivio/%Y%m%d%H%M.jpg
fg_red = 255
fg_green = 255
fg_blue = 255
width = 640
height = 480
delay = 2
wait = 0
rotate = 0
top = 0
left = 0
bottom = -1
right = -1
quality = 85
trigger = 0
once = 0
level_day = 50
diff_trig_day = 3.0
diff_trig_night = 2.0

[ftp]
dir  = /var/www
file = webcam.jpeg
tmp = uploading.jpeg
passive = 1
debug = 0
auto = 0
local = 1
ssh = 0

La sezione [grub] del file di configurazione definisce le modalità di produzione ed elaborazione delle immagini acquisite con al webcam. La maggior parte delle opzioni sono autoesplicative. Di particolare inportanza è la voce delay che indica l’intervallo di acquisizione delle immagini espresso in secondi. archive è la posizione dell’archivio storico delle immagini. Nel mio caso alle immagini viene assegnato un nome che corridponde alla data e all’ora di acquisizione (es. 200917021112.jpg). Ho omesso volutamente di indicare nel nome dei files di archivio i secondi. Con il file .webcamrc così configurato viene effettuata una acquisizione ogni due secondi, ma nell’archivio viene conservata una immagine al minuto.

La sezione [ftp] indica le politiche di upload dei file al server. Nel mio caso, con l’opzione local=1 non viene fatta alcuna connesione remota è i file vengono depositati sull’host locale.

E’ possibile a questo punto avviare webcam in background e iniziare il lavoro di acquisizione

$ webcam &

Automatizziamo la gestione dell’archivio

Prepariamo uno scrip bash (nel mio caso “gestionearchivio”) al quale faremo creare ogni notte una cartella nella quale raccogliere le immaigni del giorno precedente. Lo script si occuperà anche di eliminare le cartelle del mese precedente.

#!/bin/bash

IERI=$(date -d “yesterday” +”20%y%m%d”)
mkdir /var/www/archivio/_$IERI
mv /var/www/archivio/$IERI* /var/www/archivio/_$IERI

MESESCORSO=$(date -d “1 month ago” +”20%y%m%d”)
rm -rf /var/www/archivio/_$MESESCORSO

Rendiamo lo script eseguibile per l’utente root e copiamolo in /usr/local/sbin

$ sudo chmod 700 gestionearchivio

$ sudo cp gestionearchivio /usr/local/sbin/

Automatiziamo il processo con cron editando il file /etc/cronttab aggiungendo la seguente riga che manderà in esecuzione il comando ogni notte alle 01:01.

01 1    * * *    root    /usr/local/sbin/archiviowebcam

Può essere importante accertarsi dell’esattezza dell’ora della nostra macchina quindi, sempre in /etc/cronttab possiamo aggiungere la riga seguente per fare sincronizzare l’orologio ogni ora con quello di time.ien.it

12 *    * * *    root    ntpdate time.ien.it

Avvio del programma allo startup

Per fare avviare il programma allo startup del pc è necessario editare il file /etc/init.d/bootmisc.sh. All’interno della funzione do_start(), delimitata dalle parentesi graffe aggiungiamo la riga seguente. Il posto più indicato all’interno della funzione è alla fine, cioè appena prima della chiusura delle parentesi graffe:

# Aggiungo la webcam specificando il file di configurazione
webcam /root/.webcamrc &

Riavviamo il PC e tutto dovrebbe funzionare a dovere!

Written by Max-B

17 febbraio 2009 at 11:27

Pubblicato su GNU/Linux, video

Taggato con ,

eeePC: Ubuntu 8.04.1 webcam

with 2 comments

eeePC
Ho comprato un ASUS eeePC 1000H sul quale ho installato Ubuntu eee 8.04.1
Sorprendentemente mi sono accorto che la webcam non veniva rilevata e non era disponibile su Skype.

Facendo una piccola ricerca mi sono accorto che questo problema dipende semplicemente dal fatto che sugli eeePC nuovi di fabbrica la webcam è disabilitata a livello del BIOS.

Per abilitarla basta premere F2 all’avvio del PC. Selezionare le opzioni avanzate del BIOS e successivamente scegliere l’opzione relativa alle periferiche presenti. Qui occorre individuare la web camera e impostarla su “enabled”.

Written by Max-B

21 novembre 2008 at 09:53

Pubblicato su Linux

Taggato con , , ,

Ubuntu 8.10: la webcam non funziona più

with 19 comments

Dopo l’installazione della versione 8.10 di Ubuntu la mia webcam Logitech Quickcam Messenger, che funzionava senza alcun intervento sulla 8.04,  ha smesso di funzionare correttamente con Skype. In particolare se attivo la webcam, Skype si chiude senza restituire alcun messaggio di errore.

E’ possibile risolvere aggirando il problema e creando un nuovo eseguibile per Skype:

$ sudo gedit /usr/local/bin/skype

Scrivere nel file il testo seguente e salvare.

#!/bin/bash
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype

A questo punto non resta che rendere eseguibile il file:

$ sudo chmod 777 /usr/local/bin/skype

Lanciando l’eseguibile /usr/local/bin/skype la vostra webcam dovrebbe funzionare correttamente. A questo punto non resta che editare il menu Applicazioni di Ubuntu e modificare il comando assegnato al pulsante Skype con Sistema > Preferenze > Menu principale.

Invividuare il pulsante skype, premere proprietà e modificare il campo Comando con /usr/local/bin/skype

Written by Max-B

7 novembre 2008 at 11:59

Pubblicato su Linux

Taggato con , ,

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 42 follower