0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

代碼分析:九軸姿態(tài)傳感器是無(wú)人機(jī)中必備重要器件。

h1654155971.7688 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-03-12 11:29 ? 次閱讀

六軸加速度計(jì)和三軸陀螺儀所組成的九軸姿態(tài)傳感器無(wú)人機(jī)中必備重要器件。本微信號(hào)之前已經(jīng)對(duì)加速度計(jì)和陀螺儀的物理工作原理探討過(guò)無(wú)數(shù)次了,在這里也不再絮叨了。目前很多開發(fā)板上也會(huì)安裝這種傳感器,從而獲得開發(fā)板實(shí)時(shí)姿態(tài),可用于無(wú)人機(jī)和體感游戲等應(yīng)用的開發(fā),本文以Genuino101中RawImuDataSerial的例子進(jìn)行分析,從代碼角度來(lái)和大家探討一下姿態(tài)參數(shù)的獲得。

1.Genuino101中使用的是USB虛擬串口,所以先進(jìn)行串口初始化,設(shè)置波特率。

什么是USB虛擬串口呢,字面上好像很難的樣子,可能很多新手都不知道,但是不用擔(dān)心,USB虛擬串口就是把USB當(dāng)作串口的串口來(lái)使用,在Nano,Mega板上都有USB轉(zhuǎn)TTL的芯片,連接到電腦后,電腦就識(shí)別出了端口號(hào)。但是101上并未使用USB轉(zhuǎn)TTL的芯片,101有USB接口,而USB可以作為幾種使用類型,像HID鼠標(biāo)鍵盤,大容量存儲(chǔ),攝像頭等,其中有一種類型叫虛擬串口,使用的方法跟普通的串口是一樣的。虛擬串口屬于USB CDC,

也叫VCP。

2.while (!Serial); 這里是判斷串口是否完成,為什么這樣使用呢?看看參考資料。

意思就是判斷USB CDC串口是否已經(jīng)打開了,如果已經(jīng)打開,剛返回true,否則是false

3.開始進(jìn)行IMU的初始化,這里的IMU包含在Intel Curie模塊里面。輸出

Initializing IMU device...

初始化的函數(shù)是: CurieImu.initialize();

看看里面做了什么

可以看到,首先是SPI的初始化,SPI連接的是型號(hào)為BMI160的六軸加速度計(jì)和陀螺儀傳感器。具體是如何通過(guò)寄存器的讀取加速度值的我們先不去研究,CurieImuClass里面已經(jīng)做好了這些操作,我們只要知道使用,CurieImuClass就能得到六軸的原始數(shù)據(jù)就行了。那為什么要打開看看里面做了什么呢,其實(shí)我也就是好奇,想看看。

4.這里字面上的意思是測(cè)試CurieImu是否連接成功,我們打開CurieImu.testConnection()看看里面是啥。

其實(shí)就是通過(guò)SPI讀取BMI160寄存器到的DeviceID,如果讀到了,說(shuō)明連接成功。

這里是讀取寄存器里偏移量的值。這幾個(gè)是已經(jīng)默認(rèn)在寄存器里了。

5.這里是進(jìn)行陀螺儀校準(zhǔn),校準(zhǔn)函數(shù)是 CurieImu.autoCalibrateGyroOffset();有點(diǎn)奇怪,為什么陀螺儀有三個(gè)軸,但是只用了一個(gè)校準(zhǔn)呢?我們打開這個(gè)函數(shù)看一下。

看了一下注釋,這個(gè)函數(shù)就是對(duì)3個(gè)軸進(jìn)行校準(zhǔn)。那就不管它了,具體那幾個(gè)寄存器是什么也不用去理會(huì)。

6.這里對(duì)加速度計(jì)進(jìn)行校準(zhǔn)。用了三個(gè)校準(zhǔn)函數(shù),XY是0,Z的參數(shù)是1,為什么呢。是不是因?yàn)閆軸自身就收到重力呢?保留疑問(wèn)。

7.校準(zhǔn)好了之后,再讀取一次偏移量。

8.這里字面上的意思是使能偏移量校準(zhǔn),也就是說(shuō),上面只是求出偏移量的值,而這里要進(jìn)行使能。

9.接下來(lái)的便是loop()循環(huán)了。getMotion6()函數(shù)直接讀取六個(gè)軸的值到變量。

10.接下來(lái)便是打印數(shù)據(jù)到串口了。

11.把程序燒寫的板子上,打開串口,便能看到數(shù)據(jù)啦。

12.這里做一點(diǎn)小改動(dòng)。把打印到串口的數(shù)據(jù)改成如下:

選擇tools->Serial Plotter

Oh my god,好強(qiáng)大的功能,實(shí)時(shí)畫六軸波形圖啊。

最后小編向大家提一個(gè)問(wèn)題,你們對(duì)于無(wú)人機(jī)的應(yīng)用而言,多大的姿態(tài)數(shù)據(jù)刷新率最為合適?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7773

    瀏覽量

    262377
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1669

    瀏覽量

    90729
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67765

原文標(biāo)題:代碼分析:如何獲得九軸姿態(tài)數(shù)據(jù)?

文章出處:【微信號(hào):weixin21ic,微信公眾號(hào):21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    無(wú)人機(jī)超聲波傳感器無(wú)人機(jī)避障的應(yīng)用

    隨著無(wú)人機(jī)的功能不斷增加,GPS傳感器、紅外傳感器、氣壓傳感器、超聲波傳感器越來(lái)越多地被用到無(wú)人機(jī)
    的頭像 發(fā)表于 01-25 17:37 ?1.4w次閱讀

    無(wú)人機(jī)傳感器市場(chǎng)火爆 未來(lái)5年規(guī)模達(dá)7億美元

    看到的高科技工具,離普通老百姓的生活越來(lái)越近。據(jù)專家預(yù)測(cè),到2018年,全球無(wú)人機(jī)市場(chǎng)規(guī)模將會(huì)攀升到10億美元以上。 而在無(wú)人機(jī)和機(jī)器人的控制,傳感器起了至關(guān)
    發(fā)表于 06-03 10:30

    InvenSense電容式氣壓安徽傳感器或?qū)⒊纱髸r(shí)代無(wú)人機(jī)標(biāo)配怎么樣

    ,氣壓計(jì)已成無(wú)人機(jī)標(biāo)配  氣壓傳感器無(wú)人機(jī)應(yīng)用主要是檢測(cè)氣壓變化以及定高。定高分為兩種:首先是懸停,即將無(wú)人機(jī)固定在預(yù)設(shè)的高度位置上,現(xiàn)
    發(fā)表于 09-06 10:22

    Ameya360 無(wú)人機(jī)視覺(jué)、高級(jí)傳感與處理解決方案

    回收等整個(gè)飛行過(guò)程的核心系統(tǒng),飛控對(duì)于無(wú)人機(jī)相當(dāng)于駕駛員對(duì)于有人機(jī)的作用,我們認(rèn)為是無(wú)人機(jī)最核心的技術(shù)之一。飛控一般包括傳感器、機(jī)載計(jì)算機(jī)和伺服作動(dòng)設(shè)備三大部分,實(shí)現(xiàn)的功能主要有
    發(fā)表于 04-23 17:22

    無(wú)人機(jī)設(shè)計(jì)姿態(tài)檢測(cè)算法、姿態(tài)控制算法有什么區(qū)別 ?

    無(wú)人機(jī)設(shè)計(jì)姿態(tài)檢測(cè)算法、姿態(tài)控制算法有什么區(qū)別 ?推薦課程:張飛四旋翼飛行視頻套件,76小時(shí)吃透四
    發(fā)表于 07-14 12:12

    無(wú)人機(jī)系列之飛控系統(tǒng)

    的大腦。? 無(wú)人機(jī)姿態(tài)穩(wěn)定與控制? 與導(dǎo)航子系統(tǒng)協(xié)調(diào)完成航跡控制? 起飛與返航控制? 無(wú)人機(jī)飛行管理? 無(wú)人機(jī)任務(wù)管理與控制? 應(yīng)急控制2.飛控系統(tǒng)--
    發(fā)表于 09-25 11:54

    無(wú)人機(jī)的MCU是如何工作的?

    的作用,我們認(rèn)為是無(wú)人機(jī)最核心的技術(shù)之一。飛控一般包括傳感器、機(jī)載計(jì)算機(jī)和伺服作動(dòng)設(shè)備三大部分,實(shí)現(xiàn)的功能主要有無(wú)人機(jī)姿態(tài)穩(wěn)定和控制、無(wú)人機(jī)
    發(fā)表于 10-09 10:44

    無(wú)人機(jī)——“會(huì)飛的傳感器

    位置和無(wú)人機(jī)的飛行姿態(tài),在維持無(wú)人機(jī)飛行控制起到關(guān)鍵的作用。MEMS加速度傳感器有多種方式感知運(yùn)動(dòng)姿態(tài)
    發(fā)表于 11-29 10:38

    請(qǐng)問(wèn)四元數(shù)在無(wú)人機(jī)姿態(tài)控制應(yīng)用在哪一個(gè)環(huán)節(jié)?

    轉(zhuǎn)化成最后供控制算法使用的三個(gè)當(dāng)前飛行角度 φ, θ, ψ。使用四元數(shù)的原因除了沒(méi)有 Gimbal lock,還有運(yùn)算量小,適合運(yùn)算能力差的嵌入式平臺(tái)。我的問(wèn)題是在我上述的無(wú)人機(jī)姿態(tài)控制過(guò)程
    發(fā)表于 05-30 01:05

    【設(shè)計(jì)技巧】無(wú)人機(jī)系列之飛控算法

    ` 一.無(wú)人機(jī)的分類 按飛行平臺(tái)構(gòu)型分類:無(wú)人機(jī)可分為固定翼無(wú)人機(jī),旋翼無(wú)人機(jī),無(wú)人飛艇,傘翼無(wú)人機(jī)
    發(fā)表于 07-14 05:30

    基于STM32的四無(wú)人機(jī)姿態(tài)解算與控制系統(tǒng)設(shè)計(jì)

    基于STM32的四無(wú)人機(jī)姿態(tài)解算與控制系統(tǒng)設(shè)計(jì)
    發(fā)表于 08-06 20:33

    加速度傳感器和陀螺儀如何讓無(wú)人機(jī)飛的更穩(wěn)

    近兩年,伴隨傳感器技術(shù)的發(fā)展,消費(fèi)電子產(chǎn)品領(lǐng)域逐漸成為行業(yè)熱門。除了火熱的可穿戴設(shè)備外,無(wú)人機(jī)在最近兩年的發(fā)展勢(shì)頭也不可小覷。在2015年的開春之際,可以說(shuō),無(wú)人機(jī),特別是多
    發(fā)表于 05-18 07:52

    姿態(tài)傳感器是如何發(fā)展起來(lái)的?

    姿態(tài)傳感器是如何發(fā)展起來(lái)的?
    發(fā)表于 11-01 07:33

    【羅姆傳感器評(píng)估板試用體驗(yàn)連載】無(wú)人機(jī)感知系統(tǒng)

    【羅姆傳感器評(píng)估板試用體驗(yàn)連載】-無(wú)人機(jī)感知系統(tǒng) 無(wú)人機(jī)的飛行感知技術(shù)主要用作兩個(gè)用途,其一是提供給飛行控制系統(tǒng),由于飛行控制系統(tǒng)的主要功能是控制飛機(jī)達(dá)到期望姿態(tài)和空間位置,所以這部
    發(fā)表于 03-20 17:20

    飛行的“傳感器” 氣壓傳感器無(wú)人機(jī)產(chǎn)品應(yīng)用重要作用

    為了能更好地控制無(wú)人機(jī)飛行進(jìn)而在人們生產(chǎn)生活中發(fā)揮更大作用,各種傳感器的運(yùn)用顯得十分重要,甚至有人會(huì)將無(wú)人機(jī)稱為一架會(huì)飛行的“傳感器”。在
    發(fā)表于 04-26 14:39