【CIRCUS Pi】運用Pixetto視覺感測器製作人臉辨識門鎖

作者/圖片來源: CIRCUS Pi

威盛–Pixetto為一款高畫質視覺感測器,能夠實現物體、形狀、顏色、人臉及手寫辨識等功能,它具有完整的機器學習平台,不但有適合學生的Scratch程式編輯環境,更可讓使用者自由調整並訓練自己的AI模型。不論您是初學者或進階創作者,都能方便的使用AI解決方案。
本篇教學將帶大家使用Pixetto進行模板偵測,透過辨識到的人臉,轉而控制伺服馬達來帶動門的機構,達成檢測到正確人臉就開門的專案。

軟體下載及安裝

  1. 點選文件&軟體下載 – VIA Pixetto連結,開啟VIA Pixetto文件&軟體下載頁面。
  2. 至軟體下載位置,點選威盛Pixetto軟體套件,下載軟體並安裝。
  3. 安裝完畢後開啟軟體,看到下列視窗即完成。

組裝教學

材料零件清單

組裝過程中需要的零件、模組與連接線如下表所示:

材料清單圖

組裝過程中除了要準備螺絲起子,還需要保麗龍膠或是白膠來連接木板。

安裝Arduino UNO

準備如下圖所示之木板、Arduino UNO、M3x10mm螺絲3個與M3螺帽3個。


將Arduino UNO 對齊下圖所示的孔洞,並用螺絲螺帽固定。

安裝伺服馬達與開關門機構

準備如下圖所示之木板、伺服馬達與隨附的舵片螺絲、M2x10mm螺絲2個、M2螺帽2個。

將ㄈ型木片如下圖卡在伺服馬達上,並用兩個M2x10mm螺絲穿過伺服馬達與木板的圓孔。

用M2螺帽將兩個螺絲與木片固定。

接著將舵片與其中一塊木片依照下圖方向合在一起。

接著取出伺服馬達隨附的攻牙螺絲,依照下圖所示由木片一側,用攻牙螺絲將木片與舵片鎖在一起固定。攻牙螺絲稍微穿出舵片即可,不用鎖到底。

伺服馬達接線並透過程式校正

準備如下三條1P杜邦線(公 – 公),與 Arduino UNO。


依照下圖、表,將伺服馬達連接到 Arduino UNO。

拿取USB連接線將Arduino UNO 與電腦連接在一起,開啟軟體Pixetto Studio,並點選「Pixetto Junior」選項。

從右側程式積木列表中點選「輸出單元」,並拖拉出「轉動舵機…」的程式,將管腳設定為「6」,角度設為「70」。

於上方選擇我們使用的控制板Arduino UNO與連接到電腦的COM Port,接著按下上傳將程式上傳到Arduino UNO。上傳完畢後,伺服馬達會轉動至指定的70度。

安裝舵片與門

通過程式指定好伺服馬達的角度後,即可拔除USB傳輸線,並將舵片小心地安裝在伺服馬達上,請注意不要轉動到伺服馬達,並用另一根攻牙螺絲依照下圖位子固定。

接著拿出白膠或是保麗龍膠,如下圖將與舵片連接的木片和門黏接在一起。

安裝Pixetto

準備如下圖所示Pixetto、Grove母座 to 4P公端杜邦線、M2x5mm螺絲4個、M2x6mm銅柱4個與M2螺帽4個。

將M2x6mm銅柱與M2螺帽如下圖方向安裝在Pixetto四角的孔洞上。


特別注意:Pixetto 佈滿很多細小電子元件,在安裝銅柱與螺帽時要格外小心。

使用銅柱與螺帽安裝 Pixetto ,並將Grove母座 to 4P公端杜邦線的母座端裝到Pixetto的Grove插槽。


將Pixetto 依照下圖所示擺放在木板上,連接線朝左上邊。請注意木板孔位位置,左側為兩個小洞。


正面用螺絲固定。


安裝開關門機構

拿出剛才黏好的伺服馬達與門機構,對準連接Pixetto木板上的兩個孔洞。


用白膠或保麗龍膠將它們黏接在一起。


組裝外殼

準備如下圖所示的木板,兩個M3x8mm螺絲與兩個M3螺帽。

將裝有Arduino UNO 的木板如下圖對準房屋後側木板孔洞並安裝上去。

接著將四周木板依照接合處組裝起來,注意其中一塊邊上有缺口的側板,其位子需在下圖標示方向。

組裝完畢後如下圖,可加上白膠或保麗龍膠固定。

依照下圖將房子蓋在底板上,注意缺口位子。

裝好後注意房子內部,門的凸出機構需卡在洞內,如下圖所示。


接著用兩個M3x8mm螺絲與兩個M3螺帽固定房子與底板。

連接Pixetto

如下圖與表所示連接 Pixetto。

組裝屋頂

如下圖準備剩餘木板與四個M3x8mm螺絲與四個M3螺帽。

將孔洞較多的木板如下圖所示方向,用M3x8mm螺絲與M3螺帽固定。


另一片如下圖所示方向,請注意孔洞位子,同樣使用M3x8mm螺絲與M3螺帽固定。

完成。

設定Pixetto

首先我們需要設定Pixetto執行模板偵測的功能,再由Arduino UNO接收偵測結果來控制伺服馬達。

  1. 將Micro USB線透過屋頂側邊的孔洞連接到Pixetto上,另一端連接至電腦。
  2. 打開軟體Pixetto Studio,並點選「Pixetto Utility」選項。
  3. 等待Pixetto初始化完成後,即可在畫面中看到Pixetto拍攝的畫面。
  4. 接著準備兩張不同人臉的圖片,作為待會讓Pixetto紀錄的圖片。
  5. 依照下圖設定各個選項,首先於功能欄內選擇「模板匹配」。接著選擇我們要設定的模板,這個功能共可記錄三個模板,選擇「template_1」這個模板。選擇好模板後用滑鼠對著影像框選要辨識的人臉。最後按下「儲存模板」完成記錄與儲存。

照著上述步驟選擇第二個模板「template_2」,同樣去框選第二張臉並按下「儲存模板」完成紀錄與儲存。在這階段的設定中,小編共設定了兩張不同臉的模板,用於辨識開關門的專案,您可以依照需求設定第三個模板。

您也可透過「編輯清單」修改模板名稱,儲存完想要辨識的人臉後,按下「套用」將所有設定儲存在Pixetto,並關閉「Pixetto Utility」與移除USB傳輸線。

撰寫Scratch程式

  1. 打開軟體Pixetto Studio,並點選「Pixetto Junior」選項。
  2. 首先點選左側程式列表中的「控制」,並於清單中拖拉出「初始化」這個程式。
  3. 接著點選左側程式列表中的「視覺感測器」,並於清單中拖拉出「初始化視覺感測器…」這個程式,請將此程式放入剛才的「初始化」中。
    設定腳位RX為「7」、TX為「8」,這樣就完成了Pixetto的初始化,可以開始偵測。
  4. 從右側程式積木列表中點選「輸出單元」,並拖拉出「轉動舵機…」的程式,將它放在剛才的「初始化」中,並將管腳設定為「6」,角度設為「70」。這一行程式是為了設定門的初始狀態為關閉。
  5. 點選左側程式列表中的「控制」,並於清單中拖拉出「如果…那麼…」這個程式。
  6. 點選左側程式列表中的「視覺感測器」,並於清單中拖拉出「識別到物體」這個程式,請將此程式放入剛才「如果…那麼…」的如果後方欄位中。
    我們將透過「識別到物體」這個程式,來確認Pixetto 有沒有偵測到我們儲存的模板。
  7. 若有偵測到模板,我們就能進一步判斷是模板1還是模板2,所以同樣拖拉出一個「如果…那麼…」放入「識別到物體」的「如果…那麼…」內,並放入「模板匹配偵測到1」來判斷是否偵測到模板1。
  8. 因為小編一開始紀錄的模板有兩個,所以當偵測到模板時,肯定不是模板1就是模板2,所以在這邊我們稍稍擴充一下「如果…那麼…」這個程式。
    點選如下圖所示的「藍色齒輪」就會跑出擴充選單。將我們要擴充的項目「否則」從左側移到右側的程式下方,就能完成擴充。
  9. 接下來新增伺服馬達的程式,當偵測到模板1就將門打開,若是模板2就將門關閉。打開門的角度設定為「170」。
  10. 最後為了避免誤判導致開關太頻繁,於每次伺服馬達動作完畢後加上「延時1秒」的程式。

到此程式就撰寫完畢囉!

上傳程式

  1. 將USB線連接到Arduino UNO上。
  2. 點開「選個硬件」並選取「Arduino UNO」。
  3. 點選「沒有連接」選項會跳出串口連接視窗,可在視窗中查看電腦已連接的「COM」,請針對自己電腦中顯示的「COM」後方按下「連接」。
  4. 看到視窗跳出「已連接」選項,即可點選「回到編輯器」離開視窗。
  5. 回到編輯器後,點選如下圖視窗中的「上傳」選項,即可運行上傳流程。
  6. 上傳的過程當中會跳出「編譯上傳視窗」。
  7. 待視窗消失後檢查如下圖所示的視窗,有無出現「Upload Finished!」文字訊息。有的話表示上傳成功,沒有的話可能要回到連接「COM」的步驟,查看是否沒有正確連接。
  8. 完成後讓Pixetto偵測看看儲存在模板的人臉,如果有偵測到模板1,門應該就會打開呦!

 

範例程式連結

完整程式連結

結語

Pixetto 除了模板,還能夠實現物體、形狀、顏色及手寫辨識等功能。本篇只針對模板偵測的部份做了衍伸應用,若想了解Pixetto 更多的使用方式,可以參考官方的輔助教程,裡面從基本的教學到進階的應用,都有詳細的內容,有興趣的朋友可以參考看看。未來若有相關Pixetto的應用,再與大家分享,下篇文章見!

(本文經同意轉載自CIRCUS Pi原文連結;責任編輯:謝涵如)

CIRCUS Pi

Author: CIRCUS Pi

分享有趣的創作與教學,提供Maker們創作的軍火庫,DIY 零件 | 套件| 工具,官網連結

Share This Post On

發表

跳至工具列