微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于WiFi的可实时视频同传的探测小车

基于WiFi的可实时视频同传的探测小车

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

摘要:为了在高温、有毒等特定环境下进行视频图像数据、气体参数等环境状态的检测,本文设计一种基于单片机的可实时视频同传的探测小车。Windows监控端通过DB120无线路由器与单片机STC89C52控制中心通信,发送控制信号给电机驱动模块L298N、LED模块,实现小车转向、进退及灯光的控制;摄像头模块、温度传感器模块进行视频数据、温度数据的采集,并实时回传给Windows监控端。

引言

随着自动化技术的发展,智能控制广泛应用在军事、科研、民用领域。无线探测小车集成了电子、机械、通信、传感器、计算机软硬件、人工智能及自动控制等多方面的技术。此外,其成本低、体积小、操作简单,能较好地应用在勘探、环境监测等应用。本文旨在设计一种能在高温、有毒等特定环境下,进行远距离无线遥控以及摄像、测温探测的单片机小车控制系统。

1 系统总体方案设计

本项目设计的是集单片机控制模块、摄像模块、温度传感器模块、照明模块及路由模块为一体,可实时视频传输及环境探测的探测小车,其系统硬件结构框图如图1 所示。探测小车以单片机芯片STC89C52为控制中心,电机驱动模块L298N进行小车直流电机的驱动控制,温度传感器进行外部环境的检测,摄像头模块进行视频图像的采集,LED模块进行照明,并通过无线WiFi路由模块实现Windows控制端与小车的无线通信。

a.jpg

2 硬件设计及选型

硬件部分主要采用市场上比较流行、稳定性高且性价比高的模块,此外,大部分模块都组装简单、升级方便、可移植性强,便于项目的开发及后续升级维护。例如,摄像头可通过USB接口直接连到路由器上,无需单片机转发,简化了视频流的传输。

2.1 电机驱动模块

电机驱动模块选用L298N,可接收标准的TTL逻辑电平信号,可驱动46 V/2A以下的电机。其驱动模块原理图如图2所示,L298N输入电压是12V,L298N的OUT1、OUT2和OUT3、OUT4之间分别接2个电机,本项目可直接使用单片机的I/O输入口Port1~Port4,APWM、B PWM改变L298N的IN1、IN2、IN3、IN4引脚及ENA、ENB使能端,从而分别实现控制电机的正反转及停止功能。

b.jpg

2.2 无线WiFi路由模块

无线WiFi路由模块采用的是DB120路由器,此路由器是OpenWRT系统,刷机升级十分简单。本项目可以通过网络下载,在同一网段内通过浏览器登录192.168.1.1,选择“0829-openwrt-rc6-RG100A_DB120-squashfs-cfe.bin”版本的固件进行烧录。固化后,该路由模块可作为转发站,实现USB摄像头的加载及与单片机的串行通信。

2. 3 摄像头模块

本项目选用中星微301主控芯片的USB摄像头模块,通过简单的路由设置就能快速实现摄像头的挂载。挂载成功后,可通过路由器的WiFi转发摄像头的动态视频至Windows控制端。

2.4 温度传感器模块

本项目选用DALLAS公司生产DS18B20的一线式温度传感器,进行外部环境数据的监测,其线路简单,仅有GND、DQ、VDD三个引脚。其中,DQ为数字信号输入/输出端,GND为电源地,VDD为外接供电电源输入端。

3 软件设计

本项目中,用户监控端与探测小车通过WiFi路由进行数据传输,因此,开发人员在软件设计与实现过程中需要对小车进行控制编程、监控视频动态显示、控制界面GUI设计及网络编程(Socket编程)。

项目开发过程中,选用Keil C51开发环境,对探测小车进行软件编程,实现对外部环境的测温及小车电机的控制;选用编程简单灵活、可移植性强的QT开发环境,进行Wind ows控制端的GUI设计、Socket编程及视频动态显示。此外,还选用了单片机多功能调试助手软件、TCPUDP—Debug软件进行单片机的通信测试。

3.1 小车电机控制编程

进行电机驱动模块L298N的电路连线,Port1~Port4分别为P2^0~P2^3,查阅L298N的数据手册,对照其逻辑功能表在Keil C51下进行电机前进、后退、左转、右转和停止的编程。编程样例如下所示:

c.jpg

3.2 Socket编程

探测小车与路由器通信中,主要用到了QTcpSocket客户端和QTcpServer服务器,其中本项目进行监控端Socket编程。按照通信的交互时序,先创建TcpSocket类,然后建立连接。其关键代码如下:

d.jpg

f.jpg

3.3 监控端GUI设计及视频动态显示

进行监控端界面设计时,需考虑到整个界面的布局及易操作性。本项目选用WebView控件进行视频的显示;ButtonBox控件作为前后左右等按钮开关;Label控件显示温度值、时间和标题;LineEdit控件作为IP和端口号输入端。

由于WebView控件只能加载路由转发的静态图像,因此,为了实现监控端实时视频动态显示,除了进行IP地址及端口号绑定设置外,还需要多加一个定时器来动态刷新。以下为关键代码:

e.jpg

3.4 实验结果

通过软硬件设计、编程调试

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

网站地图

Top