2020年4月4日 星期六

[micro:bit] 蒸汽彼特(STEAM on micro:bit)II──主題10:卡路里大作戰之鋼鐵人反應爐燈環傳

蒸汽彼特(STEAM on micro:bit)II

主題10:卡路里大作戰之鋼鐵人反應爐燈環傳


FB2http://gg.gg/TedLeeMicrobitFB/
URL2http://gg.gg/TedLeeMicrobit/

Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1http://gg.gg/TedLeeFB/
Bloghttp://gg.gg/TedLeeBlog/
URL1http://gg.gg/TedLeeURL/

Apr. 4, 2020
88x31.png[1]

 

難易度

★★☆☆☆

主題

跑跑跑…向前跑,邊跑邊消耗多食的卡路里之外,還可以替鋼鐵人反應爐積累能量

任務

反應爐是鋼鐵人的心臟,為了讓他好好活下去,請督促小彼特每天都要按時運動好將卡路里燃燒後轉換成反應爐所需的能量。
廣播計步功能結合,每跑十步就讓燈環多亮一顆燈。待燈環全數點亮後還會放音樂

材料

編號品名單位數量
1小彼特主板2
2傳輸線1
3燈環(註)4
4魔鬼氈1
5瓦楞紙板/PP板/木板…1

造形設計

以上一小節第5項材料,參考圓扁盒造形https://reurl.cc/O1Ap6A)、https://reurl.cc/xZ9OWNhttps://reurl.cc/vDdeEA…來設計反應爐的外觀。請留意要預留放置小彼特的尺寸。

功能設計=硬(電路設計)+軟(程式設計)

電路設計 電路設計如右圖所示。藍色小彼特為發送端(transmitter,Tx),它連接KSB040鋰電擴充板https://reurl.cc/ex33gM)供電;紅色小彼特為接收端(receiver,Rx),除了和接收端一樣使用KSB040做為電力來源外,考量到燈環需要5V電源(主板只需3V),因此,我們再加上一塊KSB047 PWM轉接板https://reurl.cc/E7rryn)後,恰巧可以把原本是要給外接伺服馬達用的5V電源接腳挪拿來驅動燈環使用。操作影片https://reurl.cc/1xZGpQ)如右圖所示。這個組合除了輕巧、省接線外,售價上也不會比外接獨立電源來的貴。所以,選用KSB040再搭配KSB047就會是一個經濟而實惠的不錯選擇了。


如何選擇合適的擴充板(extension boards) 關於小彼特常用的擴充板可參考我們在MakerPro專欄中《micro:bit搭載KAISE週邊的引導式教學組合》(https://reurl.cc/z8ZM2e)一文的詳細介紹。以下,我們條列幾項重要的原則供讀者在有需要採購時較好依循:
  1. 錢有涯,擴充無涯:硬體擴充本身就是個無底洞,需量(財/能)力而為之。
  2. 專款專用,切忌包山包海:將所有元件集結在同一塊電路板子上雖可省去收找材料的麻煩,但一有某處單獨的零件損壞常會是再多新買一塊新品替代。更重要的是,在做作品時就會發現雖需求功能不多,但因為整塊板子全都包了,遂而無法客制量身訂作。
  3. 教學需求至上:凡教學上用不到的硬體,請都放在最後再考量。
  4. 學習常規,不學特例:筆者上課常和學生們笑言:「我們很懶,只要辛苦地一次把他們學會,之後就不用再多花時間學第二次。」某些廠商為了防呆或者是刻意簡化的接線方式,一開始學時無腦地喀喳就接好了,但只要是非該廠商推出的產品,就會立即發現接起線來東卡、西卡的。
  5. 跟風無時停(台語):網上推坑不平之路很多,只要看推的人有沒在教學?有沒學員作品不斷的產出?大概就知道他們推薦東西的受測度了。以我們而言,我們得要站在教學第一線來考量。因為自己有在教學,所以會被學員操到金嚇嚇(台語)~。


程式設計 既然硬體先天就已畫分好了傳送端Tx和接收端Rx,軟體功能的程式撰寫當然也得遵循這個架構。Tx和Rx最基本的主/從式(Client/ Server)程式架構請參考以下這兩個連結:主Tx程式https://reurl.cc/oL1YMj)、從Rx程式https://reurl.cc/d02aM6)。
  1. 傳送端的程式如某右圖所示。我們使用87號廣播通道(radio channel)來傳遞訊息。當傳送端的小彼特晃動時,將計步的記錄傳送出去後發出提示音效。(隨時按下按鈕A可發射代碼99表示要歸零重新開始。)完整的參考程式碼可按https://reurl.cc/9EGGjd下載
  2. 接收端的程式如某右圖所示

Make Codehttps://makecode.microbit.org/)線上編輯工具中匯入燈環的擴充積木。本例是使用手邊的EzRing硬體,故需引入合適的積木擴充包https://reurl.cc/WdrrpL)。讀者若使用的是WS2812款式的燈環,則需匯入neopixel這包擴充積木
程式初始化時需指定和接收端相同的第87號廣播頻道。接著,我們要告訴接收端的小彼特8787是以P1(RX)和P2(TX)兩隻接腳來和EzRing傳遞序列(serial)控制資料(若是使用WS2812,則只要選用P1或P2一隻接腳來傳送5050 RGB LED的顯示資訊即可)。然後,再讓燈環閃礫一下表示備妥(ready)
當收到傳送端傳來的計步值時,則將結果顯示到燈環上(一步一顆、二步兩顆…)。
此外,若收到99的歸零訊息則將燈環換色後熄滅。
完整的參考程式碼可按
https://reurl.cc/vDdW11下載

展示影片請參考https://youtu.be/s-IAP8ER7Fg

    教學活動設計

    教學投影片可由https://reurl.cc/Y1v09o)下載。
    1. 手勢控燈 參考右手邊的影片https://reurl.cc/qd5OQp),設計若干不同手勢(gestures)來操控燈環的顯示樣式(patterns)


    積木指標

    Basic、Radio、Loops、Input、Logic、Math、Variables、Extensions

    編程指

    循序結構(sequence structure)判斷結構(decision structure)重覆結構(repetition structure)非同步事件處理(asynchronous event handling)

    硬體指

    擴充板、燈環。

    参考資料
    1. 六種授權條款