| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 2017年全国大学生电子设计分享-B题板球控制系统 -> 正文阅读 |
|
[嵌入式]2017年全国大学生电子设计分享-B题板球控制系统 |
根据题目要求,需要自行设计制作一套实现滚球控制的控制系统,能够实现使小球能够按照指定的要求在平板上完成各种动作,并从动作开始记时并显示的功能。
系统由机械就够部分和控制电路部分组成,两个部分都很重要,机械结构的好坏影响到整个系统的工作性能,而控制电路的正常工作则是系统系统功能完善的保证。
一个滚球控制系统是一个完整的测量控制系统,其中的机械结构则是这个测控系统的对象,对象的好坏在很大程度上会影响到后期控制算法的设计,对象制作的越稳定可靠,系统的性能也越好。所以,在制作这样一个精密的控制系统的时候,前期的对象制作是非常关键的一步,在制作的时候要尽量确保它的稳定性,选用合适的材料、采用尽量好的制作工艺。 在滚球控制系统的制作过程中,机械结构大概分成以下几个部分,摄像头及固定支架、平板、平板支撑柱及万向节、舵机、转动轴(拉杆)、小球的选择,下面就是这几个部分作详细介绍。
摄像头是整个系统的主要检测部分,作用是通过二值化采集到的图像确定小球的位置坐标。我们采用的是OV7725摄像头。而固定支架的作用是固定摄像头位置,使摄像头可以采集到整个平板完整的图像并且使摄像头可以在硬件性能有限的情况下可以以足够大的帧率传输图像。
平板是实现小球控制稳定的关键部分。在舵机扭力有限的情况下,我们选择较轻的KT板作为主板。但是由于KT板硬度较差,导致在平板支撑过程中出现平板弯曲的情况。于是我们将轻质木条拼接成的正方形框架粘贴在KT板下方,使KT板在系统运行过程中尽量保持平整的状态。
平板支撑柱支撑了整个平板的大部分重量,万向节保证在平板支撑过程中使其不影响整个平板的转动。为了确保支撑住的稳定,我们使用一段较粗的长方形木条作为支撑住,并在其底部使用两片L形铁片固定。我们在长方形木条的头部钻孔并插上一截铜柱完成木条和万向节的连接,并使用热熔胶密封连接缝隙保证结构的稳定性。
舵机是整个系统的动力来源。我们通过舵机的转动实现拉杆的升降来完成对平板的控制。由于控制整个平板的转动,只需控制其向X轴方向以及Y轴方向偏转的角度即可,因此我们采用两个舵机控制平板转动的结构。我们在平板相邻两边的中点下方各放置一个舵机。在舵机的选择方面,考虑到小球在平板上需要平稳的移动以及舵机价格等因素,我们选择了舵机响应速度较慢(较快的响应速度导致平板激烈抖动使小球不能平稳移动),价格较低的GM996R型号舵机。但缺点是扭力较差不能支撑亚克力板的重量。
转动轴的升降直接控制平板的转动。为了使X轴和Y轴上的拉杆升降互不受影响我们将在木棒两端用热熔胶粘上了两片塑料片,使其在两个垂直的平面上。并将其一段固定在平板上,一端固定在舵机的一字臂上。这样可以使平面单轴的转动不受另一个轴的转动所影响,完成平板灵活的控制。
小球作为被控目标。为了找到合适题目的小球,我们尝试了多种球体,包括乒乓球、3D打印的塑料小球、直径10mm到20mm的钢球。由于乒乓球球体较大不符合题目标准,3D打印的塑料小球表面不够圆,过小的钢球目标太小不能被摄像头检测到,过大的小球重量过大,最终我们选择了直径15mm的钢球作为被控小球。
在上面的机械结构设计中,我们已经选择好了相应的控制装置,后面的测控电路就依据对象的特性来设计,主要包括电源模块、舵机驱动模块、摄像头采集模块、显示输入模块、主控制模块。
由于使用舵机所需电压不高,我们直接采用stm32f103vet6单片机核心板上自带的电源模块为舵机提供3.3V-5V的电压。
滚球控制系统对舵机的控制要求较高。驱动电路不仅要有足够的电流输出能力,还得比较精确的控制电流大小,支撑频繁的电流换向输出,提供简单的单片机接口。因此我们采用VET6引脚输出PWM信号控制舵机的转动。
我们使用OV7725摄像头实现对小球的定位,由于摄像头是我们使用单片机的配套摄像头,我们简单的将摄像头与单片机连接使用单片机自带的模块完成数据的采集。
由于系统功能较多,所以需要一个菜单界面由于控制功能设置选择,在这里我们采用了LCD:ILI9341液晶屏和独立按键构建电路。
滚球控制系统是一个实时性要求很高的控制系统,为了实现稳定控制,需要很高的控制速度,而且还需完成许多复杂的运动,小球稳定算法也相对复杂。所以我们需要选择运算速度快、内存空间大的单片机作为控制器。由于我们对STM32f103vet6单片机较为熟悉,因此我们选用它。
滚球控制系统结构如图1所示。 图1 滚球控制系统结构 系统运行时,在LCD屏上显示菜单界面,如图2所示。 图2 菜单界面 其中左上方显示摄像头采集到的图像以及二值化图像(可通过手势操作切换),右下方显示各参数,其中 Now(X,Y)表示小球现在所处的坐标(X,Y); Aim(X’,Y’):N Pointt表示目标点N以及目标坐标(X’,Y’); Dev(x,y)表示小球X轴和Y轴上的偏差值x和y; Speed:x0,y0 表示小球X轴Y轴上的速度; Fps:a 表示传输图像帧率a。 屏幕中间是系统的控制界面,点击上方数字即可将目标坐标设置为相应记号坐标,点击下方的字母或数字可以选择相应的题号; 屏幕右边是上方显示已选择的题号,下方显示T或F表示是否处于执行题目的状态。 执行题目的操作过程为:点击题目编号选中题目,然后按下按钮K1开始执行题目。
我们把控制小球的影响因素分为三个主要参数,一个是位置的比例参数KP,一个是位置的微分参数KD还有一个是速度的比例参数KPV。 为了可以时刻调整函数使系统适应不同状态,我们设置了函数来判断小球是否进入目标点附近范围以识别小球目前状态。
当小球接近目标进行稳定操作时,系统自动将位置影响参数KP、KD降为0,提高速度的比例参数KPV。这样可以起到很好的稳定小球的效果。
当小球离开目标区域时,系统自动提高位置影响参数KP、KD,降低速度影响参数KPV,这样可以让小球快速移动到目标点。
我们周期性的让小球依次向目标点5周围的预设点移动,当识别到小球稳定,就往下一个点移动,以达到围绕目标点移动的效果
图3舵机驱动电路
图4 LCD控制电路
图5 OV7725摄像头控制电路
在软件体系当中,首先在菜单界面人机交互,当进入功能后根据功能要求选择不同步骤进行操作。
Windows10操作系统,Keil4软件开发平台,
STM32f103vet6集成开发板,稳压电源。
热熔枪、3D打印机、手锯等加工工具,实现机械结构制作。
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:27:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |