滚球控制系统
2019-10-21欧阳晨星
欧阳晨星
摘要:本方案采用了K60单片机为核心的滚球控制系统。该系统主要由K60单片机模块、稳压模块,摄像头模块,图像处理模块构成。有K60来显示该系统的功能。通过UART和电脑通信,通过摄像头颜色识别技术来收集信号,以期获得准确的转向,利用PID算法调整舵机位置并用舵机来改变小球运动方向。在直径不大于2.5cm的小球能够按照指定的要求在平板上完成各种指定的动作这个条件下。在区域2开始后,先利用Openmv摄像头识别技术来获取舵机转动方向是本方案的重要步骤。本方案利用了身边的材料,采用的木板较轻便灵活,采用摄像头使数据更准确,采用PID算法使小球能够按照指定路线移动。
关键词:K60;Openmv摄像头;UART通信;PID算法
一、系统方案
本系统主要由摄像头模块、驱动电机模块、控制系统模块、电源模块组成,下面分别论证这几个模块的选择。
(一)摄像头的论证与选择
方案一:总钻风MV9032摄像头模块。利用MV9032摄像头模块的摄像头全局快门和高动态性能的特点,与MK60DN512VLQ10芯片配合使用,非常符合本设计,但由于光线影响较大,适应场地能力弱。方案二:OV7670摄像头模块。OV7670摄像头模块的摄像头高灵敏度,并且拍摄的图像清晰,不过视角太小,而平板的尺寸是65*65,要把整个平板都拍摄到摄像机里去,摄像头的位置要放得很高,搭建和固定不方便。方案三:OPENMV摄像头模块。OPENMV摄像头模块能进行图像处理和颜色识别,功能很强大,很适合这个系统。综合以上三種方案,选择方案三。
(二)驱动电机的论证与选择
方案一:步进电机。其可以通过控制脉冲个数来控制角位移量,同时可以通过控制脉冲频率来控制电机转动的速度和加速度,用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识,不好进行操控。方案二:直线行程电机。直线行程电机的耗电量比较大,发热量大,而本设计所使用的只是7.2V的镍镉电池,不适合本设计。方案三:舵机。舵机角度可以保持在驱动当中,稳定性好。综合以上三种方案,选择方案三。
(三)控制系统的论证与选择
方案一:STC51控制系统。51单片机串行口比较少,功能比较少,响应速度和反应时间比较慢。方案二:MK60DN512VLQ10控制系统。MK60DN512VLQ10功能比较齐全,波特率比较大,能很好的进行图像处理和控制电机的驱动。综合考虑采用MK60DN512VLQ10控制系统。
二、系统理论分析与计算
(一)小球位置的分析
(1)摄像头采集。通过MK60DN512VLQ10最小系统驱动Openmv摄像头模块,开始进行数据采集,并传输到数据存储器中。
(2)最大类间方差法。从数据存储器中读取图像信息,通过最大类间方差法进行图像处理。
(3)确定小球位置。通过最大类间方差法处理可以将小球的位置确定下来,进行小球指定轨迹的滚动。
(二)舵机的计算
(1)舵机的选择。该舵机的型号为SD-5,正常供电电压应该在5V到6.5V之间。电压过高会导致舵机烧毁,电压过低无法正常启动舵机以及打脚不灵敏,所以需要在硬件方面给它进行滤波。
(2)舵机的转向。设计时就要综合考虑转向机构响应速度与舵机力矩之间的关系,通过优化得到一个最佳的转向效果。
(3)调节小球位置。通过PID算法调节舵机的转速和角度,使小球按照指定的轨迹运动。
三、电路与程序设计
(一)电路的设计
摄像头模块采集→控制系统→舵机。
(二)程序的设计
(1)程序功能描述与设计思路。①程序功能描述。高效的程序与算法,合适的参数是滚球控制系统平稳自动滚动的基础。图像采集及后续处理,速度与打角的控制是整个软件系统的两大内容。我们设计的滚球控制系统采用openmv摄像头模块进行小球识别。图像采集及后续处理是软件算法的一大内容。在舵机的转向和速度控制方面,我们使用了经典PID控制算法,再配合使用理论计算和实际参数补偿的办法,使小球能够稳定地完成任务。②程序设计思路。通过openmv摄像头模块扫描,对所采集到的图像用最大类间方差法进行处理将所采集到的坐标传回主控芯片MK60DN512VLQ10,再由PID算法对舵机进行控制,从而实现滚球控制。
(2)程序流程图。摄像头(采集数据)→K60处理数据→舵机(改变小球轨迹)。
四、测试方案与测试结果
(一)测试方案
(1)硬件测试。搭建65cm*65cm的小球运动平板、底座和支架,并做好摄像头固定支架。最后找准中心点,放置小球,使小球处于静止状态。
(2)硬件软件联调。搭建硬件设备并焊接电路,上电测试,各模块通电正常。下载程序,测试各模块正常工作。进行程序编写,软件和硬件结合,完成了部分任务要求。
(二)测试条件与仪器
测试条件:多次检查,硬件电路与系统原理图完全相同,并且检查无误,硬件电路无虚焊。
测试仪器:高精度数字示波器,高精度数字万用表。
(三)测试结果及分析
(1)测试结果(数据)。经测试,电路的焊接与系统原理图完全相同,硬件的搭建有误差,不精准,但能够利用软件矫正,软硬件相互结合,相互协调。
(2)测试分析与结论。在将硬件组装完成之前将舵机、摄像头等硬件用万用表测试一遍,确保硬件完好。在软件调试之前,再对硬件检测一遍,连接有无错误,再用OpenMV IDE对各个模块进行进行调试。如果检测到硬件出现问题,查找下是哪个硬件部分的问题,常见的如杜邦线没插好,虚焊电路等。
然后对摄像头进行调试,将小球放在硬质木板上看摄像头能否检测识别到,调整间距和幅度,找到最合适的位置。将摄像头模块固定。
测试仪器:高精度的数字毫伏表,模拟示波器,数字示波器,数字万用表,指针式万用表。最后进行总体调试。
五、结论与心得
滚球控制系统,在硬件的搭建上,合理利用身边有用的资源,做到大胆创新,精益求精。在电路设计上,以理论为基础,综合多种电路的优点,巧妙设计自己的电路。在软件的调试上,队友们思想活跃,为系统出谋划策,理性分析问题,结合原理抓住问题的根源所在,用心解决每一个问题。最后经历了一次次失败的测试不断地进行改进与优化,完成作品。
参考文献:
[1]于海生.计算机控制技术[M].北京:机械工业出版社,2007.
[2]卢继传.对于做强中小企业的思考[J].管理科学文摘,2003,(9).