2015年4月28日 星期二

專題-S4A-達標計分器-基礎數位輸出輸入的練習

專題-S4A-達標計分器--基礎數位輸出輸入的練習


本主題可用於運動計數、分組計分

利用S4A偵測按鈕模組輸入,在LED及螢幕上輸出,當達成目標時LED閃爍同時鈴聲大作,恭喜達成目標。



材料:(本教案使用預設為粗體設備)

1.      Arduino開放式硬體,建議預先上傳好S4A韌體
2.      感測器擴充板V4V5均可使用,有擴充板接線比較簡單,無擴充板也能使用
3.      按鈕模組(按下為false)、碰撞模組、紅外線模組均可使用(※模組使用不同程式寫法稍有差異)
4.      LED模組、人魚燈LED模組、RGB全彩LED模組(共陰)、七彩燈模組均可使用,或以LED+220歐姆電阻取代(※模組使用不同電路連接稍有差異)
5.    雙母頭杜邦彩虹排線

準備工作:

電腦事先安裝S4A、喇叭、麥克風


=========================================================================

開始上課!


連接本專題Arduino硬體與模組如下圖













按鈕模組連接電路說明

按鈕模組為數位輸入,因此其訊號輸出(OUT)要接到Arduino的輸入端,可接到D2(D3),擴充板則接在S2(S3)S代表信號的意思,就是Arduino板子上的數位輸出入D0-D13,裡面的D2D3S4A裡被用來做數位輸入偵測,連接腳位如下:
   按鈕模組    Arduino
   =======    ======
    OUT  ←→ S2(D2)
    VCC  ←→ V(5V)
    GND  ←→ G(GND)

RGB全彩LED連接電路說明


RGB全彩LED模組有分共陽或共陰,接線和控制方法各有不同,本例以比較直覺之共陰極模組為主,除了“-”即為接地GND外,另三隻接腳分別為三原色的控制訊號,我們把它分別接至擴充板上的S10S11S13,也就是Arduino板上的D10D11D13,連接腳位如下:
   RGB模組       Arduino
   =======       =======
    - (GND)   ←→ G(GND)
    R(RED)   ←→ S13(D13)
    G(GREEN) ←→ S11(D11)
    B(BLUE)  ←→ S10(D10)
====================================================================================

按鈕程式測試、撰寫與說明

以數位輸入用法(本專題將以此為範例):


  本專題將按鈕輸入接在ArduinoD2數位輸入接腳,因此在S4A中請觀察sensor board上的Digital2欄位的值,當我們未按下按鈕時值為true,而按下按鈕時值變為false(※每批模組不同,有的恰恰相反),這樣的方式將按鈕視為數位輸入,寫程式時就要用數位輸入的方法來判斷,例如下列程式會在按下按鈕時發出Do的鋼琴聲。

類比輸入用法:

  如果你將按鈕模組接到類比輸入A0~A5也能用,但是這時就要觀察Sensor boardAnalog0~5的數字,例如:我如果將它接在A0輸入,那你會發現沒按按鈕,A0值為1023,有按按鈕,A0值變成0,因此上面的程式就會變成這樣的寫法,必須找一個可以分辨出10230的中間的任何值(本例用500最為哨兵值,非一定要用500),利用大於小於,甚至是等於來做判斷。

 LED程式的測試、撰寫與說明

數位控制三原色輸出(本專題將以此為範例)

  LED使用數位方式點亮的話,僅有兩種狀態,意即亮或不亮,而本次使用的RGB全彩彩LED,如果以數位方式控制的話,除了接地腳外,控制腳位接在ArduinoD10/11/13(S4A1.5版以後D12也能使用),則顏色會有2*2*2=8種顏色(包含全滅)
下圖程式即是將三原色以0.1秒的時間間隔輪流點亮(未混色)

下面程式則是數位方式隨機混色輸出

PWM控制三原色全彩輸出:

  如果想要全彩輸出,腳位得接在D5/6/9,則可利用PWM(脈波頻寬調變)給予0~255階不同的亮度,因此3隻控制接腳即可以256*256*256呈現16777216色組合,就是全彩的意思。下方程式即是以每0.1秒的間隔,隨機混和1677萬色全彩輸出,色彩的組合可以參考網路查詢“RGB配色表”。

=====================================================================

“達標計分器”專題實作開始:


本達標計分器可用於教師分組學習時為每組學生計分,每組使用1個按鈕1個顏色的燈,因此1Arduino6個按鈕、2RGB全彩燈即可做成六組的達標計分器,本專題僅以一組為例,可自行延伸。
一開始可設定本次目標分數,然後課程進行中小組得分即可按鈕1次加1分,如果達標就會燈光閃爍加響鈴大作恭賀一番。

先新增一個變數“達標分數”,然後在程式中以提問積木將達標分數設定進來。

(本程式有誤,其實不需用到變數,迴圈裡也不用減一,請等待下次修正程式)
做一個迴圈,設定執行次數為達標分數,每次在按鈕狀態切換時(由沒按→有按),就將達標數減去1,因此如果達標分數為10分,本迴圈就會執行10次,執行完10次達標分數就會變成零,迴圈也會結束,此時利用廣播積木將訊號“恭喜達成目標”傳送出去。

利用廣播積木的原因是因為要讓文字、音樂、控制LED的動作同時多工發生,所以我們分別將文字、音樂、控制LED的動作設定在個別的接收廣播中,以達到多工的作用,聲音或音樂可先由聲音資料庫中匯入或自行錄音準備好如下圖。


廣播部分程式如下:

然後我們可再增加,當我們每次按鈕時也閃兩下燈,再播點音效以增加互動趣味性,這樣就完成我們的程式了!最後程式就如下圖。


是不是很有趣呢?

想一想,如果要擴充第二組,模組、線路該怎麼接?程式要怎麼改呢?


想一想,本專題亦可將按鈕換成觸碰感測器,也會有一樣的效果嗎?如果換成其他的感測器模組呢?會變成甚麼樣的輸入才能控制呢?程式又要怎樣改呢?


例:如果換成紅外線則運用更廣,可以測量仰臥起坐、伏地挺身、跑操場圈數的運動量,創意可以無限發揮歐,是不是很迷人呢?


課程影片


2015年4月14日 星期二

PICOBOARD簡介

PICOBOARD簡介


PICOBOARD是一套微電腦控制板,可以用來配合SCRATCH寫程式,它含有幾個常用的感測器:光線、聲音、滑桿、按鈕,還有四個外接的導電偵測,可以做外界真實環境的感測,雖然只有輸入,但是簡單易用,可做為學生學習進入真實世界及學習Arduino的前哨站。

國內製造的廠商當初是由佛光大學許惠美老師請託益登生產,後來因為某些原因無法與教育界配合,因此改委託慧手科技Motoduino生產,未稅價格壓低到台幣550,產品名稱是Eduboard,後來益登意識到教育市場的重要,委託CAVE代為銷售,CAVE則搭配教材一起出售。

Eduboard支援SCRATCH任何版本,並接受了范運平老師建議,有些接腳改成電話線接頭以防呆並增加了傳輸距離,也開發的專用的模組,也接受了本人的建議做了電話線轉杜邦線的轉接線,以使用普遍網購模組的通用性,未來如果電話線改成網路線的話也許遮蔽效果和傳輸效果會更好吧,這學習板用在感測器的初階學習可謂是物美價廉。

圖片及相關課程待續...






S4A-使用USB2TTL修改HC-06藍芽模組

S4A-使用USB2TTL修改HC-06藍芽模組


S4A離不開電腦,因此要脫機使用,唯一的辦法就是使用藍芽,而在教學現場使用藍芽有幾個門檻和注意事項:



  • 藍芽模組得修改鮑率,S4A為38400,mblock為115200,S2A為51200,webduino為57600(一般出廠設定為9600需修改)。
  • 大班級授課,藍芽模組得修改模組名稱,以免不知道誰是誰。
  • 藍芽模組配對密碼預設1234。
  • 電腦端要使用外接藍芽適配器。
  • 筆電的藍芽通常無法配對,因此得先關閉內建藍芽,再外接適配器。
  • 藍芽模組有分HC-05(主從)/HC-06(從)兩種,本人建議直接買HC-06四根針腳的,(別買六根針腳帶Reset按鈕的),設定比較簡單。
  • 使用藍芽時,usb連接線必須拔除,先讓電腦連接藍芽,再開S4A。
  • 搭配馬達使用時,注意掉電斷線問題,可考慮分開供電。

HC-06藍芽模組修改給S4A使用


HC-06藍芽模組相對於HC-05修改方式簡單多了,在出場時已經設定為從屬模式這是無法改變的,而出場鮑率預設值通常為57600,但是我們S4A所用的鮑率為38400,因此要修改成38400才能和S4A溝通,此外通常我們研習會場教學使用時會有15-30組藍芽,因此還要更改藍芽的名稱,以免抓錯別人的藍芽造成混亂,然後預設的密碼試1234,這就看個人需求了。

藍芽模組HC-06正面與背面



各位在採買HC-06模組時,儘量買四隻接腳的最好修改,這是我個人建議。

USB2TTL正面與背面



USB2TTL通常使用PL2302晶片,驅動程式可在此下載:點此下載


USB2TTL與藍芽連接,線路如下表


USB2TTL模組  HC-06藍芽模組
============  ===========
        VCC←→VCC
        GND←→GND
          TX←→RX
          RX←→TX

安裝USB2TTL


USB2TTL插上電腦USB插槽,如果你是第一次安裝,在電腦裝置管理員中會出現一個新的裝置


在更新安裝它的驅動程後,電腦就會抓到USB2TTL的裝置,請留意它所使用的連接埠,本例為com 10


設定藍芽名稱和鮑率


開啟Arduino IDE程式,設定和USB2TTL模組的序列埠(本例為COM10)


開啟“序列埠監控視窗”


找到藍芽現在的溝通鮑率:
在序列埠連接窗口中,設定藍芽模組的溝通鮑率,並在指令區輸入“AT(大寫)指令,然後按傳送,如果鮑率是對的,下方回應窗口會出現“OK”,如果沒有出現,表示你的鮑率和藍芽的不同,請再試試57600或其他鮑率,直到下AT指令後窗口出現OK為止。
如果電腦一直沒有回應,那就會無法溝通修改,本次研習各位拿到的藍芽應該已經改過為38400了,各位可以直接使用38400溝通試試。


設定藍芽模組名稱:
在指令窗口輸入“AT+NAMES4A0X”然後按“傳送”,應該會出現Oksetname回應,其中AT+NAME全都大寫,後方緊接想設定的名稱,大小寫無所謂,英文數字均可,0X為流水號,如設定錯誤可再重設即可,並無次數限制。



設定鮑率38400
在指令窗口輸入“AT+BAUD6”再按“傳送”,應該會出現OK38400回應,這樣就行了。

這是S4A專用的鮑率,網路上有其他的鮑率指令代碼,可自行搜尋,如果你是使用MBLOCK,要設定57600,指令是AT+BAUD7”,藍芽出場的原廠設定是9600,所以你要設定回去就要用AT+BAUD4”;不管你要設定多少,記得先切換下方的傳輸鮑率,再使用AT確定有回應能溝通才來改!



恭喜你已經完成藍芽模組的相關修改設定

修改範例影片(請期待)