光影魔術手

源起

20180708 microbit光影魔術手

最近看到好多老師都在玩這個,參考劉正吉老師的貼文試作,真的很有趣。

microbit的光感應感測器可以依照光線的明亮度做相對應的動作。看過而且覺得很有趣的作法有:把microbit放在糖果盒裡,如果有人偷開拿糖果,就會發送廣播訊號到監控的microbit;也有人放進冰箱裡,防止有人偷拿他的便當(我挺懷疑冰箱的溫度適合長時間放microbit??);拿著microbit到處測量光線,並運用廣播訊號找光標;用雷射筆發射雷射光照向附有光敏的標靶,當感應到光線驅動伺服馬達讓標靶倒下。

這個魔術手的寫法非常簡單,特別的是要秀出Icon的40個隨機圖案。如果在積木語言裡做,在展示多種圖案的前提下,就算用函式呈現也會很長;在JavaScript中做隨機圖案就簡單多了,輸入程式關鍵字就會有清單出現,並可依提示做出不同的寫法,這樣就有玩魔術的感覺。

感謝劉老師分享,他的貼文如下https://www.facebook.com/100000767174283/videos/pcb.1702130803155809/1702130533155836/?type=3&theater

程式寫作

程式寫法如左

按A鍵開始運作

按B鍵就會停止光線感應並停留之前感應時的最後圖示

按A+B鍵會清空畫面

當micro:bit感應到光線暗掉(<25)則會改變圖示。

以下介紹黑積木如何撰寫

可顯示的圖示共有40個之多,若用變數或拉圖示進程式裡,太過冗長。

積木寫好後,切換至JavaScript模式

進入Javascript裡,這個程式寫在任何一個地方,再到積木裡去拉到正確位置也是可以

輸入指令時就會有下拉式表單讓你使用,選擇showIcon

選擇Math,輸入random(39)

積木及JavaScript對照

註記: 劉正吉老師的光影手改版篇,魔術可以帶著走了!

程式概念:

感測現有環境的光線感測值-

按P1取得手沒有經過的光值

手蓋住micro:bit時按P2取得另一個光值


20190326

新版程式寫法如下,供大家參考

本範例JavaScript下的黑積木說明:

  • basic.showIcon(編號)指令會顯示該編號的圖案。 註:showIcon內建了40個圖案,編號為0至39。
  • Math.randomRange(起始整數,結束整數)亦是隨機取數的指令,但會隨機取括號內的數字範圍。例:Math.randomRange(2,37)就是會隨機取2~37的數字。

<作法一>

Step1:先作光感值的測試,量測出現場的數值。

Step2:

<作法二>