2017-07-23

mBot mBlock Tutorial 教學 - 揮手門鈴 (mBot - Play music by waving your hand.)

將 mBot 的超音波感應器當作開關,是很基本的用法,我們可以利用 mBlock 的 『控制』-->『如果< >就...否則...』指令完成簡單的動作。如下圖: 



新增一個積木指令Dodo,定義為一連串的播放音調指令,可以唱出一條歌曲。

原本只要將手放在mBot 的眼睛(超音波感應器)前面,就能唱出優美的歌曲。同時希望如果手離開超音波感應器前方,音樂應該停止播放。

但是歌曲就是一連串的『播放音調』指令,在『如果< >就....』指令裡面執行多個播放音調指令,程式需要等到音樂通通播放完畢,才會繼續檢查超音波的狀態,如下面的流程圖。



這樣一來,在播放音樂的過程中,mBot機器人是不會立即反應超音波的狀態。

那麼在mBlock應該如何解決這個問題呢?

我的想法是每次播放一個音調之後,就需要檢查超音波的數值。

運用大量的『如果 < >就...』,快速播放一個音調。

下圖是我的解答,


增加一個變數Music,作為播放音調的指引。


跟隨Music變數的改變,決定播放樂曲中的特定音調。


請看示範影片:



大家一起用mBot做一個『 揮手門鈴 』,播放好聽的音樂!


延伸閱讀: