使用VIA Pixetto視覺感測器的辨色功能

作者/圖片:Ted Lee

俗話說,上天有「天眼」可以看盡人間禍福,8787 也有「長眼」能辦識各種顏色。今天要來透過 8787 內建的 AI 影像處理(image processing)功能應用實作,看看如何利用 8787 積木式開發工具 Pixetto Junior,以非接觸辨色的方式自動開燈。

材料準備

註:

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

硬體連接

可以將 8787 視為一塊 Arduino 擴充板(extension board),以四線 2.0 mm 的 JST(Japan Solderless Terminal)PH 系列接頭和 Nano 連接,使用 UART(Universal Synchronous Asynchronous Receiver Transmitter)做為序列(serial)傳輸協定(protocol)。

將 Nano 插在麵包板上固定,以下列方式連接 Nano 和 8787:

Arduino Nano 和 8787 的連接方式

功能設計

這邊將介紹如何以 Pixetto 提供的 Junior 積木式開發工具啟動 8787 內建的顏色偵測功能作為電燈(以 Nano D13 腳板載的 SMD LED 示意)感應裝置。

1. 在 Function 區選用 Color Detection 並勾選 Colors 為 Red 後按下 Apply

2. 初始化(initialize)8787

3. 當 8787 偵測到物件時並判斷它為紅色時,則點亮(給高電位)D13 的板載 LED 0.5 秒,然後關閉(給高電位)

4. 燒錄程式(目前 Pixetto Junior 正在改版加入 Nano 的支援,我是以 Arduino IDE 燒錄程式碼,若讀者是以 Arduino Uno 串接 8787,則可在 Pixetto Junior 上直接上傳)

完整的程式碼

積木所對應的 Arduino 程式碼如下,其中 8787 的函式庫(libraries)可由此壓縮檔匯入(import):

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

SmartSensor ss(0,1);

void setup() {
  ss.begin();

  // D4: yellow (Tx)
  // D5: white (Rx)
  //
  // D0 (Rx): yellow (Tx)
  // D1 (Tx): white (Rx)
  pinMode(13, OUTPUT);
}


void loop() {
  if (ss.isDetected()) {
    if (ss.getTypeID() == ss.COLOR_RED) {
      digitalWrite(13, HIGH);
      delay(500);
      digitalWrite(13, LOW);
    }
  }
}

成果展示

讀者可以參考VIA Pixetto 視覺感測器大開箱(unboxing):AI 開發工具(Development Kits)篇,使用 Pixetto Utility 工具先測試 8787 的辨色功能是否正常。

教學活動設計

  1. 以 Nano 串接可程式化的 WS2812B 燈條。準備紅、綠、藍三張色卡,當 8787「看到」什麼顏色,就讓燈條以此色點亮之
  2. 在 Nano 上加一繼電器(relay),使 8787 能用紅球與黑球來控制 110 V 小檯燈的開關

(本文經作者同意轉載自泰布布部落格原文連結;責任編輯:賴佩萱)

Ted Lee

Author: Ted Lee

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

Share This Post On
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x