2017年7月4日 星期二

Scratch專題 : 使用S4A控制faya電子積塊


學習目標 : 使用S4A控制faya電子積塊
學習時間 : 30min
示範模組 : 任一faya模組
工具 : 樂高積木 / 底板 (相容)

===============================================
-- 以下部分節錄自維基百科 -- 
Scratch是麻省理工媒體實驗室終身幼稚園組開發的一套電腦程式開發平台,旨在讓程式設計語言初學者不需先學習語言語法,透過圖形介面的方式,便能設計產品。

有鑑於Scratch的熱門,加上Arduino的普及化,市面出現了一款結合Scratch與Arduino的軟體S4A (Scratch for Arduinio),讓Scratch和Arduino能夠互相控制,撰寫Arduino程式變得更方便,Scratch也有能力控制電腦螢幕外的實體裝置,例如開關/馬達/蜂鳴器等等...

這篇文章介紹如何讓Scratch控制fayaduino UNO,從軟體安裝開始,到最終能夠用PC鍵盤控制UNO上的LED燈。

====================軟體安裝====================
底下示範軟體安裝程序,筆者轉寫範例時,軟體的版本是1.6版,如果未來有更新的版本,安裝的程序應該差不多!

造訪S4A網站,選擇上方DOWNLOAD區塊,再點選[WINDOWS]下載S4A程式 (S4A16.ZIP)


解壓縮S4A16.ZIP並安裝到電腦後,點選S4A程式,會出現以下畫面,代表安裝成功! 注意右上角視窗由於還未連接UNO板子,因此會顯示[Searching board]訊息,完成後關閉此程式,我們進入下一步驟。


接下來要幫UNO燒錄韌體,S4A透過內建的圖形化程式就可直接和UNO溝通,原因在於兩者已經各別寫好了溝通上的協定,S4A方寫在S4A軟體裡面,UNO方就必須上傳此程式(Firmware-韌體)到UNO板子上。未來,當S4A擺放了某些圖形化程式時,UNO才知道該怎麼反應! 有興趣的人可以參考S4A的協定

同樣在S4A網站,選擇上方DOWNLOAD區塊,再點選[here]下載UNO韌體 (S4AFirmware16.ino)


下載完成後,按照一般上傳程式到Arduino的方式,利用Arduino軟體,將 (S4AFirmware16.ino)上傳至UNO!


完成上傳後,UNO上的Tx燈會持續亮著,因為UNO想要把訊息傳出去給S4A,但是由於尚未開啟S4A程式,溝通還沒建立,因此Rx不會亮!


開啟S4A軟體,軟體會自動搜尋連接在此電腦的UNO板子,搜尋到的話,剛剛右上角視窗的[Searching board]訊息會消失,此時右上角的Analog0~Analog6的資料欄會持續跳動,UNO板子的Tx/Rx燈也會持續閃爍。以上現象代表你已成功的架起Arduino搭配Scratch的開發環境了!


註:筆者曾經遇過明明以上的程序都對了,最後UNO卻無法連接至S4A板子,後來發現連接UNO的COM PORT編號如果超過32,無法被S4A搜尋,此時可至[裝置管理員]手動更改COM PORT編號!

====================範例實作====================
完成軟體/韌體安裝後,我們用以下範例來展示S4A和Arduino的連線功能:

目標:
(1) 當按下鍵盤[空白鍵]時,會點亮UNO上串接第13腳的LED
(2) 當放開鍵盤[空白鍵]時,LED燈熄滅

圖形化程式: (下載點)


範例結果:




討論:
這個範例教大家如何安裝S4A軟體和Arduino韌體,往後和Scratch相關的專題,還沒架起Scratch環境的使用者,都會請大家先參考這篇文章。

S4A預設的腳位控制方式 (數位輸入/輸出、類比輸入/輸出)等等..都已經特別針對UNO板子預先定義好了(進階請參考S4A_Protocol),因此往後我們有關Scratch的範例都會使用UNO的板子!


歡迎大家在底下留言或到我們的粉絲團留言喔!
====================================
fayalab 粉絲團
FB本篇留言版 


沒有留言:

張貼留言