您的項目需要加速度計、陀螺儀或磁場傳感器嗎?內置的IMU傳感器LSM9DS1包含這些功能!
您可能已經閱讀了有關新的Arduino Nano 33系列及其實時和多線程功能的信息。但是,該開發板還有更多有用的功能!其中之一就是內置的LSM9DS1 IMU,它包含一個加速度計、一個陀螺儀和一個磁場傳感器。
在本篇文章中,我們將向您展示如何在不使用任何其他硬件的情況下使用IMU。
安裝LSM9DS1 IMU庫
在開始之前,您需要為內置傳感器安裝官方的Arduino庫。為此,導航到“Sketch”,在Arduino IDE中打開庫管理器,然后單擊“include library”,然后選擇“manage libraries”。這將會彈出一個新窗口。在該窗口中,搜索IMU并安裝下圖高亮顯示的軟件包:
接下來,如果要使用IMU,請在Arduino草圖中包括這個已安裝的軟件包:
#include
使用加速度計
IMU的加速度計可用于測量設備的方向。下圖顯示了Arduino的移動與加速度計的哪個測量軸相對應。
Arduino的運動如何與加速度計的X軸、Y軸和Z軸相對應
為了測試加速度計,我編寫了一個小的測試腳本,可以檢測Arduino是放置在平坦的表面上還是傾斜到任一側。如您所見,該腳本必須讀取加速度計的Y軸來確定旋轉角度。
將設備放在平坦表面上時,測量值為零。當Arduino倒置時,也是如此。以下代碼段顯示了loop方法的內容。
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");
}
如您所見,我不必連接任何外部硬件。對IMU的所有調用都很短,這有助于保持代碼簡潔。
我使用了增量值來適應讀取傳感器值時可能出現的最終誤差。您可以調整該值,以使Arduino更早地對其方向變化做出反應。
該草圖的輸出如下所示:
使用陀螺儀
如您所見,在Nano 33 BLE開發板上,連接IMU的加速度計是一個簡單的過程。幸運的是,讀取其他傳感器值同樣容易。例如,陀螺儀可用于實現手勢檢測:
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");
}
此示例腳本檢測何時快速向上或向下移動Arduino并做出相應的反應。在該示例中,delta值越小,Arduino對運動的反應就越早。
該程序的輸出如下所示:
檢測磁場
LSM9DS1還可以檢測磁場。您先前下載的庫包含用于此目的的函數。您可以通過調用readMagneticField函數獲得以微特斯拉(micro Tesla)單位測量的磁場。調用此函數可以生成顯示測量值的圖表。
顯示來自readMagneticField函數的測量值的圖表
內置IMU易于設置
內置的LSM9DS1 IMU具有許多不同的有用傳感器,并且很容易進行連接。您唯一要做的就是安裝官方庫以利用傳感器的功能。 IMU所配備的各種傳感器不僅給我留下了深刻的印象,而且其準確性也給我留下了深刻的印象。陀螺儀和加速度計可以精確地檢測甚至最小的運動。
編輯:hfy
-
傳感器
+關注
關注
2561文章
52208瀏覽量
761931 -
陀螺儀
+關注
關注
44文章
806瀏覽量
99555 -
加速度計
+關注
關注
6文章
709瀏覽量
46491 -
Arduino
+關注
關注
188文章
6485瀏覽量
189739 -
磁場傳感器
+關注
關注
0文章
41瀏覽量
12209
發布評論請先 登錄
基于Arduino Nano和HC-SR04超聲波傳感器制作社交距離項目
Arduino Nano 33 BLE Sense的色度計和近接感測器傳感器來分類對象
基于Arduino Nano、超聲波傳感器和LED模塊的項目

使用TinyML和Arduino Nano 33 BLE計算閱讀時間

Arduino Nano 33 BLE與Web應用程序通信

Arduino Nano 33 BLE Sense上的白血病檢測

Arduino Nano 33 BLE Sense的語音識別項目

Arduino Nano 33 LiPo適配器nano9jira開源分享

基于Arduino Nano 33 BLE Sense的深蹲計數器

評論