版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、控制专题训练阶段性报告摄像头云台设计学生姓名:2017年5月24日摘要随着社会的发展,视频监控行业在IT行业中逐渐占据一角,同样作为视频监控中摄像机的一部分云台,也扮演着重要的角色。云台是一种主要由两个高精度电机组成的用于承载镜头的支架,其中一个电机负责控制云台水平转动,另一个电机用于控制云台的垂直方向转动,从而使摄像机镜头能够在水平范围内,垂直180°范围内实现两个自由度的转动。本文要设计的是立式摄像头云台,机械结构的设计使摄像头云台能够放置在平面上,可以实现水平方向和垂直方向各180°的自由度转动,体积较小便于存放,使用两个舵机分别控制云台的水平转动和垂直转动,在上部的
2、云台上固定用于反馈角度信息的mpu9250九轴陀螺仪和摄像头。由于使用的是模拟舵机,精度较低,为达到设计精度要求由单片机根据mpu9250反馈得到的角度数据对舵机的角度进行计算,使用PID算法得到修正值进行修正。最终设计的摄像头云台的角度精度(以mpu9250反馈的当前角度为标准当前角度)可达到0.2°(大部分时间可达到0.1°以内),即当云台完成角度修正并稳定后,角度与设定的偏转角度相差总小于0.2°。云台从开始修正到角度偏差小于0.2°的时间不超过为2秒(最长响应时间)。操作和数据的显示均在触摸屏上完成,可直接在触摸屏上设置摆动的角度,同时可以看到当
3、前的角度与设置的目标角度,以及看到回传的摄像头拍摄到的图像。本设计虽然采用了模拟舵机这种本身精度不高的电机,却由PID算法对系统的精度做出了很大程度的弥补,稳定角度误差低于0.2°的精度已经基本满足云台的设计目标并能适应许多特殊情况的要求。关键词:mpu9250陀螺仪;stm32f103vet6;ov7670摄像头;模拟舵机;显示屏模块。、系统方案11、模拟舵机的论证与选择12、mpu9250f块的论证与选择2、系统理论分析与计算21、可达到的最高角度精度的理论分析2(1)模拟舵机原理2(2) stm32定时器计算错误!未定义书签。2、PID参数的计算3(1) PID原理分析和算法设
4、计3(2) PID参数理论估计值计算3(3) PID参数的测试与修改3三、电路与程序设计41、电路的设计4(1)系统总体框图4(2)PID算法子系统框图4(3)电源42、程序的设计4(1)程序功能描述与设计思路4(2)程序流程图5四、测试方案与测试结果51、测试方案与论证52、测试条件与仪器63、测试结果及分析6(1)测试结果(数据)6(2)测试分析与结论7五、参考文献7附录1:电路原理图8附录2:源程序9一、系统方案本系统主要由两个模拟舵机模块、mpu9250模块、摄像头模块、电源模块组成,下面分别论证这几个模块的选择。1、模拟舵机的论证与选择方案一:使用模拟舵机和算法修正。模拟电机有其局限
5、性,首先其最大转速不快,0.17s能转动60°,同时经过实测,舵机在本身转动时,有可能会有一定的过冲,因为内部控制系统,会自动往回修正一定距离,但是精度也并不高。但是模拟舵机成本低,控制简单,控制时只需要调整一定的pwm波占空比就可以轻松控制转动的角度,由于是角度伺服电机,最大只能转动180度,出现部分故障时危险较小。尽管精度低,但是理论上只要使用PID算法进行合理的设计,将参数测试合理,反馈的角度精确且速度较快,经过调试也可以达到很高精度。方案二:使用步进电机。步进电机本身精度较高,控制时只需要按照预定的角度调整pwm波可以进行指定角度的转动,若配合反馈的角度进行控制应该也很容易达
6、到精度要求。但是步进电机体积十分庞大,同时由于其本身的驱动不能直接使用单片机而还需要使用步进电机驱动器才能驱动,同时使用两个步进电机不仅涉及云台时需要预留很大空间,还需要合理摆放驱动器。可能会在机械系统设计时花费更多的时间和精力,消耗大量时间。方案三:使用无刷电机。使用无刷电机转动速度会比上述两种电机都快,不过由于速度快,对于PID算法的要求也相应提高,且无刷电机也需要使用电调才能使用单片机控制。虽然其速度快,但是对于摄像头云台来说,过快的响应速度意义并不是特别大。摄像头云台更看重精度,而无刷电机相对上述两种电机来说对于高精度的角度控制略有难度。综合以上三种方案,方案一的优点在于灵活方便,体积
7、较小,方便机械结构的设计,价格经济,使用角度进行修正也可以达到很高的精度,选择方案一。2、mpu9250奠块的论证与选择方案一:mpu6050真块。Mpu605Ch一款六轴陀螺仪,对于角度的检测和加速度的测定都有较高精度,且相对较为便宜,广泛运用于各种需要角度,位移控制的控制系统中,但相对于mpu9250而言,少了三个方向的地磁角。方案二:mpu9250真块。Mpu9250奠块与mpu6050ft角度和加速度的测定上是一样的,但是mpu9250ft测定内容上多了三个方向上的地磁偏角,可以使用算法利用地磁偏角对原本测定的角度进行修正,相对于mpu6050#说,可达到的角度精度更高。综合以上三种方
8、案,方案二的优点在于其测定的角度有地磁修正,相对于方案一而言,角度测定更准确,选择方案二。二、系统理论分析与计算1、可达到的最高角度精度的理论分析(1)使用的模拟电机是角度伺服电机,给一个0.5ms的脉冲时转动到0。点,脉冲最大为2.5ms,转动到180°o从0.5ms至U1.5ms有2ms的中间值。(2)若使用stm32的定时器,将定时器的预分频设置为72倍,原时钟频率是72MHz则分频之后变成72MHZ/72=1MHZ即每个时钟周期是1us,占2ms的2000分之1倍,也就是说,经过控制之后的最小分度值应该是180/2000=0.09°。说明以现行参数进行设置,设计可以
9、达到要求的0.5°精度以内。2、PID参数的计算(1)最终设计时,为了参数计算方便,将0°到180°的中间值分给了1000的pwmfio即每个值之间相差0.180(若舵机的分值完全准确)。PID算法使用了PI算法,使用公式:pwm_differ=kp*Bias+ki*angle_integral_roll;进行pwmfl勺差值计算。即角度与目标角度每相差一度,就会有kp的pwm修正。由于舵机的操作方式是固定pwm占空比转动固定角度,所以采用差值的形式对pwmfi进行计算,在每次计算结束后对pwm值进行修正。pwm=pwm_differ+pwm;(2)由上述计算量可
10、知,若只有比例参数进行修正则应有:pwm_differ=kp*Bias;Pwm_differ*0.18°(每个pwmfi代表舵机的0.18°,此值为估计值不准确)=Bias。解方程组得:kp=5.56。(3)由于采用的是PI控制,为了避免过大的过冲,kp取比5.56小一些的值,程序中取5,ki作为补偿,取0.5。完成粗略的取值估计后,进行实际的测试,根据测试结果这样的取值基本能满足系统设计的要求,响应时间基本上在2秒以内,精度能达到0.3°以内。后经过测试和修正,kp和ki分别修正为4和1,现行精度可达到0.2°以内,响应时间也基本在2秒以内。三、电路与
11、程序设计1、电路的设计1)系统总体框图系统总体框图如图1所示,图1系统总体框图2) PID算法控制子系统框图图2PID算法控制子系统框图(3)电源电源由航模电池供电,由变压部分,滤波部分,稳压部分组成。为整个系统提供5V和3.3V电压,确保电路的正常稳定工作。航模电池的电压约为11.1V,使用一个dc-dc模块将电压将为5V,再使用一个asm1117-3.3V芯片产生一个稳定的3.3V电压,对两部分电源都进行电容滤波进行稳压,从而完成对单片机系统,舵机等设备的供电。2、程序的设计(1)程序功能描述与设计思路1、程序功能描述根据题目要求软件部分实现mpu925激据读取,ov7670的图像显示,舵
12、机的控制,触摸屏的触控,各种控制信息的显示以及PID算法的运行。1) PID算法的运行:程序快速的将当前系统的角度值读取回来,计算出差值Bias=angle-target_angle。其中,angle为欧拉角中的滚动角roll和航向角1aw。然后将差值的积分也一并计算出:Bias_integeral=Bias_integeral+Bias;根据PID算法中的PI算法,使用这两个量值就可以计算出修正值。2)触摸屏部分:用触摸屏显示当前角度值,目标角度值,输出脉冲大小,显示摄像头模块拍摄到的图像信息,同时设置触控按钮,可以通过触控改变目标角度值的大小。3)基本驱动部分:配置时钟,定时器,输出pwm
13、波控制脉冲大小,驱动ov7670摄像头正常工作并传输数据,驱动mpu925”读取相关的角度值数据。2、程序设计思路驱动配置完成之后。程序通过mpu9250将当前系统的角度值读取回来,根据PID算法中的PI算法,将舵机的角度修正值计算出来,冉将改修正值通过pwm波脉冲时间的形式发送给舵机,使舵机的角度值改变,使系统的角度按照预设位置高精度变化,从而完成系统的角度控制。(2)程序流程图1、主程序流程图2) PID计算子程序流程图四、测试方案与测试结果1、测试方案与论证(1)硬件测试:检查硬件电路图,stm32电路板和相关走线连接没有问题。打开电源之后,各部分正常运行。舵机转动时,用数字示波器检查5
14、V电源和3.3V电源,无较大纹波,稳压及滤波电路正常工作。(2)软件仿真测试:经过仿真,程序能够正常运行,读取数据,数据的相关计算都正常。(3)硬件软件联调:上电之后,程序正常运行,mpu9250ov7670,led显示屏都正常运行并能传回数据,舵机可以按照指定方向转动。正常输入目标角度,测定系统的稳定性和精度。每次改变目标角度10°,查看最终的稳定值与目标角度的偏差以此计算精度。论证:由于制作的是机械系统,若系统能够稳定运行,运行指标满足题目要求,则系统的测试2、测试条件与仪器测试条件:检查多次,上电之后运行系统检查系统的运行稳定性和系统精度。测试仪器:数字示波器,数字万用表,指针
15、式万用表。3、测试结果及分析(1)测试结果(数据)每次改变目标值查看稳定之后的角度值:(单位/°)目标值10°20°30040050060°700130°实际值10.01219.98429.95340.09550.01660.03169.899129.9866649446(2)测试分析与结论根据上述测试数据,可以看出最大的精度偏差为0.1006,经过后续的粗测量精度偏差最大基本不会超过0.1°,由此可以得出以下结论:1、系统的精度可满足角度偏差不超过0.2°的精度。2、系统的稳定性非常高,基本不会出现不稳定因素,可以有效的使
16、用综上所述,本设计达到题目要求的角度偏移小于0.5°的目标。五、参考文献1谭浩强.C语言程序设计M.北京:清华大学出版社,2012附录1:电路原理图附录2:源程序intmain(void)u8t=0;u16lastpos52;floatpitch,roll,yaw;shortaacx,aacy,aacz;shortgyrox,gyroy,gyroz;shortmx,my,mz;u8error;u16pwm_yaw,pwm_roll;u8lightmode=1,saturation=2,brightness=2,contrast=2;u8effect=2;u16i,j;u32color
17、=0;floatt_yaw,t_roll;delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);uart_init(115200);LCD_Init();TIM4_PWM_Init(4999,143);SCCB_Init();POINT_COLOR=RED;LCD_ShowString(60,50,200,16,16,"MiniSTM32");LCD_ShowString(60,70,200,16,16,"TOUCHTEST");LCD_ShowString(60,90,200,16,16
18、,"ATOMALIENTEK");LCD_ShowString(60,110,200,16,16,"2014/3/11");draw_button();printf("Usartisoknow!%drn",OV7670_Init();OV7670_Light_Mode(lightmode);OV7670_Color_Saturation(saturation);OV7670_Brightness(brightness);OV7670_Contrast(contrast);OV7670_Special_Effects(effect);T
19、IM6_Int_Init(10000,7199);/tp_dev.init();EXTI8_Init();OV7670_Window_Set(12,176,240,320);OV7670_CS=0;printf("tp_init%drn",TP_Init();t_yaw=0;t_roll=0;while(mpu_dmp_init()delay_ms(200);/LED0=!LED0;while(1)camera_refresh();if(mpu_mpl_get_data(&pitch,&roll,&yaw)=0)error=MPU_Get_Accel
20、erometer(&aacx,&aacy,&aacz);error=MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);error=MPU_Get_Magnetometer(&mx,&my,&mz);printf("pitch:%froll:%fyaw:%fn",pitch,roll,yaw);tp_dev.scan(0);if(tp_dev.sta)&(1)if(tp_dev.x0<lcddev.width&&tp_dev.y0<lcdd
21、ev.height)if(tp_dev.y0>400)if(tp_dev.y0<533)if(tp_dev.x0<240)t_yaw=t_yaw+10;if(tp_dev.x0>240)t_roll=t_roll+10;elseif(tp_dev.y0<666)if(tp_dev.x0<240)t_yaw=t_yaw-10;if(tp_dev.x0>240)t_roll=t_roll-10;if(t_yaw>180)t_yaw=180;if(t_yaw<-180)t_yaw=-180;if(t_roll>180)t_roll=180;if(t_roll<-180)t_roll=-180;LCD_Showangle(yaw,roll,pitch,t_yaw,t_roll);LCD_Showpwm(pwm_yaw,pwm_roll);pwm_set(yaw,t_yaw,roll,t_roll,&pwm_yaw,&pwm_roll);u16compute_pwm_roll(floatangle,floattarget_angle,u16pwm)staticfloatangle_integral_ro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论