基于气压传感器的高度测量系统设计_第1页
基于气压传感器的高度测量系统设计_第2页
基于气压传感器的高度测量系统设计_第3页
基于气压传感器的高度测量系统设计_第4页
基于气压传感器的高度测量系统设计_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于气压传感器的高度测量系统设计摘要: 本文介绍了一种基于气压传感器的高度测量系统设计。系统通过Arduino 微控制器读取传感器BMP085勺温度、气压值及温度补偿校正参数;利用温度、气压和海拔高度的关系结合软件编程及插值优化计算出海拔高度或相对海拔高度;在LED屏上显示当前温度、气压、海拔高度或相对海拔高度值。整个系统集传感器和微控制器一体,具有结构精简、灵敏度高、低功耗、体积小、智能化、操作简单等特点。关键词: 气压传感器、 线性插值 、 高度测量0 引言当前对海拔高度的测量主要的方式有利用GPS勺测量,采用仪器的测量和基于气压的海拔高度测量三种方式。 GPS 精度能达到要求但成本较高;

2、仪器的测量因体积大携带不方便;相比较而言,采用微控制器的基于气压传感器高度测量系统在灵敏度、体积、成本、智能性等方面更符合实用要求。该系统采用 Arduino 微控制器利用温度、气压值等传输参数经过处理后将大气压值转换成海拔高度值。经实验得出该系统得到的数据能够满足实际需求, 在便携气象仪系统、 低空飞行器系统、 气象控制系统等诸多领域有广泛的应用前景。1 系统硬件设计系统硬件部分由Arduino微控制器、供电本g块、LED显示模块、数字气压传感器BMP085以及外围电路组成。如图 1 所示:图 1 气压高度计硬件系统框图气压传感器BMP085!过IIC总线接口和微控制器 Arduino相连,

3、从而将温度、气压数据传送到微控制器,经过软件编程将微控制器获得的数据处理得到当前海拔高值或相对海拔高度值,将处理后相对精确的数据值再由显示器输出。系统的硬件接口布线如下:,GND-GND,SDA-Arduinno SDA,SCL-Arduino SCL2 . 1602:,Vss-GND,VL-R(10KQ)-GND,RS-Arduino D12,R/W-Arduino D11,E-Arduino D2,D0D7-Arduino D3D10,BLK-GND1.1 Arduino mega2560 微控制器微控制器是整个系统的控制核心,负责操作按键、传感器数据的采集、数据运算处理、显示器驱动等。本

4、气压高度计系统选用Arduino mega2560敢控制器芯片 , 该芯片 由 意大利 Arduino 公司 出 品一个开放 源代码 的硬件组 成。 兼容 ATmega168/328/2560系列内核,带有54个数字I/O 口(其中14个提供PWlMu出),16个模 拟I/O 口,4对串行数据通信(UART, 8KBSRAM?储,4KB EEPROM储,256KB闪存(其 中8KB用于引导程序),支持和5V供电以及IIC总线通信和增强型SPI串行接口,能很方 便地与外围设备进行通信。外围供电电压在5V-12V 之间,本系统采用9V 电源。1.1 数字气压传感器BMP085数字气压传感器BMP0

5、8犯一款高精度、超低能耗的压力传感器,可以应用在移动设备中。它内部由控制单元、 A/D 转换模块、数据存储单元、 8-pin 陶瓷无 引线芯片承载(LCC超薄封装。传感器通过 A/D转换模块以最高128次/s的速率对温度 气压的模拟值采样转换成数字信号,控制单元读取存储器EEPROM11个补偿参数和温度系数等。完成采样后将数据通过IIC 总线传送给微控制器,经过计算得到当前的温度值和气压值。数字气压传感器的主要特点:压力范围:3001100hPa(海拔-500米到9000米) ;电源电压:(VDDA)(VDDD);高精度:低功耗模式下,分辨率为米);高线性模式下,分辨率为米)输出显示器输出电路

6、部分采用标准的 1602液晶显示器。它是一种将液晶显示器、控制集成电路、PCB®、背光源、结构件装备在一起的集合。如图 2 所示:2 标准 1602 液晶模块主要参数:DO- D7数据口、R/W读写选择、RS数据/命令寄存器选择、BLA/BLK背光正/负 极、VDDfe源、VSS电源地、VL液晶显示偏压。2 系统软件设计系统模块化结构,主要有微控制上的复位按键,系统初始化,读 EEPRO脚的数据温度和气压值,软件滤波处理,气压海拔高度转换,输出到显示器等程序,主程序是循环方式工作。系统流程图如图 3 所示:3 系统软件设计流程图系统初始化首先系统进行微控制器启动,对系统I/O 口、波

7、特率、时钟等进行设置;系统初始化完成之后,Arduino mega2560微控制器按照IIC协议读取BMP085气压传感器中存放在EEPROMP的11个16位数据组成的温度补偿校正参数,每只传感器有着唯一的温度补偿校正参数;经过温度补偿校正参数和软件插值优化以后得到当前温度、大气压值,进而计算得出所对应的海拔高度值或相对海拔高度值,并将温度、海高度值有效信息送入显示器输出。温度和气压的补偿系统初始化后对气压传感器BMP085S行操作,微控制器Arduino mega2560等传感器 EEPROMP 的 11 个 16 位数据组成的补偿参数,ac1,ac2,ac3,ac4,ac5,ac6,b1,

8、b2,mb,mc,md 分别读取出来为温度补偿准备。此时,再对当前传感器采样模式为oss=oa行原始未补偿温度数据(UP和原始未补偿的大气压力数据(UB的读取操作。再利用数字气压芯片的 补偿算法对大气压值进行温度补偿,得到当前温度值(temp)和大气压力值(p)。主要算 法程序流程如下:float bmp085GetTemperature(unsigned long ut)float x1,x2;x1=(long)ut-ac6)*ac5)>>15;x2=(long)mc<<11)/(x1+md);b5=x1+x2;float temp=(b5+8)>>4);

9、temp=temp/10;return temp;float bmpO85GetPressure(unsigned long up)long x1,x2,x3,b3,b6,p;unsigned long b4,b7;b6=b5-4000;/Calculate B3 belowx1=(b2*(b6*b6)»12)»11;x2=(ac2*b6)»11;x3=x1+x2;b3=(long)ac1)*4+x3)«OSS)+2)»2; /Calculate B4 belowx1=(ac3*b6)»13;x2=(b1 *(b6*b6)»

10、12)»16;x3=(x1+x2)+2)»2;b4=(ac4*(unsigned Iong)(x3+32768)»15;b7=(unsigned long)(up-b3)*(50000»OSS);if(b7<0x)p=(b7«1)/b4;elsep=(b7/b4)<<1;x1=(p>>8)*(p>>8);x1=(x1*3038)>>16;x2=(-7357*p)>>16;p+=(x1+x2+3791)>>4;return p;海拔高度计算数字气压传感器BMP085X寸

11、气压海拔高度提供了参考公式,利用该公式配合传感器采集到的气压值以及温度补偿值较好地得出海拔高度,公式如下Altitude=44330*1-(p/P0)A(1Z(1)式中 Altitude 是以米( m) 为单位的海拔高度值; p 以 Pa 为单位的当前某一高度的大气压值;P0为15 C时101325Pa海平面标准大气压值。将其值代入方程计算得到相应海拔高度(纵坐标mj)和大气压(横坐标Pa)关系曲线。如图4所示:图 4 大气压和海拔高度曲线关系图从图 4 中可以看出:大气压和海拔高度在0 到 6000 米之间几乎成线性关系,但随着变化关系比较复杂,微处理器直接计算算法程序复杂、速度慢、资源占用

12、较多。因此,在实际设计过程中,在系统允许误差范围内对原始数据进行插值优化处理,假设系统输入为 p,并且p(i)<p<p(i+1)时,在此区间内可近似认为系统的输入/输出的关系为线性关系P(p)=a0+a1*p,其插值公式为:P(p尸y(i)+(y(i+1)-y(i)/(p(i+1)-p(i)(2)国际标准大气压数据表记录了 -10020000m之间每隔一段高度所对应的气压值。每个 气压数据p(i)和所对应高度数据点y(i),P(p)为系统要测量的高度值。将数据离散化制作 成一个大气压值和海拔高度值对应查询表,并放入到微控制器内存中,再根据测量得到的 大气压值进行查表,从而确定对应的

13、海拔高度值。3实验结果基于该系统于14年11月12让下午5时对某楼层楼层高度测量,并多次测量取海拔高 度值并计算得出相对海拔高度值并与实际值比较,实验所得数据结果如下表1所示。对象楼层 、楼道温度值/ C楼道气压值/Pa测量相对地面高度值/m与真实楼层高误差绝对值/m2楼3楼4楼5楼6楼表 1 实验数据结果由上表 1 可看出楼层相对地面海拔高度平均误差为。 实验测量结果表明该系统测量值和真实值差距在误差范围()内,效果良好,基本满足了测量要求。4 结束语实验结果表明本文设计实现了计算海拔高度或相对海拔高度的测量。基于气压传感器BMP08吸微控制器通过简单的电路和有效的软件算法技术处理,具有较高

14、的灵敏度和稳定性,适用于精度比较高,体积小,成本低,操作简单的设备中。本文研究结果在实际生活中具有广泛的应用前景。参考文献 :1 ; Simon Monk; 30 Arduino Projects for the Evil Genius; 2010 by The McGraw-HillCompanies。2 ; Michael McRoberts ; Beginning Arduino ; 2010 by Michael McRoberts 。3 程晨,Arduino 开发实战指南,机械工业出版社。4殷希梅,杨维,程洪涛;基于 BMP08嗷字气压传感器的弹上高度测量系统设计;弹箭与制导学报2013 年 8 月。5王俊彩,王福平,候

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论