利用加速度传感器测量物体倾斜角度

上传人:腾**** 文档编号:46515005 上传时间:2018-06-27 格式:PDF 页数:13 大小:130.74KB
返回 下载 相关 举报
利用加速度传感器测量物体倾斜角度_第1页
第1页 / 共13页
利用加速度传感器测量物体倾斜角度_第2页
第2页 / 共13页
利用加速度传感器测量物体倾斜角度_第3页
第3页 / 共13页
利用加速度传感器测量物体倾斜角度_第4页
第4页 / 共13页
利用加速度传感器测量物体倾斜角度_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《利用加速度传感器测量物体倾斜角度》由会员分享,可在线阅读,更多相关《利用加速度传感器测量物体倾斜角度(13页珍藏版)》请在金锄头文库上搜索。

1、CAST Reference Design Specification 利用加速度传感器测量利用加速度传感器测量利用加速度传感器测量利用加速度传感器测量 物体物体物体物体的倾斜角度的倾斜角度的倾斜角度的倾斜角度 Author Jia Ning Version V1.0 - Analog Devices Inc. has the full intelligent property (IP) of this document and the contents described in this document. Analog Devices Inc. has the right to chang

2、e any of the descriptions in the document without notifying the readers. If readers need any technical help, please contact China Applications Support Team via or the toll-free No. 8008101742. - Revision History Date Revision History Reviser 2008.9.18 V1.0 Ning Jia Abbreviation Table of Contents 1

3、说明. 2 2 基本原理 . 2 3 硬件实现 . 3 4 软件算法 . 3 4.1 反三角函数算法 . 4 4.2 查表算法 . 4 5 倾斜角度的精度与加速度值的分辨率之间的关系 . 5 6 改进的查表算法 . 8 附录一 整数开平方算法 . 9 China Application Support Team Toll-free number:800-810-1742 Toll-free fax:800-810-1747 Email: 21 说明说明说明说明 测量物体的倾斜角度是加速器传感器的一种常见的应用。 虽然其基本原理十分简单, 但是在 具体实现中仍然会遇到很多困难,比如倾斜角度的精度

4、问题,数学计算过于复杂等等。本文 将对精度问题进行详细讨论,并给出一种简化的计算方法。 2 基本原理基本原理基本原理基本原理 由于加速度传感器在静止放置时受到重力作用, 因此会有 1g 的重力加速度。 利用这个性质, 通过测量重力加速度在加速度传感器的 X 轴和 Y 轴上的分量,可以计算出其在垂直平面上 的倾斜角度。 cosgAy =singAx =ggAy =0=Ax如上图所示,有singAx =,cosgAy =。则tan=AyAx,即)arctan(AyAx=。 这样,根据以上原理一个 2 轴加速度传感器可以测量在 X-Y 平面上的倾斜角度。 需要注意的是需要注意的是需要注意的是需要注意

5、的是,2 轴加速度传感器只能测量轴加速度传感器只能测量轴加速度传感器只能测量轴加速度传感器只能测量 X 轴和轴和轴和轴和 Y 轴上的重力分量轴上的重力分量轴上的重力分量轴上的重力分量,因而只能测量因而只能测量因而只能测量因而只能测量 X-Y 平面上的倾斜角度平面上的倾斜角度平面上的倾斜角度平面上的倾斜角度。可是由于物体在空间倾斜的时候,很难保证倾斜完全在 X-Y 平面上, 这样只使用 2 轴加速度传感器进行测量会存在局限性, 因此, 我们考虑使用 3 轴加速度传感 器。如下图所示,3 轴加速度传感器可以测量 X 轴、Y 轴和 Z 轴的重力分量,计算空间倾斜角度的公式可以推广为)arctan(2

6、2AyAzAx +=。 China Application Support Team Toll-free number:800-810-1742 Toll-free fax:800-810-1747 Email: 3AxAyAz这个公式就是本文中用来测量物体倾斜角度的基本原理。 需要说明的是, 这里利用的是物体 在静止时受到重力的性质,如果物体同时也有运动加速度的话,那么这个公式将不再准确。 所以必须为公式增加一个限制条件,即 =+=gAyAzAxAyAzAx1)arctan(22222 3 硬件实现硬件实现硬件实现硬件实现 目前, 在消费类产品中使用的加速度传感器分为数字输出 (例如 ADX

7、L345) 和模拟输出 (例 如 ADXL335)两种。数字输出的加速度传感器可以直接通过 I2C 或 SPI 总线与 MCU 进行 连接;模拟输出的加速度传感器则需要使用 ADC 进行采样。现在,普遍使用的 MCU 中基 本都有内置的 ADC 通道,所以无论是数字输出还是模拟输出的加速度传感器都可以非常容 易地和 MCU 进行连接,进而实现测量功能。 4 软件软件软件软件算法算法算法算法 本文在第一部分讨论了测量的基本原理,即 =+=gAyAzAxAyAzAx1)arctan(22222 China Application Support Team Toll-free number:800-

8、810-1742 Toll-free fax:800-810-1747 Email: 44.1 反三角函数算法反三角函数算法反三角函数算法反三角函数算法 直接利用以上公式进行计算是最直观的方法。具体步骤为: 1) 测量 X、Y、Z 轴的加速度。Ax,Ay,Az。 (对于数字输出的加速度传感器,直接通过 I2C 或 SPI 总线读取;对于模拟输出的加速度传感器,需要通过 ADC 进行采样。在 算法说明部分将不对此加以区分。 ) 2) 计算222AyAzAx+, 如果这个平方和接近g1的平方, 那么说明这组采样值是有效的,可以用来计算;否则将该采样值丢弃,重复第一步。 3) 利用有效的采样值,通过

9、开平方和反正切函数等数学计算,求出倾斜角度)arctan(22AyAzAx +=。 4) 重复第一步。 这个算法的缺点在于需要用到复杂的数学计算。虽然开平方,反正切等计算在 C 语言中都 有可以直接使用的库函数, 但是它们都是浮点计算, 因此需要占用很大的代码空间和计算时 间,对 MCU 的要求相对较高。由于在消费类产品中,制造成本是至关重要的,因此使用这 种直接的方法并不是很好的选择。 4.2 查表算法查表算法查表算法查表算法 可以发现, 第一种算法的主要问题在于开平方和反正切函数的计算。 如果可以避开这些计算, 则可以大幅度的降低算法的复杂度。 下面的算法中,我们分两步来降低算法的复杂度。

10、 1 使用整数开方算法代替 C 语言中的开平方函数, 本文将在附录一中详细介绍整数开平方 算法。 2 利用查表方法来代替反正切计算。即,提前计算出每个角度的正切值tan,并保存在 EEPROM 中,形成一个表。在计算工程中,只要计算AyAzAx22+,并在表中查找与其最接近的一个正切值0tan,则0就是所要求的倾斜角度。 需要注意, 我们要测量的倾斜角度的范围为180,0oo, 如果考虑对倾角计算的精度要求为o1 . 0,那么表中需要保存 1800 个正切值。利用三角函数公式,有 China Application Support Team Toll-free number:800-810-1

11、742 Toll-free fax:800-810-1747 Email: 5=+=tan)180tan(tan1)90tan(tan1)90tan(tanooo这样,只需要保存45,0oo的正切值表。但是即使这样,由于每个正切值都是一个浮点数,通常为 4Byte,所以仍然需要很大的 EEPROM,对 MCU 的要求同样很高。因此这种查表的方法仍然不是最佳算法。 5 倾斜角度的精度与加速度值的分辨率之间的关系倾斜角度的精度与加速度值的分辨率之间的关系倾斜角度的精度与加速度值的分辨率之间的关系倾斜角度的精度与加速度值的分辨率之间的关系 在给出最佳的改进算法之前, 我们先对倾斜角度的精度与加速度值的分辨率之间的关系进行 分析。这不仅将告诉我们,要得到一定精度的倾斜角度时需要使用多高分辨率的加速度值, 这将决定 ADC 位数的选择。而且,分析过程将有助于我们找到一种更加简化的查表算法。 分析同样从公式 =+=gAyAzAxAyAzAx1)arctan(22222 开始。 如果假设gAyAzAx1222=+的条件已经满足,那么计算公式理论上可以简化为)1 (arctan(22AyAyg

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号