Sadržaj:

Osvijetli me!: 20 koraka (sa slikama)
Osvijetli me!: 20 koraka (sa slikama)

Video: Osvijetli me!: 20 koraka (sa slikama)

Video: Osvijetli me!: 20 koraka (sa slikama)
Video: Lice vam je 20 GODINA mlađe❗Mažite ovo svake večeri i bićete šokirani retultatom! 2024, Studeni
Anonim
Osvijetli me!
Osvijetli me!
Osvijetli me!
Osvijetli me!
Osvijetli me!
Osvijetli me!
Osvijetli me!
Osvijetli me!

članovi projektnog tima

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Što ako biste mogli dodirnuti i dizajnirati svjetlo? Kako biste se osjećali da imate prekrasan uzorak svjetla koji ste sami dizajnirali sa zanimljivom animacijom? Light me up bit će zanimljiva skica koja dodiruje i dizajnira samu svjetlost i stvara zanimljive uzorke! Ovaj projekt ima nekoliko trokuta koji tvore šesterokutnog oblika. Tako možete stvoriti stereoskopske uzorke prema načinu na koji osmišljavate svjetlo! Samo pritisnite svaki komad i različite će boje biti označene stupnjevima, a kad boja koju želite izađete, samo pritisnite ruku koju ste pritisnuli i ona će i dalje lijepo svijetliti bojom koju ste htjeli! Projekt je koristio oko 312 trokuta, ali mogao bi stvoriti lijepo svjetlo koje dobro radi sa 6 trokuta. Dopustite mi da vam pokažem kako to napraviti sa šest trokuta. Slijedite korake i imat ćete vlastito divno djelo!

Pribor

Hardver: Arduino (koristio sam arduino mega 2560), akril (prozirno, bijelo), LED traka (NeoPixel), film za difuzor, gumb, 4 -pinski konektor, žica, pločica, napajanje

Alati: Stroj za rezanje s laserskim navođenjem, 3D pisač

Korak 1: Učinimo to

Učinimo to!
Učinimo to!
Učinimo to!
Učinimo to!
Učinimo to!
Učinimo to!

Napravimo ovaj slatki šesterokutni komad sa mnom!

Light Me Up napravljen je pomoću 312 trokuta, ali čak 6 trokuta može dizajnirati predivno svjetlo. Ako ga želite napraviti u većem opsegu, to možete učiniti upućujući se na dolje priloženu datoteku.

Korak 2: Priprema materijala

Priprema materijala
Priprema materijala

Korak 3: Rezanje akrila

Rezanje akrilom
Rezanje akrilom
Rezanje akrilom
Rezanje akrilom
Rezanje akrilom
Rezanje akrilom
Rezanje akrilom
Rezanje akrilom

Laserskim rezačem izrežite prednji i stražnji dio svakog dijela. Boja akrila na stražnjoj strani može biti sve što želite, ali svakako upotrijebite prozirni akril jer prednja strana mora biti zatamnjena! Ako koristite akril u boji osim prozirnog, svjetlo nećete dobro vidjeti.

Korak 4: Napravite stranu pomoću 3D pisača

Učinite stranu pomoću 3D pisača
Učinite stranu pomoću 3D pisača
Učinite stranu pomoću 3D pisača
Učinite stranu pomoću 3D pisača
Učinite stranu pomoću 3D pisača
Učinite stranu pomoću 3D pisača

Sada je vrijeme da napravite stranice svakog komada. Učinimo to! Datoteke 3D modeliranja sa strane nalaze se ispod. PLA smo koristili za izradu bočnih strana. PLA je jači i ima manje kontrakcija od ABS -a, pa se preporučuje korištenje filamenata za upotrebu s PLA -om.

Korak 5: Snimanje

Snimanje
Snimanje
Snimanje
Snimanje
Snimanje
Snimanje

Sada stavimo svjetlo raspršeni film na akril na prednjoj strani. Ako na njega stavite film, on će se raširiti i puno ljepše zasjati. Najprije izrežite film u obliku trokuta. (Bolje da izrežete film veći od izrezanog akrila) Lako je staviti film, poput zaštitne folije na telefon. Ako želite dati napojnicu ovdje, možete je upotrijebiti da biste je gurnuli kako biste je mogli uredno zalijepiti!

Korak 6: Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) žicama

Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) sa žicama
Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) sa žicama
Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) sa žicama
Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) sa žicama
Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) sa žicama
Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) sa žicama
Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) sa žicama
Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) sa žicama

