【Android论文栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了Android论文-基于Android平台的传感器研究 - 其它资料的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
基于
Android 平台的传感器研究 信工 081 (10083385)唐嘉顺摘要:
Android 是一个面向应用程序开发的富平台,它拥有许多具有吸引力的用户界面元素和数据管理功能。
Android 还提供了一组丰富的接口选项。
传感器作为
Android 系统中十分重要的一环有其不可忽视的重要性。
在本文中,了解
Android 的各种传感器的作用和原理,从而全方位的了解
Android,对开发
Android 有更多感性和理性上的认识。
关键词:
Android 平台,传感器 1 研究背景
Android及传感器 互联网巨头Goole公司于2007年11月5日推出了全新的嵌入式软件平台——
Android,该平台由操作系统、中间件、用户界面以及应用软件组成,是一个真正开放的移动应用开发平台。
2007年11月初,Goole与其他33家手机厂商、软硬件供应商、手机芯片供应商、移动运营商联合组成了开放手机联盟(Open Handset Alliance),发布了名为
Android的手机软件平台, 并宣布该平台完全开放。
同时G哦哦了希望
Android平台成为一套标准化、开放式的移动嵌入式软件平台。
Android 优于其他嵌入式软件平台的一个方面就是方便的支持多种传感器,可以感应包括手机姿态、加速度、磁场、光强、温度、压力等多种物理量的 在变化。
传感器应用也是目前比较热门的技术,
Android 平台下开发基于传感器的应用也比较方便,只需要在程序注册相应的传感器监听器即可。
由于
Android 系统具有开发性、平等性、无界性以及方便性等优点,所以很快就被业界所接受。
从 2008 年初开始,越来越多的开发人员投身到
Android应用开发当中。
而
Android 系统的一大亮点就是传感器的使用,利用传感器可以开发出很多新奇有趣的应用程序。
例如计步器、水平仪,甚至在很多游戏中都可以使用传感器来操作游戏。
传感器的种类有很多种, 其中包括加速度传感器、姿态传感器、磁场传感器、温度传感器以及光传感器等。
Android采用了软件层叠的架构. 包括以Linux为核心的底层、 以函数库和虚拟机为主的中间层以及以应用为主的上层。
底层和中间层主要由C或C开发,上层应用主要由Java编写。
随着
Android的快速发展,如今已允许开发者使用多种编程语言来开发
Android应用程序,而不再是以前只能使用Java开发
Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
2 文献综述 2.1
Android 传感器的介绍 1.加速度传感器 加速度传感器又叫 G—sensor,返回 x、y、z 三轴的加速度数值。
该数值包含地心引力的影响,单位是 m/s2。
将手机平放在桌面上,x 轴默认为 0,y 轴默认为 0,z 轴默认 9.81 将手机朝下放在桌面上,z 轴为-9.81 将手机向左倾斜,x 轴为正值。
将手机向右倾斜,x 轴为负值。
将手机向上倾斜,y 轴为负值。
将手机向下倾斜,y 轴为正值。
加速度传感器可能是最为成熟的一种 mems 产品,市场上的加速度传感器种类很多。
手机中常用的加速度传感器有 BOSCH(博世)的 BMA 系列,AMK、的 ST897X 系列, 的 LIS3X 系列等。
这些传感器一般提供±2G 至±16G 的加速度测量范围,采用 I2C 或 SPI 接口和 MCU 相连,数据精度小于 16bit。
2.磁力传感器 磁力传感器简称为 M-sensor,返回 x、y、z 三轴的环境磁场数据。
该数值 ,的单位是微特斯拉(micro-Tesla) 用 uT 表示。
单位也可以是高斯(Gauss) ,1Tesla10000Gauss。
硬件上一般没有独立的磁力传感器, 磁力数据由电子罗盘传感器提供(E-compass) 。
电子罗盘传感器同时提供下文的方向传感器数据。
3.方向传感器 方向传感器简称为 O-sensor,返回三轴的角度数据,方向数据的单位是角度。
为了得到精确的角度数据,E-compass 需要获取 G-sensor 的数据,经过计算生产 O-sensor 数据,否则只能获取水平方向的角度。
方向传感器提供三个数据,分别为 azimuth、pitch 和 roll。
azimuth:方位,返回水平时磁北极和 Y 轴的夹角,范围为 0°至 360°。
0°北,90°东,180°南,270°西。
pitch:x 轴和水平面的夹角,范围为-180°至 180°。
当 z 轴向 y 轴转动时,角度为正值。
roll:y 轴和水平面的夹角,由于历史原因,范围为-90°至 90°。
当 x 轴向 z 轴移动时,角度为正值。
4.陀螺仪传感器 陀螺仪传感器叫做 Gyro-sensor,返回 x、y、z 三轴的角加速度数据。
角加速度的单位是 radians/second。
根据 Nexus S 手机实测:水平逆时针旋转,Z 轴为正。
水平逆时针旋转,z 轴为负。
向左旋转,y 轴为负。
向右旋转,y 轴为正。
向上旋转,x 轴为负。
向下旋转,x 轴为正。
ST 的 L3G 系列的陀螺仪传感器比较流行, iphone4 和 google 的 nexuss 中使用该种传感器。
5.光线感应传感器 光线感应传感器检测实时的光线强度,光强单位是 lux,其物理意义是照射到单位面积上的光通量。
光线感应传感器主要用于
Android 系统的 LCD 自动亮度功能。
可以根据采样到的光强数值实时调整 LCD 的亮度。
6.压力传感器 压力传感器返回当前的压强,单位是百帕斯卡 hectopascal(hPa) 。
7. 温度传感器 温度传感器返回当前的温度。
8.接近传感器 接近传感器检测物体与手机的距离, 单位是厘米。
一些接近传感器只能返回远和近两个状态,因此,接近传感器将最大距离返回远状态,小于最大距离返回近状态。
接近传感器可用于接听电话时自动关闭 LCD 屏幕以节省电量。
一些芯片集成了接近传感器和光线传感器两者功能。
下面三个传感器为
Android 新推出的传感器类型 9.重力传感器 重力传感器简称 GV-sensor,输出重力数据。
在地球上,重力数值为 9.8,单位是 m/s2。
坐标系统与加速度传感器相同。
当设备复位时,重力传感器的输出与加速度传感器相同。
10.线性加速度传感器 线性加速度传感器简称 LA-sensor。
线性加速度传感器是加速度传感器减去重力影响获取的数据。
单位是 m/s2,坐标系统与加速度传感器相同。
加速度传感器、重力传感器和线性加速度传感器的计算公式如下:加速度 重力 线性加速度 11.旋转矢量传感器 旋转矢量传感器简称 RV-sensor。
旋转矢量代表设备的方向,是一个将坐标轴和角度混合计算得到的数据。
RV-sensor 输出三个数据: xsintheta/2 ysintheta/2 zsintheta/2 sintheta/2是 RV 的数量级。
RV 的方向与轴旋转的方向相同。
RV 的三个数值,与 costheta/2组成一个四元组。
RV 的数据没有单位,使用的坐标系与加速度相同。
2.2 传感器仿真平台 Eclipse 已经开发语言 Cjava Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(JavaDevelopment Tools,JDT) 。
Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由 Eclipse 项目、Eclipse 工具项目和 Eclipse 技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT 和 PDE。
JDT 支持 Java 开发、CDT支持 C 开发、PDE 用来支持插件开发,Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台。
它提供建造块和构造并运行集成软件开发工具的基础。
Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束 ,而另一 个工具功能在哪里开始。
2.3 开发步骤: 1. 获 取 传 感 器 服 务 : sm ( SensorManager ) get System Service(Sensor_Service) 2.获取指定类型的传感器 sm.get Default Sensorint.type 3.一般在 Activity 的 on Resume()方法中使用 Sensor Manger 的register listener()为指定的传感器注册监听器即可。
sm.register Listenerlisteners1Sensor Manager.SENSOR_DELAY_GAME//最后一个参数为监听频率。
在 Listener 中的 SensorEvent 对象的 values 方法返回 float包含不同传感器返回的数据值,对于不同的传感器,返回值的个数是不一样的。
3 技术路线3.1 课题分析3.1.1 研究背景
Android 以及其传感器在近几年的发展中已经成为一个研究的热点,这方面已有一定的研究成果和文献可供参考。
3.1.2 主要研究内容 在本次毕业设计中,通过网络以及各种实践经历对
Android 的各种传感器有清晰的认识和理解吗,并且通过在对传感器的了解中获得对整个
Android系统更深更全面的认识,从而对自己的能力进行锻炼和完善。
3.2.研究内容安排3.2.1
Android 传感器建模认识 通过对
Android 开发水平仪的仔细分析和认识,对
Android 的开发平台之一——Eclipe 进行全面理解和认识,从而了解
Android 传感器的开发过程以及平台。
包括开发前怎么准备,开发环境的搭建,以及开发所需要的语言知识。
3.2.2 深入了解
Android 通过上阶段的分析,对
Android 应该整体有一个比较完整的认识,此时应该通过实验来加深理解,以传感器入手,对
Android 整体进行分析和把握,并且尽量把自己的一些想法归于实践3.2.3 其他 在毕设进行过程中,可能会对以上的某个或某些部分进行一定的拓展与进一步的分析研究。
并根据实际情况,适当调整
论文的内容安排与分布。
4 进度安排 整个毕业设计阶段的日程安排如表 4.1 所示 表 4.1 毕业设计日程安排 阶段 日期 内容 第一阶段 2012.01~2012.02 理解课题任务,查阅资料 第二阶段 2012.02~2012.03 进行课题设计,达到基本要求 第三阶段 2012.03~2012.05 综合调试,实现任务目标 第四阶段 2012.05~2012.06 撰写
论文说明:以上是大致时间安排,具体进度可能按实际情况进行调整。
5 参考文献1 康凤举. 现代仿真技术与应用M . 北京: 国防工业出版社, 2003.2 龚卓蓉. Vega 程序设计M . 北京: 国防工业出版社,2002.3 王乘, 周均清 李利军. Creator 可视化仿真建模技术M . 武汉: 华中科技大学出版社, 2005.4 孟晓梅, 刘文庆. Multigen Creator 教程M . 北京: 国防工业出版社, 2005.5Mirats Tur Josep M. ,Pfeiffer Carlos F.Mobile robotdesign in education.IEEE Robotics and AutomationMagazine,2006,131:69—75.6徐玉,韩波,李平.基于 AVR 的舵机控制器设计.工业控制计算机,200411:38—40.7Dautenhahn,Kerstin.Methodology and themes of human—robot interaction:A growing research field.International Journal of Advanced Robotic Systems,2007,41:103—108.8韩大鹏,韦庆.机器人控制器的一种模块化设计方法.微计算机信息测控自动 445,20055:3—4.9马潮,詹前卫,耿德根.ATmega8 原理机及应用手册.第 5 版,北京:清华大学出版社,2003:7—8.10胡林.高精度舵机控制器的研制硕士学位
论文.西安:西北工业大学。
2006.11周鹏,张小刚,王志勇.分时操作系统在单片机编程中的实现.塔里木农垦大学学报,20041:25—28.12 Kim Jung—Hoon,Kim Jung—Yup,Oh Jun—Ho.Adjustmentof home posture of biped humanoid robot usingsensory feedback contr01.Journal of Intelligent and RoboticSystems:Theory and Applications,2008,5 14:421—438.13王宏杰,丁国清,颜国正,林良明.机器人与计算机之间的通信编程.计算机