基于STM32滚球控制系统分析与设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于STM32滚球控制系统分析与设计

基于STM32滚球控制系统分析与设计   摘要:本设计是基于STM32F407单片机设计的滚球控制系统,本系统主要由图像采集与处理模块、液晶显示屏驱动模块、矩阵键盘模块、电源稳压模块等构成。本系统通过OV2640摄像头采集图像数据以此判断滚球的位置,并结合PID算法来控制调节舵机进而实现小球停在目标位置。为了方便调试和复测,系统采用矩阵键盘的模式。通过对本系统的软硬件的实际测试,其能稳定地运行,到达了预期的目标。   关键词:STM32F407;OV2640;PID   中图分类号:TM33 文献标识码:A 文章编号:1007-9416(2017)12-0017-02   1 系统方案设计原理   1.1 设计原理   本设计主要由四个部分组成,分别是图像采集与处理模块、平板驱动模块、矩阵键盘模块、电源稳压模块,系统设计框图如图1所示。   图像采集与处理模块作为本系统的最核心,主要是利用图像传感器完成对小球位置的采集和对图像进行二值化处理;平板驱动模块是通过PWM对电机的驱动完成对平板的驱动,使小球运动到指定位置;矩阵键盘模块是通过对主芯片的控制来改变对小球目标位置的控制;电源稳压模块是提供给芯片,舵机等稳定电源。   1.2 电源稳压设计   在此系统中运用到的电源可能不稳定,需要性能较好的稳压模块。目前小功率的直流稳压电源模块有很多,主要有线性稳压和开关稳压电路,大多数采用线性集成稳压器,因此设计的主要任务是选择合适的集成稳压器及整流滤波参数。本设计采用的是三端固定输出集成稳压器CW7800。   CW7800集成稳压器内部电路组成框图如图2所示,它由调整电路、保护电路、比较放大、基准电压、启动电路、取样电路等部分组成。启动电路是电路有输入电压UI时,利用UI对稳压器自身快速建立一个输出电压UO,使稳压器工作。在取样电路中,利用电阻对输入电压进行分压,由于分压电阻是固定的,则输出电压UO是固定的;保护电路对稳压器起到保护作用。   1.3 算法设计   传统的位式控制算法的结构如图3所示。   基本特点是输出信号单一,只能为高电压或者低电压,用来驱动控制对象;算法输出信号的依据是设定值与当前值比较,若设定值大于当前值,则输出高电平,若设定值小于当前值,则输出低电平。这种算法没有考虑到偏差,在控制对象时不能实现对对象的变化趋势的控制。   PID控制算法的结构如图4所示。   Sv是用户设定的初始值;Pv是当前的状态。在PID控制算法中,有三个变量分别为Ek,Sk,Dk。Ek表示当前的偏差,Sk表示历史偏差,Dk表示最近两次的偏差之差。   (1)   通过公式(1)即可实现PID控制。根据公式(1)可知,PID算法有三个环节,比例环节,积分环节和微分环节。若偏差为0,则Kp为0,只有存在偏差时,比例系数才会加大或减小,当比例系数Kp加大时,会使滚球系统动作加快,但容易造成不稳定。积分环节主要是用于消除系统稳定后输出值与设定值的差值。在本系统中为了简化系统设计,可不用积分?h节。微分系统反应了偏差信号的变化规律,可以进行超前调节。   2 系统程序设计   利用OV2640摄像头采集图像,并将数据发送到核心芯片,判断小球位置是否到达目标位置。若小球未到达目标位置,则根据增量式PID算法使小球快速稳定的停在指定位置,完成要求。为方便调试,系统程序分模块进行设计,将程序分成LCD液晶显示模块,舵机驱动模块,摄像头模块。软件程序流程图如图5所示。   2.1 OV2640摄像头处理程序设计   图像采集模块利用J-Link仿真编程器将编译之后的二进制文件烧写到Flash启动文件系统,图像采集系统采用OV2640摄像头模块,输出显示采用2.4英寸TFT液晶显示屏。当储存按键按下时,系统接收中断,同时将从OV2640摄像头采集到的数据显示在液晶显示屏上[1]。首先需要对摄像头进行初始化,其程序设计如下所示。   LCD_ShowString(30,130,240,16,16,OV2640 ERR);   LCD_Fill(30,130,239,170,WHITE);   LCD_ShowString(30,130,200,16,16,OV2640 OK);   OV2640_OutSize_Set(176,144);   OV2640_RGB565_Mode();//RGB565模式   My_DCMI_Init();//DCMI配置   DCMI_DMA_Init((u32)rgb_buf,sizeof(rgb_buf)/4,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Enable);//DCMI DMA配置   当对摄像头配置完成

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档