Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tämä interaktiivinen seinätaideteos on noin 39 "pitkä ja 24" leveä. Leikkasin puun laserilla Clemsonin yliopiston Student Makerspacessa, maalasin sitten käsin kaikki kolmiot ja asensin valot sen taakse. Tässä ohjeessa käydään läpi, miten tein tämän teoksen, toivottavasti sen käsite inspiroi jotakuta muuta tekemään oman ainutlaatuisen taideteoksen. Se käyttää ESP8266 -mikrokontrolleria, jossa on osoitettavat WS2812B -LED -nauhavalot ja tavalliset RGB -LED -nauhavalot.
Osat ja materiaalit
- 1/4 "puu - 40" x 28 "(laserleikkurimme maksimimitat)
- 1/8 "läpinäkymätön akryyli - TAPPlastics (käytän Lighting White, 69%)
- Akku - TalentCell 12V/5V akku (käytin 12V/6000mAh -akkua)
- RGB -LED -nauha - 6 jalkaa (vakio 4 -johtiminen, 5050 -versio, jossa RGB -valo on kaikki yhdessä moduulissa)
- TIP122 -transistori monien valojen PWM -ohjaukseen
- WS2812B LED -nauha - 2 jalkaa (käytin versiota, jossa oli 144 LEDiä metriä kohti)
- ESP8266 NodeMCU -mikrokontrolleri
- Kiinteä ydin 22 gaugen liitinjohto (link1 - link2 - link3 - link4)
- Noin 300Ω ish -vastukset
- Pensselit
- Maali - Käytin enimmäkseen Craft Premium -maalia. Yksityiskohdat maalausvaiheessa
Työkalut
- Pääsy laserleikkuriin (käytin sellaista Clemsonissa)
- Juotin
- Kuuma liimapistooli (tämä on välttämätöntä)
- Langanleikkurit/-kuorijat
- Adobe Illustrator
- Kärsivällisyyttä
Vaihe 1: Suunnittele Illustratorissa
Lähdekuva on William Tealin kuva, anna hänen portfolionsa etsiä muita hänen upeita teoksiaan: https://www.behance.net/tealeo93 (Mielestäni se on hänen - seurasin GoogleImagesin, Pinterestin, GraphicDesignJunction, Behance)
Löysin lähdekuvan google-haulla "Low-Poly Iron Man" tai "Geometric Iron Man Wallpaper". Latasin kuvan ja avasin sen Adobe Illustratorilla.
Seuraavaksi käytin Illustratorin kynätyökalua piirtämään manuaalisesti kuvan kaikki viivat. Tein tämän niin, että laserleikkuri voisi syövyttää kaikki sisäviivat vektorileikkaukseksi, joka on asetettu pienelle teholle sen sijaan, että tarvitsisi rasteria koko kuvan päälle. Kesti muutaman tunnin (eli noin 3 luokkajaksoa koulussa)
Kun kuva oli täysin hahmoteltu, ryhmittelin kaikki nämä viivat yhteen ja piirsin sitten käsien, rinnan ja silmien muodot. Laitoin nämä kaikki ryhmään ja asetin niiden täyttöväriksi sinisen, jotta voisin helposti erottaa ne toisistaan. Kopioin ne erilliseen tiedostoon akryylileikkausta varten.
Akryyliosan osalta halusin maksimoida akryylikappaleeni tehokkuuden, joten latasin sen tälle verkkosivustolle https://svgnest.com/ ja latasin tiedoston, jossa oli vain akryylileikatut kappaleet, ja annoin sen "pesiä" osat. Tämä käyttää joitakin iterointeja ja viileitä algoritmeja määrittämään osien tehokkain asettelu arkille jätteen minimoimiseksi. Se antaa kokoonpanon, joka on IronManAcrylic.ai -tiedostossa.
Vaihe 2: Laserleikkaus
Ennen puun leikkaamista ruiskutin sen pohjamaalilla ja hieroin sen jälkeen kevyesti, jotta se olisi sileä. Tein tämän niin, että maali tulee myöhemmin tasaisemmaksi.
Kun leikkasin ääriviivat kokonaan puun läpi, käytin 100% tehoa 6% nopeudella (mielestäni) 60 W: n Epilog Fusion M2 40 -laitteessamme Clemson Makerspacessa. Tämä toimi suurimman osan siitä, mutta puu oli hyvin vääntynyt nurkassa, joten minun piti todella kohdistaa laser uudelleen kyseiseen kulmaan ja suorittaa leikkausosa uudelleen.
Koska piirsin myös viivoja kaikille sisäkolmioille, pystyin myös käyttämään vektorileikkausta kaikkien näiden viivojen nopeaan etsaamiseen, kuten yllä olevassa videossa on esitetty. Tämä oli huomattavasti nopeampaa kuin tiedoston rasterointi. Luulen, että käytin 70% nopeutta ja 50% tehoa - sinun on kuitenkin kokeiltava.
Leikkasin 1/8 tuuman akryylin ensin 100% teholla ja 8% nopeudella, mikä oli hieman liian voimakasta ja jätti palavaa jälkeä suojaamattomaan akryyliin, joten tein sen 14% nopeudella ja se toimi kuin viehätys.
Vaihe 3: Maalaus
Niin. Paljon. Maalaus. Arvioisin, että maalaus kesti noin 20 tuntia.
Jos aiot tehdä projektin, jossa on niin monta kolmiota kuin tämä, älä maalaa sitä itse. Maksa vain, että kuva tulostetaan metallille tai puulle ja leikataan sitten pois, tai tulostetaan johonkin muuhun ja liimataan se johonkin kiinteään. Älä vain maalaa sitä itse, ellet tykkää maalaamisesta.
Käytin FrogTape -maalarinteippiä jokaisen kolmion piirtämiseen kappaleessa tätä maalatessani. Tämä antoi minulle paljon johdonmukaisempia tuloksia kuin varhaiset yritykseni täyttää jokainen kolmio käsin ilman nauhareunoja.
FrogTape antaa viivat, jotka ovat paljon terävämpiä kuin valkoinen tai sininen maalarinteippi. Aikasi ja järkesi ovat täysin ylimääräisten 2 dollarin/nauharullan arvoisia. Jos haluat sen olevan laihempi, voit leikata eksoottisella veitsellä muutamat ylemmät nauhakerrokset vielä pienemmiksi nauhoiksi, jotta yhden kolmion ääriviivat eivät peitä yhtä monta naapurikolmiota.
Olen halpa ja minulla ei ole paljon kokemusta maalaamisesta, joten käytin 2 oz pulloa maalia Michael'silta tai Hobby Lobbylta. Huomasin, että Craft Smart Premium -sarja peitti melko hyvin, ja päädyin käyttämään CraftSmart Premium Metallic Festive Red -maalia, johon oli sekoitettu valkoista tai mustaa, jolloin 95% punaisista sävyistäni. Keltainen oli vain Craft Smart premium -keltainen, jossa oli hieman kultaa, joka yritti tehdä siitä hieman kimaltelevaa.
Jos tiedät halvan ish -maalin, joka peittää paremmin - kerro minulle kommenteissa !! Minun oli usein tehtävä kaksi kerrosta maalia, jotta mikään alla olevista valkoisista ei näy läpi, ja haluaisin saada paremman maalin, joka välttää sen.
Kun kaikki oli maalattu (mutta ennen akryylipalojen liimaamista), käytin kiiltävää kirkaslakkaa, joka suojaa maalia ja tekee siitä kaiken kiiltävän.
Vaihe 4: Akryylikappaleet ja akryylitaustavalot
Akryylikappaleiden kiinnittäminen oli hieman haasteellista, koska työpöytäni/työpöytäni ja puukappale ovat molemmat hieman vääntyneet, joten en mitenkään voinut taata, että se pysyy tasaisena riittävän kauan epoksini kovettumiseen. Ratkaisuna puristin puun alas pöydälle lähellä liimautuvaa akryylikappaletta ja käytin ensin kuumaa liimaa pitämään jokainen akryylikappale paikallaan. Kuuma liima näkyy akryylin etupuolelta, joten käytin sitten hammastikulla levitettyä kaksikomponenttista Gorilla Glue -liimaa pitämään akryylipalat pysyvästi paikallaan. Palasin läpi pienillä pihdeillä ja irrotin alkuperäiset kuumaliimapalat.
Tein jokaiselle akryylipalalle erillisen valomoduulin. Ensin leikkasin palan 1/4 tuuman mustaa vaahtomuovilevyä hieman suuremmaksi kuin oli tarpeen ja piirsin siihen ääriviivat akryylikappaleesta. Sitten leikkasin ja teipasin kyseisen kappaleen LED -nauhat tavalla, joka peitti enimmäkseen akryylin alueella.
Tämä vaihe olisi parempi tehdä prototyyppikortilla ja joillakin ruuviliittimillä, mutta minulla ei ollut niitä käsillä, kun olin valmis aloittamaan johdotuksen. Kiertotapana leikkasin joitain naaraspuolisia nastan nauhoja 4 tuloon - maadoitus, 5 V sisään, data sisään, data ulos. Liimasin naaraspuolisen otsikkoliuskan vaahtolevylle ja aloin juottaa kaikki valot yhteen.
Juotos oli oikeastaan todella haastavaa, koska ne olivat pieniä. Onneksi minulla oli kaksi mahdollisuutta kaikelle virta- ja maadoituslevylle, koska jokaiselle nauhalle voidaan syöttää virtaa kumpaankin päähän. Laitoin nauhat niin, että datajohto virtasi serpentiinimallina. Käytän juotinta, jonka lämpötila on säädettävissä, ja olen huomannut, että pidän lämpötilan olevan vihreän värisen yläreunassa - pidän luultavasti kuumasta, koska vuosien ajan käyttämäni juotosrauda oli halpaa eikä siinä ollut lämpötilan säätöjä ja juoksi kuumana.
Kun kaikki oli juotettu, leikkasin tarkalla veitsellä (tuoreella terällä) leikkaamaan vaahtomuovilevyn nauhat valojen sulkemiseksi ja vähentämään vuotoa. Käytin valkoista mustan sijasta, koska minulla oli pidempiä nauhoja, ja itse asiassa se oli hyvä asia, koska sen avulla pystyin helposti näkemään takapuolelta, onko kyseinen LED -nauhojen osa kytketty päälle testausvaiheessa, jolloin kaikki johdotettiin.
Vaihe 5: Muu elektroniikka
Yritän aina johdottaa projektit laittamalla ensin virtatulot, sitten ohjaimen ja sitten muut korttielementit ja oheislaitteet. Liimasin akun paikoilleen ja reititin sitten jaetun tasavirtaliitäntäkaapelin niin, että lataustuloon oli helppo päästä käsiksi projektin reunalta lataamista varten. Akun mukana tuli jaettu kaapeli, ja ohjeissa sanottiin, että akku on hyvä ladata käytön aikana.
Kannibalisoin halvan mikro-usb-kaapelin ja korvasin mikro-USB-pään DC-tynnyriliittimellä, jotta voisin käyttää vain 5 V: n tuloa. Laitoin 5V leipälevyn yhteen jännitekiskoon ja ESP8266 Vin -tappiin, maadoitin sitten maadoituskiskoon ja ESP8266: n maadoitusnastaan (kaikki maadoitukset on kytkettävä sisäisesti ohjaimeen, joten ei ole väliä kumpi)
Vakiomallisia RGB -LED -nauhoja ohjataan ohjaimen PWM -signaalilla. Mikro-ohjaimet voivat kuitenkin syöttää vain 20mA-50mA virtaa pintaa kohden ohjaimesta riippuen. Jokainen nauhan LED vaatii noin paljon virtaa, joten meidän on käytettävä jonkinlaista transistoria nauhojen ohjaamiseen. Muutamat paikat, jotka ilmestyivät Google -hauissa, ehdottivat TIP122 -transistoria, joka voi vaihtaa 5 ampeeria tai 40 W: n tehon - enemmän kuin tarpeeksi sovelluksellemme. Niitä ei todellakaan ole suunniteltu sopimaan leipälautaan, mutta jos käännät jokaisen langan sivuttain 90 °, se sopii leipälautan aukkoihin. Aioin alun perin ruuvata pienen jäähdytyselementin jokaiseen, mutta joidenkin testien jälkeen päätin, että ne eivät kuumene tarpeeksi, jotta se olisi tarpeen. Johdotin jokaisen transistorin tulon PWM -lähtöön tarkoitettuun ESP8266 -nastaan
RGB -LED -nauhoissa, joissa olin sattumalta ollut, oli "vedenkestävä" kumipinnoite, joten se ei jää liimaamaan puuhun niin hyvin kuin haluaisin. Ratkaisuna leikkasin pieniä vaahtomuovilevyjä ja liimasin vaahtokappaleen puuhun ja liimasin sitten LED -nauhan niihin.
Vaihe 6: Ohjelmoinnin yleiskatsaus
Tämä projekti käyttää erilaisia kirjastoja, jotta sitä voidaan ohjata Blynk -nimisellä puhelinsovelluksella, kytkeä päälle/pois Amazon Echosta ja koodi voidaan päivittää wifi -yhteyden kautta. Osa käytetyistä kirjastoista on alla
Blynk -
Blynk on palvelu, joka mahdollistaa yksinkertaisen hallinnan ESP8266 -mikrokontrollerin ja mukautettavan puhelinsovelluksen välillä. Puhelinsovelluksen avulla voit rakentaa sovelluksen, jossa on painikkeita, liukusäätimiä, RGB -värinvalitsimia ja paljon muuta. Jokainen "widget" muuttaa arvoa, joka voidaan vetää Blynk -sovelluksesta aina, kun suoritat tietyn toiminnon.
OTA (Over the Air) -päivitys- ESP8266: n mukana toimitettu oletuskirjasto
Alexa Wemo -emulaattori-https://github.com/witnessmenow/esp8266-alexa-wemo…
Huijaa Amazon Echoa ajattelemaan, että projektisi on Wemo -valokytkin. Koodin avulla voit määrittää toiminnon, joka suoritetaan, kun Alexa lähettää "päälle" -signaalin, ja erillisen toiminnon sammutusmerkille. Voit emuloida useita laitteita (jopa 10) yhdellä ohjaimella, mikä mahdollistaa entistä enemmän joustavuutta. Koodini on asetettu niin, että Echo löytää kaksi laitetta nimeltä "Iron Man" ja "Night Light". He ovat sekä tämä projekti että tämä ohjain, mutta jos otan "Night Light" -toiminnon käyttöön, se suorittaa toiminnon, jossa on himmeät valkoiset valot, jolloin "Iron Man" -laitteen kytkeminen asettaa ulommat LED -nauhat punaisiksi ja akryyliosat valkoisiksi.
Arduinon muokkaaminen Visual Studiossa vMicron avulla
Olen käyttänyt Visual Studiota työssä muutaman kuukauden ajan ja rakastan kaikkia sen sisäänrakennettuja automaattisen täydennyksen työkaluja, joten jonkinlaisen etsinnän jälkeen huomasin, että voisin todella käyttää Visual Studiota normaalin Arduino IDE: n sijasta. Yhden tietokoneen vMicro -lisenssi maksaa 15 dollaria opiskelijoille, mikä on mielestäni täysin sen arvoista, jos aiot viettää enemmän kuin muutaman tunnin Arduino -koodin ohjelmointiin.
FastLED vs Neopixel
Käytän FastLEDia projekteissani yksinkertaisesti siksi, että löysin verkossa lisää toimintoja, jotka on jo tehty sitä varten, ja tässä vaiheessa olen tehnyt monia projekteja käyttämällä sitä, joten minulla on paljon koodia uudelleenkäytettäväksi. Olen varma, että Neopixel -kirjasto toimisi yhtä hyvin, jos työskentelisit sen kanssa tarpeeksi. Aion laittaa kaikki mukautetut toiminnot GitHubiin muiden ihmisten käyttöön, en vain ole vielä perehtynyt siihen.
Vaihe 7: Ohjelmointivinkkejä
Yleinen rakenne
Olen työssäni ohjausinsinööri ja käytämme usein ohjelmointityyliä, jota kutsutaan PLC -ohjelmoinniksi. Tämä tyyppi on samanlainen kuin Arduino, koska siinä on silmukka, joka kulkee jatkuvasti muutaman millisekunnin välein ja käsittelee tuloja/lähtöjä hyppäämällä koodin eri "tilojen" välillä. Koodi voi esimerkiksi osua kuljettimen käsittelyvaiheeseen, jossa jos kuljettimessa on lokero, se siirtyy tilaan 45, mutta jos lokeroa ei ole, se siirtyy tilaan 100. Tämä ohjelmointityyli kuitenkin inspiroi koodiani Tein joitain muutoksia, jotta voin vain lukea merkkijonon tilanumeron sijasta.
Käytän globaalia muuttujaa (commandString) seuratakseni, missä valotilassa projekti on. Lisäksi käytän myös "animate" -nimistä boolen arvoa sen määrittämiseksi, katkeako se funktiosta vai ei. Joten kun painat Blynkin "Classic mode" -painiketta, koodini asettaa animaatioon false (niin, että se katkeaa nykyisestä toiminnosta) ja asettaa commandString -arvoksi "RunClassic". Jokainen toiminto tarkistaa jatkuvasti Blynk-, Alexa- ja OTAUpdate -syötteet syöttämällä toiminnon "CheckInput".
Globaalit muuttujat
Käytän globaaleja muuttujia seuratakseni joitain asetuksia projektissani. Nämä muuttujat alustetaan ennen asennuskoodia, mikä tekee niistä kaikkien koodini toimintojen käytettävissä.
- globalBrightness (0-255)
- globalSpeed - kaikkien animoitujen toimintojen animaationopeus. Tässä projektissa on vain haalistuvia sateenkaaria
- globalDelayTime - FastLED tarvitsee noin 30 mikrosekuntia kirjoittaakseen tietoja jokaiseen LED -valoon, joten asetin tämän muuttujan arvoksi NUM_LEDS * 30/1000 + 1; lisää sitten viive (globalDelayTime) useimpien FastLED.show () -tapahtumien jälkeen, jotta komentoa ei keskeytetä.
- _r, _g, _b - globaalit RGB -arvot. Näin eri värimallipainikkeet voivat vain muuttaa yleisiä r/g/b -arvoja ja kaikki kutsuvat lopulta samaa toimintoa
Arduino OTA -päivitysohjaimen nimeäminen
Kesti ärsyttävän paljon etsintöjä, kunnes tajusin, miten ohjain voidaan nimetä over the air -päivitystoiminnon avulla. Käytä kirjaimellisesti vain tätä riviä koodisi asetusosassa ennen "ArduinoOTA.onStart (" -
ArduinoOTA.setHostname ("IronMan");
vMicro ja Visual Studio -vinkit
Joskus visuaalinen studio havaitsee joitakin ongelmia syvissä tiedostoissa, kuten tavalliset C ++ -tiedostot, ja heittää joitain virheitä. Yritä kytkeä erilaisia virhesanomia päälle/pois, kunnes sinulla on vain virheitä avoimessa projektissasi eikä tukitiedostoja. Voit myös avata koodin Arduino IDE: ssä ja katsoa, kääntäytyykö se sinne vai antaako se hyödyllisemmän virhekoodin.
FastLED
Lähetä minulle viesti, jos tämä Instructable on ollut käytössä yli muutaman viikon, enkä ole vieläkään keksinyt, miten voin laittaa mukautetut toiminnot GitHubiin.
FastLED on listattu yhteensopivaksi ESP8266: n kanssa, mutta nastamääritelmät eivät ehkä ole oikein. FastLEDin dokumentaatiossa sanotaan, että voit yrittää sisällyttää jonkin seuraavista riveistä ennen #include
- //#define FASTLED_ESP8266_RAW_PIN_ORDER
- //#define FASTLED_ESP8266_NODEMCU_PIN_ORDER
- //#define FASTLED_ESP8266_D1_PIN_ORDER
Yritin kuitenkin kaikkia kolmea, eikä kaikki nastani koskaan vastanneet. Tällä hetkellä käytän viimeistä riviä ja hyväksyin juuri sen, että kun kehotan FastLEDiä käyttämään nasta D2, se todella käyttää ohjaimen tappia D4.
Vaikka valoni ovat vain halpoja kiinalaisia Neopixels -kopioita, kehotan silti FastLEDiä käsittelemään niitä neopikseleinä asetuksissa
- FastLED.addLeds (ledit, NUM_LEDS);
- FastLED.setCorrection (tyypillinenLEDStrip);
- //FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); // Hyödyllinen akkukäyttöisissä projekteissa
- FastLED.setBrightness (globalBright);
Vaihe 8: Lopputuote
Ta-da!
Voit vapaasti kommentoida tai lähettää minulle kysymyksiä sähköpostitse - rakastan tätä tavaraa ja haluaisin auttaa muita ihmisiä tekemään hienoja projekteja. Katso verkkosivustoltani muita projekteja ja valokuvia: www.jacobathompson.com