摘 要

滚球控制系统通过摄像头获得滚球装置中小球和平板的图像,然后采用Nanopi
M3进行相应的图像处理算法处理图像,通过坐标变换转换为小球在平板上的位置信息,将位置信息传送给STM32F103RC系统控制器,在平板的两个相互正交方向上分别进行PID控制算法,控制舵机驱动平板在这两个相互正交方向上相互配合地倾斜,从而间接控制小球直线、绕环等运动。采用按键选择和12864液晶显示屏,选择和显示工作模式和参数。系统制作完善,测试结果理想,很好的完成了各项任务要求。

**关键词:**PID控制算法;图像处理;STM32F103RC;12864液晶显示屏

1 方案设计与论证

1.1 总体方案描述

图1.1
是滚球系统的构成框图,主要由控制器、执行器、板和球、摄像机、图像处理模块构成。

图1-1 滚球系统构成框图

具体的工作过程为:通过摄像机采集小球的运动图像,在图像处理单元,利用Nanopi 2
Fire对图片进行处理,获取球相对于板的位置,将位置信息传送到控制器,在控制器内计算控制量,通过控制执行机构来控制平板运动,进而控制小球的运动。

1.2主控制器的选择方案

方案1:采用可编程逻辑器件CPLD,具有并行输入输出方式。它在系统处理的速度上较快,但是规模大、结构复杂,而系统不需要复杂的逻辑功能,对数据处理速度的要求也不是非常高。

方案2:采用FPGA作为系统的控制器。FPGA可以实现各种复杂的逻辑功能,规模大,密度高。但是因其价格较高使系统成本增加,高速处理优势得不到体现。

方案3:采用STM32F103RC单片机。STM32F103RC单片机,具有功能强大、效率高的指令系统,以及高性能模拟技术及丰富的外围模块。方便高效的开发环境使操作更加简便,低功耗是其它类单片机难以比拟的,集成度较高,编程相对简单。STM32
定时功能强大,主要应用的是定时器的 PWM 模式,PWM 模式只能在定时器的 4
个通道产生频率相同但是占空比不同的输出信号,由于要控制 4
个电机的运行(在板球控制系统中只使用其中的两个电机),因此要用到定时器的PWM模式。

在滚球系统中,还要对采集到的位置信息需要进行两个方向的PID运算,为满足高速的运算要求,系统选择了性能更好的STM32F103RC单片机。

1.3 摄像头选择方案

方案1:采用陕西维视 MV-VD 系列工业摄像机。此摄像头最高采集频率为60
帧/s。陕西维视数字图像技术有限公司提供了摄像机在 VC6.0 下的底层驱动代码,因此在
VS2008
上,可以比较容易的编写摄相机驱动程序,控制相机的采集频率和其他一系列的相机参数。对相机采集回来的图片应用数字图像处理技术,对每一帧图片进行处理,获取球的位置信息。

方案2:采用iMac
拆机摄像头,该摄像头体积小、易于安装,支持各种分辨率,最大硬件分辨率
1280*1024,720P高清,可改USB摄像头,且价格便宜。

考虑到系统对图像的分辨率没有太大的要求,但在价格方面iMac拆机摄像头又远远低于MV-VD
系列工业摄像机,因此采用iMac拆机摄像头。

1.4 图像处理器选择方案

方案1:采用Nanopi 2
Fire处理器。该处理器为四核A9处理器,运行主频1.4GHz,具有1GB内存,依托Debian/Android的强大生态系统,以及各种各样的扩展配件,Nanopi
2
Fire兼容树莓派的IO口,可支持并行CMOS摄像头接口,和1路专用调试串口,对图像处理具有强大的优势。

方案2:它采用高性能的ARM/Cortex-M32/32 位 RISC 内核,工作频率为
72MHZ,内置高速存储器,以及丰富的 IO 设备和外部接口。

由于图像处理需要高速的处理速度,STM32对图像处理略显卡顿。图像处理器选择Nanopi 2
Fire 处理器。

1.5 电机选择方案

方案1:采用带有丝杆的直流减速电机。直流减速电机经过减速后对外输出力矩增加,板在倾斜过程中,丝杆连接处的水平距离变短,对丝杆有较大的截向的力,对平板的进一步运动有所阻碍。

方案2:采用舵机。舵机是靠脉冲的宽度来控制其转动的角度,使用舵机带动连接轴即可控制平台的倾斜。舵机使用方便,响应速度快。

方案3:采用直线电机。直线电机可自由控制杆的伸长和缩短,其速度为8cm每秒,最大伸缩长度为15cm,行程大。

舵机和直线电机响应速度相当,但是直线电机笨重不及舵机小巧,且舵机价格实惠,所以系统采用舵机。

2 理论分析与计算

2.1 小球识别原理

小球位置和圆形的检测是控制滚球系统的基础。在图像处理以及模式识别中,经常需要获取图片中圆和矩形的信息,将采集到的图片首先进行灰度化处理,再进行边缘检测、转化为二值图像等操作,具体流程如图2-1所示。

图2-1 小球识别流程图

其中,边缘检测需要进行如下步骤。

1)将彩色图像转换为灰度图像,用高斯平滑滤波对图像进行去噪处理。

2)用高斯的一阶微分对图像进行滤波,获得较好的梯度边缘。

3)对梯度进行非极大值抑制和滞后阀值处理得到图像的边缘。

4)采用双阀值算法检测和连接边缘。设置检测强边缘和弱边缘的2
个阀值。当检测到的边缘点的阀值,高于强边缘的阀值,则为强边缘,输出边缘点。当检测到边缘点的阀值介于强边缘的阀值和弱边缘的阀值之间时,认为是弱边缘点,当且仅当弱边缘与强边缘相连时,弱边缘才被输出。

经过以上几个步骤处理,检测到图像的边缘并输出。

2.2 小球运动控制原理

系统采用在工业控制中得到广泛运用的PID控制器,因为采用的是离散计算,所以PID算法又称为数字PID。数字PID控制算法可以分为位置式PID和增量式PID,在滚球系统中采用的是位置式PID。

常规模拟PID控制的控制规律描述如式2.1:

(2.1)

其中:为期望值与实际值之差、Kp为控制器的比例参数、为积分时间、为微分时间。

现在PID控制的实现大都不采用模拟电路的模式,而是采用数字形式,所以它只能根据采样时刻的偏差来计算控制量,而不能像模拟控制那样连续输出控制量,进而连续控制。因而2.1式中的积分项和微分项不能直接使用,必须要经过离散化处理。离散化处理的方法为:以T为采样周期,K为采样序号,则离散采样时间KT对应连续时间t,用一阶后向差分式近似代替积分,可作如下近似变换:

(2.2)

令=,式2.2代入式2.1得离散式PID表达式:

(2.3)

(2.4)

滚球系统将采集到的小球的位置信息在两个相互正交方向分别进行PID运算,将运算结果作用到PWM的脉宽上,以达到控制舵机转速。

3 系统软硬件设计

3.1 硬件结构设计

设计的平台机械结构如图 3-1 所示。

图 3-1 平台机械结构示意图

小球的运动控制是通过处理器的计算将结果反馈给舵机来X方向和Y方向的舵机转动,以实现载球平台不同方向的倾斜,从而使小球按照预期的轨迹和规定运动参数在平台上完成相应的动作。

3.2 稳压电路部分

电子产品中,常见的三端稳压集成电路有正电压输出的78 ××
系列和负电压输出的79××系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。7805三端稳压IC内部电路具有过压保护、过流保护、过热保护功能,这使它的性能很稳定。能够实现1A以上的输出电流。所以,7805稳压芯片十分适合系统的稳压电路设计。原理图如图3-2所示。

图 3-2 稳压电路

3.3 显示部分

带中文字库的128X64-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。其硬件连接如图3-3所示。

图 3-3 液晶引脚连接图

3.4总体程序框架

根据任务要求设计如图3-4所示的程序框架。

图3-4 总体程序框架图

  1. 当系统上电后,12864液晶显示器显示开机界面,与此同时STM32F103RC对按键检测,选择工作状态,设定静止状态、运动位置、圆周运动。通过PID调节实现相应的功能。

(2)摄像头捕捉图像,Nanopi处理返回坐标值,调用PID子程序进行计算。**
**

(3)键盘初始化,判断是否有按键按下,无键按下,重新进行键盘扫描;有键按下,判断是哪个键按下,并进行相应的操作。

4 系统测试

4.1测试仪器

在室温条件下,测试所用仪器如表4-1所示。

表4-1 测试仪器

编号 名称 型号
1 数字万用表 UT39A
2 秒表 XINJIE
3 示波器 UTD2062CEL

4.2 指标测试结果

(1)小球在指定区域停留时间。

要求:将小球放置在区域2,控制使小球在区域内停留不少于5秒,经过5次测试,测试结果如表4-2所示。

表4-2 小球在区域2停留时间

