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:利用偵測人臉位置(或不同顏色的物體)來控制凱比全身的燈

    • 人臉靠左邊時,全身燈的顏色變成【綠色】

    • 人臉靠中間時,全身燈的顏色變成【紅色】

    • 人臉靠右邊時,全身燈的顏色變成【黃色】

    • 程式如下,程式連結

      • 先要擴充【人臉&顏色追蹤】的積木

        • 凱比螢幕的寛度為1024像素

        • 我的鏡頭寛度小於螢幕寬度

        • 需全臉偵測到有方框出現才算偵測成功

        • 顏色偵測方式同上,不再練習

        • 跟廠商反應,人臉框會殘存的問題

  • 實作一5:當發現有人沒戴口罩時,會發出警告

  • 實作一6:當人體紅外線發現有變化時,會發出警告

      • 測試時發現:觸發後,迴圈就一直執行,不會停止!這應該也是Bug吧!再跟廠商反應!

      • 後來發現是我程式所呈現的問題,大家覺得問題在哪?

  • 實作一7:利用觸碰4個感測器來說出不同部位名稱及點亮不同顏色的燈

二、人->機->機(凱比),也就是人透過其他機器再向凱比下指令

  • 透過【手機】:(透過網路來互動)

    • 認識【網路廣播】

      • Web:Bit或凱比的網路廣播功能,不僅能讓Web:Bit與Web:Bit開發板(或凱比)彼此資訊互動,更可以實現一對多、多對一、虛實互動、遠距廣播...等多樣化的操控情境。就是MQTT的應用。

      • MQTT 主要是採用「發佈」與「訂閱」的機制,由發佈者先在伺服器上建立一個「Topic 主題」,接著,只要訂閱者「訂閱」此主題,就可以在發佈者發佈訊息時,收到此主題的訊息!

      • Web:bit 的「頻道」即是「Topic 主題」,大家必需建立與訂閱相同的「Topic 主題」(頻道),裝置間才能互相溝通。

    • 萬能遙控器

    • LINE:

  • 透過【Web:Bit開發板】:(透過網路來互動)

    • Web:Bit教育網網址:https://webbit.webduino.io/blockly/?demo=default

    • 下載安裝版

    • 也可直接用網頁版的【模擬器】來操作

    • 網路廣播

      • 按Web:Bit的A鍵點亮凱比的紅燈、按Web:Bit的B鍵點亮凱比的綠燈、按Web:Bit的A+B鍵關掉凱比的燈(實作二3)

  • 實作二1:利用萬用遙控器控制凱比機器人移動或點亮燈

      • 點擊右上角的【設定】

        • 最後點擊【儲存分享連結】,並將連結給複製下來

        • 開啟chrome瀏覽器,貼上上面網址即可(手機可用,電腦也可以用)

  • 實作二2:利用LINE控制凱比機器人移動或點亮燈

    • LINE加入Webduino機器人為好友,並取得個人id(頻道名稱)

  • 實作二3:按Web:Bit的A鍵點亮凱比的紅燈、按Web:Bit的B鍵點亮凱比的綠燈、按Web:Bit的A+B鍵關掉凱比的燈

三、環境->機(Web:Bit)->機(凱比),也就是透過環境變化來向凱比下指令

  • 亮度(機器本身要有光線感測器)

    • 凱比本身無光線感測器

    • 可利用【Web:Bit開發板】的光線感測器來完成此互動

    • 天黑請凱比開燈(作法:利用上面的【網路廣播】,不再實作)

  • 溫度(機器本身要有溫度感測器)

    • 凱比本身無溫度感測器

    • 可利用【Web:Bit開發板】的溫度感測器來完成此互動

    • 天熱請凱比開燈(模擬開扇)(作法:利用上面的【網路廣播】,不再實作)

四、人->機(凱比)->機,也就人透過凱比來向其他機器下指令

  • 請凱比當仲介,前面 人->凱比 的控制方式都可用!

  • 利用【人聲】請凱比去控制其他硬體(如Web:Bit開發板)(實作四1)

    • 打開電燈

    • 關閉電燈

    • 打開電扇

    • 關閉電扇

    • ...

  • 實作四1:向凱比說開燈,會點亮Web:Bit的LED屏幕為紅燈,向凱比說開燈,會關閉Web:Bit的LED屏幕的燈

五、機(凱比)->人,也就是凱比透過各種方式向人回報訊息

  • 凱比直接透過下面方式來回覆

    • 近距離:

      • 聲音

      • 螢幕

    • 遠距離

  • 由於凱比除了紅外線感測器及觸摸感測器外,沒有其他感測器,因此可以利Web:Bit來連接所需的感測器

    • 也就是機(Web:Bit)->【機(凱比)】(省略)->人,也可以直接Web:Bit -> 人

  • 實作五1:簡易保全系統,當有人闖入會LINE告知

六、其他

    • 實作六-2:請凱比讀出剛剛講過的話

      • 也可運用到請凱比讀唐詩,唸出很多資料的應用