Përmbajtje:

Sytë LED me telekomandë dhe kapuçin e kostumeve: 7 hapa (me fotografi)
Sytë LED me telekomandë dhe kapuçin e kostumeve: 7 hapa (me fotografi)

Video: Sytë LED me telekomandë dhe kapuçin e kostumeve: 7 hapa (me fotografi)

Video: Sytë LED me telekomandë dhe kapuçin e kostumeve: 7 hapa (me fotografi)
Video: Файтинг персонажей фильмов ужасов 70-х, 80-х, 90-х годов ► Смотрим Terrordrome 1 - 2 2024, Korrik
Anonim

Nga bekathwiaBecky SternNdiqni më shumë nga autori:

Miku i privatësisë së kamerës në internet
Miku i privatësisë së kamerës në internet
Miku i privatësisë së kamerës në internet
Miku i privatësisë së kamerës në internet
Matni Shiritin Antena Yagi Me Bashkues të Shtypur 3D
Matni Shiritin Antena Yagi Me Bashkues të Shtypur 3D
Matni Shiritin Antena Yagi Me Bashkues të Shtypur 3D
Matni Shiritin Antena Yagi Me Bashkues të Shtypur 3D
Qëndisje zodiakale
Qëndisje zodiakale
Qëndisje zodiakale
Qëndisje zodiakale

Rreth: Krijimi dhe ndarja janë dy pasionet e mia më të mëdha! Në total kam botuar qindra mësime për gjithçka, nga mikrokontrolluesit tek thurja. Unë jam një motoçiklist i Nju Jorkut dhe nëna qen e papenduar. My wo… Më shumë rreth bekathwia »

Binjakët Binjakë! Double Orko! Dy magjistarë fantazmë nga Bubble-Bobble! Ky kapuç kostumesh mund të jetë çdo krijesë me sy LED që zgjidhni vetëm duke ndryshuar ngjyrat. Këtë projekt e kam bërë për herë të parë në 2015 me një qark dhe kod shumë të thjeshtë, por këtë vit doja të krijoja një version të azhurnuar me kontroll animacioni të njëkohshëm në dy kostume. Ky qark përdor një telekomandë të thjeshtë, me rreze të afërt RF për të kontrolluar dy marrës në të njëjtën frekuencë, dhe kodi Arduino përdor ndërprerje për të arritur ndryshime të animacionit të përgjegjshëm, bazuar në kodin udhëzues të Bill Earl.

Për këtë projekt, do t'ju duhet:

  • Dy xhevahire NeoPixel
  • Mikrokontrollues GEMMA M0
  • Marrësi pa tel 315MHz, lloji i fiksimit
  • Telekomandë RF me valë 315MHz në konfigurim me katër, dy ose një buton
  • Teli i fijeve të veshura me silikon (rekomandohet 30awg)
  • Saldim dhe saldim
  • Zhveshëset e telave
  • Prerës të skuqur
  • Piskatore
  • Mjet ndihmues i dorës së tretë (opsionale)
  • Kunjat e qepjes
  • Shkumës rrobaqepës (opsional)
  • Teli çeliku i galvanizuar 19awg
  • Pëlhurë e trashë për kapuçin/pelerinën (për këtë version kam përdorur dy shtresa pëlhure të bardhë duhani dhe një shtresë napë të bardhë, pastaj e kam veshur pjesën e brendshme të kapakut me ngjyrë të zezë të ngurtë për të bllokuar dritën)
  • Pëlhurë e zezë e tejdukshme për panelin e fytyrës
  • Makine qepese
  • Gërshërë
  • Gjilpërë dhe fije
  • Printer 3D me fije elastike (opsionale)

Për të vazhduar me atë që po punoj, më ndiqni në YouTube, Instagram, Twitter, Pinterest dhe regjistrohuni në gazetën time. Si një Amazon Associate unë fitoj nga blerjet kualifikuese që bëni duke përdorur lidhjet e mia të filialeve.

Para se të filloni, mund të dëshironi të lexoni parakushtet e mëposhtme:

  • Prezantimi i Gemma M0
  • NeoPixel Uberguide
  • Versioni i parë i projektit të kapakut (ndërtuar në 2015 me Gemma klasike dhe pa kontroll wireless)
  • Multitasking Arduino pt 3

Hapi 1: Diagrami dhe Kodi i Qarkut

Diagrami dhe Kodi i Qarkut
Diagrami dhe Kodi i Qarkut

Lidhjet e qarkut janë si më poshtë:

  • Gemma D2 në marrësin pa tel D0
  • Gemma D0 tek marrësi pa tel D1
  • Gemma 3V në marrës pa tel +5V
  • Gemma GND te marrësi pa tel GND dhe xhevahiret NeoPixel GND
  • Të dhënat e xhevahirit Gemma D1 në NeoPixel IN
  • Gemma Vout te bizhuteritë NeoPixel PWR
  • Të dhënat e xhevahirit NeoPixel JASHTI te të dhënave të tjera NeoPixel Jewel IN

Shihni hapin tjetër për shënimet e montimit.

Kodi bazohet në Multi-tasking skicën Arduino nga Bill Earl, dhe modifikuar për të kontrolluar dy xhevahire NeoPixel me dy hyrje dixhitale. Kështu që nuk keni pse të përdorni marrësin pa tel- në vend të tij mund të përdorni butona në vetë qarkun. Shkarkoni këtë skedar të kodit Arduino nga bashkëngjitjet e këtij hapi, ose kopjoni dhe ngjisni nga këtu në një skicë të zbrazët Arduino:

#përfshi "Adafruit_NeoPixel.h"

// Llojet e modeleve të mbështetura: modeli enum {NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Udhëzimet atërore të mbështetura: drejtimi enum {PARA, KTHIMI}; // Klasa NeoPattern - rrjedh nga klasa e klasës Adafruit_NeoPixel NeoPatterns: public Adafruit_NeoPixel {public: // Variablat e anëtarëve: modeli ActivePattern; // cili model po drejton drejtimin Drejtimi; // drejtim për të ekzekutuar modelin Interval i gjatë i panënshkruar; // milisekonda mes përditësimeve të panënshkruara long last Update; // përditësimi i fundit i pozicionit uint32_t Color1, Color2; // Cilat ngjyra janë në përdorim uint16_t TotalSteps; // numri i përgjithshëm i hapave në modelin Indeksi uint16_t; // hapi aktual brenda modelit void (*OnComplete) (); // Thirrja në përfundimin e modelit // Ndërtuesi - thërret konstruktorin e klasës bazë për të inicializuar NeoPatterns strip (uint16_t pixel, uint8_t pin, uint8_t type, void (*callback) ()): Adafruit_NeoPixel (pixel, pin, type) {OnComplete = përgjigje në telefon; } // Përditësoni modelin e pavlefshëm Update () {if ((millis () - lastUpdate)> Interval) // koha për të përditësuar {lastUpdate = millis (); switch (ActivePattern) {case RAINBOW_CYCLE: RainbowCycleUpdate (); pushim; rasti THEATER_CHASE: TheaterChaseUpdate (); pushim; rast COLOR_WIPE: ColorWipeUpdate (); pushim; rasti SCANNER: ScannerUpdate (); pushim; rast FADE: FadeUpdate (); pushim; parazgjedhje: pushim; }}} // Rritja e Indeksit dhe rivendosja në fund të pavlefshme Rritja () {if (Drejtimi == PARA) {Indeksi ++; nëse (Indeksi> = Hapat Total) {Indeksi = 0; nëse (OnComplete! = NULL) {OnComplete (); // telefononi sërish thirrjen e konkurrencës}}} tjetër // Drejtimi == KTHIM {--Indeksi; nëse (Indeksi <= 0) {Indeksi = Totali i hapave-1; nëse (OnComplete! = NULL) {OnComplete (); // telefononi sërish thirrjen e konkurrencës}}}} // Drejtimi i modelit të kundërt void Reverse () {if (Drejtimi == PARA) {Drejtimi = KTHIM; Indeksi = Hapat Total-1; } else {Drejtimi = PARA; Indeksi = 0; }} // Filloni për një zbrazëti RainbowCycle RainbowCycle (intervali uint8_t, drejtimi dir = PARA) {ActivePattern = RAINBOW_CYCLE; Intervali = intervali; Totali i hapave = 255; Indeksi = 0; Drejtimi = dir; } // Përditëso modelin e ciklit të ylberit të zbrazët RainbowCycleUpdate () {për (int i = 0; i <numPixels (); i ++) {setPixelColor (i, Wheel ((((i * 256 / numPixels ())+Indeksi) & 255)); } shfaqje(); Rritje (); } // Initialize for a Theater Chase void TheaterChase (uint32_t color1, uint32_t color2, uint8_t interval, direction dir = FORWARD) {ActivePattern = THEATER_CHASE; Intervali = intervali; TotalSteps = numPixels (); Ngjyra1 = ngjyra1; Ngjyra2 = ngjyra2; Indeksi = 0; Drejtimi = dir; } // Update the Theater Chase Pattern void TheaterChaseUpdate () {for (int i = 0; i <numPixels (); i ++) {if ((i+Index) % 3 == 0) {setPixelColor (i, Color1); } else {setPixelColor (i, Color2); } } shfaqje(); Rritje (); } // Filloni për një ColorWipe void ColorWipe (ngjyra uint32_t, intervali uint8_t, drejtimi dir = PARA) {ActivePattern = COLOR_WIPE; Intervali = intervali; TotalSteps = numPixels (); Ngjyra1 = ngjyra; Indeksi = 0; Drejtimi = dir; } // Përditëso modelin e fshirjes së ngjyrave void ColorWipeUpdate () {setPixelColor (Indeksi, Ngjyra1); shfaqje(); Rritje (); } // Inicimi për një Skaner të zbrazët SCANNNER (uint32_t color1, uint8_t interval) {ActivePattern = SCANNER; Intervali = intervali; Totali i hapave = (numPixels () - 1) * 2; Ngjyra1 = ngjyra1; Indeksi = 0; } // Përditëso modelin e skanerit të pavlefshëm ScannerUpdate () {për (int i = 0; i > 1, E gjelbër (ngjyra) >> 1, Blu (ngjyra) >> 1); kthehu dimColor; } // Vendosni të gjitha pikselët në një ngjyrë (sinkron) të pavlefshme ColorSet (ngjyra uint32_t) {për (int i = 0; i> 16) & 0xFF; } // Kthen përbërësin Green me një ngjyrë 32-bit uint8_t Green (ngjyra uint32_t) {return (ngjyra >> 8) & 0xFF; } // Kthen përbërësin Blu të një ngjyre 32-bitësh uint8_t Blu (ngjyra uint32_t) {ktheje ngjyrën & 0xFF; } // Fut një vlerë 0 deri në 255 për të marrë një vlerë ngjyrash. // Ngjyrat janë një kalim r - g - b - përsëri në r. uint32_t Rrota (byte WheelPos) {WheelPos = 255 - WheelPos; nëse (WheelPos <85) {ktheje Ngjyrën (255 - WheelPos * 3, 0, WheelPos * 3); } tjetër nëse (WheelPos <170) {WheelPos -= 85; kthimi Ngjyra (0, WheelPos * 3, 255 - WheelPos * 3); } tjetër {WheelPos -= 170; kthehu Ngjyra (WheelPos * 3, 255 - WheelPos * 3, 0); }}}; void JewelsComplete (); // Përcaktoni disa NeoPatterns për dy unazat dhe shkopin // si dhe disa rutina përfundimi NeoPatterns Jewels (14, 1, NEO_GRBW + NEO_KHZ800, & JewelsComplete); const int SHKURTRIA = 50; // Filloni gjithçka dhe përgatituni për të filluar void setup () {Serial.begin (115200); pinMode (2, INPUT); pinMode (0, INPUT); // Filloni të gjitha pikselët Jewels.setBrightness (BRIGHTNESS); Bizhuteritë.fillojnë (); // Filloni një model Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 0, 50), 100); } // Loopi i pavlefshëm i lakut kryesor () {// Përditësoni bizhuteritë. Bizhuteritë. Update (); // Ndërroni modelet në një shtypje butoni: if (digitalRead (2) == HIGH) // Butoni #1 i shtypur {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Jewels. TotalSpeps = 100; Jewels. Interval = 1; } else if (digitalRead (0) == LART) // Butoni #2 i shtypur {Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = SCANNER; Jewels. TotalSteps = Jewels.numPixels (); Jewels. Interval = 100; } else // Kthehu në funksionimin normal {// Rivendos të gjithë parametrat e modelit në vlerat normale Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Jewels. Interval = 100; }} // -------------------------------------------------- -------------- // Rutinat e Përfundimit-thirreni në përfundim të një modeli // ---------------------- -------------------------------------- // Përfundimi i xhevahireve Thirrja e pavlefshme JewelsComplete () {// Ndryshim i rastësishëm i ngjyrës për skanimin tjetër // Jewels. Color1 = Jewels. Wheel (i rastësishëm (255)); Bizhuteritë. E kundërta (); }

Hapi 2: Mblidhni qarkun

Mblidhni qarkun
Mblidhni qarkun
Mblidhni qarkun
Mblidhni qarkun

Një grup ndihmësish për kapëset e dorës së tretë mund ta bëjë procesin e bashkimit të telave në përbërës shumë të drejtpërdrejtë dhe argëtues. Por mos u shqetësoni nëse nuk keni një komplet; ju gjithmonë mund të përdorni ndonjë kasetë ose stuko posteri për ta mbajtur bordin tuaj të qëndrueshëm gjatë lidhjes.

Përdorni copa të holla të telit të bllokuar (rreth 6 in/15cmin gjatësi) për lidhjet midis dy xhevahireve NeoPixel (diagrami në hapin e mëparshëm). Nëse përdorni tela shumë të shkurtër, nuk do të jeni në gjendje t'i vendosni sytë tuaj LED mjaft larg njëri -tjetrit, dhe nëse përdorni shumë tela, plogështia do të bjerë në fytyrën tuaj ndërsa jeni të veshur me kostum.

Qarku kryesor do të jetojë në zonën e xhupit (ku gjoksi takon shpatullën tuaj), kështu që për lidhjet midis xhevahirit të parë NeoPixel në zinxhir dhe Gemma, telat do të jenë shumë më të gjata. Ju mund ta mbani tela deri në zonën e syve tuaj dhe ta tërhiqni atë për të matur distancën që tela duhet të përshkojë, pastaj shtoni pak më shumë për zbehje dhe sigurim.

Për t'u lidhur midis Gemma dhe marrësit pa tel, zgjodha të përdor tela prototipizimi me tituj femra, pasi marrësi pa tel tashmë ka bashkëngjitur kunjat e kokës.

Hapi 3: Fuqia e baterisë

Fuqia e baterisë
Fuqia e baterisë
Fuqia e baterisë
Fuqia e baterisë

Për të fuqizuar qarkun, kam përdorur një bateri lipoly 500mAh. Nëse përdorni një bateri lipolike, është e mençur ta mbroni atë nga gërvishtjet, shpimet, gërryerjet, përkuljet dhe abuzimet e tjera. Mund ta mbështillni me ndonjë kasetë të fortë prej pëlhure, ose të bëni një mbajtëse të printuar 3D për të.

Ju mund të përdorni me lehtësi një mbajtëse 3xAAA (mbajeni atë në xhepin tuaj në vend të jakës së xhupit).

Hapi 4: Modeli i Qepjes & Prerja e Pëlhurës

Modeli i Qepjes & Prerja e Pëlhurës
Modeli i Qepjes & Prerja e Pëlhurës

Kam përdorur të njëjtin model që kam krijuar për versionin e parë të këtij kostumi, i cili është një PDF me shumë faqe që bashkohet së bashku për të krijuar pjesët e modelit.

Palosni pëlhurën tuaj, duke i rreshtuar skajet e vegjël për të përafruar kokrrën e rrobave dhe vendosni/vendosni pjesët e modelit të kunjave përgjatë palosjes siç është shënuar. Gjurmoni një shtresë qepjeje jashtë pjesëve të modelit (përveç palosjes) prej rreth 5/8 in/3cm duke përdorur një shkumës ose laps shënues. Meqenëse pëlhura ime ishte e hollë, doja ta dyfishoja, dhe meqë bëra dy kapuçë, përfundova duke prerë katër nga secila pjesë e modelit në pëlhurën kryesore, pastaj një shtresë tjetër në napë gauzy për të shtuar cilësi në pjesën e jashtme, dhe në fund një shtresa prej pëlhure të zezë si rresht për të bllokuar dritën që vjen. Mendoj se nëse e kisha planifikuar më parë për këtë, mund të kisha hequr njërën nga shtresat fillestare të bardha dhe kapakët do të përbëheshin nga vetëm tre shtresa secila në vend të katër.

Hapi 5: Mblidhni Copa Pëlhure

Mblidhni copa pëlhure
Mblidhni copa pëlhure
Mblidhni copa pëlhure
Mblidhni copa pëlhure
Mblidhni copa pëlhure
Mblidhni copa pëlhure
Mblidhni copa pëlhure
Mblidhni copa pëlhure

Mbërtheni dhe qepni shigjetat/qepjet e shpatullave në secilën pjesë të modelit, pastaj rreshtoni pjesët e kapakut dhe kapës përgjatë qepjes së qafës me anët e djathta së bashku. Qepni shtresën, si dhe një qepje drejtpërsëdrejti në majë të kapakut.

Provoni kapuçin. Përkuluni dhe fiksojeni skajin e parë të papërpunuar të kapakut dhe qepeni atë për të krijuar një skaj të pastër, si dhe një kanal që të kalojë një tel.

Tjetra, prerë një copë pëlhurë të zezë të tejdukshme për të mbuluar pjesën e përparme të kapakut. Kjo është ajo që do të mbështesë qarkun dhe do të fshehë fytyrën tuaj. Mbërtheni atë në vend ndërsa mbani kapuçin për përshtatjen më të mirë, pastaj qepeni me dorë ose makinë në hapjen e kapakut.

Hapi 6: Instaloni qarkun në kapuç

Instaloni qarkun në kapuç
Instaloni qarkun në kapuç

Vendosa kapuçin, ndeza qarkun dhe përdorja një pasqyrë për të zbuluar vendndodhjen më të mirë për LED. Pastaj kam përdorur kunjat për të shënuar vendet dhe i kam qepur me kujdes duke përdorur fije të zeza, duke i bashkuar vrimat e montimit në xhevahirët NeoPixel në panelin e përparmë të zi të tejdukshëm. Të miat ulen pikërisht nën sytë e mi të vërtetë, gjë që e bën të lehtë të shohësh përtej tyre.

Shpëlajeni dhe përsëritni nëse jeni duke bërë një kapuç të dytë.

Hapi 7: Vishni

Vishe!
Vishe!
Vishe!
Vishe!
Vishe!
Vishe!
Vishe!
Vishe!

Këto janë shumë argëtuese për tu veshur. Easyshtë e lehtë të shikosh jashtë, dhe nuk është e lehtë për të tjerët të shohin fytyrën tënde. E gjithë gjëja është gjithashtu shumë e rehatshme, falë kapakut të tepërt dhe kornizës së telit, e cila mban pëlhurën e përparme të mos përkulet në fytyrën tuaj.

I dashuri im dhe unë i veshëm këto në DJ të festës së Halloween -it në hackerspace këtë vit, dhe ndërsa mund të shihja ndërfaqen për programin e projektorit lazer, ai nuk mund ta kuptonte fare tekstin e vogël në abelton, kështu që ne duhej ta përshtatnim atë për të pasur një pamje me e mire. E hoqa panelin e rrobave të zeza nga pjesa e sipërme e kapakut dhe e palosa mbi tepricën. Në një dhomë të errët, nuk mund ta dallonit vërtet ndryshimin midis të dyve, megjithëse mund ta shihni në foton tonë së bashku më sipër.

Faleminderit per leximin! Nëse ju pëlqen ky projekt, mund të jeni të interesuar për disa nga të tjerët e mi:

  • 13 ide për shpërndarjen e LED -ve
  • Shenjë e Shiritit të Shpërndarë LED Me Arduino/Bluetooth
  • Numëruesi i pajtimtarëve të YouTube me ESP8266
  • Pasqyrë e lehtë e pafundësisë
  • 3 Gabime Arduino fillestare

Për të vazhduar me atë që po punoj, më ndiqni në YouTube, Instagram, Twitter dhe Pinterest.

Recommended: