到目前為止械荷,可以看到有些 Arduino 的函式搜贤,由于受到 mBlock 提供的積木功能而無法直接使用闸英,照理來說锯岖,因?yàn)?mBlock 是基于 Scratch,應(yīng)可以撰寫Scratch Extensions自阱,而按照Scratchbot新功能介紹的說明嚎莉,可以透過 mBlock 中 ext 中 s2e 等檔案的載入來自行擴(kuò)充積木,不過沛豌,要修改的不是 mBlock 安裝目錄下的東西趋箩,而是 C:\Users\使用者\(yùn)Documents\mBlock\libraries 下的檔案赃额,這點(diǎn)要注意!
升級(jí)至 mBlock 2.1.4
在 mBlock 2.1.4 中叫确,可以使用“編輯/Arduino mode”跳芳,這可以看到積木程式轉(zhuǎn)換為 Arduino 官方語言后的寫法:
當(dāng)檢視畫面轉(zhuǎn)換為 Arduino mode 時(shí),Arduino 不支援的指令竹勉,對(duì)應(yīng)的 Scratch 積木方塊就不能使用飞盆,因此,“事件”中的“當(dāng)綠旗被點(diǎn)一下”的積木次乓,要改成“Arduino 主程式”積木吓歇,而上圖是〈mBlock & Arduino(8)光敏電阻、亮度感應(yīng)器與光線追蹤器〉中的程式票腰,在 Arduino mode 中轉(zhuǎn)換的結(jié)果城看。
這對(duì)于寫程式不怎么熟的人來說還不錯(cuò),大部份的時(shí)間還是可以使用積木來搭建程式杏慰,并看看 Arduino 的對(duì)應(yīng)程式碼测柠,逐漸熟悉官方語言的寫法,就算不想使用官方語言缘滥,也可以在積木程式搭建好之后轰胁,按下“用 Arduino IDE 編輯”,作些小修改朝扼,照樣可以完成想要的功能赃阀,這樣應(yīng)該比寫擴(kuò)充來得簡(jiǎn)單一些 … XD
只是,這樣就不能使用 Arduino 與 Scratch 直接互動(dòng)擎颖,不過凹耙,程式寫好了,就可以直接上傳至 Arduino肠仪,不需要使用 USB 連接電腦了肖抱,只要透過 USB 或者是 2.1 mm 的 power jack 來外接電源,就可以執(zhí)行了异旧。
用 Arduino IDE 編輯
如果想要在 mBlock 的 Arduino mode 中意述,按下“用 Arduino IDE 編輯”來修改程式,必須下載吮蛹、安裝Arduino IDE荤崇,安裝好之后,可以在“工具/板子”中設(shè)定你的 Arduino 板子潮针,在“工具/序列埠”中設(shè)定連接埠:
在上傳至 Arduino 之前术荤,要先取消 mBlock 中的連接埠指定,這樣才不會(huì)造成這兩個(gè)軟體要同時(shí)存取連接埠的沖突每篷,接著執(zhí)行“檔案/上傳”瓣戚,就可以將程式上傳至 Arduino 了端圈!
如果你的程式碼不需要經(jīng)由 Arduino IDE 修改,也可以直接在 Arduino mode 下子库,按下“上傳至 Arduino”按鈕舱权,這會(huì)將程式碼編譯并直接上傳至 Arduino。
如果自行上傳程式至 Arduino 了仑嗅,無論是使用 Arduino IDE 上傳宴倍,或者是在 mBlock 中按下“上傳至 Arduino”按鈕,想要再度使用 mBlock 控制 Arduino 的話仓技,得記得重新上傳 mBlock 的韌體(也就是在指定連接埠之后鸵贬,再執(zhí)行一次“串口連接/更新固件”)。
使用 PWM 控制伺服馬達(dá)
在〈mBlock & Arduino(9)伺服馬達(dá)控制〉中我們談過脖捻,可使用 PWM 來控制伺服馬達(dá)轉(zhuǎn)動(dòng)角度恭理,不過,這要使用到delayMicroseconds函式郭变,而 mBlock 中沒有對(duì)應(yīng)的方塊,不過涯保,你可以先設(shè)計(jì)以下的程式:
如果“等待”方塊可以支援到如圖設(shè)定的秒數(shù)诉濒,在切換至 Arduino mode 之后,直接按下“上傳至 Arduino”按鈕夕春,伺服馬達(dá)應(yīng)該會(huì)轉(zhuǎn)動(dòng) 90 度未荒,不過,等待方塊對(duì)應(yīng)的是delay函式及志,顯然沒辦法支援到這么小的秒數(shù)設(shè)定片排,以我實(shí)際的測(cè)試為例,馬達(dá)會(huì)轉(zhuǎn)動(dòng)速侈,不過沒有轉(zhuǎn)動(dòng)到 90 度左右率寡。
這時(shí)可以按下“使用 Arduino IDE”編輯,找出delay(1000 * 0.0015)倚搬,將之修改為delayMicroseconds(1500)冶共,之后執(zhí)行“檔案/上傳”,在程式完成上傳后每界,你的馬達(dá)應(yīng)該就可以轉(zhuǎn)動(dòng) 90 度左右了捅僵!
升級(jí) mBlock 2.1.4 后的小問題
附帶一提的是,mBlock 2.1.4 的“設(shè)置伺服馬達(dá)腳位…”的角度指定眨层,改成了下拉選單的方式:
這樣的設(shè)計(jì)下庙楚,還是可以自行指定角度,不過趴樱,之前版本是只有自行指定角度而沒有下拉選單馒闷,也因此酪捡,如果你開啟之前 mBlock 版本下寫的程式,而其中用到了“設(shè)置伺服馬達(dá)腳位…”的話窜司,新版的 mBlock 就不認(rèn)得了:
這時(shí)記得修正為新的積木方塊就是了 … XD
感謝CodeData用戶:caterpillar的貢獻(xiàn) 著作權(quán)歸作者所有
整理:寧波家電物聯(lián)網(wǎng)云平臺(tái)沛善,中科極動(dòng)云