INHOUDSOPGAWE:

Afstandsbediende LED -oë en kostuumkap: 7 stappe (met foto's)
Afstandsbediende LED -oë en kostuumkap: 7 stappe (met foto's)

Video: Afstandsbediende LED -oë en kostuumkap: 7 stappe (met foto's)

Video: Afstandsbediende LED -oë en kostuumkap: 7 stappe (met foto's)
Video: POLITIE PROOF BEGRENZER PIAGGIO ZIP | VOL GAS MET JOEY 2024, November
Anonim

Deur bekathwiaBecky Stern Volg meer deur die skrywer:

Webcam Privaatheid Vriend
Webcam Privaatheid Vriend
Webcam Privaatheid Vriend
Webcam Privaatheid Vriend
Meetmaat Yagi -antenne met 3D -gedrukte koppelaars
Meetmaat Yagi -antenne met 3D -gedrukte koppelaars
Meetmaat Yagi -antenne met 3D -gedrukte koppelaars
Meetmaat Yagi -antenne met 3D -gedrukte koppelaars
Zodiac borduurwerk
Zodiac borduurwerk
Zodiac borduurwerk
Zodiac borduurwerk

Oor: Maak en deel is my twee grootste passies! In totaal het ek honderde tutoriale gepubliseer oor alles, van mikrobeheerders tot breiwerk. Ek is 'n motorfietsryer in New York en 'n hond wat nie berou het nie. My wo… Meer oor bekathwia »

Tweeling Jawas! Dubbele Orko! Twee spook towenaars van Bubble-Bobble! Hierdie kostuumkap kan enige wese met LED-oë wees wat u kies net deur die kleure te verander. Ek het hierdie projek vir die eerste keer in 2015 gemaak met 'n baie eenvoudige kring en kode, maar hierdie jaar wou ek 'n opgegradeerde weergawe met gelyktydige animasiebeheer oor twee kostuums skep. Hierdie kring gebruik 'n eenvoudige RF-afstandsbediening van naby om twee ontvangers op dieselfde frekwensie te beheer, en Arduino-kode gebruik onderbrekings om responsiewe animasieveranderings te bewerkstellig, gebaseer op Bill Earl se tutoriaalkode.

Vir hierdie projek benodig u:

  • Twee NeoPixel -juwele
  • GEMMA M0 mikrobeheerder
  • 315MHz draadlose ontvanger, sluit tipe
  • 315MHz draadlose RF -afstandsbediening in vier, twee of enkele knoppies
  • Gestrande draad met silikoon bedek (30awg aanbeveel)
  • Soldeerbout en soldeer
  • Draadstroppers
  • Spoel snyers
  • Pincet
  • Helpende derdehandse hulpmiddel (opsioneel)
  • Naaipenne
  • Kleermaker (opsioneel)
  • 19awg gegalvaniseerde staaldraad
  • Dik stof vir kappie/kap
  • Deurskynende swart stof vir gesigpaneel
  • Naaimasjien
  • Skêr
  • Naald en garing
  • 3D -drukker met buigsame filament (opsioneel)

Volg my op YouTube, Instagram, Twitter, Pinterest en teken in op my nuusbrief om tred te hou met waaraan ek werk. As Amazon -medewerker verdien ek uit kwalifiserende aankope wat u doen met my aangeslote skakels.

Voordat u begin, wil u moontlik die volgende voorvereistes lees:

  • Ons stel Gemma M0 bekend
  • NeoPixel Uberguide
  • Eerste kap -projekweergawe (gebou in 2015 met klassieke Gemma en geen draadlose beheer nie)
  • Multitaak die Arduino pt 3

Stap 1: Kringdiagram en kode

Kringdiagram en kode
Kringdiagram en kode

Die kringverbindings is soos volg:

  • Gemma D2 na draadlose ontvanger D0
  • Gemma D0 na draadlose ontvanger D1
  • Gemma 3V na draadlose ontvanger +5V
  • Gemma GND na draadlose ontvanger GND en NeoPixel juwele GND
  • Gemma D1 na NeoPixel juweeldata IN
  • Gemma Vout na NeoPixel juwele PWR
  • NeoPixel juweel data OUT na ander NeoPixel Jewel data IN

Sien die volgende stap vir monteeraantekeninge.

Die kode is gebaseer op die multi-tasking van die Arduino-skets deur Bill Earl, en aangepas om twee NeoPixel-juwele met twee digitale insette te beheer. U hoef dus nie die draadlose ontvanger te gebruik nie- u kan eerder knoppies op die kring self gebruik. Laai hierdie Arduino -kode -lêer af van die aanhangsels van hierdie stap, of kopieer en plak dit hier in 'n leë Arduino -skets:

#sluit "Adafruit_NeoPixel.h" in

// Patroontipes ondersteun: enumpatroon {NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Patern -aanwysings ondersteun: enum -rigting {VOORUIT, OMKEER}; // NeoPattern Class - afgelei van die Adafruit_NeoPixel klas klas NeoPatterns: public Adafruit_NeoPixel {public: // Member Variables: patroon ActivePattern; // watter patroon loop rigting Rigting; // rigting om die patroon ongeteken lang interval te laat loop; // millisekondes tussen opdaterings ongetekend lang laasteUpdate; // laaste opdatering van posisie uint32_t Kleur1, Kleur2; // Watter kleure word gebruik uint16_t TotalSteps; // totale aantal stappe in die patroon uint16_t Index; // huidige stap binne die patroon leegte (*OnComplete) (); // Terugbel na voltooiing van patroon // Konstrukteur - oproep van baseklaskonstrukteur om strook NeoPatterns (uint16_t pixels, uint8_t pin, uint8_t type, void (*callback) ()) te initialiseer: Adafruit_NeoPixel (pixels, pin, type) {OnComplete = terugbel; } // Dateer die patroon leegmaak op () {if ((millis () - lastUpdate)> Interval) // tyd om {lastUpdate = millis () op te dateer; skakelaar (ActivePattern) {saak RAINBOW_CYCLE: RainbowCycleUpdate (); breek; saak THEATER_CHASE: TheatreChaseUpdate (); breek; saak COLOR_WIPE: ColorWipeUpdate (); breek; geval SCANNER: ScannerUpdate (); breek; saak FADE: FadeUpdate (); breek; verstek: breek; }}}} // Verhoog die indeks en herstel aan die einde leegte Toename () {if (rigting == VOORUIT) {indeks ++; as (Indeks> = Totaalstappe) {Indeks = 0; if (OnComplete! = NULL) {OnComplete (); // bel die kompliment terugbel}}} anders // Direction == REVERSE {--Index; if (Indeks <= 0) {Index = TotalSteps-1; if (OnComplete! = NULL) {OnComplete (); // bel die terugroep terug}}}} // Omgekeerde patroonrigting leegte Reverse () {if (Direction == FORWARD) {Direction = REVERSE; Indeks = Totaalstappe-1; } anders {Rigting = VOORUIT; Indeks = 0; }}} // Initialiseer vir 'n leë RainbowCycle -leë RainbowCycle (uint8_t interval, rigting dir = VOORUIT) {ActivePattern = RAINBOW_CYCLE; Interval = interval; Totale stappe = 255; Indeks = 0; Rigting = rigting; } // Werk die Rainbow Cycle Pattern leegte op RainbowCycleUpdate () {for (int i = 0; i <numPixels (); i ++) {setPixelColor (i, Wheel (((i * 256 / numPixels ())+Index) & 255)); } Wys(); Toename (); } // Initialiseer vir 'n Theatre Chase -leë TheaterChase (uint32_t color1, uint32_t color2, uint8_t interval, direction dir = FORWARD) {ActivePattern = THEATER_CHASE; Interval = interval; TotalSteps = numPixels (); Kleur1 = kleur1; Kleur2 = kleur2; Indeks = 0; Rigting = rigting; } // Werk die Theater Chase -patroon leegte TheaterChaseUpdate () {vir (int i = 0; i <numPixels (); i ++) {if ((i+Index) % 3 == 0) {setPixelColor (i, Color1) op; } anders {setPixelColor (i, Color2); } } Wys(); Toename (); } // Initialiseer vir 'n ColorWipe -leemte ColorWipe (uint32_t -kleur, uint8_t -interval, rigting dir = FORWARD) {ActivePattern = COLOR_WIPE; Interval = interval; TotalSteps = numPixels (); Kleur1 = kleur; Indeks = 0; Rigting = rigting; } // Dateer die kleurveegpatroon op, ongeldig ColorWipeUpdate () {setPixelColor (indeks, kleur1); Wys(); Toename (); } // Initialiseer vir 'n SCANNNER -leemte -skandeerder (uint32_t color1, uint8_t interval) {ActivePattern = SCANNER; Interval = interval; TotalSteps = (numPixels () - 1) * 2; Kleur1 = kleur1; Indeks = 0; } // Dateer die skandeerderpatroon leeg op ScannerUpdate () {vir (int i = 0; i > 1, groen (kleur) >> 1, blou (kleur) >> 1); gee dimColor terug; } // Stel alle pixels in 'n kleur (sinchronies) leeg ColorSet (uint32_t kleur) {vir (int i = 0; i> 16) & 0xFF; } // Wys die groen komponent van 'n 32-bis kleur uint8_t Green (uint32_t kleur) {return (kleur >> 8) & 0xFF; } // Wys die blou komponent van 'n 32-bis kleur uint8_t Blue (uint32_t kleur) {return color & 0xFF; } // Voer 'n waarde 0 tot 255 in om 'n kleurwaarde te kry. // Die kleure is 'n oorgang r - g - b - terug na r. uint32_t Wheel (byte WheelPos) {WheelPos = 255 - WheelPos; as (WheelPos <85) {return Color (255 - WheelPos * 3, 0, WheelPos * 3); } anders as (WheelPos <170) {WheelPos -= 85; gee kleur (0, WheelPos * 3, 255 - WheelPos * 3); } anders {WheelPos -= 170; retourkleur (WheelPos * 3, 255 - WheelPos * 3, 0); }}}; void JewelsComplete (); // Definieer 'n paar NeoPatterns vir die twee ringe en die stok // asook 'n paar voltooiingsroetines NeoPatterns Jewels (14, 1, NEO_GRBW + NEO_KHZ800, en JewelsComplete); const int BRIGHTNESS = 50; // Begin alles en berei u voor om die opstel van leemte () {Serial.begin (115200) te begin; pinMode (2, INVOER); pinMode (0, INVOER); // Initialiseer al die pixels Jewels.setBrightness (BRIGHTNESS); Jewels.begin (); // Begin 'n patroon Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 0, 50), 100); } // Hoofluslus leemte () {// Dateer die juwele op. Jewels. Update (); // Skakel patrone op 'n knoppie druk: as (digitalRead (2) == HOOG) // Knoppie #1 ingedruk {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Jewels. TotalSteps = 100; Juwele. Interval = 1; } anders as (digitalRead (0) == HOOG) // Knoppie #2 ingedruk {Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = SCANNER; Jewels. TotalSteps = Jewels.numPixels (); Juwele. Interval = 100; } anders // Terug na normale werking {// Herstel alle patroonparameters na normale waardes Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Juwele. Interval = 100; }} // ---------------------------------------------- -------------- // Voltooiingsroetines-word gebel na voltooiing van 'n patroon // ---------------------- -------------------------------------- // Jewels Voltooiing Terugbel ongeldig JewelsComplete () {// Willekeurige kleurverandering vir volgende skandering //Jewels. Color1 = Jewels. Wheel (random (255)); Jewels. Reverse (); }

Stap 2: Monteer die stroombaan

Monteer stroombaan
Monteer stroombaan
Monteer stroombaan
Monteer stroombaan

'N Hulpmiddel om derdehandse grijpers te help, kan die proses om drade aan komponente te soldeer baie eenvoudig en pret maak. Maar moenie bekommerd wees as u nie 'n stel het nie; U kan altyd 'n plakband of plakkaatverf gebruik om u bord stabiel te hou terwyl u soldeer.

Gebruik dun stukke gestrande draad (ongeveer 15 cm lank) vir die verbindings tussen die twee NeoPixel -juwele (diagram in die vorige stap). As u te kort drade gebruik, kan u u LED -oë nie ver genoeg uitmekaar sit nie, en as u te veel draad gebruik, kom die slap in u gesig terwyl u die kostuum dra.

Die hoofkring sal in die lapel -area woon (waar jou bors jou skouer ontmoet), so vir die verbindings tussen die eerste NeoPixel -juweel in die ketting en die Gemma, sal die drade baie langer wees. U kan die draad tot by u ooggebied hou en dit uittrek om die afstand wat die draad moet aflê, te meet, en dan 'n bietjie meer byvoeg vir verslanking en versekering.

Om tussen die Gemma en die draadlose ontvanger te skakel, het ek gekies om prototipe drade met vroulike kopstukke te gebruik, aangesien die draadlose ontvanger reeds kopstukke aangeheg het.

Stap 3: Batterykrag

Batterykrag
Batterykrag
Batterykrag
Batterykrag

Om die stroombaan aan te dryf, het ek 'n 500 mAh lipolybattery gebruik. As u 'n lipolybattery gebruik, is dit raadsaam om dit te beskerm teen skrape, gate, skuur, buiging en ander mishandeling. Jy kan dit in 'n stewige stofband draai, of 'n 3D -gedrukte houer daarvoor maak.

U kan eerder 'n 3xAAA -houer gebruik (dra dit in u sak in plaas van in die lapel).

Stap 4: Naaipatroon en snystof

Naaipatroon en snystof
Naaipatroon en snystof

Ek het dieselfde patroon gebruik as wat ek geskep het vir die eerste weergawe van hierdie kostuum, 'n PDF met meer bladsye wat saamgevoeg word om die patroonstukke te skep.

Vou jou stof en pas die rande in lyn met die korrel van die stof, en plaas/speld patroonstukke langs die vou soos gemerk. Trek 'n naattoelating buite die patroonstukke (behalwe die vou) van ongeveer 3 cm met 'n merktekryt of potlood. Aangesien my stof dun was, wou ek dit verdubbel, en omdat ek twee kappies gemaak het, het ek vier van elke patroonstuk in die hoofstof gesny, daarna nog 'n laag gaaskaas om tekstuur aan die buitekant toe te voeg, en uiteindelik 'n laag swart stof as 'n voering om die lig in te keer. Ek dink as ek daarvoor vooruit beplan het, kon ek een van die aanvanklike wit lae laat val het en die kappies sou uit slegs drie lae elk in plaas van vier bestaan het.

Stap 5: Monteer stofstukke

Monteer stukke stof
Monteer stukke stof
Monteer stukke stof
Monteer stukke stof
Monteer stukke stof
Monteer stukke stof
Monteer stukke stof
Monteer stukke stof

Speld en werk pyle/skouer nate op elke patroonstuk vas, en pas dan die kappie en kappies langs die nek met die regte sye in lyn. Steek die naat, asook 'n naat regoor die bokant van die enjinkap.

Probeer die kap. Vou om en speld die rou voorkant van die enjinkap vas en stik dit vas om 'n netjiese rand te skep, asook 'n kanaal om 'n draad deur te trek.

Sny dan 'n ronde stuk swart stof om die voorkant van die enjinkap te bedek. Dit is wat die kring ondersteun en u gesig verberg. Speld dit vas terwyl u die kappie dra vir die beste pas, en stik dit dan met die hand of masjien vas aan die enjinkap se opening.

Stap 6: Installeer stroombaan in kap

Installeer stroombaan in kap
Installeer stroombaan in kap

Ek het die enjinkap aangesit, die kring aangeskakel en 'n spieël gebruik om die beste ligging vir die LED's uit te vind. Toe gebruik ek penne om die liggings te merk, en sorgvuldig met swart draad vas te maak en die bevestigingsgate op die NeoPixel -juwele aan die swart voorpaneel vas te maak. Myne sit net onder my regte oë, wat dit maklik maak om verby hulle te kyk.

Spoel af en herhaal as u 'n tweede kap maak.

Stap 7: Dra dit

Dra dit!
Dra dit!
Dra dit!
Dra dit!
Dra dit!
Dra dit!
Dra dit!
Dra dit!

Dit is soveel pret om aan te trek. Dit is maklik om uit te sien, en nie vir ander om u gesig te sien nie. Die hele ding is ook redelik gemaklik, danksy die groot kap en die draadraam, wat voorkom dat die voorste stof op u gesig val.

Ek en my kêrel het hierdie jaar gedra vir die Halloween -partytjie van my hackerspace hierdie jaar, en alhoewel ek die koppelvlak vir die laserprojektorsagteware kon sien, kon hy nie die klein teks in Abelton uitmaak nie, so ons moes dit aanpas om 'n beter uitsig. Ek het die swart stofpaneel van die boonste deel van die enjinkap verwyder en die oortollige gevou. In 'n donker kamer kon u nie regtig die verskil tussen die twee onderskei nie, alhoewel u dit op die foto van ons hierbo kan sien.

Dankie vir die lees! As u van hierdie projek hou, sal u dalk in sommige van my ander belangstel:

  • 13 Idees vir die verspreiding van LED's
  • Verspreide LED -strookbord met Arduino/Bluetooth
  • YouTube -intekenaarteller met ESP8266
  • Maklike Infinity Mirror
  • 3 Beginner Arduino -foute

Volg my op YouTube, Instagram, Twitter en Pinterest om tred te hou met waaraan ek werk.

Aanbeveel: