【創客入門】用Micro:bit設計一款心臟病遊戲

作者:Ted Lee

這次接到的任務是:「小阿聰總是神經大條,對事情的反應老是慢半拍,請設計一個特訓機來協助他反應up up!」那就來設計類似一個類似心臟病撲克牌遊戲的Micro:bit小彼特玩法吧。

怎麼做呢?很簡單,只要利用導電原理,使用鋁箔(aluminum foil)紙作為接觸端點,並以鱷魚夾(crocodile clip)搭建出電路迴路來偵測瞬間觸碰的反應識別。

材料

  • 共用工具組:剪刀、油性筆、透明膠帶、尺、美工刀

造形設計

設計我們想們想要的外觀,留出要黏貼發牌、奇數牌玩家、偶數牌玩家及GND四個鋁箔觸碰點的位置,再根據我們事先畫好的設計稿剪裁之,例如這款大象圖案。

功能設計

參考撲克牌心臟病的實際玩法https://reurl.cc/z8MaW7)來制定我們的遊戲規則。例如:兩位玩家(以奇數或偶數數字搶答區別,文後以奇數玩家及偶數玩家簡稱之)都先將一手放在GND觸碰(touch)的共地鋁箔上。

然後,選由其中的一位玩家按小彼特的A按鈕發牌。當牌數為偶數時,先前被指定為偶數需作答的玩家有按下觸碰則得一分。反之,若先前被指定為奇數需作答的玩家因誤判而按下觸碰時就扣一分。

最後,在比賽時間結束後,按下A按鈕會自動顯示贏家代碼,奇數玩家為A,偶數玩家為B。平手則以=表示。

導電原理:從電源正極出發,經開關到LED後回到電源負極的電路迴路(circuit loop)中,開關就是擔任迴路導通的切換關口,像本單元中的鋁箔正是做為迴路的導通開關之用。

電路設計如下圖所示。

另一方面,程式邏輯(program logic)参考樣版(template)步驟為:(變數played表示發牌的狀態,0:未發,1已發;card:記錄發牌的點數;scored_A/scored_B:奇數/偶數玩家的得分記錄)。

1. 發牌(觸碰P0):

程式流程如下:

轉換成對應的程式碼為:

2. 作答(觸碰P1/P2):

程式流程為:

轉換成對應的程式碼為:

3. 判斷輸贏(小彼特主板的按鈕A):

程式流程為:

轉換成對應的程式碼為:

成果影片如下:

參考程式碼可按https://reurl.cc/qdOR70)下載;教學投影片可由https://reurl.cc/9EOkja)下載。

(本文經作者同意轉載,原文連結

Ted Lee

Author: Ted Lee

從工程師轉任中學教師,又為了捍衛教育理念,投身成為 STEAM 教育工作者,自稱「無可救藥的人文教育理想主義者」的李俊德(Ted Lee)。

Share This Post On
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x