摘要:引入了一种依据开源体系的无线视频监控智能车规划计划,该计划运用双核、双体系的开源硬件来建立智能车的根底设备,再运用开源的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 640×480”-o”output_http.so-p 8080-w/www/webcam”
⑤最终在浏览器中输入以下地址,就可以进行视频监控。
http://local_ip:8080? action=snapshot
http://local_ip:8080/?action=stream
3 REST接口的规划
REST(Representational State Trans fer)即表述性状况传递,是Roy Fielding博士在2000年提出的一种软件架构风格,是一种针对网络运用的规划和开发办法,可以下降开发的复杂性,进步体系的可伸缩性。其界说了一组体系架构准则,开发人员可以依据这些准则规划以体系资源为中心的Web服务,包括运用不同言语编写的客户端怎么经过HTTP处理和传输资源状况。现在 REST已经成为最首要的Web服务规划形式。
在本项目中REST接口首要完成3方面的运用,别离为监控摄像头的多视点滚动、智能车的运动操控,以及各类传感器实时数据的获取,详细如下。
①监控摄像头的多视点滚动:包括操控水平舵机和笔直舵机的视点,其间笔直方面以摄像头面向地上为0°,向上为0~180°,而水平向左为0°,向右为0~180°,但当用户没有设定视点时,则传递默认值10给后端进行处理,详细如表1所列。
②智能车的运动操控:包括操控车辆的行进、撤退、转弯,以及中止等操作,一起需求用户传递车辆行进、撤退、转弯的速度值给体系,不然体系将运用默认值向后端体系进行传递,如表2所列。
③各类传感器实时数据的获取:要获取传感器参数,首要要获取各类传感器的类型,因而本体系要供给一个接口来回来本体系包括的一切传感器类型,然后再经过该类型获取相应传感器当时实时的数据,如表3所列。
4 CGI程序的规划
在本项目中除了经过REST API接纳到用户的各类恳求之外,更为重要的是在剖析和辨识这些恳求后,可以运用串口通讯把这些指令发送给ATmega 32U4进行处理,而要把REST接口和本地运用相结合的桥梁便是CGI。
CGI(Common Gateway Interface)是万维网技能中最重要的技能之一,是本地运用程序与Web服务器之间的接口标准和信息传递的标准。经过CGI可以使Web服务器履行本地运用程序,并将它们的输出发送给Web浏览器,使得Web页面由单一的静态展现变为完好的交互媒体。
首要本项目选用双核、双体系的办法进行架构,因而在Atheros AR9331和ATmega32U4之间选用串口作为数据通讯的办法,别的因为在Atheros AR9331上布置了依据Linux体系的OpenWrt,而Linux体系关于串口的操作十分便利,因而在接纳到用户的REST恳求之后,只需求依照 CGI程序的编写标准获取用户的恳求数据,并从中解分出恳求类型和恳求参数即可,最终经过串口把这些恳求和参数发送给ATmega32U4进行后期处理,详细流程如图2所示。
5 智能车操控体系的规划
智能车操控体系首要包括3方面内容,即智能车运动操控、摄像头云台操控,以及各类传感器的数据获取。经过接纳前端用户的指令,并经过CGI程序的剖析和传递,用户就可以运用恣意平台中的HTTP访问来操控智能车和云台的运动,以及获取传感器的数据。
5.1 智能车运动体系的规划
本体系中智能车运动体系的电机驱动选用ST公司的典型双H桥直流电机驱动芯片L298N,该芯片具有较强的驱动才干,最多可供给2 A的峰值电流和46 V的峰值电压,此外因为L298N只供给2路驱动,但本项目需求运用对4路步进电机的驱动,因而选用对本来的2路输出进行扩展,把其变为4路两相输出,使得把左、右两头独立的4路输出合并为左、右两头2路的输出,详细如表4所列。
在表4中EA和EB别离表明左、右电机的PWM速度,当PWM越高时,智能车的运动速度越快;I1、I2和I3、I4别离表明左、右两个电机的转向,0、1时为顺时针,1、0时为逆时针。
5.2 摄像头云台体系的规划
本体系中摄像头云台操控体系首要选用RobotBase出产的RB-421一维度舵机进行操控,该舵机可以精准地进行水平或笔直方向滚动视点。
舵机操控体系首要由舵机操控线传送可变PWM脉冲来进行操控。一般舵机的基准信号周期为20 ms,宽度为1.5 ms,当传输该PWM信号为基准信号时,舵机处于最大视点和最小视点的中心方位,即90°方位。
当PWM信号的周期为0.5 ms时,舵机所在的方位为0°,而当PWM信号周期为2.5 ms时,舵机所在的方位为180°,假如此刻传输的PWM信号坚持不变,那么舵机的方位就不产生改变,直到所受的外力大于其本身的最大扭力,舵机才会产生视点的改变。详细PWM与视点的联系如图3所示。
5.3 智能车传感器体系的规划
本体系中选用了多种传感器,例如经过灰度传感器完成智能车的主动巡视功用,经过超声波传感器和舵机的结合完成小车180°的避障,经过红外传感器完成尾部障碍物的逃避,以及经过温湿度、烟雾等环境传感器来获取实时环境参数。
当用户向智能车发送传感器数据恳求时,体系经过CGI把恳求发送到ATmega32U4芯片,该芯片与各类恳求类型进行匹配然后运转相应的传感器处理函数,并经过串口发送至CGI程序,最终CGI程序经过Web的办法把数据出现在用户面前,其流程如图4所示。
结语
本文评论了依据开源硬件的无线视频监控智能车的首要技能,经过双核、双体系的架构进步了体系全体的安稳性,并减轻了各模块的作业担负;其次在本体系中用户指令和视频监控均选用HTTP办法进行数据交互,使得本体系可以经过任何终端对智能车进行操控,扩展了体系的运用规模和运用场合,摆脱了以往只要专用设备才干进行操控的局势。
最终,本体系中不管软件仍是硬件都选用开源规划,大大下降了体系开发本钱,进步了体系开发的功率。本项目经过整合多方面的资源,为往后智能设备以及无人驾驶技能的开发供给了一种可行的办法,具有必定的运用价值。