資料介紹
描述
?
簡(jiǎn)介和動(dòng)機(jī):
有很多關(guān)于如何在您的項(xiàng)目中使用 arduino/genuino 101 的板載慣性測(cè)量單元 (IMU) 的優(yōu)秀教程。例如:,但缺少有關(guān)如何使用 Arduino/Genuino 101 的板載低功耗藍(lán)牙 (BLE) 傳輸此數(shù)據(jù)的信息。
本教程項(xiàng)目將演示一種使用 Evothings Workbench 通過(guò) BLE 將原始 IMU 數(shù)據(jù)傳輸?shù)揭苿?dòng)設(shè)備的方法。本教程還將展示如何使用Smoothie.js庫(kù) 以圖形方式實(shí)時(shí)顯示 IMU 數(shù)據(jù)。
你需要什么
- Arduino/Genuino 101 板
- USB電纜
- Arduino IDE 1.6.8
- 我們定制的 arduino 草圖,imuble01.ino
- Evothings 工作臺(tái)和 Evothings 查看器?
- Smoothie.js來(lái)自 SmoothieCharts?
- 我們修改后的應(yīng)用文件index.html和app.js
軟件
該項(xiàng)目的代碼已注釋,我鼓勵(lì)您閱讀它。我不會(huì)提供所有代碼如何工作的逐行細(xì)分,而是強(qiáng)調(diào)我認(rèn)為最重要的領(lǐng)域。
對(duì)于 BLE 連接的 Arduino/Genuino 101 項(xiàng)目,了解所需軟件的整體布局非常重要。除了電路板上的 Arduino 草圖之外,您還必須編寫軟件才能在移動(dòng)設(shè)備上運(yùn)行。為了編寫草圖,我們使用熟悉的 Arduino IDE 以及我們項(xiàng)目所需的庫(kù) CurieIMU 和 CurieBLE。
要為移動(dòng)設(shè)備開(kāi)發(fā)我們的軟件,有兩大類選項(xiàng):
- 直接為我們希望與之交互的移動(dòng)設(shè)備的操作系統(tǒng)編寫本機(jī)應(yīng)用程序。
- 使用 JavaScript/HTML/CSS 三重奏編寫一個(gè) Web 應(yīng)用程序,它基本上可以在任何平臺(tái)上運(yùn)行。
在我與 BLE 合作的最初努力中,我面臨的挑戰(zhàn)不僅是學(xué)習(xí) BLE,而且還必須了解這些選項(xiàng)。這就是 Evothings 的用武之地。Evothings 平臺(tái)是一個(gè)完整的“生態(tài)系統(tǒng)”。借助 EvothingsStudio,我們可以使用 JavaScript/HTML/CSS 編寫我們軟件的移動(dòng)應(yīng)用程序組件。通過(guò)在我們的移動(dòng)設(shè)備上運(yùn)行 EvothngsViewer 應(yīng)用程序,我們可以訪問(wèn)設(shè)備的原生功能,例如 BLE。Evothings 平臺(tái)包括一個(gè)名為 easyble.js 的庫(kù),該庫(kù)具有通過(guò) BLE 連接與您的 Arduino/Genuino 101 項(xiàng)目建立和通信的所有必要功能。
?
如果您擔(dān)心不了解 HTML/CSS/JavaScript 會(huì)阻礙您,我可以保證在開(kāi)始這些項(xiàng)目和使用 Evothings 之前,我沒(méi)有任何網(wǎng)絡(luò)編程經(jīng)驗(yàn)。我確實(shí)有 C/Arduino C 和 Python 方面的經(jīng)驗(yàn),但沒(méi)有 HTML/CSS/JavaScript 方面的經(jīng)驗(yàn)。evothings 網(wǎng)站包含大量?jī)?yōu)秀的教程和文章 可幫助您入門。如果您有一些基本的編程知識(shí),并且愿意通讀并學(xué)習(xí)一些有趣的代碼示例,那么請(qǐng)立即投入并使用這個(gè)非凡的工具!
Arduino草圖
我為 arduino 項(xiàng)目編寫軟件的首要原則是建立在其他人的工作之上,這個(gè)項(xiàng)目也不例外。我使用加速度計(jì)和陀螺儀原始數(shù)據(jù)訪問(wèn)示例草圖作為我項(xiàng)目草圖的基礎(chǔ)。這些位于 CurieIMU 庫(kù) ( http://www.arduino.cc/en/Reference/CurieIMU )參考頁(yè)面的底部。我從加速度計(jì)草圖開(kāi)始,然后將相關(guān)的陀螺儀草圖元素剪切并粘貼到其中。
低功耗藍(lán)牙
當(dāng)我第一次開(kāi)始使用 BLE 時(shí),我對(duì)所有新術(shù)語(yǔ)感到不知所措。我希望它會(huì)像通過(guò)串行端口發(fā)送消息一樣簡(jiǎn)單。如果您感到不知所措,請(qǐng)不要擔(dān)心,只需開(kāi)始嘗試即可。您使用它的次數(shù)越多,您就越有信心在您的項(xiàng)目中使用 BLE!有許多很好的教程可以幫助您入門。開(kāi)始學(xué)習(xí)的幾個(gè)好地方是 CurieBLE 庫(kù)參考和 Adafruit BLE 教程:
BLE 標(biāo)準(zhǔn)規(guī)定了服務(wù),這些服務(wù)是相關(guān)數(shù)據(jù)值的集合或集合。在 BLE 的世界中,這些值被稱為特性。每個(gè)服務(wù)和特征都由一個(gè)通用唯一標(biāo)識(shí)符 (uuid) 指定。對(duì)于官方接受的服務(wù),這些 uuid 是為您指定的。信不信由你,我找不到慣性測(cè)量的標(biāo)準(zhǔn)服務(wù)!所以對(duì)于這個(gè)應(yīng)用程序,我必須為我的“imu 服務(wù)”生成一個(gè)自定義 uuid。對(duì)于自定義服務(wù),您必須創(chuàng)建自己的 128 位自定義 uuid。這很容易做到,并且有很多資源可以生成這些 uuid。我使用的是一個(gè)在線 uuid 生成器:
完成后,您可以使用 CurieBLE 庫(kù)創(chuàng)建 BLE 服務(wù):
BLEService imuService("917649A0-D98E-11E5-9EEC-0002A5D5C51B"); // 自定義 UUID
BLECharacteristic imuAccCharacteristic("917649A1-D98E-11E5-9EEC-0002A5D5C51B", BLERead | BLENotify, 12 );
BLECharacteristic imuGyroCharacteristic("917649A2-D98E-11E5-9EEC-0002A5D5C51B", BLERead | BLENotify, 12 );
BLEUnsignedCharCharacteristic appButtonCharacteristic("917649A7-D98E-11E5-9EEC-0002A5D5C51B", BLERead | BLEWrite );
請(qǐng)閱讀 Arduino/Genuino 101 網(wǎng)站上的 BLE 代碼示例(https://www.arduino.cc/en/Tutorial/Genuino101CurieBLEHeartRateMonitor) 和此代碼中的注釋以進(jìn)一步了解如何設(shè)置您的 BLE 服務(wù)和特性。通過(guò) BLE 發(fā)送浮點(diǎn)數(shù):所有 BLE 數(shù)據(jù)都以字節(jié)形式傳輸。因此,無(wú)論您的數(shù)據(jù)是來(lái)自整數(shù)、字符還是浮點(diǎn)數(shù),都必須將其轉(zhuǎn)換為字節(jié)才能通過(guò) BLE 傳輸。無(wú)需將 IMU 數(shù)據(jù)作為浮點(diǎn)數(shù)傳輸,CurieIMU 接口允許您以整數(shù)形式訪問(wèn)原始 IMU 數(shù)據(jù)。然而,這兩個(gè)示例應(yīng)用程序都將這些原始數(shù)據(jù)轉(zhuǎn)換為具有物理意義的浮點(diǎn)數(shù)。這些轉(zhuǎn)換基于 CurieIMU 參考中推薦的公式。對(duì)于加速度計(jì),建議使用以下公式將原始加速度計(jì)讀數(shù)轉(zhuǎn)換為 mg:
? ? ?浮動(dòng) g = (gRaw/32768.0)*getAccelerometerRange()
我們有什么選擇來(lái)處理這個(gè)問(wèn)題?
- 我們可以通過(guò) BLE 發(fā)送原始數(shù)據(jù)整數(shù),并在我們軟件的移動(dòng)應(yīng)用程序端實(shí)現(xiàn)推薦的方程。這將問(wèn)題轉(zhuǎn)移到移動(dòng)應(yīng)用程序上。
- 我們可以將浮點(diǎn)數(shù)轉(zhuǎn)換為字符串。字符串只是 char 數(shù)組,或者另一種看待它們的方式是字節(jié)數(shù)組。然后我們可以在移動(dòng)應(yīng)用程序方面隨意轉(zhuǎn)換或解碼這些字節(jié)。這是 CurieBLE 庫(kù) ( http://www.arduino.cc/en/Reference/CurieBLE ) 的教程/參考所暗示的解決方案。
- 我們可以使用一些 C 編程魔法將我們的浮點(diǎn)數(shù)轉(zhuǎn)換為它們的 char 數(shù)組或字節(jié)等價(jià)物,然后通過(guò) BLE 將它們發(fā)送給移動(dòng)應(yīng)用程序“解碼”。
選項(xiàng) 1 很好,但沒(méi)有教給我們?nèi)魏涡聳|西。此外,當(dāng)我們最終獲得只能作為浮點(diǎn)數(shù)使用的數(shù)據(jù)時(shí),我們將回到我們開(kāi)始的地方。英特爾居里模塊非常強(qiáng)大,那么為什么不使用它來(lái)執(zhí)行計(jì)算并讓移動(dòng)應(yīng)用程序來(lái)處理其他瑣事呢?選項(xiàng) 2 是一種非常常用且可接受的方法,但涉及處理字符串和字符串轉(zhuǎn)換的所有開(kāi)銷。
選項(xiàng) 3 可能是最復(fù)雜的,但也是最有效的。我們跳過(guò)了處理字符串的所有開(kāi)銷。在這個(gè)選項(xiàng)中,我們還將學(xué)習(xí)如何使用代表我們數(shù)據(jù)的實(shí)際字節(jié)。我們將更深入地了解我們的計(jì)算機(jī)如何表示和存儲(chǔ)數(shù)字。我們還將獲得以 Arduino C 為核心的信心。最重要的是,這個(gè)選項(xiàng)也將為我們贏得一些嚴(yán)肅的“極客信譽(yù)”,因此作為優(yōu)秀的制造者和黑客,我們當(dāng)然會(huì)選擇選項(xiàng) #3!
選項(xiàng)#3:
所有數(shù)據(jù)類型在內(nèi)存中都有一個(gè)底層表示。了解浮點(diǎn)數(shù)的存儲(chǔ)和表示方式是我們解決方案的關(guān)鍵。Arduino C 使用 32 位或 4 個(gè)字節(jié)來(lái)表示和存儲(chǔ)一個(gè)浮點(diǎn)數(shù)。char 和 unsigned char 數(shù)據(jù)類型都使用 4 位或 1 字節(jié)來(lái)表示和存儲(chǔ) char 數(shù)據(jù)。
unsigned char 是 CurieBLE 庫(kù)中數(shù)據(jù)交換的“貨幣”:
/**
* 設(shè)置 Characteristic 的當(dāng)前值
* @param value 要設(shè)置的新值,作為字節(jié)數(shù)組。數(shù)據(jù)存儲(chǔ)在內(nèi)部副本中。
* @param length 數(shù)組中要寫入的有效數(shù)據(jù)的長(zhǎng)度,以字節(jié)為單位。
* 不得超過(guò)為此特征設(shè)置的 maxLength。
* @return bool true 設(shè)置值成功,錯(cuò)誤為 false
*/
bool setValue(const unsigned char value[], unsigned short length);
如您所見(jiàn),為了使用setValue()函數(shù)更改特征的值,我們需要將數(shù)據(jù)作為 char 數(shù)組傳遞(unsigned char 數(shù)組與字節(jié)數(shù)組相同)。
所以現(xiàn)在的問(wèn)題變成了,我們?nèi)绾蝹鬟f一個(gè)浮點(diǎn)數(shù)和一個(gè)無(wú)符號(hào)字符數(shù)組?我們可以通過(guò)使用 C 語(yǔ)言union來(lái)做到這一點(diǎn)。union關(guān)鍵字允許我們讓不同數(shù)據(jù)類型的變量在內(nèi)存中共享相同的空間。由于 C 中的浮點(diǎn)數(shù)占用 4 個(gè)字節(jié),我們希望與 4 個(gè)無(wú)符號(hào)字符的數(shù)組共享 4 個(gè)字節(jié)的內(nèi)存空間。
從某種意義上說(shuō),編譯器并不真正關(guān)心我們?nèi)绾谓忉屪止?jié),它只是保留空間并允許我們使用這個(gè)空間,就好像它是我們聯(lián)合中的一種數(shù)據(jù)類型一樣。但是,當(dāng)我們?cè)诔绦蛑惺褂米兞繒r(shí),我們必須非常小心,以確保正確考慮變量的大小和類型。
實(shí)際上,在我們的例子中,我們需要從加速度計(jì)和陀螺儀中分別考慮 3 個(gè)浮點(diǎn)數(shù)。每個(gè)軸一個(gè)浮點(diǎn)數(shù)。我們可以為每個(gè)變量考慮一個(gè)單獨(dú)的變量、聯(lián)合和 BLE 特征。但是,知道每個(gè)浮點(diǎn)數(shù)的長(zhǎng)度為 4 個(gè)字節(jié),并且每次 BLE 傳輸最多可以發(fā)送 20 個(gè)字節(jié),我們可以使用 2 個(gè)聯(lián)合、2 個(gè) 3 個(gè)浮點(diǎn)數(shù)的數(shù)組發(fā)送完整的加速度計(jì)和陀螺儀數(shù)據(jù)集,并且只需2 個(gè)特性,每個(gè)特性 12 個(gè)字節(jié)。這不僅會(huì)使我們的代碼更具可讀性和可管理性,而且效率更高。
為此,我們將使用聯(lián)合來(lái)共享 3 個(gè)浮點(diǎn)數(shù)數(shù)組(需要 12 個(gè)字節(jié))和一個(gè) 12 個(gè)無(wú)符號(hào)字符數(shù)組之間的空間。這樣做是這樣的:
聯(lián)盟
{
? ? ?浮動(dòng)一個(gè)[3];
? ? 無(wú)符號(hào)字符字節(jié)[12];
} 數(shù)據(jù);
當(dāng)從 IMU 讀取數(shù)據(jù)并轉(zhuǎn)換為浮點(diǎn)數(shù)時(shí),我們將其分配給聯(lián)合體的浮點(diǎn)元素:
? ?CurieIMU.readAccelerometer(axRaw, ayRaw, azRaw);
? ?accData.a[0] = convertRawAcceleration(axRaw);
? ?accData.a[1] = convertRawAcceleration(ayRaw);
? ?accData.a[2] = convertRawAcceleration(azRaw);
不幸的是,我們還沒(méi)有完成。如果我們嘗試將聯(lián)合傳遞給setValue()函數(shù),我們的編譯器會(huì)抱怨并且不讓我們繼續(xù)。完成這項(xiàng)工作還需要一個(gè)步驟。我們必須讓編譯器相信我們的并集實(shí)際上是一個(gè)無(wú)符號(hào)字符數(shù)組,方法是這樣轉(zhuǎn)換。演員表是一種編程魔法,它允許我們將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型(https://www.arduino.cc/en/Reference/Cast)。在某些情況下,這可能會(huì)導(dǎo)致數(shù)據(jù)丟失,但在我們的例子中,由于我們只是處理字節(jié),我們根本不會(huì)丟失任何信息。然而,為了執(zhí)行這個(gè)轉(zhuǎn)換,我們確實(shí)需要使用一些指針魔法:
? ?unsigned char *acc = (unsigned char *)&accData;
讓我們翻譯一下:
首先,&accData獲取我們 12 個(gè)字節(jié)的內(nèi)存位置的地址。然后,(unsigned char *)&accData告訴編譯器我們認(rèn)為這個(gè)內(nèi)存位置被視為一個(gè)無(wú)符號(hào)數(shù)組字符。實(shí)際上,這是一個(gè)指向該內(nèi)存位置第一個(gè)字節(jié)的指針。最后,unsigned char *acc將變量acc分配給這個(gè)指針。要處理的內(nèi)容很多,但多讀幾遍就會(huì)明白。如果沒(méi)有,只需按原樣使用模式發(fā)送數(shù)據(jù)。對(duì)陀螺儀數(shù)據(jù)重復(fù)完全相同的命令模式。?現(xiàn)在我們可以繼續(xù)使用移動(dòng)應(yīng)用程序了。
JavaScript/HTML/CSS 移動(dòng)應(yīng)用程序:
為了開(kāi)發(fā)我們的移動(dòng)應(yīng)用程序,必須學(xué)習(xí) JavaScript/HTML/CSS 似乎是一件苦差事。但是,時(shí)間和精力將是值得的!它將為您的項(xiàng)目打開(kāi)許多機(jī)會(huì),并允許您利用許多令人興奮的庫(kù)進(jìn)行編程。一個(gè)這樣的庫(kù),smoothie.js將在此處討論。為了幫助您學(xué)習(xí)如何使用 JavaScript/HTML/CSS,Evothings 網(wǎng)站和 Evothings 工作臺(tái)提供了大量示例和教程來(lái)幫助您。就本項(xiàng)目而言,我發(fā)現(xiàn)最簡(jiǎn)單的方法是修改 TI SensorTag CC2650 示例。此示例代碼遵循功能強(qiáng)大的結(jié)構(gòu),易于閱讀,并且已經(jīng)具有我們項(xiàng)目所需的大部分功能。每個(gè)示例都有一個(gè)包含許多文件的目錄樹(shù),乍一看可能看起來(lái)很復(fù)雜,但出于我們的目的,我們只需要修改示例根目錄中的兩個(gè)文件 index.html 和app.js ,并將smoothie.js庫(kù)添加到我們的項(xiàng)目目錄。下面的項(xiàng)目配方涵蓋了這些步驟
移動(dòng)應(yīng)用程序的亮點(diǎn):
沒(méi)有什么可以替代閱讀代碼,但我將在這里介紹一些亮點(diǎn)。請(qǐng)記住,我們的 IMU 數(shù)據(jù)將作為無(wú)符號(hào)字符或字節(jié)數(shù)組通過(guò) BLE 發(fā)送。幸運(yùn)的是,JavaScript 提供了易于使用的函數(shù)來(lái)將這些字節(jié)轉(zhuǎn)換回任何形式的數(shù)據(jù)。這是一個(gè)代碼片段,它將我們的加速度計(jì)字節(jié)轉(zhuǎn)換回 JavaScript 中的浮點(diǎn)數(shù):
? ?var ax = new DataView(data).getFloat32(0, true);
? ?var ay = new DataView(data).getFloat32(4, true);
? ?var az = new DataView(data).getFloat32(8, true);
字節(jié)通過(guò) data 變量傳遞到我們的函數(shù)中。此數(shù)據(jù)用于實(shí)例化 DataView。一旦我們有了這個(gè),我們就可以調(diào)用 DataView 對(duì)象的許多方法之一來(lái)將數(shù)據(jù)轉(zhuǎn)換為我們想要的表示形式。在?這種情況下,我們要將其轉(zhuǎn)換回浮點(diǎn)數(shù)。還記得我們從 Arduino/Genuino 101 IMU 創(chuàng)建的浮點(diǎn)數(shù)是 4 字節(jié)還是 32 位長(zhǎng)?getFloat32 ()函數(shù)專門用于處理 32 位浮點(diǎn)表示。我們發(fā)送到getFloat32()的參數(shù)功能非常重要。第一個(gè)是一個(gè)數(shù)字,這個(gè)數(shù)字在我們的例子中是 0、4 或 8,表示我們的 4 字節(jié)浮點(diǎn)數(shù)的第一個(gè)字節(jié)的字節(jié)偏移或索引。第二個(gè)參數(shù) true 表示我們的浮點(diǎn)數(shù)是小端格式。就是這樣,很簡(jiǎn)單。我們現(xiàn)在可以將所有的 分配給一個(gè)變量ax、ay或az來(lái)表示沿每個(gè)軸的加速度。
現(xiàn)在,擁有這些數(shù)據(jù)的實(shí)時(shí)滾動(dòng)圖形表示不是很巧妙嗎?當(dāng)然會(huì)!為了實(shí)現(xiàn)這一點(diǎn),我們將使用Smoothie.js庫(kù)。我相信這說(shuō)明了使用 JavaScript/HTML/CSS 為連接設(shè)備開(kāi)發(fā)移動(dòng)應(yīng)用程序的力量。幾乎所有您能想到的用途都有免費(fèi)且易于使用的庫(kù)和框架。
Smoothie.js庫(kù)在?http://smoothiecharts.org/??網(wǎng)站上?有完整的描述。為了學(xué)習(xí)如何使用該庫(kù),作者創(chuàng)建了一個(gè) 10 分鐘的教程(http://smoothiecharts.org/tutorial.html)。在查看示例并閱讀他們的教程后,您應(yīng)該能夠輕松地使用他們的代碼來(lái)創(chuàng)建自己的繪圖。作者還創(chuàng)建了一個(gè)構(gòu)建器頁(yè)面 ( http://smoothiecharts.org/builder/ ),允許您以圖形方式自定義繪圖。根據(jù)您的意愿對(duì)繪圖進(jìn)行格式化后,您可以從構(gòu)建器頁(yè)面底部的文本框中剪切代碼并將其直接粘貼到您的應(yīng)用程序中。
我們將從smoothiecharts.org 主頁(yè)下載smoothie.js庫(kù)到我們的移動(dòng)應(yīng)用程序目錄中以使用它。請(qǐng)按照以下項(xiàng)目配方中的說(shuō)明執(zhí)行此操作。index.html 中的以下行允許我們?cè)趹?yīng)用程序中使用該庫(kù):
這就是教學(xué)的內(nèi)容。讓我們做這個(gè)項(xiàng)目吧!
硬件:
Arduino/Genuino 101。
因?yàn)?Arduino/Genuino 101 帶有板載 BLE 和 IMU 功能,所以無(wú)需制作電路!只需通過(guò) USB 將您的計(jì)算機(jī)連接到您的計(jì)算機(jī)以上傳草圖并訪問(wèn) Arduino 軟件 (IDE) 的串行監(jiān)視器窗口以進(jìn)行調(diào)試。
項(xiàng)目配方:
我假設(shè)您已經(jīng)安裝了 Arduino IDE、對(duì)英特爾居里的板級(jí)支持以及所有必要的庫(kù)。如果沒(méi)有,請(qǐng)?jiān)诖颂帿@取說(shuō)明:https://www.arduino.cc/en/Guide/Arduino101。
1) 下載并安裝 EvothingsStudio 和 EvothingsViewer ( http://evothings.com/download/ )。按照此處特定于您的操作系統(tǒng)和移動(dòng)平臺(tái)的說(shuō)明進(jìn)行操作。
2) 啟動(dòng) Evothings Workbench 并單擊示例選項(xiàng)卡。
?
3) 復(fù)制 TI SensorTag CC2650 演示應(yīng)用程序并為其命名。
4) 使用文件瀏覽器,進(jìn)入 EvothingsStudio/MyApps 目錄,找到您在步驟 3 中重命名的項(xiàng)目的主目錄。
5) 選擇 index.html 文件并將其重命名為 index_old.html。
6) 選擇 app.js 文件并將其重命名為 app_old.js。
7) 現(xiàn)在將本項(xiàng)目教程中的 index.html 和 app.js 文件復(fù)制到新項(xiàng)目的主目錄中。
8) 創(chuàng)建一個(gè)名為 Smoothie 的目錄。
9) 轉(zhuǎn)到 smoothiecharts.org 并單擊標(biāo)有下載 Smoothie.js 的按鈕。Smoothie.js 庫(kù)的文本應(yīng)顯示在您的瀏覽器中。
10) 單擊瀏覽器的文件選項(xiàng)卡,然后選擇將頁(yè)面另存為。在步驟 8 中創(chuàng)建的 Smoothie 目錄中將此頁(yè)面另存為 Smoothie.js。
11) 使用 USB 電纜將您的 Arduino/Genuino 101 連接到您的計(jì)算機(jī)。
12) 使用您的 Arduino IDE 1.6.8,將 imu_ble.ino 草圖上傳到 Arduino/Genuino 101。
13) 打開(kāi)串口連接。在建立 BLE 連接之前,不會(huì)從 arduino/genuino101 imu 發(fā)送數(shù)據(jù),因此此時(shí)您不應(yīng)期望看到任何串行數(shù)據(jù)。
14) 返回 EvothingsWorkbench 并從 Connect 選項(xiàng)卡中獲取您的連接密鑰。
15) 在您的移動(dòng)設(shè)備上啟動(dòng) EvothingsViewer 并輸入連接密鑰。
16) 點(diǎn)擊移動(dòng)應(yīng)用主頁(yè)上的開(kāi)始按鈕。
17) 建立連接后,您應(yīng)該會(huì)在移動(dòng)設(shè)備上看到以下消息,狀態(tài):數(shù)據(jù)流活動(dòng) - 加速度計(jì)。值應(yīng)該在 Arduino IDE 串行窗口上流式傳輸,并且線條應(yīng)該在加速度計(jì)和陀螺儀圖上滾動(dòng)。
18) 搖晃、扭轉(zhuǎn)和轉(zhuǎn)動(dòng) Arduino/Genuino101!
結(jié)論:
您可以選擇多種方法來(lái)收集、傳輸和顯示 IMU 數(shù)據(jù),但我相信這里介紹的方法是最有教益的方法。仔細(xì)閱讀代碼并對(duì)其進(jìn)行試驗(yàn)確實(shí)沒(méi)有替代品。你的努力會(huì)得到回報(bào)。作為創(chuàng)客,我們?cè)绞钦嬲私馕覀兊捻?xiàng)目是如何運(yùn)作的,我們就越能完成:
“投入勞動(dòng)力的最佳紅利總是來(lái)自尋求更多的知識(shí),而不是更多的權(quán)力。” 1906 年 3 月 12 日簽署威爾伯和奧維爾賴特。”
?
- ADIS16470微型MEMS慣性測(cè)量單元(IMU)英文手冊(cè) 0次下載
- 慣性測(cè)量單元M-G370系列廣泛用于工業(yè)系統(tǒng)各個(gè)領(lǐng)域
- 慣性測(cè)量單元M-G366PDG提供低誤差系數(shù)的解決方案
- 愛(ài)普生的慣性測(cè)量單元(IMU)M-G370PDT成為無(wú)人駕駛的理想選擇
- M-G552PR1IMU(慣性測(cè)量單元)RS422接口傳感器
- M-G552PC7 IMU(慣性測(cè)量單元)CAN接口
- IMU(慣性測(cè)量單元)CAN接口M-G552PC1
- 慣性測(cè)量單元(IMU)CAN接口:M-G552PJ7
- M-G552PJ1 IMU(慣性測(cè)量單元)CAN接口
- M-G370PDS慣性測(cè)量單元(IMU)
- InvenSense慣性測(cè)量單元IMU_MPU6050中文數(shù)據(jù)手 2次下載
- iSensor MEMS慣性測(cè)量單元(IMU)手冊(cè)
- ADIS16490/ADIS16495/ADIS16497:戰(zhàn)術(shù)級(jí)慣性測(cè)量單元(IMU),具有業(yè)界最低的SWAP+C
- BM1160小型低功耗慣性測(cè)量單元的詳細(xì)資料介紹免費(fèi)下載 16次下載
- 基于MEMS陀螺和加計(jì)的微慣性測(cè)量單元研制 12次下載
- LOG-LIO: 一種高效局部幾何信息估計(jì)的激光雷達(dá)慣性里程計(jì)方法 735次閱讀
- 一種易于實(shí)現(xiàn)的無(wú)外部設(shè)備IMU校準(zhǔn)方法 1177次閱讀
- MEMS IMU/陀螺儀對(duì)準(zhǔn)的基礎(chǔ)知識(shí) 4380次閱讀
- 預(yù)測(cè)和管理MEMS陀螺儀中的關(guān)鍵噪聲源 1944次閱讀
- 慣性測(cè)量單元可實(shí)現(xiàn)高數(shù)據(jù)分辨率 989次閱讀
- 基于光纖陀螺儀實(shí)現(xiàn)慣性測(cè)量系統(tǒng)的應(yīng)用方案 3547次閱讀
- dfrobot10自由度慣性導(dǎo)航模塊簡(jiǎn)介 1610次閱讀
- 基于MEMS技術(shù)的IMU慣性測(cè)量單元的工作原理解析 1.1w次閱讀
- 慣性測(cè)量裝置IMU的用途_IMU在主機(jī)應(yīng)用處理器的功能 1w次閱讀
- 自動(dòng)駕駛基礎(chǔ) 慣性測(cè)量單元 2723次閱讀
- 自動(dòng)駕駛基礎(chǔ)之高精度地圖和定位慣性測(cè)量單元IMU的詳細(xì)介紹 7105次閱讀
- 集成Arduino和Xsens Awinda慣性測(cè)量套件的可穿戴式人體運(yùn)動(dòng)測(cè)量設(shè)備原型 7510次閱讀
- IMU中傳感器的功能_IMU應(yīng)用實(shí)例_IMU解決方案 2.7w次閱讀
- 慣性導(dǎo)航系統(tǒng)工作原理及應(yīng)用 1.7w次閱讀
- MEMS慣性測(cè)量單元(IMU)/陀螺儀對(duì)準(zhǔn)基礎(chǔ) 3968次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多