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, Novembar
Anonim
Light Me Up!
Light Me Up!
Light Me Up!
Light Me Up!
Light Me Up!
Light Me Up!
Light Me Up!
Light Me Up!

članovi projektnog tima

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Šta 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 će biti 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 boje će biti preusmjerene, a kada boja koju želite izađete, samo pritisnite ruku koju ste pritisnuli i ona će nastaviti lijepo svijetliti sa bojom koju ste htjeli! Projekt je koristio oko 312 trokuta, ali mogao bi stvoriti lijepo svjetlo koje dobro radi sa 6 trokuta. Sada ću vam pokazati kako to napraviti sa šest trokuta. Slijedite korake i imat ćete svoje divno djelo!

Supplies

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

Alati: Mašina za rezanje sa laserskim navođenjem, 3D štampač

Korak 1: Uspimo

Let's Make It!
Let's Make It!
Let's Make It!
Let's Make It!
Let's Make It!
Let's Make It!

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 obimu, to možete učiniti tako što ćete pogledati 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 što god želite, ali svakako upotrijebite prozirni akril jer prednja strana mora biti zatamnjena! Ako koristite akril u boji koji nije proziran, nećete dobro vidjeti svjetlo.

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

Učinite stranu pomoću 3D štampača
Učinite stranu pomoću 3D štampača
Učinite stranu pomoću 3D štampača
Učinite stranu pomoću 3D štampača
Učinite stranu pomoću 3D štampača
Učinite stranu pomoću 3D štampača

Sada je vrijeme da napravite stranice svakog komada. Učinimo to! Datoteke 3D modeliranja sa strane nalaze se ispod. Koristili smo PLA za izradu bočnih strana. PLA je jača i ima manje kontrakcije 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 svjetlosni difuzijski film na akril na prednjoj strani. Ako na njega stavite film, on će se raširiti i zasjati ljepše. Prvo izrežite film u obliku trokuta. (Bolje da izrežete film veći od izrezanog akrila) Lako je staviti film, na primjer, zaštitnu foliju na telefon. Ako želite dati napojnicu ovdje, možete je upotrijebiti da biste je gurnuli kako biste je mogli uredno zaglaviti!

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. Kada 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 -Umetni vijak sa strane = ①
Montaža -Umetni vijak sa strane = ①
Montaža -Umetni vijak sa strane = ①
Montaža -Umetni vijak sa strane = ①

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

Korak 9: Prikačite Ⓛⓣ na Ⓒ = ②

Prikačite Ⓛⓣ na Ⓒ = ②
Prikačite Ⓛⓣ na Ⓒ = ②
Prikačite Ⓛⓣ na Ⓒ = ②
Prikačite Ⓛⓣ na Ⓒ = ②

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

Sklapanje -Koristite kombinaciju ① i ② = ③ pomoću a Ⓦ i Ⓝ
Sklapanje -Koristite kombinaciju ① i ② = ③ pomoću a Ⓦ i Ⓝ
Sklapanje -Koristite kombinaciju ① i se i se pomoću Ⓦ i Ⓝ i ② = ③
Sklapanje -Koristite kombinaciju ① i se i se pomoću Ⓦ i Ⓝ i ② = ③
Sklapanje -Koristite kombinaciju ① i se i se pomoću Ⓦ i Ⓝ i ② = ③
Sklapanje -Koristite kombinaciju ① i se i se pomoću Ⓦ i Ⓝ 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 = ④
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 = ④

Ako stavite vijak 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: Prikačite Ⓢ na Ⓓ = ⑤

Prikačite Ⓢ na Ⓓ = ⑤
Prikačite Ⓢ na Ⓓ = ⑤
Prikačite Ⓢ na Ⓓ = ⑤
Prikačite Ⓢ na Ⓓ = ⑤

Korak 13: Sklapanje -kombinirajte ④ i ⑤ pomoću Ⓦ i Ⓝ = ⑥

Sklapanje -Kombinirajte ④ i ⑤ Upotrebom Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Upotrebom Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Upotrebom Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Upotrebom Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Upotrebom Ⓦ i Ⓝ = ⑥
Sklapanje -Kombinirajte ④ i ⑤ Upotrebom Ⓦ 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 tajmer0_millis;

#include

#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); } //Serial.begin(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; for (int i = 1; i 5000) {preM2 = current2; for (int i = 1; i 3000) {preM3 = current3; // 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 tajmer0_millis;

#include

#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 pNumber = 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 [num] = {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 [num]; 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); } //Serial.begin(9600); strip.begin (); } /////////////////////////////////////////////////

void loop () {{100} {101}

if (f_v == 1) {for (int i = 0; i <broj; i ++) {nijansa = 50; sat = 95; svijetlo = 100; } f_v = 0; } ////////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = false; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////////// switch (ani_mode) {slučaj 0: ani0 (); break; slučaj 1: ani1 (); ani_mode = 0; ani2_Counter = 0; break; slučaj 2: ani2_Counter = 1; ani_mode = 0; break; slučaj 3: ani3 (); ani_mode = 0; ani2_Counter = 0; break; default: readyState (); break; } 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 poena"); } 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; gVrednost = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (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; gVrednost = 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 ++) {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) {// gigantski uzorak kocke za (int i = 0; i <num; i ++) {bright = 0; gVrednost = 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; svijetlo [a14 [a] = 100; }} else if (pNumber == 3) {for (int i = 0; i <num; i ++) {bright = 0; gVrednost = 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; gVrednost = 1; } int a4 = {34, 35}; // žuti int b4 = {47}; // plavi int c4 = {48}; // ljubičasta

for (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; gVrednost = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (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; gVrednost = 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; gVrednost = 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; gVrednost = 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; gVrednost = 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; gVrednost = 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; gVrednost = 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; gVrednost = 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; gVrednost = 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; svijetlo [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) {

pNumber = 0; }}

void ani2 () {

// Serial.println ("2"); nepotpisani dugi curM = millis ();

if (curM - preM> = 10) {

preM = curM; for (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } nijansa = nijansa + gVrednost ; } counter ++; 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; } hue = hue + hueV ; 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

Patterns!
Patterns!
Patterns!
Patterns!

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 preusmjerene, a kad boja koju želite izađete, samo pritisnite ruku koju ste pritisnuli i ona će nastaviti lijepo svijetliti sa bojom koju želite!

Preporučuje se: