Yún – How to connect a webcam (1)

by luca
57 comments

Today’s tutorial, split in two parts, will explain how to use a webcam with your Arduino Yun.

Choose the webcam

The Linux distribution (Linino) running on the Yun supports the webcams using the UVC driver: the complete list of the compatible webcams is available on its official page.

It is not actually supported the Gspca driver; support for that is planned and will be available soon.

I chose – after having read positive tests by other users – the Microsoft LifeCam HD-3000 webcam, available for about 20 euros:

Install the software

Before connecting the webcam, you must install some software packages on your Arduino Yun. The installation can be performed from the command line (using an SSH connection) or via GUI… for this tutorial I chose the latter.

Arduino Yun must be connected to your network and able to surf on the Internet.

With your favorite browser, connect to the Arduino’s web interface and, after having inserted its password, click on Configure, then advanced configuration panel:

From the top menu, choose System, Software:

Click on Update lists to update the list of the available packages:

Find the kmod-video-uvc package, then select the Available packages tab and install it:

Do the same for the fswebcam packet:

Now connect the webcam to the USB port of your Yun. To be sure that Linino detected and installed it, inspect the system log:

The last lines of the logs should say that the webcam was correctly installed:

Shoot a picture

Now connect to your Yun via SSH: you’re going to use the fswebcam tool to shoot a picture and save it on the SD card, to make it visible using a web browser.

Move to the SD card (cd /www/sd) and type the command

fswebcam --no-banner --save photo.jpg

With this command fswebcam will capture a picture from the webcam and save it, without adding any text (–no-banner), with the name photo.jpg:

Now you can display the saved picture from the web browser:

Related Posts

57 comments

lucadentella.it – Yún – Aggiungiamo una porta seriale Monday December 2nd, 2013 - 09:18 AM

[…] disposizione una porta USB host, alla quale è possibile collegare periferiche USB quali tastiere, webcam… e anche un adattatore […]

Reply
Arduino Yun Bridge curl - Mauro Alfieri Elettronica Domotica Robotica Wednesday December 4th, 2013 - 08:36 AM

[…] qualcuno alla porta, questo è abbastanza semplice se usi la webcam come descritto dall’amico Luca e usi uno script linux che periodicamente controlla il sensore PIR collegato alla Arduino Yun […]

Reply
Giovanni Tuesday February 18th, 2014 - 07:31 PM

Ciao

grazie per questo articolo; come si collega la WEBCAM a YUN? Spero non con decine di cavetti o uno Shield.

Giovanni

Reply
luca Tuesday February 18th, 2014 - 08:10 PM

una semplice connessione USB: Yun dispone di una porta USB host… più facile di così! 😉

Reply
Giovanni Tuesday February 18th, 2014 - 10:04 PM

Lo speravo, grazie

Giovanni

Reply
pietro Wednesday February 19th, 2014 - 02:53 PM

Ciao,volevo sapere piu o meno il tempo che ci mette arduino yun per scattare un foto e memorizzarla su sd.In pratica mi servirebbe un sistema che scatti subito una foto,appena un sensore di prossimita’ rilevi un oggetto.Grazie.

Reply
luca Wednesday February 19th, 2014 - 09:17 PM

ciao pietro, ho fatto qualche prova: fswebcam impiega circa 2 secondi per acquisire l’immagine, convertirla e salvarla su SD. se però fai catturare più di una immagine in sequenza, il tempo per acquisire la seconda, terza… è molto inferiore.

Reply
davide Tuesday April 1st, 2014 - 04:05 PM

Ciao luca,
Complimenti per l’articolo , volevo chiederti come si installano i pacchetti fswebcam e kmod-video-uvc , dato che quando faccio update list non mi appaiono.In più se impostdavode.lao yun come client, ho la rete Internet ma non posso accedere al pannello di linino..
Grazie

Reply
robert Sunday May 25th, 2014 - 06:12 PM

thanks a lot!,it work

Reply
Oscar Thursday May 29th, 2014 - 10:26 AM

Hola!
He seguido paso a paso tu tutorial, por cierto muy bien explicado, pero he tenido un par de problemillas que me gustaría preguntarte.

Con wifi configurada y usando puTTY sobre un Wnd7, hago una conexion SSH a mi ip del Arduino Yun.
El problema es que:
Cuando conecto la microSD, no me la reconoce como “sd”, sino que me aparece en “/mnt como sda1”.
Con la webcam conectada ejecuto:
“root@Arduinoyun:/mnt/sda1# fswebcam –no-banner –save foto.jpg”

Lo cierto es que SI captura la foto, que queda almacenada en la microSD, pero despues NO puedo visualizarla por el navegador.
pongo “192.168.0.101 /mnt/sda/foto.jpg” y NADA.. ¿Podrías decirme donde esta el error?, ¿Quizas en la ruta del navegador?.

Muchas gracias y FELICIDADES por el articulo

Reply
luca Thursday June 5th, 2014 - 08:48 PM

Hi Oscar

(I hope I correctly understood your comment) first you must create (using your PC for example) on your SD the folder “arduino” and, inside that, the folder “www”. When you insert the SD card it now should be available at /www/sd. Give a read to my blog post.

Reply
Gabriele Sunday July 6th, 2014 - 02:24 PM

Ciao,
grazie per la guida. Purtroppo ho un problema che non capisco se dipende dall’hardware (connessione elettrica USB) o dal software. La Webcam non viene rilevata dalla porta USB (e neanche una chiavetta USB utilizzata come controprova). Ho installato tutti i pacchetti indicati e anche altri relativi all’USB. Ho aggiornato l’immagine del sistema operativo e ne ho provate anche altre versioni senza successo.
Hai qualche consiglio da darmi?
Grazie e complimenti per il lavoro!

Reply
luca Tuesday July 8th, 2014 - 08:12 AM

ciao Gabriele,

mmm non ti vede assolutamente nulla che colleghi alla USB? Prova con un HID device (tastiera/mouse)…

Reply
pete Thursday August 14th, 2014 - 12:40 PM

Hi,

nice tutorial.
webcam works and the pic is on the gets into the folder mnt/sda1/arduino/test.png … however I cannot access it via the browser. Do I need to start a client application or am I typing a wrong url?
192.168.2.136/mnt/sda1/arduino/test.png doesnt work
thanks

Reply
luca Friday August 15th, 2014 - 02:04 PM

Hi Pete

you should save the images in the www folder (/mnt/sda1/arduino/www) which is accessible through a web browser at the /sd/myphoto.jpg path (sd is a symlink to /mnt/sda1/arduino/www)

Reply
Luigi Tuesday September 9th, 2014 - 04:47 PM

Ciao Luca. Ho fatto la stessa esperienza seguendo il libro “Alla scoperta di Arduino Yun” avendo però problemi di hanging della webcam e/o di Yun.
Ho quindi fatto l’update di OpenWrt a 1.4.2 e aimè la cosa la webcam mi rimanda lo streaming a quadri e pure le foto scattate da “motion”. Ho pensato fosse la webcam Logitech Quickcam 9000 che è data per avere problemi con il driver UVC e quind l’ho sostituita con la Logitech C270 data per funzionante con UVC. Niente stesso prblema. Hai qualche idea?
Grazie
Luigi

Reply
Simone Tuesday December 15th, 2015 - 11:20 AM

massimo rispetto per luca e questa pagina,
Luigi le logitec danno problemi…
ho trovato questa pagina
http://www.ideasonboard.org/uvc/
date un occhio.

Reply
piero Monday October 6th, 2014 - 02:49 PM

Ciao Luca,
sto iniziando da 0 con arduino e vorrei iniziare con lo yun.
Vorrei sapere se è possibile fare la stessa cosa, ma collegando delle telecamere IP sulla stessa rete. l’intento è decidere tramite interfaccia web quale telecamera visualizzare..
Puoi aiutarmi o darmi qualche dritta?
ciao e grazie
Piero

Reply
luca Wednesday October 8th, 2014 - 12:44 PM

Ciao Piero, se le telecamere sono già IP, non ti serve un dispositivo ulteriore… esistono (penso anche gratuiti) del software di “aggregazione” che ricevono i flussi video dalle varie telecamere e te le presentano a matrice o ti lasciano scegliere quale vedere.

Reply
piero Friday October 10th, 2014 - 09:27 AM

Ciao Luca,
grazie mille per la risposta.
Le telecamere sono IP e sono già collegate a server (qnap) con il quale le gestisco; la mia domanda era dovuta al fatto che, volendo iniziare con lo yun, lo sviluppo di una piccola applicazione web da metterci sopra per gestire le telecamere poteva essere un punto di partenza.
ciao e grazie
Piero

Reply
piero Friday October 10th, 2014 - 10:04 AM

Ciao Luca,
rileggendo quello che ho scritto mi sono accorto che probabilmente ho commesso un errore di base: per fare quello che ho detto l’applicazione sarebbe installabile su qualsiasi server anche differente da quello presente sullo yun in quanto non utilizzerebbe il driver linino-usb di connessione e gestione della telecamera…
OPS… piccolo errore di fondo…
sorry
P

Reply
Leo Saturday October 25th, 2014 - 12:24 PM

ciao Luca.

mi rimane appesa la scritta

Trying source module file….

e non esegue nulla….

Quale potrebbe essere la causa?

Reply
Leo Saturday October 25th, 2014 - 12:41 PM

ho notato che non ho il file /dev/video0

Reply
luca Saturday October 25th, 2014 - 01:14 PM

Ciao Leo, ma la tua Yun è collegata a Internet? Hai aggiornato l’immagine Linino all’ultima versione? Sembra che non riesca a scaricare i drivers…

Reply
Angelo Thursday October 30th, 2014 - 04:01 PM

Ciao Luca, potrei usare la scheda Arduino Yun per tenere connessa in rete una web cam in ripresa continua? Oppure potrebbe anche bastare una scheda Arduino UNO + una Ethernet Shield?
Grazie anticipatamente
Angelo

Reply
luca Friday October 31st, 2014 - 03:07 PM

Ciao Angelo, puoi farlo con la Yun (non con Arduino normale) ma è un po’ uno “spreco”, una webcam IP ti costa sicuramente meno 😉

Reply
giovanni Friday November 28th, 2014 - 07:06 PM

Ciao e grazie per l’aiuto che fornisci. Ho seguito il tutorial alla lettere ed è andato tutto bene fino a quando provo a salvare la foto. Putty mi restituisce il seguente msg:
“There are unsaved changes to the image” al posto di “writing jpeg image to photo.jpg.
Che faccio???. Grazie ancora

Reply
luca Friday November 28th, 2014 - 08:36 PM

ciao giovanni, posta tutto l’output del comando fswebcam –no-banner –save photo.jpg

Reply
giovanni Friday November 28th, 2014 - 10:27 PM

ho risolto

Reply
lovely Thursday January 1st, 2015 - 02:58 PM

hello. good evening. i just wanted to ask if how come that my webcam doesn’t capture any frames. it is always mention that no captured frames.

thank you!

Reply
luca Thursday January 8th, 2015 - 09:46 AM

Hi! Do you get any errors from fswebcam? Try using the -S switch to skip the first n frames

Reply
Marco Wednesday July 8th, 2015 - 07:15 AM

Buongiorno e grazie in anticipo.
Avrei bisogno di sapere quanto tempo ci mette a partire arduino yum dal momento dell’accensione.

Reply
luca Thursday July 9th, 2015 - 05:11 PM

Ciao Marco, circa 1 minuto il mio yun (con uhttpd, php…) da quando lo accendo a quando la parte web è visibile in rete (wifi).

Reply
paolo Sunday July 19th, 2015 - 08:54 PM

perdona la domanda sciocca, ma dove trovo i pacchetti: kmod-video-uvc e fswebcam???
grazie paolo

Reply
luca Monday July 20th, 2015 - 07:45 AM

Paolo, puoi installarli o tramite l’interfaccia web di Yun come spiegato nell’articolo, o in alternativa usando il comando opkg da shell.

Reply
paolo Monday July 20th, 2015 - 07:51 AM

Ahhh ora ho capito!!! grazie Luca faccio una prova e vedo se funziona.

Reply
paolo Monday July 20th, 2015 - 08:13 AM

Funziona perfettamente anche con la yun shield. L’unico problema è ke la shield non avendo una microsd, ti costringe a salvare le foto sulla memoria interna.
Grazie mille Luca sia per la guida sia per il supporto.

Reply
ale Tuesday January 19th, 2016 - 01:03 AM

ciao luca, bellissimo tutorial(come al solito) devo solo fare una domanda: è possibile impostare la yun in modo tale che faccia una foto ogni tot minuti(esempio ogni 30 min)?

Reply
luca Tuesday January 19th, 2016 - 08:51 AM

Ciao Ale, basta che inserisci il comando per scattare la fotografia in cron. Il modo più facile è via interfaccia web altrimenti con il comando crontab -e.

Reply
Paolo Monday March 21st, 2016 - 08:36 PM

Ciao luca,
che tu sappia, si puo catturare la foto con risoluzione 640×480??
perche viene ridimensionata a 252×288?
grazie mille
Paolo

Reply
luca Monday March 21st, 2016 - 09:02 PM

Ciao Paolo! Sicuramente sì, prova a giocare con le varie opzioni di fswebcam, puoi forzare anche la risoluzione…

Reply
Paolo Tuesday March 22nd, 2016 - 07:34 AM

trovato!!!

1) questo per modificare la risoluzione:
fswebcam -d /dev/video0 -r 1600×1200 output.jpg

2) questo pr modificare la risoluzione e salvare il file con DATA ed ORA dello scatto:
fswebcam -d /dev/video0 -r 1600×1200 /mnt/picture-`date +%d-%m-%y-%H-%M-%S`.jpeg

Reply
Vito Tuesday April 5th, 2016 - 05:00 PM

Ciao, sto riscontrando un errore nell’acquisizione della foto. Praticamente dopo il comando “fswebcam photo.jpg” ottengo “—Opening /dev/video…” e poi l’errore “stat: No such file or directoty”.
Potrebbe essere un problema di webcam non compatibile o non funzionante?
Grazie

Reply
luca Wednesday April 6th, 2016 - 12:34 PM

Ciao Vito, si normalmente quell’errore indica che Yun non ha riconosciuto la webcam e quindi fswebcam non riesce ad accedere al “file” corrispondente

Reply
Alessandro Tuesday April 5th, 2016 - 10:34 PM

Buona Sera Luca, ottimo guarda, volevo sapere come invece, sempre collegato una camera usb allo Yun, fare una streaming su pagina web, digitando quindi sul computer l’ip dello yen in vece della foto far apparire lo streaming in tempo reale della camera

Grazie Mille
Alessandro

Reply
luca Wednesday April 6th, 2016 - 12:35 PM

Ciao Alessandro, nella seconda parte del tutorial è spiegato proprio come fare streaming…

Reply
Nicola C Friday May 13th, 2016 - 11:41 PM

ciao Luca, e grazie per la guida molto precisa!
premettendo che da terminale riesco ad acquisire foto, salvarle nella sd e visualizarle in rete locale vorrei chiederti come poter implementare questo all’interno di uno sketch.
io richiamando la funzione takephoto() vorrei riuscire a scattare la foto e salvarla.
è giusto il comando shell scritto così nello sketch? cosa non va?

ringrazio in anticipo, Nicola.

void takephoto()
{
Process p;
//cd /www/sd/
//fswebcam –no-banner –save foto.jpg

p.runShellCommand(“fswebcam –no-banner –save foto4.jpg > /mnt/sda1/arduino/www/foto4.jpg”);
while (p.running());

//while (p.available())
//{delay(1000);}
}

Reply
luca Monday May 16th, 2016 - 07:49 AM

Ciao Nicola, il comando esatto di fswebcam è fswebcam --no-banner /www/sd/foto4.jpg, questo ti salva foto4.jpg sulla sd card (meglio non scrivere nella memoria interna dello Yun) senza banner.

Reply
Nicola C Tuesday May 17th, 2016 - 11:05 PM

