Obsah:

Ironman Low-Poly s LED pásky ovládanými WiFi: 8 kroků (s obrázky)
Ironman Low-Poly s LED pásky ovládanými WiFi: 8 kroků (s obrázky)

Video: Ironman Low-Poly s LED pásky ovládanými WiFi: 8 kroků (s obrázky)

Video: Ironman Low-Poly s LED pásky ovládanými WiFi: 8 kroků (s obrázky)
Video: 7 Amazing Science Gadgets! 2024, Listopad
Anonim
Low-Poly Iron Man s WiFi ovládanými LED pásky
Low-Poly Iron Man s WiFi ovládanými LED pásky
Low-Poly Iron Man s LED páskami ovládanými WiFi
Low-Poly Iron Man s LED páskami ovládanými WiFi
Low-Poly Iron Man s WiFi ovládanými LED pásky
Low-Poly Iron Man s WiFi ovládanými LED pásky
Low-Poly Iron Man s LED páskami ovládanými WiFi
Low-Poly Iron Man s LED páskami ovládanými WiFi

Toto interaktivní nástěnné umělecké dílo je přibližně 39 palců vysoké a 24 palců široké. Řezal jsem laserem dřevo ve Student Makerspace Clemson University, poté jsem ručně maloval všechny trojúhelníky a instaloval světla na zadní stranu. Tento instruktáž projde tím, jak jsem vytvořil tento přesný kus, doufejme, že jeho koncept bude inspirovat někoho jiného, aby vytvořil své vlastní jedinečné umělecké dílo. Používá mikrokontrolér ESP8266 s adresovatelnými LED páskovými světly WS2812B a běžnými RGB LED světelnými pásy.

Díly a materiály

  • 1/4 "dřevo - 40" x 28 "(maximální rozměry pro naši laserovou řezačku)
  • 1/8 "neprůhledný akryl - TAPPlastics (používám Lighting White, 69%)
  • Akumulátor - akumulátor TalentCell 12 V/5 V (použil jsem akumulátor 12 V/6 000 mAh)
  • RGB LED pásek - 6 stop (standardní 4 vodiče, verze 5050, kde je světlo RGB v jednom modulu)
  • TIP122 tranzistor pro PWM ovládání mnoha světel
  • WS2812B LED pásek - 2 stopy (použil jsem verzi se 144 LED na metr)
  • Mikroprocesor ESP8266 NodeMCU
  • Vodič konektoru s plným jádrem 22 (link1 - link2 - link3 - link4)
  • Asi 300Ω ish odpory
  • Štětce
  • Barva - většinou jsem použil barvu Craft Premium. Podrobnosti v kroku malování

Nástroje

  • Přístup k laserové řezačce (jednu jsem použil u Clemsona)
  • Páječka
  • Horká lepicí pistole (to je zásadní)
  • Střihače/odizolovače drátu
  • Adobe Illustrator
  • Trpělivost

Krok 1: Návrh v aplikaci Illustrator

Design v Illustratoru
Design v Illustratoru
Design v Illustratoru
Design v Illustratoru

Zdrojový obrázek je ilustrací Williama Teal, prosím, podívejte se do jeho portfolia na další jeho skvělá díla: https://www.behance.net/tealeo93 (myslím, že je to jeho - sledoval jsem králičí noru GoogleImages, Pinterest, GraphicDesignJunction, Behance)

Zdrojový obrázek jsem našel z vyhledávání Google na „Low-Poly Iron Man“nebo „Geometric Iron Man Wallpaper“. Obrázek jsem stáhl a otevřel v Adobe Illustratoru.

Dále jsem pomocí nástroje pero v Illustratoru ručně nakreslil každý řádek v obrázku. Udělal jsem to tak, aby laserová řezačka mohla leptat všechny vnitřní čáry jako vektorový řez nastavený na nízký výkon místo toho, aby musel rastrovat po celém obrázku. Trvalo to několik hodin (aka asi 3 vyučovací hodiny ve škole)

Jakmile byl obrázek zcela nastíněn, seskupil jsem všechny ty čáry dohromady a poté nakreslil tvary rukou, hrudníku a očí. Dal jsem je všechny do skupiny a nastavil jejich barvu výplně na modrou, abych je mohl snadno rozeznat. Zkopíroval jsem je do samostatného souboru pro akrylový řez.

Pokud jde o akrylovou část, chtěl jsem maximalizovat účinnost svého akrylového kusu, a tak jsem jej nahrál na tuto webovou stránku https://svgnest.com/ a nahrál soubor pouze s akrylovými řezanými kousky a nechal „vnořit“součásti. To používá některé iterace a skvělé algoritmy k určení nejefektivnějšího rozložení vašich dílů na listu, aby se minimalizovalo plýtvání. Výstupem je konfigurace, která je v souboru IronManAcryl.ai.

Krok 2: Laserové řezání

Image
Image

Před řezáním dřeva jsem ho nastříkal základním nátěrem a poté lehce obrousil, aby bylo hladké. Udělal jsem to, aby barva později vyšla rovnoměrněji.

Když jsem obrys prořízl celou cestu dřevem, použil jsem 100% výkon, 6% rychlost (myslím) na 60W Epilog Fusion M2 40 v Clemson Makerspace. Na většinu to fungovalo, ale dřevo bylo v rohu hodně pokřivené, takže jsem vlastně musel znovu zaostřit laser na ten roh a znovu spustit tu část řezu.

Protože jsem také nakreslil čáry pro všechny vnitřní trojúhelníky, byl jsem také schopen použít vektorový řez pro rychlé leptání všech těchto čar, jak je uvedeno ve videu výše. To bylo podstatně rychlejší, než by to bylo pro rastrové leptání souboru. Myslím, že jsem použil 70% rychlosti a 50% výkonu - budete však muset experimentovat.

1/8 akrylát jsem nejprve řezal na 100% výkonu a 8% rychlosti, což bylo trochu moc silné a na nechráněném akrylu zanechalo nějaké stopy spálení, takže jsem to udělal rychlostí 14% a fungovalo to jako kouzlo.

Krok 3: Malování

Malování
Malování
Malování
Malování
Malování
Malování

Tak. Hodně. Malování. Odhadoval bych, že to bylo asi 20 hodin malování.

Pokud přemýšlíte o tom, že uděláte projekt s tolika trojúhelníky, nenamalujte si to sami. Stačí zaplatit, aby se obraz vytiskl na kov nebo dřevo, a pak ho vystřihnout, nebo nechat vytisknout na něco jiného a ten kousek přilepit na něco pevného. Prostě si to nenamalujte sami, pokud milujete malování.

Když jsem to maloval, použil jsem pásku malířů FrogTape k nastínení každého trojúhelníku na díle. To mi dalo mnohem konzistentnější výsledky než mé rané pokusy vyplnit každý trojúhelník ručně bez jakýchkoli okrajů pásky.

FrogTape poskytuje linky, které jsou mnohem ostřejší než bílá nebo modrá malířská páska. Váš čas a duševní zdraví zcela stojí za 2 $/role pásky navíc. Pokud chcete, aby byl štíhlejší, můžete použít přesný nůž a nařezat několik horních vrstev pásky na ještě menší proužky, takže když obkreslíte jeden trojúhelník, nezakryje tolik sousedních trojúhelníků.

Jsem levný a nemám moc zkušeností s malováním, takže jsem použil 2 oz lahve barvy od Michaela nebo Hobby Lobby. Zjistil jsem, že řada Craft Smart Premium pokrývá poměrně dobře, a nakonec jsem použil barvu CraftSmart Premium Metallic Festive Red smíchanou s bílou nebo černou, aby bylo 95% mých červených odstínů. Žlutá byla jen prémiová žlutá Craft Smart, do které bylo vhozeno trochu zlata jako pokus, aby byla mírně třpytivá.

Pokud víte o levném laku, který lépe kryje - dejte mi prosím vědět v komentářích !! Často jsem musel udělat dva nátěry, aby žádný z bílých níže neprosvítal, a rád bych měl nějaký hezčí nátěr, který by tomu zabránil.

Jakmile bylo vše namalované (ale před lepením akrylových kousků), použil jsem lesklý čirý sprej na ochranu laku, aby byl lak lesklý.

Krok 4: Akrylové kusy a akrylová podsvícení

