Kazalo:

Napa za oči in kostum z daljinskim upravljanjem: 7 korakov (s slikami)
Napa za oči in kostum z daljinskim upravljanjem: 7 korakov (s slikami)

Video: Napa za oči in kostum z daljinskim upravljanjem: 7 korakov (s slikami)

Video: Napa za oči in kostum z daljinskim upravljanjem: 7 korakov (s slikami)
Video: Part 2 - The Adventures of Huckleberry Finn Audiobook by Mark Twain (Chs 11-18) 2024, November
Anonim

Avtor: bekathwiaBecky SternSledite Več avtorja:

Prijatelj spletne kamere
Prijatelj spletne kamere
Prijatelj spletne kamere
Prijatelj spletne kamere
Merilni trak Yagi antena s 3D tiskanimi spojkami
Merilni trak Yagi antena s 3D tiskanimi spojkami
Merilni trak Yagi antena s 3D tiskanimi spojkami
Merilni trak Yagi antena s 3D tiskanimi spojkami
Zodiakovo vezenje
Zodiakovo vezenje
Zodiakovo vezenje
Zodiakovo vezenje

O: Ustvarjanje in deljenje sta moji največji strasti! Skupaj sem objavil na stotine vaj o vsem, od mikrokrmilnikov do pletenja. Sem motoristka iz New Yorka in mama brez kesa. My wo… Več o bekathwia »

Dvojčka Jawas! Dvojni Orko! Dva čarovnika duhov iz Bubble-Bobble! Ta kapuca za kostume je lahko katero koli bitje z LED očmi, ki ga izberete samo s spremembo barv. Ta projekt sem prvič naredil leta 2015 z zelo preprostim vezjem in kodo, letos pa sem želel ustvariti nadgrajeno različico s hkratnim nadzorom animacije v dveh kostumih. To vezje uporablja en preprost RF daljinski upravljalnik bližnjega dosega za upravljanje dveh sprejemnikov na isti frekvenci in kodo Arduino, ki uporablja prekinitve za doseganje odzivnih sprememb animacije, na podlagi vadniške kode Billa Earla.

Za ta projekt boste potrebovali:

  • Dva dragulja NeoPixel
  • Mikrokrmilnik GEMMA M0
  • Brezžični sprejemnik 315MHz, s ključavnico
  • Brezžični RF daljinski upravljalnik 315 MHz v konfiguraciji s štirimi, dvema ali enim gumbom
  • Žica s silikonsko prevleko (priporočeno 30 awg)
  • Spajkalnik in spajkanje
  • Odstranjevalci žice
  • Rezalniki za izpiranje
  • Pinceta
  • Orodje za pomoč iz tretje roke (neobvezno)
  • Šivalni zatiči
  • Krojaška kreda (neobvezno)
  • 19awg pocinkana jeklena žica
  • Debela tkanina za kapuco/ogrinjalo (za to različico sem uporabil dve plasti bele tobačne tkanine in eno plast bele gaze, nato pa notranjost pokrova obložil s trdno črno barvo, da je preprečil svetlobo)
  • Prosojna črna tkanina za prednjo ploščo
  • Šivalni stroj
  • Škarje
  • Igla in nit
  • 3D tiskalnik s prilagodljivo nitjo (neobvezno)

Če želite spremljati, na čem delam, me spremljajte na YouTubu, Instagramu, Twitterju, Pinterestu in se naročite na moje novice. Kot sodelavec Amazon zaslužim s kvalificiranimi nakupi, ki jih opravite z mojimi partnerskimi povezavami.

Preden začnete, boste morda želeli prebrati naslednje pogoje:

  • Predstavljamo Gemmo M0
  • Uvodnik NeoPixel
  • Prva različica projekta pokrova (zgrajena leta 2015 s klasično Gemmo in brez brezžičnega nadzora)
  • Večopravilnost Arduino pt 3

1. korak: Shema vezja in koda

Shema vezja in koda
Shema vezja in koda

Priključki vezja so naslednji:

  • Gemma D2 na brezžični sprejemnik D0
  • Gemma D0 na brezžični sprejemnik D1
  • Gemma 3V na brezžični sprejemnik +5V
  • Gemma GND na brezžični sprejemnik GND in dragulji NeoPixel GND
  • Podatki o draguljih Gemma D1 do NeoPixel IN
  • Gemma Vout do NeoPixel draguljev PWR
  • Podatki o dragulju NeoPixel OUT drugim podatkom NeoPixel Jewel IN

Za opombe o sestavljanju si oglejte naslednji korak.

Koda temelji na večopravilni skici Arduino Bill Earla in je spremenjena za nadzor dveh draguljev NeoPixel z dvema digitalnima vhodoma. Tako vam ni treba uporabljati brezžičnega sprejemnika- namesto tega lahko uporabite gumbe na samem vezju. Prenesite to kodno datoteko Arduino iz prilog tega koraka ali kopirajte in prilepite od tukaj v prazno skico Arduino:

#include "Adafruit_NeoPixel.h"

// Podprte vrste vzorcev: vzorec naštevanja {NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Podprte smeri vzorec: smer naštevanja {FORWARD, REVERSE}; // Razred NeoPattern - izhaja iz razreda razreda Adafruit_NeoPixel NeoPatterns: javni Adafruit_NeoPixel {public: // Spremenljivke člana: vzorec ActivePattern; // kateri vzorec je smer smer Direction; // smer za izvajanje vzorca unsigned long Interval; // milisekunde med posodobitvami unsigned long lastUpdate; // zadnja posodobitev položaja uint32_t Color1, Color2; // Katere barve so v uporabi uint16_t TotalSteps; // skupno število korakov v vzorcu uint16_t Index; // trenutni korak znotraj vzorca void (*OnComplete) (); // Povratni klic ob zaključku vzorca // Konstruktor - pokliče konstruktor osnovnega razreda za inicializacijo trakov NeoPatterns (uint16_t slikovnih pik, uint8_t pin, uint8_t tip, void (*povratni klic) ()): Adafruit_NeoPixel (slikovne pike, pin, tip) {OnComplete = poklicati nazaj; } // Posodobi vzorec void Update () {if ((millis () - lastUpdate)> Interval) // čas za posodobitev {lastUpdate = millis (); stikalo (ActivePattern) {primer RAINBOW_CYCLE: RainbowCycleUpdate (); zlom; primer THEATER_CHASE: TheaterChaseUpdate (); zlom; ohišje COLOR_WIPE: ColorWipeUpdate (); zlom; ohišje SCANNER: ScannerUpdate (); zlom; primer FADE: FadeUpdate (); zlom; privzeto: break; }}} // Povečajte indeks in ponastavite na koncu void Increment () {if (Direction == FORWARD) {Index ++; if (Indeks> = TotalSteps) {Indeks = 0; if (OnComplete! = NULL) {OnComplete (); // pokličite povratni klic za konkurenco}}} else // Smer == REVERSE {--Index; if (Indeks <= 0) {Indeks = TotalSteps-1; if (OnComplete! = NULL) {OnComplete (); // pokličite povratni klic za konkurenco}}}} // Obrnite smer vzorca void Reverse () {if (Direction == FORWARD) {Direction = REVERSE; Indeks = TotalSteps-1; } else {Smer = NAPREJ; Indeks = 0; }} // Inicializiraj za RainbowCycle void RainbowCycle (interval uint8_t, smer dir = NAPREJ) {ActivePattern = RAINBOW_CYCLE; Interval = interval; Skupni koraki = 255; Indeks = 0; Smer = dir; } // Posodobi vzorec mavričnega cikla void RainbowCycleUpdate () {for (int i = 0; i <numPixels (); i ++) {setPixelColor (i, Wheel (((i * 256 / numPixels ())+Index) & 255)); } show (); Increment (); } // Inicializiraj za Theatre Chase void TheaterChase (uint32_t color1, uint32_t color2, uint8_t interval, smer dir = FORWARD) {ActivePattern = THEATER_CHASE; Interval = interval; TotalSteps = numPixels (); Barva1 = barva1; Barva2 = barva2; Indeks = 0; Smer = dir; } // Posodobi vzorec Theatre Chase void TheatreChaseUpdate () {for (int i = 0; i <numPixels (); i ++) {if ((i+Index) % 3 == 0) {setPixelColor (i, Color1); } else {setPixelColor (i, Color2); }} show (); Increment (); } // Začetek za ColorWipe void ColorWipe (barva uint32_t, interval uint8_t, smer dir = NAPREJ) {ActivePattern = COLOR_WIPE; Interval = interval; TotalSteps = numPixels (); Barva1 = barva; Indeks = 0; Smer = dir; } // Posodobi vzorec brisanja barve void ColorWipeUpdate () {setPixelColor (Indeks, Barva1); show (); Increment (); } // Inicializiraj za SCANNNER void Scanner (uint32_t color1, uint8_t interval) {ActivePattern = SCANNER; Interval = interval; Skupni koraki = (numPixels () - 1) * 2; Barva1 = barva1; Indeks = 0; } // Posodobi vzorec optičnega bralnika void ScannerUpdate () {for (int i = 0; i > 1, zelena (barva) >> 1, modra (barva) >> 1); vrnitev dimColor; } // Vse slikovne pike nastavimo na barvno (sinhrono) void ColorSet (barva uint32_t) {for (int i = 0; i> 16) & 0xFF; } // Vrne zeleno komponento 32-bitne barve uint8_t zeleno (uint32_t barvo) {return (barva >> 8) & 0xFF; } // Vrne modro komponento 32-bitne barve uint8_t Modra (uint32_t barva) {return barva & 0xFF; } // Vnesite vrednost od 0 do 255, da dobite barvno vrednost. // Barve so prehod r - g - b - nazaj v r. uint32_t kolo (bajt WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {return Color (255 - WheelPos * 3, 0, WheelPos * 3); } else if (WheelPos <170) {WheelPos -= 85; return Color (0, WheelPos * 3, 255 - WheelPos * 3); } else {WheelPos -= 170; povratna barva (WheelPos * 3, 255 - WheelPos * 3, 0); }}}; void JewelsComplete (); // Določimo nekaj NeoPatterns za oba obroča in palico // ter nekatere rutine dokončanja NeoPatterns Jewels (14, 1, NEO_GRBW + NEO_KHZ800, & JewelsComplete); const int SVETLOST = 50; // Inicializirajte vse in se pripravite na zagon void setup () {Serial.begin (115200); pinMode (2, INPUT); pinMode (0, VHOD); // Inicializiramo vse slikovne pike Jewels.setBrightness (BRIGHTNESS); Jewels.begin (); // Začetek vzorca Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 0, 50), 100); } // Glavna zanka void loop () {// Posodobi dragulje. Dragulji. Update (); // Preklopite vzorce na pritisk gumba: if (digitalRead (2) == HIGH) // Pritisnite gumb #1 {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Dragulji. TotalSteps = 100; Dragulji. Interval = 1; } else if (digitalRead (0) == HIGH) // Pritisnjen gumb #2 {Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = SCANNER; Jewels. TotalSteps = Jewels.numPixels (); Dragulji. Interval = 100; } else // Nazaj na normalno delovanje {// Vse parametre vzorca obnovite na normalne vrednosti Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Dragulji. Interval = 100; }} // ---------------------------------------------- -------------- // Rutine dokončanja-pokličite vas ob zaključku vzorca // ---------------------- -------------------------------------- // Jewels Completion Callback void JewelsComplete () {// Naključna sprememba barve za naslednje skeniranje //Jewels. Color1 = Jewels. Wheel (naključno (255)); Dragulji. Reverse (); }