Ako ste bili tako dobri u lemljenju LED trake, vrijeme je da stavite LED traku na stražnju stranu. Prvo pričvrstite pištolj za ljepilo ili dvostranu traku na stražnju stranu LED trake. I prvo uklonite žice s obje strane žice za lemljenje kroz rupe na obje strane. Na kraju, pričvrstite LED traku na stražnji akril i gotovo!

Vrijeme je za lemljenje! pripremite LED trake, 4-pinske konektore (konektor ili žice) i ono što vam je potrebno za lemljenje. Koristio sam LED diode u tri jedinice. Možete koristiti jednu ili dvije LED diode ako želite, ali preporučujem korištenje tri. Kad su svi materijali spremni, lemite žice u oba podatkovna voda, 5v vodove i uzemljenje LED trake.

Korak 7: Taktni prekidač za lemljenje žicama

Taktni prekidač za lemljenje sa žicama
Taktni prekidač za lemljenje sa žicama
Taktni prekidač za lemljenje sa žicama
Taktni prekidač za lemljenje sa žicama

Korak 8: Montaža -Umetnite vijak sa strane = ①

Montaža -Umetnite vijak sa strane = ①
Montaža -Umetnite vijak sa strane = ①
Montaža -Umetnite vijak sa strane = ①
Montaža -Umetnite vijak sa strane = ①

Sada je to zaista lak dio! Postavite jedan vijak na svaku od tri 3D ispisane strane. Razlog zašto ćete moći upotrijebiti gumb s vijcima, poput konstrukcijskih vijaka i matica. Kad komad završi, stavit ću komad u kućište i završiti ga maticom.

Korak 9: Pričvrstite Ⓛⓣ na Ⓒ = ②

Priložite Ⓛⓣ na Ⓒ = ②
Priložite Ⓛⓣ na Ⓒ = ②
Priložite Ⓛⓣ na Ⓒ = ②
Priložite Ⓛⓣ na Ⓒ = ②

Korak 10: Sklapanje -Upotrijebite a Ⓦ i Ⓝ za kombiniranje ① i ② = ③

Sastavljanje -Pomoću a Ⓦ i Ⓝ kombinirajte ① i ② = ③
Sastavljanje -Pomoću a Ⓦ i Ⓝ kombinirajte ① i ② = ③
Sastavljanje -Pomoću a Ⓦ i Ⓝ kombinirajte ① i ② = ③
Sastavljanje -Pomoću a Ⓦ i Ⓝ kombinirajte ① i ② = ③
Sastavljanje -Pomoću a Ⓦ i Ⓝ kombinirajte ① i ② = ③
Sastavljanje -Pomoću a Ⓦ i Ⓝ kombinirajte ① i ② = ③

Korak 11: Montaža -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④

Sklapanje -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④
Sklapanje -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④
Sklapanje -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④
Sklapanje -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④
Montaža -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④
Montaža -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④
Montaža -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④
Montaža -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④

Ako vijak postavite sa strane, stavit ćemo ga sa strane i sprijeda. Prednji dio je akril, pa ga morate staviti namjenskom akrilnom vezom. Ako akril pričvrstite na običnu vezu, ostavit će trag.

Korak 12: Pričvrstite Ⓢ na Ⓓ = ⑤

Pričvrstite Ⓢ na Ⓓ = ⑤
Pričvrstite Ⓢ na Ⓓ = ⑤
Pričvrstite Ⓢ na Ⓓ = ⑤
Pričvrstite Ⓢ na Ⓓ = ⑤

Korak 13: Montaža -Kombinirajte ④ i ⑤ pomoću Ⓦ i Ⓝ = ⑥

Sklapanje -Kombinirajte ④ i ⑤ Pomoću Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Pomoću Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Pomoću Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Pomoću Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Pomoću Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Pomoću Ⓦ i Ⓝ = ⑥

Korak 14: Potpuna montaža komada

Kompletna montaža komada
Kompletna montaža komada
Kompletna montaža komada
Kompletna montaža komada
Kompletna montaža komada
Kompletna montaža komada

Korak 15: Radni izgled projekta

Image
Image

Korak 16: NeoPixel, ožičenje konektora

NeoPixel, ožičenje konektora
NeoPixel, ožičenje konektora
NeoPixel, ožičenje konektora
NeoPixel, ožičenje konektora
NeoPixel, ožičenje konektora
NeoPixel, ožičenje konektora