Akrylové kusy a akrylová podsvícení
Akrylové kusy a akrylová podsvícení
Akrylové kusy a akrylová podsvícení
Akrylové kusy a akrylová podsvícení
Akrylové kusy a akrylová podsvícení
Akrylové kusy a akrylová podsvícení
Akrylové kusy a akrylová podsvícení
Akrylové kusy a akrylová podsvícení

Připevnění akrylových kusů bylo trochu výzvou, protože můj pracovní stůl/stůl a dřevěný kus jsou mírně pokřivené, takže jsem nemohl zaručit, že to všechno zůstane dostatečně dlouho na to, aby se můj epoxid mohl nastavit. Jako alternativní řešení jsem přitlačil dřevo dolů ke stolu poblíž akrylového kusu, do kterého jsem lepil, a nejprve jsem pomocí horkého lepidla držel každý akrylový kus na svém místě. Horké lepidlo je viditelné z přední strany akrylátu, takže jsem pak použil Gorilla Glue dvousložkový epoxid nanesený párátkem, aby akrylové kousky trvale držely na svém místě. Zpět jsem prošel malými kleštěmi a vypíchl původní kousky horkého lepidla.

Pro každý akrylový kus jsem vytvořil samostatný světelný modul. Nejprve jsem nařezal kousek černé pěnové desky o velikosti 1/4 na velikost o něco větší, než bylo nutné, a nakreslil jsem na něj obrys akrylového kusu. Poté jsem pro tento kus nastříhal a nalepil pásky LED způsobem, který většinou zakryl akrylát. plocha.

Tento krok by bylo lepší provést s prototypovací deskou a některými šroubovými svorkami, ale ty jsem neměl po ruce, když jsem byl připraven začít s kabeláží. Jako řešení jsem rozřezal pár páskových kolíků na 4 vstupy - uzemnění, vstup 5 V, vstup dat, výstup dat. Žhavý pásek záhlaví jsem nalepil na molitanovou desku a začal pájet všechna světla k sobě.

Pájení bylo ve skutečnosti opravdu náročné, protože ty pájecí podložky byly malé. Naštěstí jsem měl dvě šance na všechny výkonové a zemní podložky, protože každému proužku lze dodat energii na oba konce. Rozložil jsem proužky tak, aby datový drát proudil hadovitým vzorem. Používám páječku s nastavitelnou teplotou a zjistil jsem, že mám rád, když je teplota na horním konci rozsahu zeleně - asi se mi líbí horká, protože páječka, kterou jsem používal roky, byla levná a neměla žádné ovládání teploty a běhal horko.

Jakmile bylo vše připájeno, použil jsem přesný nůž (s čerstvou čepelí) k řezání proužků pěnové desky, které obklopily světla a omezily průnik. Místo černé jsem použil bílou, protože jsem měl delší pásy a ve skutečnosti to byla dobrá věc, protože mi to umožnilo snadno vidět ze zadní strany, pokud byla tato část LED pásků zapnuta během testovacího kroku zapojení.

Krok 5: Zbytek elektroniky

Zbytek elektroniky
Zbytek elektroniky
Zbytek elektroniky
Zbytek elektroniky
Zbytek elektroniky
Zbytek elektroniky

Vždy se snažím propojit své projekty tak, že nejprve zapojím napájecí vstupy, pak ovladač, pak další prvky desky a periferie. Žhavě jsem nalepil baterii na místo a poté jsem vedl rozdělený DC konektorový kabel tak, aby byl nabíjecí vstup snadno přístupný z okraje projektu pro snadné nabíjení. Akumulátor byl dodáván s děleným kabelem a podle pokynů bylo dobré baterii nabíjet, když se používá.

Kanibalizoval jsem levný mikro USB kabel a nahradil konec micro USB konektorem DC, takže jsem mohl použít pouze 5V vstup. Dal jsem 5V na jednu napěťovou lištu prkénka a do kolíku ESP8266 Vin, poté uzemnil do zemnící lišty a zemnicího kolíku ESP8266 (všechny důvody by měly být propojeny interně dohromady v ovladači, takže nezáleží na tom, který z nich)

Standardní RGB LED pásky jsou ovládány signálem PWM z ovladače. Mikrokontroléry však mohou dodávat proud pouze 20mA-50mA na pin v závislosti na ovladači. Každá LED v pásu vyžaduje přibližně tolik energie, takže musíme použít nějaký druh tranzistoru pro ovládání pásů. Několik míst, která se objevila při vyhledávání Google, navrhla tranzistor TIP122, který může přepínat 5 ampérů nebo 40W - což je více než dost pro naši aplikaci. Nejsou opravdu navrženy tak, aby se vešly do prkénka, ale pokud každý drát otočíte o 90 ° do strany, vejde se do otvorů v prkénku. Původně jsem plánoval přišroubovat ke každému malý chladič, ale po nějakém testování jsem zjistil, že se nezahřívají natolik, aby to bylo nutné. Každý vstup tranzistoru jsem zapojil na pin na ESP8266 určený pro výstup PWM

RGB LED pásky, které jsem náhodou měl „voděodolný“gumový povlak, a v důsledku toho nezůstanou nalepeny na dřevo tak, jak bych chtěl. Jako alternativní řešení jsem nařezal malé kousky pěnové desky a přilepil pěnový kus na dřevo a poté k nim přilepil LED pásek.

Krok 6: Přehled programování

Tento projekt využívá různé knihovny, takže jej lze ovládat z telefonní aplikace Blynk, zapínat/vypínat pomocí Amazon Echo a kód lze aktualizovat přes wifi. Některé z použitých knihoven jsou uvedeny níže

Blynk -

Blynk je služba, která umožňuje jednoduché ovládání mezi mikrokontrolérem ESP8266 a přizpůsobitelnou telefonní aplikací. Aplikace pro telefon vám umožňuje vytvořit aplikaci s tlačítky, posuvníky, výběrem barev RGB a mnoha dalšími. Každý „widget“mění hodnotu, kterou lze stáhnout z aplikace Blynk, kdykoli spustíte určitou funkci.

Aktualizace OTA (Over the Air)- výchozí knihovna součástí ESP8266

Emulátor Alexa Wemo-https://github.com/witnessmenow/esp8266-alexa-wemo…

Podvádí Amazon Echo, aby si myslel, že váš projekt je vypínačem Wemo. Kód vám umožňuje definovat funkci, která se má spustit, když Alexa odešle signál „zapnutí“a samostatnou funkci pro signál vypnutí. Pomocí jednoho ovladače můžete emulovat více zařízení (až 10), což umožňuje ještě větší flexibilitu. Můj kód je nastaven tak, že Echo najde dvě zařízení s názvem „Iron Man“a „Night Light“. Jsou to oba tento projekt a tento ovladač, ale když zapnu „Night Light“, bude fungovat s tlumeným bílým světlem, kde po zapnutí „Iron Man“nastaví vnější LED pásky na červenou a akrylové kousky na bílou.

Úpravy Arduina v aplikaci Visual Studio pomocí vMicro

Používám Visual Studio v práci již několik měsíců a miluji všechny nástroje automatického doplňování, které má vestavěné, takže po nějakém hledání jsem zjistil, že bych mohl místo běžného Arduino IDE skutečně použít Visual Studio. Licence vMicro na jeden počítač stojí 15 $ pro studenty, což podle mého názoru zcela stojí za to, pokud strávíte programováním kódu Arduino více než několik hodin.

FastLED vs Neopixel

FastLED používám ve svých projektech jednoduše proto, že jsem našel online více funkcí, které již byly vytvořeny, a v tuto chvíli jsem pomocí něj vytvořil mnoho projektů, takže mám spoustu kódu k opětovnému použití. Jsem si jistý, že by knihovna Neopixel fungovala stejně dobře, kdybyste na ní dostatečně pracovali. Plánuji uvedení všech svých vlastních funkcí na GitHub, aby je mohli používat i další lidé, jen jsem se k tomu zatím nedostal.

Krok 7: Tipy k programování

Celková struktura

Jsem kontrolní technik ve své práci a často používáme styl programování nazývaný PLC programování. Tento typ je podobný Arduinu v tom, že má smyčku, která běží neustále každých několik milisekund a zabývá se vstupy/výstupy a skáče mezi různými „stavy“v kódu. Kód například může zasáhnout krok zabývající se dopravníkem, kde pokud je na dopravníku zásobník, přejde do stavu 45, ale pokud není zásobník, přejde do stavu 100. Tento styl programování však inspiroval můj kód Udělal jsem nějaké změny, abych místo čísla stavu mohl přečíst pouze řetězec.

Ke sledování, ve kterém světelném stavu se projekt nachází, používám globální proměnnou (commandString). Kromě toho používám také boolean s názvem „animate“, abych určil, zda se vyloupne z funkce nebo ne. Když tedy na Blynku stisknete tlačítko „Klasický režim“, můj kód nastaví animaci na hodnotu false (aby se vymanila z aktuální funkce) a příkaz commandString nastaví na „RunClassic“. Každá funkce neustále kontroluje vstup od Blynk, Alexa a OTAUpdate spuštěním funkce „CheckInput“.

Globální proměnné

Ke sledování některých nastavení v mém projektu používám globální proměnné. Tyto proměnné jsou inicializovány před mým instalačním kódem, což je zpřístupňuje jakékoli funkci v mém kódu.

  • globalBrightness (0-255)
  • globalSpeed - rychlost animace všech animovaných funkcí. Tento projekt má jen mizející duhy
  • globalDelayTime - FastLED potřebuje asi 30 mikrosekund k zápisu informací do každé LED, proto jsem tuto proměnnou nastavil na NUM_LEDS * 30 /1000 + 1; poté přidejte zpoždění (globalDelayTime) po většině případů, kdy dělám FastLED.show (), aby nebyl příkaz přerušen.
  • _r, _g, _b - globální hodnoty RGB. Tímto způsobem mohou různá tlačítka barevného schématu jednoduše změnit globální hodnoty r/g/b a nakonec všechny volat stejnou funkci

Pojmenování řadiče aktualizace Arduino OTA

Trvalo mi nepříjemné množství hledání, než jsem přišel na to, jak pojmenovat ovladač pomocí funkce aktualizace přes vzduch. Doslova vložte tento řádek do části nastavení kódu před „ArduinoOTA.onStart (“-

ArduinoOTA.setHostname ("IronMan");

vMicro s tipy pro Visual Studio

Někdy Visual Studio zjistí nějaké problémy s hlubokými soubory, jako jsou standardní soubory C ++, a vyvolá některé chyby. Zkuste zapnout/vypnout různé typy chybových zpráv, dokud se u otevřeného projektu nezobrazí chyby a žádné podpůrné soubory. Můžete také otevřít kód v Arduino IDE a zjistit, zda se tam zkompiluje, nebo zda poskytne užitečnější chybový kód.

FastLED

Pošlete mi zprávu, pokud tento Instructable funguje déle než několik týdnů a stále jsem nepřišel na to, jak své vlastní funkce umístit na GitHub.

FastLED je uveden jako kompatibilní s ESP8266, ale definice pinů nemusí být správné. V dokumentaci pro FastLED se uvádí, že můžete před #include zkusit zahrnout jeden z následujících řádků

  • //#definujte FASTLED_ESP8266_RAW_PIN_ORDER
  • //#definujte FASTLED_ESP8266_NODEMCU_PIN_ORDER
  • //#definujte FASTLED_ESP8266_D1_PIN_ORDER

Zkusil jsem však všechny tři a nikdy se mi všechny piny neshodovaly. V současné době používám poslední řádek a právě jsem přijal, že když řeknu FastLED, aby používal pin D2, ve skutečnosti používá pin D4 na mém ovladači.

I když moje světla jsou jen levné čínské knockouty Neopixelů, stále říkám FastLED, aby s nimi v nastavení zacházel jako s Neopixely

  • FastLED.addLeds (leds, NUM_LEDS);
  • FastLED.setCorrection (TypicalLEDStrip);
  • //FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); // Užitečné pro projekty napájené bateriemi
  • FastLED.setBrightness (globalBright);

Krok 8: Konečný produkt

Finální produkt
Finální produkt
Finální produkt
Finální produkt
Finální produkt
Finální produkt

Ta-da!

Neváhejte mi napsat otázky nebo mi poslat e -mail - miluji tyto věci a rád bych pomohl ostatním lidem při vytváření skvělých projektů. Na mých webových stránkách najdete další projekty, které jsem udělal, a některé z mých fotografií: www.jacobathompson.com

Doporučuje: