LEGO用轨迹传感器
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 浮空(芯片内部上拉),为高电平,对地接一个按钮,按一下进入调试状态。在调试状态下,输出为采样器
LEGO轨迹传感 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)