Talaan ng mga Nilalaman:

Remote Controlled LED Eyes & Costume Hood: 7 Hakbang (na may Mga Larawan)
Remote Controlled LED Eyes & Costume Hood: 7 Hakbang (na may Mga Larawan)

Video: Remote Controlled LED Eyes & Costume Hood: 7 Hakbang (na may Mga Larawan)

Video: Remote Controlled LED Eyes & Costume Hood: 7 Hakbang (na may Mga Larawan)
Video: A Brief History of the Nissan Z 2024, Hulyo
Anonim

Sa pamamagitan ng bekathwiaBecky SternMasunod Dagdag ng may-akda:

Kaibigan ng Privacy sa Webcam
Kaibigan ng Privacy sa Webcam
Kaibigan ng Privacy sa Webcam
Kaibigan ng Privacy sa Webcam
Sukatin ng Tape ang Yagi Antenna Sa Mga 3D Printed Coupler
Sukatin ng Tape ang Yagi Antenna Sa Mga 3D Printed Coupler
Sukatin ng Tape ang Yagi Antenna Sa Mga 3D Printed Coupler
Sukatin ng Tape ang Yagi Antenna Sa Mga 3D Printed Coupler
Zodiac Embroidery
Zodiac Embroidery
Zodiac Embroidery
Zodiac Embroidery

Tungkol sa: Ang paggawa at pagbabahagi ay ang aking dalawang pinakamalaking kinahihiligan! Sa kabuuan nai-publish ko ang daan-daang mga tutorial tungkol sa lahat mula sa microcontrollers hanggang sa pagniniting. Ako ay isang nagmotorsiklo sa New York City at hindi nagsisising aso na ina. My wo… Higit Pa Tungkol sa bekathwia »

Twin Jawas! Dobleng Orko! Dalawang mga aswang na aswang mula sa Bubble-Bobble! Ang costume hood na ito ay maaaring maging anumang LED-eyed na nilalang na pinili mo sa pamamagitan lamang ng pagbabago ng mga kulay. Una kong ginawa ang proyektong ito noong 2015 sa isang napaka-simpleng circuit at code, ngunit sa taong ito nais kong lumikha ng isang na-upgrade na bersyon na may sabay-sabay na kontrol sa animasyon sa dalawang mga costume. Gumagamit ang circuit na ito ng isang simple, malayuan na RF na malayo upang makontrol ang dalawang mga tatanggap sa parehong dalas, at ang Arduino code na gumagamit ng mga nakakagambala upang makamit ang mga tumutugon na mga pagbabago sa animasyon, batay sa tutorial code ni Bill Earl.

Para sa proyektong ito, kakailanganin mo ang:

  • Dalawang NeoPixel Jewels
  • GEMMA M0 microcontroller
  • 315MHz wireless receiver, uri ng latching
  • 315MHz wireless RF remote sa apat, dalawa, o solong pagsasaayos ng pindutan
  • Ang siladong pinahiran na straced wire (inirerekumenda ng 30awg)
  • Panghinang at bakalang panghinang
  • Mga striper ng wire
  • Mga pamutol ng flush
  • Mga Tweezer
  • Pagtulong sa tool ng pangatlong kamay (opsyonal)
  • Mga pin ng pananahi
  • Tisa ng tisaor (opsyonal)
  • 19awg galvanized steel wire
  • Makapal na tela para sa hood / cape (para sa bersyon na ito gumamit ako ng dalawang layer ng puting tela ng tabako at isang layer ng puting cheesecloth, pagkatapos ay pinahiran ang loob ng hood ng solidong itim upang harangan ang ilaw)
  • Ang translucent na itim na tela para sa panel ng mukha
  • Makinang pantahi
  • Gunting
  • Karayom at sinulid
  • 3D printer na may kakayahang umangkop na filament (opsyonal)

Upang makasabay sa ginagawa ko, sundan ako sa YouTube, Instagram, Twitter, Pinterest, at mag-subscribe sa aking newsletter. Bilang isang Associate sa Amazon kumikita ako mula sa mga kwalipikadong pagbili na iyong ginagawa gamit ang aking mga kaakibat na link.

Bago ka magsimula, baka gusto mong basahin ang mga sumusunod na kinakailangan:

  • Ipinakikilala ang Gemma M0
  • NeoPixel Uberguide
  • Bersyon ng proyekto ng unang hood (itinayo noong 2015 na may klasikong Gemma at walang wireless control)
  • Multitasking the Arduino pt 3

Hakbang 1: Diagram at Code ng Circuit

Circuit Diagram at Code
Circuit Diagram at Code

Ang mga koneksyon sa circuit ay ang mga sumusunod:

  • Ang Gemma D2 sa wireless receiver D0
  • Ang Gemma D0 sa wireless receiver D1
  • Gemma 3V sa wireless receiver + 5V
  • Ang Gemma GND sa wireless receiver GND at NeoPixel na mga hiyas na GND
  • Ang Gemma D1 hanggang NeoPixel data ng hiyas SA
  • Gemma Vout sa NeoPixel na mga hiyas na PWR
  • Ang data ng hiyas ng NeoPixel OUT sa iba pang data ng NeoPixel Jewel IN

Tingnan ang susunod na hakbang para sa mga tala ng pagpupulong.

Ang code ay batay sa Multi-tasking ng Arduino sketch ni Bill Earl, at binago upang makontrol ang dalawang NeoPixel na hiyas na may dalawang digital input. Kaya't hindi mo kailangang gamitin ang wireless receiver-- maaari kang gumamit ng mga pindutan sa mismong circuit sa halip. I-download ang file ng Arduino code na ito mula sa mga kalakip na hakbang na ito, o kopyahin at i-paste mula dito sa isang walang laman na Arduino sketch:

# isama ang "Adafruit_NeoPixel.h"

// Sinusuportahan ang mga uri ng pattern: pattern ng enum {WALA, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Sinusuportahan ang mga direksyon ng ama: direksyon ng enum {FORWARD, REVERSE}; // NeoPattern Class - nagmula sa klase ng klase ng Adafruit_NeoPixel NeoPatterns: public Adafruit_NeoPixel {publiko: // Mga Variable ng Miyembro: pattern na ActivePattern; // aling pattern ang tumatakbo sa direksyon Direksyon; // direksyon upang patakbuhin ang pattern na hindi naka-sign matagal na Interval; // milliseconds sa pagitan ng mga pag-update na hindi nilagdaan matagal na lastUpdate; // huling pag-update ng posisyon uint32_t Kulay1, Kulay2; // Anong mga kulay ang ginagamit uint16_t TotalSteps; // kabuuang bilang ng mga hakbang sa pattern uint16_t Index; // kasalukuyang hakbang sa loob ng pattern na walang bisa (* OnComplete) (); // Callback sa pagkumpleto ng pattern // Cons konstruktor - tumatawag sa base-class konstruktor upang simulan ang strip NeoPatterns (uint16_t pixel, uint8_t pin, uint8_t type, void (* callback) ()): Adafruit_NeoPixel (pixel, pin, type) {OnComplete = callback; } // Update the pattern void Update () {if ((millis () - lastUpdate)> Interval) // time to update {lastUpdate = millis (); switch (ActivePattern) {case RAINBOW_CYCLE: RainbowCycleUpdate (); pahinga; kaso THEATER_CHASE: TheatreChaseUpdate (); pahinga; kaso COLOR_WIPE: ColorWipeUpdate (); pahinga; case SCANNER: ScannerUpdate (); pahinga; kaso FADE: FadeUpdate (); pahinga; default: masira; }}} // Palakihin ang Index at i-reset sa end void Increment () {kung (Direksyon == FORWARD) {Index ++; kung (Index> = TotalSteps) {Index = 0; kung (OnComplete! = NULL) {OnComplete (); // call the comlpetion callback}}} else // Direksyon == REVERSE {--Index; kung (Index <= 0) {Index = TotalSteps-1; kung (OnComplete! = NULL) {OnComplete (); // call the comlpetion callback}}}} // Reverse pattern direction void Reverse () {if (Direction == FORWARD) {Direksyon = REVERSE; Index = TotalSteps-1; } iba pa {Direksyon = FORWARD; Index = 0; }} // Initialize for a RainbowCycle void RainbowCycle (uint8_t interval, direction dir = FORWARD) {ActivePattern = RAINBOW_CYCLE; Agwat = agwat; TotalSteps = 255; Index = 0; Direksyon = dir; } // Update the Rainbow Cycle Pattern void RainbowCycleUpdate () {for (int i = 0; i <numPixels (); i ++) {setPixelColor (i, Wheel (((i * 256 / numPixels ()) + Index) & 255)); } ipakita (); Pagtaas (); } // Initialize for a Theater Chase void TheaterChase (uint32_t color1, uint32_t color2, uint8_t interval, direction dir = FORWARD) {ActivePattern = THEATER_CHASE; Agwat = agwat; TotalSteps = numPixels (); Kulay1 = kulay1; Kulay2 = kulay2; Index = 0; Direksyon = dir; } // Update the Theater Chase Pattern void TheaterChaseUpdate () {for (int i = 0; i <numPixels (); i ++) {if ((i + Index)% 3 == 0) {setPixelColor (i, Color1); } iba pa {setPixelColor (i, Kulay2); }} ipakita (); Pagtaas (); } // Initialize for a ColorWipe void ColorWipe (uint32_t color, uint8_t interval, direction dir = FORWARD) {ActivePattern = COLOR_WIPE; Agwat = agwat; TotalSteps = numPixels (); Kulay1 = kulay; Index = 0; Direksyon = dir; } // I-update ang Kulay na Punasan ang pattern na walang bisa ColorWipeUpdate () {setPixelColor (Index, Color1); ipakita (); Pagtaas (); } // Initialize for a SCANNNER void Scanner (uint32_t color1, uint8_t interval) {ActivePattern = SCANNER; Agwat = agwat; TotalSteps = (numPixels () - 1) * 2; Kulay1 = kulay1; Index = 0; } // I-update ang Scanner Pattern na walang bisa ScannerUpdate () {para sa (int i = 0; i > 1, Green (kulay) >> 1, Blue (kulay) >> 1); ibalik ang dimColor; } // Itakda ang lahat ng mga pixel sa isang kulay (magkasabay) walang bisa ang ColorSet (uint32_t color) {para sa (int i = 0; i> 16) & 0xFF; } // Ibinabalik ang Green na sangkap ng isang 32-bit na kulay uint8_t Green (uint32_t color) {return (color >> 8) & 0xFF; } // Ibinabalik ang Blue na sangkap ng isang 32-bit na kulay uint8_t Blue (uint32_t color) {return color & 0xFF; } // Magpasok ng halagang 0 hanggang 255 upang makakuha ng isang halagang kulay. // Ang mga kulay ay isang paglipat r - g - b - pabalik sa r. uint32_t Wheel (byte WheelPos) {WheelPos = 255 - WheelPos; kung (WheelPos <85) {return Color (255 - WheelPos * 3, 0, WheelPos * 3); } iba pa kung (WheelPos <170) {WheelPos - = 85; ibalik ang Kulay (0, WheelPos * 3, 255 - WheelPos * 3); } iba pa {WheelPos - = 170; ibalik ang Kulay (WheelPos * 3, 255 - WheelPos * 3, 0); }}}; walang bisa ang JewelsComplete (); // Tukuyin ang ilang mga NeoPatterns para sa dalawang singsing at ang stick // pati na rin ang ilang mga nakagawiang pagkumpleto NeoPatterns Jewels (14, 1, NEO_GRBW + NEO_KHZ800, & JewelsComplete); Const int KARAPATAN = 50; // Pasimulan ang lahat at maghanda upang simulan ang void setup () {Serial.begin (115200); pinMode (2, INPUT); pinMode (0, INPUT); // Initialize all the pixels Jewels.setBrightness (BRIGHTNESS); Jewels.begin (); // Kick off a pattern Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 50), 100); } // Pangunahing loop void loop () {// I-update ang mga hiyas. Mga Hiyas. I-update (); // Lumipat ng mga pattern sa isang pindutin ang pindutan: kung (digitalRead (2) == TAAS) // Button # 1 pinindot ang {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Jewels. TotalSteps = 100; Mga Hiyas. Invalid = 1; } iba pa kung (digitalRead (0) == MATAAS) // Button # 2 pinindot ang {Jewels. Color1 = Jewels. Color (255, 0, 0); Mga Jewels. ActivePattern = SCANNER; Jewels. TotalSteps = Jewels.numPixels (); Mga Hiyas. Invalid = 100; } pa // Bumalik sa normal na pagpapatakbo {// Ibalik ang lahat ng mga parameter ng pattern sa mga normal na halagang Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Mga Hiyas. Interval = 100; }} // ----------------- ------------ // Mga Gawi sa Pagkumpleto - tawagan sa pagkumpleto ng isang pattern // ---------------- ---- Random na pagbabago ng kulay para sa susunod na pag-scan //Jewels. Color1 = Jewels. Wheel (random (255)); Mga Hiyas. Rushse (); }

Hakbang 2: Magtipon ng Circuit

Magtipon ng Circuit
Magtipon ng Circuit
Magtipon ng Circuit
Magtipon ng Circuit

Ang isang hanay ng pagtulong sa mga gripping ng pangatlong kamay ay maaaring gawin ang proseso ng mga paghihinang na mga wire sa mga sangkap na napaka prangka at masaya. Ngunit huwag mag-alala kung wala kang isang set; maaari mong palaging gumamit ng ilang tape o poster masilya upang mapanatiling matatag ang iyong board habang naghahihinang ka.

Gumamit ng manipis na mga piraso ng maiiwan tayo na kawad (mga 6in / 15cmin ang haba) para sa mga koneksyon sa pagitan ng dalawang mga alahas na NeoPixel (diagram sa nakaraang hakbang). Kung gagamit ka ng mga wire na masyadong maikli, hindi mo mailalagay ang iyong mga mata na LED nang malayo, at kung gumamit ka ng labis na kawad, ang slack ay makakakuha sa iyong mukha habang suot mo ang costume.

Ang pangunahing circuit ay manirahan sa lugar ng lapel (kung saan natutugunan ng iyong dibdib ang iyong balikat), kaya para sa mga koneksyon sa pagitan ng unang NeoPixel na hiyas sa kadena at sa Gemma, ang mga wire ay magiging mas mahaba. Maaari mong hawakan ang kawad hanggang sa lugar ng iyong mata at iguhit ito upang masukat ang distansya na dapat maglakbay ng wire, pagkatapos ay magdagdag ng kaunti pa para sa slack at insurance.

Upang kumonekta sa pagitan ng Gemma at wireless receiver, pinili kong gumamit ng mga prototyping wires sa mga babaeng header, dahil ang wireless receiver ay mayroon nang naka-attach na mga pin ng header.

Hakbang 3: Lakas ng Baterya

Lakas ng baterya
Lakas ng baterya
Lakas ng baterya
Lakas ng baterya

Upang mapagana ang circuit, gumamit ako ng isang 500mAh lipoly na baterya. Kung gumagamit ng isang lipoly na baterya, matalino na protektahan ito mula sa mga gasgas, mabutas, hadhad, baluktot, at iba pang pang-aabuso. Maaari mo itong balutin sa ilang matibay na tela ng tela, o gumawa ng isang naka-print na lalagyan para dito.

Madali mong magamit ang isang may hawak na 3xAAA sa halip (dalhin ito sa iyong bulsa sa halip na sa loob ng sulapa).

Hakbang 4: pattern ng pananahi at tela ng paggupit

Panahi sa Pananahi at Tela ng Pagputol
Panahi sa Pananahi at Tela ng Pagputol

Ginamit ko ang parehong pattern na nilikha ko para sa unang bersyon ng costume na ito, na kung saan ay isang multi-pahina na PDF na magkakasamang naka-tile upang lumikha ng mga piraso ng pattern.

Tiklupin ang iyong tela, ihanay ang mga gilid na nilihis upang ihanay ang butil ng tela, at ilagay / i-pin ang mga piraso ng pattern sa tiklop na minarkahan. Subaybayan ang isang seam allowance sa labas ng mga piraso ng pattern (maliban sa tiklop) na mga 5 / 8in / 3cm gamit ang isang marka ng tisa o lapis. Dahil manipis ang aking tela, nais kong idoble ito, at dahil gumawa ako ng dalawang hood, natapos ko ang pagputol ng apat sa bawat pattern na piraso sa pangunahing tela, pagkatapos ay isa pang layer sa malambot na cheesecloth upang magdagdag ng pagkakayari sa labas, at sa huli ay layer ng itim na tela bilang isang liner upang harangan ang papasok na ilaw. Sa palagay ko kung plano ko nang maaga para sa na, maaaring mahulog ko ang isa sa mga paunang puting layer at ang mga hood ay binubuo lamang ng tatlong mga layer bawat isa sa halip na apat.

Hakbang 5: Magtipon ng Mga piraso ng tela

Magtipon ng mga piraso ng tela
Magtipon ng mga piraso ng tela
Magtipon ng mga piraso ng tela
Magtipon ng mga piraso ng tela
Magtipon ng mga piraso ng tela
Magtipon ng mga piraso ng tela
Magtipon ng mga piraso ng tela
Magtipon ng mga piraso ng tela

I-pin at tahiin ang mga dart / seam ng balikat sa bawat pattern na piraso, pagkatapos ay ihanay ang mga piraso ng hood at cape kasama ang seam ng leeg na may kanang gilid. Tusok ang tahi, pati na rin ang isang tahi tuwid sa tuktok ng hood.

Subukan sa hood. Tiklupin at i-pin ang hilaw na front edge ng hood at i-stitch ito pababa upang lumikha ng isang maayos na gilid pati na rin ang isang channel para sa isang wire na dumaan.

Susunod, gupitin ang isang bilugan na piraso ng manipis na itim na tela upang takpan ang harap ng hood. Ito ang susuporta sa circuit at itatago ang iyong mukha. I-pin ito sa lugar habang suot ang hood para sa pinakaangkop, pagkatapos ay itatahi ito ng kamay o makina sa pagbubukas ng hood.

Hakbang 6: I-install ang Circuit sa Hood

I-install ang Circuit sa Hood
I-install ang Circuit sa Hood

Inilagay ko ang hood, binuksan ang circuit, at ginamit ang isang salamin upang masuri ang pinakamagandang lokasyon para sa mga LED. Pagkatapos ay gumamit ako ng mga pin upang markahan ang mga lokasyon at maingat na na-stitched gamit ang itim na thread, na nakakabit ang mga tumataas na butas sa mga hiyas ng NeoPixel sa sobrang itim na front panel. Ang aking pag-upo ay nasa ibaba lamang ng aking totoong mga mata, na ginagawang madali upang makita ang nakaraan.

Banlawan at ulitin kung gumagawa ka ng isang pangalawang hood.

Hakbang 7: Isusuot Ito

Suotin mo!
Suotin mo!
Suotin mo!
Suotin mo!
Suotin mo!
Suotin mo!
Suotin mo!
Suotin mo!

Ang mga ito ay labis na nakakatuwang isuot. Madaling makita ito, at hindi madali para makita ng iba ang iyong mukha. Ang buong bagay ay medyo komportable din, salamat sa sobrang laki ng hood at wire frame, na pinipigilan ang harap na tela mula sa pag-drap sa iyong mukha.

Sinuot namin ito ng kasintahan ko sa DJ na party ng aking hackerspace sa taong ito, at habang nakikita ko ang interface para sa software ng projector ng laser, hindi niya matukoy ang maliit na teksto sa abelton, kaya kailangan naming iangkop sa kanya upang magkaroon ng mas mahusay na pagtingin. Inalis ko ang itim na panel ng tela mula sa tuktok na piraso ng hood, at nakatiklop sa labis. Sa isang madilim na silid, hindi mo talaga masabi ang pagkakaiba ng dalawa, kahit na makikita mo ito sa larawan namin na magkasama sa itaas.

Salamat sa pagbabasa! Kung gusto mo ang proyektong ito, maaaring interesado ka sa ilan pa sa aking iba:

  • 13 Mga Ideya para sa Diffusing LEDs
  • Diffuse LED Strip Sign With Arduino / Bluetooth
  • Counter ng Subscriber ng YouTube na may ESP8266
  • Madaling Infinity Mirror
  • 3 Mga Bagay na Arduino Mistakes

Upang makasabay sa ginagawa ko, sundan ako sa YouTube, Instagram, Twitter, at Pinterest.

Inirerekumendang: