2015-02-16

方便簡單好玩的EV3Basic - EV3 樂高機器人的程式控制新選擇

BASIC,培基語言,Beginner's All-purpose Symbolic Instruction Code,一個古老程式語言(讓我想起Apple II,PC AT)。

c0pperdragon完成EV3Basic,可以控制EV3樂高機器人的程式庫,只要利用Microsoft Small Basic的介面,撰寫Basic程式,就能透過USB控制EV3。


首先到GitHub的EV3Basic計畫專頁下載相關檔案,包含

ev3extension.zip :程式庫
ev3explorer.zip :檔案總管
examples_and_doc.zip :範例及說明文件


將三個zip檔案集中在一個子目錄,解壓縮後會產生一些子目錄,其中一個子目錄的名稱是lib,將整個lib子目錄存放在Small Basic的執行目錄下。這樣Small Basic才能在直譯程式時找到相關的物件命令。


接著執行Microsoft Small Basic,請打開Examples子目錄的範例程式,

記得將USB線連接EV3主機與電腦,按下運行的藍色三角形箭頭(或是按F5)


看到EV3顯示Hello World了嗎?!

根據邱老師簡單測試,Basic程式除了直接控制EV3主機之外,也能將EV3感應器數值回傳到電腦端,顯現在文字視窗或是圖形視窗。就是一般所謂的連線控制。

那麼離線的單機控制呢?沒有問題。

執行EV3Explorer,左半邊視窗顯示EV3主機內的檔案,右半邊視窗顯示電腦端的檔案。

預設是在prjs目錄下,建議先使用"New Folder"建立新檔案夾,

 

邱老師在這裡建立一個HappyTest的檔案夾,然後在右半邊視窗選擇寫好的Small Basic程式,副檔名是sb。(跟Scratch一樣^^)

點擊『Compile and Run』,或是『Compile』,EV3Explorer自動將.程式檔案編譯成rbf檔,再上傳到EV3主機。


你可以在左半邊視窗看到rbf檔案,移除USB線,直接操作你的EV3主機,就能執行這些rbf檔案。


如果沒有看到檔案,可以點擊『Refresh』更新顯示檔案。

測試『SensorInfo』程式,EV3主機能夠正確地自動辨識感應器種類,不過超音波感應器的CM數值最大為100,應該需要修正。我再向作者反應。

目前最新版本是0.5版(2015/2/25),根據作者的說明,可以使用下列物件:

EV3
LCD
Motor
Buttons
Sensor
Speaker
Assert

詳細的物件屬性,物件方法(操作函數)還需要有人整理說明,不過大家能先從範例程式中略知一二。

另外一個說明文件解釋一些程式的限制,例如變數型態,陣列,文字的使用差異。

2015.2.25 新增Daisy Chain,I2C功能)

我非常佩服這位作者的功力,除了提供相關程式庫,供直譯器直接應用。還熟知內部編譯運作方式,製作能夠編譯成rbf檔案的檔案總管。如此一來就能獨立單機執行程式。

雖然Basic給人簡單功能的感覺,直譯的運行速度也不夠快,但最重要的是不需要更改任何韌體,直接與EV3的VM結合,非常方便使用。

如果你也喜歡Basic語言,那麼一定要試試看!

歡迎分享你的經驗,一起討論。