蒸汽彼特(STEAM on micro:bit)II
主題9:小彼特心臟病
FB2:http://gg.gg/TedLeeMicrobitFB/
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/
Mar. 31, 2020
難易度
★★☆☆☆
主題
根據撲克牌遊戲來設計類似的小彼特玩法。
任務
小阿聰總是神經大條,對事情的反應老是慢半拍。請設計一個特訓機來協助他反應up up!
(利用導電原理,使用鋁箔(aluminum foil)紙作為接觸端點,並以鱷魚夾(crocodile clip)搭建出電路迴路來偵測瞬間觸碰的反應識別。)材料
|
- 共用工具組:剪刀、油性筆、透明膠帶、尺、美工刀。
- 技術咨詢(手機加Line:https://line.me/R/ti/g/U7UpPtBc0j)。
功能設計=硬(電路設計)+軟(程式設計)
參考撲克牌心臟病的實際玩法(https://reurl.cc/z8MaW7)來制定我們的遊戲規則。例如:兩位玩家(以奇數或偶數數字搶答區別,文後以奇數玩家及偶數玩家簡稱之)都先將一手放在GND觸碰(touch)的共地鋁箔上。然後,選由其中的一位玩家按小彼特的A按鈕發牌。當牌數為偶數時,先前被指定為偶數需作答的玩家有按下觸碰則得一分。反之,若先前被指定為奇數需作答的玩家因誤判而按下觸碰時就扣一分。最後,在比賽時間結束後,按下A按鈕會自動顯示贏家代碼,奇數玩家為A,偶數玩家為B。平手則以=表示。
電路設計如圖所示。
另一方面,程式邏輯(program logic)参考樣版(template)步驟為:(變數played表示發牌的狀態,0:未發,1已發;card:記錄發牌的點數;scored_A/scored_B:奇數/偶數玩家的得分記錄)。
教學活動設計
- 敏捷王 採三戰兩勝分組進行競賽。選出最終的年度最佳「敏捷王」。
- 搶答機 請將上述的範例程式做適度的修改,並設計十道題目,由紅白兩隊各派十人參賽。主持人念完題目後開始按機搶答。
- 心臟病 用四塊小彼特WXYZ模擬四家對戰,並再放置一塊小彼特D來顯示各家翻出的牌。
一開始按下小彼特D的A按鈕將52張牌平均發給小彼特WXYZ。
然後由小彼特WXYZ輪流按按鈕A出牌,並顯示在小彼特D上。
每家出完牌後即開始等候按下按鈕B搶答。
搶答的先後次序由小彼特D來仲裁。
(建議使用WiFi來處理五塊小彼特之間的訊息傳遞。根據筆者實測,多塊小彼特通訊會產生信號干擾而導致封包遺失(packet lose)(https://reurl.cc/j7kzEn)的窘境。)
積木指標
Basic、Input、Logic、Math、Variables。
編程指標
循序結構(sequence structure)、判斷結構(decision structure)、非同步事件處理(asynchronous event handling)。
硬體指標
鋁箔紙、鱷魚夾。
沒有留言:
張貼留言