Sadržaj:
- Pribor
- Korak 1: Učinimo to
- Korak 2: Priprema materijala
- Korak 3: Rezanje akrila
- Korak 4: Napravite stranu pomoću 3D pisača
- Korak 5: Snimanje
- Korak 6: Pričvrstite LED traku + LED traku za lemljenje (NeoPixel) žicama
- Korak 7: Taktni prekidač za lemljenje žicama
- Korak 8: Montaža -Umetnite vijak sa strane = ①
- Korak 9: Pričvrstite Ⓛⓣ na Ⓒ = ②
- Korak 10: Sklapanje -Upotrijebite a Ⓦ i Ⓝ za kombiniranje ① i ② = ③
- Korak 11: Montaža -Pričvrstite Ⓐⓔ i ③ Korištenjem akrilne veze = ④
- Korak 12: Pričvrstite Ⓢ na Ⓓ = ⑤
- Korak 13: Montaža -Kombinirajte ④ i ⑤ pomoću Ⓦ i Ⓝ = ⑥
- Korak 14: Potpuna montaža komada
- Korak 15: Radni izgled projekta
- Korak 16: NeoPixel, ožičenje konektora
- Korak 17: NeoPixel i Arduino ožičenje
- Korak 18: Programirajte Arduino
- Korak 19:
- Korak 20: Uzorci
Video: Osvijetli me!: 20 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
č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
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
Korak 3: Rezanje akrila
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
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
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
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
Korak 8: 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 Ⓒ = ②
Korak 10: Sklapanje -Upotrijebite a Ⓦ i Ⓝ za kombiniranje ① i ② = ③
Korak 11: 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 Ⓓ = ⑤
Korak 13: Montaža -Kombinirajte ④ i ⑤ pomoću Ⓦ i Ⓝ = ⑥
Korak 14: Potpuna montaža komada
Korak 15: Radni izgled projekta
Korak 16: NeoPixel, ožičenje konektora
Korak 17: 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
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:
Osvijetli LED karticu u papirnom krugu: 12 koraka
Osvijetli LED karticu s papirnatim krugom: Ovo je vodič koji sam slijedio kako bih ovo napravio: https://www.instructables.com/id/Light-Up-LED-Card…Međutim, postoji nekoliko varijacija, budući da nisam imam bakrenu traku, ovo je moj način isprobavanja različitih načina zaobilaženja toga. Ovo je
Osvijetli tamnu ogrlicu: 6 koraka (sa slikama)
Zapalite tamnu ogrlicu: Zamislite da nosite ogrlicu koja se automatski pali kad padne mrak i kada ima dovoljno osvjetljenja da postane normalan dragulj. Relativno lagan i zabavan projekt posebno za onoga tko želi nositi dragulj koji doslovno sjaji! Uzmi
Osvijetli kartu igre prijestolja: 4 koraka (sa slikama)
Game of Thrones Light Up Map: Spoiler! Zima definitivno dolazi. Ali neka ova sjajna Igra prijestolja osvijetli kartu za proljetni projekt. Mapa zasvijetli efektom plamena koji otkriva signal preostale kuće na vlasti. Što ja znam, neka to bude sa sigilom vašeg favorita
Osvijetli okvir za sliku: 11 koraka (sa slikama)
Light Up Picture Box: Htjela sam svojim prijateljima ovogodišnje vjenčanje napraviti poseban dar, a kutija mi se učinila prikladnom. Mogli su unutra staviti uspomene na svoju vezu ili vjenčanje. Jedna od njihovih vjenčanih usluga bila je bojanka ispunjena crtežima bri
Osvijetli luk od omota od Sarana i vrućeg ljepila i LED izbacivača: 6 koraka (sa slikama)
Osvijetlite luk od omota od Sarana i vrućeg ljepila i LED Throwie: Izradite slatki, svijetli, osvijetljeni luk sa omotom od sarana, vrućim ljepilom i nekoliko modificirana LED bacanja. Da, čuli ste me … oblog od sarana i vruće ljepilo. To je savršen blagdanski zanat za mame i kćeri koji zajedno rade, bez odmora