作者:Ted Lee
Jingle bells 、jingle bells…鈴聲多響亮 。逢此歲末年終之際,讓我一起動動手來做一棵與眾不同的聖誕樹吧!設計一自動感應裝置來控制手作聖誕樹的燈光變化(利用8787 的16h5家族四月標記[2]功能來觸發WS2812B燈條的顏色切換效果)。
材料清單
造形設計(電路、結構)
接著,依照下表及接線圖將8787、Nano、燈條和電腦連接好,以便進行後續測試。
設計流程
1.樹體造形手稿
2.樹體造形部件
3.底座造形部件
4.底座手作
5.機電整合接線
6.機電整合電路板手焊
7.機電整合電路板固定
8.樹面黏著棉花美化
9.0~2四月標記手作
10.原型成品照
功能設計
四月標記是美國密西根大學於2010年發表使用於3D空間定位的標準。此標準目前已被應用在無人機精準落地(https://reurl.cc/xgDO8N)、倉儲機器人(https://reurl.cc/ZQnrog)、…等相關領域上。
接下來我們將討論如何使用8787的相關開發工具Pixetto Junior及其Arduino IDE來替我們在前一節手做完成的聖誕樹作品加上控制功能。本例所使用的四月標記的0~2小卡圖檔可由 https://reurl.cc/kVrQ89 下載列印。
2.接線,依照上小節設計的接線圖接妥控制電路
3.設定開發環境在Pixetto Junior上,選好開發板類型、連接埠
4.撰寫積木程式樣板 因為Pixetto Junior沒有燈條的擴充積木,所以我們先用它來產出一個四月標記偵測到0、1、2編碼圖形後讓燈條打出相對應的紅、綠、藍三原色的積木樣板程XmasEye.sb3
此時我們先將Pixetto Junior由積木程式自動產生的Arduino語法程式複製並貼到任一文字編輯器(例如:記事本、Notepad++、…)中,再以XmasEye.ino為檔名存檔
其中,這塊積木上的Arduino Nano接腳(管腳為大陸用語,英文都是pin)編號無特別意義。我們會在下一個步驟中,使用Arduino IDE來修改成燈的控制語法。
5.編修Arduino語法程式 開啟已在步驟4存檔的XmasEye.ino。依照下列程式的內容修改後,參考筆者拙著〈心情指數:使用VIA Pixetto視覺感測器之形狀偵測(Shape Detection)功能(https://reurl.cc/9Z7QaO)〉,下載Adafruit的Arduino版NeoPixel函式庫(https://reurl.cc/3N7ZQj)後將程式燒錄到Arduino Nano中做整體測試了。
#include
#include //8787的控制函式庫(V1.4.2版又改回這個名字)
Pixetto ss(4,5); //D4:黃、D5:白
#define PIN 8 //燈條接在Arduino Nano的D8
#define NUMPIXELS 17 //燈條上的LED數目
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB+NEO_KHZ800);
void setup() {
ss.begin(); //初始化8787
//初使化燈條並做開機顏色測試
pixels.begin();
pixels.fill(0x00FF00, 0, NUMPIXELS); //從0~NUMPIXELS將打亮LED為全綠色(綠色的成份是FF、紅色及藍色的成份為0)
pixels.show(); //顯示LED的顏色設定
delay(500);
//清除燈條顏色
pixels.clear();
pixels.show();
} //end of setup()
void loop() {
if (ss.isDetected()) {
if (ss.getTypeID()==0) { //四月標記0:燈條亮紅色
pixels.fill(0xFF0000, 0, NUMPIXELS);
pixels.show();
delay(800);
} else if (ss.getTypeID()==1) { //四月標記1:燈條亮綠色
pixels.fill(0x00FF00, 0, NUMPIXELS);
pixels.show();
delay(800);
} else if (ss.getTypeID()==2) { //四月標記2:燈條亮藍色
pixels.fill(0x0000FF, 0, NUMPIXELS);
pixels.show();
delay(800);
} //end of if:四月標記數字0、1、2?
delay(2*1000); //讓8787延遲2秒再開始偵測
} //end of if:8787偵測到四月標記?
} //end of loop()
成果展示
學生成果作品
參考資料
1.六種授權條款。
(作者為本刊專欄作家,本文同步表於作者部落格,原文連結;責任編輯:林亮潔)
- 用GenAI生成連連看樣板 - 2025/05/15
- 細談「春仔產生器」的專案拆解 - 2025/04/17
- 用生成式AI打造「春仔」產生器 - 2025/03/12
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!