mBlock & Arduino(1)哈囉!LED!


作為一個離開電機工程領域的逃兵,最近竟然開始想玩 Arduino,心境上實在有點微妙,翻閱一本本 Arduino 書籍時,面對書上的電子電路元件,真是感到即熟悉又陌生(好歹當年也認真準備過研究所考試,雖然後來備取沒上 XD)…

為什麼會想玩 Arduino?我想了很久,或許是因為在程式設計這條路上,多年來累積了點學習上的自信,另一方面,Ardunio 有不少電路模組,在入門時可減輕對電子電路理解上的負擔,而最想試試的是使用圖型化程式語言來控制 Arduino,因為之前使用圖型化程式語言的經驗告訴我,它們總會帶來一些不同的設計想法。

就當做是一種挑戰吧!重新探索我曾經離開的領域 … XD

我後來選擇基於 Scratch 圖型化程式語言,目前基於 Scratch 1.6 而建立的 S4A(Scratch for Arduino)是相對來說比較成熟的產品,如果想要基於 Scratch 2.0 的產品,則有 S2A,不過,幾經考慮之後,我後來選擇試試目前發展快速、基於 Scratch 2.0 而建立的 mBlock(之前命名為 ScratchBot)。

一樣地,我想到哪玩到哪,然後留下一些記錄,第一個要來玩的,就是點亮 Ardunio 板子上內建的 LED(Light-Emitting Diode)!

mBlock 與 Arduino 環境準備

首先,可以先到 Makeblock Academy 下載 mBlock 與 Arduino 驅動程式,如果需要最新的版本,可以至 mBlock.cc 下載,兩者略有不同,我的文件將先以 Makeblock Academy 下載的版本為開始。

在安裝 mBlock 時需要 Adobe AIR,這是 Scratch 2.0 離線版需要的,請確定安裝;接著安裝 Arduino 驅動程式完成之後,使用 USB 線連接電腦與 Arduino,並在「裝置管理員」中確認一下你的連接埠:

mBlock 與 Arduino

可以看到我使用的是 Arduino Uno,Uno 取自義大利文 Uno Punto Zero,也就是 1.0 的意思,用來代表 Arduino 開發軟體進入到 1.0(發表於 2011 年 11 月 30 日),寫這個文件時,最新的版子是 R3(Revision 3)。

目前 Makeblock Academy 下載回來的 mBlock,安裝完後還是會顯示 ScratchBot 的圖示(而從 mBlock.cc 下載的版本,已經是顯示為 mBlock 圖示),按下圖示啟動之後,於選單「連接」中設定你的 Arduino 版子與連接埠:

mBlock 與 Arduino

第一次要先上傳韌體到板子,按下「更新固件」開始上傳:

mBlock 與 Arduino

閃爍 On-board LED

照理說,要先來個 Hello, World 之類的,不過 Arduino 上沒有裝置可以畫面啊!一般都會接個 LED 讓它閃爍來當第一個 Arduino 的操作體驗,不過,這邊我還沒要介紹怎麼拉電路,因此我要直接控制 Arduino Uno 板上子上標示為 L 的 LED 燈:

mBlock 與 Arduino

標示為 L 的 LED 燈有內建電阻,並且是吃 D13 這個腳位的輸出,因此,只要設定 D13 腳位為 1,也就是高電位(5V),就可以讓它亮起來,設定為 0,也就是低電位(0V)時,就可以讓 LED 熄滅,你可以建立以下的程式:

mBlock 與 Arduino

想取得控制方塊,只要看它的顏色,就可以知道它在哪個分類,例如上圖中的方塊,可以分別在「事件」、「控制」與「機器人模塊」中找到,如程式所示,當你按圖中左上方的旗子時,就可以看到標示為 L 的 LED 燈不停重複地,以一秒的間隔進行閃爍。

影片

當然,這只是為了能快速體驗一下如何使用 mBlock 來控制 Arduino,如果要開始銜接電路元件或模組,得瞭解更多 Arduino 板子上的輸出入腳位,以及一些電子電路的知識。

順便一提的是,上頭的 Arduino 圖是來自於 Fritzing 這個基於開源硬體精神(open-source hardware initiative)的電路設計軟體,軟體本身也是開源,可以在官方網站下載!