Tartalomjegyzék:

Távirányítású LED -es szemek és jelmezek: 7 lépés (képekkel)
Távirányítású LED -es szemek és jelmezek: 7 lépés (képekkel)

Videó: Távirányítású LED -es szemek és jelmezek: 7 lépés (képekkel)

Videó: Távirányítású LED -es szemek és jelmezek: 7 lépés (képekkel)
Videó: Robot házilag 2024, November
Anonim

Becky SternBecky Stern Kövesse a szerző további információit:

Webkamera adatvédelmi barát
Webkamera adatvédelmi barát
Webkamera adatvédelmi barát
Webkamera adatvédelmi barát
Mérőszalag Yagi antenna 3D nyomtatott csatlakozókkal
Mérőszalag Yagi antenna 3D nyomtatott csatlakozókkal
Mérőszalag Yagi antenna 3D nyomtatott csatlakozókkal
Mérőszalag Yagi antenna 3D nyomtatott csatlakozókkal
Zodiákus hímzés
Zodiákus hímzés
Zodiákus hímzés
Zodiákus hímzés

Névjegy: A készítés és a megosztás a két legnagyobb szenvedélyem! Összesen több száz oktatóanyagot tettem közzé a mikrovezérlőktől a kötésig. New York -i motoros vagyok és bűnbánó kutyamama. Jaj… Tovább a bekathwia -ról »

Ikrek Jawas! Dupla Orko! Két szellem varázsló a Bubble-Bobble-tól! Ez a jelmezpára bármilyen LED-szemű lény lehet, amelyet csak a színek megváltoztatásával választ. Először 2015 -ben készítettem el ezt a projektet egy nagyon egyszerű áramkörrel és kóddal, de idén egy frissített verziót akartam létrehozni két jelmez egyidejű animációvezérlésével. Ez az áramkör egy egyszerű, közeli hatótávolságú RF távirányítóval vezérel két vevőt ugyanazon a frekvencián, és az Arduino kód megszakításokat alkalmaz, hogy Bill Earl oktató kódja alapján reagáljon az animációra.

Ehhez a projekthez szüksége lesz:

  • Két NeoPixel ékszer
  • GEMMA M0 mikrovezérlő
  • 315 MHz -es vezeték nélküli vevő, reteszelő típus
  • 315 MHz -es vezeték nélküli RF távirányító négy, kettő vagy egygombos konfigurációban
  • Szilikon bevonatú sodrott huzal (30 wg ajánlott)
  • Forrasztópáka és forrasztópáka
  • Huzalhúzók
  • Öblítővágók
  • Csipesz
  • Segítő harmadik kéziszerszám (opcionális)
  • Varrócsapok
  • Szabó kréta (opcionális)
  • 19awg horganyzott acélhuzal
  • Vastag szövet a motorháztetőhöz/köpenyhez (ehhez a verzióhoz két réteg fehér dohányruhát és egy réteg fehér sajtkendőt használtam, majd a burkolat belsejét tömör feketével béleltem ki a fény elzárására)
  • Áttetsző fekete szövet az arcpanelhez
  • Varrógép
  • Olló
  • Tű és cérna
  • 3D nyomtató rugalmas szállal (opcionális)

Ha lépést akar tartani azzal, amin dolgozom, kövessen a YouTube -on, az Instagram -on, a Twitteren, a Pinteresten, és iratkozzon fel hírlevelemre. Amazon -munkatársként a kapcsolt linkjeim segítségével végzett minősített vásárlásokból keresek.

Mielőtt elkezdené, érdemes elolvasnia a következő előfeltételeket:

  • Bemutatkozik a Gemma M0
  • NeoPixel Uberguide
  • Az első motorháztető -verzió (2015 -ben készült, klasszikus Gemma és vezeték nélküli vezérlés nélkül)
  • Multitasking az Arduino pt 3

1. lépés: Áramköri diagram és kód

Áramköri diagram és kód
Áramköri diagram és kód

Az áramkör csatlakozásai a következők:

  • Gemma D2 a vezeték nélküli vevőhöz D0
  • Gemma D0 vezeték nélküli vevőegységhez D1
  • Gemma 3V vezeték nélküli vevő +5V
  • Gemma GND vezeték nélküli vevőkészülékhez GND és NeoPixel ékszerek GND
  • Gemma D1 - NeoPixel ékszer adatai IN
  • Gemma Vout a NeoPixel ékszerekhez PWR
  • NeoPixel ékszer adatok OUT más NeoPixel Jewel adatok IN

Az összeszerelési megjegyzéseket lásd a következő lépésben.

A kód a Bill Earl-féle Arduino-vázlat többfeladatos elvégzésén alapul, és két NeoPixel ékszer vezérlésére lett módosítva, két digitális bemenettel. Tehát nem kell használnia a vezeték nélküli vevőt- helyette az áramkör gombjait használhatja. Töltse le ezt az Arduino kódfájlt a lépés mellékleteiből, vagy másolja és illessze be innen egy üres Arduino vázlatba:

#include "Adafruit_NeoPixel.h"

// Támogatott mintatípusok: enum minta {NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Patern irányok támogatottak: enum direction {FORWARD, REVERSE}; // NeoPattern osztály - az Adafruit_NeoPixel osztályosztályból származik NeoPatterns: public Adafruit_NeoPixel {public: // Tagváltozók: minta ActivePattern; // melyik minta futási iránya Irány; // a minta futtatásának iránya unsigned long Interval; // ezredmásodperc a frissítések között unsigned long lastUpdate; // a pozíció utolsó frissítése uint32_t Szín1, Szín2; // Milyen színeket használnak uint16_t TotalSteps; // a minta lépéseinek száma uint16_t Index; // aktuális lépés a mintán belül void (*OnComplete) (); // Visszahívás a minta befejezésekor // Konstruktor - hívja az alaposztályú konstruktőrt a NeoPatterns csík inicializálására (uint16_t pixel, uint8_t pin, uint8_t type, void (*callback) ()): Adafruit_NeoPixel (pixel, pin, type) {OnComplete = visszahív; } // A minta frissítése void Update () {if ((millis () - lastUpdate)> Interval) // frissítés ideje {lastUpdate = millis (); switch (ActivePattern) {case RAINBOW_CYCLE: RainbowCycleUpdate (); szünet; eset THEATER_CHASE: TheaterChaseUpdate (); szünet; eset COLOR_WIPE: ColorWipeUpdate (); szünet; eset SZKENNER: ScannerUpdate (); szünet; eset FADE: FadeUpdate (); szünet; alapértelmezett: break; }}} // Növelje az indexet és állítsa vissza a végén void Növekedés () {if (Irány == ELŐRE) {Index ++; if (Index> = Összes lépés) {Index = 0; if (OnComplete! = NULL) {OnComplete (); // hívja vissza az összetett versenyt}}}} else // Irány == REVERSE {--Index; ha (Index <= 0) {Index = TotalSteps-1; if (OnComplete! = NULL) {OnComplete (); // visszahívás a versenyre}}}}} // Fordított mintairány void Reverse () {if (Direction == FORWARD) {Direction = REVERSE; Index = TotalSteps-1; } else {Irány = ELŐRE; Index = 0; }} // Inicializálás RainbowCycle void RainbowCycle (uint8_t intervallum, irány dir = FORWARD) {ActivePattern = RAINBOW_CYCLE; Interval = intervallum; Összes lépés = 255; Index = 0; Irány = dir; } // A Szivárványciklus minta frissítése)); } előadás(); Növekedés(); } // Inicializálás a Theater Chase számára void TheaterChase (uint32_t color1, uint32_t color2, uint8_t intervallum, irány dir = FORWARD) {ActivePattern = THEATER_CHASE; Interval = intervallum; Összes lépés = számPixelek (); Szín1 = szín1; Szín2 = szín2; Index = 0; Irány = dir; } // Frissítse a Theatre Chase Pattern void TheaterChaseUpdate () {for (int i = 0; i <numPixels (); i ++) {if ((i+Index) % 3 == 0) {setPixelColor (i, Color1); } else {setPixelColor (i, Color2); } } előadás(); Növekedés(); } // Inicializálás egy ColorWipe void számára ColorWipe (uint32_t color, uint8_t interval, direction dir = FORWARD) {ActivePattern = COLOR_WIPE; Interval = intervallum; Összes lépés = számPixelek (); Szín1 = szín; Index = 0; Irány = dir; } // A Színtörlés minta frissítése void ColorWipeUpdate () {setPixelColor (Index, Szín1); előadás(); Növekedés(); } // Inicializálás SCANNNER void Scanner (uint32_t color1, uint8_t intervallum) {ActivePattern = SCANNER; Interval = intervallum; Összes lépés = (számPixelek () - 1) * 2; Szín1 = szín1; Index = 0; } // Frissítse a szkenner minta void ScannerUpdate () {for (int i = 0; i > 1, zöld (színes) >> 1, kék (színes) >> 1); return dimColor; } // Minden képpont beállítása színre (szinkronban) void ColorSet (uint32_t color) {for (int i = 0; i> 16) & 0xFF; } // Visszaadja a 32 bites szín zöld összetevőjét uint8_t Green (uint32_t color) {return (color >> 8) & 0xFF; } // Visszaadja a 32 bites szín kék komponensét uint8_t Blue (uint32_t color) {return color & 0xFF; } // Adjon meg 0 és 255 közötti értéket, hogy színértéket kapjon. // A színek átmenet r - g - b - vissza r. uint32_t Kerék (byte WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {return Color (255 - WheelPos * 3, 0, WheelPos * 3); } else if (WheelPos <170) {WheelPos -= 85; visszatérési szín (0, WheelPos * 3, 255 - WheelPos * 3); } else {WheelPos -= 170; visszatérő szín (WheelPos * 3, 255 - WheelPos * 3, 0); }}}; void JewelsComplete (); // Adjon meg néhány NeoPattern -t a két gyűrűhöz és a bothoz // valamint néhány befejezési rutinot NeoPatterns Jewels (14, 1, NEO_GRBW + NEO_KHZ800 és & JewelsComplete); const int FÉNYESSÉG = 50; // Inicializál mindent, és készüljön fel a void setup elindítására () {Serial.begin (115200); pinMode (2, BEMENET); pinMode (0, BEMENET); // Inicializálja az összes képpontot Jewels.setBrightness (BRIGHTNESS); Jewels.begin (); // Indítson el egy mintát Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 0, 50), 100); } // Main loop void loop () {// Frissítse az ékszereket. Ékszerek. Frissítés (); // Minták váltása gombnyomásra: if (digitalRead (2) == HIGH) // Az 1. gomb megnyomása {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Jewels. TotalSteps = 100; Jewels. Interval = 1; } else if (digitalRead (0) == HIGH) // A #2 gomb megnyomása {Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = SZKENNER; Jewels. TotalSteps = Jewels.numPixels (); Jewels. Interval = 100; } else // Vissza a normál működéshez {// Minden mintaparaméter visszaállítása normál értékre Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Jewels. Interval = 100; }} // ---------------------------------------------- -------------- // Végrehajtási rutinok-hívás a minta befejezésekor // ---------------------- -------------------------------------- // Jewels Completion Callback void JewelsComplete () {// Véletlen színváltozás a következő vizsgálathoz //Jewels. Color1 = Jewels. Wheel (random (255)); Jewels. Reverse (); }

2. lépés: Szerelje össze az áramkört

Szerelje össze az áramkört
Szerelje össze az áramkört
Szerelje össze az áramkört
Szerelje össze az áramkört

A segítő harmadik kezek megfogóinak készlete nagyon egyszerűvé és szórakoztatóvá teheti a vezetékek alkatrészekhez való forrasztását. De ne aggódjon, ha nincs készlete; Mindig használhat valamilyen szalagot vagy plakátgittet, hogy forrasztás közben stabilan tartsa a táblát.

A két NeoPixel ékszer közötti csatlakozásokhoz használjon vékony (kb. 15 hüvelyk) sodrott huzaldarabokat (ábra az előző lépésben). Ha túl rövid vezetékeket használ, akkor nem tudja elég messze elhelyezni a LED -szemeit, és ha túl sok vezetéket használ, akkor a lazaság az arcába kerül a jelmez viselése közben.

A fő áramkör a hajtóka területén fog élni (ahol a mellkasod találkozik a válladdal), így a lánc első NeoPixel ékszere és a Gemma közötti kapcsolatoknál a huzalok sokkal hosszabbak lesznek. Tartsa a vezetéket a szemkörnyékéig, és húzza ki, hogy megmérje a huzal megtett távolságát, majd adjon hozzá még egy kicsit a lazasághoz és a biztosításhoz.

A Gemma és a vezeték nélküli vevőegység közötti kapcsolathoz úgy döntöttem, hogy prototípus -vezetékeket használok női fejlécekkel, mivel a vezeték nélküli vevőkészülékhez már fejléc -csapok vannak csatlakoztatva.

3. lépés: Akkumulátor

Akkumulátor
Akkumulátor
Akkumulátor
Akkumulátor

Az áramkör táplálásához 500 mAh -s lipolielemet használtam. Ha lipolielemet használ, bölcs dolog megvédeni azt a karcolásoktól, defektektől, horzsolástól, hajlítástól és egyéb visszaélésektől. Csomagolhatod egy erős szövetszalagba, vagy készíthetsz hozzá 3D nyomtatott tartót.

Könnyedén használhat 3xAAA tartót (hordja a zsebében, nem a hajtókán belül).

4. lépés: Minta varrása és szövetvágás

Varrási minta és vágószövet
Varrási minta és vágószövet

Ugyanazt a mintát használtam, amelyet ennek a jelmeznek az első verziójához készítettem, amely egy többoldalas PDF, amely összerakja a mintadarabokat.

Hajtsa be a szövetet, igazítsa a szegélyszéleket a szövet szemcséjének igazításához, és helyezze/tűzze be a mintadarabokat a hajtás mentén a jelzés szerint. Nyomja le a varratmennyiséget a mintadarabokon kívül (a hajtás kivételével) kb. Mivel a szövetem vékony volt, meg akartam duplázni, és mivel két csuklyát készítettem, végül mindegyik mintából négyet vágtam a fő szövetbe, majd egy másik réteget gazos sajtkendőben, hogy textúrát adjunk a külsőhöz, és végül egy fekete réteg bélésként, hogy megakadályozza a bejövő fényt. Azt hiszem, ha előre terveztem volna, leejthettem volna a kezdeti fehér rétegek egyikét, és a motorháztetők négy helyett csak három rétegből álltak volna.

5. lépés: Szerelje össze a szövetdarabokat

Szerelje össze a szövetdarabokat
Szerelje össze a szövetdarabokat
Szerelje össze a szövetdarabokat
Szerelje össze a szövetdarabokat
Szerelje össze a szövetdarabokat
Szerelje össze a szövetdarabokat
Szerelje össze a szövetdarabokat
Szerelje össze a szövetdarabokat

Rögzítse és varrja a dartsot/vállvarrást minden mintadarabra, majd igazítsa össze a csuklyát és a köpenydarabokat a nyakvarrás mentén, a jobb oldalakkal együtt. Varrja össze a varrást, valamint a varratot egyenesen a motorháztető tetején.

Próbálja ki a motorháztetőt. Hajtsa össze és rögzítse a motorháztető nyers elülső szélét, és varrja le, hogy tiszta élt és csatornát hozzon létre a vezeték áthaladásához.

Ezután vágjon le egy kerek, puszta fekete szövetdarabot, hogy ellepje a motorháztető elejét. Ez az, ami támogatja az áramkört és elrejti az arcát. A legjobb illeszkedés érdekében rögzítse a helyére a motorháztető viselése közben, majd kézzel vagy géppel varrja a motorháztető nyílásához.

6. lépés: Telepítse az áramkört a motorháztetőbe

Telepítse az áramkört a motorháztetőbe
Telepítse az áramkört a motorháztetőbe

Feltettem a motorháztetőt, bekapcsoltam az áramkört, és egy tükör segítségével megállapítottam a LED -ek legjobb helyét. Ezután csapokkal jelöltem a helyeket, és óvatosan varrtam fekete cérnával, rögzítve a NeoPixel ékszerek rögzítőfuratait a tiszta fekete előlapra. Az enyémek a valódi szemem alatt ülnek, ami megkönnyíti, hogy ellássam őket.

Öblítse le és ismételje meg, ha második motorháztetőt készít.

7. lépés: Viselje

Viseld!
Viseld!
Viseld!
Viseld!
Viseld!
Viseld!
Viseld!
Viseld!

Ezeket nagyon szórakoztató viselni. Könnyű észrevenni, és mások számára nem könnyű látni az arcát. Az egész dolog nagyon kényelmes is, köszönhetően a túlméretezett motorháztetőnek és a drótváznak, amely megakadályozza, hogy az elülső szövet az arcodra boruljon.

A barátom és én a hackerspace halloweeni bulijának DJ -jén viseltük ezt az évet, és bár láttam a lézerprojektor szoftverének kezelőfelületét, nem igazán tudta kivenni az apró szöveget abeltonban, ezért alkalmazkodnunk kellett ahhoz, hogy jobb kilátás. Eltávolítottam a fekete szövetpanelt a motorháztető felső részéről, és ráhajtottam a felesleget. Egy sötét szobában nem igazán lehetett különbséget tenni a kettő között, pedig a fenti közös fényképünkön láthatja.

Köszönöm, hogy elolvasta! Ha tetszik ez a projekt, akkor érdekelhet néhány más is:

  • 13 ötlet a LED -ek szórására
  • Szórt LED szalagjel Arduino/Bluetooth -szal
  • YouTube -előfizetői számláló ESP8266 segítségével
  • Könnyű végtelen tükör
  • 3 kezdő Arduino hiba

Ha lépést akar tartani azzal, amin dolgozom, kövessen engem a YouTube -on, az Instagramon, a Twitteren és a Pinteresten.

Ajánlott: