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

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

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

淺談Arduino Nano 33系列的IMU傳感器

電子設(shè)計(jì) ? 來(lái)源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2021-01-13 16:52 ? 次閱讀

您的項(xiàng)目需要加速度計(jì)、陀螺儀或磁場(chǎng)傳感器嗎??jī)?nèi)置的IMU傳感器LSM9DS1包含這些功能!

您可能已經(jīng)閱讀了有關(guān)新的Arduino Nano 33系列及其實(shí)時(shí)和多線(xiàn)程功能的信息。但是,該開(kāi)發(fā)板還有更多有用的功能!其中之一就是內(nèi)置的LSM9DS1 IMU,它包含一個(gè)加速度計(jì)、一個(gè)陀螺儀和一個(gè)磁場(chǎng)傳感器。

在本篇文章中,我們將向您展示如何在不使用任何其他硬件的情況下使用IMU。

安裝LSM9DS1 IMU庫(kù)

在開(kāi)始之前,您需要為內(nèi)置傳感器安裝官方的Arduino庫(kù)。為此,導(dǎo)航到“Sketch”,在Arduino IDE中打開(kāi)庫(kù)管理器,然后單擊“include library”,然后選擇“manage libraries”。這將會(huì)彈出一個(gè)新窗口。在該窗口中,搜索IMU并安裝下圖高亮顯示的軟件包:

pIYBAF_-s-eAaEl8AAFlEghM3N4601.png

接下來(lái),如果要使用IMU,請(qǐng)?jiān)贏rduino草圖中包括這個(gè)已安裝的軟件包:

#include

使用加速度計(jì)

IMU的加速度計(jì)可用于測(cè)量設(shè)備的方向。下圖顯示了Arduino的移動(dòng)與加速度計(jì)的哪個(gè)測(cè)量軸相對(duì)應(yīng)。

pIYBAF_-s_iAPvZxAAVpNSlFrZs773.png

Arduino的運(yùn)動(dòng)如何與加速度計(jì)的X軸、Y軸和Z軸相對(duì)應(yīng)

為了測(cè)試加速度計(jì),我編寫(xiě)了一個(gè)小的測(cè)試腳本,可以檢測(cè)Arduino是放置在平坦的表面上還是傾斜到任一側(cè)。如您所見(jiàn),該腳本必須讀取加速度計(jì)的Y軸來(lái)確定旋轉(zhuǎn)角度。

將設(shè)備放在平坦表面上時(shí),測(cè)量值為零。當(dāng)Arduino倒置時(shí),也是如此。以下代碼段顯示了loop方法的內(nèi)容。

float x, y, z, delta = 0.05;

if (IMU.accelerationAvailable())

{

IMU.readAcceleration(x, y, z);

if(y <= delta && y >= -delta)

Serial.println("flat");

else if(y > delta && y < 1 - delta)

Serial.println("tilted to the left");

else if(y >= 1 - delta)

Serial.println("left");

else if(y < -delta && y > delta - 1)

Serial.println("tilted to the right");

else

Serial.println("right");

}

如您所見(jiàn),我不必連接任何外部硬件。對(duì)IMU的所有調(diào)用都很短,這有助于保持代碼簡(jiǎn)潔。

我使用了增量值來(lái)適應(yīng)讀取傳感器值時(shí)可能出現(xiàn)的最終誤差。您可以調(diào)整該值,以使Arduino更早地對(duì)其方向變化做出反應(yīng)。

該草圖的輸出如下所示:

o4YBAF_-tAWAUbNOAAB_zvjwBns452.png

使用陀螺儀

如您所見(jiàn),在Nano 33 BLE開(kāi)發(fā)板上,連接IMU的加速度計(jì)是一個(gè)簡(jiǎn)單的過(guò)程。幸運(yùn)的是,讀取其他傳感器值同樣容易。例如,陀螺儀可用于實(shí)現(xiàn)手勢(shì)檢測(cè):

float x, y, z, delta = 400;

if (IMU.gyroscopeAvailable())

{

IMU.readGyroscope(x, y, z);

if(y < -delta)

Serial.println("Flicked down");

else if(y > delta)

Serial.println("Flicked up");

}

此示例腳本檢測(cè)何時(shí)快速向上或向下移動(dòng)Arduino并做出相應(yīng)的反應(yīng)。在該示例中,delta值越小,Arduino對(duì)運(yùn)動(dòng)的反應(yīng)就越早。

該程序的輸出如下所示:

pIYBAF_-tBWAMV9rAACSpkhrwSc814.png

檢測(cè)磁場(chǎng)

LSM9DS1還可以檢測(cè)磁場(chǎng)。您先前下載的庫(kù)包含用于此目的的函數(shù)。您可以通過(guò)調(diào)用readMagneticField函數(shù)獲得以微特斯拉(micro Tesla)單位測(cè)量的磁場(chǎng)。調(diào)用此函數(shù)可以生成顯示測(cè)量值的圖表。

pIYBAF_-tCSACaSyAAB3rZacryw478.png

顯示來(lái)自readMagneticField函數(shù)的測(cè)量值的圖表

內(nèi)置IMU易于設(shè)置

內(nèi)置的LSM9DS1 IMU具有許多不同的有用傳感器,并且很容易進(jìn)行連接。您唯一要做的就是安裝官方庫(kù)以利用傳感器的功能。 IMU所配備的各種傳感器不僅給我留下了深刻的印象,而且其準(zhǔn)確性也給我留下了深刻的印象。陀螺儀和加速度計(jì)可以精確地檢測(cè)甚至最小的運(yùn)動(dòng)。
編輯:hfy

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

    關(guān)注

    2541

    文章

    49958

    瀏覽量

    747468
  • 陀螺儀
    +關(guān)注

    關(guān)注

    44

    文章

    768

    瀏覽量

    98185
  • 加速度計(jì)
    +關(guān)注

    關(guān)注

    6

    文章

    693

    瀏覽量

    45732
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185922
  • 磁場(chǎng)傳感器
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    11987
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Arduino Nano和HC-SR04超聲波傳感器制作社交距離項(xiàng)目

    描述基于 Arduino Nano、超聲波傳感器和 LED 模塊的針對(duì) Covid-19 冠狀病毒的社會(huì)隔離項(xiàng)目在本教程中,您將學(xué)習(xí)如何基于 Arduino
    發(fā)表于 08-09 06:30

    Arduino Nano 33 BLE Sense的色度計(jì)和近接感測(cè)傳感器來(lái)分類(lèi)對(duì)象

    在本文中,我們將帶您了解一個(gè)更為簡(jiǎn)單的端到端教程:使用 TensorFlow Lite Micro 庫(kù),以及 Arduino Nano 33 BLE Sense 的色度計(jì)和近接感測(cè)
    的頭像 發(fā)表于 11-18 17:21 ?6943次閱讀

    基于Arduino Nano、超聲波傳感器和LED模塊的項(xiàng)目

    電子發(fā)燒友網(wǎng)站提供《基于Arduino Nano、超聲波傳感器和LED模塊的項(xiàng)目.zip》資料免費(fèi)下載
    發(fā)表于 07-26 10:28 ?1次下載
    基于<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b>、超聲波<b class='flag-5'>傳感器</b>和LED模塊的項(xiàng)目

    使用Arduino nano計(jì)算風(fēng)速的傳感器

    電子發(fā)燒友網(wǎng)站提供《使用Arduino nano計(jì)算風(fēng)速的傳感器.zip》資料免費(fèi)下載
    發(fā)表于 08-11 11:37 ?4次下載
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>nano</b>計(jì)算風(fēng)速的<b class='flag-5'>傳感器</b>

    Arduino Nano 33 IoT遠(yuǎn)程調(diào)試及編碼

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano 33 IoT遠(yuǎn)程調(diào)試及編碼.zip》資料免費(fèi)下載
    發(fā)表于 10-26 10:57 ?1次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> IoT遠(yuǎn)程調(diào)試及編碼

    使用TinyML和Arduino Nano 33 BLE計(jì)算閱讀時(shí)間

    電子發(fā)燒友網(wǎng)站提供《使用TinyML和Arduino Nano 33 BLE計(jì)算閱讀時(shí)間.zip》資料免費(fèi)下載
    發(fā)表于 10-28 16:50 ?1次下載
    使用TinyML和<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> BLE計(jì)算閱讀時(shí)間

    Arduino Nano 33 BLE與Web應(yīng)用程序通信

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano 33 BLE與Web應(yīng)用程序通信.zip》資料免費(fèi)下載
    發(fā)表于 11-01 10:59 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> BLE與Web應(yīng)用程序通信

    使用Arduino Nano傳感器制成的數(shù)字測(cè)距儀

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Nano傳感器制成的數(shù)字測(cè)距儀.zip》資料免費(fèi)下載
    發(fā)表于 11-04 09:19 ?0次下載
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b>和<b class='flag-5'>傳感器</b>制成的數(shù)字測(cè)距儀

    Arduino Nano 33 BLE Sense上的白血病檢測(cè)

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano 33 BLE Sense上的白血病檢測(cè).zip》資料免費(fèi)下載
    發(fā)表于 11-04 14:28 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> BLE Sense上的白血病檢測(cè)

    Arduino Nano 33 BLE Sense的語(yǔ)音識(shí)別項(xiàng)目

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano 33 BLE Sense的語(yǔ)音識(shí)別項(xiàng)目.zip》資料免費(fèi)下載
    發(fā)表于 12-07 09:32 ?3次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> BLE Sense的語(yǔ)音識(shí)別項(xiàng)目

    Arduino Nano 33 LiPo適配器nano9jira開(kāi)源分享

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano 33 LiPo適配器nano9jira開(kāi)源分享.zip》資料免費(fèi)下載
    發(fā)表于 12-20 09:51 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> LiPo適配器<b class='flag-5'>nano</b>9jira開(kāi)源分享

    帶有Arduino Nano 33 IoT的氣鼓

    電子發(fā)燒友網(wǎng)站提供《帶有Arduino Nano 33 IoT的氣鼓.zip》資料免費(fèi)下載
    發(fā)表于 06-14 11:10 ?0次下載
    帶有<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> IoT的氣鼓

    基于Arduino Nano 33 BLE Sense的深蹲計(jì)數(shù)

    電子發(fā)燒友網(wǎng)站提供《基于Arduino Nano 33 BLE Sense的深蹲計(jì)數(shù).zip》資料免費(fèi)下載
    發(fā)表于 06-15 10:52 ?0次下載
    基于<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> BLE Sense的深蹲計(jì)數(shù)<b class='flag-5'>器</b>

    Arduino Nano 33物聯(lián)網(wǎng)調(diào)試

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano 33物聯(lián)網(wǎng)調(diào)試.zip》資料免費(fèi)下載
    發(fā)表于 06-25 10:33 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b>物聯(lián)網(wǎng)調(diào)試

    Arduino Nano 33 Sense BLE開(kāi)源

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano 33 Sense BLE開(kāi)源.zip》資料免費(fèi)下載
    發(fā)表于 06-26 15:20 ?5次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b> <b class='flag-5'>33</b> Sense BLE開(kāi)源