使用VIA Pixetto視覺感測器之模板匹配功能

作者/圖片:Ted Lee

本文將透過8787內建的AI影像處理(image processing)功能應用實作,設計一款隨時演奏一曲快樂頌提提神!(小提示:利用8787的模板匹配功能來演奏音樂曲目,例如:看到LV標誌播一曲快樂頌。)

材料清單

本次專案所需要的材料清單如下:

造形設計(機構)

請參考音箱(https://reurl.cc/exmDkR)或音樂盒(https://reurl.cc/9E54bX)的概念設計作品的外觀。記得將8787及其相關電路的尺寸考量進去。

功能設計(電路、程式)

先依照下表及接線圖接妥8787、Nano與蜂鳴器的連接線路。請留意,蜂鳴器需接在Nano的數位模擬類比之PWM(Pulse Width Modulation,脈衝寬度調變)腳位(pin)上,例如下表的~D9。

接線圖

在Pixetto Utility 上選用形狀偵測功能,以此LV商標(https://reurl.cc/9E57nn)框選出即將要被識別的最小矩形後再將之套用至8787。可參考拙著《VIA Pixetto視覺感測器大開箱(unboxing):AI開發工具(Development Kits)篇》一文。

在Pixetto Utility上選用模板匹配功能

接著,在Pixetto Junior 上拉出下圖的積木程式。這個程式的邏輯是一開機後先讓蜂鳴器發出一頻率為100 Hz的聲音來做自我測試(self test)。

接著,若8787「看見」前述的LV商標後就播放音效(讀者可利用此簡譜 https://reurl.cc/7X37b5 修改成對應的音頻)。否則,就讓蜂鳴器靜音。其中,為了讓8787不致於很快速的重覆識別到LV商標,我們加上變數i以做為旗標(sentinel)控制。

Pixetto Junior的Blockly程式碼

積木程式自動生成的Arduino程式碼如下所示

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

SmartSensor ss(0,1);
int i;

void setup() {
ss.begin();

pinMode(9, OUTPUT);
i = 0;
// D4: yellow (Tx)
// D5: white (Rx)
//
// D0 (Rx): yellow (Tx)
// D1 (Tx): white (Rx)
analogWrite(9, 100);
delay(300);
analogWrite(9, 0);
}

void loop() {
if (ss.isDetected()) {
if (ss.getTypeID() == 1) {
i = i + 1;
if (i == 1) {
analogWrite(9, 330);
delay(300);
analogWrite(9, 277);
delay(300);
analogWrite(9, 262);
delay(300);
}
}
} else {
i = 0;
analogWrite(9, 0);
delay(300);
}
}

本單元的操作影片

教學活動設計

將前述的LV商標換成Gucci後讓8787再重新識別看看。

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

Ted Lee

Author: Ted Lee

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

Share This Post On
Subscribe
Notify of
guest
1 Comment
Inline Feedbacks
View all comments
Ted Lee

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

1
0
Would love your thoughts, please comment.x
()
x