杨学成 沈阳工程学院
基于wifi的手机控制智能寻迹车的研制
杨学成 沈阳工程学院
摘 要:本智能车系统设计以MC9S12DG128微控制器为核心,通过一个CMOS摄像头检测小车的运动位置和运动方向,光电编码器检测模型车的速度,PID控制算法调节驱动电机的转速和舵机的方向,完成对小车运动速度和运动方向的闭环控制,通过手机上的APP,以wifi无线传输技术,实现对本智能车的控制。
关键词:微控制器 摄像头 PID 手机 WIFI控制
本智能车以MC9S12DG128为核心控制,外加CMOS视频传感器、无线wifi接口及APP应用程序构建完整的自主循迹智能小车系统。通过高清摄像头采集道路信息送入微控制器,在单片机中对输入的图像信息进行处理,计算提取道路特征信息,选择最佳行进路线并进行速度的控制,通过手机APP以无线wifi传输控制信息完成对小车姿态、速度的最优控制。整个系统设计包括车体机械结构设计和软/硬件系统设计。车体机械结构设计主要包括:底盘的加固、车身轻量化处理及前后轮的调节使其符合车身动力学,图像传感器、舵机以及速度编码器的安装和无线传输模块的加固安装等。硬件电路设计部分主要包括:电源稳压电路,为系统的各功能模块提供了稳定、可靠的工作电源;图像传感器跑道信息采集电路,编码器速度测量监视电路;电机驱动电路,驱动电机稳定快速的运行;wifi无线收发模块。软件系统设计完成了各功能模块的控制算法及程序设计,包括手机控制APP软件设计及无线传输协议的实现算法,图像采集及滤波算法设计、黑线提取及黑线中心求解算法设计以及舵机和电机的PID算法设计。
智能车主要包括四个部分组成:手机wifi无线收发系统、道路信息检测系统、自主控制决策系统、能源动力系统。采用手机APP控制软件和无线wifi传输模块收发控制命令,对小车的进行无线启停控制及运行姿态的监视。在道路检测系统中,采用数字高清摄像头采集跑道和路况信息,并且利用滤波算法提取赛道的特征信息,采用光电编码器测量车体实时速度信息。自主控制决策系统采用MC9S12DG128作为主控芯片,接受并解释手机来的命令做出相应的启停动作,运行过程中,主控芯片依据检测到的路况信息自主设定适合的速度和运行的角度。能源动力系统主要包括电源和小车的执行机构(直流电机),主要是将cpu发出的速度和运行角度信息作用在直流电机上去控制舵机的转角和直流电机的转速,实现速度和方向的控制。小车的四个部分构成智能车的有机系统,通过各个部分协调合作实现小车稳定安全运行在跑道上。
小车的硬件系统主要包括七个部分:无线WIFI传输模块、MC9S12DG128核心系统板,电源管理模块,图像采集处理模块,舵机驱动模块,速度检测电路,电机驱动电路和辅助调试模块。手机APP通过无线WIFI通信模块完成命令的发送和接收功能,是智能小车的“监视系统”。MC9S12DG128核心系统板是系统的中枢部分,司职采集接收赛道图像数据和赛车速度等反馈信息,并对这些信息进行恰当的处理,形成精确的控制量来对舵机与驱动电机模块进行控制。电源管理模块为整个系统提供能源,保障系统安全稳定运行。图像采集处理模块采用数字摄像头OV7620,用于获取前方道路情况以供单片机处理,是智能小车的“视觉系统”。速度检测电路采用欧姆龙公司的500线光电编码器。电机驱动电路采用BTN7970半桥驱动并联搭建全桥,可以实现电机的正反转。舵机驱动模块控制舵机的转向。辅助调试模块有BDM、串行通信等,主要用于赛车系统的程序烧写、功能调试、赛车状态监控等方面,主要包括BDM、拨码开关、LED指示及串口通讯等。
软件算法则是赛车的核心部分,决定着赛车的运行质量。程序的主流程是:手机APP上的指令通过无线WIFI传输模块发出命令,CPU接收摄像头上的视频行中断和视频场中断采集程序对摄像头的视频信号进行间隔采样,并同时完成对数据进行滤波处理及计算并给出控制量,周期采样间隔为4ms。
(一)图像信息的处理算法
1.图像二值化滤波算法。二值化就是对图像数据的每一行每一个像素点按照相应的阈值进行比较判别,若像素点的像素值小于阈值时置0,表示其为黑色,否则置1,表示白色。本设计采用的动态阈值法对采集的图像进行二值化处理。动态阈值是指判别阈值可以随车行驶的光线环境进行动态调整,使得二值化的图像信息更加真实可靠。二值化的图形包含大量的杂波,需要进行滤波处理,设计中采用限幅平均滤波滤波效果很好。
2.黑线的提取。二值化滤波算后的赛道信息存储在内存缓冲区里,缓冲区的容量是16行、177列。将缓冲区的数据为“0”作为赛道的轨迹信息,根据这些信息计算小车的的位置以及赛道的状况。
(二)控制算法
主要是运用PID控制算法,其中包括电机控制是通过编码器返回的实时速度完成闭环控制,舵机算法公式如下:
pwm=ster_mid+(int)(steer_kp*(colm_max/2-center1))+(int) (ster_kd*(Center[15]-Center[0])),其中ster_mid是舵机中心常量,colm_max是最大列坐标,Center[n]数组是用来存放路中心列坐标数据,center1是当前帧的列坐标中心值,pwm舵机控制量。
(三)手机APP软件的开发
我们基于语音识别自动寻迹小车的语音接收和处理是利用在上位机上开发简单的应用软件来完成的,运用了微软语音库,完成的过程如图5.7所示。
智能车自动化程度高,运行稳定,软件功能完善,获得了辽宁省挑战杯三等奖。
参考文献:
[1]Freescale.CPU12/CPU12X Reference Mnual.
[2]安鹏,马伟,使用S12单片机控制舵机,清华大学工程物理系,2007
[3]Tinku Acharya 等.数字图像处理—原理与应用.清华大学出版社.2007
[4]李刚.飞思卡尔8位单片机实用教程.电子工业出版社出版.2009
[5]胡寿松.自动控制原理.(第四版)科学出版社.2001