Obsah:

Dálkově ovládaná LED dioda s kapucí: 7 kroků (s obrázky)
Dálkově ovládaná LED dioda s kapucí: 7 kroků (s obrázky)

Video: Dálkově ovládaná LED dioda s kapucí: 7 kroků (s obrázky)

Video: Dálkově ovládaná LED dioda s kapucí: 7 kroků (s obrázky)
Video: Мини-свет DOFA Sunset Lamp LED RGB 2024, Červenec
Anonim

Od bekathwiaBecky SternSledovat více od autora:

Ochrana soukromí webové kamery
Ochrana soukromí webové kamery
Ochrana soukromí webové kamery
Ochrana soukromí webové kamery
Svinovací metr Yagi antény s 3D tištěnými spojkami
Svinovací metr Yagi antény s 3D tištěnými spojkami
Svinovací metr Yagi anténa s 3D tištěnými spojkami
Svinovací metr Yagi anténa s 3D tištěnými spojkami
Výšivka zvěrokruhu
Výšivka zvěrokruhu
Výšivka zvěrokruhu
Výšivka zvěrokruhu

O: Vytváření a sdílení jsou moje dvě největší vášně! Celkem jsem publikoval stovky návodů na vše od mikrokontrolérů po pletení. Jsem motocyklista z New Yorku a nehanebná psí matka. Můj… Více o bekathwii »

Twin Jawas! Dvojité Orko! Dva čarodějové duchů z Bubble-Bobble! Tato kostýmní kukla může být jakýkoli tvor s LED očima, kterého si vyberete pouhou změnou barev. Tento projekt jsem poprvé vytvořil v roce 2015 s velmi jednoduchým obvodem a kódem, ale letos jsem chtěl vytvořit upgradovanou verzi se současným ovládáním animace napříč dvěma kostýmy. Tento obvod používá jeden jednoduchý dálkový RF dálkový ovladač k ovládání dvou přijímačů na stejné frekvenci a kód Arduino využívající přerušení k dosažení responzivních změn animace na základě výukového kódu Billa Earla.

Pro tento projekt budete potřebovat:

  • Dva klenoty NeoPixel
  • Mikrokontrolér GEMMA M0
  • Bezdrátový přijímač 315 MHz, typ západky
  • Bezdrátový RF dálkový ovladač 315 MHz v konfiguraci se čtyřmi, dvěma nebo jedním tlačítkem
  • Silikonový lanko (doporučeno 30awg)
  • Páječka a pájka
  • Odstraňovače drátů
  • Splachovací frézy
  • Pinzeta
  • Pomocný nástroj z třetí ruky (volitelný)
  • Šicí špendlíky
  • Krejčovská křída (volitelně)
  • 19awg pozinkovaný ocelový drát
  • Silná tkanina na kapuci/pláštěnku (u této verze jsem použil dvě vrstvy bílé tabákové utěrky a jednu vrstvu bílé tkaničky, poté jsem vnitřek kapuce vyložil pevnou černou, aby blokoval světlo)
  • Průhledná černá tkanina pro čelní panel
  • Šicí stroj
  • Nůžky
  • Jehla a nit
  • 3D tiskárna s flexibilním filamentem (volitelně)

Chcete -li držet krok s tím, na čem pracuji, sledujte mě na YouTube, Instagramu, Twitteru, Pinterestu a přihlaste se k odběru mého zpravodaje. Jako Amazon Associate vydělávám na oprávněných nákupech, které provádíte pomocí mých partnerských odkazů.

Než začnete, možná si budete chtít přečíst následující předpoklady:

  • Představujeme Gemma M0
  • NeoPixel Uberguide
  • První verze projektu kapuce (postavena v roce 2015 s klasickým Gemma a bez bezdrátového ovládání)
  • Multitasking Arduino pt 3

Krok 1: Schéma obvodu a kód

Schéma zapojení a kód
Schéma zapojení a kód

Zapojení obvodů je následující:

  • Gemma D2 k bezdrátovému přijímači D0
  • Gemma D0 k bezdrátovému přijímači D1
  • Gemma 3V na bezdrátový přijímač +5V
  • Gemma GND na bezdrátový přijímač GND a klenoty NeoPixel GND
  • Data drahokamů Gemma D1 až NeoPixel IN
  • Klenoty Gemma Vout na NeoPixel PWR
  • Data šperků NeoPixel VÝSTUP k ostatním datům šperků NeoPixel IN

Viz další krok pro montážní poznámky.

Kód je založen na multitaskingu skici Arduina od Billa Earla a upraven tak, aby ovládal dva šperky NeoPixel se dvěma digitálními vstupy. Nemusíte tedy používat bezdrátový přijímač- místo toho můžete použít tlačítka na samotném obvodu. Stáhněte si tento kódový soubor Arduino z příloh tohoto kroku nebo jej zkopírujte a vložte zde do prázdné skici Arduino:

#include "Adafruit_NeoPixel.h"

// Podporované typy vzorů: vzor výčtu {NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Podporované směry Patern: enum direction {FORWARD, REVERSE}; // Třída NeoPattern - odvozeno z třídy třídy Adafruit_NeoPixel NeoPatterns: public Adafruit_NeoPixel {public: // Členské proměnné: vzor ActivePattern; // který vzor běží směr Směr; // směr ke spuštění vzoru bez znaménka dlouhý interval; // milisekundy mezi aktualizacemi unsigned long lastUpdate; // poslední aktualizace pozice uint32_t Color1, Color2; // Jaké barvy se používají uint16_t TotalSteps; // celkový počet kroků ve vzoru uint16_t Index; // aktuální krok v rámci vzoru void (*OnComplete) (); // Zpětné volání po dokončení vzoru // Konstruktor - volá konstruktor základní třídy k inicializaci proužku NeoPatterns (uint16_t pixelů, uint8_t pin, typ uint8_t, void (*zpětné volání) ()): Adafruit_NeoPixel (pixely, pin, typ) {OnComplete = zpětné volání; } // Aktualizujte vzor neplatný Update () {if ((millis () - lastUpdate)> Interval) // čas na aktualizaci {lastUpdate = millis (); switch (ActivePattern) {case RAINBOW_CYCLE: RainbowCycleUpdate (); přestávka; případ THEATER_CHASE: TheaterChaseUpdate (); přestávka; případ COLOR_WIPE: ColorWipeUpdate (); přestávka; pouzdro SKENER: ScannerUpdate (); přestávka; case FADE: FadeUpdate (); přestávka; výchozí: break; }}} // Zvýšení indexu a vynulování na konci neplatné Increment () {if (Direction == FORWARD) {Index ++; if (Index> = TotalSteps) {Index = 0; if (OnComplete! = NULL) {OnComplete (); // volání zpětného volání soutěže}}} else // Směr == REVERSE {--Index; if (Index <= 0) {Index = TotalSteps-1; if (OnComplete! = NULL) {OnComplete (); // volání zpětného volání soutěže}}}} // // Směr obrácení vzoru neplatný Reverse () {if (Direction == FORWARD) {Direction = REVERSE; Index = TotalSteps-1; } else {Směr = VPŘED; Index = 0; }} // Inicializace pro neplatný RainbowCycle RainbowCycle (uint8_t interval, směr dir = FORWARD) {ActivePattern = RAINBOW_CYCLE; Interval = interval; TotalSteps = 255; Index = 0; Směr = dir; } // Aktualizujte Rainbow Cycle Pattern neplatný RainbowCycleUpdate () {for (int i = 0; i <numPixels (); i ++) {setPixelColor (i, Wheel (((i * 256 / numPixels ())+Index) & 255)); } ukázat(); Přírůstek(); } // Inicializace pro Theater Chase neplatí TheaterChase (uint32_t color1, uint32_t color2, uint8_t interval, směr dir = FORWARD) {ActivePattern = THEATER_CHASE; Interval = interval; TotalSteps = numPixels (); Barva1 = barva1; Barva2 = barva2; Index = 0; Směr = dir; } // Aktualizujte vzor Chase Theater neplatný TheaterChaseUpdate () {for (int i = 0; i <numPixels (); i ++) {if ((i+Index) % 3 == 0) {setPixelColor (i, Color1); } else {setPixelColor (i, Color2); } } ukázat(); Přírůstek(); } // Inicializace pro prázdný ColorWipe ColorWipe (uint32_t barva, uint8_t interval, směr dir = FORWARD) {ActivePattern = COLOR_WIPE; Interval = interval; TotalSteps = numPixels (); Color1 = barva; Index = 0; Směr = dir; } // Aktualizujte vzor vymazání barev neplatný ColorWipeUpdate () {setPixelColor (Index, Color1); ukázat(); Přírůstek(); } // Inicializace pro neplatný skener SCANNNER (uint32_t color1, uint8_t interval) {ActivePattern = SCANNER; Interval = interval; TotalSteps = (numPixels () - 1) * 2; Barva1 = barva1; Index = 0; } // Aktualizovat vzor skeneru neplatný ScannerUpdate () {pro (int i = 0; i > 1, zelená (barva) >> 1, modrá (barva) >> 1); vrátit dimColor; } // Nastavit všechny pixely na barvu (synchronně) neplatné ColorSet (barva uint32_t) {for (int i = 0; i> 16) & 0xFF; } // Vrátí zelenou komponentu 32bitové barvy uint8_t Green (barva uint32_t) {return (barva >> 8) & 0xFF; } // Vrátí modrou složku 32bitové barvy uint8_t Blue (barva uint32_t) {return color & 0xFF; } // Zadáním hodnoty 0 až 255 získáte hodnotu barvy. // Barvy jsou přechodem r - g - b - zpět na r. uint32_t Wheel (byte WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {return Color (255 - WheelPos * 3, 0, WheelPos * 3); } else if (WheelPos <170) {WheelPos -= 85; vrátit barvu (0, WheelPos * 3, 255 - WheelPos * 3); } else {WheelPos -= 170; vrátit barvu (WheelPos * 3, 255 - WheelPos * 3, 0); }}}; neplatné JewelsComplete (); // Definujte některé NeoPattern pro dva prsteny a tyč // stejně jako některé rutiny dokončení NeoPatterns Jewels (14, 1, NEO_GRBW + NEO_KHZ800, & JewelsComplete); const int JAS = 50; // Inicializujte vše a připravte se na spuštění void setup () {Serial.begin (115200); pinMode (2, VSTUP); pinMode (0, VSTUP); // Inicializujte všechny pixely Jewels.setBrightness (BRIGHTNESS); Jewels.begin (); // Nakopněte vzor Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 0, 50), 100); } // Hlavní smyčka prázdná smyčka () {// Aktualizujte šperky. Jewels. Update (); // Přepínání vzorů po stisknutí tlačítka: if (digitalRead (2) == HIGH) // Tlačítko č. 1 stisknuto {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Jewels. TotalSteps = 100; Jewels. Interval = 1; } else if (digitalRead (0) == HIGH) // Tlačítko #2 stisknuto {Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = SKENER; Jewels. TotalSteps = Jewels.numPixels (); Jewels. Interval = 100; } else // Zpět k normálnímu provozu {// Obnovení všech parametrů vzoru na normální hodnoty Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Jewels. Interval = 100; }} // ---------------------------------------------- -------------- // Rutiny dokončení-zavolá se po dokončení vzoru // ---------------------- -------------------------------------- // Dokončení klenotů Zpětné volání neplatné JewelsComplete () {// Náhodná změna barvy pro další skenování //Jewels. Color1 = Jewels. Wheel (random (255)); Jewels. Reverse (); }

Krok 2: Sestavte obvod

Sestavte obvod
Sestavte obvod
Sestavte obvod
Sestavte obvod

Sada pomocných chapadel třetích rukou může učinit proces pájení vodičů ke součástem velmi přímočarým a zábavným. Ale pokud sadu nemáte, nedělejte si starosti; vždy můžete použít pásku nebo plakátový tmel, aby byla vaše deska při pájení stabilní.

Pro spojení mezi dvěma klenoty NeoPixel použijte tenké kousky splétaného drátu (asi 6 palců/15 cm) (diagram v předchozím kroku). Pokud použijete příliš krátké dráty, nebudete moci umístit své LED oči dostatečně daleko od sebe, a pokud použijete příliš mnoho drátu, vůle se vám dostane do obličeje, když máte kostým.

Hlavní obvod bude žít v klopě (kde se hrudník setkává s ramenem), takže pro spojení mezi prvním klenotem NeoPixel v řetězci a Gemmou budou dráty mnohem delší. Můžete držet drát až do oblasti očí a vytáhnout jej, abyste změřili vzdálenost, kterou by měl drát projet, a pak přidejte trochu více pro uvolnění a pojištění.

Pro připojení mezi Gemma a bezdrátovým přijímačem jsem se rozhodl použít prototypovací vodiče se zásuvkami, protože bezdrátový přijímač již má připojené kolíky záhlaví.

Krok 3: Napájení z baterie

Síla baterie
Síla baterie
Síla baterie
Síla baterie

K napájení obvodu jsem použil lipoly baterii 500mAh. Pokud používáte lipoly baterii, je rozumné ji chránit před poškrábáním, proražením, oděrkami, ohnutím a jiným zneužitím. Můžete jej zabalit do pevné textilní pásky nebo pro něj vytvořit držák na 3D tisk.

Místo toho můžete snadno použít držák 3xAAA (místo v klopě jej noste v kapse).

Krok 4: Šití vzoru a řezání látky

Šicí vzor a řezací tkanina
Šicí vzor a řezací tkanina

Použil jsem stejný vzor, který jsem vytvořil pro první verzi tohoto kostýmu, což je vícestránkové PDF, které se spojuje a vytváří figurky.

Složte látku tak, že zarovnáte okraje okrajů, abyste zarovnali textilie, a kousky vzoru umístěte/sešijte podél přehybu, jak je vyznačeno. Pomocí značkovací křídy nebo tužky vysledujte příspěvek na šev mimo vzory (kromě záhybu) asi 3/8in/3cm. Vzhledem k tomu, že moje tkanina byla tenká, chtěl jsem ji zdvojnásobit, a protože jsem vytvořil dvě kapuce, skončil jsem odstřižením čtyř z každého kusu vzoru v hlavní tkanině, pak další vrstvou v gázové tkanině, která dodala texturu na vnější straně, a nakonec vrstva černé látky jako podšívka, která blokuje přicházející světlo. Myslím, že kdybych to plánoval dopředu, mohl bych shodit jednu z počátečních bílých vrstev a kapuce by se skládala pouze ze tří vrstev, místo čtyř.

Krok 5: Sestavte kusy látky

Sestavte kusy látky
Sestavte kusy látky
Sestavte kusy látky
Sestavte kusy látky
Sestavte kusy látky
Sestavte kusy látky
Sestavte kusy látky
Sestavte kusy látky

Na každý kus vzoru přišijte a přišijte šipky/ramenní švy, poté zarovnejte kapuci a pláště podél švu krku pravými stranami k sobě. Sešijte šev a také šev rovně přes horní část kapuce.

Zkuste na kapotě. Přeložte a připněte surový přední okraj kapoty a sešijte jej dolů, abyste vytvořili úhledný okraj a kanál pro průchod drátu.

Dále odstřihněte kulatý kus čisté černé látky, která zakryje přední část kapuce. To bude podporovat obvod a skrývat vaši tvář. Aby vám kapuce co nejlépe sedla, přišpendlete ji na místo, poté ji ručně nebo strojem přišijte k otvoru kapuce.

Krok 6: Nainstalujte obvod do kapoty

Nainstalujte obvod v kapuci
Nainstalujte obvod v kapuci

Nasadil jsem kapotu, zapnul obvod a pomocí zrcátka vyhledal nejlepší umístění LED diod. Poté jsem pomocí špendlíků označil místa a opatrně sešil pomocí černé nitě a připevnil montážní otvory na špercích NeoPixel k čirému černému přednímu panelu. Moje sedí těsně pod mými skutečnými očima, díky čemuž je snadno vidíte kolem nich.

Opláchněte a opakujte, pokud děláte druhou digestoř.

Krok 7: Noste to

Noste to!
Noste to!
Noste to!
Noste to!
Noste to!
Noste to!
Noste to!
Noste to!

Jsou tak zábavné na nošení. Je snadné vidět ven a pro ostatní není snadné vidět vaši tvář. Celé je to také docela pohodlné, a to díky nadměrné kapuci a drátěnému rámu, který brání tomu, aby vám přední tkanina zavěsila na obličej.

Můj přítel a já jsme je letos nosili na DJskou párty mého hackerspace na Halloween, a přestože jsem viděl rozhraní pro software laserového projektoru, nedokázal úplně rozeznat drobný text v abeltonu, takže jsme museli upravit jeho, aby měl lepší výhled. Sundal jsem černý látkový panel z horního kousku kapoty a přeložil přes přebytek. V temné místnosti jste opravdu nemohli rozeznat rozdíl mezi těmito dvěma, i když to můžete vidět na naší společné fotografii výše.

Děkuji za přečtení! Pokud se vám tento projekt líbí, můžete se zajímat o některé z mých dalších:

  • 13 Nápadů na difúzní LED diody
  • Difúzní LED pás s nápisem Arduino/Bluetooth
  • Počítadlo odběratelů YouTube s ESP8266
  • Snadné zrcadlo nekonečna
  • 3 Chyby začátečníka Arduino

Abyste udrželi krok s tím, na čem pracuji, sledujte mě na YouTube, Instagramu, Twitteru a Pinterestu.

Doporučuje: