移动物体监控系统的设计与开发完整版

该系统主要分两部分,一部分是usb摄像头捕捉到移动图像,系统发出声音报警提示,并将采集到的图像/视频保存在指定路径(tiny6410web服务器指定的位置);另一部分是在局域网/公网环境(我这里采用局域网)下,tiny6410开发板与pc/智能终端建立网络连接,通过pc/智能终端访问之前采集的图片/视频。

一.系统构成

该系统硬件由usb摄像头,tiny6410开发板,无线网卡,sd卡硬件构成,软件由嵌入式web服务器(appweb),监控主程序,usb摄像头捕获视频所需库文件和报警子系统-音频播放器主程序 及播放器所需库文件构成。

下面罗列所需的源文件:

1.motion-3.2.12.tar.gz(监控主程序)

2. ffmpeg-0.5.1.tar.gz (usb摄像头捕获视频所需库文件)

3.madplay-0.15.2b.tar.gz( 音频播放器主程序4.libid3tag-0.15.1b.tar.gz-libmad-0.15.1b.tar.gz-zlib-1.1.4.tar.gz播放器所需库文件)。

5.appweb-3.3.2.tar.gz(嵌入式web服务器)

以上源文件可以在http://download.csdn.net/my 下载。

二.该系统结构组成

1. 声音报警子系统

  1.1声卡驱动的开发

  1.2 嵌入式播放器移植

2. 摄像头子系统开发

  2.1 摄像头驱动开发

  2.2 V4L2图像的编程接口学习

3. 移动图像监控主系统设计与开发

  3.1移动图像监控主系统的移植

4. 嵌入式服务器的开发

  4.1 嵌入式服务器的移植

 各源文件的编译步骤

pc端的linux系统中建立自己的工程文件/home/Motion,分别将上述的源文件压缩包拷贝到工程文件下,并解压在该目录下。在该目录下创建一个目标文件target-arm用于保存下面编译的库文件及二进制可执行文件。可以在http://blog.csdn.net/qq_28693567/article/details/51235723 下载target-arm 包

1.首先讲解ffmpeg的编译方法,因为在编译motion时需要ffmpeg的库文件

1)解压   tar xvzf  ffmpeg-0.5.1.tar.gz

2)配置   ./configuer   --prefix=${PWD}/_install(源文件没有该安装文件,需手动建立一个安装目录)  --arch=arm   --cross-prefix=arm-linux-  --enable-shared

3)make

4)make install  安装完成会在_install生我们所需要的库文件lib

2.编译motion

1)tar xvzf motion-3.3.12.tar.gz

2)配置     ./configuer   --prefix=${PWD}/_install(源文件没有该安装文件,需手动建立一个安装目录)  --host=arm-linux   --with-ffmpeg= /home/Motion/ffmpeg-0.5.1/_install  --without-mysql --without-pgsql  --enable-shared

3)make

4)make install  安装完成会在_install成我们所需要的文件

3.madplay编译

在编译madplay之前,需要对它运行所需的库文件进行编译:

(1)编译zlib

 1tar xvzf  zlib-1.1.4.tar.gz

 2cd   zlib-1.1.4

 3)设置编译器的环境变量

export  CC=arm-linux-gcc

export  AR=arm-linux-ar  

export  RANLIB=arm-linux-ranlib

或者手动修改Makefile文件中的工具链将CCARRANLIB gcc改为arm-linux-gcc

 4./configure --prefix=${PWD}/_install(源文件没有该安装文件,需手动建立一个安装目录) 

 5make

 6make install

 7)以上编译的是静态库文件,我们这里需要动态库文件,故重新配置编译

 8make distclean

 9./configure --prefix=${PWD}/_install(源文件没有该安装文件,需手动建立一个安装目录)  --shared

 10)手动修改Makefile文件中的工具链将CCARRANLIB LDSHAREDgcc改为arm-linux-gcc

 11make

 12make install

(2)编译libid3tag

 1tar xvzf  libid3tag-0.15.1b.tar.gz

 2cd  libid3tag-0.15.1b

 3./configure  --host=arm-linux --prefix=${PWD}/_install(源文件没有该安装文件,需手动建立一个安装目录)

 4make

 5make install

3)编译libmad

 1./configure  --host=arm-linux  --prefix=${PWD}/_install(源文件没有该安装文件,需手动建立一个安装目录) 

 2make

 make的时候会出现一个错误,cc1:errorunrecognized command line option -fforce-mem”  打开makefile文件找到-fforce-mem将其删掉,编译通过。

 3make install

(4)编译madplay

 1tar xvzf  madplay-0.15.2b.tar.gz

 2cd  madplay-0.15.2b

 3./configure  --host=arm-linux  --prefix=${PWD}/_install(源文件没有该安装文件,需手动建立一个安装目录) 

 4make  

 5make install

(4)有关嵌入式web服务器这里就不再赘述,可以参考我博客里的appweb移植  http://blog.csdn.net/qq_28693567/article/details/51235723

四.在tiny6410上测试编译好的二进制可执行文件。

1.测试嵌入式播放器的功能

Madplay正常运行需要声卡驱动,tiny6410上的声卡驱动(snd-soc-tiny-wm8960.kosnd-soc-ac97.ko,tiny6410系统启动时已经加载了声卡驱动,故这里不再需要手动的安装声卡驱动,若你的arm开发板系统未编译声卡驱动,则需要手动安装声卡驱动,使用insmod安装。

 (1)将libid3tag-0.15.1blibmad-0.15.1bzlib-1.1.4 _install文件下的lib文件夹中的所有库文件拷贝到tiny6410开发板的/lib/目录下,将motion-3.3.12_install/bin/madplay 拷贝到tiny6410开发板的/local/sbin/目录下

(2)在tiny6410上运行madpaly,提示:不能打开madpaly,原因缺少madplay运行所需要的动态连接库,为了证实这一想法,在pclinux系统里通过

arm-linux-readelf  -d  madplay 查看madplay 运行所需要的库文件,除了上述编译的库文件外,还需要libm.so.6 libc.so.6  c的标准库文件,这两个标准库文件可以在pclinux系统中的arm-linux-gcc工具链安装目下的lib文件下去拷贝。 步骤2视自己情况而定,tiny6410开发板在编译系统时,已经编译了常用的c语言标准库,所以这里就不需要步骤2的操作。

2.测试usb摄像头

这一块相对比容易,因为tiny6410系统已经支持usb摄像头,不过只支持某些型号的摄像头,这里主要支持uvc协议的usb摄像头,所以在选择摄像头的时候要注意,也可以选择其他类型的usb摄像头,不过需要自己移植摄像头驱动程序。

将你的usb摄像头插在tiny6410开发板上,如果串口终端能打印出有关usb摄像头的信息(生产厂家,摄像头型号,支持视频的格式),说明你的开发板支持此型号的usb摄像头。这里提供一个usb摄像头的测试程序camera.c供测试。

3.appweb的测试

请参考的博客http://blog.csdn.net/qq_28693567/article/details/51235723

4.编写一个简单的测试网站,测试整体功能,由于本人不擅长网站开发,这里不做说明。不过这里我给大家提供一个我修改的测试网站,供大家参考:http://download.csdn.net/my/uploads/1

.拷贝库文件及二进制可执行文件到tiny6410上并修改配置文件

1.madplay运行所需要的库文件拷贝开发板的/lib/目录下;将motion运行需要的动态库文件也拷贝/lib/目录下。

2./home/Motion/motion-3.2.12/_install/etc/motion-dist.conf 拷贝到开发板/etc/motion/ /etc/下并没有motion文件夹,自己手动创建)。

3./home/Motion/madpaly-0.15.2b/_install/bin/madpaly 拷贝到开发板/usr/local/sbin/ ; /home/Motion/motion-3.2.12/_install/bin/motion也拷贝到开发板/usr/local/sbin/ ;这里appweb的二进制可行文件及配置文件的移动参考我的博客。

4.修改配置文件

1)修改motion的配置文件

   videodevice /dev/video2  usb设备文件

   v4l2_palette 2           图像采用'MJPEG'的格式

   width 640              图像像素

   height 320

   framerate 15            一秒钟采集图像的帧数

   threshold 1500          两幅图像之间变化的像素点

   locate on               加框

   target_dir /sdcard/www/sd 采集的图片及视频存放在该目录下。

   on_motion_detected madplay 123.mp3 usb摄像头捕捉到移动图像会发出报警 通过调用 madplay播放 123.mp3

(2)配置appeb的配置文件

  还是参考我的apppweb移植的博客,这里重点说明将appweb.conf文件中的

  DocumentRoot "/sdcard/www/data改为测试网站的路径即可。

5.网站编写这一块,我是在网上下载了一个,基于那个改的,若采用我使用的测试网站请在http://download.csdn.net/my/uploads/1下载网站测试源文件,解压后打开image.c文件找到 total=list_pic("/sdcard/www/sd","jpg");该路径就是motion捕获图像保存的根路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值