Kazalo:

Light Me Up!: 20 korakov (s slikami)
Light Me Up!: 20 korakov (s slikami)

Video: Light Me Up!: 20 korakov (s slikami)

Video: Light Me Up!: 20 korakov (s slikami)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Prižgi me!
Prižgi me!
Prižgi me!
Prižgi me!
Prižgi me!
Prižgi me!
Prižgi me!
Prižgi me!

člani projektne skupine

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Kaj pa, če bi se lahko dotaknili in oblikovali svetlobo? Kakšen bi bil občutek, če bi imeli čudovit vzorec svetlobe, ki ste ga sami oblikovali z zanimivo animacijo? Light me up bo zanimiva skicirka, ki se dotakne in oblikuje samo svetlobo ter naredi zanimive vzorce! Ta projekt ima več trikotnikov, ki tvorijo šestkotna oblika. Tako lahko ustvarite stereoskopske vzorce glede na to, kako oblikujete svetlobo! Samo pritisnite vsak kos in različne barve bodo stopnjevane, in ko se prikaže želena barva, samo pritisnite roko, ki ste jo pritisnili, in še naprej bo lepo sijala z želeno barvo! Projekt je uporabil približno 312 trikotnikov, vendar bi lahko ustvaril lepa luč, ki dobro deluje s 6 trikotniki. Zdaj pa vam pokažem, kako to narediti s šestimi trikotniki. Sledite korakom in imeli boste svoje čudovito delo!

Zaloge

Strojna oprema: Arduino (uporabljal sem arduino mega 2560), akril (prozoren, bel), LED trak (NeoPixel), razpršilni film, gumb, 4 -polni konektor, žica, vezje, napajalnik

Orodja: laserski stroj za rezanje, 3D tiskalnik

1. korak: Naj nam uspe

Naj nam uspe!
Naj nam uspe!
Naj nam uspe!
Naj nam uspe!
Naj nam uspe!
Naj nam uspe!

Naredimo ta srčkan šesterokotni kos z mano!

Light Me Up je narejen iz 312 trikotnikov, vendar lahko celo 6 trikotnikov ustvari čudovito svetlobo. Če ga želite narediti v večjem obsegu, ga lahko naredite tako, da pogledate spodaj priloženo datoteko.

2. korak: Priprava materiala

Priprava materiala
Priprava materiala

Korak: Rezanje akrila

Rezanje akrila
Rezanje akrila
Rezanje akrila
Rezanje akrila
Rezanje akrila
Rezanje akrila
Rezanje akrila
Rezanje akrila

Z laserskim rezalnikom izrežite sprednji in zadnji del vsakega dela. Barva akrila na zadnji strani je lahko karkoli želite, vendar uporabite prozorni akril, ker je treba sprednjo stran zatemniti! Če ne uporabljate prozornega barvnega akrila, svetlobe ne boste dobro videli.

4. korak: S tiskalniki 3D naredite stran

Naredite stran s 3D tiskalniki
Naredite stran s 3D tiskalniki
Naredite stran s 3D tiskalniki
Naredite stran s 3D tiskalniki
Naredite stran s 3D tiskalniki
Naredite stran s 3D tiskalniki

Zdaj je čas, da naredimo stranice vsakega kosa. Datoteke 3D modeliranja na strani so priložene spodaj. PLA smo uporabili za izdelavo stranskih plošč. PLA je močnejša in manj krči kot ABS, zato je za uporabo PLA priporočljivo uporabljati filamente.

5. korak: Snemanje

Snemanje
Snemanje
Snemanje
Snemanje
Snemanje
Snemanje

Sedaj pa na akril na sprednji strani položimo svetlo difuzijski film. Če nanjo položite film, se razprostira in zasije veliko lepše. Najprej izrežite film v obliki trikotnika. (Film raje izrežite večje od izrezanega akrila) Na telefon preprosto položite zaščitno folijo, na primer. Če želite tukaj dati napitnino, jo lahko potisnete s kartico, da jo lahko lepo zataknete!

