蒸汽彼特(STEAM on micro:bit)II
主題10:卡路里大作戰之鋼鐵人反應爐燈環傳
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/
Apr. 4, 2020
難易度
★★☆☆☆
主題
跑跑跑…向前跑,邊跑邊消耗多食的卡路里之外,還可以替鋼鐵人的反應爐積累能量。
任務
反應爐是鋼鐵人的心臟,為了讓他好好活下去,請督促小彼特每天都要按時運動好將卡路里燃燒後轉換成反應爐所需的能量。
(將廣播與計步功能結合,每跑十步就讓燈環多亮一顆燈。待燈環全數點亮後還會放音樂。)材料
|
- 註:建議選用有WS2812可程式控制晶片的款式(https://reurl.cc/QdLjQM)。處理好+5V的供應電源,小彼特只要從DI(Data In)接腳送入控制碼即可控制燈環上的每一顆5050全彩RGB LED。這將使得作品接線較少即可滿足我們想要的效果。
- 共用工具組:剪刀、透明膠帶、熱融膠槍、熱融膠條。
- 技術咨詢(手機加Line:https://line.me/R/ti/g/U7UpPtBc0j)。
造形設計
以上一小節第5項材料,參考圓扁盒造形一(https://reurl.cc/O1Ap6A)、二(https://reurl.cc/xZ9OWN)、三(https://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)一文的詳細介紹。以下,我們條列幾項重要的原則供讀者在有需要採購時較好依循:
如何選擇合適的擴充板(extension boards)? 關於小彼特常用的擴充板可參考我們在MakerPro專欄中《micro:bit搭載KAISE週邊的引導式教學組合》(https://reurl.cc/z8ZM2e)一文的詳細介紹。以下,我們條列幾項重要的原則供讀者在有需要採購時較好依循:
- 錢有涯,擴充無涯:硬體擴充本身就是個無底洞,需量(財/能)力而為之。
- 專款專用,切忌包山包海:將所有元件集結在同一塊電路板子上雖可省去收找材料的麻煩,但一有某處單獨的零件損壞常會是再多新買一塊新品替代。更重要的是,在做作品時就會發現雖需求功能不多,但因為整塊板子全都包了,遂而無法客制量身訂作。
- 教學需求至上:凡教學上用不到的硬體,請都放在最後再考量。
- 學習常規,不學特例:筆者上課常和學生們笑言:「我們很懶,只要辛苦地一次把他們學會,之後就不用再多花時間學第二次。」某些廠商為了防呆或者是刻意簡化的接線方式,一開始學時無腦地喀喳就接好了,但只要是非該廠商推出的產品,就會立即發現接起線來東卡、西卡的。
- 跟風無時停(台語):網上推坑不平之路很多,只要看推的人有沒在教學?有沒學員作品不斷的產出?大概就知道他們推薦東西的受測度了。以我們而言,我們得要站在教學第一線來考量。因為自己有在教學,所以會被學員操到金嚇嚇(台語)~。
程式設計 既然硬體先天就已畫分好了傳送端Tx和接收端Rx,軟體功能的程式撰寫當然也得遵循這個架構。Tx和Rx最基本的主/從式(Client/ Server)程式架構請參考以下這兩個連結:主Tx程式(https://reurl.cc/oL1YMj)、從Rx程式(https://reurl.cc/d02aM6)。
- 傳送端的程式如某右圖所示。我們使用87號廣播通道(radio channel)來傳遞訊息。當傳送端的小彼特晃動時,將計步的記錄傳送出去後發出提示音效。(隨時按下按鈕A可發射代碼99表示要歸零重新開始。)完整的參考程式碼可按此(https://reurl.cc/9EGGjd)下載。
- 接收端的程式如某右圖所示。
在Make Code(https://makecode.microbit.org/)線上編輯工具中匯入燈環的擴充積木。本例是使用手邊的EzRing硬體,故需引入合適的積木擴充包(https://reurl.cc/WdrrpL)。讀者若使用的是WS2812款式的燈環,則需匯入neopixel這包擴充積木。
程式初始化時需指定和接收端相同的第87號廣播頻道。接著,我們要告訴接收端的小彼特是以P1(RX)和P2(TX)兩隻接腳來和EzRing傳遞序列(serial)控制資料(若是使用WS2812,則只要選用P1或P2一隻接腳來傳送5050 RGB LED的顯示資訊即可)。然後,再讓燈環閃礫一下表示備妥(ready)。
當收到傳送端傳來的計步值時,則將結果顯示到燈環上(一步一顆、二步兩顆…)。
教學活動設計
教學投影片可由此(https://reurl.cc/Y1v09o)下載。- 手勢控燈 參考右手邊的影片(https://reurl.cc/qd5OQp),設計若干不同手勢(gestures)來操控燈環的顯示樣式(patterns)。
- 展示盒 Tx,Rx。
積木指標
Basic、Radio、Loops、Input、Logic、Math、Variables、Extensions。
編程指標
循序結構(sequence structure)、判斷結構(decision structure)、重覆結構(repetition structure)、非同步事件處理(asynchronous event handling)。
硬體指標
擴充板、燈環。
沒有留言:
張貼留言