樂高機器人零售玩具版8527及樂高機器人教育版9797才有聲音感應器(Sound Sensor),
(NXT 2.0 樂高機器人8547已經沒有聲音感應器)
雖然聲音感應器很容易受到其他聲音的干擾,不是太過靈敏就是不靈敏,
但是『聲控』對許多人還是很有吸引力,也是機器人非常直接有趣的互動方式。
樂高的聲音感應器只能感應聲音的音量大小(響度),不能辨識語音。
所以探奇藉由變數與數學計算,簡單地寫出一個感應拍手次數的程式,
讓樂高機器人能夠分辨固定時間內的拍手次數,根據拍手次數控制光感的燈光亮滅。
程式如下:(大圖請參考我的Google+相簿)
1. 變數歸零
2. 顯示笑臉圖形
3. 進入1.2秒的迴圈
4. Sound Sensor Switch,聲音大於80% ,變數加一,顯示在NXT螢幕,等待聲音小於60%
5. 重置螢幕
6. 根據變數數目決定:亮燈,熄燈。
7. 發出0.01秒的聲音
拍攝示範影片如下:
這個程式也可以展現『語音控制』的效果喔!(讀友可以想想如何完成假的語音控制)
因為燈光亮滅只有兩種狀況,請不要誤會這個程式只會讓燈光輪流亮滅,
影片中邱老師雖然發出聲音指令,但是也出現無法正確控制的情形,證明燈光不是輪流亮滅喔!
這個聲控很有趣喔~~我在猜是不是“開”和“關”字音的強弱原因,所以程序才能通用?
回覆刪除[版主回覆05/24/2012 11:02:34]謝謝回覆!
本來也有想過這種輕音及重音的差別,但是聲音感應器實在不容易調整,再加上發音需要很多練習,實在太難了。
我利用的是『時間差異』,在1.2秒間,發出兩個聲音,相當於拍手兩次。
如果在第0.7秒發聲,那麼第二個字就不會接收,相當於只有一個聲音,拍手一次。
同理,不論什麼語音指令都OK喔!例如:『打開』『關上』,『請開』『要關』....
這樣一來,就更神奇了!
喔呵呵呵呵!!好高明的技巧啊!!!
回覆刪除剛才又看了一遍程序和視頻終於明白原理了~~ :-)
您好,我是NXT新手,我想要這個程式來學習一下,您可以將這個程 email 給我嗎?
回覆刪除我的 email 是 chihangkong@ymail.com
[版主回覆12/22/2012 09:19:04]你好:
我已經將 clap.rbt 檔案寄給你,
歡迎討論!
您好,您可以將這個程 email 給我嗎?
回覆刪除我的 email 是a891021960035@yahoo.com.tw
[版主回覆06/29/2013 22:00:19]
你好:
程式已經寄出,歡迎介紹你自己,彼此互相認識,謝謝!