基于STM32单片机板球控制系统的设计与实现
2018-08-24魏敏张华正胡红新
魏敏 张华正 胡红新
摘 要:本文研究了一种基于STM32单片机的板球控制系统。文章详细阐述了本系统的工作流程,硬件设计,软件编程和测试结果分析。本系统采用了一块STM32f103微处理器作为主控芯片,通过串口通讯控制STM32f407微处理器对摄像头采集图像进行图像处理。STM32f407将处理结果发送给主控芯片。主控芯片通过PID算法计算控制量,输出PWM波控制两舵机。舵机通过拉杆调节平板倾斜度,控制小球在平面上的运动。经验证,本系统控制效果良好。
关键词:STM32单片机;图像处理;PID;舵机
1系统方案
1.1系统结构
本系统主要由STM32F103控制核器、电机控制模块、按键模块、电源模块、液晶显示模块和图像处理等单元模块构成。小球选用的是直径2.0cm的钢球,通过舵机带动平板上下运动,使得小球在平板上滚动,通过摄像头对小球位置进行检测,用STM32F407图像处理后的图像通过液晶显示屏显示,之后用PID算法精确调节舵机,使小球完成各项指标。
系统框图如下:
1.2各部分方案选择与论证
1.2.1机械结构方案选择与论证
方案一: 利用手头仅有的万向节与双舵机,将万向节固定在板子中下方,两个舵机分别放在相邻两边的中线处,成90度角,摄像头固定在距离平板大约80cm处,尽量还原经典板球结构,同时焊接相应配套铁架台来固定摄像头和单片机等器件。
方案二:采用悬挂式,将三个步进电机分别固定在所选铁架的三个角上,步进电机通过鱼线与对应木板角相连,木板最后一角处直接用线固定,通过三个步进电机的转动来控制与平板相连的线的伸缩从而控制平板的平衡,进而维持小球的正常运动。
方案二通过悬挂的方式致使平板很不稳,本身就存在抖动现象,受外界因素影响太大,自身缺陷太多,并且三个电机分布不均匀,使难度加大;由于最初我们采用的是方案二,实验结果并不理想,因此我们最终采用方案一,并取得理想结果。方案一的实物图如下所示:
1.2.2核心控制模块的选择与论证
方案一:选用AT89C51作为控制芯片。采用AT89C51进行控制比较简单,但是51单片机资源有限,而本控制系统,程序量较大且复杂,89单片机I/O不足,需要外接74HC573之类的芯片进行I/O扩展,且不足以支撑起摄像头很难满足题目要求,并且指令复杂,难以胜任控制任务。
方案二:选用STM32单片机作为控制芯片,STM32程序都是模块化的,接口相对简单些,工作速度也快,且STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,属于32位ARM微控制器,常用KEIL编程,其编程语言丰富,很大程度上提高了代码的通用性和可移植性,且对本系统来说不仅能胜任任务,而且使用灵活。
综合考虑采用性能更为优良、处理速度更快的STM32F103ZET6单片机。
1.2.3电机及驱动模块的选择与论证
方案一:采用步进电机。可以通过控制脉冲频率来控制电机转動的速度和加速,从而控制步进电机连接体平板的升降,进而实现对小球运动的控制。
方案二:采用直线行程电机。控制电机上下伸出推动木板运动来控制小球运动。
方案三:采用180度旋转舵机。舵机为随动系统,运动时可以外接较大的转动负载,输出扭矩大,而且抗抖动性很好。180度旋转舵机内置驱动电路,用单片机输出的信号可以直接驱动,接线方便。
由于步进电机慢速调节时电机震动剧烈,时刻影响平板上的滚珠平稳活动且存在较大的误差,多个步进电机同时运动相同长度是比较困难的。直线行程虽然电机精度和重复精度高,但其反应较慢且抗干扰能力差,不能达到较好效果。综合考虑采用方案三。
1.2.4摄像模块方案的选择与论证
方案一:CCD模拟摄像头。此种摄像头灵敏度很高且噪点低,然而成本高、功耗高、电路复杂、效率低,不适宜实验室进行试验使用。
方案二:OV7725 CMOS数字摄像头。这里不能像飞思卡尔一样用边沿扫描的方法,要用全场扫描,找出小球的黑点,从而得出他的圆心(球心)坐标。该种摄像头虽然灵敏度较低、却符合实验要求,仅需5V单电源供电。该摄像头高达150HZ的帧频率,采用硬件二值化,
功耗小而性能稳定、效率高,非常方便后续的图像处理,还可以根据实际情况改变图像亮度以实现最佳显示效果。
经过以上方案分析,考虑性价比,方案二显然是最优选。
2.系统的理论分析与计算
2.1 小球的检测方法分析
本系统用STM32F407对摄像头采集图像进行处理以检测运动小球的位置,将图像作为反馈信息反馈STM32F103控制器,通过舵机转动平板的倾斜角度,从而对小球的运动轨迹进行控制。本设计采用图像二值化处理图像信息,其基本原理为:将图像上点的灰度置0或255,使整个图像呈现明显的黑白效果。将256个亮度等级的灰度图像通过选取适当阈值即可获得反映图像整体与局部特征的二值化图像,在实用图像处理中有着举足轻重的地位。图像二值化有利于对图像进一步处理,使图像变得简单,同时减少处理和压缩的数据量,为了得到较清晰的二值化图像,一般采用封闭与连通的边界来定义不交叠区域,灰度大于或等于阈值的像素用255来表示,用来表示特定点,灰度小于阈值的像素则置0,表示背景或其他区域。
2.2 小球的控制方法分析
在图像处理后确定小球的位置的基础上,用PID算法对板球系统进行控制并观测控制效果。在小球的滚动过程中把舵机角度和小球位置反馈到控制器,构成双闭环控制系统,使用PID算法即可实现两回路控制。经典的PID控制算法应用广泛、理论完备、技术成熟,且结构简单可靠易调整,其中,P为比例环节,I是积分环节,D为微分环节,采用PID调节器即根据经验在线整定,以达到满意的控制结果。依据输入量和反馈信息STM32F103控制器进行分析计算,按功能要求控制小球在平板上滚动并到达相应位置。
3.电路与程序设计
3.1电路设计
供电电源:220V交流电转24V直流开关电源,后经了lm2596稳压一路后给舵机供电,用lm7805稳压后给单片机供电,AMS1117-3.3V电源稳压后给摄像头模块供电。其框图及原理如下:
3.2程序结构设计
该系统主要由控制器、执行器、板和球、摄像机、图像处理单元构成,具体的工作过程为:通过摄像机采集小球的运动图像,在图像处理单元对图像进行处理,获取球相对于板的位置,并计算位置偏差,将偏差信息传递到控制器,在控制器内计算控制量,通过控制执行机构来控制板的运动,进而控制小球的运动。系统的构成框图为:
由于本题有多个任务要求,需要设置不同的功能,我们采用矩阵键盘作为输入。因此在程序方面,我们通过按键扫描,然后按键判断,再根据按键设定的功能来实现任务,程序流程图如下:
4.测试方案与结果
4.1 测试方法
每项运动开始时,先使平板稳定,之后用手将小球放置在起始位置,供电后记录小球到达指定区域以及在指定区域停留时间。
4.2测试数据
基本部分 :
基本要求1:小球在区域2停留不少于5S
基本要求2:控制小球从区域1进入区域 5,在区域5停留不少于2秒
基本要求3:从区域1进入区域4并停留不少于2秒;再进入区域5并停留不少于2秒
基本要求4:30S内小球从区域 1 进入区域 9,且在区域 9 停留不少于 2 秒
发挥部分1:在40秒内,小球从区域1出发,先后进入区域 2,6,停止9区不少于2秒
发挥部分2:在40秒内,小球从区域 A 出发、先后经过B、C,停止于区域 D
發挥部分3: 小球从区域 4 出发,作环绕区域 5 的运动(不进入),运动不少于 3 周后停止于区域 9,且保持不少于 2 秒
根据上述测试数据,该板球系统已经基本达到题目的全部要求和性能指标。而且该系统较为稳定,偶然性小,误差范围较小。
4.3结论与分析:
该板球控制系统在实验室搭建,有自己独特的特点,系统的硬件设计是决定系统能否完成题目要求的关键,机械结构的选择,舵机的安放位置,任何一个做的不够好,都将会给程序调控大大增加难度,所以硬件搭建很重要。好的算法也起到至关重要的作用。在老师的指导下,经过我们几个人的努力,本系统的设计在此次的比赛中中取得省一推国赛的优异成绩。本次比赛不仅锻炼我们快速学习的能力以及文献检索的能力,更增强了我们团队的凝聚力,增强了我们的信心,培养了决不放弃的奋斗精神。我们将继续努力,争取取得更大的进步。
参考文献:
[1]全国电子设计竞赛组委会 .滚球控制系统 (B题 )
[2]刘佳, 柴浩元. 小球滚动控制系统的设计与实现[J]. 山西电子技术, 2017, 30(2):21-24.
[3]贾德旺. 基于C8051F040的小球滚动控制系统[J]. 中国包装工业, 2015(17):55-56.
[4]曾维鹏, 蔡莉莎, 韩宝如. 基于51单片机小球控制系统的设计与实现[J]. 电子设计工程, 2017, 25(8):68-71.
[5]李芳. 板球系统设计及控制系统研究[D]. 内蒙古科技大学, 2013.
[6]苏金涛. 无约束运动体路径规划与高精度轨迹控制研究[D]. 吉林大学, 2006.