Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Selviämme
- Vaihe 2: Materiaalin valmistelu
- Vaihe 3: Akryylin leikkaaminen
- Vaihe 4: Tee sivut 3D -tulostimilla
- Vaihe 5: Kuvaaminen
- Vaihe 6: Kiinnitä LED -nauha + juotos -LED -nauha (NeoPixel) johdoilla
- Vaihe 7: Juotoskytkin johdoilla
- Vaihe 8: Kokoonpano -Aseta pultti sivulle = ①
- Vaihe 9: Kiinnitä Ⓛⓣ kohtaan Ⓒ = ②
- Vaihe 10: Kokoonpano -Käytä Ⓦ ja Ⓝ yhdistääksesi ① ja ② = ③
- Vaihe 11: Asennus -Kiinnitä Ⓐⓔ ja ③ käyttämällä akryylisidosta = ④
- Vaihe 12: Kiinnitä Ⓢ kohtaan Ⓓ = ⑤
- Vaihe 13: Kokoaminen -Yhdistä ④ ja ⑤ Käyttämällä Ⓦ ja Ⓝ = ⑥
- Vaihe 14: Suorita kappaleen asennus
- Vaihe 15: Projektin toimiva ulkonäkö
- Vaihe 16: NeoPixel, liittimen johdotus
- Vaihe 17: NeoPixel- ja Arduino -johdotus
- Vaihe 18: Ohjelmoi Arduino
- Vaihe 19:
- Vaihe 20: Kuviot
Video: Light Me Up!: 20 askelta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
projektitiimin jäsenet
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
Entä jos voisit koskettaa ja suunnitella valoa? Miltä sinusta tuntuisi, jos sinulla olisi kaunis valokuvio, jonka suunnittelisit mielenkiintoisella animaatiolla? Light me up on mielenkiintoinen luonnoskirja, joka koskettaa ja suunnittelee itse valoa ja tekee mielenkiintoisia kuvioita! Tässä projektissa on useita kolmioita, jotka muodostavat kuusikulmainen muoto. Joten voit luoda stereoskooppisia kuvioita valon suunnittelun mukaan! Paina vain jokaista kappaletta ja eri värit luokitellaan, ja kun haluamasi väri tulee esiin, paina vain painamaasi kättä ja se loistaa edelleen kauniisti haluamallasi värillä! Projektissa käytettiin noin 312 kolmiota, mutta mukava valo, joka toimii hyvin 6 kolmion kanssa. Nyt näytän sinulle, kuinka tehdä se kuuden kolmion avulla. Seuraa ohjeita ja saat oman upean työn!
Tarvikkeet
Laitteisto: Arduino (käytin arduino mega 2560), akryyli (kirkas, valkoinen), LED -nauha (NeoPixel), hajotinkalvo, painike, 4 -nastainen liitin, johto, piirilevy, virtalähde
Työkalut: Laser-ohjattu leikkauskone, 3D-tulostin
Vaihe 1: Selviämme
Tehdään tämä söpö kuusikulmainen pala kanssani!
Light Me Up on valmistettu 312 kolmiosta, mutta jopa 6 kolmiota voi suunnitella upeaa valoa. Jos haluat tehdä sen suuremmassa mittakaavassa, voit tehdä sen alla olevan tiedoston avulla.
Vaihe 2: Materiaalin valmistelu
Vaihe 3: Akryylin leikkaaminen
Leikkaa kunkin osan etu- ja takaosa laserleikkurilla. Takaosan akryyliväri voi olla mitä tahansa, mutta muista käyttää läpinäkyvää akryylia, koska etuosan on oltava himmeä! Jos käytät muuta kuin läpinäkyvää akryyliväriä, et näe valoa hyvin.
Vaihe 4: Tee sivut 3D -tulostimilla
Nyt on aika tehdä jokaisen kappaleen sivut. Selvitä sivun 3D -mallinnustiedostot alla. Käytimme PLA: ta sivujen tekemiseen PLA on vahvempi ja supistuu vähemmän kuin ABS, joten filamenteja suositellaan käytettäväksi PLA: n kanssa.
Vaihe 5: Kuvaaminen
Laitetaan nyt kevyt diffuusiokalvo etupuolen akryylille. Jos laitat kalvon päälle, se leviää ja loistaa paljon kauniimmin. Leikkaa ensin kalvo kolmion muotoiseksi. (Leikkaa kalvo paremmin kuin leikattu akryyli.) Kalvo on helppo laittaa puhelimellesi esimerkiksi suojakalvon päälle. Jos haluat vinkata tänne, voit painaa korttia, jotta se voidaan kiinnittää siististi!
Vaihe 6: Kiinnitä LED -nauha + juotos -LED -nauha (NeoPixel) johdoilla
Jos olet ollut niin hyvä LED -nauhan juottamisessa, on aika laittaa LED -nauha taakse. Kiinnitä ensin liimapistooli tai kaksipuolinen teippi LED-nauhan taakse. Irrota ensin johdot juotoslangan molemmilta puolilta molemmin puolin olevien reikien kautta. Kiinnitä lopuksi LED -nauha taka -akryyliin ja se on ohi!
On juotosaika! valmistele LED-nauhat, 4-napaiset liittimet (liitin tai johdot) ja tarvitsemasi juotokset. Käytin LED -valoja kolmessa yksikössä. Voit halutessasi käyttää yhtä tai kahta LEDiä, mutta suosittelen käyttämään kolmea. Kun kaikki materiaalit ovat valmiita, juota johdot LED -nauhan molempiin tietolinjoihin, 5 voltin ja maadoituslinjoihin.
Vaihe 7: Juotoskytkin johdoilla
Vaihe 8: Kokoonpano -Aseta pultti sivulle = ①
Nyt se on todella helppo osa! Aseta yksi pultti kullekin 3D -tulostetulle puolelle. Syy siihen, miksi pultin painikkeen käyttö, kuten rakenteellisten pulttien ja muttereiden käyttö, voi olla mahdollista. Kun pala on valmis, laitan sen koteloon ja viimeistelen mutterilla.
Vaihe 9: Kiinnitä Ⓛⓣ kohtaan Ⓒ = ②
Vaihe 10: Kokoonpano -Käytä Ⓦ ja Ⓝ yhdistääksesi ① ja ② = ③
Vaihe 11: Asennus -Kiinnitä Ⓐⓔ ja ③ käyttämällä akryylisidosta = ④
Jos laitat pultin sivulle, laitamme sen sivulle ja eteen. Etupuoli on akryyliä, joten se on asetettava erityisellä akryylisidoksella. Jos kiinnität akryylin tavalliseen sidokseen, se jättää jäljen.
Vaihe 12: Kiinnitä Ⓢ kohtaan Ⓓ = ⑤
Vaihe 13: Kokoaminen -Yhdistä ④ ja ⑤ Käyttämällä Ⓦ ja Ⓝ = ⑥
Vaihe 14: Suorita kappaleen asennus
Vaihe 15: Projektin toimiva ulkonäkö
Vaihe 16: NeoPixel, liittimen johdotus
Vaihe 17: NeoPixel- ja Arduino -johdotus
Vaihe 18: Ohjelmoi Arduino
ulkoinen haihtuva allekirjoittamaton pitkä ajastin0_millis;
#sisältää
#define MODEBTNNUM 3 int ani_mode = 0; allekirjoittamaton pitkä preM1, preM2, preM3;
void setup () {
Wire.begin (); for (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Sarja.alku (9600); }
void loop () {
for (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } for (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); while (Wire.available ()) {int x = Wire.read (); // Sarja.println (x); jos (x == 5) {ani_mode = 0; // Sarja.println ("x = 5"); }}} ////////////////////////////////////////////////////////////////////////////////// /////// if (ani_mode == 0) {for (int i = 1; i 3000) {preM1 = current1; for (int i = 1; i 5000) {preM2 = current2; for (int i = 1; i 3000) {preM3 = current3; // ajastin0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("ajastimen nollaus"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Sarja.println ("3000 "); Wire.endTransmission (i); }}}}
Vaihe 19:
ulkoinen haihtuva allekirjoittamaton pitkä ajastin0_millis;
#sisältää
#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int numero = NUMPIXELS / 3; const int slaveNum = 1; int värit [numero] [3]; int hue [numero]; int sat [numero]; int kirkas [numero]; int pNumero = 0; int gValue [numero] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; const int btnPin [numero] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 54, 55, 56, 57, 58, 59}; int btnState [numero]; boolen btnMode; int hueV [numero] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; #include #define BTNNUM 1 int f_v = 1; allekirjoittamaton pitkä preMillis1; allekirjoittamaton pitkä preM; int ani_mode = 0; int ani2_Counter = 0; int laskuri = 0; /////////////////////////////////////////////////////////////////////////////////////////////////// aloita (slaveNum); Wire.onRequest (requestEvent); Wire.onRecept (ReceiveEvent); for (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Sarja.alku (9600); strip.begin (); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop () {
jos (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; la = 95; kirkas = 100; } f_v = 0; } ///////////////////////////////////////////////////////////////////////// 버튼 입력 멈춤: 멈춤 신호 보내기 btnMode = väärä; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin ))) {btnMode = true; }} btnEvent (5); // Sarja.println (ani_mode); /////////////////////////// tauko; tapaus 1: ani1 (); ani_mode = 0; ani2_Counter = 0; tauko; tapaus 2: ani2_Counter = 1; ani_mode = 0; tauko; tapaus 3: ani3 (); ani_mode = 0; ani2_Counter = 0; tauko; oletus: readyState (); tauko; } jos (ani2_Counter == 1) {ani2 (); } setPixels (numero); }
///////////////////////////////////////////
void ReceiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("sai 5"); ani_mode = 0; } ani_mode = x; // Sarja.println (ani_mode); } ////////////////////////////////////////////////////////////////////////////////////////////// vo/ request. Event () {
jos (btnMode == true) {
Wire.write (5); // Serial.println ("5 보냄"); } else {Wire.write (0); }
}
mitätön ani0 () {
// Serial.println ("0"); }
void ani1 () {
// Serial.println ("1"); jos (pNumero == 0) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a <2; a ++) {hue [a1 [a] = 100; la [a1 [a] = 95; kirkas [a1 [a] = 100; } for (int b = 0; b <2; b ++) {hue [b1 = 200; la [b1 = 95; kirkas [b1 = 100; } for (int c = 0; c <2; c ++) {hue [c1 [c] = 300; la [c1 [c] = 95; kirkas [c1 [c] = 100; } // Sarja.println ("0"); } else if (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; for (int a = 0; a <8; a ++) {hue [a2 [a] = 26; la [a2 [a] = 95; kirkas [a2 [a] = 100; } for (int d = 0; d <4; d ++) {hue [d2 [d] = 63; la [d2 [d] = 95; kirkas [d2 [d] = 100; } // Sarja.println ("1"); } else if (pNumber == 2) {// jättikuutikuvio (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // keltainen 06 (int a = 0; a <6; a ++) {sävy [a14 [a] = 35; la [a14 [a] = 95; kirkas [a14 [a] = 100; }} muu jos (pNumero == 3) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // keltainen (int a = 0; a <6; a ++) {sävy [a3 [a] = 53; la [a3 [a] = 95; kirkas [a3 [a] = 100; }} muu jos (pNumero == 4) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int a4 = {34, 35}; // keltainen int b4 = {47}; // sininen int c4 = {48}; // violetti
for (int a = 0; a <2; a ++) {sävy [a4 [a] = 53; la [a4 [a] = 95; kirkas [a4 [a] = 100; }
for (int b = 0; b <1; b ++) {hue [b4 = 210; la [b4 = 95; kirkas [b4 = 100; } for (int c = 0; c <1; c ++) {hue [c4 [c] = 307; la [c4 [c] = 95; kirkas [c4 [c] = 100; }} muu jos (pNumero == 5) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int a5 = {34, 35, 46, 47, 48, 49};
for (int a = 0; a <6; a ++) {hue [a5 [a] = 100; la [a5 [a] = 95; kirkas [a5 [a] = 100; }} muu jos (pNumero == 6) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // keltainen (int a = 0; a <6; a ++) {sävy [a6 [a] = 53; la [a6 [a] = 95; kirkas [a6 [a] = 100; }} muu jos (pNumero == 7) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // violetti (int c = 0; c <6; c ++) {sävy [c7 [c] = 307; la [c7 [c] = 95; kirkas [c7 [c] = 100; }} else if (pNumber == 8) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // violetti (int c = 0; c <6; c ++) {hue [c8 [c] = 307; la [c8 [c] = 95; kirkas [c8 [c] = 100; }} else if (pNumber == 9) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // violetti kohteelle (int c = 0; c <6; c ++) {hue [c9 [c] = 307; la [c9 [c] = 95; kirkas [c9 [c] = 100; }} else if (pNumber == 10) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // violetti kohteelle (int c = 0; c <6; c ++) {hue [c10 [c] = 307; la [c10 [c] = 95; kirkas [c10 [c] = 100; }} else if (pNumber == 11) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // violetti kohteelle (int c = 0; c <6; c ++) {hue [c11 [c] = 307; la [c11 [c] = 95; kirkas [c11 [c] = 100; }} else if (pNumber == 12) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // violetti kohteelle (int c = 0; c <6; c ++) {hue [c12 [c] = 307; la [c12 [c] = 95; kirkas [c12 [c] = 100; }} else if (pNumber == 13) {for (int i = 0; i <num; i ++) {bright = 0; gArvo = 1; } int a13 = {34, 35}; // keltainen int b13 = {47}; // sininen int c13 = {48}; // violetti (int a = 0; a <2; a ++) {värisävy [a13 [a] = 53; la [a13 [a] = 95; kirkas [a13 [a] = 100; } for (int b = 0; b <1; b ++) {hue [b13 = 210; la [b13 = 95; kirkas [b13 = 100; } for (int c = 0; c <1; c ++) {hue [c13 [c] = 307; sat [c13 [c] = 95; kirkas [c13 [c] = 100; }} pLuku = pLuku + 1;
jos (pNumero == 14) {
pNumero = 0; }}
void ani2 () {
// Sarja.println ("2"); allekirjoittamaton pitkä curM = millis ();
jos (curM - preM> = 10) {
preM = curM; for (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } sävy = sävy + gValue ; } laskuri ++; if (laskuri == 360) {// Sarja.print ("laskuri:"); // Sarja.println (laskuri); // Sarja.println (curM); laskuri = 0; ani2_Counter = 0; }}}
void ani3 () {
// Serial.println ("3"); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// / Serial.println ("valmis"); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {unsigned long curMillis1 = millis ();
for (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }
if (curMillis1 - preMillis1> b_interval) {
preMillis1 = curMillis1; (int i = 0; i = 360) {hueV = -1; } muu jos (sävy <= 0) {hueV = 1; } sävy = sävy + hueV ; kirkas = 100; }}}} //////////////////////////////////////////////////////////////////////////////// void setPixels (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (sävy , sat , kirkas , värit ); int numero1 = i * 3; strip.setPixelColor (numero1, värit [0], värit [1], värit [2]); strip.setPixelColor (numero1 + 1, värit [0], värit [1], värit [2]); strip.setPixelColor (numero1 + 2, värit [0], värit [1], värit [2]); } strip.show (); }
Vaihe 20: Kuviot
Tässä projektissa on useita kolmioita, jotka muodostavat kuusikulmaisen muodon. Joten voit luoda stereoskooppisia kuvioita valon suunnittelun mukaan! Paina vain jokaista kappaletta ja eri värit luokitellaan, ja kun haluamasi väri tulee esiin, paina vain painamaasi kättä ja se loistaa edelleen kauniisti haluamallasi värillä!
Suositeltava:
Ole tietoinen ATLAS - STAR WARS - Death Star II: 7 askelta (kuvilla)
Ole tietoinen ATLAS - STAR WARS - Death Star II: Rakenna Bandai Death Star II -muovimallista. Tärkeimpiä ominaisuuksia ovat: ✅Valo- ja äänitehosteet✅MP3-soitin✅InfraRED-kaukosäädin✅Lämpötila-anturi✅3 minuutin ajastinBlogi: https://kwluk717.blogspot.com/2020/12/be-aware-of-atlas-star-wars- kuolemantähti
Suurempi ja parannettu joulutähti Neopixel Attiny85: 3 askelta (kuvilla)
Suurempi ja parannettu joulutähti Neopixel Attiny85: Viime vuonna tein pienen 3D-tulostetun joulutähden, katso https://www.instructables.com/id/Christmas-Star-LE..Tänä vuonna tein isomman tähden langasta 50 neopikseliä (5V WS2811). Tällä suuremmalla tähdellä oli enemmän kuvioita (lisään ja parannan edelleen
Living Pixels - Imagine Technology has Life: 4 askelta (kuvilla)
Living Pixels - Imagine Technology has Life: Nähdessään älykkäät kodin tuotteet ovat yleisempiä elämässämme, olen alkanut miettiä ihmisten ja näiden tuotteiden välistä suhdetta. Jos jonain päivänä älykkäät kodin tuotteet tulevat välttämättömäksi osaksi jokaisen elämää, mitä asenteita meidän tulisi ottaa
PlotClock, WeMos ja Blynk Playing Vintage AMI Jukebox: 6 askelta (kuvilla)
PlotClock, WeMos ja Blynk Playing Vintage AMI Jukebox: Neljä teknistä innovaatiota mahdollistivat tämän projektin: 1977 Rowe AMI Jukebox, PlotClock -robotti käsisarja, WeMos/ESP 8266 -mikro -ohjain ja Blynk -sovellus/pilvipalvelu. Jukeboksi käsillä - älä lopeta lukemista! Tämä projekti voi
DIY WiFi Smart Security Light Shelly 1: 6 askelta (kuvilla)
DIY WiFi Smart Security Light Shelly 1: Tässä ohjeessa tarkastellaan DIY -älyvalon luomista Shellyn Shelly 1 -älyreleen avulla. Kun teet turvavalosta älykkään, voit hallita paljon paremmin, milloin se aktivoituu ja kuinka kauan se pysyy päällä. Se voi olla toimiva