树莓派驱动双目摄像头

最近偶然在咸鱼上,发现了一款低配廉价的双目摄像头,想用来玩玩双目测距,在网上参考了不少大神的资料,驱动过程遇到了不少问题,在这里将自己的驱动过程写出来给大家分享一下,最近会抽空搞搞双目测距,如果成功了,也会在这里跟大家分享一下。

官方给了Windows上的上位机,插上就能用,共有4种模式,左眼,右眼,红蓝,双目。

而我们今天主要介绍Linux环境下的配置。

 该摄像头支持UVC协议,在linux下默认只能读取单目的图像,因此需要模拟上位机的切换模式按键给双目摄像头发送数据。

 树莓派中可以通过uvcdynctrl命令给发送数据来切换摄像头的模式。

 树莓派中需要安装uvcdynctrl,执行如下命令

sudo apt-get install uvcdynctrl

安装完成后并把uvcdynctrl命令写成shell脚本来实现四个模式的切换。

切换成双目模式的脚本内容如下,video0为摄像头,可根据实际改动。

最后一行中用0x0100,0x0200,0x0300,0x0400指令分别可以切换到左单目,右单目,红蓝模式,双目模式。

uvcdynctrl -d /dev/video0 -S 6:8  '(LE)0x50ff'

uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x00f6'

uvcdynctrl -d /dev/video0 -S 6:8  '(LE)0x2500'

uvcdynctrl -d /dev/video0 -S 6:8  '(LE)0x5ffe'

uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0003'

uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0002'

uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0012'

uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0004'

uvcdynctrl -d /dev/video0 -S 6:8  '(LE)0x76c3'

uvcdynctrl -d /dev/video0 -S 6:10 '(LE)0x0400'

树莓派创建change.sh脚本,将上述代码写入,最后一行是模式的切换,上面已经说过了。

nano change.sh

(脚本内容)

修改文件权限

chmod 777 change.sh 

执行脚本

./change.sh

现在我们就可以通过脚本来切换摄像头的模式了。

 

下面介绍通过mjpg-streamer视频服务器采集摄像头图像,并通过Chrome浏览器采集摄像头图像。

在介绍mjpg-streamer之前,我先写一些准备工作,为了让没有基础的同学也弄出来。

Enable树莓派摄像头

用putty进入树莓派后,enable摄像头(执行一次即可,无需每次开机都执行):

sudo raspi-config

 

选择第5个,进入后第一个就是camera,直接使能,然后重启。

sudo reboot

 

 

安装必要的库

命令行直接敲以下指令:

sudo apt-get update

sudo apt-get install subversion

sudo apt-get install libjpeg8-dev

sudo apt-get install imagemagick

sudo apt-get install libv4l-dev

sudo apt-get install cmake

sudo apt-get install git

git开源的project到本地,编译

sudo git clone https://github.com/jacksonliam/mjpg-streamer.git

cd mjpg-streamer/mjpg-streamer-experimental

#注意一定要在mjpg-streamer-experimental文件夹下,进行编译

make all

sudo make install

最后,在命令行中输入命令

./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"

就可以驱动摄像头了。

然后打开浏览器输入192.168.43.148:8080就可以看到图像了。

上面的IP地址是我的,大家只需要换成自己的就没问题。

效果展示。