Tutorials/arduino-yun-videorecorder-101
Arduino Yun Basics
This tutorial covers a little introduction to video recording with Arduino Yun and a USB webcam. No Arduino code in this first part, only some linux embedded configuration on the awesome Arduino Yun board!
I assume that the reader has a pc or a mac (named Bob) and an Arduino Yun, named Arduino. Moreover, I suppose the reader is quite familiar with the computer in general and know a little bit of shell/linux commands. In particular I in my case Bob is amac os/x and, and everything is starting with an iTerm2 session where everything begin with a dollar sign ($)..
Before starting
Assure we have:
- Installed and working Arduino Ide version 1.5.6-r2.
- Configured Arduino Yun board. See Basic Arduino Yun wireless configuration.
Let's become confident with the board
arduino.local does not always resole, so safely to use the ip number (192.168.240.1, for initial configuration) then the host name.
To log into the yun via ssh (from Bob shell): $ ssh root@192.168.1.13
Now you're logged in the Arduino Yun linux board. We are inside an embedded linux machine, in particular a child of OpenWrt. For briefness I will differentiate what is happening inside the iTerm session in Bob with $ and what is happening inside the yun shell accessed via ssh with ~.
See which distribution, kernel version, etc:
~ cat /proc/version Linux version 3.8.3 (federico@smilzo) (gcc version 4.6.4 20121210 (prerelease) (Linaro GCC 4.6-2012.12) ) #8 Mon Aug 19 16:22:39 CEST 2013
See if the micro sd card is already mounted:
mount
I won't specify every time the path but I'm going to use the micro sd card for storing videos or pic rues from the welcome.
Install some useful packages for video and webcam:
~ opkg update ~ opkg install kmod-video-uvc kmod-video-pwc kmod-input-core ~ opkg install libjpeg fswebcam ~ wget http://www.custommobileapps.com.au/downloads/mjpg-streamer.ipk ~ opkg install mjpg-streamer.ipk ~ opkg install ffmpeg ffserver ~ opkg install python-openssl
After each installed package, to see free space on the hard disk:
~ df -h Filesystem Size Used Available Use% Mounted on rootfs 7.5M 4.9M 2.6M 66% / /dev/root 7.0M 7.0M 0 100% /rom tmpfs 29.9M 372.0K 29.5M 1% /tmp tmpfs 512.0K 0 512.0K 0% /dev /dev/mtdblock3 7.5M 4.9M 2.6M 66% /overlay overlayfs:/overlay 7.5M 4.9M 2.6M 66% / /dev/sda1 7.4G 848.0K 7.4G 0% /mnt/sda1
To run a python server
~ python -m SimpleHTTPServer
See if python server (or the streaming server, vide infra) is running (from Bob),
$ nmap 192.168.1.13 Starting Nmap 6.40 ( http://nmap.org ) at 2014-04-30 13:03 CEST Nmap scan report for 192.168.1.13 Host is up (0.19s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 53/tcp open domain 80/tcp open http 443/tcp open https 8000/tcp open http-alt Nmap done: 1 IP address (1 host up) scanned in 39.77 seconds
With standard usb uvc cam
To see the stream (from Arduino to Bob):
~ mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480" -o "output_http.so -p 8080 -w /mnt/sda1"
Then open "http://arduino.local:8080/?action=stream" in a brower (inside Bob)
To shoot a photo (on Arduino):
~ fswebcam test.png
and to see the photo via http request from Bob, just start a
~ python -m SimpleHTTPServer
in the directory where the photo is saved and access it by browsing (from Bob) to "192.168.1.13/test.png"
With PS3 Eye Webcam
http://forum.arduino.cc/index.php?topic=231712.0 maybe can help
References
- Arduino Forum - Guide to Setup Streaming Web Cam on the Yun
- How-to build an Arduino Yun powered Camera
- Adafruit - Wireless Security Camera with Arduino Yun
- La tana del gurzo - Webcam streaming con OpenWRT
- Mikamai dev-blog - Arduino Yun Social photo camera
- Mikamai dev-blog - You can't touch this, Arduino based alarm