本文來源電子發(fā)燒友社區(qū),作者:superjiulong, 帖子地址:https://bbs.elecfans.com/jishu_2296773_1_1.html
1 前言
2 什么是陀螺儀、加速度傳感器、地磁傳感器2.1 加速度計是什么
2.3 地磁傳感器是什么
3 硬件接線圖
4 程序編寫及調(diào)試4.1 下載bno055的庫】
4.2 安裝庫
4.3 測試代碼
復制代碼
5 結(jié)果演示
1 前言
BNO055是博世ASSNs展品系列的新產(chǎn)品,是一款性能優(yōu)越的IUM芯片,數(shù)據(jù)輸出類型多,可根據(jù)需要選擇讀取不同的IMU融合數(shù)據(jù)。也是一款系統(tǒng)級封裝(SiP)解決方案,集成了一個三軸14位加速度計,一個三軸16位陀螺儀,一個三軸地磁傳感器和一個32位Cortex M0+微控制器。
其封裝尺寸只有3.8 x 5.2 x 1.13mm3,明顯小于可比較的同級解決方案。
技術(shù)參數(shù)如下:
BNO055加速度:
加速度:±2g/±4g/±8g/±16
低通濾波頻段:1kHz~<8Hz
工作模式:正常、睡眠、低功耗、待機、深度睡
BNO055陀螺儀:
加速度:±2g/±4g/±8g/±16
低通濾波頻段:1kHz~<8Hz
工作模式:正常、睡眠、低功耗、待機、深度睡
BNO055陀螺儀:
范圍:±125°/s~2000°/s
低通濾波頻段:523Hz~12Hz
工作模式:正常,快速啟動、深度睡眠、睡眠、高級省電
芯片中斷控制:運動觸發(fā)中斷信號
BNO055地磁:
范圍:±1300uT(x-,y-axis);±2500uT(z-axis)
地磁分辨率:~0.3
工作模式:低功耗、定期、增強定期、高精度
工作模式:正常、睡眠、強制
2 什么是陀螺儀、加速度傳感器、地磁傳感器2.1 加速度計是什么
加速度計 (accelerometer) 測量加速度的儀表。加速度測量是工程技術(shù)提出的重要課題。當物體具有很大的加速度時,物體及其所載的儀器設(shè)備和其他無相對加速度的物體均受到能產(chǎn)生同樣大的加速度的力,即受到動載荷。欲知動載荷就要測出加速度。其次,要知道各瞬時飛機、火箭和艦艇所在的空間位置,可通過慣性導航(見陀螺平臺慣性導航系統(tǒng))連續(xù)地測出其加速度,然后經(jīng)過積分運算得到速度分量,再次積分得到一個方向的位置坐標信號,而三個坐標方向的儀器測量結(jié)果就綜合出運動曲線并給出每瞬時航行器所在的空間位置。再如某些控制系統(tǒng)中,常需要加速度信號作為產(chǎn)生控制作用所需的信息的一部分,這里也出現(xiàn)連續(xù)地測量加速度的問題。能連續(xù)地給出加速度信號的裝置稱為加速度傳感器。
2.2 陀螺儀是什么
陀螺儀是用高速回轉(zhuǎn)體的動量矩敏感殼體相對慣性空間繞正交于自轉(zhuǎn)軸的一個或二個軸的角運動檢測裝置。利用其他原理制成的角運動檢測裝置起同樣功能的也稱陀螺儀。
在解釋陀螺儀的工作原理之前,我先介紹一些轉(zhuǎn)動的術(shù)語。在飛行器的航行中,進行XYZ三個方向旋轉(zhuǎn)的旋轉(zhuǎn)有專業(yè)的術(shù)語,見下圖:

沿著機身右方軸(Unity中的+X)進行旋轉(zhuǎn),稱為pitch,中文叫俯仰。
沿著機頭上方軸(Unity中的+Y)進行旋轉(zhuǎn),稱為Yaw,中文叫偏航。
沿著機頭前方軸(Unity中的+Z)進行旋轉(zhuǎn),稱為Roll,中文叫桶滾。
我把三個Gimbal環(huán)用不同的顏色做了標記,底部三個軸向,RGB分別對應(yīng)XYZ。
2.3 地磁傳感器是什么
地磁場是地球的固有資源,為航空、航天、航海提供了天然的坐標系,可應(yīng)用于航天器或艦船的定位定向及姿態(tài)控制。利用地球磁場空間分布的磁導航技術(shù)簡便高效、性能可靠、抗干擾,是發(fā)達國家不可缺少的基本導航定位手段之一,如自動化程度很高的波音飛機都裝載有磁導航定位系統(tǒng)。
陀螺儀是利用陀螺的定軸性和進動性,可以測量姿態(tài)(利用定軸性)和尋北(利用進動性)的儀器;短時間精度高,長時間工作時存在累積誤差。地磁場傳感器是可以測量地球磁場,在不受磁干擾的情況下,如果知道當?shù)氐慕?jīng)緯度和海拔,就可以在測量地磁場方向后,利用各種地球磁場模型計算磁傾角、磁偏角,然后就可以算出極北和姿態(tài)等。磁場傳感器容易受干擾,但是簡單不容易壞。
3 硬件接線圖

4 程序編寫及調(diào)試4.1 下載bno055的庫】
注意:此處需要下載您手頭購買的模塊相應(yīng)的庫文件,此處使用的是DFRobot的做演示用。
https://github.com/DFRobot/DFRobot_BNO055
4.2 安裝庫
先把庫文件從網(wǎng)站上下載下來,整個壓縮包解壓到Arduino IDE的libraries文件夾中。

需要注意的是,庫文件夾下要直接顯示*.cpp和*.h文件,絕對不可以把這些庫文件再套到二級以上目錄,這樣子就會導致IDE無法識別。

4.3 測試代碼
- /***************************************************
- Thisis an example for the BNO055
- ****************************************************/
- #include
- #include
- BNO055 imu;
- void setup()
- {
- Serial.begin(115200);
- if(!imu.begin(imu.NDOF, imu.NORMAL_MODE )){
- Serial.println("unable to initialize the chip, or it isnt ready.I'll give it a sec and try anyway!");
- delay(30);
- }
- delay(1000);
- imu.getInfo();
- Serial.print("status code:");Serial.println(imu.SystemStatusCode);
- Serial.print("Selftest results:");Serial.println(imu.SelfTestStatus);
- Serial.print("System Error code:");Serial.println(imu.SystemError);
- }
- void loop()
- {
- imu.readEuler();
- Serial.print("X: "); Serial.print((float)imu.EulerData.x,6); Serial.print(" ");
- Serial.print("Y: ");Serial.print((float)imu.EulerData.y,6);Serial.print(" ");
- Serial.print("Z: "); Serial.println((float)imu.EulerData.z,6);Serial.print(" ");
- delay(100);
- }
可以打印出陀螺儀的三軸數(shù)據(jù)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
ESP32
+關(guān)注
關(guān)注
20文章
1006瀏覽量
18829 -
DFRobot
+關(guān)注
關(guān)注
4文章
1160瀏覽量
10535
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
【AI技術(shù)支持】ESP32-C3芯片/模組SPI-AT問題處理
描述在使用ESP32-C3芯片/模組,AT版本為Release/v3.0.0.0時,客戶在使用常規(guī)AT通信時,速率達不到需求,需要換成SPI-AT,測試中遇到問題,這是為什么呢?啟明云端/02

ESP32-C3開發(fā)板ROM里預燒錄的數(shù)據(jù)有沒有辦法讀出來?
請問ESP32-C3開發(fā)板ROM里預燒錄的數(shù)據(jù)有沒有辦法讀出來
發(fā)表于 07-23 07:54
esp32-c3燒錄代碼的時候提示Failed to connect to ESP32-C3: No serial data received,問題出在哪里?
畫了一塊esp32-c3但是燒錄代碼的時候提示Failed to connect to ESP32-C3: No serial data received,問題可能出現(xiàn)在什么地方,使用的是ch340模塊下載程序。
發(fā)表于 07-01 07:48
ESP32-C3開發(fā)板用數(shù)據(jù)線連接在電腦USB口上,無法識別出端口,為什么?
各位好,我的ESP32-C3開發(fā)板用數(shù)據(jù)線連接在電腦USB口上,電腦上事先安裝了CP210x驅(qū)動程序,發(fā)現(xiàn)只是開發(fā)板上的紅燈亮了,win11系統(tǒng)的設(shè)備管理器卻沒有檢測出端口。ESP-I
發(fā)表于 07-01 07:25
請問ESP32-C3的USB-CDC例程在哪個目錄啊?
大佬,
我想用ESP32-C3的USB串口和電腦通信。我用的是ESP-IDF 4.3的SDK。在SDK里面沒找到關(guān)于ESP32-C3的USB-CDC的例程。
ESP32-S2倒是有,但
發(fā)表于 06-27 07:28
esp32-c3工程中怎么創(chuàng)建多個freertos任務(wù)?
ESP-IDF中給出的ESP32-C3的例程都只有一個任務(wù)。即void app_main()
而且沒看見這個app_main任務(wù)是在哪里被創(chuàng)建的???
如果我想建一個ESP32-C3的多任務(wù)的工程該
發(fā)表于 06-27 06:37
ESP32-C3使用SPI通信緩存有多少?
我們計劃用ESP32-AT功能,看到資料上ESP32-C3僅支持SPI通信,請問:
①ESP32-C3使用SPI通信緩存有多少?
②ESP32-C3使用SPI通信接收到數(shù)據(jù)以后空中速率
發(fā)表于 06-26 07:58
請問ESP32-C3和ESP32-S2或WROOM系列是否支持單步調(diào)試?
/index.html#introduction
中文版描述只有ESP-S2-Kaluga-1板載了JTAG調(diào)試接口,而英文版說ESP32-C3可以直接用USB進行調(diào)試:“This is made
發(fā)表于 06-21 07:32
ESP32-C3的USB在計算機上識別的COM口能夠干什么用?
我想選用ESP32-C3 開發(fā)產(chǎn)品,其價格和藍牙@WIFI的功能是最吸引我的,但令人頭疼的是其開發(fā)環(huán)境,在WIN10下試用了VSCODE+PLATFORMIO和ECLIPCE兩個IDE
發(fā)表于 06-21 06:41
請問esp32-c3不支持pcnt嗎?
我在esp32-c3開發(fā)板上測試pcnt,編譯報錯找不到相關(guān)的函數(shù),查看sdk源碼發(fā)現(xiàn)要配置CONFIG_SOC_PCNT_SUPPORTED才會編譯pcnt.c,查看examples里面的項目也說了只支持
發(fā)表于 06-18 07:27
請問ESP32-C3藍牙如何獲取RSSI的值?
各位大佬,小弟剛接觸ESP-IDF不久,摸索了一段時間,物聯(lián)網(wǎng)的基本流程已經(jīng)摸索的差不多了。
現(xiàn)在想知道ESP32-C3通過藍牙與手機建立連接后,怎么才能獲取當前手機端到開發(fā)板的RSSI值,我應(yīng)該去參考哪些例程?
本人英語實在是
發(fā)表于 06-13 07:47
使用ESP32-C3的SoftAP模式創(chuàng)建Wi-Fi熱點,ESP32-C3不輸出任何日志,并且無法響應(yīng),為什么?
問題描述:
我正在使用ESP32-C3的SoftAP模式創(chuàng)建Wi-Fi熱點,并使用手機連接到該熱點。當手機連接成功并熄屏一段時間后,我發(fā)現(xiàn)手機無法獲取熱點的信息。在此期間,ESP32-C3不輸
發(fā)表于 06-07 08:26
BNO055傳感器報錯的原因?
硬件
ESP32-WROOM-32(ESP32-DevKitc型)
AE-BNO055-BO 9軸傳感器
開發(fā)環(huán)境
Windows11 22621.2715
IDE
發(fā)表于 06-06 06:36
畫了一塊esp32-c3開發(fā)板,燒錄代碼時提示Failed to connect to ESP32-C3: No serial data received為什么?
我自己畫了一塊esp32-c3開發(fā)板但是燒錄代碼的時候就提示Failed to connect to ESP32-C3: No serial data received,用的是ch340,可能是哪里出錯了呢。
發(fā)表于 06-05 07:42
評論