2. korak: Sestavite vezje

Sestavite vezje
Sestavite vezje
Sestavite vezje
Sestavite vezje

Komplet pripomočkov za tretje roke lahko postopek spajkanja žic na sestavne dele naredi zelo preprost in zabaven. Ampak ne skrbite, če nimate kompleta; vedno lahko uporabite nekaj traku ali kita za plakate, da bo vaša plošča stabilna med spajkanjem.

Za povezave med dvema draguljema NeoPixel uporabite tanke koščke navezane žice (dolžine približno 6in/15cmin) (diagram v prejšnjem koraku). Če uporabljate prekratke žice, LED -oči ne boste mogli postaviti dovolj narazen, če pa uporabite preveč žice, vam bo ohlapnost prišla v obraz, ko boste nosili kostum.

Glavni tokokrog bo živel v predelu reverjev (kjer se prsi srečujejo z ramo), zato bodo za povezave med prvim draguljem NeoPixel v verigi in Gemmo žice veliko daljše. Žico lahko držite do očesnega območja in jo izvlečete, da izmerite razdaljo, ki jo mora žica prepotovati, nato pa dodajte še malo za ohlapnost in zavarovanje.

Za povezavo med Gemmo in brezžičnim sprejemnikom sem se odločil za uporabo prototipskih žic z ženskimi glavami, saj ima brezžični sprejemnik že pritrjene zatiče glave.

3. korak: Napajanje baterije

Napajanje baterije
Napajanje baterije
Napajanje baterije
Napajanje baterije

Za napajanje vezja sem uporabil 500 mAh lipolno baterijo. Če uporabljate lipolno baterijo, jo je pametno zaščititi pred praskami, vbodi, odrgninami, upogibanjem in drugimi zlorabami. Lahko ga zavijete v kakšen trpežen trak iz tkanine ali pa zanj naredite 3D natisnjeno držalo.

Namesto tega lahko preprosto uporabite držalo 3xAAA (nosite ga v žepu namesto v reveru).

4. korak: Vzorec šivanja in rezanje tkanine

Šivalni vzorec in tkanina za rezanje
Šivalni vzorec in tkanina za rezanje

Uporabil sem isti vzorec, ki sem ga ustvaril za prvo različico tega kostuma, ki je večstranski PDF, ki skupaj ustvari vzorce.

Zložite tkanino, poravnajte robove robov, da poravnate zrna tkanine, in kose/vzorce položite vzdolž pregiba, kot je označeno. Z označevalno kredo ali svinčnikom označite dodatek za šiv zunaj kosov vzorca (razen pregiba) približno 5/8in/3 cm. Ker je bila moja tkanina tanka, sem jo hotel podvojiti, in ker sem naredil dve kapuci, sem na koncu izrezal štiri dele vsakega vzorca v glavni tkanini, nato še eno plast v gazirani gazi, da bi zunanjosti dodal teksturo, in na koncu plast črne tkanine kot podloga, ki blokira prihajajočo svetlobo. Mislim, da če bi to vnaprej načrtoval, bi lahko spustil eno od začetnih belih plasti in bi kapuce vsebovale le tri plasti namesto štirih.

5. korak: Sestavite kose tkanine

Sestavite kose tkanine
Sestavite kose tkanine
Sestavite kose tkanine
Sestavite kose tkanine
Sestavite kose tkanine
Sestavite kose tkanine
Sestavite kose tkanine
Sestavite kose tkanine

Na vsak kos vzorca pripnite in zašite puščice/ramenske šive, nato poravnajte kose pokrova in ogrinjala vzdolž vratnega šiva z desnimi stranicami skupaj. Šivajte šiv in šiv naravnost čez vrh pokrova.

Poskusite s kapuco. Zložite in pritrdite surov sprednji rob pokrova in ga zašijete, da ustvarite čeden rob in kanal, skozi katerega bo šla žica.

Nato izrežite okrogel kos prosojne črne tkanine, ki pokriva sprednji del pokrova. To bo podpiralo vezje in skrilo vaš obraz. Za najboljše prileganje ga pripnite na mesto, nato pa ga ročno ali strojno prišite na odprtino pokrova.

6. korak: Namestite vezje v pokrov

Namestite vezje v pokrov
Namestite vezje v pokrov

Oblekel sem pokrov, vklopil vezje in z ogledalom presodil najboljšo lokacijo za LED. Nato sem z zatiči označil lokacije in jih previdno zašil s črno nitjo ter pritrdil montažne luknje na draguljih NeoPixel na čisto črno sprednjo ploščo. Moje sedijo tik pod mojimi pravimi očmi, kar olajša pogled mimo njih.

Izperite in ponovite, če izdelujete drugo kapuco.

7. korak: Nosite ga

Nosi ga!
Nosi ga!
Nosi ga!
Nosi ga!
Nosi ga!
Nosi ga!
Nosi ga!
Nosi ga!

Nositi jih je tako zabavno. Enostavno je videti in drugim ni lahko videti vašega obraza. Celotna stvar je tudi precej udobna, zahvaljujoč preveliki kapuci in žičnemu okvirju, ki preprečuje, da bi se sprednja tkanina ukrivila na obrazu.

S fantom sva jih letos nosila za zabavo za noč čarovnic mojega hackerspacea. Čeprav sem videl vmesnik za programsko opremo laserskega projektorja, ni mogel čisto razbrati drobnega besedila v abeltonu, zato smo ga morali prilagoditi, da je imel boljši pogled. Odstranil sem črno ploščo iz zgornjega dela pokrova in jo zložil na presežek. V temni sobi res ne bi mogli razlikovati med tema dvema, čeprav to vidite na zgornji fotografiji, na kateri sva skupaj.

Hvala za branje! Če vam je ta projekt všeč, vas bodo morda zanimali še nekateri drugi:

  • 13 idej za razpršitev LED
  • Razpršen znak LED traku z Arduino/Bluetooth
  • Števec naročnikov v YouTubu z ESP8266
  • Enostavno ogledalo Infinity
  • 3 Napake Arduina za začetnike

Če želite spremljati, na čem delam, me spremljajte na YouTubu, Instagramu, Twitterju in Pinterestu.

Priporočena: