2014年6月11日 星期三

[課程] Arduino實際操作

時間:2014.6.11
講者:江昭漢
講題:Arduino 4 Scratch
--
今天請到的講師是一位在國小教小朋友寫code的老師
這次請他來教我們實際操作Arduino以及他的coding方式
感覺超好玩的(灑花),那麼就開始吧!

今天要使用到的板子型號是Arduino Uno:

 ▲Arduino Uno

小巧可愛的板子,網路上其實都能找到相關資訊,這裡就不多做解釋了XD
聽說一片不到500大洋就買得到了,相當便宜呢!
是適合新手的入門款

STEP-1:下載Arduino IDE & S4A

  • S4A(Scratch for Arduino):
     
         S4A is a Scratch modification that allows for simple programming of the Arduino open source hardware platform. 
可以進入Arduino的官網去下載Arduino IDE



也可以由講師要我們連的:台中市教育局網路中心數位教學平台
路徑為「首頁 > 科技教育《開放硬體》 > S4A介紹與入門 > S4A程式介紹 > 官版資源下載(本站下載)
進入到官版下載區後下載第1、4、6個檔,分別是:

▲下載後會看到這三個檔

STEP-2:安裝Arduino驅動

將Arduino插上電腦後會發現找不到驅動,這時候就要來手動安裝了

arduino-1.0.5-r2-windows.zip解壓縮
(存檔路徑需無中文字,否則到時安裝會出現錯誤)

▲這裡是將zip解壓縮到電腦C槽


之後點開「裝置和印表機
(路徑為「開始 > 裝置和印表機」,或從控制台點開也可以)

▲點選「開始」後打開「裝置和印表機」


點開後會看到剛剛接上電腦的裝置,因為找不到驅動所以電腦無法辨別
只好來個手動安裝

▲下方有一個未指定的裝置,對他按右鍵選「內容」

▲選擇上方列「硬體」,然後點選下方「內容」

 ▲選擇「自動搜尋」

▲路徑的地方選擇剛剛解壓縮的資料夾,裡面的「drivers

 ▲確定安裝

 ▲完成後會顯示該裝置的名稱以及port

這台電腦配置的port是COM3
這要記下來,因為待會兒執行IDE時會要你選擇「板子型號」和「port」
勾選正確才能讓你寫的code燒在板子上讓他跑

STEP-3:執行Arduino IDE


▲打開剛剛解壓縮完後的資料夾,執行「arduino」


▲arduino IDE開啟後的樣子

▲點選上方列「Tools」>「Board」,選擇板子型號
(今天測試的板子是Arduino Uno)

▲點選「Serial Port」,選擇電腦配置的port:COM3
(不知道是哪個port的話可以到「裝置和印表機」資料夾裡看)

▲可以看到右下角已更改成正確的資訊

安裝完之後就可以coding了
可是這樣硬幹的話好像有點累,好在有S4A可以讓我們輕鬆寫點小程式
接下來就看看要怎樣架S4A 的環境吧


STEP-4:將Arduino與S4A建立連結

開剛剛下載的S4AFirmware15.ino來將Arduino和S4A建立連結
這樣要使用Arduino就可以用S4A直接「拉」code了! 相當方便又易懂

 ▲點兩下「S4AFirmware15.ino」

▲打開後一樣要先改Board和Port(可看STEP-3步驟),
然後點左上角的箭頭圖案compile

▲正在complie

▲完成後會看到"Done uploading"


complie成功後就可以把視窗關掉,然後執行剛剛下載的S4A15.exe

▲執行「S4A15.exe」
 

▲之後就會看到S4A的介面,
可以看到右邊有個訊息是正在搜尋Arduino板子

STEP-5:透過S4A寫程式

S4A是一款簡單、易懂的程式介面
很適合給還不懂語法的小朋友使用,用它來寫些小程式來玩
讓他們先熟悉寫程式的邏輯,而不用先煩惱語法到底該怎麼寫
(開始玩之前還要先背一堆語法,誰受得了XD)

先以圖示介紹一下這個介面上的基本功能:

左上方的「指令分類」放著寫code會用到的指令,想要什麼就直接去裡面抓
抓出來的指令就丟在「程式碼放置區」
程式碼寫好後,如果你的起頭有放「當[旗標]被點一下」的觸發條件
你就按一下右上角的「Run」旗標就可以執行程式了
想停下來就按隔壁的「Stop」紅色點點

右上角可以拖曳的視窗顯示的是Arduino板子上的即時資訊
如果你有使用到板子上的port的話(ex接了一個燈泡、接了一個可變電阻、接了一個按鈕)
就可以從這裡看到那些port的資訊


再來看到圖上的程式碼
它是一個小小的測試程式:讓板子上的燈泡持續亮滅
有想法的人就會知道要讓燈泡亮滅就是先把燈泡打開(trun on),開一段時間後再關掉(trun off),要讓它持續的話就是把它包進一個迴圈(loop)裡面讓他一直執行上述的動作
用演算法呈現:
|START
|LOOP:
| LIGHT TURN-ON
| WAIT 1 sec
| LIGHT TURN-OFF
| WAIT 1 sec
| GOTO LOOP
如此,我們將它用S4A來拉就變上圖那樣 (指令可以到左上角的分類區去選擇)
因為板子上的燈泡位置在port13,所以選擇digital時要選13


▲拉完程式碼的樣子,按下右上角的「Run」程式就會開始跑了



▲板子上的情形,真的有燈在閃爍!

也可以外接LED
這裡使用三色共陰LED來做測試


▲三色共陰LED




▲三色共陰LED的外接圖
(從左到右分別是:B(Blue)、G(Green)、GND(接地)、R(Red))

將GND插到寫有「GND」的port
然後看你想亮哪個顏色就把那個顏色的腳插進port13
(插其他port也行,只是程式碼要改)
以下是測試的樣子:







你也可以把四根全部插進去,然後設定讓兩、三個port同時亮
這樣就會有混色光了XD(全亮的話是白色的)
私心覺得Blue+Green最好看 <3



▲把R、G、B分別插到port11、12、13,然後讓他們交錯亮、同時亮


此外,S4A也有一些範例可以玩:



 ▲在上方列選「檔案」>「開啟舊檔」

▲選左邊「範例」,打開「Animation」資料夾



▲選擇「Pong」後按確定


▲會看到右上角的換成了Pong的檔
 

Pong這個範例呢,是藉由滑鼠控制底下的板子讓球可以回彈
不能讓球落地不然就輸了

然後我們其實可以外接擴充板(增加port)
再接一個可變電阻
利用電壓值的改變讓板子可以左右移動,這樣就可以取代滑鼠游標了!
變成是你只要轉動可變電阻,螢幕上的板子就會跟著動
這就是簡易版的搖桿遊戲


▲Arduino Uno的擴充板





▲接上後的樣子

 此外還可以接其他東西,像是伺服機(伺服馬達)、開關...等等

▲伺服機(伺服馬達)

▲接到D8(棕紅橘分別接:G、U、S)

▲開關,可接到A0~A5其中一個(在板子上D排下面那排),
 然後就可以從S4A介面右邊的Arduino資訊那看到有值改變了
/

今天的課程大致上就這樣,讓我們簡單玩了一下Arduino
Arduino能做的事當然不只這些,像講師今天就帶了一台自走車
還搭配一支遙控器,讓自走車可以在接收到紅外線訊號後可以直走、倒退、左右轉
使用的就是Arduino
總覺得相當的厲害又有趣,而且板子又便宜XD

有興趣的朋友也可以自行google「Arduino」
應該有很多相關文章以及介紹
甚至還有Arduino開發機器人的討論板
有什麼問題都可以上去跟大家一起討論討論

--
[相關連結]
Arduino官網 http://www.arduino.cc/
S4A官網 http://s4a.cat/
Arduino簡介 http://yehnan.blogspot.tw/2012/02/arduino.html
Arduino Uno開箱文與安裝設定 http://yehnan.blogspot.tw/2012/02/arduino-uno.html

沒有留言:

張貼留言