专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

LEGO用轨迹传感器

作者:佚名   来源:本站原创   点击数:  更新时间:2012年12月20日   【字体:

我们制作的轨迹传感器外形如下:

3.1 硬件设计
3.1.1 采样器设计

为了便于准确的判断出轨迹的情况,考虑用4个光电采样器对轨迹进行采样,4个采样器的布置如下:

图中1、2号采样器负责检测是否脱离轨迹,3、4号采样器负责检测轨迹的交叉。这样布置的要求是:
 

  • 1、2号采样器间距小于轨迹宽度,同时要平行;
  • 3、4号采样器间距要大于线宽1.5 - 2 倍,也要平行;
  • 同时,前后两组的采样平行线间距要小于轨迹宽度。

因为采样器主要目的是监测轨迹,所以在采样电路上作了一些处理,以减小环境光的干扰。
采样器的电路如下:

采样器解剖图:


采样器外形:

3.1.2 CPU的选择
根据设计目标,同时为了简化系统的硬件,缩小体积,便于封装在LEGO积木块中,选用了PHILIP的LPC917 单片机作为处理芯片。

LPC917 具有:
 

  • 4路AD输入;
  • 2路PWM输出;
  • 256字节RAM;
  • 2K字节FALSH ROM,支持ICP,更新程序十分方便;
  • FLASH ROM还支持IAP,可以作为备份数据存储;
  • 内置上电复位、RC振荡器,可实现零外部器件工作;
  • 2周期高速51内核,弥补了原来51系列单片机慢的缺陷;
  • 16脚小体积封装,只有5 X 6 mm ,便于缩小PCB。

之所以选择LPC900 系列单片机,首先是因为它是51系列单片机,51系列在国内是一个最普及的单片机品种,涉及51的资源最为丰富,选用51系列为使用者二次开发提供了方便。

其次是LPC900系列速度快,是原来标准51的6倍。

第三是LPC900系列均支持ICP方式编程,而使用USB的ICP下载线成本不高,零售价只有120元,这对于追求小体积而不得不使用表贴器件的用户来说,应该是个不错的选择。ICP方式相对于IAP更可靠一些。
程序下载示意图:

第四就是LPC900系列的品种比较齐全,对于单一功能性的应用均可以找到合适的规格,我们所选的917就是看中了其4路AD输入和2路PWM输出。

3.1.3 电路设计
因为RCX输入口的电源负载能力有限,为避免不可靠,轨迹传感器自供电,一方面减少了不确定因素,另一方面可以使用RCX的通用输入模式,增加输入的分辨率,RCX的通用输入数值范围为 0 - 1024 (10位AD)。

为了减小体积,采用了升压电路,将一节7号电池的电压升高到5V,作为传感器的电源。

所有的功能均由LPC917 完成,使用其4路AD输入将采样器的信号转换为数字值,经内部软件处理后,根据结果用PWM方式转换为模拟量输出给RCX。

因为系统的可靠性、速度要求不高,所以使用了LPC917的内部复位电路和内部的RC振荡器,工作频率为7.3MHz。CPU工作无外部器件。

处理部分的电路如下:

(点击放大)

电路中设计了一个电源及工作状态指示灯,用于指示传感器的工作状态。
为了实现对采样器的调试,设计了一个按键,控制进入和退出调试。
对于采样器,为了减小环境光的干扰,每路均增加了一个控制信号。
为了和RCX的输入匹配,做到无极性连接,输出经放大后接了全桥整流,虽然损失了一部分信号幅度,但是方便了使用。为减小幅度损失,全桥选用肖特基二极管组成。

处理部分解剖图:

处理部分外形:
 

3.2 软件设计
3.2.1 资源分配

 

  • 使用LPC917的4路AD输入对采样信号进行数值转换,工作在直接触发、单次扫描模式;
  • 使用Timer0 产生 1ms时基,控制采样和输出;
  • 使用Timer1 作为 PWM 输出,产生RCX所要的模拟信号;
  • 借用ICP的端口P0.5 作为进入调试模式的控制端。

3.2.2 程序实现的功能
 

  • 4路A/D采样;
  • 计算出模型在轨迹上的位置;
  • 输出模拟量结果;
  • 调试功能,实现轨迹判断值的建立以及光电采样器的安装调整;

3.2.3 程序架构

程序分为以下几个模块:
☆采样模块 —— 实现每 1ms 对4路信号的AD转换一次,并根据判断域值换算为逻辑值保存,定义采样逻辑值为:
在轨迹上为“1”,不在轨迹上为“0”。

☆位置计算模块 —— 根据转换后的4个采样器逻辑值计算出目前的位置信息,并转换为定义的模拟量。

输出模拟量定义如下:
输出的轨迹特征 内部的输出值 RCX的输入中值(判断值)
 

一共是11种状态,为了避免信息混乱,所有特殊的轨迹状态(判断值小于3,大于7的)均是在走过后输出,输出维持 100 ms ,以确保RCX能可靠获取。

对于偏离轨迹的判断,如果没有经过特殊轨迹,偏离后只会维持3或7 输出,必须纠偏后回到状态5,才继续判断其它状态。

☆判断值建立和采样器安装调试模块 —— 为了建立轨迹和背景之间的判断值和变化方向,需要有一个调试状态,同时完成对采样器安装的调试。

进入调试状态借用 ICP 口中的P0.5,正常工作时P0.5 浮空(芯片内部上拉),为高电平,对地接一个按钮,按一下进入调试状态。在调试状态下,输出为采样器的实际值,可以通过RCX的VIEW功能对采样器的安装位置进行调试。

具体操作模式为:第一次按时,进入调试模式,输出1号采样值,可根据此值调试采样器安装位置,再按依次输出2、3、4号采样值,第五次按前将1、2 号采样器置于轨迹上,3、4置于背景上(轨迹外),输出的是判断域值,此时再按下按钮将保存判断域值,并返回到工作模式,完成调试过程。

在上述过程中,电源指示的闪烁方式为:在调试1号时,闪一下,灭1秒;调试2号时,闪2下,灭1秒;依次到输出判断域值时,闪5下,灭1秒。回到正常工作时连续闪烁。

程序完成纪录轨迹及背景的采样值,计算出判断值以及变化方向,并写入FLASH中保存,不再次进入调试不会被修改。

采样在1ms 中断中完成,建立标志。主程序根据标志启动计算或调试模块,输出对应的结果。

四、使用方法

连接示意图:

 

ROBOLAB 程序:



 

以上程序只是一个示例,对于特殊轨迹没有处理,具体应用时可根据需求添加。

上述采样器的布置方案不是唯一的,可能有更好的模式,我们提供的只是一种思路,希望能起到抛砖引玉的作用。

五、扩展应用
上述模式也可用于其它的应用,如在青少年机器人足球项目中,用于对灰色渐变场地的监测,本采样器在LEGO 提供的练习纸上测试,最黑处约为180,最亮处约为 920,红灰测试块的灰色约为480。而用原配的光感,最黑处约为35,最亮处约为55,红灰测试块的灰色约为 44。


我没有在足球场地纸上试过,但根据这些数据可以初步推论:用于监测足球场地的灰度变化会比原来大有改善,而且,如果使用者有能力用C51编程的话,肯定会使足球水平大有提高。


如果将现在用于监测轨迹的反射采样器换为检测红外球的采样器,那么用在守门员或进攻机器人上,对找球将会有很大的好处,这样RCX可以专注于策略。而且,用LEGO参加足球赛的学校也可以体现出水平了,因为传感器的性能、功能可以根据自己的需要改变,而非统一提供的,大家指标差异有限。

关闭窗口

相关文章