最近,我從亞馬遜購(gòu)買(mǎi)了一臺(tái)名為“MPU-6050”的3軸陀螺儀和加速度計(jì)。它花了5美元。當(dāng)我研究“Leap Motion”的應(yīng)用程序時(shí),我發(fā)現(xiàn)了許多可以通過(guò)Leap Motion控制Google Earth的演示程序。我嘗試在此項(xiàng)目中使用MPU-6050來(lái)控制Google地球。
第1步:關(guān)于Google Earth API
Google地球?yàn)殚_(kāi)發(fā)人員提供插件和API。您可以將插件嵌入到您的網(wǎng)頁(yè)中。您還可以使用Javascript控制Google地球。
首先,我從這些教程中學(xué)習(xí)了Google Earth API的基礎(chǔ)知識(shí),例如設(shè)置緯度和經(jīng)度。
步驟2:關(guān)于MPU-6050
MPU-6050為您提供3軸陀螺儀和加速度數(shù)據(jù)。它通過(guò)I2C連接到Arduino。我從亞馬遜購(gòu)買(mǎi)的傳感器沒(méi)有手冊(cè)或數(shù)據(jù)表,所以我需要有關(guān)如何使用它的信息。
Arduino官方網(wǎng)站有一個(gè)MPU-6050的頁(yè)面。它提到“閱讀原始價(jià)值很容易,其余的不是。”聽(tīng)起來(lái)很難!我搜索了很多網(wǎng)站并找到了一個(gè)示例程序。程序從傳感器讀取原始3軸加速度值。我需要角度數(shù)據(jù)來(lái)控制Google Earth API,因此我通過(guò)原始3軸加速度值計(jì)算角度,這對(duì)于該項(xiàng)目來(lái)說(shuō)已經(jīng)足夠了。您可以找到一個(gè)公式來(lái)獲取維基百科中兩個(gè)向量之間的角度。
步驟3:系統(tǒng)架構(gòu)
上面繪制了該項(xiàng)目的系統(tǒng)架構(gòu)。使用傳感器的原始值控制Google Earth的過(guò)程如下:
Arduino從傳感器讀取原始值并計(jì)算角度。
角度數(shù)據(jù)為通過(guò)XBee傳輸?shù)組ac。
Mac通過(guò)Socket.IO將數(shù)據(jù)發(fā)送到瀏覽器。
瀏覽器使用角度數(shù)據(jù)調(diào)用Google Earth API。
步驟4:控制Google Earth的規(guī)范
您可以從GitHub下載此項(xiàng)目的源代碼。
我使用MPU-6050和Google Earth API的數(shù)據(jù)組合設(shè)計(jì)了以下規(guī)格。
地圖根據(jù)傳感器的角度移動(dòng)。通過(guò)地圖的比例調(diào)整移動(dòng)量。即使角度相同,刻度越大,運(yùn)動(dòng)越多。
輕觸開(kāi)關(guān)具有不同的作用。一個(gè)開(kāi)關(guān)被指定為模式轉(zhuǎn)換器。另外兩個(gè)開(kāi)關(guān)用于操作。系統(tǒng)有四種模式。
位置模式:您可以通過(guò)操作開(kāi)關(guān)更改刻度。
平鋪模式:您可以更改視點(diǎn)的傾斜度(鳥(niǎo)瞰圖)。/li>
旋轉(zhuǎn)模式:您可以旋轉(zhuǎn)地圖。
顏色模式:您可以更改網(wǎng)頁(yè)的背景顏色。
您可以通過(guò)按住模式轉(zhuǎn)換器2秒鐘返回默認(rèn)位置(我將東京設(shè)置為默認(rèn)位置)。
Google地球插件提供月球和火星的圖像數(shù)據(jù)。我嘗試過(guò),但沒(méi)有發(fā)現(xiàn)它有趣。當(dāng)我看到地球的地圖時(shí),我可以理解它的位置。但是,通過(guò)查看月球和火星的地圖,我無(wú)法理解它們的位置。如果你熟悉它們,你可能會(huì)喜歡它。
第5步:結(jié)論
在這個(gè)項(xiàng)目中,我用3創(chuàng)建了一個(gè)原始的Google Earth控制器軸加速度計(jì)和開(kāi)關(guān)。對(duì)我來(lái)說(shuō),在沒(méi)有鍵盤(pán)或鼠標(biāo)的情況下控制計(jì)算機(jī)是一種全新的體驗(yàn)。該設(shè)備是原始的,但這個(gè)項(xiàng)目給了我創(chuàng)建一個(gè)原始的人機(jī)界面的樂(lè)趣。
審核編輯黃昊宇
-
加速度計(jì)
+關(guān)注
關(guān)注
6文章
702瀏覽量
45907
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論