Innehållsförteckning:

Light Me Up !: 20 steg (med bilder)
Light Me Up !: 20 steg (med bilder)

Video: Light Me Up !: 20 steg (med bilder)

Video: Light Me Up !: 20 steg (med bilder)
Video: РАЗДАЕТ WIFI СЛЕДИТ ЗА ЧЕЛОВЕКОМ 4G камера видеонаблюдения 2024, November
Anonim
Lys mig upp!
Lys mig upp!
Lys mig upp!
Lys mig upp!
Lys mig upp!
Lys mig upp!
Lys mig upp!
Lys mig upp!

projektgruppens medlemmar

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Tänk om du kunde röra och designa ljuset? Hur skulle det kännas om du hade ett vackert ljusmönster som du själv designade med en intressant animering? Tänd mig blir en intressant skissbok som berör och designar själva ljuset och gör intressanta mönster! Detta projekt har flera trianglar som bildar en sexkantig form. Så du kan skapa stereoskopiska mönster efter hur du designar ljus! Tryck bara på varje bit så kommer olika färger att graderas, och när färgen du vill ha kommer ut trycker du bara på handen du tryckte på så fortsätter den att lysa vackert med den färg du ville ha! Projektet använde cirka 312 trianglar, men det kan skapa ett fint ljus som fungerar bra med 6 trianglar. Låt mig nu visa dig hur du gör det med sex trianglar. Följ stegen så får du ditt eget underbara arbete!

Tillbehör

Hårdvara: Arduino (jag använde arduino mega 2560), akryl (klar, vit), LED -remsa (NeoPixel), diffusorfilm, knapp, 4 -stifts kontakt, tråd, kretskort, strömförsörjning

Verktyg: Laserstyrd skärmaskin, 3D-skrivare

Steg 1: Låt oss göra det

Låt oss göra det!
Låt oss göra det!
Låt oss göra det!
Låt oss göra det!
Låt oss göra det!
Låt oss göra det!

Låt oss göra denna söta sexkantiga bit med mig!

Light Me Up är gjord med 312 trianglar, men även 6 trianglar kan designa underbart ljus. Om du vill göra det i större skala kan du göra det genom att hänvisa till filen som bifogas nedan.

Steg 2: Materialberedning

Materialförberedelse
Materialförberedelse

Steg 3: Skärning av akryl

Skärning av akryl
Skärning av akryl
Skärning av akryl
Skärning av akryl
Skärning av akryl
Skärning av akryl
Skärning av akryl
Skärning av akryl

Använd en laserskärare för att skära fram- och baksidan av varje del. Färgen på akrylen på baksidan kan vara vad du vill, men se till att använda transparent akryl eftersom fronten måste dämpas! Om du använder en annan akrylfärg än transparent ser du inte ljuset bra.

Steg 4: Gör sidor med 3D -skrivare

Gör sidor med 3D -skrivare
Gör sidor med 3D -skrivare
Gör sidor med 3D -skrivare
Gör sidor med 3D -skrivare
Gör sidor med 3D -skrivare
Gör sidor med 3D -skrivare

Nu är det dags att göra sidorna på varje bit. Låt oss göra det! 3D -modelleringsfilerna på sidan bifogas nedan. Vi använde PLA för att göra sidor PLA är starkare och mindre sammandragningar än ABS, så filament rekommenderas för att använda PLA.

Steg 5: Filma

Filmning
Filmning
Filmning
Filmning
Filmning
Filmning

Låt oss nu lägga en lätt diffusionsfilm på akrylen på framsidan. Om du lägger film på det sprids det ut och lyser mycket vackrare. Klipp först filmen i form av en triangel. (Det är bättre att klippa filmen större än den skurna akrylen) Det är enkelt att sätta på film som en skyddsfilm på din telefon. Om du vill tipsa här kan du använda ett kort för att trycka på det så att det kan fastna snyggt!

Steg 6: Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar

Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar

Om du har varit så bra på att lödda LED -remsan är det dags att sätta LED -remsan på baksidan. Fäst först en limpistol eller dubbelsidig tejp på baksidan av LED-remsan. Och ta först bort trådarna från båda sidorna av lödtråden genom hålen på båda sidor. Slutligen fäst LED -remsan på baksidan av akryl och det är över!

Det är lödningstid! förbereda LED-remsor, 4-poliga kontakter (kontakt eller ledningar) och vad du behöver för lödning. Jag använde lysdioder i tre enheter. Du kan använda en eller två lysdioder om du vill, men jag rekommenderar att du använder tre. När allt material är klart, löd kablarna i både datalinjer, 5v -linjer och jordledningar på LED -remsan.

Steg 7: Lödning av taktbrytare med trådar

Lödtaktbrytare med trådar
Lödtaktbrytare med trådar
Lödtaktbrytare med trådar
Lödtaktbrytare med trådar

Steg 8: Montering -Sätt in bult på sidan = ①

Montering -Sätt in bult på sidan = ①
Montering -Sätt in bult på sidan = ①
Montering -Sätt in bult på sidan = ①
Montering -Sätt in bult på sidan = ①

Nu är det en riktigt enkel del! Placera en bult på var och en av de tre 3D -tryckta sidorna. Anledningen till att använda bultknappen som att använda strukturella bultar och muttrar kommer att kunna göra. När biten är klar lägger jag biten i fodralet och avslutar den med en mutter.

Steg 9: Fäst Ⓛⓣ på Ⓒ = ②

Fäst Ⓛⓣ på Ⓒ = ②
Fäst Ⓛⓣ på Ⓒ = ②
Fäst Ⓛⓣ på Ⓒ = ②
Fäst Ⓛⓣ på Ⓒ = ②

Steg 10: Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③

Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③
Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③
Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③
Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③
Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③
Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③

Steg 11: Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④

Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④

Om du sätter en bult på sidan sätter vi den på sidan och framsidan. Framsidan är akryl, så du måste sätta på den med en dedikerad akrylbindning. Om du fäster akryl på en vanlig bindning kommer det att lämna ett märke.

Steg 12: Koppla Ⓢ till Ⓓ = ⑤

Fäst Ⓢ till Ⓓ = ⑤
Fäst Ⓢ till Ⓓ = ⑤
Fäst Ⓢ till Ⓓ = ⑤
Fäst Ⓢ till Ⓓ = ⑤

Steg 13: Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥

Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥
Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥
Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥
Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥
Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥
Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥

Steg 14: Komplett delmontering

Komplett delmontering
Komplett delmontering
Komplett delmontering
Komplett delmontering
Komplett delmontering
Komplett delmontering

Steg 15: Ett projekts utseende

Image
Image

Steg 16: NeoPixel, Anslutningskablar

NeoPixel, anslutningskablar
NeoPixel, anslutningskablar
NeoPixel, Anslutningskablar
NeoPixel, Anslutningskablar
NeoPixel, Anslutningskablar
NeoPixel, Anslutningskablar

Steg 17: NeoPixel och Arduino Wiring

NeoPixel och Arduino Wiring
NeoPixel och Arduino Wiring

Steg 18: Programmera Arduino

extern flyktig osignerad lång timer0_millis;

#omfatta

#define MODEBTNNUM 3 int ani_mode = 0; osignerad lång preM1, preM2, preM3;

