S3i第10課按鍵(下)
iL學習板有2個開關,分別接數位腳位D12和類比腳位A2。
使用Jump直接將D12和12KEY、A2和KEY2兩兩連接。(請看上一課)
一、計數器
按一次按鍵,計數器加1,計算按鍵次數。
做一個[計數器]變數。
一開始先將變數計數器值設為0
重複無限次:判斷按鍵是不是有按下按鍵,讀取數位腳位(12)的值。
如果按鍵按下時(數位腳位12的值=1),數位腳13輸出一個1(高電位),讓黃色LED亮,並將計數器的值加1
二、計數器(修正)
上面的程式跟我們的需求是不符的,按一下會跳很多次。
因為按下去以後,數位腳12會一直收到高電位直到放開,所以計數器的值就一直加上去了。
要如何修正呢?
[等待直到(讀取數位腳12=1)] ,等待按下按鍵,按下後就亮燈,並讓計數器的值加1。
[等待直到(讀取數位腳12=0)],等待放開按鍵,放開後就關燈。
延伸:
1.增加倒數計時功能,限制時間內的按鍵次數才有效
2.增加[按鍵2]計數器,變成2組,比賽看哪一組在時間內的按鍵按最多
三、檯燈開關(兩段式開關)
同一顆按鍵,按第一次燈亮,再按燈滅,再按燈亮,再按燈滅….。
延伸:
1.範例程式在判斷按鍵時,為什麼要使用[等待直到]而不使用[如果…那麼…]?
2.將RGB LED 的JUMP都插上,改變成設計程式讓RGB LED 輪流亮藍、綠、紅三個顏色。
3.增加JUMP連接數位腳位6和蜂鳴器,讓按下按鍵時蜂鳴器也會同時響。
四、反應測試
測試你的神經反應:
準備好時,按下按鍵,隨機時間後LED亮,看到亮燈,要立刻按下按鍵。螢幕上顯示你看到亮燈到按下按鍵的反應時間。
按綠旗後的說明
開始先出現主題及說明頁,等待按鍵開始。
如果按下按鍵,數位腳D12收到高電位,小貓出現。
等待放開按鍵,才開始隨機選擇亮燈時間。
計時器歸零,重新計時,並顯示時間,一直到再一次按下按鍵,停止程式,顯示反應時間。
延伸:
1.增加JUMP連接數位腳位6和蜂鳴器,準備好時,按下按鍵,隨機時間後LED亮,並且蜂鳴器發出聲音,看到亮燈或聽到聲音,要立刻按下按鍵。螢幕上顯示你看到亮燈或聽到聲音到按下按鍵的反應時間。
2.增加[按鍵2]的計數功能,變成2組比賽,看哪一組先按下按鍵。(搶答)
五、電子骰子
按下按鍵,LED開始變化不同顏色,鬆開按鍵,停在某一顏色。按鍵按下後鬆開的時間不同,最後停止時的顏色不同。
[腳位12模式設為INPUT],設定數位腳12為輸入。
接著不斷的偵測有沒有按下按鍵。
如果有按下按鍵,就先關閉上次亮的顏色,然後隨機讓D9、D10、D11其中一個輸出1(高電位),那個顏色就亮起來。
鬆開按鍵時,D12沒有訊號輸入,燈就停止隨機亂閃顏色。
延伸:
1.比大小:藍色代表1,綠色代表2,紅色代表3,看看誰骰的比較大。
2.加上[說…..積木],說出燈亮的顏色
3.增加JUMP連接數位腳位6和蜂鳴器,按下按鍵時發出聲音,增加聲音效果。
六、顏色猜猜機
設計一個遊戲機器,讓玩家猜顏色。
在螢幕上先出現三個顏色讓玩家選擇(猜),選好後玩家按下板子上的按鍵,三個顏色的LED燈開始亂數閃爍,鬆開按鍵時,某一個顏色的燈恆亮,如果猜中顏色,就說[猜對了],如果猜錯,就說[猜錯了]。
螢幕畫面
主程式:
開始先將說明圖片移到定點。
[腳位12模式設為INPUT],設定數位腳12為輸入。
說出使用方法
等待按下按鍵。
如果按鍵按下時,數位腳位D12得到1,就開始隨機讓D9、D10、D11其中一個輸出1(高電位),讓LED亮,再暗,再亮另一個顏色………。
直到放開按鍵,數位腳位D12得到0
然後判斷答對了嗎?
使用[說(……)]的擴充積木可以將文字轉換為聲音,讓程式真的說出來。
藍色角色:
程式開始先將顏色圖片移到定點。
當被選中,就將選色變數設為9,做為主程式判斷對錯的依據,並說出選色結果。
如果選的是其他顏色,會收到其他顏色的廣播,就將自己隱藏。
綠色角色:
程式開始先將顏色圖片移到定點。
當被選中,就將選色變數設為10,做為主程式判斷對錯的依據,並說出選色結果。
如果選的是其他顏色,會收到其他顏色的廣播,就將自己隱藏。
紅色角色:
程式開始先將顏色圖片移到定點。
當被選中,就將選色變數設為11,做為主程式判斷對錯的依據,並說出選色結果。
如果選的是其他顏色,會收到其他顏色的廣播,就將自己隱藏。
延伸:
1.增加JUMP連接數位腳位6和蜂鳴器,在按鍵時發出特殊聲音,答對或答錯時也可以發出不同的音樂。
2.答對或答錯時更換不同的造型。
注意:
win10或Mac系統,才可以使用[說(……)]的擴充積木可以將文字轉換為聲音,讓程式真的說出來中文,否則只能說英文。
PS:
chromebook只會說英文,不會說中文。
win7系統請使用下面積木才可以說中文(需要網路)。
七、樓梯電燈
讓樓梯(房間)燈能樓上樓下雙切。
圖片來源:http://old.pep.com.cn/czwl/jszx/tbjx/jc/jxck8x/jc8s5/201008/W020100824562135618059.gif
上下樓梯時,若燈熄著,只要在樓下打開開關(ON),樓梯燈就會點亮,等人到樓上再把樓上的開關關掉(OFF),燈就會熄滅,此種控制電路即如下圖(a)所示。
圖片來源:http://content.saihs.edu.tw/contentbook/bep1/U1/09/d/d3.htm
按[KEY1]數位腳位13的黃色LED亮,再按[KEY2]或再按一次[KEY1]LED熄滅。
按[KEY2]數位腳位13的黃色LED亮,再按[KEY1]或再按一次[KEY2]LED熄滅。
延伸:
1.請比較按鍵的功能和家用開關有甚麼不同?這裡做的是模擬這個功能。
2.家用開關,程式設計請參考:
http://cheng-min-i-taiwan.blogspot.tw/2018/05/tinkercad-programming21led.html
–—————————–
相關連結:
S32E(Scratch3 to Esp8266)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113127/750388
S3i(Scratch3 to arduino iL學習板)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113128/750428
S3A(Scratch3 to Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113129/750447
arduino 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