樂高機器人 Lego NXT與Android 手機三軸加速感應器應用

Android 手機裡面有個Accelerometer 加速感應器,它的作用就是能即時知道手機的移動或翻轉位置狀態如下圖所示

X軸為「左右翻轉」的加速度
Y軸為「前後翻轉」的加速度
Z軸為「上下移動」的加速度


利用這個特性我們就可控制 Lego NXT 在行走時能左右轉或是加速、煞車、前進、後退
X軸往左翻負值、往右翻正直--->控制車子左右轉 value:-10<=X軸<=10
Y軸往前翻負值、往後翻正直--->控制車子往前加速 往後煞車 value:-10<=Y軸<=10
Z軸目前用不著

目前樂高機器人開發軟體可以用官方的NXT-G軟體、EV3或是需要付費取得的 LabViewRobotC
其他免費的開發軟體有Java Lejos、C語言的NXC、微軟的.Net C#也有開發套件,看個人喜好而定。


這次要測試的手機App軟體與樂高機器人NXT都是用Java Eclipse與相關套件開發,請自行下載安裝
樂高NXT執行Java程式前要先刷Lejos韌體,看你的機身是那種版本(刷機有風險請自行評估),NXT刷完Lejos韌體後也可以刷回樂高原廠韌體我刷過好幾次都沒問題。原廠新版韌體在官網上都可以自由下載升級。


刷完機成功之後的樣子



花了一些時間寫完手機App程式與樂高機器人NXT程式,只要手機有藍芽都可以傳資料給樂高NXT也可以接收從樂高NXT回傳的資料儲存並分析。


App執行後的步驟:
1.把樂高NXT啟動、藍芽開啟並執行程式等待手機App的藍芽連結此時顯示「Waiting」。

2.按下App「藍芽連結」鈕如果找到樂高NXT並連結成功後會顯示「Connected」,樂高會把爪子打開後關閉一次代表連結成功。

3.啟動App讀取手機上的三軸加速器資料,並把資料傳給樂高NXT接收與執行對應動作
A.X軸在正負2的數值內保值前進或後退,超過正負2代表要樂高要左轉或右轉
B.Y軸在直立超過9時代表樂高NXT要停止不動,其餘時候是前進或後退

4.手機關閉而藍芽連結停止後樂高會把爪子打開後關閉一次代表結束

1.手機與樂高藍芽連結


2.讀取手機3軸感應器資料


3.


4.


5.




完成後的測試影片
1.


2.


下次再試試手機上其他感應器如陀螺儀、角度感應器、GPS與樂高NXT搭配的用途。
感謝你耐心的看完。
http://ai2.appinventor.mit.edu
也可以用這個來開發,簡單易學.

riklin wrote:
Android 手機...(恕刪)
我對圖形化的開發模組實在沒轍,試了幾次就放棄因為有時候20行的程式碼用圖形模組串連還搞不定光變數與迴圈的交叉處理屬性就把我難倒了。





文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!