关于NXT 电阻式传感器 LEGO 机器人
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电阻式传感器
电阻式传感器是NXT被动型传感器的一种。
术语“被动传感器”听起来可能有点矛盾。
毕竟,怎么可能传感器也是被动的呢?这个词是从RCX时代开始的,那时只有两个类型的传感器:有电源的和无电源的。
您可能已经想到被动传感器都是没有电源供电的那一类型。
电阻式传感器连接NXT和接触传感器类似。
你需要使用端口中六个针脚中的两个针脚。
在NXT插座里,他们是针脚1和2;在连接线中,他们是白色和黑色的线芯。
目前不用区分哪个是哪个。
在下面的例子中你将了解。
模拟数字转换
电阻式传感器比唯独开或关两个状态的开关式传感器来说复杂的多。
NXT通过模拟数字转换器获取两个针脚电压的数字信号,从0V到5V转换后是1023到0。
现在你可能在想,"开关没有电压,NXT如何转换呢?" NXT内, 永久地从针脚1(或连接线中的白色线芯)连接10kΩ的电阻到5V。
针脚2(或连接线中的黑色线芯)永久连接0V(地)。
如果你需要的只是一个开关挂接到输入,如下图。
开关关闭时5V或开关打开时0V。
这些都是极端,但如果连接介于打开和短路之间,你得到的某个在0V和5V之间的电压将转换为0和1023之间的数字信号。
串联的两个电阻在电路中被称为分压,因为他们两个分摊了总电压。
电压分为多少取决于他们电阻的值。
下面这个方程式包括:模拟数字电路的电压、外部电阻器R、NXT内部的10kΩ电阻器,NXT的5V电源电压:
使用NXT的10bit数模转换电路换算原始的电压可以最大分为1023个精度,1023是10bit 可表达的最大数值:
当乐高认为这是连接到一个开关时,它将比较当前值是否大于460。
如果输入的值大于460,它会以为这个传感器是断开的;如果不是,他会以为是接通的。
欧姆
NXT的一小部分可以实现数字欧姆表的功能,你很容易就可以知道连接在NXT输入端口的传感器的阻值。
通过下面的代数公式,你可以很轻松的把模拟数字转换器的原始值转换为传感器的真实阻值。
程序
在NXT创建一个读取传感器阻值的程序非常简单。
你需要做读取输入和代入方程然后把计算出来的值显示出来,如图所示
有一种情况是,当采集到的值为1023时,会导致代数式除0,因此需要增加一个判断,发现1023减去采集到的值为0时,直接让NXT显示Infinity(无穷)。
盐浓度测量
下面让我们看一个实际使用的例子。
含盐度是一个很重要的水质指标,因为植物和动物不能适应含盐度过高的水源。
盐浓度越高水的电阻值越低。
还有一点要注意的是要使电阻下降到一半需要的盐很多。
首先将两根裸露的电线固定到一瓶干净的水的底部,如下图所示,并注意两根线的距离。
理想情况下,纯净水应该显示无限大,但自来水可能会显示阻值。
小心翼翼的在不移动电线位置的前提下添加几粒盐。
等待其完全溶解,并注意屏幕显示的阻值数。
就重复此过程,并记录盐浓度和电阻的关系图。
传统温度传感器
温度传感器对NXT来说是一个很有用的传感器。
可以配合NXT搭建一个数字温度计,显示当前温度或者可以记录到一个文件。
乐高使用的温度传感器(9V温度传感器PN#W979889)。
它是RCX的旧式传感器,如果你想使用他,还需要一根NXT-RCX转换线(PN#770323)。
这个模块稍微有点贵,考虑到这个问题你可以自己制作一个简易的模块。
事实上,LEGO 的传感器模块并不适合所有的情况。
例如,我不会使用它来监视仓鼠笼内的温度,因为仓鼠可能误以为它是玩具而咀嚼。
NXT温度传感器测量范围是从–4℉到158℉(-20℃到70℃)。
乐高显然不希望你煮你的温度探测器。
虽然有限,但是它已经可以适用于你大多数的情况。
NXT-G使用温度传感器需要先导入温度传感器模块。
这个块你可以设定摄氏或华氏,还有重要一点是温度输出是实际温度的十倍。
这样通过除以10可以获得0.1度的精度。
热敏电阻
传统乐高温度传感器内使用的电子器件是热敏电阻器。
热敏电阻的电阻值随温度变换而变化。
NXT使用的热敏电阻的阻值随着温度的升高而降低。
因为温度与阻值的对应系数为负数,所以该类型称为负温度系数(NTC) 热敏电阻器。
热敏电阻器由两条电线连接到一个小球,通常是由金属氧化物半导体材料制造。
当球的温度升高时,更多的电子可在半导体中通过,所以阻值降低。
通常电阻器会被涂上环氧用来防止水和其它污染物。
不同的温度范围和变换的效果决定了不同的选择,此外,大小、封装和准确性有增加了好几倍的选择。
NXT逆向工程
如何找到兼容NXT的热敏电阻器?我们开始NXT的逆向工程,通过分析RAW(NXT读取到的原始数据)和温度得到转换公式。
下图记录的温度和RAW,正如你所看到的它的转换公式并不是简单的偏移量或乘数。
你已经知道了如何使用NXT程序将读取的原始值转换为电阻值。
送入方程原始值然后计算出电阻值R,你需要用同样的方法计算温度传感器的阻值。
绘制出这个兼容温度传感器温度和电阻的关系图。
您可以用一个稍微复杂点的公式计算任何热敏电阻的电阻值,当β。
这两个参数,R25, and 是thermoelectrically 定义热敏电阻器具有所需的一切:
You can compute the resistance value of any thermistor by a rather complex equation, where β is related to the shape of the curve and R25 is the resistance at 25°. The two parameters, β and R25, are all that’s needed to thermoelectrically define a thermistor:。