Korak 6: Pritrdite LED trak + spajkanje LED traku (NeoPixel) z žicami

Pritrdite LED trak + spajkalni LED trak (NeoPixel) z žicami
Pritrdite LED trak + spajkalni LED trak (NeoPixel) z žicami
Pritrdite LED trak + spajkalni LED trak (NeoPixel) z žicami
Pritrdite LED trak + spajkalni LED trak (NeoPixel) z žicami
Pritrdite LED trak + spajkalni LED trak (NeoPixel) z žicami
Pritrdite LED trak + spajkalni LED trak (NeoPixel) z žicami
Pritrdite LED trak + spajkalni LED trak (NeoPixel) z žicami
Pritrdite LED trak + spajkalni LED trak (NeoPixel) z žicami

Če ste tako dobro spajkali LED trak, je čas, da LED trak namestite na hrbtno stran. Najprej na zadnjo stran LED traku pritrdite pištolo za lepilo ali dvostranski trak. Najprej odstranite žice z obeh strani spajkalne žice skozi luknje na obeh straneh. Nazadnje pritrdite LED trak na zadnji akril in konec!

Čas je za spajkanje! pripravite LED trakove, 4-pinske priključke (konektor ali žice) in tisto, kar potrebujete za spajkanje. LED sem uporabljal v treh enotah. Če želite, lahko uporabite eno ali dve LED diodi, vendar priporočam uporabo treh. Ko so vsi materiali pripravljeni, spajkajte žice v obeh podatkovnih vodih, 5v vodih in ozemljitvah LED traku.

7. korak: Taktično stikalo za spajkanje z žicami

Taktično stikalo za spajkanje z žicami
Taktično stikalo za spajkanje z žicami
Taktično stikalo za spajkanje z žicami
Taktično stikalo za spajkanje z žicami

8. korak: Montaža -Vstavite vijak na strani = ①

Montaža -Vstavite vijak na strani = ①
Montaža -Vstavite vijak na strani = ①
Montaža -Vstavite vijak na strani = ①
Montaža -Vstavite vijak na strani = ①

Zdaj je res enostaven del! Na vsako od treh 3D natisnjenih strani namestite en vijak. Razlog, zakaj bo mogoče uporabiti gumb vijaka, kot je uporaba strukturnih vijakov in matic. Ko bo kos končan, ga bom dal v ohišje in ga dokončal z matico.

9. korak: Pritrdite Ⓛⓣ na Ⓒ = ②

Pritrdite Ⓛⓣ na Ⓒ = ②
Pritrdite Ⓛⓣ na Ⓒ = ②
Pritrdite Ⓛⓣ na Ⓒ = ②
Pritrdite Ⓛⓣ na Ⓒ = ②

10. korak: Sestavljanje -Uporabite a Ⓦ in Ⓝ za združevanje ① in ② = ③

Sestavljanje -S kombinacijo Ⓦ in Ⓝ združite ① in ② = ③
Sestavljanje -S kombinacijo Ⓦ in Ⓝ združite ① in ② = ③
Sestavljanje -S kombinacijo Ⓦ in Ⓝ združite ① in ② = ③
Sestavljanje -S kombinacijo Ⓦ in Ⓝ združite ① in ② = ③
Sestavljanje -S kombinacijo Ⓦ in Ⓝ združite ① in ② = ③
Sestavljanje -S kombinacijo Ⓦ in Ⓝ združite ① in ② = ③

11. korak: Montaža -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④

Sestavljanje -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④
Sestavljanje -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④
Sestavljanje -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④
Sestavljanje -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④
Sestavljanje -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④
Sestavljanje -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④
Sestavljanje -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④
Sestavljanje -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④

Če pritrdite vijak na stran, ga bomo postavili na stran in spredaj. Sprednji del je akril, zato ga morate obleči z namensko akrilno vezjo. Če akril pritrdite na običajno vez, bo pustil pečat.

12. korak: Pritrdite Ⓢ na Ⓓ = ⑤

Pritrdite Ⓢ na Ⓓ = ⑤
Pritrdite Ⓢ na Ⓓ = ⑤
Pritrdite Ⓢ na Ⓓ = ⑤
Pritrdite Ⓢ na Ⓓ = ⑤

Korak 13: Montaža -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥

Sestavljanje -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥
Sestavljanje -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥
Sestavljanje -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥
Sestavljanje -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥
Sestavljanje -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥
Sestavljanje -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥

Korak 14: Dokončajte montažo kosov

Celotna montaža kosov
Celotna montaža kosov
Celotna montaža kosov
Celotna montaža kosov
Celotna montaža kosov
Celotna montaža kosov

Korak 15: Delovni videz projekta

Image
Image

Korak 16: NeoPixel, ožičenje priključkov

NeoPixel, ožičenje priključkov
NeoPixel, ožičenje priključkov
NeoPixel, ožičenje priključkov
NeoPixel, ožičenje priključkov
NeoPixel, ožičenje priključkov
NeoPixel, ožičenje priključkov

17. korak: ožičenje NeoPixel in Arduino

Ožičenje NeoPixel in Arduino
Ožičenje NeoPixel in Arduino

18. korak: Programirajte Arduino

zunanji hlapni nepodpisani dolgi časomer0_millis;

#vključi

#define MODEBTNNUM 3 int ani_mode = 0; nepodpisani dolgi preM1, preM2, preM3;

void setup () {

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

void loop () {

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); če (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 = tok2; za (int i = 1; i 3000) {preM3 = tok3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("ponastavitev časovnika"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}

19. korak:

zunanji hlapni nepodpisani dolgi časomer0_millis;

#vključi

#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int num = NUMPIXELS / 3; const int slaveNum = 1; int barve [število] [3]; int hue [num]; int sat [num]; int svetlo [število]; int pŠtevilo = 0; int gValue [num] = {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]; logična btnMode; int hueV [num] = {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; nepodpisani dolgi preMillis1; nepodpisani dolgi preM; int ani_mode = 0; int ani2_Counter = 0; int števec = 0; /////////////////////////////////////////////// void setup () {Wire. start (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (receiveEvent); for (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); } ///////////////////////////////////////////////

void loop () {

if (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; sat = 95; svetla = 100; } f_v = 0; } //////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = napačno; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); //////////////////////////////////////// stikalo (ani_mode) {primer 0: ani0 (); zlom; primer 1: ani1 (); ani_mode = 0; ani2_Counter = 0; zlom; primer 2: ani2_Counter = 1; ani_mode = 0; zlom; primer 3: ani3 (); ani_mode = 0; ani2_Counter = 0; zlom; privzeto: readyState (); zlom; } if (ani2_Counter == 1) {ani2 (); } setPixels (število); }

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

void receiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("prejeto 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; gVrednost = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; za (int a = 0; a <2; a ++) {odtenek [a1 [a] = 100; sat [a1 [a] = 95; svetla [a1 [a] = 100; } za (int b = 0; b <2; b ++) {odtenek [b1 = 200; sat [b1 = 95; svetla [b1 = 100; } za (int c = 0; c <2; c ++) {odtenek [c1 [c] = 300; sat [c1 [c] = 95; svetla [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}; za (int a = 0; a <8; a ++) {odtenek [a2 [a] = 26; sat [a2 [a] = 95; svetla [a2 [a] = 100; } za (int d = 0; d <4; d ++) {odtenek [d2 [d] = 63; sat [d2 [d] = 95; svetla [d2 [d] = 100; } // Serial.println ("1"); } else if (pNumber == 2) {// ornament velike kocke za (int i = 0; i <num; i ++) {bright = 0; gVrednost = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // rumena 06 za (int a = 0; a <6; a ++) {odtenek [a14 [a] = 35; sat [a14 [a] = 95; svetla [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}; // rumena za (int a = 0; a <6; a ++) {odtenek [a3 [a] = 53; sat [a3 [a] = 95; svetla [a3 [a] = 100; }} else if (pNumber == 4) {for (int i = 0; i <num; i ++) {bright = 0; gVrednost = 1; } int a4 = {34, 35}; // rumena int b4 = {47}; // modra int c4 = {48}; // vijolična

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

za (int b = 0; b <1; b ++) {odtenek [b4 = 210; sat [b4 = 95; svetla [b4 = 100; } za (int c = 0; c <1; c ++) {odtenek [c4 [c] = 307; sat [c4 [c] = 95; svetla [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};

za (int a = 0; a <6; a ++) {odtenek [a5 [a] = 100; sat [a5 [a] = 95; svetla [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}; // rumena za (int a = 0; a <6; a ++) {odtenek [a6 [a] = 53; sat [a6 [a] = 95; svetla [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}; // vijolična za (int c = 0; c <6; c ++) {odtenek [c7 [c] = 307; sat [c7 [c] = 95; svetla [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}; // vijolična za (int c = 0; c <6; c ++) {odtenek [c8 [c] = 307; sat [c8 [c] = 95; svetla [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}; // vijolična za (int c = 0; c <6; c ++) {odtenek [c9 [c] = 307; sat [c9 [c] = 95; svetla [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}; // vijolična za (int c = 0; c <6; c ++) {odtenek [c10 [c] = 307; sat [c10 [c] = 95; svetla [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}; // vijolična za (int c = 0; c <6; c ++) {odtenek [c11 [c] = 307; sat [c11 [c] = 95; svetla [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}; // vijolična za (int c = 0; c <6; c ++) {odtenek [c12 [c] = 307; sat [c12 [c] = 95; svetla [c12 [c] = 100; }} else if (pNumber == 13) {for (int i = 0; i <num; i ++) {bright = 0; gVrednost = 1; } int a13 = {34, 35}; // rumena int b13 = {47}; // modra int c13 = {48}; // vijolična za (int a = 0; a <2; a ++) {odtenek [a13 [a] = 53; sat [a13 [a] = 95; svetla [a13 [a] = 100; } za (int b = 0; b <1; b ++) {odtenek [b13 = 210; sat [b13 = 95; svetla [b13 = 100; } za (int c = 0; c <1; c ++) {odtenek [c13 [c] = 307; sat [c13 [c] = 95; svetla [c13 [c] = 100; }} pNumber = pNumber + 1;

if (pNumber == 14) {

pŠtevilo = 0; }}

void ani2 () {

// Serial.println ("2"); nepodpisani dolgi curM = millis ();

če (curM - preM> = 10) {

preM = curM; for (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } odtenek = odtenek + gVrednost ; } števec ++; if (števec == 360) {// Serial.print ("števec:"); // Serial.println (števec); // Serial.println (curM); števec = 0; ani2_Counter = 0; }}}

void ani3 () {

// Serial.println ("3"); } ///////////////////////////////////////////// void readyState () {/ / Serial.println ("pripravljeno"); } ///////////////////////////////////////////// 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; } če if (hue <= 0) {hueV = 1; } odtenek = odtenek + odtenek ; svetla = 100; }}}} ///////////////////////////////////////////// void setPixels (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (odtenek , sat , svetlo , barve ); int num1 = i * 3; strip.setPixelColor (število1, barve [0], barve [1], barve [2]); strip.setPixelColor (število1 + 1, barve [0], barve [1], barve [2]); strip.setPixelColor (število1 + 2, barve [0], barve [1], barve [2]); } strip.show (); }

20. korak: Vzorci

Vzorci!
Vzorci!
Vzorci!
Vzorci!

Ta projekt ima več trikotnikov, ki tvorijo šestkotno obliko. Tako lahko ustvarite stereoskopske vzorce glede na to, kako oblikujete svetlobo! Samo pritisnite vsak kos in različne barve bodo stopnjevane, in ko se pojavi želena barva, samo pritisnite roko, ki ste jo pritisnili, in še naprej bo lepo sijala z želeno barvo!

Priporočena: