Webduino模擬器「瘋」神榜:用 LED 點矩陣+按鈕+蜂鳴器模擬擲骰子、認識等待、聲音播放與停止積木

image

玩大富翁、桌遊都少不了這個東西:骰子,我們也可以利用 Webduino 模擬器輕鬆製作出兼具動畫、音效的「虛擬骰子」,這樣下次就不用擔心玩遊戲時,找不到骰子囉!

在這個範例中我們將製作「數字版」與「圖形板」兩個版本,前者著重在如何判斷聲音是否還在播放、聲音停止積木與等待積木的使用,後者則再加強 LED 點矩陣圖形繪製的練習!

此外,在這個範例中,也第一次介紹到「按鈕開關」元件,使用上就跟一般的實體按鈕相同,也具有「按下」、「放開」、「長按」等三種不同狀態。


※ Webduino 官方網站:https://webduino.io/

※ Webduino 的Arduino 模擬器網址:http://simulator.webduino.io/

※ 用 LED 點矩陣+按鈕+蜂鳴器:模擬擲骰子「數字版」 Demo  網址 :http://simulator.webduino.io/#-KtFbdgTe0wyoUgD0uUY

※ 用 LED 點矩陣+按鈕+蜂鳴器:模擬擲骰子「圖形版」 Demo  網址 :http://simulator.webduino.io/#-KrnHUlCSVdIu8vLhFwp

註:目前線上模擬器只能在 Windows / MAC 電腦上使用,無法在平板與手機上使用喔!

在 Webduino 線上模擬器中,沒有電壓、連接腳位可連接裝置的限制,所以要玩一些原本因硬體限制,而需要使用麵包板才能完成的應用,都是沒有問題的!


一、模擬器「硬體」連接與硬體積木程式

  • 加入一個 LED 點矩陣,VCC 接 5V,腳位為 DIN:13、CS:12、CLK:11
  • 加入蜂鳴器,腳位為2,另一個腳位接到 GND
  • 加入按鈕,S:7、V:3.3V、G:GND

image

image


二、加入「按鈕開關」積木

image

image


三、加入「變數 K」自 1 到 6 數字隨機取得

01


四、使用邏輯積木判斷聲音是否已停止播放,才繼續播放聲音

在 Webduino 模擬器中的蜂鳴器元件與真實蜂鳴器元件時,都需要留意一下這樣的問題,尤其是當播放聲音音符較多時,需加上判斷聲音是否已停止播放的判斷,若沒有加上這樣的判斷,會造成前一次播放聲音尚未結束,就進行第二次的播放,而形成聲音不斷重疊的情形!

02


五、製作 LED 點矩陣數字跳動動畫

增加 LED 點矩陣動畫,可以讓隨機取得數字比較有臨場感!

1.數字版

這個版本比較單純,只需要如下圖加入相關數字積木就可以囉!

03

2.圖形版

圖形版可以先使用 LED 點矩陣 8 X 8 的面板,參考下圖的骰子六面圖,自行勾選產生喔!

image

因為只有 64 顆 LED 燈,所以骰子 1 ~ 6 的圖形需精簡繪出如下:

image image image

image image image

04


六、加入「等待」積木,並停止聲音播放

在一般情形下,「等待」積木多數是直接使用下圖的第三個,輸入需要等待的秒數即可,但這次我們需要等待一些時間,等第五步驟骰子 1 ~ 6 的動畫顯示完成,才將正在播放的聲音停止,並顯示後續取出的亂數號碼。若沒有加上此等待積木,執行模擬器時,骰子 1 ~ 6 的動畫顯示會一下子就跳過,就顯示最後的亂數號碼。

image

05


七、以閃爍方式顯示亂數取出的號碼

用閃爍動畫可以讓大家比較清楚知道號碼已選出,以便跟骰子 1 ~ 6 的動畫做一個區隔!

要讓 LED 點矩陣完全不顯示亮燈,可以使用代碼「0000000000000000」,如果不是很確定代碼該如何使用,可以在「動畫相關」的積木上,按滑鼠右鍵 / 說明,或前往此網址 http://webduinoio.github.io/demo/max7219/ ,就能以圖形化的方式取得代碼囉!

image

image

06


八、模擬擲骰子模擬器實測:


「數字版」完整積木如下圖:

image


「圖形版」完整積木如下圖:

webduino-blocks



※ 延伸閱讀:

張貼留言

這個網誌中的熱門文章

原來Google雲端硬碟也能開放「匿名上傳」,做為學生作業、比賽稿件上傳就不用再傷腦筋了!(Google Apps Script應用服務指令碼)

OnlineVideoConverter 雲端影片擷取服務,讓您不只下載 youtube 影片,更能直接下載指定範圍的影片內容,幫您省下影片下載後再剪輯轉檔的時間!(也有瀏覽器擴充工具,讓使用率較高的人更方便!)

「Google 語音輸入法」、「訊飛中文語音輸入法」APP ,讓智慧型裝置也能輕鬆「離線」進行語音輸入!