滚球控制系统 摘要 该滚球系统由 Kinetis―K60单片机控制模块、位置采集模块、板球模块、人机交互模块、电源模块以及板球机械结构组成的闭环控制系统。它由OV7620摄像头进行滚球位置采集,单片机对摄像头输入信息进行处理,用位置式PID算法进行运算,输出脉冲控制电机驱动为SH-20403驱动的42BYG250A电机转动,使滑轮缠绕吊线,改变底板所受吊线的拉力,进而控制地板倾斜让滚球到达指定位置,用人机交互模块中的按键控制与题目相应程序的运行。在该滚球系统中,滚球可在规定时间内在不经过非指定区域条件下到达指定区域,并可以在指定区域内停留规定时间,完成了大赛本科B组基本要求。
关键字:Kinetis―K60单片机;OV7620摄像头;42BYG250a电机;SH-20403驱动;位置式PID算法;闭环系统 1
一.系统方案 滚球控制系统主要包括单片机控制模块、电源模块、位置采集模块、板球模块、人机交互模块以及板球机械结构。系统通过位置采集模块时刻采集滚球位置信息,将信息输入给单片机控制模块,单片机对输入的信息进行处理,通控制脉冲发生器,通过一定方法让底板发生倾斜,控制滚球运动。人机交互模块中的按键选择程序运行。
图1 系统结构图 1.板球模块方案的选择与论证
方案一:将推杆电机作为支撑放于板下,通过推杆电机的推动使底板发生倾斜。 方案二:将两个42byg250a电机固定到顶板,在上面捆绑上吊线,经过顶板滑轮固定到底板,使底板悬空,通过电机的转动拉动吊线使底板发生倾斜。 两方案比较之后我们选择方案二为滚球控制系统方案。两方案比较如表一所示表1 板球模块方案比较
方案一 优势 抗外力自然因素干扰强,结构不复杂,很经典的滚球控制方式资料便于查找。
劣势 推杆电机在推板过程中会滑动产生相对位移,推杆电机反应慢,每次电机运行反转方向的误差会累计。
方案二 优势 42byg250a电机反应快,电机运行反转方向时延时小,误差可以忽略,对应算法控制编写较容易,结构简单。
劣势 底板靠四吊绳悬挂,容易产生晃动,抗干扰能力较差。
位置采集模块 单片机系统 板球模块
人机交互模块
电源模块 2
2.滚球位置采集方案的选择与论证 采集滚球外设有两种选择,一是触摸屏,二是摄像头。由于使用触摸屏有功耗大,灵敏度较低,易损坏,价格高、滚球轨迹不直观等缺点。我们决定用摄像头作为滚球位置的测量外设。使用摄像头有两种方案:OV7620,OV7670。滚球和底板颜色差距大,我们只关心图像的灰度值,并不是需要他们的彩色值。所以我们选择OV7620摄像头做为滚球位置采集外设。两种方案特点如下: 表2 OV7620,OV7670特点
特点
方案一:OV7620 默认输出RGB彩色图像。
方案二:OV7670 输出的是灰度值Y
3.控制算法的选择 方案一:采用模糊控制算法模糊控制是通过计算机 完成人们用自然语言所描述的控制活动。 方案二:采用PID算法,按比例、积分、微分的函数关系,进行运算,将其运算结果用以输出控制。 根据两种方案对比,题目要求和实际情况,我们选择PID算法作为控制算法.方案对比如表三: 表3 模糊算法和PID算法比较 方案一 优点 不需要事先知道对象的数学模型,系统响应快、超调小、过渡过程时间短。 缺点 稳态精度不高,需要大量计算,运算复杂。 方案二 优点 计算量小,运算简单。 缺点 容易产生超调。
二.系统理论分析与计算 1.滚球位置的测量与计算 3
选择和底板颜色相差大的滚球,通过摄像头OV7620采集图像,OV7620把板
和球的亮暗程度转化成像素的灰度值,并通过数据总线传送给单片机 ,处理变成二值图像,单片机开始对二值图像像素点进行扫描,在图片中寻找到滚球,并用坐标表达出滚球的位置。OV7620不断的向单片机传输灰度图像,可以时刻得到滚球位置。 2.底板倾斜控制分析
板球采集模块用两个42BYG250A步进电机及SH-20403做驱动系统。位置采集模块采集滚球当前位置,单片机处理滚球当前位置信息调节输出脉冲,控制两只42BYG250A步进电机,从而实现对底板倾斜控制。 3.算法分析
本系统采用位置式PID 算法来控制步进电机转动的速度。电机开始工作后,位置采集模块不断采集当前滚球所在位置,并与之前的滚球所在位置相比较,使得底板倾斜逐渐变化。PID 算法控制器由滚球位置误差比例P、滚球位置误差积分I和滚球位置误差微分D组成。 其输入 e (k)与输出 U (k)的关系为: u(k)=Kp*e(k) +Ki*∑e(i)+Kd*[e(k)-e(k-1)] (式1)
三. 电路与程序设计 摄像头不断采集滚球位置信息,传送到单片机处理,将处理好的位置信息传输到PID算法中,利用PID算法控制电机,来完成目的。总流程图如图二所示。
开始位置采集提取位置信息传输到单片机送往PID算法是否达到设定目标
向电机传送脉冲底板倾斜角度改变小球位置发生变化
否是返回
图2 总流程图 1.滚球位置采集处理设计
摄像头将采集的灰度图像传输到单片机中,单片机将图像处理为二值图
像,通过隔行逐个像素点扫描来确定滚球位置,并将位置信息存在数组中传输给控制算法。流程图如图三所示。 4
开始摄像头采集图像单片机处理成二值图像隔行扫描像素点
判断是否为小球确定小球横纵坐标传送给控制算法结束
是
否
图3 滚球位置采集处理流程图 2.PID算法设计
使用位置式PID算法。该算法需要读取定值和输入值,计算两值偏差,根据位置式PID算法公式算出U(k),存储U(k),将存储数据地址右移以便存取新的当前输入值,然后返回最初步骤。算法流程图如图四所示。
开始读取给定值读取输入值计算偏差
计算:u(k)=Kp*e(k) +Ki*∑e(i)+Kd*[e(k)-e(k-1)]
存储数据e(k-1)→e(k-2)
e(k)→e(k-1)结束
图4 PID算法流程图 四. 系统测试 1.测试仪器 秒表,高精度钢板尺,自制区域图纸 2.测试结果 1) 将滚球放置在区域2,测量滚球在区域内停留的时间 表4 题目一测试表 第一次 第二次 第三次 停留时间(s) 1 3 10
2) 控制滚球从区域1进入区域5,测量滚球到达区域5时间,滚球投影与区域5的交叠率和滚球到区域5的时间以及在区域5停留时间。 5
表5 题目二测试表 五. 设计总结 该系统完成了比赛本科B组题目的基本要求的一,二。因时间问题未能完成其他基本要求和扩展部分。 (一)已达到要求的系统制作过程: 1.硬件方面 1) 选择题目,根据网上资料以及实际情况讨论出大体方案,并根据方案搭建物理模型。 2) 调试外设。 ① 调试电机 测量脉冲个数与步进电机电机运行关。 ② 调试摄像头 根据摄像头采集图像效果,根据效果调整摄像头位置,减小外界光线因素影响,使摄像头采集到图片最佳。 3) 整体测试 2.软件方面 1)组建工程模板。 2)编写外设驱动,以便调试外设。 3)编写控制程序。 3.总体测试 不断测试程序,调试程序中的重要参数,尽可能使系统稳定,在测试过程中,用一定方法将把硬件因摩擦力,惯性等因素造成的误差尽可能缩小,编写软件来消除硬件无法消除的误差。 (二)没有达到要求部分 对于基本要求三,小球总是在从区域4到区域5过程中偏离,没有达到预
第一次 第二次 第三次 第四次 第五次 到达区域5时间(s) 1 2 3 3.5 4
与区域5交叠率(%) 0 0 20 80 100 在区域5停留时间(s) 0.5 0.5 1.5 5 5 6 期的效果。如小球到达第一个设定目标后,将底板倾斜程度降低,经调试应能在规定时间内实现基本要求三。扩展要求二,可以通过矩阵键盘实现。每区域坐标对应一个按键,当按键按下,坐标将传输到PID算法中做设定值。 (三)在制作时出现的问题及解决方案 1.无法确定滚球的位置 将灰度图像处理成二值图像之后,有很多噪点,对图像进行滤波处理后噪点并没有完全过滤掉,依旧影响滚球位置的检测。经过仔细观察,发现噪点来源于底板没有覆盖的地面以及地面的反光。最后将摄像头传入图像进行裁剪,只剩下底板图像信息,在合适的位置安装光源,使问题得到了解决。 2.滚球滚离底板 在运行测试程序时,滚球总是滚离底板。一方面原因是初始位置不水平,另一方面原因是因为底板倾斜角度过大,滚球因为惯性很难在期望的时间内停止。最后解决方案为将初始位置手动调至水平,改写算法参数减缓底板倾斜角度变化,将倾斜角速度降低。但问题没有得到实质性解决,使得基本要求三的功能没有实现。
参考文献 [1]Kenneth.R.Castlemen.数字图像处理.北京:电子工业出版社,1998,170~187 [2]李丽萍.图像去噪方法研究[D].湖北:长江大学,2012. [3]刘宝廷,程树康.步进电动机及其驱动控制系统.黑龙江:哈尔滨工业大学出版社,1997