基于OPenWrt开源系统的无线视频监控智能车设计
/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°的避障,通过红外传感器实现尾部障碍物的躲避,以及通过温湿
OpenWrt MJPEG―STREAM 开源 ATmega32U4 相关文章:
- 基于OpenWrt的移动机器人系统设计(01-17)
- 基于路由器的开源嵌入式操作系统学习平台(04-23)
- OpenWrt嵌入式Linux开发环境(05-12)
- 基于开源软件的嵌入式网络打印服务器(11-05)
- 关注自由和开源软件(03-15)
- Android基本技术架构及其软硬件整合技术环节解析(01-12)