Grazie 1000!!! Fenomenale!!!
Funziona alla grande!
Sapresti darmi qualche dritta ora per caricare questa foto su uno spazio web altervista? Via ftp o magari servendosi di qualche altro servizio gratuito, grazie!

Reply
luca Wednesday May 18th, 2016 - 09:06 AM

puoi fare uno script che usa il client ftp di linino per fare l’upload dopo aver chiamato fswebcam per acquisire l’immagine

Reply
Mattia Friday June 10th, 2016 - 02:38 PM

Ciao Luca quando eseguo il comando ‘fswebcam photo.jpg’ all’interno della cartella www, mi da questo errore:
/dev/video0 opened.
No input was specified, using the first.
Error selecting input 0
VIDIOC_S_INPUT: Device or resource busy
Come posso risolvere? Grazie

Reply
luca Monday June 13th, 2016 - 08:30 AM

Ciao Mattia, sembra che la tua webcam non sia riconosciuta da Linux, hai verificato nel logs di sistema come spiegato nell’articolo?

Reply
Mattia Wednesday June 15th, 2016 - 04:21 PM

Mi da questo tipo di errore di input nel Log:

Apr 1 14:45:10 Mattia user.err syslog: [1] [ERR] [ALL] motion_loop: Video device fatal error – Closing video device
Apr 1 14:45:10 Mattia user.notice syslog: [1] [NTC] [VID] vid_close: Closing video device /dev/video0
Apr 1 14:45:10 Mattia user.info sysinit: [1] [WRN] [ALL] motion_loop: Retrying until successful connection with camera
Apr 1 14:45:10 Mattia user.info sysinit: [1] [NTC] [VID] vid_v4lx_start: Using videodevice /dev/video0 and input -1

Reply
luca Thursday June 16th, 2016 - 08:50 AM

ciao, appena dopo aver collegato la webcam alla porta usb digita dmesg e copia le ultime righe…

Reply
Mattia Monday June 20th, 2016 - 12:05 PM

Ciao questo è quello che sta nelle ultime righe:
root@Mattia:~# [ 54.980000] wlan0: authenticate with 54:e6:fc:fe:0e:3a
ash: missing ]
root@Mattia:~# [ 55.030000] wlan0: send auth to 54:e6:fc:fe:0e:3a (try 1/3)
-ash: syntax error: unexpected “(”
root@Mattia:~# [ 55.040000] wlan0: authenticated
ash: missing ]
root@Mattia:~# [ 55.050000] ath9k ar933x_wmac wlan0: disabling HT/VHT due to WEP/TKI
P use
ash: missing ]
root@Mattia:~# [ 55.050000] ath9k ar933x_wmac wlan0: disabling HT as WMM/QoS is not
supported by the AP
ash: missing ]
root@Mattia:~# [ 55.050000] ath9k ar933x_wmac wlan0: disabling VHT as WMM/QoS is not
supporte d by the AP
ash: missing ]
root@Mattia:~# [ 55.070000] wlan0: associate with 54:e6:fc:fe:0e:3a (try 1/3)
-ash: syntax error: unexpected “(”
root@Mattia:~# [ 55.100000] wlan0: RX AssocResp from 54:e6:fc:fe:0e:3a (capab=0x431
status=0 aid=6)
-ash: syntax error: unexpected “(”
root@Mattia:~# [ 55.110000] wlan0: associated
ash: missing ]
root@Mattia:~# [ 76.160000] usb 1-1.4: reset high-speed USB device number 4 using eh
ci-platfo rm
ash: missing ]

Reply
Yún – How to add a serial port | LinkSprite Learning Center Monday July 4th, 2016 - 02:05 AM

[…] has also an USB host port, which can accept USB peripherals like keyboards, webcams… and also USB->serial […]

Reply
Yún – How to connect a webcam (2) | LinkSprite Learning Center Wednesday July 6th, 2016 - 02:34 AM

[…] the first part of this tutorial you learned how to configure your webcam with Arduino Yun and how to capture […]

Reply

Leave a Reply to paolo Cancel Reply

three × 1 =