滚球控制系统设计报告文件doc.docx
- 文档编号:25658456
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:20
- 大小:69.83KB
滚球控制系统设计报告文件doc.docx
《滚球控制系统设计报告文件doc.docx》由会员分享,可在线阅读,更多相关《滚球控制系统设计报告文件doc.docx(20页珍藏版)》请在冰豆网上搜索。
滚球控制系统设计报告文件doc
2017年全国大学生电子设计竞赛
设计报告
滚球控制系统(B题)
【本科组】
摘要:
本系统采用STM32F103ZET最6小系统板为控制中心,利用OV7670
摄像头、显示器、按键、S010舵机、小球、万向节、平板支架构成滚球控
制系统。
单片机利用摄像头采集到的数据,确定小球的位置坐标,通过PID
闭环控制舵机PWM输出打角拉动支撑杆,控制平板倾斜度达到小球滚到指定
区域停留等状态。
控制系统采用PID算法组成闭环控制系统具有很好的稳定
性,此外通过TFT显示屏显示小球位置,各个功能的实现可以通过按键输入。
I
一、系统方案
本系统主要由单片机控制模块、摄像头模块、LCD显示屏模块、电源模块、舵机
及平板机械支架构成组成。
STM32作为滚球系统的控制核心,利用摄像头采集过来的
数据通过黑白二值化,以此判别平板和黑色球并显示在LCD上。
摄像头对滚球准确定
位,确定其坐标位置,同时记录平板规定的9个区域坐标,单片机通过返回的坐标位置
结合PID算法,给定舵机PWM输出形成闭环控制系统,从而控制小球去到指定区域保
持平衡。
同时,可通过矩阵按键选择功能模式,与设计任务一一对应的,系统的总体方
案框图见图1。
图1系统总体方案框图
1、主控制器件的论证与选择
方案一:
采用STC89C52单片机作为控制模块的核心。
STC89C52使用经典的MCS-51
内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
但其能使用的I/O
口很少,ROM空间不足,不适合采用STC89C52为主控芯片。
方案二:
采用STM32103FZET6单片机为主控器。
STM32运行速度快,片上资源丰
富,具有很多外围接口,可拓展性强,灵活性高。
完全可以实现本系统的各个设计任务,
具有良好的响应速度。
通过比较,我们选择方案二。
2、滚球控制系统方案选择
方案一:
采用MPU6050三轴陀螺仪。
利用三轴陀螺仪可以算出平板的当前位置姿态,
具有测量精确、结构简单等优点,但考虑到小球需要到平板指定的9个区域,MPU6050
传感器很难确定其准确位置,可靠性差。
2
方案二:
选用摄像头对小球准确定位,根据题目给出的具体要求,采集摄像头检测
到的数据传给单片机二值化处理,以此确定小球的位置坐标以及与目的坐标的偏差,反
馈给单片机,实现更加精确的控制,而且通过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个舵机控制存在很大的不确定
性,算法较为复杂。
3
方案二:
采用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。
4
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、主程序流程图
5
四、测试方案与测试结果
1、测试方案
(1)硬件测试
检测焊接的单片机外接设备能否正常工作,摄像头采集显示到显示屏是否稳定并判
别平板和小球;检测电源提供的电压、电流供模块使用是否达到稳压值;平板及舵机装
置静置是否平衡;检测按键能否实现不同任务。
(3)硬件软件联调
通过按键和TFTLCD显示器达到人机交互,测试滚球运动与实际偏差可以按按键选
择调节KP1、KD1系数,控制舵机PWM输出,调试滚球控制系统。
2、测试条件与仪器
测试条件:
检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查
无误,硬件电路保证无虚焊。
测试仪器:
万用表、水平仪、秒表。
3、测试结果及分析
(1)测试结果(数据)
滚球控制系统工作,将小球置于平板区域1上,记录平板开始运动使小球达到中心
区域平衡的时间,测定其最佳的PD参数。
KPKD6789
1.36s7s6s10s
1.64s5s6s6s
1.97s7s8s9s
任务1:
稳定小球在区域2,停留不少于5s。
任务2:
控制小球由区域1进入区域5,在区域5停留不少于2s。
测试次数第一次测试第二次测试第三次测试第四次测试
时间(s)4554
任务3:
控制小球由区域1进入区域4,在区域4停留不少于2s,再进入区域5停
6
留不少于2s。
测试次数第一次测试第二次测试第三次测试第四次测试
达到区域4时间4555
停于区域5时间1091210
任务4:
控制小球由区域1进入区域9,在区域9停留不少于2s。
测试次数第一次测试第二次测试第三次测试第四次测试
时间(s)20191514
(2)测试分析与结论
根据上述测试数据,通过调节PD参数,控制平板的倾斜程度,使小球进入区域和
冲过区域的不同状态具有良好的跟随性、准确性、快速性,由此可以得出以下结论:
1、单独增大KP,KD不变,平板倾斜度更大,小球滚动趋势大,当小球距离目的
坐标近时,平板也会有大的倾角。
2、微分KD起到微调和超调的作用,当小球靠近区域圆时,有刹车防止小球冲过
区域的作用。
结合适当的比例KP参数,微调微分KD,系统可以有较好的跟随性和稳
定性。
3、通过实验证明,当小球在规定的9个圆形区域时,设置比例参数KP为1.6,微
分参数KD为6,小球达到目标区域时间短;当小球在圆形区域外时,KP取值为5,使
平板有大的倾角,足够将小球拉回来。
4、采用动态P,设计小球从1到9区域的路线使其有较好的缓冲,克服因P值太
大给小球的惯性冲出平板。
综上所述,本设计达到设计要求。
五、参考文献
[1]谭浩强.C语言程序设计[M].北京:
清华大学出版社,2012.
[2]张兴.电力电子技术[M].科学出版社,2010.
[3]孙林军.基于STM32控制液晶的接口实现[J].电视技术,2013.
[4]韩国栋.AltiumDesignerWinter09电路设计入门与提高[M].化学工业出版
社,2010.
7
附录1:
电路原理图
附录1系统电路原理图
附录2:
源程序
#include"stm32f10x_it.h"
#include"led.h"
#include"delay.h"
#include"key.h"
#include"sys.h"
#include"lcd.h"
#include"usart.h"
#include"timer.h"
#include"dj_pwm.h"
#include"ov7670.h"
#include"exti.h"
#include
externu8ov_sta;
externu8ov_frame;
u8key;//按键标志位
inttest=0;//测试标志位
u16PWM_X=160,PWM_Y=150;//A1,A2脚的pwm输出
u16PWM_X_init=160,PWM_Y_init=150;//A1,A2初始值
u16PWM_X_Min=125,PWM_Y_Min=115;//PWM输出限幅外区域
u16PWM_X_Max=195,PWM_Y_Max=185;
8
u16PWM_X_Min2=135,PWM_Y_Min2=125;//PWM输出限幅内区域
u16PWM_X_Max2=185,PWM_Y_Max2=175;
u8PWM_Value=1;//按键可改变PWM数值
u8Task_flag=0;//任务标志
u8Task_flag2=0;//任务标志2
u16Task_time=0;//任务时间
u16Stop_time=0;//区域停留时间
u8time_Task_flag=0;
u8time_Stop_flag=0;
floatKp1=1.6,Kd1=6;//1P和D在圆内
floatKp2=3;//2在圆外
u16GOAL_X=120,GOAL_Y=80;//目标坐标
floatErr_X,Err_Y=0;//坐标差值
floatErr_X_LAST,Err_Y_LAST=0;
u8ball_r=5,QY_r=6,WC_value=1;//小球半径,允许误差*0.25cm
u16X,Y=0;//小球的质心位置
u16X_MAX=0,X_MIN=240;//小球的坐标
u16Y_MAX=40,Y_MIN=280;
u16X_MAX_LSAT,X_MIN_LSAT,
Y_MAX_LSAT,Y_MIN_LSAT=0;//上一次小球的坐标位置
u16X_MIN_RANGE=0,X_MAX_RANGE=240;//扫描判断区域
u16Y_MIN_RANGE=40,Y_MAX_RANGE=280;
u8QY_number=0;//所在的区域
u16QY_X1=40,QY_X2=120,QY_X3=200;//区域坐标行X40120200
u16QY_Y1=80,QY_Y2=160,QY_Y3=240;//区域坐标列Y80160240
voidKEY_RUN(void);
voidcamera_refresh(void);//更新摄像头
voidPWM_Control(void);//更新PWM输出
voidLCD_Control(void);//更新LCD显示
voidlocation(void);//更新位置判别
voidTest(void);//校准测试
voidTest_Blance(void);///校准测试1平衡
voidTest_OV1(void);//校准测试2摄像头1
9
voidTest_OV5(void);//校准测试3摄像头5
voidTest_OV9(void);//校准测试4摄像头9
voidTask(void);//任务函数
voidDone_Task(void);//更新任务进度
voidFand_Goal(void);//寻小球坐标函数
intmain(void)
{
delay_init();//延时函数
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
KEY_Init();
LCD_Init();
LCD_Clear(WHITE);
POINT_COLOR=BLACK;//设置字体黑色
PWM_X=PWM_X_init;//赋值PWM输出
PWM_Y=PWM_Y_init;
DJ1_PWM_INIT(499,719,PWM_X,PWM_Y);//舵机频率200HZ50-25060-240中值160160TIM2P2->A1
TIM2P3->A2
LCD_ShowString(50,150,150,24,24,(unsignedchar*)"Waiting...");
while(OV7670_Init());//初始化ˉOV7670
TIM6_Int_Init(5000,7199);//10Khz计数频率,1秒中断
EXTI8_Init();//使能定时器捕获
OV7670_Window_Set(10,170,240,320);//设置窗口
OV7670_CS=0;
LCD_Clear(BLACK);
Test();//校准测试
test=2;//测试关闭,关闭摄像头显示更新
while
(1)
{
KEY_RUN();//按键扫描
Fand_Goal();//寻小球坐标函数
Task();//任务函数(选定目标,PID调节)
location();//更新位置判断
Done_Task();//更新任务进度
LCD_Control();//更新LCD显示
}
}
10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制系统 设计 报告 文件 doc