卢 娜,李海涛
(商丘职业技术学院 机电工程系,河南 商丘 476100)
传统的智能小车只有循迹、避障和超声波测距等简单功能且实际应用效果并不理想,本文设计实现了一种高效的无线视频监控智能小车.小车采用STM32主控芯片,集成多种高性能传感器,可以有效实现前后左右运动、红外避障、视频采集、无线通信等多种功能.日常生活中智能手机已经必不可少,基于智能手机的电子控制终端产品已经成为未来发展的趋势.本项目中小车带有WIFI模块,可以利用Android手机客户端来实现小车的无线控制.试验表明,客户端采集到的视频画面较清晰,视频流传输速度较快,可以满足实时监控的要求.
以手机为控制终端,无线WIFI作为传输介质,通过主控制器的直流电机控制汽车的各种行驶状态,同时带动摄像头采集视频信息.智能车上的摄像头拍摄的视频通过无线WIFI信号传送给手机,界面将实时显示.手机发出的控制信号通过无线WIFI传输介质发送给主控制器,从而达到通过手机控制汽车的目的.
本项目的总体设计分为硬件设计和软件设计[1]39-41,硬件设计基于STM32作为主控开发芯片,包括视频采集模块、红外避障模块和无线通信模块等.软件设计主要是在手机平台上实现小车的各种控制[2]126-129,是以Android系统的手机为主要控制终端,以Android Studio为开发环境,编写程序、设计界面及按钮,如图1所示.
图1 系统总体设计
智能车采用STM32系列单片机(型号为STM32F103ZET6)为核心,512KB SRAM存储器,带4个片选的静态存储器控制器,3个12位模数转换器,1μs转换时间(多达21个输入通道);2通道12位D/A转换器;12通道DMA控制器;多达112个快速I/O端口;多达11个定时器;13个通信接口.STM32具有功耗低、性能高、体积小、处理速度快、价格经济、性能稳定等优点.
电机驱动采用微型集成电路电机驱动芯片L298N,芯片使用标准的逻辑电平控制信号,具有2个使能控制信号,可以检测外部电阻的变化,并将这种变化量反馈到控制电路.这种芯片的最高工作电压为46V,最大输出电流高达3A,稳定电流保持为2A,额定功率25 W,具有15引脚封装结构[3]103-106.小车车速的控制采用PWM(Pulse Width Modulation,脉冲宽度调制)技术[4]47-50,通过调整直流电机电枢两端电压,改变电机的转速,从而改变小车的车速.电路设计如图2所示:
图2 电机驱动模块电路
在该系统中,红外传感器主要用于对车辆行驶过程中的障碍物进行感知,并向主控制器发送相应的信号,实现车辆的避障功能.如果小车在行进过程中遇到障碍物,红外线把碰到障碍物的信号反射到传感器探测头,传感器检测到信号,就说明发现前方有障碍物,把接收到的信号转换成高低电平,然后发送给微控制器,微控制器就会对这个信号进行处理,从而实现避障的功能[5]26-30.
无线传输模块的功能是实现小车和各控制界面之间的通信.无线传输模块可以把智能车收集的数据实时传送到控制终端,同时,短距离的无线通信具有相对比较稳定,抗干扰能力强、不受地域方面限制的优点.
本模块使用由慧净电子定制的智能小车专用WIFI,本模块供电口为5V电源,2根TTL线,1条GND线,USB接口是连接摄像头的,通过上位机发送指令给单片机串口,经由单片机串口控制IO口电平驱动电机的转动.无线网络现在使用比较普遍,其传输速度非常快,WiFi最主要的优势在于不需要布线,非常适合本项目的通信.
智能小车采用的电源模块是AMS公司生产的AMS1117-3.3. AMS1117-3.3是一种输出电压为3.3V的正向低压降稳压器[6]66-69,智能小车需要5V和3.3V电压,5V电压是路由器和红外传感器的电压,它可以直接从驱动模块中引出;3.3V电压是微控制器的电压,需要通过AMS1117-3.3将5V电压转换为3.3V电压[7]24-25.
主控制器STM32F103ZET6以ARM 32位CortexM3作为CPU,其开发环境为常用的ARM开发环境,本系统采用Keil μVision4 作为开发工具.ARM公司在2011年发布的集成开发环境RealView MDK集成了最新版本的Keil μVision4,其编译器、调试工具实现与ARM器件的最完美匹配,用C语言完成编程.利用一个switch语句实现小车的停止、前进、后退、左转和右转,部分程序如下:
停止:
case 0
speed_right=0;
speed_left=0;
break;
前进:
case 1
speed_right=4;
speed_left=4;
break;
后退:
case2:
speed_right=-4;
speed_left=-4;
break;
右转:
case3:
speed_right=4;
speed_left=-2;
break;
左转:
case4:
speed_right=-2;
speed_left=4;
break;
本设计釆用Android Studio作为系统开发软件.Android Studio提供了用于开发和调试的集成Android开发工具,功能比Eclipse更强大.虽然安卓手机或者平板具有很多种尺寸的屏幕与分辨率,但开发人员应用集成Android开发工具都能够比较轻松的调整每个分辨率设备上的应用程序.开发人员能够一边写和调试程序并能够看到这个程序在不同屏幕里的外观.小车的视频控制界面如图3所示,控制小车的前进、后退、左转、右转运行状态以及视频的显示.
图3 小车视频控制界面
手机设置界面如图4所示:
图4 手机设置界面
本项目设计了一个以STM32为核心的智能视频小车,通过测试,基本实现了用手机通过WIFI控制小车前进、后退、左转、右转等转向运动,并具有自动避障的功能,可以实时视频监控,整体效果达到预期,小车成本低,稳定性好,在人们的生产、生活中具有非常好的应用前景.