Korak 17: NeoPixel i Arduino ožičenje

NeoPixel i Arduino ožičenje
NeoPixel i Arduino ožičenje

Korak 18: Programirajte Arduino

vanjski hlapivi nepotpisani dugi mjerač0_millis;

#uključi

#define MODEBTNNUM 3 int ani_mode = 0; nepotpisani dugi preM1, preM2, preM3;

void setup () {

Wire.begin (); za (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Serijska.početak (9600); }

void loop () {{100} {101}

za (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } za (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); while (Wire.available ()) {int x = Wire.read (); // Serial.println (x); if (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} /////////////////////////////////////////////////// /////// if (ani_mode == 0) {for (int i = 1; i 3000) {preM1 = current1; za (int i = 1; i 5000) {preM2 = struja2; za (int i = 1; i 3000) {preM3 = struja3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("poništavanje timera"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}

Korak 19:

vanjski hlapivi nepotpisani dugi mjerač0_millis;

#uključi

#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int broj = NUMPIXELS / 3; const int slaveNum = 1; int boje [broj] [3]; int hue [num]; int sat [broj]; int bright [broj]; int pBroj = 0; int gValue [broj] = {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 [broj] = {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 [broj]; boolean btnMode; int hueV [broj] = {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; nepotpisani dugi preMillis1; nepotpisani dugi preM; int ani_mode = 0; int ani2_Counter = 0; int brojač = 0; /////////////////////////////////////////////// void setup () {Wire. begin (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (receiveEvent); za (int i = 0; i <broj; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serijska.početak (9600); strip.begin (); } /////////////////////////////////////////////////

void loop () {{100} {101}

if (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; sat = 95; svijetlo = 100; } f_v = 0; } ////////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = lažno; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////////// prekidač (ani_mode) {slučaj 0: ani0 (); pauza; slučaj 1: ani1 (); ani_mode = 0; ani2_Counter = 0; pauza; slučaj 2: ani2_Counter = 1; ani_mode = 0; pauza; slučaj 3: ani3 (); ani_mode = 0; ani2_Counter = 0; pauza; zadano: readyState (); pauza; } if (ani2_Counter == 1) {ani2 (); } setPixels (broj); }

///////////////////////////////////////////

void receiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("primljeno 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } /////////////////////////////////////////////// void requestEvent () {

if (btnMode == true) {

Wire.write (5); // Serial.println ("5 보냄"); } else {Wire.write (0); }

}

void ani0 () {

// Serial.println ("0"); }

void ani1 () {

// Serial.println ("1"); if (pNumber == 0) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; za (int a = 0; a <2; a ++) {nijansa [a1 [a] = 100; sat [a1 [a] = 95; svijetlo [a1 [a] = 100; } za (int b = 0; b <2; b ++) {nijansa [b1 = 200; sat [b1 = 95; svijetlo [b1 = 100; } za (int c = 0; c <2; c ++) {nijansa [c1 [c] = 300; sat [c1 [c] = 95; svijetlo [c1 [c] = 100; } // Serial.println ("0"); } else if (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; za (int a = 0; a <8; a ++) {nijansa [a2 [a] = 26; sat [a2 [a] = 95; svijetlo [a2 [a] = 100; } za (int d = 0; d <4; d ++) {nijansa [d2 [d] = 63; sat [d2 [d] = 95; svijetlo [d2 [d] = 100; } // Serial.println ("1"); } else if (pNumber == 2) {// uzorak divovske kocke za (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // žuto 06 za (int a = 0; a <6; a ++) {nijansa [a14 [a] = 35; sat [a14 [a] = 95; svijetla [a14 [a] = 100; }} else if (pNumber == 3) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // žuto za (int a = 0; a <6; a ++) {nijansa [a3 [a] = 53; sat [a3 [a] = 95; svijetlo [a3 [a] = 100; }} else if (pNumber == 4) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int a4 = {34, 35}; // žuta int b4 = {47}; // plava int c4 = {48}; // ljubičasta

za (int a = 0; a <2; a ++) {nijansa [a4 [a] = 53; sat [a4 [a] = 95; svijetlo [a4 [a] = 100; }

za (int b = 0; b <1; b ++) {nijansa [b4 = 210; sat [b4 = 95; svijetlo [b4 = 100; } za (int c = 0; c <1; c ++) {nijansa [c4 [c] = 307; sat [c4 [c] = 95; svijetlo [c4 [c] = 100; }} else if (pNumber == 5) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int a5 = {34, 35, 46, 47, 48, 49};

za (int a = 0; a <6; a ++) {nijansa [a5 [a] = 100; sat [a5 [a] = 95; svijetlo [a5 [a] = 100; }} else if (pNumber == 6) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // žuto za (int a = 0; a <6; a ++) {nijansa [a6 [a] = 53; sat [a6 [a] = 95; svijetlo [a6 [a] = 100; }} else if (pNumber == 7) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // ljubičasta za (int c = 0; c <6; c ++) {nijansa [c7 [c] = 307; sat [c7 [c] = 95; svijetlo [c7 [c] = 100; }} else if (pNumber == 8) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // ljubičasta za (int c = 0; c <6; c ++) {nijansa [c8 [c] = 307; sat [c8 [c] = 95; svijetlo [c8 [c] = 100; }} else if (pNumber == 9) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // ljubičasta za (int c = 0; c <6; c ++) {nijansa [c9 [c] = 307; sat [c9 [c] = 95; svijetlo [c9 [c] = 100; }} else if (pNumber == 10) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // ljubičasta za (int c = 0; c <6; c ++) {nijansa [c10 [c] = 307; sat [c10 [c] = 95; svijetlo [c10 [c] = 100; }} else if (pNumber == 11) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // ljubičasta za (int c = 0; c <6; c ++) {nijansa [c11 [c] = 307; sat [c11 [c] = 95; svijetlo [c11 [c] = 100; }} else if (pNumber == 12) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // ljubičasta za (int c = 0; c <6; c ++) {nijansa [c12 [c] = 307; sat [c12 [c] = 95; svijetlo [c12 [c] = 100; }} else if (pNumber == 13) {for (int i = 0; i <num; i ++) {bright = 0; gVrijednost = 1; } int a13 = {34, 35}; // žuti int b13 = {47}; // plavi int c13 = {48}; // ljubičasta za (int a = 0; a <2; a ++) {nijansa [a13 [a] = 53; sat [a13 [a] = 95; svijetla [a13 [a] = 100; } za (int b = 0; b <1; b ++) {nijansa [b13 = 210; sat [b13 = 95; svijetlo [b13 = 100; } za (int c = 0; c <1; c ++) {nijansa [c13 [c] = 307; sat [c13 [c] = 95; svijetlo [c13 [c] = 100; }} pBroj = pBroj + 1;

if (pNumber == 14) {

pBroj = 0; }}

void ani2 () {

// Serial.println ("2"); bezznačni dugi curM = millis ();

if (curM - preM> = 10) {

preM = curM; for (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } nijansa = nijansa + gVrijednost ; } brojač ++; if (brojač == 360) {// Serial.print ("brojač:"); // Serial.println (brojač); // Serial.println (curM); brojač = 0; ani2_Counter = 0; }}}

void ani3 () {

// Serial.println ("3"); } /////////////////////////////////////////////// void readyState () {/ / Serial.println ("spremno"); } /////////////////////////////////////////////// void btnEvent (int b_interval) {unsigned long curMillis1 = millis ();

for (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }

if (curMillis1 - preMillis1> b_interval) {

preMillis1 = curMillis1; za (int i = 0; i = 360) {hueV = -1; } else if (hue <= 0) {hueV = 1; } nijansa = nijansa + nijansa ; svijetlo = 100; }}}} /////////////////////////////////////////////// void setPixels (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (nijansa , sat , svijetla , boje ); int broj1 = i * 3; strip.setPixelColor (broj1, boje [0], boje [1], boje [2]); strip.setPixelColor (broj1 + 1, boje [0], boje [1], boje [2]); strip.setPixelColor (broj1 + 2, boje [0], boje [1], boje [2]); } strip.show (); }

Korak 20: Uzorci

Uzorci!
Uzorci!
Uzorci!
Uzorci!

Ovaj projekt ima nekoliko trokuta koji tvore šesterokutni oblik. Tako možete stvoriti stereoskopske uzorke prema načinu na koji osmišljavate svjetlo! Samo pritisnite svaki komad i različite boje će biti gradacijske, a kad boja koju želite izađete, samo pritisnite ruku koju ste pritisnuli i ona će nastaviti lijepo svijetliti sa bojom koju ste htjeli!

Preporučeni: