1、噪声传感器采集实验
一、 实验目的及内容
了解噪声传感器的工作原理和对噪声的采集过程,掌握针对一个噪声传感器进行传感器数据采集的过程。
二、 实验原理及基本技术路线图(方框原理图或程序流程图)
本实验是对声音信号采集实验,噪声传感器正是由于传感器内置一个对声音敏感的电容式驻极体话筒,声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压,从而实现光信号到电信号的转换。
噪声传感器正是由于传感器内置一个对声音敏感的电容式驻极体话筒,驻极体面与背电极相对,中间有一个极小的空气隙,形成一个以空气隙和驻极体作绝缘介质,以背电极和驻极体上的金属层作为两个电极构成一个平板电容
2、器。电容的两极之间有输出电极。由于驻极体薄膜上分布有自由电荷。当声波引起驻极体薄膜振动而产生位移时;改变了电容两极版之间的距离,从而引起电容的容量发生变化,由于驻极体上的电荷数始终保持恒定,根据公式:Q =CU 所以当 C 变化时必然引起电容器两端电压 U 的变化,从而输出电信号,实现声音信号到电信号的变换。具体来说,驻极体总的电荷量是不变,当极板在声波压力下后退时,电容量减小,电容两极间的电压就会成反比的升高,反之电容量增加时电容两极间的电压就会成反比的降低。最后再通过阻抗非常高的场效应将电容两端的电压取出来,同时进行放大,从而可以得到和声音对应的电压了。由于场效应管时有源器件,需要一定
3、的偏置和电流才可以工作在放大状态,因此,驻极体话筒都要加一个直流偏置才能工作。
噪声传感器输出的电压信号经CC2530内的ADC转换后可以经串口助手实现数字量输出。
由于芯片CC2530含有ADC,因此实验可以很容易将采集到的信号进行模拟量到数字量的转换。A/D 转换器 (ADC)的型式有很多种,方式的不同会影响测量后的精准度。
A/D 转换器按照转换原理可分为直接 A/D 转换器和间接 A/D 转换器。所谓直接 A/D 转换器,是把 模拟信号直接转换成数字信号,如逐次逼近型,并联比较型等。其中逐次逼近型 A/D 转换器,易于用集成工艺实现,且能达到较高的分辨率和速度,故目前集成化 A/
4、D 芯片采用逐次逼近型者多;间接 A/D 转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压/时间转换型(积分型),电压/频率转换型,电压/脉宽转换型等。 其中积分型 A/D 转换器电路简单,抗干扰能力强,且能作到高分辨率,但转换速度较慢。 有些转换器还将多路开关、基准电压源、时钟电路、译码器和转换电路集成在一个芯片内,已超出了单纯 A/D 转换功能,使用十分方便。
而在CC2530中含有的ADC支持7到12位的分辨率,分别在30kHz或4kHz的带宽。输入方式可选择作为单端或差分,参考电压可以是内部电压,AVDD或是一个单端或是差分外部信号。
完成噪声传感采集实验的程序流程图,如
5、下图1所示。
图1. 噪声传感器采集实验流程图
三、 所用仪器、材料(设备名称、型号、规格等或使用软件)
1. 带有 CC2530 芯片的基站一个
2. 烧录线一根
3. 噪声传感器一个
4.PC机
5.TinyOS开发环境
6.串口助手
四、实验方法、步骤(或:程序代码或操作过程)
1. 将基站同电脑用烧录线连接好,打开基站的开关
2. 用串口线将基站和 PC 机器连接起来
3. 打开串口助手
4. 打开 Cygwin 开发环境
5. 在 Cygwin 开发环境中执行/opt/atos/apps/Demos/ sensor/
6. 将光传感器插在基站的旁边的
6、插槽。
7. 在该目录下执行 make antc5 install,进行软件的编译和烧录
8. 烧录完成后,重启基站,看串口输出,如下图2所示。
图2. 串口输出界面
程序中的主要源代码如下所示:
#include "SensorCollection.h"
#define DBG_LEV 9
module ADSensorP
{
uses
{
interface Boot;
interface AdcControl as ADSensorControl;
interface Read as ADSensorRead;
}
}
imple
7、mentation
{
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
8、 SensorTimer.fired()
{
post sensorTask();
}
event void ADSensorRead.readDone(error_t result, int16_t val)
{
ADBG(DBG_LEV, "AD Data = %04x\n" ,val);
}
}
五、 实验过程原始记录( 测试数据、图表、计算等)
实验中通过在噪声传感器附近放置一个手机音乐播放器,通过调节音量来改变声音信号的强弱,从而得到如表1所示数据。
声音信号
强 弱
AD Data
653c
651c
6500
64fc
6498
6490
647c
63f8
63b4
表1. 实验过程原始记录
六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)
从实验过程中的原始记录可以看到,随着声音信号由强变弱,输出数据结果变小。由于不能严格的控制声音信号,使其按线性变化变化,因此,实验结果中数据的数据变化也不是按线性变化,但从实验的整体结果可以看出,输出数据随声音的减弱而减小。