App Inventor 樂高EV3元件 – 準備上線

2010年我們會開始玩 App Inventor 純粹是誤打誤撞,也不小心發現了上面的 LegoNxt元件可以做到直接控制樂高NXT機器人這件事,而且更棒的是樂高機器人端不用寫程式,只要專心寫手機端程式就好。這當然是因為樂高對於NXT定製了一個 DirectCommand 規格,實際上就是一堆位元陣列,在CAVEDU 2011 年所出版的  [Android / NXT 機器人大戰:智慧型手機控制機器人] 與 2012 年所出版的 [Android手機程式超簡單App Inventor 機器人卷] 中就有談到這些事情。大概就是長得像這樣的東西,NXT自己會知道哪一個位元組的意義並轉換為它該做的事情

0x0C 0x00 0x80 0x04 0x02 0x64 0x07 0x00 0x00 0x20 0x00 0x00 0x00 0x00

首先:為什麼App Inventor 的NXT元件沒辦法控制EV3?因為兩者的 Direct command 格式根本不同,所以EV3根本看不懂。

請參考我們一年多以前寫的 App Inventor 直接控制樂高 EV3 機器人 Direct Command

但要自己做一個 App Inventor 元件也不是件容易的事情,因為沒有可供測試的地方啊,所以您需要使用 MIT 提供的原始碼自己架一個 linux server,接著才能在上面開發元件。後來 MIT 開了一個 extension server 讓大家可以編寫 .aix 擴充檔來測試,相關的文件才慢慢多了起來。包含台灣的 PieceDuino 也有開發了相關的元件:

12346361_1651657771769401_2492747964884747469_n

請參考 puraVida 的教學,您就可以知道底層還是用 java 來寫 Android,總歸一句就是硬硬硬。這件事大概搞了一年多吧…  最近終於露出曙光,感謝台大資工系林祥瑞同學。本文是讓各位好朋友們知道,CAVEDU 為了大家,一直有在努力~另外,

歡迎大家許願說說看您對於EV3元件應該要新增哪些功能,我們會試著做出來喔!

來看目前的成果吧,我們是根據原本的NXT元件改成EV3的格式來對應,話是這樣講沒錯,但也是有非常多的文件與程式碼要爬。下圖中是我們自己架的 server,相關EV3元件都匯入了。包含了EV3主機、馬達與五種感測器。
12341115_935096766561198_7331511895278790223_n
EV3顏色感測器相關指令

12342522_935096789894529_2195970101375555178_n

EV3馬達相關指令

12376557_935096773227864_7220939319532785577_n

EV3超音拍感測器相關指令

12321537_935096769894531_2656901792250596095_n

 

 

 

2 thoughts on “App Inventor 樂高EV3元件 – 準備上線

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *