欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Android sensors设备驱动.ppt

    • 资源ID:60903610       资源大小:348.50KB        全文页数:26页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Android sensors设备驱动.ppt

    Android SENSORS设备驱动解析 赵振国2011.06.23概述 Accle&compass&gyro functionSensors kernel driverSensors mat testSensors cal fileSensors hal usbAccle加速度加速度传感器是一种能够测量加速力的电子设备。原理:当有加速度,由于这个变形会产生电压,只要计算出产生电压和所施加的加速度之间的关系,就可以将加速度转化成电压输出。功能:电脑里就内置了加速度传感器,能够动态的监测出笔记本在使用中的振动,并根据这些振动数据,系统会智能的选择关闭硬盘还是让其继续运行,最大程度的保护里面的数据。目前用的数码相机和摄像机里,也有加速度传感器,用来检测拍摄时候的手部的振动,自动调节相机的聚焦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+Ysinsin-Zcossin Yr=Xcos+Zsin 这里Xr和Yr为要转换到水平位置的值 为俯仰角 为侧倾角 Gyroscope原理:一个旋转物体的旋转轴所指的方向在不受外力影响时,是不会改变的。人们根据这个道理,用它来保持方向,制造出来的东西就叫陀螺仪。陀螺仪在工作时要给它一个力,使它快速旋转起来,一般能达到每分钟几十万转,可以工作很长时间。然后用多种方法读取轴所指示的方向,并自动将数据信号传给控制系统。功能:用于飞行体运动的自动控制系统中,作为水平,垂直,俯仰,航向,以及角速度,陀螺仪被广泛用于航空、航天和航海领域,作为驾驶和领航仪表使用。单位:dps3轴示意图mpu3050Kernel-driver(1)dev/mpu driver/misc/mpu3050/accle /compass include/linux/*.h 设备是以misc方式注册。支持多种accle,compass芯片,需要哪种芯片,将相应的config配置打开。m902 board config 即m902.c需要包含相应的头文件。加入kernel需要修改kconfig,makefile,m902_defconfig,以及board.cKernel-driver(2)static struct mpu3050_platform_data mpu3050_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轴可能向上,也可能向下,需要作相应的更改,对矩阵进行调节。坐标转换Sensor mat(1)对设备直接读取数据。在read中加入log,直接在设备下cat /dev/xxx.(2)作为input设备,读取input上报数据,如OMS系统sensors都是以input接口上报。(3)用ioctl读取数据,对mpu设备进行使能(resume),读取数据寄存器,需要对数据进行转化。不同的ADC,高位低位不同。需要熟悉不同芯片的datasheet.Sensor mat-mpu(1)gyro:mpu3050 16位 2500dps compass:ak8975c 13 bit(0.3 T/LSB)accle:bma023 10bit ADC 这部分iocrl直接加入 如:#define MPU_READ_COMPASS(0 x46)有#define MPU_READ_ACCEL(0 x47)无#define MPU_READ_GYRO(0 x48)无Sensor mat-mpu(2)加入部分只对MAT有效,不会影响手机正常使用,数据处理算法需要自己测试,测试ok后给MAT,MAT COPY加入。Kernel-MAT:设备名称,ioctl接口命令,数据处理算法。调试中底层建议加入log,方便MAT调试,数据处理算法.一般由上层处理。如一些浮点运算.Sensor cal gsensor&gyro android gsensor 数据水平方向是以(0,0,9.8)上报的.android gyro 水平放置时(0,0,0).由于pcb 芯片受焊接等外界因素影响,手机水平放置是有一定偏差的,由于手机偏差的不一致性,每台手机都必须校准。校准算法:让手机水平放置,检测数据,读取多次数据,算出平均值,以此作为base值,或者和标准数据比较,求出offset值。Sensor cal-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库.Compass cal compass校准原理:原则上尽量多的让设备法线方向指向空间的所有8个象限,如图14所示。测量值组成的空间几何结构实际上是一个圆球,所有的采样点都落在这个球的表面上 由于地球磁场在一般情况下只有微弱的0.5高斯,而一个普通的手机喇叭当相距2厘米时仍会有大约4高 斯的磁场,一个手机马达在相距2厘米时会有大约6高斯的磁场,这一特点使得针对电子设备表面地球磁场的测量很容易受到电子设备本身的干扰。底层不需要处理,都用“8”字校准,主要是求出磁场干扰。这种情况下,可以通过足够的样本点求出圆心O(x,y,z),即固定磁场干扰矢量的大小及方向Sensors hal主动上报 accle:input_report_abs(data-input_dev,ABS_X,rbuf6);gyro:input_report_abs(data-input_dev,ABS_HAT0X,rbuf9);compass:input_report_abs(data-input_dev,ABS_RX,rbuf0);Poll 时间一般为200-300ms.hal层主动读取数据.Daemon-mpldmpld 会调用库里的cal函数对数据先进行校准。gyro_handleraccel_handlercompass_handlerorien_handler 调用欧拉角3 个库文件libmlplatform.so 包括有读取cal.bin文件存放路径和读取函数libmllite.so 算欧拉角库文件 libmpl.so 关于mpl库文件Android OrientationOrientationyaw/pitch/roll heading,yaw。android 定义角度范围 Yaw 角度:0 -360 Pitch 角度:-180-180 roll 角度:-90-90欧拉角欧拉角Eulerian angles用来确定定点转动刚体位置的3个一组独立角参量,由章动角、旋进角(即进动角)和自转角j组成 对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。Usb driveradb imei imei 是手机设备唯一标识,在adb string加入iemi,从nvm读取。usb compositeadb&ums,marvel更改后,将有关的usb driver进行不同的组合。usb enume/charing ,ac判断usb 插入时 是pc还是ac,主要靠枚举判断。usb mass主要和sd卡有关,sd卡加载成功后,用void mount sd卡,这里有switch可以作sd卡用,可以作u盘用。usb idusb id厂商不同的设备驱动应该是相同的VID 不同PID作完相应ID 更改后windows driver也需要作相应的更改。如adb使用,可加入usb_adb.ini即可。初始化adb usb id.P&L sensor

    注意事项

    本文(Android sensors设备驱动.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开