簡介
傳說同意獨角獸角具有神奇的治愈和凈化特性。獨角獸很自然地做到這一點-角碰到池塘里的稀水或傷口潰爛后,角的魔力就開始發(fā)揮作用。自然有多酷?
對于角色扮演獨角獸來說,調(diào)用號角的魔力并不那么直觀。這種號角通過另一種魔術(shù)解決了這個問題:電容式觸摸。
用美麗的銅線裝飾號角,讓凈化過程從簡單的觸摸開始。喇叭一直在閃爍著變色的彩虹,當(dāng)有人觸摸銅脈時,彩虹會消失,喇叭的尖端會發(fā)出明亮的白色,凈化附近的所有東西。像魔術(shù)一樣!
所需的零件
1 x Gemma M0
Gemma M0微控制器
缺貨
1 x Neopixel環(huán)
12 Neopixel環(huán)
添加到購物車
1 x 電池
LiPoly 350mah電池
添加到購物車
1 x 電池充電器
USB充電器
添加到購物車
1 x JST連接器
電池充電器連接器
添加到購物車
1 x 白色LED
漫射白色3mm LED
添加到購物車
也需要
銅箔膠帶以您想要的寬度
熱縮管
您還需要一個獨角獸號角-您可以3d打印一個或用worbla,樹脂或任何其他半透明材料制成自己的號角。 Marlinspike Auger貝殼也可以做成獨角獸角。
本指南包括一個可打印的獨角獸號角文件以及一個可打印的安裝板,因此您可以卸下號角以打開/關(guān)閉它并給電池充電。
工具
3d打印機(可選)
烙鐵及配件
美工刀
用于安裝的針和線
接線圖
該項目無法與“經(jīng)典” Gemma配合使用,因為我們使用了Gemma M0內(nèi)置的電容式觸摸!/span》
接線
寶石3V新像素環(huán)5V
寶石A0新像素環(huán)IN
寶石G新像素環(huán)GLED G(陰極)
Gemma A251歐姆電阻LED +(陽極)
Gemma A1銅帶
電池充電器
要添加充電功能,請拼接第二個JST連接器與電池的電線成一直線,然后插入USB充電器。
為什么將NeoPixels焊接到3V焊盤而不是Vout焊盤?
Gemma M0的Vout焊盤可以從電池直接給我們提供3.7V的電壓,從USB提供5V的電壓,而NeoPixels最亮在這些較高的電壓下。 但是,我們已經(jīng)設(shè)計了此項目以始終插上電池,即使在關(guān)閉Gemma的情況下,連接到Vout墊的任何東西也會慢慢耗盡電池。接線到3V將解決此問題!
由于我們只有12個像素,因此3V引腳將為我們提供足夠的電源。如果您要為整個設(shè)備供電,請不要使用此技巧。 NeoPixels! Gemma的3V穩(wěn)壓器不能很好地處理較大的子線。
軟件
一個好主意是立即將所有軟件都安裝好并加載到板上,以使以后的連接測試更加容易。
要運行代碼,您需要:
Arduino IDE(1.8或更高版本)
Adafruit Board對Gemma M0的支持
Arduino庫:FastLED,Adafruit_FreeTouch,Adafruit_NeoPixel
1。 Arduino IDE
如果您未使用最新版本的Arduino IDE(1.8.5或更高版本),那么這是升級的好時機。如果這是您第一次使用Arduino,請轉(zhuǎn)至本指南進行安裝。它是免費的,而且設(shè)置起來非常簡單。
2。開發(fā)板支持
您需要告訴Arduino IDE您正在使用哪個開發(fā)板。這只需要幾分鐘的設(shè)置,而您只需要做一次。
這里是設(shè)置Gemma M0的分步教程
3。庫
可以使用Arduino庫管理器安裝所有三個庫-使用Sketch→Include Library→Manage Libraries…并搜索庫的全部或部分名稱,然后單擊“安裝”。
查找:
FastLED
Adafruit_FreeTouch
Adafruit_NeoPixel
Adafruit_NeoPixel對于此項目不是絕對必需的,但是如果您遇到FastLED的問題,則可以方便地進行安裝。使用Adafruit_NeoPixel,對基礎(chǔ)知識進行故障排除會變得容易一些。
上傳代碼
使用USB電纜將微控制器插入計算機。在Arduino IDE中,轉(zhuǎn)到工具》板,然后選擇板的名稱。然后轉(zhuǎn)到工具》端口,并在那里也選擇板。 (如果未在此處顯示,請確保您的微控制器已通過USB插入計算機)
下載:Project Zip 或 UnicornHorn_CapacitiveTouch.ino | 在Github上查看
復(fù)制代碼
#include “Adafruit_FreeTouch.h”
#include “FastLED.h”
#define CAPTOUCH_PIN A1
#define NEOPIXEL_PIN 1
#define LED_PIN 0
#define NUM_LEDS 12
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
int BRIGHTNESS=150;
int touch = 500; // Change this variable to something between your capacitive touch serial readouts for on and off
long oldState = 0;
int gHue=0;
Adafruit_FreeTouch qt_1 = Adafruit_FreeTouch(CAPTOUCH_PIN, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
//Adafruit_FreeTouch qt_2 = Adafruit_FreeTouch(A2, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
void setup() {
Serial.begin(115200);
if (! qt_1.begin())
Serial.println(“Failed to begin qt on pin A1”);
pinMode(LED_PIN, OUTPUT); //initialize the LED pin
FastLED.addLeds(leds, NUM_LEDS); // Set up neopixels with FastLED
FastLED.setBrightness(BRIGHTNESS);
FastLED.setMaxPowerInVoltsAndMilliamps(3,350); //Constrain FastLED‘s power usage
}
void loop() {
Serial.print(qt_1.measure());
Serial.write(’ ‘);
checkpress();
delay(20);
}
void checkpress() {
// Get current button state.
long newState = qt_1.measure();
Serial.println(qt_1.measure());
if (newState 》 touch && oldState 《 touch) {
// Short delay to debounce button.
delay(20);
// Check if button is still low after debounce.
long newState = qt_1.measure(); }
if (newState 》 touch ) {
dark();
digitalWrite(LED_PIN, HIGH);
delay(20);
}
else {
rainbow();
digitalWrite(LED_PIN, LOW);
delay(20);
}
// Set the last button state to the old state.
oldState = newState;
// do some periodic updates
EVERY_N_MILLISECONDS( 20 ) { gHue++; } // slowly cycle the “base color” through the rainbow
}
void rainbow()
{
// FastLED’s built-in rainbow generator
fill_rainbow( leds, NUM_LEDS, gHue, 7);
FastLED.show();
delay(20);
}
void dark()
{
for(int i = 0; i 《 NUM_LEDS; i++) {
leds[i] = CRGB::Black;
FastLED.show();
delay(20);
}
}
#include “Adafruit_FreeTouch.h”
#include “FastLED.h”
#define CAPTOUCH_PIN A1
#define NEOPIXEL_PIN 1
#define LED_PIN 0
#define NUM_LEDS 12
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
int BRIGHTNESS=150;
int touch = 500; // Change this variable to something between your capacitive touch serial readouts for on and off
long oldState = 0;
int gHue=0;
Adafruit_FreeTouch qt_1 = Adafruit_FreeTouch(CAPTOUCH_PIN, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
//Adafruit_FreeTouch qt_2 = Adafruit_FreeTouch(A2, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
void setup() {
Serial.begin(115200);
if (! qt_1.begin())
Serial.println(“Failed to begin qt on pin A1”);
pinMode(LED_PIN, OUTPUT); //initialize the LED pin
FastLED.addLeds(leds, NUM_LEDS); // Set up neopixels with FastLED
FastLED.setBrightness(BRIGHTNESS);
FastLED.setMaxPowerInVoltsAndMilliamps(3,350); //Constrain FastLED‘s power usage
}
void loop() {
Serial.print(qt_1.measure());
Serial.write(’ ‘);
checkpress();
delay(20);
}
void checkpress() {
// Get current button state.
long newState = qt_1.measure();
Serial.println(qt_1.measure());
if (newState 》 touch && oldState 《 touch) {
// Short delay to debounce button.
delay(20);
// Check if button is still low after debounce.
long newState = qt_1.measure(); }
if (newState 》 touch ) {
dark();
digitalWrite(LED_PIN, HIGH);
delay(20);
}
else {
rainbow();
digitalWrite(LED_PIN, LOW);
delay(20);
}
// Set the last button state to the old state.
oldState = newState;
// do some periodic updates
EVERY_N_MILLISECONDS( 20 ) { gHue++; } // slowly cycle the “base color” through the rainbow
}
void rainbow()
{
// FastLED’s built-in rainbow generator
fill_rainbow( leds, NUM_LEDS, gHue, 7);
FastLED.show();
delay(20);
}
void dark()
{
for(int i = 0; i 《 NUM_LEDS; i++) {
leds[i] = CRGB::Black;
FastLED.show();
delay(20);
}
}
3d打印喇叭
我根據(jù)Noe Ruiz的精彩教程在Fusion360中創(chuàng)建了此設(shè)計。我正在使用雙擠出機Sigma BCN3D進行打印:
修改
在視頻之后,會創(chuàng)建一個喇叭,喇叭的尺寸太小而無法容納新像素環(huán)。首先確定草圖的寬度為42毫米,而不是38毫米,以確保它適合。
我還在USB充電器底座附近添加了一個4mm x 13mm的孔,并在底部添加了用于
由于開/關(guān)開關(guān)位于Gemma上,而且可能難以觸及,因此我創(chuàng)建了一個滑入式安裝板,可以將其縫制到頭飾或頭巾。這樣,可以輕松卸下喇叭,以進行充電或打開和關(guān)閉。
horn.stl
spiral.stl
Platform.stl
對于非雙擠出機打印機,這是一個角和螺旋線合并在一起的.stl文件。
horn_with_spiral.stl
此號角使用雙擠出機印刷了兩個色善良。我在黑暗中發(fā)光的ABS中打印了號角,在紫色ABS中將螺旋打印了,變熱時變成了粉紅色。魔術(shù)!
要打印獨角獸號角,3D打印機必須能夠打印至少150mm高的高度,并且號角的底部大約為42x48mm,這應(yīng)該適合大多數(shù)床。
p》
切片器設(shè)置
下載并將以下.fff文件導(dǎo)入到Simplify3D中。這些設(shè)置適用于具有3mm ABS的雙擠出機。喇叭將在左側(cè)擠出機上打印,螺旋線在右側(cè)打印。
角輪廓:DualExtruder3mmABS.fff
平臺輪廓:Platform_Settings.fff
Horn打印設(shè)置
0%填充
不需要支撐
沒有木筏
裙子/邊緣很有幫助
平臺打印設(shè)置
20%填充
使用短裙
用木筏
裙子/帽檐會有所幫助
電子組裝
剪一條紅色和黑色的線,比喇叭的長度稍長。
獲取紐扣電池并測試您的LED。確保您知道哪個是陽極腿(電源),哪個是陰極(地)。
99%的時間中,更長的腿是陽極,但偶爾會出現(xiàn)“ trickster” LED兩條相同大小的腿滑過。
將電阻器的一只腳纏繞到LED的陽極引腳,并將其焊接到位。將紅色導(dǎo)線焊接到另一個電阻器支腳,然后將黑色導(dǎo)線焊接到LED的陰極支腳。
再次用紐扣電池測試以確保LED是還在工作。如果一切看起來不錯,請在連接上涂抹一些熱收縮物以覆蓋它們,并確保它們不會短路。
抓住您的neopixel戒指。將紅色導(dǎo)線焊接至5V,將黑色導(dǎo)線焊接至G,將白色導(dǎo)線焊接至IN。
注意:最簡單的方法是將導(dǎo)線從Neopixel一側(cè)滑入,然后在焊點的背面進行焊接
將導(dǎo)線拉到環(huán)的內(nèi)部,并修剪到大約2英寸。
將來自Neopixel環(huán)的黑線與來自LED和焊料的黑線絞在一起都插入到Gemma M0的G引腳上。
將紅色像素線從neopixel環(huán)焊接到Gemma的3V引腳,然后將白線焊接到引腳D1。/p》
最后,焊接剩余的紅色線從LED到Gemma上的D0引腳。
將電池插入Gemma并成為確保已打開。如果您還沒有這樣做,請上傳代碼。測試以確保您的新像素點亮。
用手指觸摸板A1。新像素應(yīng)該熄滅,LED應(yīng)當(dāng)點亮。是的!
如果觸摸板過于敏感或似乎什么也沒做,則可能需要校準碼。我們將在下一部分中進行介紹。
電池充電器
一次切割和焊接一根電線!不要一次切穿兩者。如果處理不當(dāng),LiPoly電池會著火!
將JST連接器修剪到大約2英寸。小心地將將紅色導(dǎo)線連接到LiPoly電池上,將其熱縮并從JST連接器上插入紅色導(dǎo)線。
用黑色導(dǎo)線重復(fù)操作。現(xiàn)在您已將兩個插頭連接到電池:一個用于Gemma,一個用于充電器。
最終大會
切一段比您需要更長的銅帶。修剪使其成形并繞喇叭形纏繞。我發(fā)現(xiàn)將其纏繞在螺旋上方是最好的方法-這樣,當(dāng)我戴上喇叭時,不用看就可以用手指輕松找到它。
用鈍器壓緊并壓平銅帶的工具。它不想整齊地旋轉(zhuǎn),所以花一些時間使其看起來不錯。在尖端使用一小滴強力膠,以確保它不會被卡住。
在磁帶末端留一條長尾巴,以連接到您的Gemma。
在喇叭的頂端滴一些強力膠,然后滑動LED使其保持不動。
滑動電池,然后neopixel響到號角。將充電器放置在適當(dāng)?shù)奈恢茫笿ST連接器朝下,朝向喇叭的底部。
然后,將銅帶粘貼到Gemma的A1墊上。您可以通過以下方式進行操作:將膠帶滑過孔并進行焊接,或者,如果太麻煩,則將一根短線焊接到焊盤和膠帶上以進行連接。
用一點熱膠固定充電器。
將Gemma塞入喇叭的底部,注意使電容式觸摸板盡可能遠離任何其他電子設(shè)備。
在這一點上,我的號角已經(jīng)亂成一團。電容式觸摸要么太靈敏,要么不夠靈敏。或者,Gemma上的所有其他墊板都會將其關(guān)閉,但墊板A1卻什么也沒做。
我花了很多時間來校準軟件,測試,屏蔽和重新配置銅帶。此處的校準非常棘手。拔下USB電纜后,喇叭的反應(yīng)完全不同-沒有USB端口的接地,銅帶的靈敏度就會變差。
別放棄!請查閱本指南中的校準頁面以獲取一些提示。
到制作一個頭帶,從額頭到頸項測量一下頭圍,然后切一塊硬質(zhì)織物或乙烯基材料,使其大小大致與之相同。
縫一個漂亮的閃亮織物
將3d打印平臺縫在頭帶的中心使用安裝孔。
用珠寶,花朵,貝殼,珠子或其他任何喜歡的裝飾裝飾頭帶。
校準
組裝完所有部件后,您可能會發(fā)現(xiàn)號角過于敏感:幾英寸之內(nèi)即可到達,并且LED尖端亮起。否則可能不夠靈敏,沒有任何接觸會使喇叭的尖端發(fā)光。幸運的是,這很容易在代碼中進行調(diào)整。
將Gemma插入計算機,并確保已在“工具”》“端口”》“ Adafruit Gemma M0”下選擇了它。
打開串行監(jiān)視器并移動您的雙手遠離Gemma。您應(yīng)該看到數(shù)字滾動。這是您的基準編號,請寫下來。
現(xiàn)在觸摸銅帶。這是您的有效號碼。也要寫下來。
在代碼中找到以下行:
下載:文件
復(fù)制代碼
int touch = 500; // Change this variable to something between your capacitive touch serial readouts for on and off int touch = 500; // Change this variable to something between your capacitive touch serial readouts for on and off
“ touch”變量用于設(shè)置靈敏度。將數(shù)字更改為基線數(shù)和活動數(shù)之間的中點附近的值。再次上傳代碼,然后進行測試以查看其性能是否更好。
添加銅帶會極大地更改活動編號。添加的膠帶越多,變化越大,因此在喇叭完全組裝好以達到最佳效果時重新校準。
靈敏度在不同情況下也會發(fā)生變化。如果將Gemma插入計算機,則結(jié)果與未插入計算機時會有所不同。由于未插入Gemma時無法獲得讀數(shù),因此需要進行一些嘗試和錯誤操作才能正確校準喇叭。
如果靈敏度在您的頭上,而不是在頭上,在頭飾上或不在頭飾上,靈敏度也會發(fā)生變化。或者,如果風(fēng)在吹。可能有點令人沮喪!因此,請確保您要在喇叭的最終位置(在您的頭上)進行測試。
如果其他所有方法都失敗了,請接地。深呼吸三下,扭動腳趾,然后將脈輪連接到通用地面。電力貫穿我們所有人,沮喪會改變您的結(jié)果。
然后呼吸,像您一樣神奇的閃閃發(fā)光的獨角獸來騰躍。
責(zé)任編輯:wv
-
led
+關(guān)注
關(guān)注
242文章
23832瀏覽量
673861 -
連接器
+關(guān)注
關(guān)注
99文章
15377瀏覽量
140410
發(fā)布評論請先 登錄
隼眼科技榮獲2025年度南京市培育獨角獸企業(yè)
智行者科技獲評2025中國獨角獸企業(yè)
士模微電子上榜“中國潛在獨角獸企業(yè)”

英創(chuàng)匯智榮獲“中國汽車隱形獨角獸”稱號
億鑄科技榮登中國潛在獨角獸企業(yè)榜單
同星智能榮獲“中國汽車隱形獨角獸”稱號

主線科技榮登中國潛在獨角獸企業(yè)榜單
魔視智能榮獲“中國汽車隱形獨角獸”稱號
萬協(xié)通亮相2024中國潛在獨角獸企業(yè)發(fā)展大會
實力登榜!廣域銘島入選中國潛在獨角獸企業(yè)

評論