Kazalo:
- Zaloge
- 1. korak: Naj nam uspe
- 2. korak: Priprava materiala
- Korak: Rezanje akrila
- 4. korak: S tiskalniki 3D naredite stran
- 5. korak: Snemanje
- Korak 6: Pritrdite LED trak + spajkanje LED traku (NeoPixel) z žicami
- 7. korak: Taktično stikalo za spajkanje z žicami
- 8. korak: Montaža -Vstavite vijak na strani = ①
- 9. korak: Pritrdite Ⓛⓣ na Ⓒ = ②
- 10. korak: Sestavljanje -Uporabite a Ⓦ in Ⓝ za združevanje ① in ② = ③
- 11. korak: Montaža -pritrdite Ⓐⓔ in ③ z uporabo akrilne vezi = ④
- 12. korak: Pritrdite Ⓢ na Ⓓ = ⑤
- Korak 13: Montaža -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥
- Korak 14: Dokončajte montažo kosov
- Korak 15: Delovni videz projekta
- Korak 16: NeoPixel, ožičenje priključkov
- 17. korak: ožičenje NeoPixel in Arduino
- 18. korak: Programirajte Arduino
- 19. korak:
- 20. korak: Vzorci
Video: Light Me Up!: 20 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
č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
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
Korak: 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
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
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
Č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
8. korak: 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 Ⓒ = ②
10. korak: Sestavljanje -Uporabite a Ⓦ in Ⓝ za združevanje ① in ② = ③
11. korak: Montaža -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 Ⓓ = ⑤
Korak 13: Montaža -Združite ④ in ⑤ z uporabo Ⓦ in Ⓝ = ⑥
Korak 14: Dokončajte montažo kosov
Korak 15: Delovni videz projekta
Korak 16: NeoPixel, ožičenje priključkov
17. korak: 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
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:
LED LIGHT DIY za spletno kamero (C920): 10 korakov (s slikami)
LED LIGHT DIY za spletno kamero (C920): Osvetlitev je bistvena za spletno kamero. Ta majhen LED obroček vam pomaga z obrazno kamero, da vas zelo dobro sprejme. Videoposnetek lahko posnamete brez svetlobe, razen te LED. Uporabil sem 3D tiskalnik in WS2812b LED modul (združljiv z Neopixel)
BookWorm Light-Up Book Light in zaznamek: 13 korakov (s slikami)
BookWorm Light-Up Book Light and Bookmark: Naj bo ta zabaven zaznamek knjižni molj, ki služi tudi kot knjižna luč! Natisnili ga bomo, izrezali, pobarvali in okrasili, z njim pa osvetlijo noč, tako da lahko berete v temi. Narejen je iz le nekaj materialov in je odlična prva
LEGO Dots Light-Up Pas: 6 korakov (s slikami)
LEGO Dots Light-Up Pas: LEGO #LetsBuildSkupaj raziščite, zgradite in delite svoje kreacije LEGO
Light Hack Doorbell Room Light Hack: 7 korakov (s slikami)
Slušalka z okvaro sluha pri zvonjenju v prostorih za vrata: Težava: moj oče je registriran kot gluh, mama pa je s slabšim sluhom in zaradi tega pogosto težko slišijo zvonec na vratih. To bi lahko bila težava tudi mnogih drugih. Kupili so utripajoč zvonec na vratih, da bi jim pomagali pri
Ikea Light Hack (flexin Your Light): 5 korakov
Ikea Light Hack (flexin Your Light): Ko sem se odločil izboljšati osvetlitev svoje mize, sem se obrnil na Ikeo. Dobil sem Ikea Jansjo (http://www.ikea.com/us/en/catalog/products/10128748) in Ikea Lack (http://www.ikea.com/us/en/catalog/products/60124272 ) in pomotoma zavrgel potrdilo