




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AndroidSENSORS设备驱动解析 赵振国2011 06 23 概述 Accle compass gyrofunctionSensorskerneldriverSensorsmattestSensorscalfileSensorshalusb Accle加速度 加速度传感器是一种能够测量加速力的电子设备 原理 当有加速度 由于这个变形会产生电压 只要计算出产生电压和所施加的加速度之间的关系 就可以将加速度转化成电压输出 功能 电脑里就内置了加速度传感器 能够动态的监测出笔记本在使用中的振动 并根据这些振动数据 系统会智能的选择关闭硬盘还是让其继续运行 最大程度的保护里面的数据 目前用的数码相机和摄像机里 也有加速度传感器 用来检测拍摄时候的手部的振动 自动调节相机的聚焦 Accle特性 最大测量值 如果你只要测量机器人相对于地面的倾角 那一个 1 5g加速度传感器就足够了 但是如果你需要测量机器人的动态性能 2g也应该足够了 要是你的机器人会有比如突然启动或者停止的情况出现 那你需要一个 5g的传感器 灵敏度 一般来说 越灵敏越好 越灵敏的传感器对一定范围内的加速度变化更敏感 输出电压的变化也越大 这样就比较容易测量 从而获得更精确的测量值 带宽 这里的带宽实际上指的是刷新率 也就是说每秒钟 传感器会产生多少次读数 对于一般只要测量倾角的应用 50HZ的带宽应该足够了 但是对于需要进行动态性能 比如振动 你会需要一个具有上百HZ带宽的传感器 compass 电子罗盘 也叫数字指南针 是利用地磁场来定北极的一种方 三维磁阻传感器用来测量地球磁场 倾角传感器是在磁力仪非水平状态时进行补偿 MCU处理磁力仪和倾角传感器的信号以及数据输出和软铁 硬铁补偿 GPS信号进行有效补偿 保证导航定向信息100 有效 即使是在GPS信号失锁后也能正常工作 做到 丢星不丢向 磁力仪是采用三个互相垂直的磁阻传感器 每个轴向上的传感器检测在该方向上的地磁场强度 向前的方向称为x方向的传感器检测地磁场在x方向的矢量值 向左或Y方向的传感器检测地磁场在Y方向的矢量值 向下或Z方向的传感器检测地磁场在Z方向的矢量值 每个方向的传感器的灵敏度都已根据在该方向上磁场的分矢量调整到最佳点 并具有非常低的横轴灵敏度 传感器产生的模拟输出信号进行放大后送入MCU进行处理 通过采用12位A D 单位 T Compass校正 仅用地磁场在X和Y的两个分矢量值便可确定方位值 Azimuth arcTan Y X 该关系式是在检测仪器与地表面平行时才成立 当仪器发生倾斜时 方位值的准确性将要受到很大的影响 该误差的大小取决于仪器所处的位置和倾斜角的大小 为减少该误差的影响 采用加速度传感器来测量俯仰和侧倾角 这个俯仰角被定义为由前向后方向的角度变化 而侧倾角则为由左到右方向的角度变化 电子罗盘将俯仰和侧倾角的数据经过转换计算 将磁力仪在三个轴向上的矢量在原来的位置 拉 回到水平的位置 标准的转换计算式如下 Xr Xcos Ysin sin Zcos sin Yr Xcos Zsin 这里Xr和Yr为要转换到水平位置的值 为俯仰角 为侧倾角 Gyroscope 原理 一个旋转物体的旋转轴所指的方向在不受外力影响时 是不会改变的 人们根据这个道理 用它来保持方向 制造出来的东西就叫陀螺仪 陀螺仪在工作时要给它一个力 使它快速旋转起来 一般能达到每分钟几十万转 可以工作很长时间 然后用多种方法读取轴所指示的方向 并自动将数据信号传给控制系统 功能 用于飞行体运动的自动控制系统中 作为水平 垂直 俯仰 航向 以及角速度 陀螺仪被广泛用于航空 航天和航海领域 作为驾驶和领航仪表使用 单位 dps 3轴示意图 mpu3050 Kernel driver 1 dev mpudriver misc mpu3050 accle compassinclude linux h设备是以misc方式注册 支持多种accle compass芯片 需要哪种芯片 将相应的config配置打开 m902boardconfig即m902 c需要包含相应的头文件 加入kernel需要修改kconfig makefile m902 defconfig 以及board c Kernel driver 2 staticstructmpu3050 platform datampu3050 data orientation 0 1 0 1 0 0 0 0 1 accel get slave descr bma150 get slave descr adapt num 0 bus EXT SLAVE BUS SECONDARY address 0 x38 orientation 1 0 0 0 1 0 0 0 1 compass get slave descr get compass slave descr adapt num 0 bus EXT SLAVE BUS PRIMARY address 0 x0C orientation 1 0 0 0 1 0 0 0 1 Kernel driver 3 配置这里加入了accle compass 其中包括了i2c总线配置 adapt num配置 address地址配置 方向配置 方向配置 以手机坐标x y z为基准坐标 作相应的更改 主要是芯片放置位置 Z轴可能向上 也可能向下 需要作相应的更改 对矩阵进行调节 坐标转换 Sensormat 1 对设备直接读取数据 在read中加入log 直接在设备下cat dev xxx 2 作为input设备 读取input上报数据 如OMS系统sensors都是以input接口上报 3 用ioctl读取数据 对mpu设备进行使能 resume 读取数据寄存器 需要对数据进行转化 不同的ADC 高位低位不同 需要熟悉不同芯片的datasheet Sensormat mpu 1 gyro mpu305016位2500dpscompass ak8975c13bit 0 3 T LSB accle bma02310bitADC这部分iocrl直接加入如 defineMPU READ COMPASS 0 x46 有 defineMPU READ ACCEL 0 x47 无 defineMPU READ GYRO 0 x48 无 Sensormat mpu 2 加入部分只对MAT有效 不会影响手机正常使用 数据处理算法需要自己测试 测试ok后给MAT MATCOPY加入 Kernel MAT 设备名称 ioctl接口命令 数据处理算法 调试中底层建议加入log 方便MAT调试 数据处理算法 一般由上层处理 如一些浮点运算 Sensorcal gsensor gyroandroidgsensor数据水平方向是以 0 0 9 8 上报的 androidgyro水平放置时 0 0 0 由于pcb芯片受焊接等外界因素影响 手机水平放置是有一定偏差的 由于手机偏差的不一致性 每台手机都必须校准 校准算法 让手机水平放置 检测数据 读取多次数据 算出平均值 以此作为base值 或者和标准数据比较 求出offset值 Sensorcal mpu MAT调用一个test bin文件 生成 data cal bin 包括有gsensor gyro基准值 test bin主要是多次读取数据 一般读取10 20次 由于校准文件特殊性 主清除后数据不能丢失 recovery后有效 因此将cal bin数据必须写入到NVM中 即手机recovery后 数据可以重新读取 在mpld初始化时会调用cal bin数据 因此开机需要读取nvm中的数据存储到cal bin中 可以修改cal bin文件路径 需要修改so库 Compasscal compass校准原理 原则上尽量多的让设备法线方向指向空间的所有8个象限 如图14所示 测量值组成的空间几何结构实际上是一个圆球 所有的采样点都落在这个球的表面上由于地球磁场在一般情况下只有微弱的0 5高斯 而一个普通的手机喇叭当相距2厘米时仍会有大约4高斯的磁场 一个手机马达在相距2厘米时会有大约6高斯的磁场 这一特点使得针对电子设备表面地球磁场的测量很容易受到电子设备本身的干扰 底层不需要处理 都用 8 字校准 主要是求出磁场干扰 这种情况下 可以通过足够的样本点求出圆心O x y z 即固定磁场干扰矢量的大小及方向 Sensorshal 主动上报accle input report abs data input dev ABS X rbuf 6 gyro input report abs data input dev ABS HAT0X rbuf 9 compass input report abs data input dev ABS RX rbuf 0 Poll时间一般为200 300ms hal层主动读取数据 Daemon mpld mpld会调用库里的cal函数对数据先进行校准 gyro handleraccel handlercompass handlerorien handler调用欧拉角3个库文件libmlplatform so包括有读取cal bin文件存放路径和读取函数libmllite so算欧拉角库文件libmpl so关于mpl库文件 AndroidOrientation Orientationyaw pitch rollheading yaw android定义角度范围Yaw角度 0 360Pitch角度 180 180roll角度 90 90 欧拉角 欧拉角Eulerianangles用来确定定点转动刚体位置的3个一组独立角参量 由章动角 旋进角 即进动角 和自转角j组成对于在三维空间里的一个参考系 任何坐标系的取向 都可以用三个欧拉角来表现 Usbdriver adbimeiimei是手机设备唯一标识 在adbstring加入iemi 从nvm读取 usbcompositeadb ums marvel更改后 将有关的usbdriver进行不同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025瓷砖产品进出口贸易代理合同
- 2025年度特色订餐服务合同范本
- 2025版高标准预制砌块施工合同
- 2025年多媒体短信息服务合同五
- 2025产品陈列与售后服务合作协议
- 2025年度三七药材种植户贷款担保与购销合同
- 2025常用合同系列之动漫游戏行业劳动合同范本
- 诸城市2024-2025学年中考试题猜想数学试卷含解析
- 养老机构医养结合模式下的养老产品创新与研发报告
- 海洋风力发电市场前景:2025年海上风能资源评估与发展研究报告
- 2025年事业单位工勤技能-河南-河南农业技术员一级(高级技师)历年参考题库含答案解析(5卷套题【单选100题】)
- (新教材)2025年秋期人教版二年级上册数学核心素养教案(第2单元)(教学反思有内容+二次备课版)
- (高清版)DB34∕T 5154-2025 基于云制造的工业互联网架构要求
- 党校中青班入学考试试题及答案
- 三支一扶培训
- 2025年中国儿童游乐设施产业深度调研与投资机遇研究报告
- 新生儿42天体检要点解析
- 煤矿联网课题题目及答案
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人笔试参考题库附带答案详解析集合
- T/CASTEM 1007-2022技术经理人能力评价规范
- 初中七年级数学备课组科研合作计划
评论
0/150
提交评论