iL學習板第11課滾珠開關
也稱為震動傳感器或傾斜感測器,可以控制通路或斷路的開關,也可用來偵測是否傾斜。
微動開關、按鍵開關、磁簧開關等原理也都類似,可以控制電路的通路或斷路,也都可以參考本課的教學及範例。(註1)
一、基本測試
iL學習板有2個滾珠開關,分別接數位腳位D5和D8
A、滾珠開關模組1:[SW1]
使用Jump直接將D5和[5 SW1]連接:
左右搖動板子(滾珠開關),當形成通路時,數位腳位D5讀到高電位(1),當變成斷路,數位腳位D5讀到低電位(0),測試讀取結果。
設定腳位5模式為INPUT。
加上[說(讀取數位腳位(5))],可以從螢幕上看到讀取(輸入)的結果。
如果形成通路時,數位腳D5得到1(高電位)。
否則(變成斷路時),數位腳D5是0(低電位)。
測試結果:左下右上時為1,左上右下時為0
程式下載:滾珠1.sb2
延伸:
1.請同學思考[重複無限次]這個積木可不可以去掉?
2.試試看去掉後的執行結果有什麼不同?
3.加上LED指令,讓通路時LED會亮,斷路時LED會熄滅。
4.加上蜂鳴器指令,讓通路時蜂鳴器會響。
B、滾珠開關模組2:[SW2]
使用Jump直接將D8和[8 SW2]連接:
前後搖動板子(滾珠開關),當形成通路時,數位腳位D8讀到高電位(1),當變成斷路,數位腳位D8讀到低電位(0),測試讀取結果。
設定腳位8模式為INPUT。
加上[說(讀取數位腳位(8))],可以從螢幕上看到讀取(輸入)的結果。
如果形成通路時,數位腳D8得到1(高電位)。
否則(變成斷路時),數位腳D8是0(低電位)。
測試結果:前上後下時為1,前下後上時為0
程式下載:滾珠2.sb2
延伸:
1.請同學思考[重複無限次]這個積木可不可以去掉?
2.試試看去掉後的執行結果有什麼不同?
3.加上LED指令,讓通路時LED會亮,斷路時LED會熄滅。
4.加上蜂鳴器指令,讓通路時蜂鳴器會響。
二、運用數位輸入來控制LED亮或滅
搖動滾珠開關,黃色LED亮燈或熄滅。
使用Jump直接將D5和[5 SW1]、D8和[8 SW2]及D13和[13LDY]連接:
使用滾珠開關1(SW1)控制
先設定D5為輸入[INPUT]
加上[說(讀取數位腳位(5))],可以從螢幕上看到讀取(輸入)的結果。
如果接通時,數位腳D5得到1(高電位),這時就給數位腳D13輸出一個高電位(1),讓黃色LED亮。
否則(沒有接通時),數位腳D5是0(低電位),這時就設定腳為13為低電位,讓黃色LED熄滅。
程式下載:滾珠LED.sb2
延伸:
1.請同學思考[重複執行]這個積木可不可以去掉?
2.試試看去掉[重複執行]這個積木後的執行結果有什麼不同?
3.加上蜂鳴器,讓滾珠開關通路時蜂鳴器會響。
4.將程式修改成使用滾珠開關2(SW2)控制
5.修改程式,使用滾珠開關1(SW1)及滾珠開關2(SW2)一起控制
6.搖動板子,讓滾珠開關形成通路又斷路,每次改變,螢幕上就隨機顯示1~6的數字,模擬搖骰子。
三、彈奏鼓聲
搖動滾珠開關讓LED亮,並使用電腦喇叭發出鼓聲。
重複執行:判斷滾珠開關是否接通,讀取數位腳位(5)的值。
如果開關接通時(數位腳位5的值=1),就輸出一個1(高電位)給數位腳13,讓LED亮,並[彈奏鼓聲]
可以選擇發出不同的[鼓聲]及節拍。
程式下載:滾珠(鼓).sb2
四、打擊樂(鑼)
搖動滾珠開關讓LED亮,並使用電腦喇叭發出音樂聲
將程式的[彈奏鼓聲]改為[播放聲音],可以選擇發出不同的[聲音]
選取程式的[音效],點選新聲音的小喇叭圖示
選擇要播放的聲音檔(可以先點檔案內的小三角形試聽),按[確定]。
這次選敲鑼。
重複執行:判斷滾珠開關是否接通。
如果開關接通時(數位腳位5的值=1),就輸出一個1(高電位)給數位腳13,讓LED亮,並發出鑼聲的音效。
程式下載:滾珠(鑼) 修正.sb2
五、打擊樂(修正)
如果開關一直接通,會發現鑼聲被中斷變成不像鑼聲。
修正如下:
改成[播放音效…..直到播放完畢],可以讓鑼聲完整的播完。
程式下載:滾珠(鑼) 修正.sb2
六、播放音樂
搖動滾珠開關讓LED亮,並使用電腦喇叭發出scratch音樂聲或錄音。
重複執行:判斷滾珠開關是否接通,讀取數位腳位(5)的值。
如果開關接通時(數位腳位5的值=1),就輸出一個1(高電位)給數位腳13,讓LED亮,並播放音效。
選擇長一點的音效,變成按下按鍵播放一首音樂。
程式下載:滾珠(音樂).sb2
七、播放樂器聲音
如果將程式的[播放音效],修改為使用[設定樂器為..],加上[彈奏音符……]的指令,就可以發出更悅耳的聲音了。
設定腳位5為[輸入]。
使用[設定樂器為(…)],可以選擇不同的樂器
使用[彈奏音符(音階)(…)拍,來設定(音階)和節拍。
程式下載:滾珠(樂器).sb2
八、播放樂器聲音(延伸)
搖動滾珠開關讓電腦喇叭發出兩種音調。
搖動滾珠開關,當滾珠開關接通時發出一個音階,當滾珠開關沒有接通時發出另一個音階,就會發出模擬救護車的聲音。
程式下載:滾珠(樂器)2.sb2
九、改變主角造形
搖動滾珠開關讓LED亮,並讓小貓改變造型移動,像走路一樣。
設定腳位5為[輸入]。
主程式跟上面一樣,再多加[下一個造型]及[播放音效…到底]指令,當搖動滾珠開關,播放音效並改變主角造型。
加上[移動5步],讓小貓看起來像在走路。
程式下載:造型1.sb2
感覺小貓走路卡卡的,不連續。
請再檢查程式讓小貓可以像下面影片一樣,連續移動。
將[播放音效…到底]指令改成[播放音效],就可以連續移動了。
可是聲音變成怪怪的囉,為什麼?
程式下載:造型.sb2
延伸:
如果將[播放音效]積木移除,動作就可以連續了。
十、主角做特效
搖動滾珠開關控制螢幕主角做特效動作。
增加錄音效果
1.點選[音效],再點[麥克風]圖樣,再點黑色圓點開始錄音
圓點變成紅色,開始錄音,錄好,再按一下,完成錄音。
按[編輯]可以作一些簡單的剪輯。
重複判斷滾珠開關是否接通?
如果滾珠開關沒有接通,就說 [請搖動開關!]
如果滾珠開關接通時,就說[啊!我變形了!],並做魚眼效果及播放錄音音效。
程式下載:效果.sb2
延伸:
1.改用其他特效試試看。
2.可再增加聲音效果,或變換造型,或移動…….
十一、演奏自編歌曲
搖動滾珠開關就彈奏演奏自編歌曲。
主程式:
設定樂器種類,上圖[設定樂器為1] 是鋼琴。
重複執行:判斷滾珠開關是否接通,讀取數位腳位(5)的值。
如果滾珠開關接通時(數位腳位5的值=1),就輸出一個1(高電位)給數位腳13,讓LED亮,並演奏自編歌曲。
否則就輸出一個0(低電位)給數位腳13,讓LED熄滅。
製作音樂積木:
因為歌曲常常有一些重複的曲段,所以用積木來編排,節省程式長度,比較簡潔。
如果想要變換樂器聲音,只要更改[樂器種類]就可以了。
以小星星為例,主要分成3段,各用了2次。
主程式變得很簡短。
PS:如果使用[製作一個積木]來寫程式的好處就是程式比較有規律,修改、除錯都比較容易。
程式下載:演奏歌曲(整首).sb2
十二、搖動演奏歌曲
搖動滾珠開關,接通就彈奏一個單音,一直接通就一直演奏,斷開就停止演奏。
主程式:
設定樂器種類,上圖[設定樂器為1] 是鋼琴。
重複執行:演奏歌曲的音樂積木。
製作音樂積木:
[等待讀取數位腳位(5)=0],判斷滾珠開關是否有接通,如果滾珠開關接通,就進行下一步[彈奏音符…….],發出一個音。
將歌曲音符編排好,當滾珠開關接通時,就彈奏一個音符。
這樣就可以依序將歌播完。
因為歌曲常常有一些重複的曲段,所以用積木來編排,節省程式長度,比較簡潔。
如果想要變換樂器聲音,只要更改[樂器種類]就可以了。
以小星星為例,主要分成3段,各用了2次。
主程式變得很簡短。
PS:如果使用[製作一個積木]來寫程式的好處就是程式比較有規律,修改、除錯都比較容易。
程式下載:演奏歌曲(單).sb2
延伸:
1.學生自由創作不同的音樂
2.如何加快音樂節奏?
3.增加蜂鳴器,改成使用蜂鳴器來演奏樂曲。
十三、計數器
搖動滾珠開關一次,計數器加1,計算搖動滾珠開關次數。
建立一個變數 [ 計數器 ]。
一開始先將變數 [ 計數器 ] 值設為0。
重複執行:判斷開關是不是有接通,讀取數位腳位(5)的值。
如果開關接通時(數位腳位5的值=1),就輸出一個1(高電位)給數位腳13,讓LED亮,並將計數器的值加1
程式下載:計數器.sb2
十四、計數器(修正)
上面的程式跟我們的需求是不符的,如果滾珠開關一直接通,變數就會一直累加。。
因為滾珠開關一直接通,數位腳5會一直收到高電位直到放開,所以計數器的值就一直累加上去了。
要如何修正呢?
[等待讀取數位腳5=1] ,等待滾珠開關接通後就亮燈,並讓計數器的值加1。
[等待讀取數位腳5=0],等開關斷路後就關燈。
重複執行上面的步驟。
程式下載:計數器(修正).sb2
延伸:
1.增加倒數計時功能,限制時間內的看誰搖動開關最多次。
2.將滾珠開關綁在腳上當成計步器,紀錄走路次數。
十五、賽跑遊戲
搖動滾珠開關,讓螢幕上的小貓往右跑,計算跑到終點需要多久的時間?
.
設定腳位5為[輸入]。
[定位到X:…Y:… ],先讓小貓就起始位置。
[等待讀取數位腳12=1] ,等待按下[按鍵1],再重新開始計時。
[計時器重置],計時器重新開始計時。
重複執行:判斷滾珠開關是不是有接通,讀取數位腳位(5)的值。
[等待讀取數位腳5=1] ,等待滾珠開關接通後,就讓腳色往前移動20步。
如果碰到終點線,就說出計時器時間,停止這個腳色。
[等待讀取數位腳5=0],等開關斷路後,再執行下一次判斷。
程式下載:賽跑.sb2
延伸:
改用滾珠開關2[SW2]來控制小貓前進
程式下載:賽跑2.sb2
延伸:
1.跟同學比賽,看看誰跑得快(看誰時間最短)?
2.將板子(滾珠開關)綁在手上(頭上、腳上),比賽時跑(搖)得快?
接蘋果
控制[滾珠開關],讓(小貓)向左、右移動。 貓咪接到蘋果得分,碰到毒蘋果生命值減1。
控制[滾珠開關],讓(小貓)向左、右移動。 移動到不同顏色時,LED燈會亮相對應的顏色。
控制[滾珠開關],讓(小貓)向上、下、左、右移動。
貓咪抓到老鼠得分。
十六、飛天小貓遊戲
搖動滾珠開關,讓螢幕上的小貓上下移動,碰到建築物或雲生命值就減一,生命值等於零時就結束遊戲。
主畫面
1.舞台
設定一開始[生命值]變數,播放背景音樂,檢查[生命值]為0就結束遊戲。
2.飛天小貓
[腳位8模式設為INPUT]:設定滾珠開關2(SW2)模式為輸入。
先將角色移到固定位置。
重複執行,如果滾珠開關接通,貓就往上移動,否則(滾珠開關未接通)貓就往下移動。
再搭配建築物、雲等背景的移動和造型變化,看起來就像在飛行一樣了。
3.障礙物(建築物、雲)
十七、滑板衝浪(水平測量儀)
將滾珠開關平放在平衡板上,當平衡板沒有維持水平時,滾珠開關就會接通或斷開,可以由程式來判斷平衡板是否水平,做成平衡遊戲,畫面上可以同時出現小貓做平衡的畫面增加趣味性。
十八、搖頭晃腦方向燈
https://youtube.com/watch?v=oh__q2X-Vaw
參考宜蘭縣國華國中學生作品,將滾珠開關裝在安全帽上,使用滾珠開關來控制方向燈。
讓樓梯(房間)燈能樓上樓下雙切。
上下樓梯時,若燈熄著,只要在樓下打開開關(ON),樓梯燈就會點亮,等人到樓上再把樓上的開關關掉(OFF),燈就會熄滅,此種控制電路即如下圖(a)所示。
圖片來源:http://content.saihs.edu.tw/contentbook/bep1/U1/09/d/d3.htm
使用滾珠開關模擬家用開關
搖動[SW1]讓數位腳位13的黃色LED亮,搖動[SW2]或再搖動一次[SW1]讓LED熄滅。
延伸:
1.請比較滾珠開關的功能和家用開關有甚麼不同?這裡做的是模擬這個功能。
2.家用開關,程式設計請參考:
http://cheng-min-i-taiwan.blogspot.tw/2018/05/tinkercad-programming21led.html
————————–
註1:
震動開關:
也稱為震動傳感器或傾斜感測器,依構造可以分為:彈簧開關、滾珠開關、水銀開關。可以控制通路或斷路的開關,也可用來偵測是否傾斜。
微動開關、按鍵開關、磁簧開關等原理也都類似,可以控制電路的通路或斷路,也都可以參考本課的教學及範例。
水銀開關
資料來源:https://zh.wikipedia.org/wiki/%E6%B0%B4%E9%8A%80%E9%96%8B%E9%97%9C
水銀開關,又稱傾側開關,是電路開關的一種,以一接著電極的小巧容器儲存著一小滴水銀,容器中多數注入惰性氣體或直接真空。
注意:
水銀對人體及環境均有毒害,故此使用水銀開關時,請務必小心謹慎,以免破損導致水銀漏出;在不再使用時,也應該妥善處理。
滾珠開關:
可以控制通路或斷路的開關,也可用來偵測是否傾斜。
金屬小管子有兩隻腳,在管子內有一顆或2顆金屬球,當管子成直立狀態,也就是腳朝下時,金屬球會落下接觸管子內的兩個接觸點接通兩隻腳,形成通路,若管子傾斜到一定程度後,就會斷路。
圖片來源:https://bizweb.dktcdn.net/100/017/780/files/sw520.png?v=1457663311199
(圖片來源:https://www.google.com.tw/imgres?imgurl=http%3A%2F%2Fwww.blswitch.com%2FimageRepository%2Fbfbe8424-8c62-4274-b377-2e20941ac321.jpg&imgrefurl=http%3A%2F%2Fwww.blswitch.com%2Fpro%2FpmcId%3D22.html&docid=_TsMRczrkXut7M&tbnid=KN_apMOscuRCMM%3A&vet=10ahUKEwjT8pbstNDVAhXHVZQKHRfrBkEQMwgrKAgwCA..i&w=500&h=380&bih=633&biw=1280&q=%E6%BB%BE%E7%8F%A0%E9%96%8B%E9%97%9C&ved=0ahUKEwjT8pbstNDVAhXHVZQKHRfrBkEQMwgrKAgwCA&iact=mrc&uact=8 )
彈簧開關:
金屬小管子裡面,有一個導電彈簧及導電接腳,在晃動的時候,彈簧及導電接腳互相接觸,形成通路。
圖片來源:http://www.ksdkg.com/uploadfile/CKEditor/20093211504386.jpg
磁簧開關
(圖片來源:http://ming-shian.blogspot.tw/2013/01/blog-post.html )
註2:
資料來源:http://yehnan.blogspot.tw/2013/09/arduinotilt-ball-switch.html
註3:
讀取資料時,常常因為受到環境雜訊的影響,會發生讀取訊號不穩定的現象(有時讀取到 HIGH 有時卻讀取到 LOW),造成讀取判斷錯誤。為了確保它在穩定的狀態,,必須接個上拉電阻或下拉電阻。
詳細說明請參考:http://blog.ilc.edu.tw/blog/blog/868/post/97509/656348
——————————-
相關連結:
iL學習板課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/111175/727272
WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433
新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192