17 人機互動
(2020/09/05)
人機互動,顧名思義就是人與機器的互動(人<->機)
零、準備工作
凱比機器人進入【物聯網教室】(此APP是另外花錢購買的,高市標案已內含),取得凱比的Device ID 及密碼(可不用設)
Web:Bit x kebbi 平台: https://kebbi.webduino.io/login
一、人->機(凱比),也就是人透過各種方式向機器(凱比)下指令
非接觸式:
聲音 (機器本身要有聲音感測器(mic)及AI辨識)
有意義的人聲
透過問答方式來互動
像獨居老人摔倒時,喊【救命】....
利用人聲控制凱比本身(實作一1)
請凱比前進
請凱比後退
請凱比打開全身的燈
請凱比關閉全身的燈
請凱比播放音樂
請凱比播放影片
...
無意義的聲音
要先擴充積木
透過聲音大小來互動
拍掌開關燈 (實作一2)
碰觸小怪獸、人臉位置、顏色、手勢(機器本身要有攝影機及AI辨識)
以下應用都要先擴充積木
利用觸碰怪獸來控制 (實作一3)
利用人臉位置來控制 (實作一4)
利用有顏色的物體
先利用【影像訓練】,針對訓練物品的識別達到怪獸控制 (實作一5)
利用人體紅外線變化時來觸發相關動作
當人體紅外線發現有變化時,會發出警告 (實作一6)
接觸式:
觸摸(碰觸) (機器本身要有觸碰感測器)
凱比有4個觸碰感測器
利用觸碰4個感測器來說出不同部位名稱及點亮不同顏色的燈 (實作一7)
實作一1:利用人聲控制凱比【前進】(全身的燈變紅色)、【後退】(全身的燈變綠色)
凱比程式,程式連結
上面程式執行時,螢幕右上角會出現【麥克風】圖示,這時就可以對凱比講話(可以講很久的話),但講完話約過5秒,麥克風圖示才會消失,接下來執行下一行指令!
上面的程式,對凱比講【前進】時,直接用【語音辨識文字】="前進",居然不成功,覺得好奇怪!觀察凱比辨識出來的話為【前進?】(問號、句號要用全型),因此改用【語音辨識文字】="前進?",就成功了!這算不算是Bug啊!?(有跟廠商反應,廠商說這問號是微軟AZure回傳回來的,是可以濾掉,但濾掉好像也不好)
另外,改用另一種方法來寫【後退】程式,這邊設定只要講話的內容有包含【後退】即可,即使說【不要後退】,凱比還是往後走。
實作一2:利用拍掌點亮凱比全身的燈、再拍一次將全身的燈關閉
測試音量積木:
請凱比說出目現的環境音量
先要擴充【錄音&音量】的積木
【麥克風的音量】積木使用
測得結果:音量介於0~80間
拍掌可打開或關閉凱比全身燈的程式,程式連結
如果希望拍很大力才會改變的話,就把音量值(60)調高一點
實作一3:利用手勢觸碰不同顏色怪獸來控制凱比全身的燈
利用手觸碰【綠色怪獸】時,全身燈的顏色變成【綠色】
利用手觸碰【紅色怪獸】時,全身燈的顏色變成【紅色】
利用手觸碰【黃色怪獸】時,全身燈的顏色變成【黃色】
利用手觸碰【藍色怪獸】時,全身燈的顏色變成【藍色】
程式如下,程式連結
先要擴充【視訊偵測】的積木
實作一4:利用偵測人臉位置(或不同顏色的物體)來控制凱比全身的燈
人臉靠左邊時,全身燈的顏色變成【綠色】
人臉靠中間時,全身燈的顏色變成【紅色】
人臉靠右邊時,全身燈的顏色變成【黃色】
程式如下,程式連結
先要擴充【人臉&顏色追蹤】的積木
測試時發現:觸發後,迴圈就一直執行,不會停止!這應該也是Bug吧!再跟廠商反應!
後來發現是我程式所呈現的問題,大家覺得問題在哪?
實作一7:利用觸碰4個感測器來說出不同部位名稱及點亮不同顏色的燈
程式如下,程式連結
二、人->機->機(凱比),也就是人透過其他機器再向凱比下指令
透過【手機】:(透過網路來互動)
認識【網路廣播】:
Web:Bit或凱比的網路廣播功能,不僅能讓Web:Bit與Web:Bit開發板(或凱比)彼此資訊互動,更可以實現一對多、多對一、虛實互動、遠距廣播...等多樣化的操控情境。就是MQTT的應用。
MQTT 主要是採用「發佈」與「訂閱」的機制,由發佈者先在伺服器上建立一個「Topic 主題」,接著,只要訂閱者「訂閱」此主題,就可以在發佈者發佈訊息時,收到此主題的訊息!
Web:bit 的「頻道」即是「Topic 主題」,大家必需建立與訂閱相同的「Topic 主題」(頻道),裝置間才能互相溝通。
萬能遙控器:
支援 Webduino 雲端平台、Web:Bit 教育版和 Web:Bit x Kebbi
利用萬用遙控器控制凱比機器人移動或點亮燈(實作二1)
LINE:
使用 LINE 的聊天控制
利用LINE控制凱比機器人移動或點亮燈(實作二2)
透過【Web:Bit開發板】:(透過網路來互動)
Web:Bit教育網網址:https://webbit.webduino.io/blockly/?demo=default
下載安裝版
也可直接用網頁版的【模擬器】來操作
網路廣播
按Web:Bit的A鍵點亮凱比的紅燈、按Web:Bit的B鍵點亮凱比的綠燈、按Web:Bit的A+B鍵關掉凱比的燈(實作二3)
實作二1:利用萬用遙控器控制凱比機器人移動或點亮燈
利用萬用遙控器的機器人畫面移動凱比
利用萬用遙控器的按鍵改變凱比的燈顏色
萬用遙控器的使用
進入萬用遙控器介面(http://www.oxxostudio.tw/webduino-remote/)
點擊右上角的【設定】
最後點擊【儲存分享連結】,並將連結給複製下來
實作二2:利用LINE控制凱比機器人移動或點亮燈
LINE加入Webduino機器人為好友,並取得個人id(頻道名稱)
凱比程式,程式連結
實作二3:按Web:Bit的A鍵點亮凱比的紅燈、按Web:Bit的B鍵點亮凱比的綠燈、按Web:Bit的A+B鍵關掉凱比的燈
Web:Bit端的程式,程式連結
凱比端的程式,程式連結
三、環境->機(Web:Bit)->機(凱比),也就是透過環境變化來向凱比下指令
亮度(機器本身要有光線感測器)
凱比本身無光線感測器
可利用【Web:Bit開發板】的光線感測器來完成此互動
天黑請凱比開燈(作法:利用上面的【網路廣播】,不再實作)
溫度(機器本身要有溫度感測器)
凱比本身無溫度感測器
可利用【Web:Bit開發板】的溫度感測器來完成此互動
天熱請凱比開燈(模擬開扇)(作法:利用上面的【網路廣播】,不再實作)
四、人->機(凱比)->機,也就人透過凱比來向其他機器下指令
請凱比當仲介,前面 人->凱比 的控制方式都可用!
利用【人聲】請凱比去控制其他硬體(如Web:Bit開發板)(實作四1)
打開電燈
關閉電燈
打開電扇
關閉電扇
...
實作四1:向凱比說開燈,會點亮Web:Bit的LED屏幕為紅燈,向凱比說開燈,會關閉Web:Bit的LED屏幕的燈
凱比程式,程式連結
Web:Bit程式,程式連結
五、機(凱比)->人,也就是凱比透過各種方式向人回報訊息
凱比直接透過下面方式來回覆
近距離:
聲音
螢幕
遠距離
手機的LINE
使用 LINE 的Notify來通傳
簡易保全系統,當有人闖入會LINE告知(實作五1)
由於凱比除了紅外線感測器及觸摸感測器外,沒有其他感測器,因此可以利Web:Bit來連接所需的感測器
也就是機(Web:Bit)->【機(凱比)】(省略)->人,也可以直接Web:Bit -> 人
實作五1:簡易保全系統,當有人闖入會LINE告知
申請 LINE Notify 權杖
打開 LINE Notify 的網站 ( https://notify-bot.line.me/zh_TW/ ),使用自己的 LINE 帳號登入。
申請 LINE Notify 權杖
凱比程式,程式連結
六、其他
google 表單的運用
教學講義:01 Google試算表
實作六-1:利用試算表記錄與凱比說過的話
凱比程式,程式連結
實作六-2:請凱比讀出剛剛講過的話
凱比程式,程式連結
也可運用到請凱比讀唐詩,唸出很多資料的應用
智能屋示範(主要在LINE的控制)