Sadržaj:

LED kapice za oči i kostim s daljinskim upravljanjem: 7 koraka (sa slikama)
LED kapice za oči i kostim s daljinskim upravljanjem: 7 koraka (sa slikama)

Video: LED kapice za oči i kostim s daljinskim upravljanjem: 7 koraka (sa slikama)

Video: LED kapice za oči i kostim s daljinskim upravljanjem: 7 koraka (sa slikama)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Studeni
Anonim

By bekathwiaBecky SternFollow Više od autora:

Prijatelj web kamere
Prijatelj web kamere
Prijatelj web kamere
Prijatelj web kamere
Mjerna traka Yagi antena s 3D ispisanim spojnicama
Mjerna traka Yagi antena s 3D ispisanim spojnicama
Mjerna traka Yagi antena s 3D ispisanim spojnicama
Mjerna traka Yagi antena s 3D ispisanim spojnicama
Zodijački vez
Zodijački vez
Zodijački vez
Zodijački vez

O: Izrada i dijeljenje moje su dvije najveće strasti! Ukupno sam objavio stotine vodiča o svemu, od mikrokontrolera do pletenja. Ja sam motoristkinja iz New Yorka i mama neprestanog psa. Moje wo … Više o bekathwia »

Blizanac Jawas! Dvostruki Orko! Dva čarobnjaka duhova iz Bubble-Bobblea! Ova kapuljača može biti bilo koje stvorenje sa LED očima koje odaberete samo promjenom boja. Ovaj sam projekt prvi put napravio 2015. godine s vrlo jednostavnim sklopom i kodom, no ove sam godine želio stvoriti nadograđenu verziju s istovremenom kontrolom animacije u dva kostima. Ovaj sklop koristi jedan jednostavan RF daljinski upravljač bliskog dometa za upravljanje s dva prijemnika na istoj frekvenciji, a Arduino kôd koji koristi prekide za postizanje osjetljivih promjena animacije, temeljen na tutorial kodu Billa Earla.

Za ovaj projekt trebat će vam:

  • Dva dragulja NeoPixel
  • GEMMA M0 mikrokontroler
  • Bežični prijemnik 315MHz, tip zasuna
  • Bežični RF daljinski upravljač na 315 MHz u konfiguraciji s četiri, dva ili jednim gumbom
  • Žičana žica obložena silikonom (preporučeno 30 awg)
  • Lemilica i lemljenje
  • Skidači žica
  • Rezači za ispiranje
  • Pinceta
  • Pomoćni alat iz treće ruke (izborno)
  • Igle za šivanje
  • Krojačka kreda (izborno)
  • 19awg pocinčana čelična žica
  • Debela tkanina za kapuljaču/ogrtač (za ovu sam verziju upotrijebio dva sloja bijele duhanske tkanine i jedan sloj bijele gaze, a zatim obložio unutrašnjost nape čvrstom crnom bojom kako bih blokirao svjetlo)
  • Prozirna crna tkanina za prednju ploču
  • Mašina za šivanje
  • Škare
  • Igla i konac
  • 3D pisač s fleksibilnom niti (po izboru)

Da biste bili u toku s onim na čemu radim, pratite me na YouTubeu, Instagramu, Twitteru, Pinterestu i pretplatite se na moj bilten. Kao suradnik Amazona zarađujem od kvalificiranih kupnji koje izvršite pomoću mojih partnerskih veza.

Prije nego što počnete, možda ćete htjeti pročitati sljedeće preduvjete:

  • Predstavljamo Gemmu M0
  • NeoPixel Uberguide
  • Prva verzija projekta haube (izgrađena 2015. s klasičnom Gemmom i bez bežične kontrole)
  • Više zadataka za Arduino pt 3

Korak 1: Dijagram i kod

Dijagram i kod
Dijagram i kod

Spojevi kruga su sljedeći:

  • Gemma D2 na bežični prijemnik D0
  • Gemma D0 na bežični prijemnik D1
  • Gemma 3V na bežični prijemnik +5V
  • Gemma GND na bežični prijemnik GND i NeoPixel dragulji GND
  • Podaci Gemme D1 o NeoPixel draguljima IN
  • Gemma Vout do NeoPixel dragulja PWR
  • NeoPixel jewel podaci OUT drugim neoPixel Jewel podacima IN

Bilješke o montaži pogledajte u sljedećem koraku.

Kôd se temelji na višenamjenskoj Arduino skici Billa Earla i modificiranom za kontrolu dva NeoPixel dragulja s dva digitalna ulaza. Dakle, ne morate koristiti bežični prijemnik- umjesto toga možete koristiti gumbe na samom krugu. Preuzmite ovu Arduino kodnu datoteku iz privitaka ovog koraka ili kopirajte i zalijepite odavde u praznu Arduino skicu:

#include "Adafruit_NeoPixel.h"

// Podržane vrste uzoraka: uzorak nabrajanja {NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Podržani smjerovi šablona: smjer nabrajanja {FORWARD, REVERSE}; // NeoPattern Class - izvedeno iz klase klase Adafruit_NeoPixel NeoPatterns: javno Adafruit_NeoPixel {public: // Varijable člana: pattern ActivePattern; // koji uzorak vodi smjer Direction; // smjer za pokretanje uzorka unsigned long Interval; // milisekunde između ažuriranja unsigned long lastUpdate; // posljednje ažuriranje pozicije uint32_t Color1, Color2; // Koje se boje koriste uint16_t TotalSteps; // ukupan broj koraka u uzorku uint16_t Index; // trenutni korak unutar uzorka void (*OnComplete) (); // Povratni poziv po dovršetku uzorka // Konstruktor - poziva konstruktor osnovne klase za inicijalizaciju tračnih NeoPatterns (uint16_t piksela, uint8_t pin, uint8_t tip, void (*povratni poziv) ()): Adafruit_NeoPixel (pikseli, pin, tip) {OnComplete = uzvratiti poziv; } // Ažuriranje uzorka void Update () {if ((millis () - lastUpdate)> Interval) // vrijeme za ažuriranje {lastUpdate = millis (); switch (ActivePattern) {case RAINBOW_CYCLE: RainbowCycleUpdate (); pauza; slučaj THEATER_CHASE: TheaterChaseUpdate (); pauza; kućište COLOR_WIPE: ColorWipeUpdate (); pauza; slučaj SCANNER: ScannerUpdate (); pauza; slučaj FADE: FadeUpdate (); pauza; zadano: break; }}} // Povećajte Indeks i resetirajte na kraju void Increment () {if (Direction == FORWARD) {Index ++; if (Indeks> = Ukupni koraci) {Indeks = 0; if (OnComplete! = NULL) {OnComplete (); // pozivanje povratnog poziva za usklađivanje}}} else // Smjer == REVERSE {--Index; if (Indeks <= 0) {Indeks = TotalSteps-1; if (OnComplete! = NULL) {OnComplete (); // pozivanje povratnog poziva komlpecije}}}} // Obrnuti smjer uzorka void Reverse () {if (Direction == FORWARD) {Direction = REVERSE; Indeks = TotalSteps-1; } else {Smjer = NAPRIJED; Indeks = 0; }} // Inicijalizacija za RainbowCycle void RainbowCycle (interval uint8_t, smjer dir = NAPRIJED) {ActivePattern = RAINBOW_CYCLE; Interval = interval; Ukupni koraci = 255; Indeks = 0; Smjer = dir; } // Ažuriraj Rainbow Cycle Pattern void RainbowCycleUpdate () {for (int i = 0; i <numPixels (); i ++) {setPixelColor (i, Wheel (((i * 256 / numPixels ())+Index) & 255)); } show (); Povećanje (); } // Pokreni za kazališnu potjeru void TheaterChase (uint32_t color1, uint32_t color2, uint8_t interval, smjer dir = NAPRIJED) {ActivePattern = THEATER_CHASE; Interval = interval; Ukupni koraci = numPixels (); Boja1 = boja1; Boja2 = boja2; Indeks = 0; Smjer = dir; } // Ažuriraj Theatre Chase Pattern void TheaterChaseUpdate () {for (int i = 0; i <numPixels (); i ++) {if ((i+Index) % 3 == 0) {setPixelColor (i, Color1); } else {setPixelColor (i, Color2); }} pokazati (); Povećanje (); } // Inicijalizacija za ColorWipe void ColorWipe (boja uint32_t, interval uint8_t, smjer dir = NAPRIJED) {ActivePattern = COLOR_WIPE; Interval = interval; Ukupni koraci = numPixels (); Boja1 = boja; Indeks = 0; Smjer = dir; } // Ažuriraj uzorak brisanja boja void ColorWipeUpdate () {setPixelColor (Index, Color1); pokazati(); Povećanje (); } // Inicijalizacija za SCANNNER void Scanner (uint32_t color1, uint8_t interval) {ActivePattern = SCANNER; Interval = interval; Ukupni koraci = (broj piksela () - 1) * 2; Boja1 = boja1; Indeks = 0; } // Ažuriranje uzorka skenera void ScannerUpdate () {for (int i = 0; i > 1, zelena (boja) >> 1, plava (boja) >> 1); povratak dimColor; } // Postavi sve piksele u boju (sinkrono) void ColorSet (boja uint32_t) {for (int i = 0; i> 16) & 0xFF; } // Vraća zelenu komponentu 32-bitne boje uint8_t zeleno (uint32_t boja) {return (boja >> 8) & 0xFF; } // Vraća Plavu komponentu 32-bitne boje uint8_t Plava (uint32_t boja) {return color & 0xFF; } // Unesite vrijednost od 0 do 255 da biste dobili vrijednost boje. // Boje su prijelaz r - g - b - natrag u r. uint32_t Kotač (byte 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 boja (WheelPos * 3, 255 - WheelPos * 3, 0); }}}; void JewelsComplete (); // Definiraj neke NeoPatterns za dva prstena i štap // kao i neke rutine dovršavanja NeoPatterns Jewels (14, 1, NEO_GRBW + NEO_KHZ800, & JewelsComplete); const int SVJETLOST = 50; // Inicijalizirajte sve i pripremite se za pokretanje void setup () {Serial.begin (115200); pinMode (2, INPUT); pinMode (0, INPUT); // Pokrećemo sve piksele Jewels.setBrightness (BRIGHTNESS); Dragulji.početak (); // Kick off a pattern Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 0, 50), 100); } // Glavna petlja void loop () {// Ažuriranje dragulja. Dragulji. Update (); // Uključivanje uzoraka pri pritisku gumba: if (digitalRead (2) == HIGH) // Pritisnuto dugme #1 {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Dragulji. UkupnoKoraci = 100; Dragulji. Interval = 1; } else if (digitalRead (0) == HIGH) // Pritisnite gumb #2 {Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = SCANNER; Jewels. TotalSteps = Jewels.numPixels (); Dragulji. Interval = 100; } else // Natrag na normalan rad {// Vraćanje svih parametara uzorka na normalne vrijednosti Jewels. Color1 = Jewels. Color (255, 50, 0); Dragulji. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Dragulji. Interval = 100; }} // ---------------------------------------------- -------------- // Rutine dovršavanja-pozvati vas nakon dovršetka uzorka // ---------------------- -------------------------------------- // Dragulji dovršetak Povratni poziv void JewelsComplete () {// Slučajna promjena boje za sljedeće skeniranje //Jewels. Color1 = Jewels. Wheel (random (255)); Dragulji. Obrni (); }

Korak 2: Sastavite krug

Sastavite krug
Sastavite krug
Sastavite krug
Sastavite krug

Skup pomoćnih hvataljki iz trećih ruku može učiniti proces lemljenja žica na komponente vrlo jednostavnim i zabavnim. Ali ne brinite ako nemate komplet; uvijek možete koristiti neku traku ili kit za postere kako biste održali ploču stabilnom dok lemite.

Za spajanje dva dragulja NeoPixel (dijagram u prethodnom koraku) upotrijebite tanke komade nasukane žice (duljine oko 6 inča/15 cm). Ako koristite prekratke žice, nećete moći postaviti LED oči dovoljno udaljene jedna od druge, a ako koristite previše žice, opuštanje će vam ući u lice dok nosite kostim.

Glavni krug živjet će u području revera (gdje vam se prsa susreću s ramenom), pa će za veze između prvog NeoPixel dragulja u lancu i Gemme žice biti mnogo duže. Možete držati žicu do područja oko očiju i izvući je kako biste izmjerili udaljenost koju bi žica trebala prijeći, a zatim dodati još malo za opuštanje i osiguranje.

Za povezivanje između Gemme i bežičnog prijemnika odlučio sam koristiti prototipiranje žica sa ženskim zaglavljima, budući da bežični prijamnik već ima priključene pinove zaglavlja.

Korak 3: Napajanje baterije

Napajanje baterije
Napajanje baterije
Napajanje baterije
Napajanje baterije

Za napajanje kruga koristio sam lipolnu bateriju od 500mAh. Ako koristite bateriju od lipola, pametno je zaštititi je od ogrebotina, uboda, ogrebotina, savijanja i drugih zlouporaba. Mogli biste ga umotati u neku čvrstu traku od tkanine ili za njega napraviti 3D tiskani držač.

Umjesto toga možete jednostavno koristiti držač 3xAAA (nositi ga u džepu umjesto u reveru).

Korak 4: Uzorak za šivanje i rezanje tkanine

Uzorak za šivanje i tkanina za rezanje
Uzorak za šivanje i tkanina za rezanje

Koristio sam isti uzorak koji sam stvorio za prvu verziju ovog kostima, a to je PDF na više stranica koji spaja pločice kako bi stvorio komade uzoraka.

Presavijte tkaninu, poravnavajući rubove rubova kako biste poravnali zrna tkanine, te postavite/pričvrstite komade uzorka duž presavijanja kako je označeno. Pomoću krede za označavanje ili olovke iscrtajte dodatak šava izvan uzoraka (osim preklopa) od oko 5/8in/3 cm. Budući da mi je tkanina bila tanka, htio sam je udvostručiti, a budući da sam napravio dvije kapuljače, na kraju sam izrezao po četiri komada svakog uzorka u glavnoj tkanini, zatim još jedan sloj u prozirnoj gazi za dodavanje teksture izvana, i na kraju sloj crne tkanine kao košuljica za blokiranje ulaska svjetlosti. Mislim da sam unaprijed to planirao, mogao sam ispustiti jedan od početnih bijelih slojeva, a kapuljače bi se sastojale od samo tri sloja umjesto četiri.

Korak 5: Sastavite komade tkanine

Sastavite komade tkanine
Sastavite komade tkanine
Sastavite komade tkanine
Sastavite komade tkanine
Sastavite komade tkanine
Sastavite komade tkanine
Sastavite komade tkanine
Sastavite komade tkanine

Zakačite i sašite pikado/ramene šavove na svakom uzorku, a zatim poravnajte dijelove kapuljače i ogrtača duž šava vrata s desnim stranama zajedno. Prošijte šav, kao i šav ravno preko vrha kapuljače.

Isprobajte haubu. Presavijte i pričvrstite sirovi prednji rub nape i zašijete je prema dolje kako biste stvorili uredan rub, kao i kanal za prolaz žice.

Zatim izrežite okrugli komad prozirne crne tkanine kako biste prekrili prednji dio nape. To će podržati krug i sakriti vaše lice. Pričvrstite ga dok nosite kapuljaču za najbolje prianjanje, a zatim ga ručno ili strojno zašijte do otvora nape.

Korak 6: Instalirajte krug u haubu

Ugradite krug u haubu
Ugradite krug u haubu

Stavio sam napa, uključio strujni krug i pomoću ogledala procijenio najbolje mjesto za LED diode. Zatim sam upotrijebio igle za označavanje mjesta i pažljivo ih prošio crnim koncem, pričvršćujući rupe za pričvršćivanje na NeoPixel draguljima na prozirnu crnu prednju ploču. Moje sjede tik ispod mojih pravih očiju, što ih čini lakim za vidjeti pokraj njih.

Isperite i ponovite ako radite drugu kapuljaču.

Korak 7: Nosite ga

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

Tako ih je zabavno nositi. Lako je vidjeti, a drugima nije lako vidjeti vaše lice. Cijela je stvar također prilično udobna, zahvaljujući prevelikoj kapuljači i žičanom okviru, koji spriječava da vam se prednja tkanina navlači na lice.

Moj dečko i ja nosili smo ih ove godine za DJ Noć vještica svog hackerspacea, a ja sam mogao vidjeti sučelje za softver laserskog projektora, ali nije mogao razaznati sićušni tekst u abeltonu, pa smo morali prilagoditi njegov bolji pogled. Uklonio sam ploču od crne tkanine s gornjeg dijela nape i presavio je višak. U mračnoj prostoriji niste mogli razlikovati ovo dvoje, iako to možete vidjeti na gornjoj fotografiji.

Hvala na čitanju! Ako vam se sviđa ovaj projekt, možda će vas zanimati neki od mojih drugih:

  • 13 ideja za difuzne LED diode
  • Difuzni LED trakasti znak s Arduinom/Bluetooth -om
  • Brojač pretplatnika na YouTubeu s ESP8266
  • Lako beskonačno ogledalo
  • 3 Arduino pogreške za početnike

Da biste bili u toku s onim na čemu radim, pratite me na YouTubeu, Instagramu, Twitteru i Pinterestu.

Preporučeni: