【芝蔴開門】使用VIA Pixetto視覺感測器的組合色偵測功能

作者/圖片:Ted Lee

天神托夢給阿拉丁,要他坐著飛天魔毯先到撒哈拉沙漠尋得傳說中的太極圖騰,再飛到神秘的中國去取回藏在天安門內的上古神器來消解皇宮內被瘟神散佈病毒肆虐的傳染病。今天就要來透過 8787 內建的 AI 影像處理(image processing)功能應用實作,看看如何利用 8787 的組合色偵測功能來啟動伺服馬達(servo motor)開門。

材料準備

註:

  • 另需準備測試用紅色外殼原子筆(或其他便於顏色識別物件)一支
  • 如果讀者想將開發板換成 Uno 或其他 Arduino 版本,請務必將傳輸線做調當的調整(技術諮詢→Line:https://reurl.cc/Vadax6

造形設計(機構)

可以參考下面這個將伺服馬達運用在智慧門鎖的物聯網(Internet Of Things,IOT)情境上的影片,自行設計相對應的機構。

功能設計(電路、程式)

  1. 依照下表及圖接妥 8787、Nano、伺服馬達與電池盒雙電源共地的連接線路。若僅作功能測試,可以將伺服馬達直接使用 Nano 上的 5 V 電源,以省去準備外接電源的功夫(P.S. 伺服馬達需接在 Nano 的數位模擬類比之 PWM(Pulse Width Modulation,脈衝寬度調變)腳位上,如下圖的~D9)。

  1. 在 Pixetto Utility 上選用援用此網站的紅、黃、藍三混色太極圖向量圖偵測後,將之套用至 8787。

在 Pixetto Utility 上選用組合色偵測功能

  1. 在 Pixetto Junior 上拉出積木程式。這個程式的邏輯是當 8787 識別出組合色的太極圖案(物件 0)後,讓伺服馬達轉回 0 度(它的初始角度在正中 90 度)。

Pixetto Junior 的 Blockly 程式碼

#include <Arduino.h>
#include <SmartSensor.h>

#include <Servo.h>

SmartSensor ss(0,1);
Servo servo_9;

void setup() {
  ss.begin();
  servo_9.attach(9);
  servo_9.write(90);
}

void loop() {
  if (ss.isDetected()) {
   if (ss.getTypeID() == 0) {
    servo_9.write(0);
    delay(600);
    servo_9.write(90);
   }
  }
}

成果展示

教學活動設計

  1. 以「太極」為關鍵字到 Google 圖片搜尋若干張組合色照片,測試看看 8787 能認出幾張?
  2. 參考VIA Pixetto 視覺感測器大開箱(unboxing):AI 開發工具(Development Kits)篇一文中的「我乃小智是也,自己神奇寶貝自己訓」小節,使用自己設計的組合色圖騰來訓練一個新模型後再重複上述步驟來測試 8787 是否能成功地認得它。
(本文經作者同意轉載自泰布布部落格原文連結;責任編輯:賴佩萱)
Ted Lee

Author: Ted Lee

從工程師轉任中學教師,又為了捍衛教育理念,投身成為 STEAM 教育工作者,自稱「無可救藥的人文教育理想主義者」的李俊德(Ted Lee)。

Share This Post On

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *