有關擴展的應用,請參考探奇文章:mBot 遙控奇美電風扇 ( mBot remote controller by mBlock Extension)
請點擊『擴充』--> 『擴展管理器』
你會發現已經有許多專家高手寫出擴展,並且上傳到mBlock的 Github,供大家使用。
點擊『已安裝』按鈕,就會顯示已經安裝在mBlock的擴展,有多種控制板,例如mBot,Auriga,還有Arduino
這些擴展採用JSON(JavaScript Object Notation) 格式,乍看之下很是複雜,其實仔細比較,發現有一定的規律及順序。
以mBot為主,關於『計時器歸零』指令與『計時器』讀值,就是下面的程式:
["R", "timer","getTimer", "0",
{"encode":"{n0}","setup":"","inc":"","def":"double currentTime = 0;\ndouble lastTime = 0;\ndouble getLastTime(){\n\treturn currentTime = millis()/1000.0 - lastTime;\n}\n","work":"getLastTime()","loop":""}],
["w", "reset timer","resetTimer", "0",
{"encode":"{n0}","setup":"","inc":"","def":"double currentTime = 0;\ndouble lastTime = 0;\n","work":"lastTime = millis()/1000.0;\n","loop":""}]
最近有老師發現mBlock裡面的Arduino指令中,所提供的計時器,並沒有效果。但是在mBot是可用的。仔細比對Arduino.s2e,mBot.s2e以及Auriga.s2e,發現裡面關於Timer的指令有差異。
於是利用記事本,開啟Auriga.s2e,簡單貼上上面的程式,並且修正Arduino.s2e的內容。重新執行mBlock,可以發現mBot Ranger的指令中已經有了『計時器歸零』指令與『計時器』讀值。
檢查Arduino,所編寫的Sketch程式,也正確出現getLastTime();
雖然不知道添加這些擴充會不會有其他影響,不過如果因為亂改造成mBlock出現問題,大可不必擔心,只要點擊『還原出廠擴展』就能恢復正常。
擴展中,這個s2e檔案是針對上傳到Arduino的離線模式,所進行Sketch轉寫的方式,連線執行的指令在js子目錄中。這部份比較複雜,我還不會修改。
總結:這樣的修改僅對於離線模式有效,使用USB,2.4G,藍牙的連線控制是無法作用的。
當然還是希望mBlock正式推出更新版本,才能全面考量所有指令的影響,做出最妥適的修正。
Scratch 與 mBlock 都,
沒有留言:
張貼留言
探奇歡迎大家留言討論!謝謝分享你的意見。