GP2D12 在机器人足球中的应用-再谈如何在RCX上使用测距传感器 写于: 星期一 11 七月 @ 00:02:11 |
GP2D12是一个在机器人活动中使用较普遍的测距传感器,LEGO器材恰恰缺少测距传感器,但RCX直接使用有点困难,使用以前所介绍的方法,性能上有些欠缺。在此,我以足球守门员的应用为例,介绍一种新的在RCX上使用GP2D12的方法。 GP2D12 在机器人足球中的应用 ―― 再谈如何在RCX上使用测距传感器 摘要: 关键词:测距,GP2D12,机器人足球,守门员 一、 背景 为此,我决定采用外部电源为GP2D12供电,以提高采样率。开始使用的是9V充电电池,用7805 降压供电,后考虑9V充电电池难于采购,改用一节7号电池升压供电。 但在使用RCX获取GP2D12的输出时,发现数据波动较大,在仔细阅读了GP2D12的应用指南(Application Note,见附件)后得知,GP2D12的输出是非连续的,每40 ms输出一个数据,在运动时输出为阶跃信号;而且在这40ms期间,输出的噪声也比较大。 为此,考虑借用轨迹传感器的处理部分,对GP2D12 的输出进行滤波、线性化后送给RCX。还是这个思路:让RCX做适合的事。滤波要求实时性较高,而且要占用比较多的内存(我使用了40个字节),使用RoboLAB是难以实现的。 二、 设计及实现 2.1 设计目标
2.2 具体实现 传感器实物: GP2D12 的封装示意图 余下的工作是按照需求编写相应的软件。 软件的编写主要考虑两个方面,一是滤波问题,二是线性化问题。 滤波的主要设计依据是应用指南(Application Note,见附件),此文详细的分析了GP2D12 的工作原理,以及实际的性能,给出各种试验数据,有很好的参考价值。此文从网上下载,我忘了取自那个网站。 我采用的滤波方法为1ms 采样一次,取连续的40次平均值作为计算距离的数据,这个方式的主要目的是为了消除噪声,同时也平滑了阶跃,我认为这样处理阶跃比较合理,因为此时GP2D12 前次计算的结果权值是逐渐降低的,而非一次性“作废”。但是否正确,有待大家评判。 线性化问题比较简单,因为网上有人已经作了很细致的工作,我使用的是从Acroname 网站上下载的计算表(gp2d12_cal.xls ,见附件),此表做的十分精细,使用很方便,只需键入所用的AD位数、电压,并输入8个距离下的GP2D12 输出值,表中自动会计算出线性化的计算系数。 在判断位置处理上,考虑到GP2D12 在10 ― 35cm 这个范围测量比较准确,所以将球门的判断位置设置为 20 cm (可以通过调整传感器装在模型上的位置满足此要求), 为防止在进出球门区的边界上出现“抖动”,程序设置了判断回差,类似于电子线路中的“施密特触发器”。 在进出球门区的瞬间,输出100ms的位置信号,告知RCX目前的位置变化。平时输出实际的距离值。 因为没有获取运动方向,所以无法给出是在哪一侧位置。RCX可以根据自己的控制状态知道。 RCX侧的应用程序在此就不在赘述了,与LEGO轨迹传感器类似,根据自己的需求,结合原来的守门程序,我想一定比我做的好。 三、总结 也许有人觉得难于上手,其实现在使用单片机已很方便,用C语言编程,基本不涉及硬件,只需开始时初始化好硬件即可,有些单片机还提供了很方便的初始化硬件工具,如:沈阳新华龙供应的51F系列、南京万利提供的ST3200系列。 我这两个应用就是用C51实现的,没有使用一句汇编,我将测距的程序附在后面,大家可以看一下,没有接触过单片机的可以有个感性认识。从改别人的程序开始,逐步过渡到自己构建框架、编写程序,最后再自己设计、制作硬件,独立完成一个项目。 有意实践者可以与我们联系:support@embedream.com 附件: 感谢原作者与大家一起分享好文章,另一篇好文章: |
共1条
1/1 1 跳转至页
GP2D12 在机器人足球中的应用-再谈如何在RCX上使用测距传感器
只看楼主 1楼
关键词: GP2D12 机器人 足球 中的 应用 再谈 何在
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |