光敏传感器实验
一、 实验目的
了解光敏传感器工作的过程,掌握针对一个光敏传感器实验的过程,深入了解其工作的机制,并且学会使用ATOS平台来进行烧录数据的操作,掌握TinyOS的基本操作方法。
二、 实验原理及基本技术路线图(方框原理图)
首先是开发平台的选择,对于传感器实验,我们选取的开发平台是ATOS。
ATOS 综合实验平台提供了一个完整的传感网实验平台,如图 1.1.1。在这个 平台中主要包括无线传感网节点、基站板、传感器模块。下面将简单介绍每个一模块的功能。
下面则是传感器模块以及基站板的介绍:
传感器模块是将物理世界的信息进行量化的设备,是 ATOS 实验平台中采集 数据的基本来源,传感器根据采集对象的不同,分为 A/D 式传感器及开关传感 器,ATOS 实验平台支持多达十几种传感器,使用统一连接的方式,方便使用和 替换。
基站板(或称为网关板),是 ATOS 实验平台中用于采集节点数据、烧录程 ATOS 实验平台–使用指南 4 序,以及串口通讯的多功能设备。在该平台上,在底板上已经实现每个基本节点 都可以通过基站统一烧录,不再需要用在线烧录器单独连接某个节点。 基站板上有一个射频模块连接插槽,一个传感器模块连接插槽,一个 USB 烧录线接口,USB 转串行接口以及一个标准串口。
软件:
ATOS 实验平台主要以 TinyOS 操作系统为软件平台,并在其之上扩展了许 多的应用开发中常用的组件,通过 ATOS 实验平台及其配套的组件可以快速的构 建自己的应用,而无需深入了解硬件相关的操作,这对于进行理论研究和学习原 理性知识减少了许多障碍。
下面将进行传感器原理的简介:
首先光敏传感器的核心元件就是光敏电阻,其原理如下:
光敏电阻是一种光电效应半导体器件,它能提供很经济实用的解决方案,应用于光存在 与否的感应(数字量)以及光强度的测量(模拟良)等领域。 光电效应半导体探测器可以分为两大类:结和体效应装置。结装置,工作于光电传导模 式,它利用 PN 结的反向特征。在反向偏转时,PN 结产生一个受光控制的电流信号。输出量 与触发照明成正比,而不受供应电源的影响。硅光电管就是这类的产品。而体效应光电半导 体没有结,它的体电阻系数随照明强度的增强而减小,容许更多的光电流流过。这种阻性特 征使得体效应光电半导体具有很好的品质:通过调节供应电源就可以从探测器上获得信号流, 且有着很宽的范围。为了区别,珀金埃尔默光电子将体效应光电半导体称作为光电半导体单 元,简单的说就叫光敏电阻。 光敏电阻是薄膜元件,它是由在陶瓷底衬上覆一层光电半导体材料。金属接触点盖在光 电半导体面下部。这种光电半导体材料薄膜元件有很高的电阻。所以在两个接触点之间,做 的狭小、交叉,使得在适度的光线时产生较低的阻值。
我们知道光敏电阻设计到了A/D转换的过程,因为电阻输出的是模拟量,而PC无法处理模拟量,因此为了能直接在PC端能看到数据,我们需要对于采集的数据进行A/D转换。
下面是A/D转换的原理:
A/D 转换器(Analog-to-Digital Converter)又叫模/数转换器,即是将模拟信号(电压或是电流的形式)转换成数字信号。这种数字信号可让仪表,计算机外设接口或是微处理机来加以操作或胜作使用。
A/D 转换器(ADC)的型式有很多种,方式的不同会影响测量后的精准度。
A/D 转换器的功能是把模拟量变换成数字量。由于实现这种转换的工作原理
和采用工艺技术不同,因此生产出种类繁多的A/D 转换芯片。
A/D 转换器按分辨率分为4 位、6 位、8 位、10 位、14 位、16 位和BCD
码的31/2 位、51/2 位等。按照转换速度可分为超高速(转换时间=330ns),次超高速(330~3.3μS),高速(转换时间3.3~333μS),低速(转换时间>330μS)
对应的计算机对于采集的数据进行操作是进过A/D转换后的值,因此其流程图如下:
三、 所用仪器、材料(设备名称、型号、规格等)
1.带有CC2530 芯片的基站一个
2. 烧录线一根
3. 光传感器一个
4.一台安装有 Cygwin开发平台的PC
5.若干串口线与USB连接线
四、 实验方法、步骤
1. 将基站同电脑用烧录线连接好,打开基站的开关
2. 用串口线将基站和PC 机器连接起来
3. 打开串口助手
4. 打开Cygwin 开发环境
5. 在Cygwin 开发环境中执行/opt/atos/apps/Demos/ sensor/ADSensor/
6. 在该目录下执行make antc5 install,进行软件的编译和烧录
7. 烧录完成后,将光传感器插在基站的旁边的插槽。
8. 重启基站,看串口输出,如下图。
五、 关键实验代码
#include “SensorCollection.h”
#define DBG_LEV 9
module ADSensorP
{
uses
{
interface Boot;
interface AdcControl as ADSensorControl;
interface Read as ADSensorRead;
interface Timer as SensorTimer;
}
}
implementation
{
uint8_t m_len;
task void sensorTask()
{
call ADSensorControl.enable(ADC_REF_AVDD, ADC_14_BIT, ADC_AIN4);
call ADSensorRead.read();
}
event void Boot.booted()
{
ADBG(DBG_LEV, “##############Boot.booted###################\n”);
call SensorTimer.startPeriodic(1000);
}
event void SensorTimer.fired()
{
post sensorTask();
}
event void ADSensorRead.readDone(error_t result, int16_t val)
{
ADBG(DBG_LEV, “AD Data = x\n” ,val);
}
}
六、 实验过程原始记录(数据、图表、计算等)
实验记录:
实验分析:
本次实验中,我发现当光照恒定时,传感器输出值是一定的,而用手捂住传感器,那么他输出的值会变小,同理用手机闪光灯照射后他的值会变大,同时如果使用闪光那么会有一个变大的值然后恢复恒定输出。
七、 总结和体会
这个实验通过基站的搭建,将光照信号转换成电压信号,完成一个AD 数据的采集,那么今后对自己扩展的AD 传感器的数据采集原理和这个实验是一样的。锻炼了对手能力,也对这个过程有了了解。