2019年11月16日 星期六

[micro:bit] 小彼特玩樂器

小彼特玩樂器


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/

Nov. 11, 2019
88x31.png[1]
 

難易度

★★☆☆☆

主題


設計自己喜歡的樂器外形並譜寫演奏的曲子。

任務

莫札特是小彼特的摯友,小彼特要親自演奏一曲送給他作為堅固友誼的見證。
樂器外型上導電膠帶作為迴路的接觸端點,手指輕碰即依序演奏曲子的單個音階,並搭配灯條燈光變化

材料

編號 品名 單位
1 小彼特主板
2 電池盒(四號,二入,含蓋)
3 WS2812B燈條組(十顆)
4 杜邦線組(五條,公公,30 cm)
5 魔鬼氈組(10 cm)
6 電池組(四號,四顆)
7 鱷魚夾組(五條)
8 透明膠帶
9 導電膠帶
10 瓦楞紙板、PP、木板…

造形設計

在稿紙上先畫出自己喜歡的樂器外形(上網Google一下,https://reurl.cc/nVlv11),再利用板形材料裁切好。

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

根據小彼特急急棒(https://reurl.cc/oDKylq小彼特鋼琴王(https://reurl.cc/oDKVmq)導電原理,我們希望能做出像人體樂器(https://reurl.cc/EKb6E0的效果。
電路設計如圖所示:
另一方面,程式設計参考樣版之步驟為:
  1. 設計曲子:挑選一首自己喜歡的曲子(https://reurl.cc/lLayZA)再利用Make Code相關音階積木把它譜出來。例如:小星星,
    。其中,我們把一整首歌的音階以song這個陣列(array)https://reurl.cc/mdkR9V)來存放。
  2. 設計導電觸發事件處理:當兩極導電時一次播一個音階。為了讓音階能重覆播放,我們使用數學的餘數(remainder)概念來計算要循環取出的音階索引(index)i,
  3. 設計燈條顯示樣式:燈條的控制很簡單,只有初始化(initialize,init)宣告設定點亮樣式(patterns)。前者需設定小彼特以何接腳連接燈條(例如:P2)及燈條上LED的顆數(例如:6)。請留意這個數字一定要設的和實際個數完全相同,否則會有誤動作產生。
    後者可設定諸如流水燈(https://reurl.cc/24l6D9)等特效(在此例中我們僅以閃爍藍色燈示意之)
  4. 參考的參程式碼如https://reurl.cc/EKb1jk

教學活動設計

  1. 來電一下:和大街上的陌生朋友一起「同奏」,先演奏完整首曲子者獲勝。
  2. 廣播點歌:結合廣播(https://reurl.cc/ObR5r7)功能,將本作品擴充為無線廣播點唱機

延伸學習

  1. 參考這個日本在2011出的商品(https://reurl.cc/alMZGY,想想我們設計的小彼特版要如何擴充,使得它可以播一首以上的曲子。
  2. 如何讓小彼特也有好音色呢?試試這款外掛的MP3播放模組(https://reurl.cc/72b47d)。
  3. 小彼特還可以做出哪些好玩的樂器呢?官網上有個專案範例(https://reurl.cc/Vam07R)可以玩玩看。或者也可以看看以下這兩個作品: 

積木指標

Basic、Arrays、Input、Neopixel、Logic、Math、Variables

編程指

循序結構(sequence structure)非同步事件處理(asynchronous event handling)

硬體指

導電帶、鱷魚夾。

STEAM指標

STEAM。

和108課綱的對照(以國中端為例)

      • 科技領域核心素養科-J-B3 了解美感應用於科技的特質,並進行科技創作與分享。
        • 科技領域/資訊科技學習重點
          • 學習表現設c-V-2 能運用科技知能及創新思考以設計並實際製作科技產品。
          • 學習內容:資P-IV-3 陣列程式設計實作。

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

        2019年9月23日 星期一

        [Micro:bit] 從積木到語法之程式語言學習地圖:以小彼特(Micro:bit)為例

        從積木到語法之程式語言學習地圖:

        以小彼特(Micro:bit)為例


        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/

        Sep. 23, 2019
        88x31.png[1]

        資訊科技四軸
        人人都要學程式設計嗎?為什麼?那該選什麼程式語言(Programming Languages)入門?…。以筆者橫跨EE(Electrical & Electronic Engineering,電子電機工程)、(Computer Science,資訊科學)與教育三棲背景,我們以2017-2019兩年的時間,北從基隆、南至高雄;從小學端到大學端已超過百場Micro:bit推廣師培研習、演講、工作坊、課後社團、營隊…實際雲腳台灣的第一手綜合教學經驗來看,吾人概可一言以蔽之:

        現今的資訊科技(Information Technologies)教育正朝「虛實整合、軟硬兼施」所演進。

        To be or not to be,要學習程式設計與否,個人推崇台南成大資工蘇文鈺教授在「用程式啟動孩子的未來」影片中所論述的觀點。
        從iPhone在2007發行第一代迄今,新科技更迭的時序儼然已壓縮為十年,而且有越來越短之感。
        猶記得尚在不久之前,學個硬體的EE或軟體的CS專業就能在該領域裡工作一輩子了。但曾幾何時,自走車、無人機這類軟硬整合的科技產品已進入了小學的殿堂之中了。
        就筆者從EE、CS和教育三項度的觀察,現今學子對資訊科技的學習,可概以圖1之四軸向來分述之:

        圖1:資訊科技四軸向。

        1. 虛實整合:舉凡虛擬空間的看到鬼AR(Augmented Reality)觀落陰VR(Virtual Reality )和真實空間的互動應用皆然。
        2. 軟硬兼施:軟體運算思維(Computational Thinking)與硬體設計思考(Design Thinking)相互搭配。
        學習地圖(以小彼特為例)
        本節將以軟體設計(software design)、硬體設計(hardware design)專題設計(project design)三方向來探討各別的學習路徑(learning path)。

        軟體設計:在筆者所著的【軟硬整合入門】玩Micro:bit學Python工作坊@MakerPro一文中,我們提出圖2的學習地圖來指引如何學習Python的一條可行路徑。


        圖2:邁向Python Pro之路。

        我們採以終為始的思考方向,學習地圖以熟稔Python語言語法與結構為終極目標。
        我們可先從其語法子集的MicroPython積木出發,再學習較Python精簡的MicroPython語法,逐步一窺這尾號稱蟒蛇大獸之堂奧。其中,為了提升學習興趣,我們建議採用全球學習人口已超過四百五十萬人,而頗受大眾歡迎的架構在ARM(Advanced RISC Machine) mbed軟硬體學步平台(platform)的小彼特的作為中繼站。
        此外,以小彼特作為軟體程式學習進程可擘劃如下五路:
        1. 網頁程式設計:運算思維[2](用電腦解決問題)→積木程式→JavaScript→網頁前後端程式設計。
        2. 手機程式設計:運算思維→App Inventor→Android→App程式設計。
        3. 應用程式設計:運算思維→積木程式→Python→足不繁載(例如:人工智慧、物聯網、大數據分析…)。
        4. 演算法設計(algorithms design):運算思維→積木程式→演算法設計。
        5. 驅動/系統程式:運算思維→積木程式→C→C++→硬體驅動程式/系統程式設計。
        至於各階段學習進程,我們建議的配套如下:
        1. 小學:不插電(unplugged)→插電(積木程式)。
        2. 中學:積木程式→MicroPython→Python。
        3. 大學通識[3]積木程式→MicroPython。
        硬體設計:小彼特板載了一顆ARM的Cortex M0 CPU,也很適合拿來做電子電路(electronic circuits)微控制器(microprocessors)介面週邊(peripherals)嵌入式系統(embedded systems)…等硬體方面的學習。建議的學習路徑為:

        專題設計:設計思考[4]→電子電路[5]Arduino→Makers/機器                                                                                                                                   樹莓派(Raspberry Pi)
        MicroPython程式開發:從積木到語法[6]
        本小節將以流星雨(the matrix rain)作為MicroPython積木與語法互轉的展示範例,並在第三方(third party)的軟體模擬器(simulator)上顯示其執行結果。最後再說明專案的儲存及上傳到小彼特主板的流程。

        題目:本範例是要學習雙迴圈控制,以達成在5*5的LED點矩陣(dot matrix)[7],以由左至右---內迴圈(inner loop)、重複數次---外迴圈(outer loop)的方式顯示25顆紅色LED的明滅變化。範例程式碼「6.流星雨.xml」可由此下載

        積木撰寫平台:連入積木網後即可開始程式積木的堆疊,如圖3所示



        圖3:在積木網上拖拉積木自動生成語法程式。

        在模擬器上前測:將在積木網自動生成的程式碼貼到線上模擬器Create with code,如圖4所示。


        圖4:在Create with code網站上前測。

        上傳小彼特後測:在Create with code或積木網上將程式的.hex檔下載(download)至主板上,如圖5所示



        圖5:將.hex下載到主板後測。

        專案存檔:在積木網上將含有積木資訊的程式存成.xml檔,如圖6所示。其中,可在Create with code網站上將專案儲存為只有純文字(plain text)語法程式碼為.py檔,如圖7所示。



        圖6:將專案存儲為.xml檔。

        圖7:專案存儲為.py檔。

        最後,我們在此文也整理了小綠人動畫、電子賀卡、電子寵物、溼巴豆、體感魔音琴、主廚上菜、情話悄悄說、智慧計數器、點亮光明燈另外九個學習範例供讀者參考與練習。
        結語
        從上一小節所演示的過程讀者應可感受到以積木入門會比由語法開始學寫MicroPython來的稍稍無痛。待我們可以積木工具來表達運算邏輯(即電腦解題流程)後,再逐步遷移到語法規則應該比較容易學會MicroPython。而且剛寫好的程式馬上就能在小彼特上看到執行結果是比較直覺的。而這種「手感」(其實是邏輯感)就是累進程式功力的基石。
        此外,筆者是從硬梆梆的80x86低階組合語言(assembly language)學習過來的,和現在許多讀者通識型白紙式的背景不同。然而,學習的主體仍是學習者本身。學寫程式要做甚麼?要學哪種程式?要從積木還是語法開始學?…,我們認為這並沒有一定的標準。鍾鼎山林,各有所好,找出一個較適合自己的學習方法才是在AI世代中至關重要的學習。至於怎樣才是適己的,也只有多方嘗試與探索後才能得知了。

        参考資料
        1. 六種授權條款
        2. 本來非資訊相關科系是可以不用有程式設計的基礎,但尤於科技日進,資訊工具的入門門檻變低,程式設計已由專業朝向通識的全民運動了。
        3. Computational Thinking。
        4. Design Thinking。
        5. 鱷魚夾接線→杜邦線接線。
        6. 在Make Code平台上,MicroPython始終是社群(communities)的力量在更新(update)維護(maintenance)。(相對的,JavaScript端及其積木是由微軟所負責,其完整性自是毋庸致疑。筆者在這個介面上常會發現有意外之喜的巧思。)有趣的是自從第一版積木和語法互轉的功能被莫名地拿掉之後,再也沒有恢復的跡象。這在原本積木先行、語法隨之的學習策略上斷然失衡!
        7. 也可外接像WS2812B的RGB全彩可程式化(programmable)燈條(strip)

        2019年9月7日 星期六

        [Micro:bit] 小彼特(Micro:bit)產學合作模式,以台北市仁愛国中為例

        小彼特(Micro:bit)產學合作模式:

        以台北市仁愛国中為例


        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/

        Sep. 7, 2019
        88x31.png[1]
        楊昌珣老師便車,這一年多來陸陸續續和仁愛有一些小小的產學合作案,誏小彼特得以融入到「体健教學」之中───107年5月30日─107年6月18日的程式教育融入體育教學計畫、107年6月22日(五)的臺北市107年度「行動學習 智慧教學」融入體育教學成果分享會之「程式教育融入體育教學 」、108年2月22日─3月13日的程式教育融入體育教學計畫、108年臺北市中小學資通訊應用大賽創意賽国中組第五名、108年3月11日(六)的台北市仁愛自造教育及科技中心揭牌開幕之「程式教育融入體育教學 」、第20屆行動研究国中組特优及佳作。
        概究其中之因,除了楊老師本身在資訊科技融入教學多年的深耕之外,筆者以技術支援及共同指導的觀奌來分析這個有效教學的產學合作模式。以下我們就三端(教學端、產業之代理商端、產業之技術教學端)一体來剖析之:
        1. 教學端 資訊融入教學的火車頭在教師,因為他們是第一線面对學生的引導者。107年楊老師因参展而得識了台灣小彼特代理商香港課室(CLASSRROOM)的林宏哲先生,在他大力贊助下,遂而開起一連串的融入教學計畫。
        2. 產業之代理商端 林先生得知楊老師胸有大志,对小彼特在体健教學開展上有著源源不絕的想像力之後,立刻慨然的以數套小彼特教具無償相挺。誏教學的前線得以有充足的彈葯補給而能在教學場域上開彊闢土。
        3. 產業之技術教學端 筆者推廣小彼特逾百場以上的教學經驗,輔以個在EE、CS和教育上的三棲。一獲知楊老師的教學需求,亦是義不容辭地在軟硬体各技術層面上跨刀相助。
        涓滴之流足匯為江河。根据筆者的經驗,一件成功的資訊科技導入案不外乎兩環:學校行政和教學兩相配合。感謝楊老師的邀請與親身示範。我們在此為文記述,期教學現場能一脫長期套件思維,更而能向上提升教學能量───有效的資訊科技教學,不一定要花大錢買貴森森的教材、教具,其實,教學者的視野與專業才是最大的power!

        参考資料

        1. 六種授權條款

        2019年8月20日 星期二

        [Tech] 廢材車之廢等級

        廢材車之廢等級


        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/

        Aug. 20, 2019
        88x31.png[1]
        一台能自動駕駛的無人車需要有什麼樣的零件與技術呢?
        再把問題簡化一點:一台自走車要怎麼設計呢?
        一般而言,自走車(以下本文就以車子來稱呼)可被歸類為機器人(robots)的一種,簡稱為輪軸型機器人。它包含造形功能設計

        大哉問

        在開始造車之前,讀者們可先試著想想以下的各個問題:
        1. 車子為什麼會
        2. 它的動力來源為何?
        3. 車子結構組成的基本零件為何?
        4. 車子的運動方向(前進、後退、左轉、右轉、平移…)要如何控制?
        5. 金龜車、跑車、水泥車…要怎麼做?

        到底要多廢?

        根據廢材的運用程度,我們將之分為大、中、小三級:

        大廢車 就功能面來說,一台最簡單的車體至少會有車底板提供馬達馬達控制電路(或控制板)的支撐結構,並接電源帶動馬達轉動輪子使車體運動。因此,這種使用最少必要零件(其餘都可以使用廢材來完成,例如:瓦楞紙板、保特瓶、易開罐…)的車子就構成了一台大廢車 [2]。其中,需使用L298 IC(Integrated Circuit,積體電路)來封裝H橋(H bridge)電晶體(transistor)放大電路)來推動馬達運轉。大廢車的材料清單(材料包訂購請用手機掃瞄這個QR碼如下:

        品名 數量 單位
        Micro:bit主板 1
        USB傳輸線 1
        TT減速馬達(加銲電源線,並用熱熔膠加固) 1
        L298 IC [3] 1
        麵包板 [4] 1
        單心線 1
        3號三只電池盒(有蓋、開關) 1
        魔鬼氈 2
        • 美術工具:剪刀、美工刀、油性筆、鐵尺、切割墊、鉛筆、壓克力原料、水彩筆、束帶、螺絲起子、熱熔膠、熱熔膠槍…。
        • 電子工具:尖嘴夾、斜口鉗、剝線鉗(選配)。
        • 廢材:瓦楞紙。
        在這裡,我們列舉若干作品來佐證相關的教學成果:
        1. 脫皮車:
        2. Walle 2.0:
        3. 螺旋槳車: 
        4. 機器人:
        5. 史派客小基地:
        6. 荒野機器車:
        7. 坦克:

        中廢車 將大廢車中的控制IC改為馬達擴充板KSB037。下表為中車的材料清單。其中,各項工具及材料包訂購如大廢車所列

        品名數量單位
        Micro:bit主板1
        USB傳輸線1
        TT減速馬達(加銲電源線,並用熱熔膠加固)1
        KSB037馬達擴充板1
        3號三只電池盒(有蓋、開關)1
        魔鬼氈2

        小廢車 除了馬達電路控制可選擇最原始的電路形式或整體封裝好的IC外,在市面上也有現成的輪組件(下表藍字)可購買 [5]
        購買現成材料的好處是減少手作時間,以求快速組裝當然,成本也是較高。所以,我們將之稱為小廢車 [6]

        品名 數量 單位
        Micro:bit主板 1
        USB傳輸線 1
        TT減速馬達(加銲電源線,並用熱熔膠加固) 1
        KSB037馬達擴充板 1
        3號三只電池盒(有蓋、開關) 1
        魔鬼氈 2
        萬向輪 1
        輪子 2
        M3螺絲 1
        M3螺帽 1

        要幾輪才夠?

        上一節我們談到了車子的控制(馬達IC控制電路或擴充板)和輪子(買現成或用廢材作)設計。本節我們再來談談一台車要幾個輪子?
        當我們讓學生們設計自己的車子時,各位看官猜一猜,十張設計稿裡會有幾成是畫成四顆輪子的呢?我們大膽的猜測至少會有七成以上的同質性吧?Why?因此,從一輪到多輪,我們一一列舉出現有的相關商品。
        1. 獨輪車不能跑嗎?請看看這台在街頭上偶然會看見的電動獨輪車。請留意,一般而言,單輪的車子只能前進與後退,它是無法轉彎的喔!
        2. 兩輪車站的起來嗎?請看看這台二輪平衡車的小短片。在這裡,兩個輪子各自由一顆馬達來驅動。因此,控制兩馬達的速度差就能讓車子左、右轉彎了。
        3. 三輪車跑得快,上面一定要坐老太太嗎?這段影片是一般我們常見的三輪車另外,三輪車一定是一前輪兩後輪嗎?看看這段影片中的設計
        4. 四輪車應該是四平八穩,不用考慮車體平衡的問題了吧?可是車子要前(輪)驅(動)、後驅,還是前後驅呢?
        5. 車子可以裝五個(含)以上的輪子嗎?這段影片將為我們展示一款多輪車的設計
        6. 世界上的多輪車最多有顆輪子呢?這部影片中將為我們解答

        車子的反思

        在Google圖片搜尋自走車,再取樣前100張。是不是會有種怎麼都有車體而沒車殼國王的新車之感呢?為什麼會這樣?
        以筆者橫跨EE、CS和教育三領域來看,車子設計的難度包含有軟體硬體兩項專業──軟體方面,除了程式語言(programming languages)的學習外,還包括將車子運動對應到馬達的控制的抽象轉具象轉換(transform)過程。
        至於硬體電路方面,從基本的電晶體放大電路、積體電路到微處理器(micro controller)介面控制(peripheral control),以及麵包板接線、洞洞板焊線,乃至PCB洗電路板。這些需要反覆練習的硬功夫不是一蹴可及的。(若對電學、電子電路有興趣的讀者,強烈推薦精研曹齊平老師自製的科學魔法車之大小車系列。根據英國BBC報導,某印度裔青年透過自學這台MIT的魔法車而發明了全世界最小的人造衛星!)

        結語

        科技的進步促成初學者的入門門檻變低。而這個低標並非技術變簡單,而是將科技穩藏(tech hiding)之下,儼然已逐步做到防呆之效。
        然而,科技教育不變的本質仍是以人為體科技為用。在教育現場對於車子的教學,應回歸到的教育思考上──男女生的喜好本就不同(女生通常都不愛冰冷冷的機械、科技,車子亦然)、車子教完後就開始了競速賽的濫觴了嗎?…

        参考資料
        1. 六種授權條款
        2. 所有材料、零件,能徒手手作就不買現成的。
        3. L298是由兩組達靈頓對(Darlington pair)電晶體放大電路組成的H橋架構,可控制兩顆TT馬達的轉速(speed)與順/逆轉轉向(direction)
        4. 電路三形:麵包板實驗電路、洞洞板焊接電路、印刷電路(Printed Circuit Board,PCB)
        5. 知識要學到下2-3層的基本原理比較有機會應用。
        6. 能花錢買到的材料就不手作。