滚球控制系统设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2017年全国大学生电子设计竞赛
设计报告
滚球控制系统(B题)
【本科组】
摘要:本系统采用STM32F103ZET6最小系统板为控制中心,利用OV7670摄像头、显示器、按键、S010舵机、小球、万向节、平板支架构成滚球控制系统。单片机利用摄像头采集到的数据,确定小球的位置坐标,通过PID 闭环控制舵机PWM输出打角拉动支撑杆,控制平板倾斜度达到小球滚到指定区域停留等状态。控制系统采用PID算法组成闭环控制系统具有很好的稳定性,此外通过TFT显示屏显示小球位置,各个功能的实现可以通过按键输入。
一、系统方案
本系统主要由单片机控制模块、摄像头模块、LCD显示屏模块、电源模块、舵机及平板机械支架构成组成。STM32作为滚球系统的控制核心,利用摄像头采集过来的数据通过黑白二值化,以此判别平板和黑色球并显示在LCD上。摄像头对滚球准确定位,确定其坐标位置,同时记录平板规定的9个区域坐标,单片机通过返回的坐标位置结合PID算法,给定舵机PWM输出形成闭环控制系统,从而控制小球去到指定区域保持平衡。同时,可通过矩阵按键选择功能模式,与设计任务一一对应的,系统的总体方案框图见图1。
图1 系统总体方案框图
1、主控制器件的论证与选择
方案一:采用STC89C52单片机作为控制模块的核心。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。但其能使用的I/O 口很少,ROM空间不足,不适合采用STC89C52为主控芯片。
方案二:采用STM32103FZET6单片机为主控器。STM32运行速度快,片上资源丰富,具有很多外围接口,可拓展性强,灵活性高。完全可以实现本系统的各个设计任务,具有良好的响应速度。
通过比较,我们选择方案二。
2、滚球控制系统方案选择
方案一:采用MPU6050三轴陀螺仪。利用三轴陀螺仪可以算出平板的当前位置姿态,具有测量精确、结构简单等优点,但考虑到小球需要到平板指定的9个区域,MPU6050传感器很难确定其准确位置,可靠性差。
方案二:选用摄像头对小球准确定位,根据题目给出的具体要求,采集摄像头检测到的数据传给单片机二值化处理,以此确定小球的位置坐标以及与目的坐标的偏差,反馈给单片机,实现更加精确的控制,而且通过LCD显示,更加直接有利于调试。
综合以上两个方案,本系统选择方案二。
3、滚球运动控制的论证与选择
方案一:采用推杆直线电机。电推杆是通过将电动机的旋转运动转变为推杆往复直线运动的电力驱动装置。利用多个电推杆可推动平板进行上下运动,但电推杆响应速度慢,而且需要很大的驱动电流,消耗功率大,还要加装继电器保护,比较繁琐。
方案二:采用S010舵机。该舵机为伺服电机,通过舵柄转换成旋转运动来打到不同的角度,再加上装支撑杆就可以控制平板的上下运动。舵机三条控制线,分别为:电源、地及信号线,不需要驱动模块,只要单片机输出信号PWM就可以控制舵机打角。
综合考虑采用方案二。
4、显示器的论证与选择
方案一:采用OLED显示器。该显示屏可显示汉字,不需用到背光板,具有轻薄短小、低耗电量,但为单色显示,界面效果受限。
方案二:选用TFTLCD显示器。TFTLCD显示屏分辨率高,真彩显示,可显示的界面丰富。方便绘图和编程控制,更有利于人机界面的操作控制,适用于较为功能性强的的控制系统。
综合以上两种方案,选择方案二。
二、系统理论分析与计算
1、小球的精准定位分析
通过OV7670摄像头采集图像进行二值化处理,用两个嵌套for循环可以计算得出小球在x轴和y轴上被扫描到最边上的两个值x-min、x-max和y-min、y-max,然后分别将x轴和y轴的最大最小值求和,再除以2,就可以得出小球的坐标x和y值。2、执行机构装置的分析
方案一:采用4个舵机作为执行机构,对称分布在平板四周,通过4个舵机不同的PWM输出来控制平板的运动从而控制小球的滚动,但4个舵机控制存在很大的不确定性,算法较为复杂。
方案二:采用2个舵机和一根带万向节的支撑杆等边三角形分布,构成执行机构。采用二维平面X,Y方向来控制平板的运动,另外一根带万向节的支撑杆起到很好的连动作用,机械上更加简单,易于PID算法控制。
综上以上方案,选择方案二。
3、控制PID的计算
在系统控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制。
以下是PID的公式:
u(t)=
控制点目前包含三种比较简单的PID控制算法,分别是:增量式算法,位置式算法,微分先行。鉴于本系统通过小球坐标与目标位置坐标的偏差,只调节比例P、微分D的PD的增量式算法,即利用目的坐标与偏差的PD调节,控制滚球闭环控制系统,达到稳态无静差。
三、电路与程序设计
1、电路的设计
采用STM32ZET6最小系统板,外接摄像头模块、显示模块、按键模块、电源模块及舵机执行机构。外设接口模块电路见图2。
图2 外设接口电路
(2)电源模块
单片机采用3.3V供电,显示器5V供电以及舵机6V供电。电源电路见附录1。
2、程序的设计
(1)程序功能描述与设计思路
1、程序功能描述
根据题目要求软件部分主要实现键盘的设置和显示。
1)键盘实现功能:采用3乘3的矩阵键盘,从左到右,从上到下依次排序,按键1至7依次控制开启和关闭任务1-7的要求,按键9为PID调节模式控制按钮。PID调节模式中按键4和7为调节平板内部区域的KP1值大小,按键5和8为调节平板内部区域的KD1值大小,按键5和8为调节平板边缘区域的KP2值大小;
2)显示部分:显示小球的在平板上坐标,任务需要到达的坐标,实时坐标值与目标坐标值的差值,平板上的9个区域,小球的模拟图像,两个舵机的输出值,任务序号,任务计时时间,小球在区域停留的时间。
2、程序设计思路
进入系统,先选择进入校准模式,按键调节舵机的输出值,以达到平板的平衡,并保存为平衡值;通过OV7670摄像头采集平板的图像二值化,并把二值化图像显示在LCD屏上以找到区域1、5、9并保存重新定义区域位置来减少调节平板和摄像头因碰撞或搬运的而产生的误差。通过二值化寻到小球坐标,与目标坐标的差值,通过PD算法,调节舵机的输出值来调节平板的上下运动,让小球达到任务所需要的目标坐标。
(2)程序流程图
1、主程序流程图