Quantcast
Viewing all articles
Browse latest Browse all 683

【tinyML系列專題】使用wio terminal 與氣體感測器收集咖啡氣味資料!

作者/攝影 曾吉弘
難度

★☆☆☆☆

材料表 機器人王國購買【AI嗅覺實驗套件】連結
  • wio terminal
  • 氣體感測器
  • 麵包
  • 咖啡
  • 清潔用75%酒精或酒類

wio terminal 與 tinyML

tinyML 是指在 Arduino 這類 MCU 板子上也能做到簡易的神經網路推論,讓基本的感測器資料分析也能透過機器學習來找到更多有趣的資訊。Wio Terminal 就是在這股浪潮下所產生的一個產品,除了使用 ATSAMD51 核心並搭配 Realtek RTL8720DN 的 Wi-Fi / 藍牙晶片,還支援自家的 Grove 系列感測器。最重要的當然是本文核心 – tinyML,可將所收集到的資料透過 edge impulse 網站來進行一條龍的處理、訓練與測試流程,再把神經網路檔案匯出到 wio terminal 上來執行,過程不能說超簡單,但確實已經方便非常多了!

我們已經寫了一篇文章 來介紹了如何使用 wio terminal 的光感測器來辨識手勢,本文要介紹使用 wio termianl 所提供的好用韌體,來收集咖啡、酒精的氣味資料。非常有趣的題目,您一定會喜歡的喔!

本文章將使用 Grove – 多通道氣體感測器 V2,直接接上 wio terminal 的任一個 grove 接口就好,也歡迎購買套件包喔~(機器人王國購買【AI嗅覺實驗套件】連結

Image may be NSFW.
Clik here to view.

Image may be NSFW.
Clik here to view.

開始吧!

1.wio terminal 的基本環境設定

關於 wio terminal 的基本環境設定,請參考 上一篇文章。我也錄製了影片帶您一步步操作:

不過呢,這次就不用自己再寫 arduino 的上傳程式了,直接使用 seeed 所提供的好用 firmware (點我下載 .uf2 檔)。請把 wio terminal 接上電腦,再把它的開關往 use port 的方向拉兩下,它會變成一個 Arduino 的磁碟,請把 .uf2 檔丟進去就會自動更新這個韌體,之後再重新插拔 usb 線讓他重開機就好了,簡單~

Image may be NSFW.
Clik here to view.

開啟 cmd 或 anaconda prompt,開始上傳資料 (如果還沒有安裝 node.js 的畫,請安裝 node.js v14 以上) :

2. 連上 edge impulse

先安裝 edge impulse cli 工具

npm install -g edge-impulse-cli

接著輸入以下指令來登入 edge impulse 網站 (當然您需要先註冊帳號,並在網站上建立一個專案):

edge-impulse-daemon --clean

請依序輸入帳號密碼、命名 wio terminal 裝置 (如圖中的 wio_nose)、、選擇專案 (我也取名為 wio_nose),最後看到 “[WS ] Go to https://studio.edgeimpulse.com/studio/63509/acquisition/training to build your machine learning model! ”,就可以回到 edge impulse 網站了。

Image may be NSFW.
Clik here to view.

3. edge impulse 收集資料

請確認氣體感測器已經接好,並開啟 edge impulse 網站,進入您所建立的專案,點選左側的 Data acquisition,先看到右側的 Sensor,從下拉式選單可以看到wio 內建與常用的感測器只要接好就好,這樣就不用修改上一份教學中的 upload.ino 的讀取邏輯了 (感動)

Image may be NSFW.
Clik here to view.

先輸入 Label 為你所定義的類別,在此有以下三個類別:

  • coffee: 泡一杯香濃的咖啡吧~
  • 75_alcohol: 容易取得的 75% 洗手酒精
  • surrounding:遠離以上兩種氣味的環境

將感測器置於該情境中,例如咖啡杯上方、噴了酒精的衛生紙,按下 Start sampling,在此我們把 Sample length (ms) 樣本長度設定為 10000 ms,因為氣味會延續一段時間。

Image may be NSFW.
Clik here to view.

收集完三類別的資料如下圖,可以看到四軸的資料變化:

Image may be NSFW.
Clik here to view.

  • coffee 的資料

Image may be NSFW.
Clik here to view.

  • 75_alcohol 的資料

Image may be NSFW.
Clik here to view.

  • surrounding:遠離咖啡與酒精的環境氣味資料

Image may be NSFW.
Clik here to view.

4.建立 impulse 來訓練神經網路

詳細設定請參考上一篇,請看我的 impulse 與神經網路設定:

Image may be NSFW.
Clik here to view.

使用以下設定來訓練,準確度有到 100% !別高興太早,這應該只能說這三種味道的差異本來就很大,您之後可以試試看去分析紹興酒與高粱酒的差別,挑戰性應該很高

Image may be NSFW.
Clik here to view.

5.使用 EON tuner 最佳化

EON tuner 可針對各平台來最佳化,整個流程需要數小時,不過這期間您還是可以進行其他操作,請參考以下設定來設定 target:

  • Dataset category: continous motion (震動、氣味等時間較久的訊號),如果是上一篇的手勢,請改選 motion events
  • Target device:wio terminal
  • Time per inference: 2000 ms (這裡可以自由設定,氣味的話就久一點吧)

Image may be NSFW.
Clik here to view.

 

6.匯出檔案

      匯出步驟請參考上一篇,恭喜完成囉!


Viewing all articles
Browse latest Browse all 683

Trending Articles