ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:411.44KB ,
资源ID:5890772      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5890772.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(摄像头云台设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

摄像头云台设计报告.docx

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摄像头;模拟舵机;显示屏模块。一、系统方案本系统主要由两个模拟舵机模块、mpu9250模块、摄像头模块、电源模块组成,下面分别论证这几个模块的选择。1、模拟舵机的论证与选择方案一:使用模拟舵机和算法修正。模拟电机有其局限性,首先其最大转速不快,0.17s能转动60,同时经过实测,舵机在本身转动时,有可能会有一定的过冲,因为部控制系统,会自动往回修正一定距离

4、,但是精度也并不高。但是模拟舵机成本低,控制简单,控制时只需要调整一定的pwm波占空比就可以轻松控制转动的角度,由于是角度伺服电机,最大只能转动180度,出现部分故障时危险较小。尽管精度低,但是理论上只要使用PID算法进行合理的设计,将参数测试合理,反馈的角度精确且速度较快,经过调试也可以达到很高精度。方案二:使用步进电机。步进电机本身精度较高,控制时只需要按照预定的角度调整pwm波可以进行指定角度的转动,若配合反馈的角度进行控制应该也很容易达到精度要求。但是步进电机体积十分庞大,同时由于其本身的驱动不能直接使用单片机而还需要使用步进电机驱动器才能驱动,同时使用两个步进电机不仅涉及云台时需要预

5、留很大空间,还需要合理摆放驱动器。可能会在机械系统设计时花费更多的时间和精力,消耗大量时间。方案三:使用无刷电机。使用无刷电机转动速度会比上述两种电机都快,不过由于速度快,对于PID算法的要求也相应提高,且无刷电机也需要使用电调才能使用单片机控制。虽然其速度快,但是对于摄像头云台来说,过快的响应速度意义并不是特别大。摄像头云台更看重精度,而无刷电机相对上述两种电机来说对于高精度的角度控制略有难度。综合以上三种方案,方案一的优点在于灵活方便,体积较小,方便机械结构的设计,价格经济,使用角度进行修正也可以达到很高的精度,选择方案一。2、mpu9250模块的论证与选择方案一:mpu6050模块。Mp

6、u6050是一款六轴陀螺仪,对于角度的检测和加速度的测定都有较高精度,且相对较为便宜,广泛运用于各种需要角度,位移控制的控制系统中,但相对于mpu9250而言,少了三个方向的地磁角。方案二:mpu9250模块。Mpu9250模块与mpu6050在角度和加速度的测定上是一样的,但是mpu9250在测定容上多了三个方向上的地磁偏角,可以使用算法利用地磁偏角对原本测定的角度进行修正,相对于mpu6050来说,可达到的角度精度更高。综合以上三种方案,方案二的优点在于其测定的角度有地磁修正,相对于方案一而言,角度测定更准确,选择方案二。二、系统理论分析与计算1、可达到的最高角度精度的理论分析(1)使用的

7、模拟电机是角度伺服电机,给一个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(若舵机的分值完全准确)。P

8、ID算法使用了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.5

9、6。(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电压,确保电路的正

10、常稳定工作。航模电池的电压约为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。然

11、后将差值的积分也一并计算出:Bias_integeral = Bias_integeral + Bias;根据PID算法中的PI算法,使用这两个量值就可以计算出修正值。2)触摸屏部分:用触摸屏显示当前角度值,目标角度值,输出脉冲大小,显示摄像头模块拍摄到的图像信息,同时设置触控按钮,可以通过触控改变目标角度值的大小。3)基本驱动部分:配置时钟,定时器,输出pwm波控制脉冲大小,驱动ov7670摄像头正常工作并传输数据,驱动mpu9250并读取相关的角度值数据。2、程序设计思路驱动配置完成之后。程序通过mpu9250将当前系统的角度值读取回来,根据PID算法中的PI算法,将舵机的角度修正值计算出

12、来,再将改修正值通过pwm波脉冲时间的形式发送给舵机,使舵机的角度值改变,使系统的角度按照预设位置高精度变化,从而完成系统的角度控制。(2)程序流程图1、主程序流程图2、PID计算子程序流程图四、测试方案与测试结果1、测试方案与论证(1)硬件测试:检查硬件电路图,stm32电路板和相关走线连接没有问题。打开电源之后,各部分正常运行。舵机转动时,用数字示波器检查5V电源和3.3V电源,无较大纹波,稳压及滤波电路正常工作。(2)软件仿真测试:经过仿真,程序能够正常运行,读取数据,数据的相关计算都正常。(3)硬件软件联调:上电之后,程序正常运行,mpu9250,ov7670,lcd显示屏都正常运行并

13、能传回数据,舵机可以按照指定方向转动。正常输入目标角度,测定系统的稳定性和精度。每次改变目标角度10,查看最终的稳定值与目标角度的偏差以此计算精度。论证:由于制作的是机械系统,若系统能够稳定运行,运行指标满足题目要求,则系统的测试2、测试条件与仪器测试条件:检查多次,上电之后运行系统检查系统的运行稳定性和系统精度。测试仪器:数字示波器,数字万用表,指针式万用表。3、测试结果及分析(1)测试结果(数据)每次改变目标值查看稳定之后的角度值: (单位/)目标值10203040506070130实际值10.012619.984629.953640.095450.016960.031469.899412

14、9.986(2)测试分析与结论根据上述测试数据,可以看出最大的精度偏差为0.1006,经过后续的粗测量精度偏差最大基本不会超过0.1,由此可以得出以下结论:1、系统的精度可满足角度偏差不超过0.2的精度。2、系统的稳定性非常高,基本不会出现不稳定因素,可以有效的使用。综上所述,本设计达到题目要求的角度偏移小于0.5的目标。五、参考文献1谭浩强.C语言程序设计M.:清华大学,2012附录1:电路原理图附录2:源程序int main(void) u8 t=0; u16 lastpos52; float pitch,roll,yaw; short aacx,aacy,aacz; short gyro

15、x,gyroy,gyroz; short mx,my,mz; u8 error; u16 pwm_yaw,pwm_roll; u8 lightmode=1,saturation=2,brightness=2,contrast=2; u8 effect=2; u16 i,j; u32 color=0; float t_yaw,t_roll; delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(115200); LCD_Init(); TIM4_PWM_Init(4999,143); SCCB_Init()

16、 ; POINT_COLOR=RED; LCD_ShowString(60,50,200,16,16,Mini STM32); LCD_ShowString(60,70,200,16,16,TOUCH TEST); LCD_ShowString(60,90,200,16,16,ATOMALIENTEK); LCD_ShowString(60,110,200,16,16,2014/3/11); draw_button(); printf(Usart is ok now!%drn,OV7670_Init(); OV7670_Light_Mode(lightmode); OV7670_Color_S

17、aturation(saturation); OV7670_Brightness(brightness); OV7670_Contrast(contrast); OV7670_Special_Effects(effect); TIM6_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_m

18、s(200); /LED0=!LED0; while(1) camera_refresh(); if(mpu_mpl_get_data(&pitch,&roll,&yaw)=0) error=MPU_Get_Accelerometer(&aacx,&aacy,&aacz); error=MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz); error=MPU_Get_Magnetometer(&mx,&my,&mz); printf(pitch:%f roll:%f yaw:%f n,pitch,roll,yaw); tp_dev.scan(0); if(tp_de

19、v.sta)&(1) if(tp_dev.x0lcddev.width&tp_dev.y0400) if(tp_dev.y0533) if(tp_dev.x0240)t_roll= t_roll+10; else if(tp_dev.y0666) if(tp_dev.x0240)t_roll= t_roll-10; if(t_yaw180)t_yaw = 180; if(t_yaw 180)t_roll = 180; if(t_roll50)angle_integral_roll=50; if(angle_integral_roll 500)pwm_differ = 500; if(pwm_differ 1249)pwm = 1249; if(pwmCCR2 = *pwm_roll; TIM4-CCR1 = *pwm_yaw;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1