第二章 環境設定

一般而言執行Scratch必需連上網際網路,Scratch也無法跟Arduino主控版做通訊或將程式寫入至Arduino主控版中,要讓Scratch寫的程式與Arduino主控版做通訊,必需通過第三方程式來完成,並由第三方程式提供的Arduino積木來與Arduino主控版通訊,並操控外部感測器或控制外部模組,本教材採用可離線使用Scratch的第三方程式bDesigner

2-1. bDesigner簡介


bDesigner是一套由桃園市八德國小蔡佳倫老師自行研發之Scratch擴充積木軟體以及blockly程式,目前開放給中小學老師、學生自由使用。


bDesignerScratch有別於其他的擴充積木軟體,它具有網頁控制、支援最多四組Arduino UNOnodeMCUmicro:bit主控版的特點。

2-2 bDesigner下載、安裝

進入bDesigner首頁https://bdesigner1.webnode.tw/,點選網站右上「檔案下載」選項,並下載貓咪盃Arduino比賽專用的版本。

安裝bDesigner教學影片 (Youtube)

下載後,直接點兩下進行安裝,如果出現保護訊息視窗,請點選「其他資訊」,再點選「仍然要執行」,便可以進入bDesigner的安裝視窗。

當詢問是否在桌面建立捷徑,請勾選 建立捷徑 ,接著都點選下一步 就可以安裝完成!。

安裝完畢之後,勾選「啟動bDesigner」,就會立刻執行bDesigner程式,安裝完畢也會在桌面上產生一個bDesigner的捷徑。

2-3燒錄韌體

要讓bDesigner的離線版ScratchArduino主控版做連線,需將韌體寫入至Arduino主板中,才能讓Scratch程式對Arduino主板做後續的控制,先將Arduino主板接上USB傳輸線,然後再接至電腦上。

偵測通訊埠

以下操作是讓電腦偵測Arduino主板接至哪個通訊埠,未來在寫ScratchArduino積木時會使用到這個通訊埠,會因不同的USB插孔而不同必須記起來,偵測結果可能會出現電腦已內建的通訊埠「COM1」或「COM2」,請忽略這兩個通訊埠,如下圖通訊埠為「COM4」。

選擇開發板

點選「燒錄」功能表的「開啟燒錄程式」,下拉板子選項選擇「Arduino UNO」控制主板,通訊埠選項則選擇上一步驟所偵測到的通訊埠,然後按「燒錄」鈕,將韌體燒錄至Arduino主板內。

當燒錄完成以下的燒錄視窗自動關閉,回到自動燒錄程式視窗,按「關閉視窗」鈕。

開啟Scratch3.0

bDesigner程式視窗中下拉「積木類型」選項,然後選擇「USB連多個Arduino(包括RFID)」,並點選「開啟擴充積木」按

第一次執行選擇「是」開啟Scratch3.0離線程式。

執行中下圖的「命令提示視窗」是正在執行與Arduino韌體通訊的中介程式,在執行中不能關閉,未來如果ScratchArduino主板斷線要重新連線,則將此「命令提示視窗」關閉,回到bDesigner主程式視窗再次點選「開啟擴充積木」按鈕(確認USB傳輸線已接妥),不需再重新開啟Scratch3.0離線程式(上圖視窗按「否」)。

擴展Arduino積木


當開啟Scratch3.0離線程式後,預設的積木中並沒有Arduino積木,必需將Arduino積木擴展進來,點選Scratch3.0程式左下「添加擴展」圖示,並選擇「Arduino UNO」控制板。

當添加完成後,積木分類區會自動增加「Arduino」積木分類。

測試程式 (第一次使用教學影片)

請依下列積木實作,完成後按下「綠旗」開始執行。

觀察Arduino主板上D13腳位旁的LED是否快閃,如有插擴充板時,在擴充板的左上LED應該會快閃。

Arduino主板D13 LED位置

擴充板D13 LED位置

儲存程式

撰寫程式過程中一定要記得隨時存檔,如果是開新檔案,存檔前請先在Scratch主程式上方輸入自訂的專案名稱(檔案名稱),然後再選功能表的檔案 / 下載到你的電腦」,如果是開啟舊檔修改程式,則只要選功能表的檔案 / 下載到你的電腦」即可。

2-4 問題處理 (斷線處理教學影片)

