Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Lad os klare det
- Trin 2: Forberedelse af materiale
- Trin 3: Skæring af akryl
- Trin 4: Lav sider med 3D -printere
- Trin 5: Optagelse
- Trin 6: Fastgør LED Strip + Lodning LED Strip (NeoPixel) med ledninger
- Trin 7: Lodningstaktkontakt med ledninger
- Trin 8: Montering -Sæt bolt på siden = ①
- Trin 9: Sæt Ⓛⓣ på Ⓒ = ②
- Trin 10: Montering -Brug Ⓦ og Ⓝ til at kombinere ① og ② = ③
- Trin 11: Montering -Anbring Ⓐⓔ og ③ Brug af en akrylbinding = ④
- Trin 12: Vedhæft Ⓢ til Ⓓ = ⑤
- Trin 13: Montering -Kombiner ④ og ⑤ Brug af Ⓦ og Ⓝ = ⑥
- Trin 14: Komplet stykke samling
- Trin 15: Arbejdets udseende af et projekt
- Trin 16: NeoPixel, forbindelsesledninger
- Trin 17: NeoPixel og Arduino ledninger
- Trin 18: Programmer Arduino
- Trin 19:
- Trin 20: Mønstre
Video: Lys mig op !: 20 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
medlemmer af projektgruppen
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
Hvad hvis du kunne røre og designe lyset? Hvordan ville det føles, hvis du havde et smukt lysmønster, som du selv har designet med en interessant animation? Lys mig op vil være en interessant skitsebog, der rører og designer selve lyset og laver interessante mønstre! Dette projekt har flere trekanter, der danner en sekskantet form. Så du kan oprette stereoskopiske mønstre efter, hvordan du designer lys! Bare tryk på hvert stykke, og forskellige farver vil blive gradueret, og når den farve, du ønsker, kommer frem, skal du bare trykke på den hånd, du trykker på, og den vil fortsat skinne smukt med den farve, du ønskede! Projektet brugte omkring 312 trekanter, men det kunne skabe et flot lys, der fungerer godt med 6 trekanter. Lad mig nu vise dig, hvordan du gør det med seks trekanter. Følg trinene, og du får dit eget vidunderlige arbejde!
Forbrugsvarer
Hardware: Arduino (jeg brugte arduino mega 2560), akryl (klar, hvid), LED Strip (NeoPixel), diffusorfilm, knap, 4 -polet stik, Wire, printkort, strømforsyning
Værktøjer: Laserstyret skæremaskine, 3D-printer
Trin 1: Lad os klare det
Lad os lave dette søde sekskantede stykke med mig!
Light Me Up er lavet med 312 trekanter, men selv 6 trekanter kan designe vidunderligt lys. Hvis du vil lave det i større målestok, kan du lave det ved at henvise til filen vedhæftet nedenfor.
Trin 2: Forberedelse af materiale
Trin 3: Skæring af akryl
Brug en laserskærer til at skære forsiden og bagsiden af hver del. Farven på akrylen på bagsiden kan være hvad du vil, men sørg for at bruge gennemsigtig akryl, fordi fronten skal dæmpes! Hvis du bruger en anden akrylfarve end gennemsigtig, kan du ikke se lyset godt.
Trin 4: Lav sider med 3D -printere
Nu er det tid til at lave siderne af hvert stykke. Lad os klare det! 3D -modelleringsfilerne på siden er vedhæftet nedenfor. Vi brugte PLA til at lave sider PLA er stærkere og mindre sammentrækninger end ABS, så filamenter anbefales at bruge PLA.
Trin 5: Optagelse
Lad os nu lægge en let diffusionsfilm på akryl på forsiden. Hvis du lægger film på den, breder den sig ud og lyser meget flottere. Klip først filmen i form af en trekant. (Du må hellere klippe filmen større end den udskårne akryl) Det er let at lægge film på, som en beskyttelsesfilm på din telefon. Hvis du vil tippe her, kan du bruge et kort til at skubbe det, så det kan sidde pænt fast!
Trin 6: Fastgør LED Strip + Lodning LED Strip (NeoPixel) med ledninger
Hvis du har været så god til at lodde LED -strimlen, er det tid til at sætte LED -strimlen på bagsiden. Først skal du fastgøre en limpistol eller tosidet tape på bagsiden af LED-strimlen. Og fjern først ledningerne fra begge sider af loddetråden gennem hullerne på begge sider. Til sidst, fastgør LED -strimlen til bagsiden af akryl, og det er slut!
Det er loddetid! forbered LED-strimler, 4-bens stik (stik eller ledninger) og hvad du har brug for til lodning. Jeg brugte lysdioder i tre enheder. Du kan bruge en eller to lysdioder, hvis du vil, men jeg anbefaler at bruge tre. Når alle materialer er klar, loddes ledningerne i både datalinjer, 5v -linjer og jordlinjer i LED -strimlen.
Trin 7: Lodningstaktkontakt med ledninger
Trin 8: Montering -Sæt bolt på siden = ①
Nu er det en rigtig let del! Placer en bolt på hver af de tre 3D -trykte sider. Grunden til at bruge boltknappen som at bruge en strukturel bolte og møtrikker vil være i stand til at gøre. Når stykket er færdigt, lægger jeg stykket i sagen og afslutter det med en møtrik.
Trin 9: Sæt Ⓛⓣ på Ⓒ = ②
Trin 10: Montering -Brug Ⓦ og Ⓝ til at kombinere ① og ② = ③
Trin 11: Montering -Anbring Ⓐⓔ og ③ Brug af en akrylbinding = ④
Hvis du sætter en bolt på siden, sætter vi den på siden og fronten. Fronten er akryl, så du skal tage den på med en dedikeret akrylbinding. Hvis du vedhæfter akryl til en almindelig binding, efterlader det et mærke.
Trin 12: Vedhæft Ⓢ til Ⓓ = ⑤
Trin 13: Montering -Kombiner ④ og ⑤ Brug af Ⓦ og Ⓝ = ⑥
Trin 14: Komplet stykke samling
Trin 15: Arbejdets udseende af et projekt
Trin 16: NeoPixel, forbindelsesledninger
Trin 17: NeoPixel og Arduino ledninger
Trin 18: Programmer Arduino
ekstern flygtig usigneret lang timer0_millis;
#omfatte
#define MODEBTNNUM 3 int ani_mode = 0; usigneret lang preM1, preM2, preM3;
ugyldig opsætning () {
Wire.begin (); for (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Serial.begin(9600); }
void loop () {
for (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } for (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); mens (Wire.available ()) {int x = Wire.read (); // Serial.println (x); hvis (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} //////////////////////////////////////////////////// /////// hvis (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 ("timer reset"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}
Trin 19:
ekstern flygtig usigneret lang timer0_millis;
#omfatte
#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 farver [num] [3]; int nuance [num]; int sad [num]; int lyst [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]; boolsk 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; usigneret lang preMillis1; usigneret lang præM; int ani_mode = 0; int ani2_Counter = 0; int tæller = 0; //////////////////////////////////////////////////// ugyldig opsætning () {Wire. begin (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (modtageevent); for (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); } /////////////////////////////////////////////////
void loop () {
hvis (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; sat = 95; lys = 100; } f_v = 0; } ////////////////////////////////////////////////// falsk; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////////////// switch (ani_mode) {case 0: ani0 (); pause; sag 1: ani1 (); ani_mode = 0; ani2_Counter = 0; pause; case 2: ani2_Counter = 1; ani_mode = 0; pause; sag 3: ani3 (); ani_mode = 0; ani2_Counter = 0; pause; standard: readyState (); pause; } hvis (ani2_Counter == 1) {ani2 (); } setPixels (num); }
///////////////////////////////////////////
void modtageevent (int howMany) {int x = Wire.read (); hvis (x == 5) {// Serial.println ("modtaget 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } ///////////////////////////////////////////
hvis (btnMode == true) {
Wire.write (5); // Serial.println ("5 보냄"); } andet {Wire.write (0); }
}
void ani0 () {
// Serial.println ("0"); }
void ani1 () {
// Serial.println ("1"); hvis (pNumber == 0) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a <2; a ++) {nuance [a1 [a] = 100; sat [a1 [a] = 95; lys [a1 [a] = 100; } for (int b = 0; b <2; b ++) {hue [b1 = 200; sat [b1 = 95; lys [b1 = 100; } for (int c = 0; c <2; c ++) {hue [c1 [c] = 300; sat [c1 [c] = 95; lys [c1 [c] = 100; } // Serial.println ("0"); } ellers hvis (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 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 ++) {hue [a2 [a] = 26; sat [a2 [a] = 95; lys [a2 [a] = 100; } for (int d = 0; d <4; d ++) {hue [d2 [d] = 63; sat [d2 [d] = 95; lys [d2 [d] = 100; } // Serial.println ("1"); } ellers hvis (pNumber == 2) {// kæmpe terningmønster for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // gul 06 for (int a = 0; a <6; a ++) {hue [a14 [a] = 35; sat [a14 [a] = 95; lys [a14 [a] = 100; }} ellers hvis (pNumber == 3) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // gul for (int a = 0; a <6; a ++) {hue [a3 [a] = 53; sat [a3 [a] = 95; lys [a3 [a] = 100; }} ellers hvis (pNumber == 4) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int a4 = {34, 35}; // gul int b4 = {47}; // blå int c4 = {48}; // lilla
for (int a = 0; a <2; a ++) {hue [a4 [a] = 53; sat [a4 [a] = 95; lys [a4 [a] = 100; }
for (int b = 0; b <1; b ++) {hue [b4 = 210; sat [b4 = 95; lys [b4 = 100; } for (int c = 0; c <1; c ++) {hue [c4 [c] = 307; sat [c4 [c] = 95; lys [c4 [c] = 100; }} ellers hvis (pNumber == 5) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int a5 = {34, 35, 46, 47, 48, 49};
for (int a = 0; a <6; a ++) {hue [a5 [a] = 100; sat [a5 [a] = 95; lys [a5 [a] = 100; }} ellers hvis (pNumber == 6) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // gul for (int a = 0; a <6; a ++) {hue [a6 [a] = 53; sat [a6 [a] = 95; lys [a6 [a] = 100; }} ellers hvis (pNumber == 7) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // lilla for (int c = 0; c <6; c ++) {hue [c7 [c] = 307; sat [c7 [c] = 95; lys [c7 [c] = 100; }} ellers hvis (pNumber == 8) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // lilla for (int c = 0; c <6; c ++) {hue [c8 [c] = 307; sat [c8 [c] = 95; lys [c8 [c] = 100; }} ellers hvis (pNumber == 9) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // lilla for (int c = 0; c <6; c ++) {hue [c9 [c] = 307; sat [c9 [c] = 95; lys [c9 [c] = 100; }} ellers hvis (pNumber == 10) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // lilla for (int c = 0; c <6; c ++) {hue [c10 [c] = 307; sat [c10 [c] = 95; lys [c10 [c] = 100; }} ellers hvis (pNumber == 11) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // lilla for (int c = 0; c <6; c ++) {hue [c11 [c] = 307; sat [c11 [c] = 95; lys [c11 [c] = 100; }} ellers hvis (pNumber == 12) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // lilla for (int c = 0; c <6; c ++) {hue [c12 [c] = 307; sat [c12 [c] = 95; lys [c12 [c] = 100; }} ellers hvis (pNumber == 13) {for (int i = 0; i <num; i ++) {bright = 0; gVærdi = 1; } int a13 = {34, 35}; // gul int b13 = {47}; // blå int c13 = {48}; // lilla for (int a = 0; a <2; a ++) {hue [a13 [a] = 53; sat [a13 [a] = 95; lys [a13 [a] = 100; } for (int b = 0; b <1; b ++) {hue [b13 = 210; sat [b13 = 95; lys [b13 = 100; } for (int c = 0; c <1; c ++) {hue [c13 [c] = 307; sat [c13 [c] = 95; lys [c13 [c] = 100; }} pNummer = pNummer + 1;
hvis (pNumber == 14) {
pNummer = 0; }}
void ani2 () {
// Serial.println ("2"); usigneret lang curM = millis ();
hvis (curM - preM> = 10) {
preM = curM; for (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } farvetone = farvetone + gVærdi ; } tæller ++; if (counter == 360) {// Serial.print ("counter:"); // Serial.println (tæller); // Serial.println (curM); tæller = 0; ani2_Counter = 0; }}}
void ani3 () {
// Serial.println ("3"); } /////////////////////////////////////////////////////// void ReadyState () / Serial.println ("klar"); } /////////////////////////////////// {usigneret lang curMillis1 = millis ();
for (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }
hvis (curMillis1 - preMillis1> b_interval) {
preMillis1 = curMillis1; for (int i = 0; i = 360) {hueV = -1; } ellers hvis (hue <= 0) {hueV = 1; } hue = hue + hueV ; lys = 100; }}}} ///////////////////////////////////////////////////// void setPixels (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (nuance , sat , lyse , farver ); int num1 = i * 3; strip.setPixelColor (num1, farver [0], farver [1], farver [2]); strip.setPixelColor (num1 + 1, farver [0], farver [1], farver [2]); strip.setPixelColor (num1 + 2, farver [0], farver [1], farver [2]); } strip.show (); }
Trin 20: Mønstre
Dette projekt har flere trekanter, der danner en sekskantet form. Så du kan oprette stereoskopiske mønstre efter, hvordan du designer lys! Bare tryk på hvert stykke, og forskellige farver vil blive gradueret, og når den farve, du ønsker, kommer frem, skal du bare trykke på den hånd, du har trykket på, og den vil fortsætte med at skinne smukt med den farve, du ønskede!
Anbefalede:
"Alexa, Send mig teksten til _____": 9 trin (med billeder)
"Alexa, Send mig teksten til _____": Lytter du til en sang, som du vil synge sammen med? Du skulle normalt gå igennem den hårde opgave med at indtaste sangens navn i google efterfulgt af ordet " lyrics ". Du laver normalt også en rigelig mængde stavefejl, klikker forkert
Lys mig op! en LED-stripkontrol i realtid på tværs af platforme: 5 trin (med billeder)
Lys mig op! en LED-stripkontrol i realtid på tværs af platforme: LightMeUp! er et system, jeg opfandt til styring af en RGB LED-strip i realtid, samtidig med at omkostningerne blev holdt lave og ydeevnen høj. Serveren er skrevet i Node.js og derfor krydsplatformbar. I mit eksempel bruger jeg en Raspberry Pi 3B til langtidsbrug
Test af temperatursensorer - hvilken for mig ?: 15 trin (med billeder)
Test af temperatursensorer - hvilken for mig ?: En af de første sensorer, som nybegyndere til fysisk computing vil prøve, er noget for at måle temperaturen. Fire af de mest populære sensorer er TMP36, som har analog udgang og har brug for en analog til digital konverter, DS18B20, hv
Musikreaktivt lys -- Sådan laves superenkelt musikreaktivt lys til at gøre skrivebordet fantastisk: 5 trin (med billeder)
Music Reactive Light || Sådan laver du Super Simple Music Reactive Light for Making Desktop Awsome .: Hey whats up guys, I dag vil vi bygge et meget interessant projekt. I dag bygger vi musik reaktivt lys. LED'en ændrer dens lysstyrke iht. basen, der faktisk er lavfrekvent lydsignal. Det er meget enkelt at bygge.Vi vil
Dødens bold: eller hvordan jeg lærte at stoppe med at bekymre mig og elske Apple Pro -højttalere: 11 trin (med billeder)
Dødens bold: eller hvordan jeg lærte at stoppe med at bekymre mig og elske Apple Pro -højttalere: Jeg har altid sagt, at siden jeg bortskaffede den " beige æske " har Apple altid været førende inden for det industrielle designområde. Integrationen af form og funktion kan ikke berøres af nogen anden producent i nogen branche (Porsche kommer tæt på). Det er