Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Od bekathwiaBecky SternSledovat více od autora:
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
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
Krok 2: 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
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
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
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
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
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.