mblock第十二課(離線執行)
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當前用戶名AppDataRoaming將這個文件刪除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