次数 放置位置 停留时间(秒) 是否达标
1 2区域 10
2 2区域 12
3 2区域 12
4 2区域 15
5 2区域 13

(2)小球从一个区域进入另一个区域所用时间及停留时间。

要求:控制小球从区域1进入区域4,在区域4停留不少于2秒;然后再进入区域5,小球在区域5停留不少于2秒。完成以上两个动作总时间不超过20秒。

表4-3 小球运动时间及停留时间

次数 区域a到区域b 运动完成时间(秒) 停留时间(秒) 是否达标
1 1到2 16 5
2 1到2 14 5
3 1到4 13 6
4 1到4 15 4

4.3误差分析

经分析,系统的主要误差来自于摄像头图像的采集,一方面,采集图像时受环境的影响较大,使得识别小球时有错误识别的情况。另一方面,由于摄像头是固定的,不能始终与正对着平台,在平台倾斜时,采集到平台的图像为梯形,使得小球的位置获取有一定误差。

5 总结

滚球控制系统以STM32F103RC为主控制器,以NanoPi为图像处理器,STM32根据NanoPi反馈的小球位置信息进行PID运算,作用于舵机改变平台的倾斜角度以达到控制小球运动的目的。因为滚球系统是通过摄像头采集图像,所以对硬件的搭建的要求很严格,为达到降低误差的目的,要求各机械结构的尺寸设计精确,且装配准确。在设计滚球控制系统过程中,不仅仅提高了动手能力,更是提高了发现问题和解决问题的能力。滚球控制系统在硬件上还存在着误差,可进一步的通过设计的合理性及精确程度来降低误差,在软件上,单纯的使用PID控制器,今后可通过建立数学模型来提高控制的高效性。

参考文献

[1] 华成英,童诗白.模拟电子技术基础(第四版)[M].北京:清华大学出版

社,2006
[2] 汤兵勇等.模糊控制理论与应用技术[M].北京:清华大学出版社,2002
[3] 谭浩强.C程序设计[M].北京:清华大学出版社,1991
[4] 徐建华.图像处理与分析[M].北京:科学出版社,1992
[5] 章卫国,杨向中.模糊控制理论与应用[M].西安:西北工业大学出版社,

1999
[6] 全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编

[M].北京:北京理工大学出版社,2008
[7] 汪文,陈林.单片机原理及其应用[M].湖北:华中科技大学出版社,2006
[8] 康华光,陈大钦.电子技术基础模拟部分(第四版)[M].北京:高等教育

出版社,2003.4
[9] 康华光,邹寿彬.电子技术基础数字部分(第四版)[M].北京:高等教育

出版社,2000.7
[10] 黄志伟.全国大学生电子设计竞赛培训教程[M].北京:电子工业出版社,

2005
[11] 康华光.电子技术基础(模拟部分)(第五版)[M].北京:高等教育出版

社,2005
2008
[7] 汪文,陈林.单片机原理及其应用[M].湖北:华中科技大学出版社,2006
[8] 康华光,陈大钦.电子技术基础模拟部分(第四版)[M].北京:高等教育

出版社,2003.4
[9] 康华光,邹寿彬.电子技术基础数字部分(第四版)[M].北京:高等教育

出版社,2000.7
[10] 黄志伟.全国大学生电子设计竞赛培训教程[M].北京:电子工业出版社,

2005
[11] 康华光.电子技术基础(模拟部分)(第五版)[M].北京:高等教育出版

社,2005

2017电子设计大赛论文:滚球控制系统相关推荐

  1. 2017全国大学生电子设计大赛B题 | 板球控制系统(二)图像算法相关

    2017全国大学生电子设计大赛B题 | 板球控制系统(二)图像算法相关 转载请注明出处. 我翻看了很多现有教程以及相关的开源贴,发现大家对于技术的解释都很隐晦,真正的问题没解释清楚,真正的技术也没体现 ...

  2. 2017全国大学生电子设计大赛B题 | 板球控制系统(一)序

    距离2017年电子设计大赛已经过去将近一年时间,我也终于有空将当时比赛的具体细节整理出来,以供给大家进行详细的参考,方便后来者进行快速,细致的学习. 17年赛题出来之前,我是最快做出样题的人之一.当时 ...

  3. 2017全国大学生电子设计大赛B题 | 板球控制系统(四)机械设计相关

    转载请注明出处. 转眼2019了诶,可能有些同学又该问了,哇向阳哥,你这个鸽子放的好,转眼大半年了一年都没更新,我也知道啊,说好的源码呢,挖的机械的坑呢?咕咕咕咕我也不想啊,我这不是懒吗!过年有空了, ...

  4. 2017电子设计大赛-光电科技协会板球控制系统

    写在前面 在写这篇博客之前我们还不知道自己到底是几等奖(ps:省一推国赛,无奈在综合测评上出了岔子,无缘国一),其实做到最后奖项什么的都不重要了,重要的是我们在比赛准备期间和比赛期间所学到的东西吧,我 ...

  5. 2017全国大学生电子设计大赛B题 | 板球控制系统(三)舵机控制相关

    转载请注明出处 2019全国电赛交流群(内有板球系统基础题代码):597962412 今天我们来讲一讲舵机的控制.电赛在给出赛题说明与采购清单的一刹那,我就想好了赛题最可能使用的两种输出元器件.一种是 ...

  6. 【Arduino】2017年电子设计大赛B题 滚球控制系统|板球系统

    **本文由@ray 出品,转载请注明出处. ** **文章链接: ** http://blog.csdn.net/wz22881916/article/details/78161080 今年电赛我们队 ...

  7. 2017全国大学生电子设计竞赛个人总结--B题滚球控制系统

    本人有幸参加2017年全国大学生电子设计大赛,并在西安通过努力进入到优秀作品展示,虽然与瑞萨杯失之交臂,但是感觉从比赛中学到了许多知识和临场发挥的经验,这些经验和进步必将伴随我的未来. 首先来说说组队 ...

  8. 滚球控制系统(B 题 本科组)-- 2017 年全国大学生电子设计竞赛试题

    滚球控制系统(B 题 本科组)-- 2017 年全国大学生电子设计竞赛试题 一.任务 二.要求 2.1.基本部分 2.2.发挥部分 三.说明 3.1.系统结构要求与说明 3.2.测试要求与说明 四.评 ...

  9. 2017年全国大学生电子设计大赛A题(微电网模拟系统)

    小编参加过三届全国大学生电子设计竞赛,做的均为电源题目,故留下此电源题提详细的方案和设计思路步骤,供后来者学习取经,如有不足之处欢迎留言提问.点击此处访问小编的个人小站:www.zhiguoxin.c ...

  10. 2017年全国大学生电子设计大赛有感

    2017年全国大学生电子设计大赛有感 作为一个大专生,本本不应该提这个比赛,但是参加了还是提一下吧! 作为一名大专生,我的指导老师有一种惯性,专科生比不过本科生.其实他犯了一个错误.在当时的训练情况无 ...

最新文章

  1. 什么,PyTorch还能开发新药?哈佛推出这款工具包,10行代码训练“药神”模型...
  2. franze kafka 游戏_The Franz Kafka Videogame
  3. tabcontainer控件太长_asp.net AjaxControlToolKit--TabContainer控件的介绍
  4. python爬虫下载-python爬虫之下载文件的方式总结以及程序实例
  5. gitosis使用笔记
  6. 【网络安全】 利用 EHole 进行红队快速批量打点
  7. 全民创业时代,谁在大潮退去前“活”下来?
  8. FreeMaker导出word
  9. java的serversocket_Java ServerSocket 实现聊天室功能(简易版)
  10. java this() super(),Java super()和this()的区别用法及代码示例
  11. 【BZOJ1951】古代猪文(CRT,卢卡斯定理)
  12. 德标螺纹规格对照表_国标德标对照表
  13. 各类免费的的机器人仿真软件优缺点汇总
  14. Perl的一些初级练习题
  15. 基于C51实现测试人体反应速度
  16. Chartboost-x新鲜出炉: C++ Wrapper of Chartboost for Cocos2d-x
  17. 蓝桥杯OJ示例题目之A+B问题——掌握获取输入的基本方法(Python)
  18. CorelDRAW X3 金箔织绣材质特效——金箔绣球(1)
  19. 国外邮件服务器,在国外发邮件连不上国内的邮件服务器
  20. 记住这些单词各种编程学习起来会很简单

热门文章

  1. Read_books_水煮三国
  2. matlab 简单低通滤波器,基于MATLAB的理想低通滤波器的设计
  3. python制作网页挂机_python使用ip代理抓取网页
  4. [DiMP跟踪算法]代码学习笔记
  5. jquery 使用文档
  6. Mysql中Regexp常见用法
  7. 基于Vue结合高德地图api做的一个坐标拾取组件
  8. 廖雪峰网站python学习笔记——字符串和编码
  9. 苹果开发者三类账号说明
  10. qt 程序中读取 DXL360 倾角仪的数据