微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于OPenWrt开源系统的无线视频监控智能车设计

基于OPenWrt开源系统的无线视频监控智能车设计

时间:10-29 来源:互联网 点击:

摘要:引入了一种基于开源系统的无线视频监控智能车设计方案,该方案利用双核、双系统的开源硬件来搭建智能车的基础设备,再利用开源的OpenWrt系统构建基于REST API的用户交互接口。用户可以通过该接口控制智能车的运动,以及获取传感器数据,最后利用基于Web的开源摄像头采集系统MJPEG—STREAM搭建视频监控系统。本方案可降低开发成本、提高开发效率,具有较高的应用价值。

关键词:OpenWrt;MJPEG—STREAM;开源;ATmega32U4;Atheros AR9331

引言

随着计算机科学技术的不断发展,各种智能化的设备也应运而生,特别是近期无人遥控飞机新闻的频繁曝光,从明星求婚到快递运送,都体现了无人遥控设备将是未来产业发展和创新应用的一个新起点。然而目前无人机在多数情况下只用于航拍或空中测绘,而对于室内应用,如对无尘、防盗,以及环境参数要求较高的企业仓储管理来说,无人机在续航和室内定向巡航方面就显现出了劣势;而对于如地震、泥石流等自然灾害中常见的狭窄处补给物资的运输和地下生命的探测,无人机的功能则大打折扣。

基于以上这些原因,本文提出了一种基于开源硬件的无线遥控视频监控智能车的设计,把开源硬件和Linux系统相结合,把视频监控车变为一个带WiFi功能的智能设备,用户可以通过合理的系统配置,使智能车加入已有的WiFi网络,从而使用户可以通过无线方式实现对智能车运动的控制和实时视频监控画面的传输,解决了因某些原因导致一些场所无法进入时,对内部环境的监控和物资运输的问题。同时,采用开源硬件也避免了硬件设备高额的设计费用和调试费用,为今后智能设备的开发及应用提供一种新的解决思路。

1 系统总体设计

本设计采用双核、双系统的方式进行架构设计,从而明确各子系统的责任,减轻硬件系统的负担,提高各子系统的内聚性,并降低各子系统间的耦合性。其中,智能车控制系统采用基于AVR内核的ATmega32U4芯片,该芯片的时钟频率为16 MHz,具有20个数字接口、12个模拟接口,以及7个PWM接口,同时内建的USB通信功能可以省去外围电路中UART转USB的设计。而无线视频监控系统则采用目前公认的相对稳定的WiFi解决方案,即Atheros AR9331芯片方案,该芯片采用MIPS架构,CPU主频达到400 MHz,并且只需要3.3 V就可以实现超低功耗的802.11n协议。因此对于本系统来说只需要一个5 V的USB接口就可以为整个系统实现供电以及程序的烧录等功能,使得系统的开发极为方便。

此外在软件运行过程中,用户可以通过智能系统提供的REST API轻松地实现与智能车系统之间的通信,并控制智能车的各种运动、避障,甚至在智能车自动控制和手动控制之间进行切换;同时,在视频监控系统中内建了基于嵌入式Linux的Open Wrt系统,并基于该系统搭建了实时视频传输系统——MJPEG-STREAM,用户只需要使用HTTP接口就可以方便地实现实时图像数据的传输。

硬件方面采用了开源的设计,通过全世界硬件工程师的不断改进和完善,保障了硬件系统的稳定,同时开源设计也节约了大量的前期硬件开发成本,提高了硬件系统的开发效率,降低了开发成本。而在软件方面,其主要特点体现在用户接口上,不论智能车控制系统还是视频监控系统,均采用HTTP通信方式,可以实现对各类终端设备的支持,如移动终端、PC端,甚至Web端。系统结构如图1所示。

2 MJPEG—STREAM视频流的实现

MJPEG—STREAM是一个基于“运动图像压缩技术”的摄像头图像采集系统,并且该系统通过Web方式进行实时图片传输,用户只需要利用浏览器就可以实现视频监控等工作,同时由于该系统采用开源方式进行开发,因此对该系统的任何修改和使用都不存在版权的问题,降低了视频开发的成本,提高了开发的效率。

本项目基于OpenWrt系统对MJPEG—STREAM的构建,而OpenWrt也是一个开源的嵌入式Linux系统,其包含3000多个软件包,用户只需要通过简单的指令就可以实现软件的下载、编译、安装和使用,具体构建步骤如下:

①更新OpenWrt的软件源。

OpenWrt:~# opkg update

②下载并安装UVC摄像头驱动,安装结束后插入摄像头,如果在OpenWrt的/dev目录下看到video0文件,则表示安装成功。

OpenWrt:~#opkg install kmod-video-uvc

③下载并安装MJPEG—STREAM开源库。

OpenWrt:~# opkg install mjpeg—streamer

④连接摄像头,启动MJPEG—STREAM,并设置其输出的分辨率和地址。

OpenWrt:~# mjpg_streamer-i“input_uvc.so/dev/video0—r 640x480”-o”output_http.so-p 8080-w/www

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top