void setup () {

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

void loop () {

för (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } för (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); medan (Wire.available ()) {int x = Wire.read (); // Serial.println (x); om (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} ////////////////////////////////////////////// /////// if (ani_mode == 0) {för (int i = 1; i 3000) {preM1 = current1; för (int i = 1; i 5000) {preM2 = current2; för (int i = 1; i 3000) {preM3 = current3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("timeråterställning"); för (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}

Steg 19:

extern flyktig osignerad lång timer0_millis;

#omfatta

#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 färger [num] [3]; int nyans [num]; int satt [num]; int ljus [num]; int pNumber = 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]; booleskt 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; osignerad lång preMillis1; osignerad lång preM; int ani_mode = 0; int ani2_Counter = 0; int räknare = 0; ///////////////////////////////////////////////// begin (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (ReceiveEvent); för (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); }/////////////////////////////////////////////

void loop () {

if (f_v == 1) {för (int i = 0; i <num; i ++) {hue = 50; satt = 95; ljus = 100; } f_v = 0; } ////////////////////////////////////////////////// falsk; för (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////////////// switch (ani_mode) {case 0: ani0 (); ha sönder; fall 1: ani1 (); ani_mode = 0; ani2_Counter = 0; ha sönder; fall 2: ani2_Counter = 1; ani_mode = 0; ha sönder; fall 3: ani3 (); ani_mode = 0; ani2_Counter = 0; ha sönder; default: readyState (); ha sönder; } om (ani2_Counter == 1) {ani2 (); } setPixels (num); }

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

void ReceiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("fått 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); }////////////////

om (btnMode == true) {

Wire.write (5); // Serial.println ("5 보냄"); } annat {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; gVärde = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; för (int a = 0; a <2; a ++) {nyans [a1 [a] = 100; satt [a1 [a] = 95; ljus [a1 [a] = 100; } för (int b = 0; b <2; b ++) {hue [b1 = 200; satt [b1 = 95; ljus [b1 = 100; } för (int c = 0; c <2; c ++) {hue [c1 [c] = 300; satt [c1 [c] = 95; ljus [c1 [c] = 100; } // Serial.println ("0"); } annars if (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; för (int a = 0; a <8; a ++) {nyans [a2 [a] = 26; satt [a2 [a] = 95; ljus [a2 [a] = 100; } för (int d = 0; d <4; d ++) {hue [d2 [d] = 63; satt [d2 [d] = 95; ljus [d2 [d] = 100; } // Serial.println ("1"); } annars om (pNumber == 2) {// jättekubmönster för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // gul 06 för (int a = 0; a <6; a ++) {hue [a14 [a] = 35; satt [a14 [a] = 95; ljus [a14 [a] = 100; }} annat om (pNumber == 3) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // gul för (int a = 0; a <6; a ++) {hue [a3 [a] = 53; satt [a3 [a] = 95; ljus [a3 [a] = 100; }} annat om (pNumber == 4) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a4 = {34, 35}; // gul int b4 = {47}; // blå int c4 = {48}; // lila

för (int a = 0; a <2; a ++) {nyans [a4 [a] = 53; satt [a4 [a] = 95; ljus [a4 [a] = 100; }

för (int b = 0; b <1; b ++) {nyans [b4 = 210; satt [b4 = 95; ljus [b4 = 100; } för (int c = 0; c <1; c ++) {hue [c4 [c] = 307; satt [c4 [c] = 95; ljus [c4 [c] = 100; }} annat om (pNumber == 5) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a5 = {34, 35, 46, 47, 48, 49};

för (int a = 0; a <6; a ++) {nyans [a5 [a] = 100; satt [a5 [a] = 95; ljus [a5 [a] = 100; }} annat om (pNumber == 6) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // gul för (int a = 0; a <6; a ++) {hue [a6 [a] = 53; satt [a6 [a] = 95; ljus [a6 [a] = 100; }} annat om (pNumber == 7) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {hue [c7 [c] = 307; satt [c7 [c] = 95; ljus [c7 [c] = 100; }} annat om (pNumber == 8) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {nyans [c8 [c] = 307; satt [c8 [c] = 95; ljus [c8 [c] = 100; }} annat om (pNumber == 9) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {nyans [c9 [c] = 307; satt [c9 [c] = 95; ljus [c9 [c] = 100; }} annat om (pNumber == 10) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {nyans [c10 [c] = 307; satt [c10 [c] = 95; ljus [c10 [c] = 100; }} annat om (pNumber == 11) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {hue [c11 [c] = 307; satt [c11 [c] = 95; ljus [c11 [c] = 100; }} annat om (pNumber == 12) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {nyans [c12 [c] = 307; satt [c12 [c] = 95; ljus [c12 [c] = 100; }} annat om (pNumber == 13) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a13 = {34, 35}; // gul int b13 = {47}; // blue int c13 = {48}; // lila för (int a = 0; a <2; a ++) {nyans [a13 [a] = 53; satt [a13 [a] = 95; ljus [a13 [a] = 100; } för (int b = 0; b <1; b ++) {hue [b13 = 210; satt [b13 = 95; ljus [b13 = 100; } för (int c = 0; c <1; c ++) {hue [c13 [c] = 307; satt [c13 [c] = 95; ljus [c13 [c] = 100; }} pNumber = pNumber + 1;

om (pNumber == 14) {

pNumber = 0; }}

void ani2 () {

// Serial.println ("2"); osignerad lång curM = millis ();

if (curM - preM> = 10) {

preM = curM; för (int i = 0; i <num; i ++) {if (nyans = 360) {gValue = -1; } nyans = nyans + gVärde ; } räknare ++; if (counter == 360) {// Serial.print ("counter:"); // Serial.println (räknare); // Serial.println (curM); räknare = 0; ani2_Counter = 0; }}}

void ani3 () {

// Serial.println ("3"); }///////////////////////////////////////////////////////////////////////// / Serial.println ("klar"); }/////////////////////////// {osignerad lång curMillis1 = millis ();

för (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }

if (curMillis1 - preMillis1> b_interval) {

preMillis1 = curMillis1; för (int i = 0; i = 360) {hueV = -1; } annars if (nyans <= 0) {hueV = 1; } nyans = nyans + hueV ; ljus = 100; }}}} ///////////////////////////////////////////////////// void setPixels (int k) {för (int i = 0; i <k; i ++) {H2R_HSBtoRGB (nyans , lör , ljus , färger ); int num1 = i * 3; strip.setPixelColor (num1, färger [0], färger [1], färger [2]); strip.setPixelColor (num1 + 1, färger [0], färger [1], färger [2]); strip.setPixelColor (num1 + 2, färger [0], färger [1], färger [2]); } strip.show (); }

Steg 20: Mönster

Mönster!
Mönster!
Mönster!
Mönster!

Detta projekt har flera trianglar som bildar en sexkantig form. Så du kan skapa stereoskopiska mönster efter hur du designar ljus! Tryck bara på varje bit så kommer olika färger att graderas, och när färgen du vill ha kommer ut, tryck bara på handen du tryckte på så fortsätter den att lysa vackert med den färg du ville ha!

Rekommenderad: