摄像头云台设计报告_第1页
摄像头云台设计报告_第2页
摄像头云台设计报告_第3页
摄像头云台设计报告_第4页
摄像头云台设计报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生:2017年5月24日摘要随着社会的开展,视频监控行业在IT行业中逐渐占据一角,同样作为视频监控中摄像机的一局部——云台,也扮演着重要的角色。云台是一种主要由两个高精度电机组成的用于承载镜头的支架,其中一个电机负责控制云台水平转动,另一个电机用于控制云台的垂直方向转动,从而使摄像机镜头能够在水平围,垂直180°围实现两个自由度的转动。本文要设计的是立式摄像头云台,机械构造的设计使摄像头云台能够放置在平面上,可以实现水平方向和垂直方向各180°的自由度转动,体积较小便于存放,使用两个舵机分别控制云台的水平转动和垂直转动,在上部的云台上固定用于反应角度信息的mpu9250九轴陀螺仪和摄像头。由于使用的是模拟舵机,精度较低,为到达设计精度要求由单片机根据mpu9250反应得到的角度数据对舵机的角度进展计算,使用PID算法得到修正值进展修正。最终设计的摄像头云台的角度精度〔以mpu9250反应的当前角度为标准当前角度〕可到达0.2°〔大局部时间可到达0.1°以〕,即当云台完成角度修正并稳定后,角度与设定的偏转角度相差总小于0.2°。云台从开场修正到角度偏差小于0.2°的时间不超过为2秒〔最长响应时间〕。操作和数据的显示均在触摸屏上完成,可直接在触摸屏上设置摆动的角度,同时可以看到当前的角度与设置的目标角度,以及看到回传的摄像头拍摄到的图像。本设计虽然采用了模拟舵机这种本身精度不高的电机,却由PID算法对系统的精度做出了很大程度的弥补,稳定角度误差低于0.2°的精度已经根本满足云台的设计目标并能适应许多特殊情况的要求。关键词:mpu9250陀螺仪;stm32f103vet6;ov7670摄像头;模拟舵机;显示屏模块。目录一、系统方案11、模拟舵机的论证与选择12、mpu9250模块的论证与选择1二、系统理论分析与计算11、可到达的最高角度精度的理论分析1〔1〕模拟舵机原理1〔2〕stm32定时器计算12、PID参数的计算1〔1〕PID原理分析和算法设计1〔2〕PID参数理论估计值计算1〔3〕PID参数的测试与修改1三、电路与程序设计21、电路的设计2〔1〕系统总体框图2〔2〕PID算法子系统框图2〔3〕电源32、程序的设计3〔1〕程序功能描述与设计思路3〔2〕程序流程图3四、测试方案与测试结果31、测试方案与论证32、测试条件与仪器43、测试结果及分析4〔1〕测试结果(数据)4〔2〕测试分析与结论4五、参考文献4附录1:电路原理图5附录2:源程序6一、系统方案本系统主要由两个模拟舵机模块、mpu9250模块、摄像头模块、电源模块组成,下面分别论证这几个模块的选择。1、模拟舵机的论证与选择方案一:使用模拟舵机和算法修正。模拟电机有其局限性,首先其最大转速不快,0.17s能转动60°,同时经过实测,舵机在本身转动时,有可能会有一定的过冲,因为部控制系统,会自动往回修正一定距离,但是精度也并不高。但是模拟舵机本钱低,控制简单,控制时只需要调整一定的pwm波占空比就可以轻松控制转动的角度,由于是角度伺服电机,最大只能转动180度,出现局部故障时危险较小。尽管精度低,但是理论上只要使用PID算法进展合理的设计,将参数测试合理,反应的角度准确且速度较快,经过调试也可以到达很高精度。方案二:使用步进电机。步进电机本身精度较高,控制时只需要按照预定的角度调整pwm波可以进展指定角度的转动,假设配合反应的角度进展控制应该也很容易到达精度要求。但是步进电机体积十分庞大,同时由于其本身的驱动不能直接使用单片机而还需要使用步进电机驱动器才能驱动,同时使用两个步进电机不仅涉及云台时需要预留很大空间,还需要合理摆放驱动器。可能会在机械系统设计时花费更多的时间和精力,消耗大量时间。方案三:使用无刷电机。使用无刷电机转动速度会比上述两种电机都快,不过由于速度快,对于PID算法的要求也相应提高,且无刷电机也需要使用电调才能使用单片机控制。虽然其速度快,但是对于摄像头云台来说,过快的响应速度意义并不是特别大。摄像头云台更看重精度,而无刷电机相对上述两种电机来说对于高精度的角度控制略有难度。综合以上三种方案,方案一的优点在于灵活方便,体积较小,方便机械构造的设计,价格经济,使用角度进展修正也可以到达很高的精度,选择方案一。2、mpu9250模块的论证与选择方案一:mpu6050模块。Mpu6050是一款六轴陀螺仪,对于角度的检测和加速度的测定都有较高精度,且相对较为廉价,广泛运用于各种需要角度,位移控制的控制系统中,但相对于mpu9250而言,少了三个方向的地磁角。方案二:mpu9250模块。Mpu9250模块与mpu6050在角度和加速度的测定上是一样的,但是mpu9250在测定容上多了三个方向上的地磁偏角,可以使用算法利用地磁偏角对原本测定的角度进展修正,相对于mpu6050来说,可到达的角度精度更高。综合以上三种方案,方案二的优点在于其测定的角度有地磁修正,相对于方案一而言,角度测定更准确,选择方案二。二、系统理论分析与计算1、可到达的最高角度精度的理论分析〔1〕使用的模拟电机是角度伺服电机,给一个0.5ms的脉冲时转动到0°点,脉冲最大为2.5ms,转动到180°。从0.5ms到1.5ms有2ms的中间值。〔2〕假设使用stm32的定时器,将定时器的预分频设置为72倍,原时钟频率是72MHZ,则分频之后变成72MHZ/72=1MHZ,即每个时钟周期是1us,占2ms的2000分之1倍,也就是说,经过控制之后的最小分度值应该是180/2000=0.09°。说明以现行参数进展设置,设计可以到达要求的0.5°精度以。2、PID参数的计算〔1〕最终设计时,为了参数计算方便,将0°到180°的中间值分给了1000的pwm值。即每个值之间相差0.18°〔假设舵机的分值完全准确〕。PID算法使用了PI算法,使用公式:pwm_differ=kp*Bias+ki*angle_integral_roll;进展pwm的差值计算。即角度与目标角度每相差一度,就会有kp的pwm修正。由于舵机的操作方式是固定pwm占空比转动固定角度,所以采用差值的形式对pwm值进展计算,在每次计算完毕后对pwm值进展修正。pwm=pwm_differ+pwm;〔2〕由上述计算量可知,假设只有比例参数进展修正则应有:pwm_differ=kp*Bias;Pwm_differ*0.18°〔每个pwm值代表舵机的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秒以。三、电路与程序设计1、电路的设计〔1〕系统总体框图系统总体框图如图1所示,图1系统总体框图〔2〕PID算法控制子系统框图图2PID算法控制子系统框图〔3〕电源电源由航模电池供电,由变压局部,滤波局部,稳压局部组成。为整个系统提供5V和3.3V电压,确保电路的正常稳定工作。航模电池的电压约为11.1V,使用一个dc-dc模块将电压将为5V,再使用一个asm1117-3.3V芯片产生一个稳定的3.3V电压,对两局部电源都进展电容滤波进展稳压,从而完成对单片机系统,舵机等设备的供电。2、程序的设计〔1〕程序功能描述与设计思路1、程序功能描述根据题目要求软件局部实现mpu9250数据读取,ov7670的图像显示,舵机的控制,触摸屏的触控,各种控制信息的显示以及PID算法的运行。1〕PID算法的运行:程序快速的将当前系统的角度值读取回来,计算出差值Bias=angle-target_angle。其中,angle为欧拉角中的滚动角roll和航向角yaw。然后将差值的积分也一并计算出:Bias_integeral=Bias_integeral+Bias;根据PID算法中的PI算法,使用这两个量值就可以计算出修正值。2〕触摸屏局部:用触摸屏显示当前角度值,目标角度值,输出脉冲大小,显示摄像头模块拍摄到的图像信息,同时设置触控按钮,可以通过触控改变目标角度值的大小。3〕根本驱动局部:配置时钟,定时器,输出pwm波控制脉冲大小,驱动ov7670摄像头正常工作并传输数据,驱动mpu9250并读取相关的角度值数据。2、程序设计思路驱动配置完成之后。程序通过mpu9250将当前系统的角度值读取回来,根据PID算法中的PI算法,将舵机的角度修正值计算出来,再将改修正值通过pwm波脉冲时间的形式发送给舵机,使舵机的角度值改变,使系统的角度按照预设位置高精度变化,从而完成系统的角度控制。〔2〕程序流程图1、主程序流程图2、PID计算子程序流程图四、测试方案与测试结果1、测试方案与论证〔1〕硬件测试:检查硬件电路图,stm32电路板和相关走线连接没有问题。翻开电源之后,各局部正常运行。舵机转动时,用数字示波器检查5V电源和3.3V电源,无较大纹波,稳压及滤波电路正常工作。〔2〕软件仿真测试:经过仿真,程序能够正常运行,读取数据,数据的相关计算都正常。〔3〕硬件软件联调:上电之后,程序正常运行,mpu9250,ov7670,lcd显示屏都正常运行并能传回数据,舵机可以按照指定方向转动。正常输入目标角度,测定系统的稳定性和精度。每次改变目标角度10°,查看最终的稳定值与目标角度的偏差以此计算精度。论证:由于制作的是机械系统,假设系统能够稳定运行,运行指标满足题目要求,则系统的测试2、测试条件与仪器测试条件:检查屡次,上电之后运行系统检查系统的运行稳定性和系统精度。测试仪器:数字示波器,数字万用表,指针式万用表。3、测试结果及分析〔1〕测试结果(数据)每次改变目标值查看稳定之后的角度值:〔单位/°〕目标值10°20°30°40°50°60°70°130°实际值10.012619.984629.953640.095450.016960.031469.8994129.986〔2〕测试分析与结论根据上述测试数据,可以看出最大的精度偏差为0.1006,经过后续的粗测量精度偏差最大根本不会超过0.1°,由此可以得出以下结论:1、系统的精度可满足角度偏差不超过0.2°的精度。2、系统的稳定性非常高,根本不会出现不稳定因素,可以有效的使用。综上所述,本设计到达题目要求的角度偏移小于0.5°的目标。五、参考文献[1]谭浩强.C语言程序设计[M].:清华大学,2012附录1:电路原理图附录2:源程序intmain(void){ u8t=0; u16lastpos[5][2]; floatpitch,roll,yaw; shortaac*,aacy,aacz; shortgyro*,gyroy,gyroz;shortm*,my,mz; u8error; u16pwm_yaw,pwm_roll; u8lightmode=1,saturation=2,brightness=2,contrast=2; u8effect=2; u16i,j; u32color=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,"ATOMALIENTEK"); LCD_ShowString(60,110,200,16,16,"2014/3/11"); draw_button();printf("Usartisoknow!%d\r\n",OV7670_Init()); OV7670_Light_Mode(lightmode); OV7670_Color_Saturation(saturation); OV7670_Brightness(brightness); OV7670_Contrast(contrast); OV7670_Special_Effects(effect); TIM6_Int_Init(10000,7199); //tp_dev.init(); E*TI8_Init(); OV7670_Window_Set(12,176,240,320); OV7670_CS=0; printf("tp_init%d\r\n",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_Accelerometer(&aac*,&aacy,&aacz); error=MPU_Get_Gyroscope(&gyro*,&gyroy,&gyroz); error=MPU_Get_Magnetometer(&m*,&my,&mz); } printf("pitch:%froll:%fyaw:%f\n",pitch,roll,yaw); tp_dev.scan(0); if((tp_dev.sta)&(1)) { if(tp_dev.*[0]<lcddev.width&&tp_dev.y[0]<lcddev.height) { if(tp_dev.y[0]>400){ if(tp_dev.y[0]<533){ if(tp_dev.*[0]<240)t_yaw=t_yaw+10; if(tp_dev.*[0]>240)t_roll=t_roll+10; }elseif(tp_dev.y[0]<666){ if(tp_dev.*[0]<240)t_yaw=t_yaw-10; if(tp_dev.*[0]>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); }}u16pute_pwm_roll(floatangle,floattarget_angle,u16pwm){ staticfloatangle_integral_roll=0; intpwm_differ; floatkp,ki; float

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论