一旦主板與Scratch斷線將無法再做連線控制,以下情形會導致主板與Scratch斷線:

        1. USB傳輸線接觸不良或曾經拔出

        2. 主板與Scratch傳輸資料時,寫入資料到數位腳位D0」或「D1」(一定要避免使用此兩腳位)

        3. 輸出控制信號太密集,例如:當要控制伺服馬達轉動角度時,請至少延遲0.1秒以上再送下一角度的信號

以下方式可以查看目前主板與Scratch是否連線中:

拖曳一個讀取類比腳位的積木在空白處,並指定一個未使用的腳位,例如:A5」,使用滑鼠點選該積木,如果有顯示數值代表「連線中」,如果沒有顯示數值代表已「斷線」。

解決方式(二擇一):

  1. 關閉命令提示視窗(正在執行Python程式黑底白字的那個中介程式),再從bDesigner主程式按開啟擴充積木」按鈕,當出現詢問「是否開啟Scratch3.0」視窗時,請按「否」,重新執行「命令提示視窗」中介程式

2. 在程式中單獨放置一個關閉板子積木,當斷線發生時,滑鼠點關閉板子積木,再按綠旗重新執行程式

如果以上兩種處理方式還無法恢復連線,請拔掉USB傳輸線重新插入一次,再試試以上解決方式,再不行請將Scratch存檔,關閉bDesigner主程式後重新執行。

2-5 多主板連線控制

bDesigner是市面上唯一一款可同時連線控制多塊主板的Scratch中介軟體(最多可同時控制四塊主板),由於每塊主板都是要使用連線控制,所以會佔用每塊主板的D0」及「D1與Scratch做通訊,並且每主板一次使用前都需「燒錄韌體」(參考2-3),使用前請每次插入一片主板再確認該板的通訊埠,以為後續設定主板的編號和通訊埠

以下程式碼分別讓兩塊Arduino主板的數位第13支接腳輸出數位信號,「編號1」主板的「D13」LED以每隔1秒亮、滅,「編號2」主板的「D13」LED以每隔0.5秒亮、滅

2-6 離線燒錄

此節將介紹 bDesigner另一好用的離線燒錄功能,前面介紹的方式是先將通訊韌體燒錄至Arduino主板(Arduino UNO)內,再由Scratch的程式控制Arduino主板,但如果沒有電腦或是沒開啟Scratch,Arduino主板將無法運作,因此,此節介紹的離線燒錄功能,可將程式直接燒錄到Arduino主板,未來只要供給Arduino主板電源,不須連接電腦,主板就能隨時隨地獨立運作,而且不會佔用D0」及「D1」兩支數位腳位,非常實用喔。

安裝Arduino函式庫

第一次使用離線燒錄功能,電腦需要從網路上安裝Arduino函式庫到電腦中,開啟bDesigner主程式後點選功能表安裝 / 安裝Arduino函式庫」,此時,電腦會開啟「命令提示視窗」自動開始安裝程式庫,等到安裝完成後「命令提示視窗」會自動關閉,電腦只要安裝過Arduino函式庫,下次就不需再下載安裝了。

Ps.如果未安裝函式庫會造成編譯錯誤,另一種方式可手動將C:\bDesigner3.0\Arduino5\libraries\內的所有資料夾複製至C:\bDesigner3.0\Arduino\libraries\」中

開啟Scratch3.0

接下來要開啟C語言燒錄環境」來編寫要燒錄到Arduino主板的積木程式,「C語言燒錄環境」可從Scratch3.0程式中開啟,bDesigner主程式先開啟Scratch3.0程式

再從Scratch 3.0的功能表點選檔案 / C離線燒錄」,就能開啟「C語言燒錄環境」。

測試程式和燒錄

接下來我們在C語言燒錄環境」編寫程式,使用Arduino主板上的D13LED來測試離線燒錄功能,讓「D13LED每隔0.2秒閃爍一次。

依下圖寫好程式,功能表點選上傳與監看 / 燒錄」,出現「硬體燒錄」視窗後,選擇Arduino主板(Arduino UNO),再選主板所接的USB通訊埠(每個USB的通訊埠不一樣),按下燒錄」鈕開始燒錄,當燒錄完成會出現一個「編譯上傳」的提示視窗,此時Arduino主板就可離開電腦獨立運作了,當然必須提供主板電源才可以。

PS. C語言燒錄環境會將積木程式轉成Arduino的C程式,有興趣的同學可以學習有更多功能的文字式程式語言。

下次要再次使用Scratch控制Arduino主板時,要記得再燒錄一次韌體喔(參考2-3燒錄韌體)

參考資料:bDesigner離線燒錄