Turinys:

Nuotoliniu būdu valdomos LED akys ir kostiumų gaubtas: 7 žingsniai (su nuotraukomis)
Nuotoliniu būdu valdomos LED akys ir kostiumų gaubtas: 7 žingsniai (su nuotraukomis)

Video: Nuotoliniu būdu valdomos LED akys ir kostiumų gaubtas: 7 žingsniai (su nuotraukomis)

Video: Nuotoliniu būdu valdomos LED akys ir kostiumų gaubtas: 7 žingsniai (su nuotraukomis)
Video: Part 06 - Our Mutual Friend Audiobook by Charles Dickens (Book 2, Chs 5-8) 2024, Lapkritis
Anonim

Becky Stern Sekite daugiau autoriaus:

Interneto kameros privatumo draugas
Interneto kameros privatumo draugas
Interneto kameros privatumo draugas
Interneto kameros privatumo draugas
Matuoklio Yagi antena su 3D spausdintomis jungtimis
Matuoklio Yagi antena su 3D spausdintomis jungtimis
Matuoklio Yagi antena su 3D spausdintomis jungtimis
Matuoklio Yagi antena su 3D spausdintomis jungtimis
Zodiako siuvinėjimas
Zodiako siuvinėjimas
Zodiako siuvinėjimas
Zodiako siuvinėjimas

Apie: Kurimas ir dalijimasis yra dvi didžiausios mano aistros! Iš viso paskelbiau šimtus vadovėlių apie viską - nuo mikrovaldiklių iki mezgimo. Aš esu Niujorko motociklininkas ir neatgailaujanti šunų mama. Mano bėda … Daugiau apie bekathwia »

Dvynis Jawas! Dvigubas Orko! Du vaiduoklių burtininkai iš „Bubble-Bobble“! Šis kostiumų gaubtas gali būti bet koks padaras su LED akimis, kurį pasirinksite tik pakeisdami spalvas. Aš pirmą kartą sukūriau šį projektą 2015 m., Naudodamas labai paprastą grandinę ir kodą, tačiau šiais metais norėjau sukurti patobulintą versiją su tuo pačiu metu valdomu animacija dviem kostiumais. Ši grandinė naudoja vieną paprastą, artimo nuotolio RF nuotolinio valdymo pultą, kad valdytų du imtuvus tuo pačiu dažniu, ir „Arduino“kodą, naudojantį pertraukas, kad būtų galima greitai reaguoti į animaciją, remiantis Billo Earlo mokymo kodu.

Šiam projektui jums reikės:

  • Du „NeoPixel“brangenybės
  • GEMMA M0 mikrovaldiklis
  • 315MHz belaidis imtuvas, fiksavimo tipas
  • 315MHz belaidis RF nuotolinio valdymo pultas, keturių, dviejų ar vieno mygtuko konfigūracija
  • Silikonu dengta viela (rekomenduojama 30 wg)
  • Lituoklis ir lituoklis
  • Vielos nuėmikliai
  • Nuplaunami pjaustytuvai
  • Pincetai
  • Pagalbinis trečiųjų rankų įrankis (neprivaloma)
  • Siuvimo smeigtukai
  • Siuvėjo kreida (neprivaloma)
  • 19awg cinkuota plieninė viela
  • Storas audinys gaubtui/apsiaustui (šiai versijai aš panaudojau du balto tabako audinio sluoksnius ir vieną baltos marlės sluoksnį, tada gaubto vidų padengiau vientisa juoda spalva, kad būtų užblokuota šviesa)
  • Permatomas juodas audinys veido skydeliui
  • Siuvimo mašina
  • Žirklės
  • Adata ir siūlai
  • 3D spausdintuvas su lanksčiu siūlu (pasirinktinai)

Norėdami neatsilikti nuo to, ką dirbu, sekite mane „YouTube“, „Instagram“, „Twitter“, „Pinterest“ir užsiprenumeruokite mano naujienlaiškį. Kaip „Amazon“asocijuotas asmuo uždirbu iš kvalifikuotų pirkinių, kuriuos atliekate naudodami mano filialų nuorodas.

Prieš pradėdami, galbūt norėsite perskaityti šias būtinas sąlygas:

  • Pristatome „Gemma M0“
  • „NeoPixel Uberguide“
  • Pirmoji gaubto projekto versija (pastatyta 2015 m. Su klasikine „Gemma“ir belaidžiu valdymu)
  • Daugiafunkcinis darbas „Arduino pt 3“

1 žingsnis: grandinės schema ir kodas

Grandinės schema ir kodas
Grandinės schema ir kodas

Grandinės jungtys yra tokios:

  • Gemma D2 į belaidį imtuvą D0
  • „Gemma D0“į belaidį imtuvą D1
  • Gemma 3V į belaidį imtuvą +5V
  • Gemma GND į belaidį imtuvą GND ir NeoPixel brangenybės GND
  • „Gemma D1“į „NeoPixel“papuošalų duomenis IN
  • „Gemma Vout“prie „NeoPixel“brangakmenių PWR
  • „NeoPixel“papuošalų duomenys OUT į kitus „NeoPixel Jewel“duomenis IN

Žiūrėkite kitą žingsnį surinkimo pastaboms.

Kodas yra pagrįstas „Bill Aarl“eskizo „Arduino“daugiafunkciniu uždaviniu ir pakeistas taip, kad būtų galima valdyti du „NeoPixel“brangenybes su dviem skaitmeniniais įėjimais. Taigi jums nereikia naudoti belaidžio imtuvo- galite naudoti mygtukus pačioje grandinėje. Atsisiųskite šį „Arduino“kodo failą iš šio veiksmo priedų arba nukopijuokite ir įklijuokite iš čia į tuščią „Arduino“eskizą:

#include "Adafruit_NeoPixel.h"

// Palaikomi modelių tipai: enum pattern {NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Palaikomos tėvo kryptys: enum direction {FORWARD, REVERSE}; // NeoPattern klasė - gauta iš Adafruit_NeoPixel klasės klasės NeoPatterns: public Adafruit_NeoPixel {public: // Nario kintamieji: pattern ActivePattern; // kuris modelis eina kryptimi Kryptis; // kryptis paleisti modelį unsigned long Interval; // milisekundės tarp atnaujinimų unsigned long lastUpdate; // paskutinis pozicijos atnaujinimas uint32_t Spalva1, Spalva2; // Kokios spalvos naudojamos uint16_t TotalSteps; // bendras modelio žingsnių skaičius uint16_t Index; // dabartinis žingsnis šablone void (*OnComplete) (); // Atšaukimas užbaigus modelį // Konstruktorius - ragina bazinės klasės konstruktorių inicijuoti juostą „NeoPatterns“(uint16_t pikseliai, uint8_t kaištis, uint8_t tipas, void (*atšaukimas) ()): Adafruit_NeoPixel (pikseliai, kaištis, tipas) {OnComplete = perskambink; } // Atnaujinti modelį void Update () {if ((millis () - lastUpdate)> Interval) // laikas atnaujinti {lastUpdate = millis (); switch (ActivePattern) {case RAINBOW_CYCLE: RainbowCycleUpdate (); pertrauka; atvejis THEATER_CHASE: TheaterChaseUpdate (); pertrauka; atvejis COLOR_WIPE: ColorWipeUpdate (); pertrauka; atvejis SKENERIS: ScannerUpdate (); pertrauka; atvejis FADE: FadeUpdate (); pertrauka; numatytasis: pertrauka; }}} // Padidinkite indeksą ir iš naujo nustatykite pabaigoje void Padidėjimas () {if (Direction == FORWARD) {Index ++; if (Indeksas> = TotalSteps) {Indeksas = 0; if (OnComplete! = NULL) {OnComplete (); // atšaukti „comlpetion“skambutį}}} else // Direction == REVERSE {--Index; if (Indeksas <= 0) {Indeksas = TotalSteps-1; if (OnComplete! = NULL) {OnComplete (); // atšaukti „Comlpetion“atgalinį skambutį}}}}} // Atvirkštinio modelio kryptis void Reverse () {if (Direction == FORWARD) {Direction = REVERSE; Indeksas = TotalSteps-1; } else {Kryptis = Į priekį; Indeksas = 0; }} // Inicijuoti RainbowCycle void RainbowCycle (uint8_t intervalas, kryptis dir = FORWARD) {ActivePattern = RAINBOW_CYCLE; Intervalas = intervalas; „TotalSteps“= 255; Indeksas = 0; Kryptis = dir; } // Atnaujinti „Rainbow Cycle Pattern void RainbowCycleUpdate“() {for (int i = 0; i <numPixels (); i ++) {setPixelColor (i, Wheel ((((i * 256 / numPixels ()))))+Index) & 255))); } Rodyti(); Padidėjimas (); } // Inicijuoti „Theatre Chase“void TheaterChase (uint32_t spalva1, uint32_t spalva2, uint8_t intervalas, kryptis dir = FORWARD) {ActivePattern = THEATER_CHASE; Intervalas = intervalas; TotalSteps = numPixels (); Spalva1 = spalva1; Spalva2 = spalva2; Indeksas = 0; Kryptis = dir; } // Atnaujinkite Theatre Chase Pattern void TheaterChaseUpdate () {for (int i = 0; i <numPixels (); i ++) {if ((i+Index) % 3 == 0) {setPixelColor (i, Color1); } else {setPixelColor (i, Color2); } } Rodyti(); Padidėjimas (); } // Inicijuoti „ColorWipe“negaliojimą ColorWipe (uint32_t spalva, uint8_t intervalas, kryptis dir = FORWARD) {ActivePattern = COLOR_WIPE; Intervalas = intervalas; TotalSteps = numPixels (); Spalva1 = spalva; Indeksas = 0; Kryptis = dir; } // Atnaujinti spalvų valymo šabloną void ColorWipeUpdate () {setPixelColor (indeksas, spalva1); Rodyti(); Padidėjimas (); } // Inicijuoti SCANNNER void Scanner (uint32_t color1, uint8_t intervalas) {ActivePattern = SCANNER; Intervalas = intervalas; „TotalSteps“= (numPixels () - 1) * 2; Spalva1 = spalva1; Indeksas = 0; } // Atnaujinkite „Scanner Pattern void ScannerUpdate“() {for (int i = 0; i > 1, žalia (spalva) >> 1, mėlyna (spalva) >> 1); return dimColor; } // Nustatykite visus taškus į spalvą (sinchroniškai) void ColorSet (uint32_t color) {for (int i = 0; i> 16) & 0xFF; } // Grąžina 32 bitų spalvos žalią komponentą uint8_t Žalia (uint32_t spalva) {return (spalva >> 8) & 0xFF; } // Pateikia 32 bitų spalvos mėlyną komponentą uint8_t Blue (uint32_t color) {return color & 0xFF; } // Įveskite reikšmę nuo 0 iki 255, kad gautumėte spalvos vertę. // Spalvos yra perėjimas r - g - b - atgal į r. uint32_t Ratas (baitas WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {return Color (255 - WheelPos * 3, 0, WheelPos * 3); } else if (WheelPos <170) {WheelPos -= 85; grąžinti spalvą (0, WheelPos * 3, 255 - WheelPos * 3); } else {WheelPos -= 170; grąžinti spalvą („WheelPos * 3“, 255 - „WheelPos“* 3, 0); }}}; void JewelsComplete (); // Apibrėžkite kai kuriuos dviejų žiedų ir lazdos „NeoPatterns“// taip pat keletą užbaigimo procedūrų „NeoPatterns Jewels“(14, 1, NEO_GRBW + NEO_KHZ800 ir & JewelsComplete); const int Šviesumas = 50; // Inicijuokite viską ir pasiruoškite pradėti void setup () {Serial.begin (115200); pinMode (2, INPUT); pinMode (0, INPUT); // Inicijuokite visus taškus Jewels.setBrightness (BRIGHTNESS); Brangakmeniai.pradėti (); // Pradėkite modelį Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 0, 50), 100); } // Main loop void loop () {// Atnaujinkite brangakmenius. Brangakmeniai. Atnaujinti (); // Keisti modelius mygtuko paspaudimu: if (digitalRead (2) == HIGH) // Mygtukas #1 paspaustas {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Brangakmeniai. TotalSteps = 100; Brangakmeniai. Intervalas = 1; } else if (digitalRead (0) == HIGH) // 2 mygtukas paspaustas {Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = SKENERIS; Jewels. TotalSteps = Jewels.numPixels (); Brangakmeniai. Intervalas = 100; } else // Grįžti prie normalaus darbo {// Atkurti visus modelio parametrus į normalias vertes Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Brangakmeniai. Intervalas = 100; }} // ---------------------------------------------- -------------- // Užbaigimo tvarka-skambinkite, kai baigsite modelį // ---------------------- -------------------------------------- // „Jewels Completion Callback“negalioja „JewelsComplete“() {// Atsitiktinis spalvos pakeitimas kitam nuskaitymui //Jewels. Color1 = Jewels. Wheel (atsitiktinis (255)); Brangakmeniai. Reverse (); }

2 žingsnis: Surinkite grandinę

Surinkite grandinę
Surinkite grandinę
Surinkite grandinę
Surinkite grandinę

Pagalbinių trečiųjų rankų griebtuvų rinkinys gali padaryti laidų prie komponentų litavimo procesą labai paprastą ir įdomų. Tačiau nesijaudinkite, jei neturite komplekto; jūs visada galite naudoti tam tikrą juostą ar plakato glaistą, kad jūsų lenta būtų stabili, kol lituosite.

Sujungimams tarp dviejų „NeoPixel“brangakmenių naudokite plonus (apie 15 colių ilgio) vielos gabalus (diagrama ankstesniame žingsnyje). Jei naudosite per trumpus laidus, negalėsite savo LED akių pastatyti pakankamai toli vienas nuo kito, o jei naudosite per daug laidų, dėvėdami kostiumą, veidas atsilaisvins.

Pagrindinė grandinė gyvens atlapo srityje (ten, kur jūsų krūtinė susiduria su petimi), todėl jungtys tarp pirmojo „NeoPixel“brangakmenio grandinėje ir „Gemma“laidai bus daug ilgesni. Galite prilaikyti vielą prie akių srities ir ištraukti, kad išmatuotumėte, kokiu atstumu viela turėtų nueiti, tada pridėkite šiek tiek daugiau, kad sumažintumėte ir apsidraustumėte.

Norėdami prisijungti tarp „Gemma“ir belaidžio imtuvo, aš nusprendžiau naudoti laidų prototipų formavimą su moteriškomis antraštėmis, nes belaidis imtuvas jau turi antraštes.

3 žingsnis: akumuliatoriaus energija

Akumuliatoriaus galia
Akumuliatoriaus galia
Akumuliatoriaus galia
Akumuliatoriaus galia

Norėdami maitinti grandinę, naudoju 500 mAh lipolinę bateriją. Jei naudojate lipolinę bateriją, protinga ją apsaugoti nuo įbrėžimų, dūrių, įbrėžimų, lenkimo ir kitokio piktnaudžiavimo. Galite jį įvynioti į tvirtą audinio juostą arba padaryti 3D spausdintą laikiklį.

Vietoj to galite lengvai naudoti 3xAAA laikiklį (nešiokite jį kišenėje, o ne atlapo viduje).

4 žingsnis: modelio siuvimas ir audinio pjovimas

Siuvimo modelis ir pjovimo audinys
Siuvimo modelis ir pjovimo audinys

Aš naudoju tą patį modelį, kurį sukūriau pirmajai šio kostiumo versijai, tai yra kelių puslapių PDF, kuris sujungiamas, kad sukurtų modelio dalis.

Sulenkite audinį, sulygiuodami briaunos kraštus, kad sulygiuotumėte audinio grūdus, ir padėkite/smeigtuko rašto dalis išilgai raukšlės, kaip pažymėta. Naudodami žymėjimo kreidą arba pieštuką, nubrėžkite maždaug 5/8 colių/3 cm siūlės išorę už rašto dalių (išskyrus raukšlę). Kadangi mano audinys buvo plonas, norėjau jį padvigubinti, o kadangi padariau du gaubtus, galiausiai iškirpiau po keturis kiekvieno rašto gabalus pagrindiniame audinyje, o po to dar vieną sluoksnį gaubtinėje marlėje, kad iš išorės pridėtų tekstūros, ir galiausiai juodo audinio sluoksnis, skirtas uždengti įeinančią šviesą. Manau, jei būčiau tai suplanavęs iš anksto, galėčiau numesti vieną iš pradinių baltų sluoksnių, o gaubtus sudarytų tik trys sluoksniai, o ne keturi.

5 žingsnis: Surinkite audinio gabalus

Surinkite audinio gabalus
Surinkite audinio gabalus
Surinkite audinio gabalus
Surinkite audinio gabalus
Surinkite audinio gabalus
Surinkite audinio gabalus
Surinkite audinio gabalus
Surinkite audinio gabalus

Prisekite ir siūkite smiginio/pečių siūles ant kiekvieno rašto gabalo, tada sulygiuokite gaubto ir apsiausto dalis išilgai kaklo siūlės dešinėmis pusėmis. Siuvinėkite siūlę, taip pat siūlę tiesiai gaubto viršuje.

Pabandykite ant gaubto. Sulenkite ir pritvirtinkite neapdorotą priekinį gaubto kraštą ir susiuvkite, kad sukurtumėte tvarkingą kraštą ir kanalą vielai praeiti.

Tada nupjaukite apvalų juodos spalvos audinio gabalėlį, kad uždengtumėte gaubto priekį. Tai palaikys grandinę ir paslėps jūsų veidą. Pritvirtinkite jį prie dėvėdami gaubtą, kad jis būtų geriausiai prigludęs, tada rankomis arba mašina prisiūkite prie gaubto angos.

6 žingsnis: sumontuokite grandinę gaubte

Įdiekite grandinę gaubte
Įdiekite grandinę gaubte

Aš uždėjau gaubtą, įjungiau grandinę ir naudoju veidrodį, kad išsiaiškinčiau geriausią šviesos diodų vietą. Tada aš naudoju smeigtukus vietoms pažymėti ir atsargiai susiuvau juodu siūlu, pritvirtindamas „NeoPixel“brangakmenių tvirtinimo skyles prie juodos spalvos priekinio skydelio. Manosios sėdi tiesiai po mano tikromis akimis, todėl jas lengva pamatyti pro jas.

Nuplaukite ir pakartokite, jei gaminate antrą gaubtą.

7 žingsnis: dėvėkite

Dėvėk tai!
Dėvėk tai!
Dėvėk tai!
Dėvėk tai!
Dėvėk tai!
Dėvėk tai!
Dėvėk tai!
Dėvėk tai!

Tai labai smagu dėvėti. Tai lengva pamatyti, o kitiems nelengva matyti tavo veidą. Visa tai taip pat gana patogu dėl per didelio gaubto ir vielos rėmo, kuris neleidžia priekiniam audiniui apsivelti ant veido.

Šiais metais mes su vaikinu juos nešiojome DJ mano įsilaužėlių erdvės Helovino vakarėlyje, ir nors aš galėjau pamatyti lazerinio projektoriaus programinės įrangos sąsają, jis negalėjo visiškai atskirti mažo teksto abeltone, todėl turėjome jį pritaikyti, kad geresnis vaizdas. Nuėmiau juodo audinio skydelį nuo viršutinio gaubto gabalėlio ir užlenkiau perteklių. Tamsiame kambaryje jūs tikrai negalėjote pasakyti skirtumo tarp šių dviejų, nors tai galite pamatyti aukščiau esančioje mūsų kartu nuotraukoje.

Ačiū, kad skaitote! Jei jums patinka šis projektas, jus gali sudominti kai kurie kiti mano darbai:

  • 13 šviesos diodų išsklaidymo idėjų
  • Išsklaidytas LED juostos ženklas su „Arduino“/„Bluetooth“
  • „YouTube“prenumeratorių skaitiklis su ESP8266
  • Lengvas begalybės veidrodis
  • 3 pradedančiųjų „Arduino“klaidos

Jei norite neatsilikti nuo to, ką dirbu, sekite mane „YouTube“, „Instagram“, „Twitter“ir „Pinterest“.

Rekomenduojamas: