<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于LSM303DLH集成傳感器的電子羅盤實現(xiàn)方法

          基于LSM303DLH集成傳感器的電子羅盤實現(xiàn)方法

          作者: 時間:2012-09-14 來源:網(wǎng)絡(luò) 收藏
          b(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">

            如圖16所示,經(jīng)過10面校準方法之后,同樣可以采樣到以上所述球體表面的部分軌跡,從而推導出球心的位置,即固定磁場干擾矢量的大小及方向。

            

          未標題-1.jpg

            圖16 10面校準后的空間軌跡

            5.傾斜補償及航偏角計算

            經(jīng)過校準后電子指南針在水平面上已經(jīng)可以正常使用了。但是更多的時候手機并不是保持水平的,通常它和水平面都有一個夾角。這個夾角會影響航向角的精度,需要通過加速度傳感器進行傾斜補償。

            對于一個物體在空中的姿態(tài),導航系統(tǒng)里早已有定義,如圖17所示,Android中也采用了這個定義。Pitch(Φ)定義為x軸和水平面的夾角,圖示方向為正方向;Roll(θ)定義為y軸和水平面的夾角,圖示方向為正方向。由Pitch角引起的航向角的誤差如圖18所示??梢钥闯?,在x軸方向10度的傾斜角就可以引起航向角最大7-8度的誤差。

            

          未標題-1.jpg

            

          未標題-1.jpg

            圖17 Pitch角和Roll角定義 圖18 Pitch角引起的航向角誤差

            手機在空中的傾斜姿態(tài)如圖19所示,通過3軸加速度傳感器檢測出三個軸上重力加速度的分量,再通過式2可以計算出Pitch和Roll。

            

          未標題-1.jpg

            圖19 手機在空中的傾斜姿態(tài)

            

          未標題-1.jpg

            6.Android平臺指南針的實現(xiàn)

            在當前流行的android 手機中,很多都配備有指南針的功能。為了實現(xiàn)這一功能,只需要配備有ST提供的二合一傳感模塊,ST 提供整套解決方案。Android中的軟件實現(xiàn)可以由以下框圖表示:

            

          傳感器相關(guān)文章:傳感器工作原理


          電流變送器相關(guān)文章:電流變送器原理
          加速度計相關(guān)文章:加速度計原理


          關(guān)鍵詞: LSM303DLH 集成傳感器 電子羅盤

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();