作者: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)下載。
(本文經作者同意轉載,原文連結)
- 用GenAI生成連連看樣板 - 2025/05/15
- 細談「春仔產生器」的專案拆解 - 2025/04/17
- 用生成式AI打造「春仔」產生器 - 2025/03/12
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!