mblock第十二課(離線執行)

星期二, 3rd 十一月 2015

mblock程式寫完之後,還可以轉換成Arduino程式語言,直接上傳到Arduino控制板,離線執行程式。

如果想要將程式上傳到Arduino控制板,讓程式不需和電腦連線也能直接在Arduino控制板上執行,則需要再安裝Arduino IDE,請直接上官網(https://www.arduino.cc/en/Main/Software )下載安裝。

注意:

如果要上傳到Arduino控制板,離線執行程式,所有定義的變數、指令都只能用英文,不可以用中文。

跟鍵盤、螢幕有關的指令都不能用。

程式只能單一程序,不可以多工:積木指令從頭到尾一串,不能同時有很多個執行程序。

----------------------------

將第一個指令[當綠旗被點一下]改成[Arduino主程式]

在[Arduino主程式]積木上,按滑鼠右鍵,然後在點[upload to arduino]

可以看到畫面變成三個區塊,最右邊是程式區,可以看到轉換後的程式碼。

按程式區上的[上傳到Arduino]就可以將程式上傳到Arduino控制板上。

接著程式先進行編譯,然後上傳。

如果沒有問題的話,會顯示上傳完成..100%,按[結束]

完成後,就可以將USB線從電腦上拔除,然後接到[行動電源]上,就可以執行程式動作

也可以直接在DCin電源輸入處插上外接電源(建議7V~12V),就可以執行程式。

外接電池除了傳統電池,大概常用的有下面兩種:

右邊是一般常見的9V電池,廠商有賣轉接線,可以直接使用。(電量較少,簡單測試可以使用)

左邊是18650電池,電量較大,適合長時間使用。每個電池標準電壓是3.7V,充飽電可以到4.2V,可以買3個串接的電池盒,加起來剛好12V左右,也可以當做其他設備的供電。

 

常見問題:

跟鍵盤、螢幕有關的指令都不能用,請移除。

按程式區上的[上傳到Arduino]後,程式進行編譯,接著就沒有反應,沒有顯示上傳完成.....

可能是程式無法進行轉換,可以直接在中間的區塊進行修改,將可能的問題簡化,再上傳一次。

簡化後可以完成,表示mblock的轉換程式無法完成太複雜的指令轉換,您可以直接在Arduino IDE 上修改原始程式後再上傳。

註:林老師的書中有提到[資料型態]也會影響轉換,這個有點複雜,初級班就跳過了。

------------------------------

注意:

[mblock]和[ Arduino IDE]兩個程式不可以同時使用,會有一邊抓不到Arduino控制板。 

這裡使用的版本是:v2.2.1.08.14.001

據說:新的mblcok v3.0 在win7系統上,使用離線上傳到arduino 時會發生無法上傳的情況。

解決方案如下:(感謝廖翊強老師提供)

將 C:\Users\當前用戶名\AppData\Roaming\將這個文件刪除com.makeblock.Scratch,然後重啟軟件

這個問題是目前,mblock 會發生的錯誤,不止是在win7 的版本上,如果有上傳不了的,都直接刪掉這個資料夾就可以,如果你的電腦上看不到[AppData]這個資料夾,請打開檔案總管將隱藏的項目打開就可以看到這個資料夾路徑 。

-----------------------------------------

相關連結:

Arduino初級班課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605771

Arduino課程準備
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599681

Arduino第一課(概論、連接)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599732

Arduino第二課(LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599733

Arduino第三課(用鍵盤控制LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600369

Arduino第四課(LED紅綠燈)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600422

Arduino第五課(pwm)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600854

Arduino第六課(RGB三色LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600855

Arduino第七課(蜂鳴器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602388

Arduino第八課(按鍵)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602288

Arduino第九課(可變電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602290

Arduino第十課(光敏電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602291

Arduino第十一課(伺服馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605139

Arduino第十二課(離線執行)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605798

-----------------------------------

Arduino進階班課程目錄

Arduino第十三課(超音波感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620602

Arduino第十四課(搖桿)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620718

Arduino第十五課(人體紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620975

Arduino第十六課(主動式紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/621311

Arduino第十七課(繼電器) 
http://blog.ilc.edu.tw/blog/blog/868/post/93477/622442

Arduino第二十課(電腦裡的馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/614292