WFduino第十五課(主動式紅外線感測器)

紅外線避障模組:

左邊一般用於循跡自走車,右邊常用於避障小車,原理都是如同第十四課的說明,紅外線感測器可分為主動式被動式兩種。

紅外線避障模組是屬於主動式紅外線感測器,感測器本身會發射紅外線光束,當紅外線光束被物體擋住後,紅外線光束就會反射,接收器接收反射的紅外線,做出動作。例如:廁所的自動沖水小便斗、感應式水龍頭、機器人避障、避障小車、計數器及黑白線循跡自走車等。

特性:

該感測器模組對環境光線適應能力強,其具有一對紅外線發射與接收器,發射器發射出一定頻率的紅外線,當檢測方向遇到障礙物(反射面)時,紅外線反射回來被接收器接收,經過電路處理之後,輸出介面輸出數位訊號(一個低電位訊號)。可透過電位器旋鈕調節檢測距離(順時針,距離增加;逆時針,距離減少。),有效距離範圍2~80cm,檢測角度35°。 

一、感應式水龍頭

紅外線避障模組有3個接腳,VCC接5V,GND接地,OUT接數位腳D6當成Arduino的輸入訊號。

另外接一組紅色LED當作感應燈,正極接數位腳D7。(請參考第二課)

先設定要用到的腳位,數位腳位D6為INPUT(輸入),D7為OUTPUT(輸出)

接好線路後,沒有遇到障礙物時,數位腳D6的輸入訊號為高電位(數值1)

當遇到障礙物時,數位腳D6的輸入訊號變為低電位(數值0)

不停重複的偵測數位腳D6的輸入訊號,如果是高電位(數值1)表示沒有遇到障礙物,紅色LED就不亮。

否則就是遇到障礙物,讓數位腳位D7變成高電位,紅色LED亮起來,並且說[沖水了]、發出水滴的聲音。

程式下載:感應洗手.sb2

二、計數器

接線圖跟上面一樣

先設定要用到的腳位,數位腳位D6為INPUT(輸入),D7為OUTPUT(輸出)

接好線路後,沒有遇到障礙物時,數位腳D6的輸入訊號為高電位(數值1)

當遇到障礙物時,數位腳D6的輸入訊號變為低電位(數值0)

當物體經過感應區時,累計加1,可以計算出經過的物體總共有多少個。

每次感應時,同時發出聲音可以增加趣味。

程式設計:

做一個計數的變數,一開始設為0

不停重複的偵測數位腳D6的輸入訊號,如果是高電位(數值1)表示沒有遇到障礙物(東西),紅色LED就不亮。

否則就是遇到障礙物(東西),讓數位腳位D7變成高電位,紅色LED亮起來,並且將計數變數加1、發出鼓聲。

程式下載:  計數.sb2

延伸:

投籃機:做個籃框,在籃框旁加上計數器,球投進就會自動計分。

三、應用:

廁所的自動沖水小便斗:接收訊號後啟動繼電器讓沖水開關打開

感應式水龍頭:接收訊號後啟動繼電器讓水龍頭開關打開

機器人避障:裝置在機器人身上偵測障礙物,控制機器人避免碰撞。

避障小車:裝置在自走車上偵測障礙物,控制自走車避免碰撞。

自走車黑白線循跡:裝置在自走車上偵測地面黑線或白線,控制自走車沿著路線行走。 

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第十五課(主動式紅外線感測器) 由 roc 發表。

WFduino第十課(光敏電阻)

光敏電阻:利用光電導效應的一種特殊的電阻,簡稱光電阻,又名光導管。它的電阻和光線的強弱有直接關係。光強度增加,則電阻減小;光強度減小,則電阻增大。(摘自維基百科

一、光敏電阻和LED亮度

光敏電阻一端接5V,再接一顆1K歐姆的電阻,然後接GND,在光敏電阻和1K歐姆電阻中間腳接一條線到類比腳A0輸入。

光敏電阻接收到不同的光強度時,電阻值改變,中間的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

另外接一組紅色LED(請參考第五課)。由數位腳D11來控制類比輸出的模擬電壓(PWM)大小。

1.讀取類比腳A0的資料:

使用[說讀取類比腳位A0]指令,理論上螢幕上就會出現0到1023的數值

實際上因為亮度關係,我的螢幕上只出現幾十到三百多的數值。

程式下載: 讀光敏電阻.sb2

2.變大變小隨我變

使用光敏電阻調整腳色(人物、圖片)大小。

將大小設定為類比腳位A0得到的值。

理論上因為讀到的值為0到1023,所以轉換時要將得到的值除以10.23,才是正確的百分比。

實際上因為亮度關係,可能不會出現到1023,您可以自行調整比例。

程式下載: 光敏電阻(變大小).sb2

3.光敏電阻調整LED亮度

設定腳位11類比輸出,輸出的模擬電壓大小由A0來決定。

類比腳位A0讀到的值為0到1023,腳位11的類比輸出值為0到255,因此需要做公式轉換。

增加一個說的指令,可以顯示公式轉換結果,驗證公式是否正確。

用手在光敏電阻上揮動,改變光敏電阻接收到的光強度,就會改變電阻值,讓LED亮度改變。

程式下載: 光敏電阻(調亮度).sb2

二、自動控制路燈

晚上(天黑)路燈自動打開,天亮路燈自動熄滅

同上面一樣接線。

增加一個說的指令,來看看光強度和光敏電阻的接收情形。

用運算指令 [ <  ] 來判斷天空多暗才要啟動路燈亮起來。

當光強度減弱,光敏電阻的電阻值增加,類比腳位A0讀到的值減少到判斷標準,就讓路燈(LED)亮起來。

測試時,用手靠近光敏電阻,改變光敏電阻接收到的光強度(天黑了),達到標準時路燈(LED)就亮起來。

程式下載: 路燈.sb2

三、光吉他

依照光線亮度發出不同音調聲音

光敏電阻一端接5V,再接一顆1K歐姆的電阻,然後接GND,在光敏電阻和1K歐姆電阻中間腳接一條線到類比腳A0輸入。

光敏電阻接收到不同的光強度時,電阻值改變,中間的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

另外接一組蜂鳴器(請參考第七課)。由數位腳D11來控制輸出的音調(頻率)。

設置數位腳位D11為音調輸出,輸出的音調(聲音頻率)由A0來決定。

用手在光敏電阻上揮動,改變光敏電阻接收到的光強度,就會改變電阻值,A0讀到的值改變,音調也跟著改變。

註:真正音符的頻率(赫茲)轉換有些複雜,這裡只簡單的讓學生體驗音調的改變。

程式下載: 光吉他.sb2

延伸:

將上面的裝置增加組數,就可以發出更多的音階,組成一個多音階的樂器。

可以將A0的值做一些運算,讓頻率改變。

四、打擊樂

當遮蔽光敏電阻時,電腦就發出一個聲音,一群人輪流遮蔽光敏電阻,讓電腦完成歌曲演奏。

光敏電阻一端接5V,再接一顆1K歐姆的電阻,然後接GND,在光敏電阻和1K歐姆電阻中間腳接一條線到類比腳A0輸入。

光敏電阻接收到不同的光強度時,電阻值改變,中間的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

LED可以不用接。

 

用運算指令 [ <  ] 來判斷是否有人動作。

當有人遮蔽光敏電阻時,A0的值小於100,就彈奏鼓聲。

可以選擇發出不同的[鼓聲]

程式下載:光打擊樂.sb2

延伸:

各組選擇不同的鼓聲,配合節奏,大家一起彈奏(遮光),就可以完成打擊樂了。

五、演奏歌曲

當遮蔽光敏電阻時,電腦就發出一個聲音,一群人輪流遮蔽光敏電阻,讓電腦完成歌曲演奏。

先設定樂器種類,上圖的11是 薩克斯風。

然後將歌曲音符編排好,加上偵測動作的[等待…]指令

用運算指令 [ <  ] 來判斷是否有人動作。

當有人遮蔽光敏電阻時,A0的值小於300,就彈奏一個音符。(實際值請自行調整)

這樣就可以依序將歌播完。

因為歌曲常常有一些重複的曲段,所以用積木來編排,節省程式長度,比較簡潔。

如果想要變換樂器,只要更改[樂器種類]就可以了。

程式下載:演奏歌曲.sb2

延伸:

1.學生自由創作不同的音樂

2.多組光敏電阻組合,學生輪流遮蔽不同的光敏電阻,演奏一首歌

3.增加一組蜂鳴器,使用蜂鳴器來演奏樂曲。

六、創作:

將光敏電阻換成紅外線感應器(16課)(或超音波感應器(13課)),再加上大喇叭,就成了第一課的垃圾桶和資源回收箱了。

https://youtube.com/watch?v=qRgWttqFKu8

https://youtube.com/watch?v=zCt_MzsnIUk

註:要真的實用還有一些細節要改進,例如:接線要堅固,加裝擴音線路才能讓喇叭發出夠大的聲音……….

七、應用:

製作方法:

http://mingshiuan.blogspot.com/2012/12/arduino.html

PS:他們用[紅外線感應器]當感應器,用[光敏電阻]應該也可以有效果。

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第十課(光敏電阻) 由 roc 發表。

WFduino顏色猜猜機(第8-1課)

設計一個遊戲機器,讓玩家猜顏色。

在螢幕上先出現三個顏色讓玩家選擇(猜),選好後玩家按下麵包板上的按鍵,三個顏色的LED燈開始亂數閃爍,鬆開按鍵時,某一個顏色的燈恆亮,如果猜中顏色,就說[猜對了],如果猜錯,就說[猜錯了]。

一、類比輸入

猜猜機程式(類比)_bb

紅色LED,正極接Arduino板數位腳位11 
黃色LED,正極接Arduino板數位腳位10 
綠色LED,正極接Arduino板數位腳位9

控制數位腳位9、10、11的輸出為1(5V)或0(0V)。來控制三種顏色LED的亮或熄滅。

按鍵一邊接5V,另一邊接10K歐姆電阻再接地(GND),中間拉一條訊號線到類比腳A0當作判斷輸入訊號。

主程式

程式開始先將說明圖片移到定點。

設定要用到的腳位。(D9、D10、D11輸出)

等待按下按鍵。

(紅、黃、綠等角色的程式負責選顏色)

如果按鍵按下時,類比腳A0得到1023,就開始隨機讓D9、D10、D11其中一個輸出高電位,讓LED亮。

直到放開按鍵,類比腳A0得到0

然後判斷答對了嗎?

使用[說(……)]的擴充積木可以將文字轉換為聲音,讓程式真的說出來。

猜猜機程式2

紅色角色

程式開始先將顏色圖片移到定點。

當被選中,就將選色變數設為11,做為主程式判斷對錯的依據。

如果選的是其他顏色,會收到其他顏色的廣播,就將自己隱藏。

猜猜機程式3

黃色角色

程式開始先將顏色圖片移到定點。

當被選中,就將選色變數設為10,做為主程式判斷對錯的依據。

如果選的是其他顏色,會收到其他顏色的廣播,就將自己隱藏。

猜猜機程式4

綠色角色

程式開始先將顏色圖片移到定點。

當被選中,就將選色變數設為9,做為主程式判斷對錯的依據。

如果選的是其他顏色,會收到其他顏色的廣播,就將自己隱藏。

程式下載:顏色猜猜機(類比).sb2

二、數位輸入

猜猜機(數位)_bb

紅色LED,正極接Arduino板數位腳位11 
黃色LED,正極接Arduino板數位腳位10 
綠色LED,正極接Arduino板數位腳位9

控制數位腳位9、10、11的輸出為1(5V)或0(0V)。來控制三種顏色LED的亮或熄滅。

按鍵一邊接5V,另一邊接10K歐姆電阻再接地(GND),中間拉一條訊號線到數位腳D7當作判斷輸入訊號。

主程式

程式跟[類比輸入]很像。

開始先將說明圖片移到定點。

設定要用到的腳位。(數位腳位D7輸入,D9、D10、D11輸出)

等待按下按鍵。

如果按鍵按下時,數位腳位D7得到1,就開始隨機讓D9、D10、D11其中一個輸出高電位,讓LED亮。

直到放開按鍵,數位腳位D7得到0

然後判斷答對了嗎?

使用[說(……)]的擴充積木可以將文字轉換為聲音,讓程式真的說出來。

其他角色程式請參考[類比輸入]。

程式下載: 顏色猜猜機(數位).sb2

三、增加效果

1.加上蜂鳴器,在按鍵時發出特殊聲音,答對或答錯時也可以發出不同的音樂。

2.答對或答錯時更換不同的造型。

3.如果是win10或Mac系統,可以使用[說(……)]的擴充積木可以將文字轉換為聲音,讓程式真的說出來中文。

四、學生作品

六年級林辰皓、吳至勤同學作品

六年級藍培誠、四年級李盺澤同學作品。

 

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino顏色猜猜機(第8-1課) 由 roc 發表。

WFduino第九課(可變電阻)

可變電阻:又稱為可變電阻器,可經由滑動(轉動)而改變滑動端與兩個固定端間電阻值的電子零件。

線性尺度式:電阻值的變化與旋轉角度或移動距離呈線性關係,此種電位器稱為 B 型電位器

 

註:滑動式可變電阻 ,價格稍貴。

一、直接控制LED亮度

利用Arduino的5V供電,經過LED再接220歐姆電阻然後接10K可變電阻的中間腳再接GND,形成一個迴路

轉動可變電阻,改變電阻值就可以調整LED亮度

二、電壓計

可變電阻兩端各接GND及5V,中間腳接類比腳A0輸入。

當轉動可變電阻時,中間接腳得到的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

1.讀取類比腳A0的資料:

使用[說(讀取類比腳位A0)]指令,螢幕上就會出現0到1023的數值

程式下載: 讀可變電阻.sb2

2.電壓計

同上面一樣接線。

輸入的電壓是0到5V,讀到的數值為0到1023,顯示時需要做公式轉換

程式下載: 電壓計.sb2

3.電壓計(顯示時加說明)

增加文字說明指令,讓顯示時更清楚。

程式下載:電壓計A.sb2

三、變大變小隨我變

同上面一樣接線。

使用可變電阻調整腳色(人物、圖片)大小。

將大小設定為類比腳位A0得到的值。

因為讀到的值為0到1023,所以轉換時要將得到的值除以10.23,才是正確的百分比。

程式下載:變大變小隨我變.sb2

四、移動腳色位置

同上面一樣接線。

使用可變電阻移動腳色(人物、圖片)大小。

舞台左右X座標為-240到240,共480個座標點。

因此做一些轉換可以得到正確的座標。

程式下載:移動腳色位置.sb2

延伸:

1.如果增加一些飛彈射擊,就可以變成射擊遊戲。

2.如果加一些水果掉下來,就可以變成猴子接水果遊戲。

3.打磚塊遊戲的棍子可以使用可變電阻來操控。

4.如果再多加一組可變電阻,就可以控制腳色的Y座標位置,變成2D(維)的遊戲設計。

五、控制LED亮度

轉動可變電阻,調整LED亮度

 

可變電阻兩端各接GND及5V,中間腳接類比腳A0輸入。

當轉動可變電阻時,中間接腳得到的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

另外接一組紅色LED(請參考第五課)。由數位腳D11來控制輸出的類比電壓大小。

設置數位腳位D11為類比輸出,輸出的模擬電壓大小由A0來決定。

類比腳位A0讀到的值為0到1023,腳位11類比輸出的輸出值為0到255,因此需要做公式轉換。

增加一個說的指令,可以顯示公式轉換結果,驗證公式是否正確。

程式下載:可變電阻(調亮度).sb2

延伸:

設計調整可變電阻,改變LED閃爍(亮、暗)的時間間隔。

六、可變電阻改變音調

可變電阻兩端各接GND及5V,中間腳接類比腳A0輸入。

當轉動可變電阻時,中間接腳得到的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

另外接一組蜂鳴器(請參考第七課)。由數位腳D11來控制輸出的音調(頻率)。

設定數位腳位D11為音調輸出,輸出的音調(聲音頻率)由A0來決定。

當轉動可變電阻時,A0讀到的值改變,音調也跟著改變。

註:真正音符的頻率(赫茲)轉換有些複雜,這裡只簡單的讓學生體驗音調的改變。

程式下載:可變電阻調音調.sb2

延伸:

做一個可調的節拍器

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第九課(可變電阻) 由 roc 發表。

WFduino第十一課(伺服馬達)

伺服馬達:又稱為舵機,可以依照指示角度做轉動的馬達。

一般伺服馬達有三條線,電源(紅色)接地(黑或棕色)訊號線(白、黃、橘、藍….)。透過訊號線傳送PWM脈波來控制軸柄的停止位置旋轉角度,只要一個指令就可以控制了。

若想使用超過兩個以上的伺服馬達,要以另外的電源供電,而且要記得共同接地。

一、控制伺服馬達轉動

將伺服馬達的三條線,電源(紅色)接5V、接地(黑或棕色)接GND、訊號線(白色)接數位腳D12。

1.轉動伺服馬達

使用 [ 伺服馬達為腳位(…)轉動角度為(…)度]  的指令積木來控制馬達的轉動角度。

改變角度數字就可以改變伺服馬的轉動角度。

程式下載:伺服馬達.sb2

2.讓伺服馬達慢慢從0度轉到180度,再轉回0度,重複轉動。

使用 [ 伺服馬達為腳位(…)轉動角度為(…)度]  的指令積木來控制馬達的轉動角度。

製做一個[角度]變數,使用[重複 …次] (迴圈) 來讓程式變的簡短一點

加上[等待0.5秒],讓馬達有時間去轉動。

程式下載: 伺服馬達.sb2

 

二、使用鍵盤按鍵來控制轉動角度

注意:

記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。

按下鍵盤上的[空白鍵]讓伺服馬達轉動到0度,[向左鍵]讓伺服馬達轉動到90度,[向右鍵]讓伺服馬達轉動到180度。
[向上鍵]讓伺服馬達轉動角度增加5度,[向下鍵]讓伺服馬達轉動角度減少5度。

程式下載:鍵盤控制轉動.sb2

延伸:

1.利用拉霸(變數)控制伺服馬達

先做一個[角度]變數,在舞台區會顯示變數的圖案,在圖案上用滑鼠左鍵點一下,就會變成只有數值,在圖案上再點一下滑鼠左鍵,就會出現有[拉霸]小點的圖形。

用滑鼠左鍵拖曳小點往左右滑動,就可以改變變數大小,也就是改變輸出值的大小。

這樣就可以拉霸來控制伺服馬達的轉動角度。

程式下載:拉霸控制伺服馬達.sb2

2.調整成可以控制到最大的180度

[拉霸]小點的圖形,內定最大就是100度,如何可以讓轉動角度達到最大的180度呢?

動動腦想想看吧!

增加一個變數,將拉動的變數除以100再乘以180,就可以將拉動的值轉換成最大到180度了。

程式下載:拉霸控制伺服馬達180.sb2

三、用按鍵控制轉動角度

選擇上面的伺服馬達線路,再設置兩個按鍵線路(請參考第八課(按鍵))

A按鍵讓伺服馬達轉動角度會增加1度,B按鍵讓伺服馬達轉動角度會減少1度。

程式設計請參考上面和第八課(按鍵)

四、可變電阻控制伺服馬達轉動

 

可變電阻改變時類比腳A0讀到的值也會改變。

輸入的電壓是0到5V,A0讀到的數值範圍為0到1023 伺服馬達的轉動角度為0到180度,顯示時需要做公式轉換。

程式中有一個說的指令,可以讓我們看到輸出的角度。

設置伺服馬達的輸出角度為轉換結果。

程式下載:可變電阻轉動馬達1.sb2

上面程式執行時發現太過靈敏,會有抖動現象。

程式修正如下:

 

在程式中多加一個 [ 將轉換結果四捨五入 ] 的指令,可以改善此情形。

程式下載:可變電阻轉動馬達2.sb2

延伸:

將伺服馬達裝到機械手臂上,就可以操控手臂的動作了。

五、光敏電阻控制轉動角度

將上面可變電阻控制伺服馬達的線路中,可變電阻更換成光敏電阻感應線路(請參考第十課(光敏電阻))

伺服馬達的角度隨著光強度而改變,當光強度最大時,伺服馬達轉動到180度,光強度最小時伺服馬達轉動到0度。

程式設計請參考上面和第十課(光敏電阻)

延伸:

伺服馬達連接大門,平常門關起來,當有人靠近時,遮住光敏電阻的光,啟動伺服馬達打開門。

六、創作:

結合前面的零件組合創作。

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第十一課(伺服馬達) 由 roc 發表。

WFduino第八課(按鍵)

按鍵:可以控制通路或斷路的開關,一般使用為按下為通路,放開為斷路。

小學生建議用2腳的 ,比較不會接錯方向。(最近發現針腳容易折斷)

一、直接控制LED亮或熄滅

 

利用Arduino的5V供電,經過按鍵接LED再接電阻再接GND,形成一個迴路

按下開關,形成通路,LED亮

鬆開開關,LED熄滅

注意:

如果是四腳的開關 ,請學生要注意方向,翻開背面,以中間的溝槽為分界,AB相連,CD相連,AB和CD不相通。

如果沒有溝槽的,直接如上面的接線圖插入麵包板試試看,如果還沒按按鍵就會亮,那就拔起來轉90度再插下去,試試看是否變成需要按按鍵才會亮。

二、運用Arduino的數位輸入來控制LED亮或滅

 

按鍵一邊接5V,另一邊接10K歐姆電阻再接地(GND),中間拉一條訊號線到數位腳D8當作判斷輸入訊號。

數位腳D11接紅色LED正極,再串接220歐姆電阻後接地(GND)。

加上[說(讀取數位腳位(8))],可以從螢幕上看到讀取(輸入)的結果。

如果按鍵按下時,數位腳D8得到1(高電位),這時就輸出一個高電位(1)給數位腳D11,讓紅色LED亮。

否則(沒有按鍵按下時),數位腳D8是0(低電位),這時就設定腳為11為低電位,讓紅色LED熄滅。

程式下載:按鍵(數位).sb2 

延伸:

1.請同學思考[重複執行]這個積木可不可以去掉?

2.試試看去掉後的執行結果有什麼不同?

3.加上蜂鳴器,讓按下時蜂鳴器會響。

、運用Arduino的類比輸入來控制LED亮或滅

按鍵一邊接5V,另一邊接10K歐姆電阻再接地(GND),中間拉一條訊號線到類比腳A0當作判斷輸入訊號。

數位腳D11接紅色LED正極,再串接220歐姆電阻後接地(GND)。

如果按鍵按下時,類比腳A0得到1023,這時就輸出一個高電位給數位腳D11,讓紅色LED亮。

否則(沒有按鍵按下時),類比腳A0得到0,這時就設置數位腳D11為低電位,讓紅色LED熄滅。

程式下載:按鍵(類比).sb2

註:

1.這裡多一個[說類比腳位(A)0]的指令,讓我們可以看到類比腳A0的數值變化。

2.類比腳A0~A5一般用來接受類比電壓輸入,接收後顯示的值為0~1023

四、兩段式開關

只有一個按鍵,第一次按下代表啟動,第二次按下代表停止。

第一次按下時LED燈亮,第二次按下時LED燈滅。

程式下載:兩段式開關.sb2

延伸:

兩顆LED,按下按鍵,其中一個LED亮,第二次再按下時LED燈滅,換另一個LED亮。兩顆LED輪流亮。

程式下載:兩段式開關(紅綠輪流).sb2

五、按鍵啟動音樂

按鍵後LED亮,並使用電腦喇叭發出聲音

1.彈奏鼓聲

重複執行:判斷按鍵是不是有按下按鍵,讀取數位腳位(8)的值。

如果按鍵按下時(數位腳位8的值=1),就輸出一個高電位給數位腳D11,讓紅色LED亮,並[彈奏鼓聲]

可以選擇發出不同的[鼓聲]及節拍。

程式下載:按鍵(鼓).sb2

2.打擊樂

將程式的[彈奏鼓聲]改為[播放聲音],可以選擇發出不同的[聲音]

選取程式的[音效],點選新聲音的小喇叭圖示

選擇要播放的聲音檔(可以先點檔案內的小三角形試聽),按[確定]。

這次選敲鑼。

重複執行:判斷按鍵是不是有按下按鍵。

如果按鍵按下時(數位腳位8的值=1),就輸出一個高電位給數位腳D11,讓紅色LED亮,並發出鑼聲的音效。

程式下載:按鍵(打擊樂).sb2

如果連續多次按下按鍵,會發現鑼聲被中斷變成不像鑼聲。

改成[播放音效…..直到播放完畢],可以讓鑼聲完整的播完。

程式下載:按鍵(打擊樂1).sb2

3.播放音樂

選擇長一點的音效,變成按下按鍵播放一首音樂。

程式下載:按鍵(音樂).sb2

4.設定樂器

如果將程式的[播放音效],修改為使用[設定樂器為..],加上[彈奏音符……]的指令,就可以發出更悅耳的聲音了。

使用[設定樂器為(…)],可以選擇不同的樂器

使用[彈奏音符(音階)(…)拍,來設定(音階)和節拍。

程式下載:按鍵(樂器).sb2

六、改變螢幕上主角的造形

主程式跟上面一樣,再多加[下一個造型]及[播放音效]指令,當按下按鍵,播放音效並改變主角造型。

加上[移動5步],讓小貓看起來像在走路。

程式下載:改變造形.sb2

七、改變螢幕上主角的動作

直接用按鍵控制螢幕主角動作。

增加錄音效果

1.點選[音效],再點[麥克風]圖樣,再點黑色圓點開始錄音

圓點變成紅色,開始錄音,錄好,再按一下,完成錄音。

按[編輯]可以作一些簡單的剪輯。

 

不斷的判斷按鍵是不是有按下。

如果按鍵沒被按下,就說 [請按按鍵!]。

如果按鍵按下時,就說[啊!我被按了],並做魚眼效果及播放錄音音效。

程式下載:改變動作.sb2

延伸:可再增加聲音效果,或變換造型,或移動….

八、搶答

 

將三組學生做的按鍵電路組合起來,更換LED為紅、黃、綠三顆LED。

判斷用的訊號線分別接D6、D7、D8

提供LED正極的杜邦線分別接D9、D10、D11

程式設計請參考第二課

九、按鍵控制LED+蜂鳴器

按鍵後LED亮而且蜂鳴器發出一聲Do

選擇上面的類比或數位輸入方式連接線路,另外再多接一個蜂鳴器線路發出聲音。

程式設計請參考上面二、三和第七課(蜂鳴器)

程式下載:  

十、按鍵電子琴

將上面五組學生做的按鍵電路組合起來,更換LED為紅、黃、綠、黃、綠五顆LED。

判斷用的訊號線分別接D2、D3、D4、D5、D6

提供LED正極的杜邦線分別接D7、D8、D9、D10、D11

程式設計請參考前面。

先判斷D2是否有訊號,如果按了第一個Do按鍵,D2就有訊號,執行下面的指令。

讓黃色LED亮(D7高電位),接著讓蜂鳴器播出一個二分之一拍的Do,然後LED熄滅。

其他音階判斷也是一樣。

不斷的判斷哪一個按鍵被按下,就發出相對應頻率的聲音。

十一、創作

將上面的裝置增加組數,就可以發出更多的音階。

使用適合的按鍵開關,將蜂鳴器改成大喇叭,加一些裝飾,就成了第一課看到的[音樂樓梯]了。

https://youtube.com/watch?v=SByymar3bds

註:要真的實用還有一些細節要改進,例如:接線要堅固,加裝擴音線路才能讓喇叭發出夠大的聲音……….

英語單字學習機

十二、計數器

按一次按鍵,計數器加1,計算按鍵次數

做一個計數器變數。

一開始先將變數計數器值設為0

重複檢查是否按下按鍵,如果按下按鍵時,數位腳D8會輸入一個高電位,就亮燈並將計數器的值加1

程式下載:計數器.sb2

這個程式跟我們的需求是不符的,按一下會跳很多次。

因為按下去以後,數位腳D8會一直輸入一個高電位直到放開,所以計數器的值就一直加上去了。

要如何修正呢?

改用 [等待…] 指令來控制

程式下載:計數器1.sb2

 

延伸:

1.增加倒數計時功能,限制時間內的按鍵次數才有效

2.比賽看哪一組在時間內的按鍵按最多

3.將按鍵換成水銀開關,夾在頭上變成搖頭晃腦比賽

十三、打地鼠

組合不同顏色LED和按鍵,看到那一個顏色的燈亮,就按那個燈旁的按鍵,按對加分,按錯扣分。再加上計分和時間限制(倒數計時)

十四、反應測試

測試你的神經反應:

準備好時,按下按鍵,隨機時間後LED亮,看到亮燈,要立刻按下按鍵。螢幕上顯示你看到亮燈到按下按鍵的反應時間。

按鍵一邊接5V,另一邊接10K歐姆電阻再接地(GND),中間拉一條訊號線到數位腳D8當作判斷輸入訊號。

數位腳D11接紅色LED正極,再串接220歐姆電阻後接地(GND)。

按綠旗後的說明

開始先出現主題及說明頁,等待按鍵開始。

如果按下按鍵,數位腳D8收到高電位就開始,小貓出現。

要鬆開按鍵才開始隨機選擇亮燈時間,計時器歸零,重新計時,並顯示時間,一直到再一次按下按鍵,停止程式。

程式下載:反應測試.sb2

延伸:

加裝一組蜂鳴器。

準備好時,按下按鍵,隨機時間後LED亮,並且蜂鳴器發出聲音,看到亮燈或聽到聲音,要立刻按下按鍵。螢幕上顯示你看到亮燈或聽到聲音到按下按鍵的反應時間。

十五、電子骰子

按下按鍵,LED開始變化不同顏色,鬆開按鍵,停在某一顏色。按鍵按下時間不同,最後停止時的顏色不同。

接RGB三色LED和一組按鍵。

按鍵電路中間拉一條訊號線到數位腳D8當作判斷輸入訊號,RGB三色LED分別接D9、D10、D11控制顏色變化

程式開始先設定數位腳8~11的功能(輸入或輸出)

接著不斷的偵測有沒有按下按鍵。

如果有按下按鍵就先關閉上次亮的顏色,然後隨機D9、D10、D11其中一個輸出高電位,那個顏色就亮起來。

鬆開按鍵時,D8沒有訊號輸入,燈就停止隨機亂閃顏色

程式下載:電子骰子.sb2

延伸:

1.比大小:紅色代表1,綠色代表2,藍色代表3,看看誰骰的比較大。

2.改接7顆LED,排成骰子的點數形狀,模擬擲骰子的情形亮不同的燈。

十六、顏色猜猜機

設計一個遊戲機器,讓玩家猜顏色。

在螢幕上先出現三個顏色讓玩家選擇(猜),選好後玩家按下麵包板上的按鍵,三個顏色的LED燈開始亂數閃爍,鬆開按鍵時,某一個顏色的燈恆亮,如果猜中顏色,就說[猜對了],如果猜錯,就說[猜錯了]。

請參考  http://blog.ilc.edu.tw/blog/blog/868/post/97121/630444

六年級林辰皓、吳至勤同學作品

六年級藍培誠、四年級李盺澤同學作品。

十七、平交道緊急按鈕

上、下紅燈模擬平交道燈號,中間的綠、紅燈是火車燈號,緊急時按下「緊急按鈕」,火車燈號轉為紅燈,火車司機看到就趕快將火車停止。 

六年級藍培誠同學作品。

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第八課(按鍵) 由 roc 發表。

WFduino第七課(蜂鳴器)

蜂鳴器:可以產生聲音的裝置。 (註)

聲音的三要素

1.音量(響度) :聲音的大小(強弱),聲波的振幅(即振動的能量),振幅愈大,響度愈大,單位為分貝(dB)。

2.音調(音頻) :聲音的高低,聲波的頻率,振動愈快,頻率愈大,音調愈高,單位為赫茲(Hz)(次/秒)。

3.音色(音品) :聲音的特色,聲波的波形,不同的發聲體會有不同的波形。

壹、音量測試

利用PWM模擬不同的電壓輸出,讓蜂鳴器發出不同的音量。

音量接線圖

音量接線

蜂鳴器的正極(長腳)接數位腳D6,負極接GND

先拉一個[腳位(號碼)模式設為(OUTPUT)]的積木。

做一個變數[音量],[腳位(6類比輸出(音量)],改變[音量]的數值,輸出的電壓就會改變,蜂鳴器發出的音量也就跟著改變。

將音量變數由255慢慢減少,蜂鳴器發出的音量就愈來愈小聲。

程式下載:音量.sb2

貳、音調改變

一、播放一聲Do

聲音的高低就是聲波的頻率得快慢,聲音振動愈快,頻率愈大,發出的音調愈高,單位為赫茲(Hz)(次/秒)。

先拉一個[腳位(號碼)模式設為OUTPUT]的積木,設定數位腳位D6為輸出。

使用 [腳位(6)播放音調,頻率為:(C2,523)Hz,時間為:(500)ms] ,就可以播出0.5秒的Do

程式下載:Do.sb2  

二、播放一首歌

音階–頻率對照表(單位:Hz)

低音

Do

Re

Mi

Fa

So

La

Si

頻率

262

294

330

349

392

440

494

中音

Do

Re

Mi

Fa

So

La

Si

頻率

523

587

659

698

784

880

988

高音

Do

Re

Mi

Fa

So

La

Si

頻率

1046

1175

1318

1397

1568

1760

1976

參考資料:http://210.70.70.242/eegc/epaper/10008/10008P-2.html

1.直接編曲

直接在 [腳位(6)播放音調,頻率為:(C2,523)Hz,時間為:(500)ms] 積木上選擇要發出的音階頻率,或是參考上面的音階-頻率對照表,設定不同音階對應的頻率。

依照歌曲需求拉一些音調播放積木就可以組合成一首歌了。

記得每個音之後都要接等待幾秒,讓音階唱完。

程式下載:小星星0.sb2

延伸:

發出模擬救護車、消防車、警車的聲音

2.使用[製作一個積木]

一般歌曲都會有一些重複的曲段,因此將歌曲分成數段,使用[製作一個積木],將重複部分自訂成積木,可以縮短程式。

以小星星為例,主要分成3段,各用了2次。

主程式變得很簡短。

註:如果使用[製作一個積木]來寫程式的好處就是程式比較有規律,修改、除錯都比較容易。

程式下載:小星星.sb2

延伸:

使用[製作一個清單],參考上面的音階-頻率對照表,將音階頻率製成清單,在音調播放積木裡,將頻率換為對應的清單音階。

三、電子琴

使用鍵盤來彈奏音樂

注意:

記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。

按下鍵盤上的1、2、3、4、5、6、7分別代表Do、Re、Mi、Fa、Sol、La、Si

程式執行時只要按下不同的數字鍵,就可以彈奏出音樂了。

程式下載:電子琴.sb2

四、計時器

接線圖如前,按下[綠旗]後,輸入倒數時間,然後開始計時,時間到,蜂鳴器發出聲響。

程式開始先問要計時多久,輸入時間。

設定變數[倒數計時]為[答案]

重複等待1秒,並將倒數計時變數 -1

時間到了,將造型換成[時間到],並發出聲音。

程式下載:計時器.sb2

延伸:

1.設計可以有不同時間的計時器。例如:

    按[1]開始計時1分鐘,按[2]開始計時2分鐘,按[3]開始計時3分鐘……………..

2.再加上LED,就聲、光效果都有了。

3.將時間到的do生改成音樂。

五、實體電流急急棒

加上一組LED,當手上的電線碰觸到路徑上的銅線時,就發出聲音並亮燈。

電流急急棒材料可以使用網路線剝去外皮的裸銅線來彎折後插入麵包板。

接上電線,就是一個電流急急棒了。

蜂鳴器的正極(長腳)接數位腳D11,負極接GND

紅色LED長腳(正極)接數位腳位8,短腳(負極)串接220歐姆電阻後接地(GND)

裸銅線彎折後插入麵包板,當成電流急急棒的路線,一端接10K歐姆電阻再接地(GND),中間拉一條訊號線到數位腳D7當作判斷輸入訊號。

手持的銅環接5V(可以直接拿軟線接,比較好操作)。

當手上的電線(銅環)碰觸到路徑上的銅線時,數位腳位D7就會接收到高電位,然後讓數位腳位D8和D11輸出為高電位,讓LED亮燈並讓蜂鳴器發出聲音。

先設定腳位7為輸入,8、11為輸出

重複執行,檢查手持銅環有沒有碰到路徑上的銅線,如果碰到,數位腳位7的值就會從0變成1

這裡加了一個[說讀取數位腳位7],可以從畫面上看到數值,檢查線路和程式是否正確。

如果碰觸,讓數位腳位D8和D11輸出為高電位,讓LED亮燈並讓蜂鳴器發出聲音,否則LED就熄滅且不發出聲音。

註:銅線表面可能會因為氧化,造成接觸不良。

程式下載:電流急急棒.sb2

六、聽力測試

人類能聽到的音調頻率大約在20Hz到20000Hz之間,事實上每個人能聽到的範圍都不一樣。 

利用蜂鳴器來測試您能夠聽到的音調(頻率)範圍。

音量接線圖

蜂鳴器的正極(長腳)接數位腳D6,負極接GND

程式執行時輸入您要聽的頻率,蜂鳴器就會發出一秒鐘的該頻率。

程式下載:聽力測驗.sb2

實際上因為蜂鳴器的規格限制,及scratch+arduino的規格限制,很多頻率是無法產生聲音的。

本實驗的蜂鳴器規格如下:

電壓:4–8VDC

最大電流:30MA/5VDC

最小聲壓=>85db/10cm

諧振頻率2500+–300HZ

工作溫度:-20——70度

改換普通小喇叭試試看。

註:

蜂鳴器品質相差很多,學生實驗用的比較便宜,性能差別很大,可能發出來的聲音品質會差距很大,甚至造成當機。

A.蜂鳴器可分為電磁式壓電式兩種 

1.電磁式:由電流驅動,聲音較大但較為耗電。 

2.壓電式:半導體電壓轉換陶磁片振動,由電壓驅動(陶磁片),較省電但聲音較小。 

B.無論電磁式或壓電式依其驅動方式又分為兩種:自激式與他激式 

1.自激式(有源):內藏驅動電路,只需直流電即可動作。 

2.他激式(無源):內無驅動電路,需加入交流電源及動作訊號才可動作。

注意,這裡的“源”不是指電源。而是指震盪源。

(一)無源蜂鳴器的特點是:

(1)無源內部不帶震盪源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅動它

(2)聲音頻率可控,可以做出“多來米發索拉西”的效果。

(3)在一些特例中,可以和LED複用一個控制口

(二)有源蜂鳴器的特點是:

(1)有源蜂鳴器內部帶震盪源,所以只要一通電就會叫

(2)程式控制方便,單片機一個高低電平就可以讓其發出聲音,而無源蜂鳴器卻做不到。

參考資料:http://www.cpu.com.tw/kh/elec/buzz/buzz-s.html

          http://goods.ruten.com.tw/item/show?21537607828784

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第七課(蜂鳴器) 由 roc 發表。

WFduino第六課(RGB三色LED)

一顆RGB三色LED裡面就有RGB(紅、綠、藍)三種顏色的LED,我們用的是共陰極,有四支腳,其中最長的腳要接地(GND),其他三支腳分別控制 R、G、B 三個顏色。(註)

RGB

為了避免電流太大,負極接地前先接一顆電阻;

其他三支腳分別接D9(藍)、D10(綠)、D11(紅)

————————-

一、使用鍵盤按鍵來控制LED

程式設計請參考第四課(LED紅綠燈)

二、搶答

程式設計請參考第四課(LED紅綠燈)

三、綠色、藍色、紅色輪流亮

程式設計請參考第四課(LED紅綠燈)

四、呼吸燈

程式設計請參考第五課(pwm)

五、色光三原色

參考教案:

色光三原色(S4A運用)

http://blog.ilc.edu.tw/blog/blog/868/post/2172/583619

老師說明三原色的原理、混成光的特性,讓學生練習調整三種顏色LED不同的輸出功率,研究三種色光的混成顏色和輸出功率之關係,也可以認識LED燈的發光特性。

 

先做一個紅色變數,在舞台區會顯示變數的圖案,在圖案上用滑鼠左鍵點一下,就會變成下圖(只有數值)


在圖案上再點一下滑鼠左鍵,就會出現下圖

用滑鼠左鍵拖曳小點往左右滑動,就可以改變變數大小,也就是改變輸出值的大小。

依序再設定綠色、藍色變數,一樣在變數前要打勾,舞台區上的變數圖形要點按2次,變成可以拖曳改變數值的圖案。

使用[腳位(號碼)模式設為(OUTPUT)]的積木,設定數位腳位9、10、11為輸出。

設定D9輸出為藍色,D10輸出為綠色,D11輸出為紅色。

接著用滑鼠左鍵拖曳三原色的小點往左右滑動,就可以改變變數大小,也就是改變輸出值的大小,輸出各種不同的顏色了。

學生練習:

1.請學生依序調出黃光(紅+綠)、洋紅(紅+藍)、青(綠+藍)、白(藍+綠+紅)……..等顏色。

2.讓學生動手後,提醒學生觀察 RGB 三個顏色不同的調整比例和複合後顏色的關係。並不是按照 1:1:1 的比例就會真的混成視覺白光,因為 RGB 的視覺亮度不一樣,還有 LED 的品質和轉換效率都會影響混成效果。

3.請學生依序調出彩虹的七種顏色,並記錄各顏色時所調的RGB值各是多少。

程式下載:RGB.sb2

六、三原色組合

設計程式讓三原色自動組合成所有可能的顏色。

程式下載:RGB(所有).sb2

延伸:

改用鍵盤控制調整RGB三顏色變數。

七、彩虹燈(隨機顏色)

讓RGB三色LED隨意變化顏色,形成五彩繽紛的彩虹燈

設定D9(藍色),D10(綠色),D11(紅色)的輸出值為隨機,配出來的顏色就會不一樣

程式下載:RGB(彩虹燈).sb2

八、打地鼠

看到紅色燈亮按R鍵、黃色燈亮按Y鍵、綠色燈亮按G鍵,按對計分

九、學生創作:

1.提供多組材料讓學生自由創作

2.學生尋求其他組同學合作創作更多元的作品

例如:

用LED編排圖形、文字

模擬廣告看板

———————————-

註:

RGB LED 一般分為共陽極共陰極兩種,有四隻針腳,最長的是共同接腳

共陽極的RGB LED,共同接腳要接正極,另外三隻腳接GND時會分別亮紅、綠、藍三顏色。

共陰極的RGB LED,共同接腳要接負極另外三隻腳接正極時會分別亮紅、綠、藍三顏色。

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第六課(RGB三色LED) 由 roc 發表。

WFduino第三課(用鍵盤控制LED)

一、使用鍵盤按鍵來控制LED

注意:

記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。 

1.按下鍵盤上的[空白鍵]讓LED燈鬆開[空白鍵]讓LED燈熄滅

將LED正極Arduino板數位腳位11

如果按下[空白鍵],就讓數位腳位11輸出1(高電位),讓LED亮。
否則就
數位腳位11輸出0(低電位),讓LED熄滅。

程式下載按空白鍵.sb2

2.鍵盤上的[a]鍵讓LED燈一直亮鍵盤上的[b]鍵讓LED燈熄滅

連接方式和前面一樣

2.1

程式下載按a鍵.sb2

2.2

另一種方式也可以喔!

程式下載按a鍵1.sb2

3.同時按住[a]和[p]兩個鍵,LED才會

使用[如果..否則]加[…和…]來決定LED要不要亮。

要[不停重複]來偵測鍵盤動作。

程式下載:  同時按才亮.sb2 

4.按住[a]或[p]任一個鍵,LED都會亮

使用[如果..否則]加[…或…]來決定LED要不要亮。

要加上[不停重複]來偵測鍵盤動作。

程式下載按a或p.sb2

二、雙色LED

  

再增加一組LED,第二顆用黃色LED,正極Arduino板數位腳位10

1.按鍵盤上的[上鍵]讓黃色LED燈鬆開[向上鍵]讓黃色LED燈熄滅

   鍵盤上的[空白鍵]讓紅色LED燈鬆開[空白鍵]讓紅色LED燈熄滅

設定[腳位10模式為OUTPUT]、 [腳位11模式為OUTPUT],設定數位腳10、11為輸出。

如果按下[向上鍵],就讓數位腳位10輸出1(高電位),讓LED亮。
否則就
數位腳位10輸出0(低電位),讓LED熄滅。

如果按下[空白鍵],就讓數位腳位11輸出1(高電位),讓LED亮。
否則就
數位腳位11輸出0(低電位),讓LED熄滅。

程式下載按空白向上鍵.sb2

三、搶答

甲、乙兩隊搶答,先按的亮燈,後按的燈不亮。

紅隊按[空白鍵]讓紅色LED燈亮,黃隊按[向上鍵]讓黃色LED燈亮。

連接方式和前面一樣

先設定數位腳位10、11為輸出。

設定[腳位10、11數位輸出0],讓2顆LED先熄滅。因為上一次執行的結果,會讓LED燈亮著,先讓它熄滅,才進行。

然後偵測[空白鍵]和[上移鍵]是否被按下,來決定哪一隊先答題。

如果按下[向上鍵],就讓數位腳位10輸出1(高電位),讓LED亮。
並說[黃隊先答],然後停止[這個程式],以免另一隊也按了,也亮燈。

如果按下[空白鍵],就讓數位腳位11輸出1(高電位),讓LED亮。

並說[紅隊先答],然後停止[這個程式],以免另一隊也按了,也亮燈。

程式下載搶答.sb2

四、搶答(說出結果)

甲、乙兩隊搶答,先按的亮燈,後按的燈不亮,說出 哪一隊先答

紅隊按[空白鍵]讓紅色LED燈亮並說出 紅隊先答,黃隊按[向上鍵]讓黃色LED燈亮並說出 黃隊先答

註:win7和chromebook只會說英文,不會說中文。

連接方式和前面一樣

主要程式同上面。

使用[說(……)]的擴充積木將搶答結果哪一隊先答轉換為聲音,讓程式真的說出來。

程式下載搶答(說).sb2

五、十字路口警示紅、黃燈

紅、黃LED輪流閃爍

連接方式和前面一樣

1.[腳位(…)模式為OUTPUT],設定數位腳10、11為輸出。

2.[腳位(…) 數位輸出1],讓數位腳10、11輸出為高電位,LED燈亮

3.[等待1秒],讓亮燈維持一秒

4.設定[腳位(…) 數位輸出0],讓數位腳 (…)10、11輸出為電位,LED燈熄滅

5. 輪流讓數位腳10、11輸出高、低電位,就可以讓黃、紅LED燈輪流亮、滅的閃爍。

6. 加上[重複執行],就可以無限循環這個綠、黃、紅LED燈輪流閃爍。

程式下載紅黃閃燈.sb2

延伸:

請學生修改LED燈亮、滅的快慢。

——————————

1.實際上課時,可能無法在一節課內完成,老師視學生情形彈性調整上課進度,可以先請學生另存新檔,下次上課時再開啟舊檔來繼續修改。

2.程式並無標準答案,所附程式僅供參考。

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第三課(用鍵盤控制LED) 由 roc 發表。

WFduino第四課(3顆LED紅綠燈)

增加為紅 三顆LED

紅色LED,正極Arduino板數位腳位11
黃色LED,正極Arduino板數位腳位10
綠色LED,正極Arduino板數位腳位9

控制數位腳位9、10、11的輸出為高電位(5V)或低電位(0V)。來控制三種顏色LED的亮或熄滅。

一、使用鍵盤按鍵來控制LED

注意:

記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。

按鍵盤上的[a]鍵讓綠色LED燈亮,鬆開[a]鍵讓綠色LED燈熄滅。

按鍵盤上的[空白鍵]讓紅色LED燈亮,鬆開[空白鍵]讓紅色LED燈熄滅。

按鍵盤上的[向上移]讓黃色LED燈亮,鬆開[向上鍵]讓黃色LED燈熄滅。

程式設計請參考上一節修改

二、搶答

1.甲、乙、丙三隊搶答,先按的亮燈,後按的燈不亮。

紅隊按[空白鍵]讓紅色LED燈亮,黃隊按[向上鍵]讓黃色LED燈亮, 隊按[a]讓綠色LED燈亮

程式設計請參考上一節修改

2.螢幕上加上倒數計時,時間到,再搶答。

3.螢幕上隨機出現搶答畫面(加上聲音),看(聽)到再搶答。

三、十字路口紅綠燈

a.綠、黃、紅LED輪流亮

1.[腳位(…)模式為(OUTPUT)],設定數位腳9、10、11為輸出。

2.[數位輸出:設定腳位…為1],讓數位腳9、10、11輸出為高電位,LED燈亮

3.[等待1秒],讓亮燈維持一秒

4.設定[數位輸出:設定腳位….為0],讓數位腳…輸出為 電位,LED燈熄滅

5. 輪流讓數位腳9、10、11輸出高、低電位,就可以讓綠、黃、紅LED燈輪流亮、滅的閃爍。

6. 加上[重複執行],就可以無限循環這個綠、黃、紅LED燈輪流閃爍。

程式下載:綠黃紅閃燈.sb2

延伸:

1.請學生想想要如何改變閃爍(亮、滅)時間?

2.燈愈多,程式愈長,請學生想一想可不可以縮短程式?

b. 模擬十字路口

將上一個練習的LED燈等待時間調整,就可以模擬十字路口的紅綠燈號了。

程式下載紅綠燈.sb2

c.紅燈時,螢幕要顯示倒數計時(模擬十字路口)

主要程式同上面的練習。

在紅燈的部分增加顯示倒數計時的改變。

增加一個[紅燈倒數]的變數。 

一開始隱藏變數不要顯示,等輪到紅燈再顯示。 

紅燈時,先設定變數值紅燈的倒數秒數(10秒),然後在螢幕上顯示變數,設數位腳11的紅燈輸出為1(高電位),將紅燈點亮。 

等待一秒後,將變數值減1  
重複10次後,隱藏變數,設數位腳11的紅燈輸出為0(低電位),紅燈熄滅。

程式下載紅燈倒數.sb2

d. 紅、綠燈時,螢幕都要顯示倒數計時

主要程式同上面的練習。

在綠燈的部分增加顯示倒數計時的改變。

增加一個[綠燈倒數]的變數。 

程式下載 紅綠燈倒數.sb2

四、隨機閃燈

綠、黃、紅LED隨機點亮又熄滅

增加一個[亮燈]的變數。 

[設定變數(亮燈)為(在9到11間隨機選一個變數)],將變數值設定為9到11之間的隨機變數。

設定[亮燈]變數的腳位輸出為1(高電位),將燈點亮。 

等待一秒後,將[亮燈]變數的腳位輸出為0(低電位),將燈點熄滅。

然後重複這個[變數改變]、[亮燈]、[熄滅]。

程式下載: 隨機閃燈.sb2

延伸:

1.改變等待時間,讓隨機閃燈的時間改變。

2.上面程式特地加了一個[亮燈]變數為9~11隨機選一個數,如果不要做這個變數設定,直接將9~11隨機選一個數放進腳位輸出,可以嗎?

為什麼?

程式下載隨機閃燈0.sb2

五、學生創作:

1.提供多組材料讓學生自由創作

2.學生尋求其他組同學合作創作更多元的作品

3.十字路口有4組紅綠燈一起動作。

4.更多隊伍(5隊、6隊)的搶答系統

5.用LED編排圖形、文字

6.模擬廣告看板

7.打地鼠(看到紅色燈亮按R鍵、黃色燈按Y鍵、綠色燈按G鍵,按對計分)

8.時鐘

9.霹靂燈:

接很多LED燈排成一排,讓這些LED燈輪流一顆顆的閃亮過去。

9.1 請學生想想如何可以接更多LED燈?

從數位腳位D0~D13,共有14個數位輸出的位置,可以接14顆LED。

可是大家常用的是D2~D13可以接12顆LED,為什麼D0和D1不用?

因為程式執行時D0和D1負責傳輸訊號,這時接在D0和D1的LED會跟著訊號傳輸亂閃。

9.2 請學生想想可以接更多LED燈嗎?

類比腳A0~A5一般用來接受類比電壓輸入,也可以當作數位輸出的數位腳D14~D19,所以可以接上LED。

這樣數位輸出最多就可以從D2~D19接18顆LED

9.3 同時接18顆LED,如果用前面練習時寫程式的方法,寫出來的程式會很長一串,想想看如何用簡短的程式來控制這麼多顆LED?

9.4  同時接18顆LED,也必須同時接18顆電阻,有沒有辦法簡化?

因為同一時間只有一個燈會亮,所以可以將系統簡化,只接一顆電阻

a.18顆LED輪亮

設定變數[亮燈]來決定該輪到哪一顆LED燈要亮。

重複18次[腳位(…)模式為OUTPUT],將D2到D19設定為數位輸出

重複18次[腳位(…) 數位輸出1]、[等待0.1秒]、[腳位(…)數位輸出0],讓D2到D19輪流亮、滅

[重複執行],讓上面LED亮、滅的動作重複進行。

程式下載18顆LED輪亮.sb2

b.18顆LED來回亮

前面的程式讓LED輪流閃過,改變一下,變成讓LED來回閃爍

請學生思考有18顆LED,為什麼重複執行只有17次?

試試看改變重複執行為18次,觀察有什麼不一樣?

程式下載18顆LED來回亮.sb2

延伸:

1.如果將[腳位(…)數位輸出1]、[等待0.1秒]、[腳位(…)數位輸出0]的[等待0.1秒]移除,結果有什麼不同?

2.除了上面兩種霹靂燈的模式,試試看如何可以讓他有更多種變化?

10.光立方

將27顆LED燈排列成3X3X3的立方體形狀,同一層的9顆LED負極焊接在一起,同一列的3顆LED正極焊接在一起。

所以三層有3組GND接頭,搭配一層9組正極,就可以用12個腳位來控制27顆LED燈了。

依序將正極接在數位腳D2~D10,負極接在數位腳D11~D13

設定變數[亮燈]來決定該輪到哪一列LED正極要輸出1。

設定變數[GND]來決定該輪到哪一層LED負極要輸出0。

重複12次[腳位(…)模式為OUTPUT],將D2到D13設定為數位輸出

要點亮LED,必須正極要輸出1,負極要輸出0

如果負極輸出為1,正極輸出為1或0都不會亮;控制GND的輸出來決定同一列中,哪一顆(哪一層)LED要亮。

用如果[ (…)就 … ]來控制負極D11~D13的輸出。

搭配D2~D10的[腳位(…)數位輸出1]、[等待0.1秒]、[腳位(…)數位輸出0],讓D2到D10輪流輸出1和0,就可以讓27顆LED依序閃亮起來。

程式下載:光立方.sb2

將輸出1和輸出0中間的等待時間去掉,閃亮速度更快

光立方(亂閃)

將GND和亮燈變數都用[隨機選一個數]來決定。

程式下載:光立方亂閃.sb2

———————————-

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第四課(3顆LED紅綠燈) 由 roc 發表。