Micro:bit Blockly PBL教材[1]
主題2-6:健康計步器(增強版)
Ted Lee@Ted Lee的土饅頭工坊
FB2:http://gg.gg/TedLeeMicrobitFB/
Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1:http://gg.gg/TedLeeFB/
URL2:http://gg.gg/TedLeeMicrobit/
Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1:http://gg.gg/TedLeeFB/
Blog:http://gg.gg/TedLeeBlog/
URL1:http://gg.gg/TedLeeURL/
URL1:http://gg.gg/TedLeeURL/
Oct. 22, 2017
任務
上一篇我們已經協助蔣勳先生設計好他專屬的健康計步器了。經蔣先生本人試用後,他開出了增強版的功能需求單:- A鍵:Start,開始計步。
- B鍵:Reset,重置,讓計步器歸零。
- Shake:計步。
接到任務後,小彼特首席設計師立刻修改了上一版的雛形。經實測,示範影片如下:
。
什麼,您想試玩先?那有啥問題,首席不是給人叫爽的。來,您來,這兒有座!
解方
為了記錄按鍵A是否已按下而啟動計步功能,程式使用了一個程式寫作的小技巧叫哨兵(sentinel),也只有當哨兵舉火為號時才發起進攻。
我們重金禮聘這個盯梢的傭兵名喚flag,他的任務是專門監控玩家是否按下A 鍵---這是個非同步事件(asynchronous event)[3]。
我們重金禮聘這個盯梢的傭兵名喚flag,他的任務是專門監控玩家是否按下A 鍵---這是個非同步事件(asynchronous event)[3]。
只要A鍵被按了,馬上放煙火警示(flag變為1)
;等到警報處理妥後(按下B鍵歸零),警示才會被關閉(改回0)
。
完整程式碼如下,.hex档請按我下載。
後記:為了誏耳朵更声歷其境,我們在每計步一次時發出一音效。在某場研習時,有個小瓶油建訍用ba ding,所以我們就從善如流啰~
参考資料:
;等到警報處理妥後(按下B鍵歸零),警示才會被關閉(改回0)
。
完整程式碼如下,.hex档請按我下載。
- let flag = 0
- let steps = 0
- input.onButtonPressed(Button.B, () => {
- steps = 0
- flag = 0
- })
- input.onGesture(Gesture.Shake, () => {
- if (flag == 1) {
- steps += 1
- music.playTone(262, music.beat(BeatFraction.Whole))
- }
- })
- input.onButtonPressed(Button.A, () => {
- flag = 1
- })
- steps = 0
- flag = 0
- basic.forever(() => {
- basic.showNumber(steps)
- })
後記:為了誏耳朵更声歷其境,我們在每計步一次時發出一音效。在某場研習時,有個小瓶油建訍用ba ding,所以我們就從善如流啰~
活動挑戰
- 大擂台(三人一組,一挑战者,一裁判,一主考官。裁判用寫好的程式,幫挑战者計數,請挑战者說出主考官出題的十個国家的首都 )。
- 增加設定計步目標功能,例如:走到1000步就達標。
- 改用倒計時方式。
和108課綱的对照
- 學習表現:
- 資t-III-3 能應用運算思維描述問題解決的方法。
- 生k-IV-2 能了解科技產物的設計原理、發展歷程、與創新關鍵。
- 學習內容:
- 資A-III-2 能建立康健的數位使用習慣與態度。
- 生P-IV-1 創意思考的方法。
参考資料:
- 本PBL教材皆採:任務、解說(含筆者多年教學經驗分享)、教學活動設計三大段的寫作架構撰文。
- 六種授權條款。
- 非同步可想像成電話插播的突發事件。當然,我們可以決定要不要緊急處理它啰~。
沒有留言:
張貼留言