INHOUDSOPGAWE:
- Voorrade
- Stap 1: Kom ons maak dit
- Stap 2: Materiaalvoorbereiding
- Stap 3: Sny akriel
- Stap 4: Maak kante met 3D -drukkers
- Stap 5: Verfilming
- Stap 6: Heg LED -strook + soldeer -LED -strook (NeoPixel) aan met drade
- Stap 7: Soldeer -taktskakelaar met drade
- Stap 8: Monteer -Steek die bout aan die kant in = ①
- Stap 9: Heg Ⓛⓣ aan die Ⓒ = ②
- Stap 10: Monteer -Gebruik Ⓦ en Ⓝ om ① en ② = ③ te kombineer
- Stap 11: Montering -Bevestig Ⓐⓔ en ③ Met behulp van 'n akrielverf = ④
- Stap 12: Heg Ⓢ aan Ⓓ = ⑤
- Stap 13: Monteer -Kombineer ④ en ⑤ Gebruik Ⓦ en Ⓝ = ⑥
- Stap 14: Voltooi stuk samestelling
- Stap 15: Die werksvoorkoms van 'n projek
- Stap 16: NeoPixel, aansluitbedrading
- Stap 17: NeoPixel en Arduino Bedrading
- Stap 18: Programmeer die Arduino
- Stap 19:
- Stap 20: Patrone
Video: Lig my op !: 20 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
lede van die projekspan
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
Wat as u die lig kan aanraak en ontwerp? Hoe sou dit voel as jy 'n pragtige ligpatroon gehad het wat jy self ontwerp het met 'n interessante animasie? Lig my op 'n interessante sketsboek wat die lig self raak en ontwerp en interessante patrone maak! Hierdie projek het verskeie driehoeke wat 'n seshoekige vorm. U kan dus stereoskopiese patrone skep volgens die manier waarop u lig ontwerp! Druk net op elke stuk en verskillende kleure word gegradeer, en as die kleur wat u wil uitkom, slaan u net op die hand wat u gedruk het, en dit sal pragtig bly skyn met die kleur wat u wou hê! Die projek het ongeveer 312 driehoeke gebruik, maar dit kan skep 'n mooi lig wat goed werk met 6 driehoeke. Laat ek u nou wys hoe u dit met ses driehoeke kan maak. Volg die stappe en u sal u eie wonderlike werk hê!
Voorrade
Hardeware: Arduino (ek het arduino mega 2560 gebruik), akriel (helder, wit), LED -strook (NeoPixel), verspreiderfilm, knoppie, 4 -pins aansluiting, draad, printplaat, kragtoevoer
Gereedskap: Lasergeleide snymasjien, 3D-drukker
Stap 1: Kom ons maak dit
Kom ons maak hierdie oulike seshoekige stuk saam met my!
Die Light Me Up word gemaak met 312 driehoeke, maar selfs 6 driehoeke kan wonderlike lig ontwerp. As u dit op 'n groter skaal wil maak, kan u dit maak deur na die onderstaande lêer te verwys.
Stap 2: Materiaalvoorbereiding
Stap 3: Sny akriel
Gebruik 'n lasersnyer om die voor- en agterkant van elke deel te sny. Die kleur van die akriel aan die agterkant kan alles wees wat u wil, maar gebruik deursigtige akriel, want die voorkant moet verdof word! As u 'n ander kleur as akriel gebruik, sal u die lig nie goed sien nie.
Stap 4: Maak kante met 3D -drukkers
Nou is dit tyd om die kante van elke stuk te maak. Die 3D -modellêers aan die kant is hieronder aangeheg. Ons het die PLA gebruik om sye te maak. Die PLA is sterker en het minder kontraksies as die ABS, daarom word filamente aanbeveel om die PLA te gebruik.
Stap 5: Verfilming
Laat ons nou 'n ligte diffusiefilm op die akriel aan die voorkant plaas. As jy film daarop sit, versprei dit en skyn dit baie mooier. Sny die film eers in die vorm van 'n driehoek. (Dit is beter om die film groter as die gesnyde akriel te sny) Dit is eenvoudig om 'n film op 'n telefoon te plaas. As u hier wil tip, kan u 'n kaart gebruik om dit te druk sodat dit netjies kan vassteek!
Stap 6: Heg LED -strook + soldeer -LED -strook (NeoPixel) aan met drade
As u so goed was met die soldeer van die LED -strook, is dit tyd om die LED -strook aan die agterkant te plaas. Maak eers 'n gomgeweer of dubbelzijdige band aan die agterkant van die LED-strook vas. En verwyder eers die drade van beide kante van die soldeerdraad deur die gate aan weerskante. Bevestig uiteindelik die LED -strook aan die agterkant van akriel en dit is verby!
Dit is soldeertyd! berei LED-stroke, 4-pins verbindings (connector of drade) voor en wat u benodig vir soldeer. Ek het LED's in drie eenhede gebruik. U kan een of twee LED's gebruik as u wil, maar ek beveel aan dat u drie gebruik. As al die materiaal gereed is, soldeer die drade in beide data lyne, 5v lyne en grondlyne van die LED strook.
Stap 7: Soldeer -taktskakelaar met drade
Stap 8: Monteer -Steek die bout aan die kant in = ①
Nou is dit 'n baie maklike deel! Plaas een bout op elk van die drie 3D -gedrukte sye. Die rede waarom u die boutknoppie kan gebruik, soos die gebruik van boute en moere. As die stuk klaar is, plaas ek die stuk in die kas en maak dit klaar met 'n moer.
Stap 9: Heg Ⓛⓣ aan die Ⓒ = ②
Stap 10: Monteer -Gebruik Ⓦ en Ⓝ om ① en ② = ③ te kombineer
Stap 11: Montering -Bevestig Ⓐⓔ en ③ Met behulp van 'n akrielverf = ④
As u 'n bout aan die kant sit, plaas ons dit aan die kant en voorkant. Die voorkant is van akriel, sodat u dit met 'n spesiale akrielverband moet aantrek. As u akriel aan 'n gewone kleefband heg, sal dit 'n spoor agterlaat.
Stap 12: Heg Ⓢ aan Ⓓ = ⑤
Stap 13: Monteer -Kombineer ④ en ⑤ Gebruik Ⓦ en Ⓝ = ⑥
Stap 14: Voltooi stuk samestelling
Stap 15: Die werksvoorkoms van 'n projek
Stap 16: NeoPixel, aansluitbedrading
Stap 17: NeoPixel en Arduino Bedrading
Stap 18: Programmeer die Arduino
eksterne vlugtige ongetekende lang timer0_millis;
#insluit
#define MODEBTNNUM 3 int ani_mode = 0; ongetekende lang preM1, preM2, preM3;
ongeldige opstelling () {
Wire.begin (); vir (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Serial.begin(9600); }
leemte -lus () {
for (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } vir (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); terwyl (Wire.available ()) {int x = Wire.read (); // Serial.println (x); as (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}}}/////////////////////////////////////////////////////// /////// if (ani_mode == 0) {for (int i = 1; i 3000) {preM1 = current1; vir (int i = 1; i 5000) {preM2 = current2; vir (int i = 1; i 3000) {preM3 = current3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("timer herstel"); vir (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_modus); //Serial.println("3000 "); Wire.endTransmission (i); }}}}
Stap 19:
eksterne vlugtige ongetekende lang timer0_millis;
#insluit
#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 kleure [num] [3]; int hue [num]; int sat [num]; int helder [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]; boolean 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; ongetekende lang preMillis1; ongetekende lang preM; int ani_mode = 0; int ani2_Counter = 0; int teller = 0; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// begin (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (ontvangEvent); vir (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); }//////////////////////////////////////////////
leemte -lus () {
as (f_v == 1) {vir (int i = 0; i <num; i ++) {hue = 50; sat = 95; helder = 100; } f_v = 0; } ////////////////////////////////////////////////// onwaar; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////////////// switch (ani_mode) {case 0: ani0 (); breek; saak 1: ani1 (); ani_mode = 0; ani2_Teller = 0; breek; geval 2: ani2_Teller = 1; ani_mode = 0; breek; saak 3: ani3 (); ani_mode = 0; ani2_Teller = 0; breek; verstek: readyState (); breek; } as (ani2_Counter == 1) {ani2 (); } setPixels (num); }
///////////////////////////////////////////
leeg ontvangEvent (int howMany) {int x = Wire.read (); as (x == 5) {// Serial.println ("ontvang 5"); ani_mode = 0; } ani_modus = x; // Serial.println (ani_mode); }///////////////leeg versoekEvent () {
as (btnMode == waar) {
Draad.skryf (5); // Serial.println ("5 보냄"); } anders {Wire.write (0); }
}
leegte ani0 () {
// Serial.println ("0"); }
leegte ani1 () {
// Serial.println ("1"); as (pNumber == 0) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; vir (int a = 0; a <2; a ++) {tint [a1 [a] = 100; sat [a1 [a] = 95; helder [a1 [a] = 100; } vir (int b = 0; b <2; b ++) {tint [b1 = 200; sat [b1 = 95; helder [b1 = 100; } vir (int c = 0; c <2; c ++) {hue [c1 [c] = 300; sat [c1 [c] = 95; helder [c1 [c] = 100; } // Serial.println ("0"); } anders as (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; vir (int a = 0; a <8; a ++) {tint [a2 [a] = 26; sat [a2 [a] = 95; helder [a2 [a] = 100; } vir (int d = 0; d <4; d ++) {tint [d2 [d] = 63; sat [d2 [d] = 95; helder [d2 [d] = 100; } // Serial.println ("1"); } anders as (pNumber == 2) {// reuse -kubuspatroon vir (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // geel 06 vir (int a = 0; a <6; a ++) {hue [a14 [a] = 35; sat [a14 [a] = 95; helder [a14 [a] = 100; }} anders as (pNumber == 3) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // geel vir (int a = 0; a <6; a ++) {hue [a3 [a] = 53; sat [a3 [a] = 95; helder [a3 [a] = 100; }} anders if (pNumber == 4) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int a4 = {34, 35}; // geel int b4 = {47}; // blou int c4 = {48}; // pers
vir (int a = 0; a <2; a ++) {tint [a4 [a] = 53; sat [a4 [a] = 95; helder [a4 [a] = 100; }
vir (int b = 0; b <1; b ++) {tint [b4 = 210; sat [b4 = 95; helder [b4 = 100; } vir (int c = 0; c <1; c ++) {hue [c4 [c] = 307; sat [c4 [c] = 95; helder [c4 [c] = 100; }} anders if (pNumber == 5) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int a5 = {34, 35, 46, 47, 48, 49};
vir (int a = 0; a <6; a ++) {tint [a5 [a] = 100; sat [a5 [a] = 95; helder [a5 [a] = 100; }} anders if (pNumber == 6) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // geel vir (int a = 0; a <6; a ++) {hue [a6 [a] = 53; sat [a6 [a] = 95; helder [a6 [a] = 100; }} anders if (pNumber == 7) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // pers vir (int c = 0; c <6; c ++) {hue [c7 [c] = 307; sat [c7 [c] = 95; helder [c7 [c] = 100; }} anders if (pNumber == 8) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // pers vir (int c = 0; c <6; c ++) {tint [c8 [c] = 307; sat [c8 [c] = 95; helder [c8 [c] = 100; }} anders as (pNumber == 9) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // pers vir (int c = 0; c <6; c ++) {tint [c9 [c] = 307; sat [c9 [c] = 95; helder [c9 [c] = 100; }} anders if (pNumber == 10) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // pers vir (int c = 0; c <6; c ++) {tint [c10 [c] = 307; sat [c10 [c] = 95; helder [c10 [c] = 100; }} anders if (pNumber == 11) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // pers vir (int c = 0; c <6; c ++) {hue [c11 [c] = 307; sat [c11 [c] = 95; helder [c11 [c] = 100; }} anders as (pNumber == 12) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // pers vir (int c = 0; c <6; c ++) {tint [c12 [c] = 307; sat [c12 [c] = 95; helder [c12 [c] = 100; }} anders if (pNumber == 13) {for (int i = 0; i <num; i ++) {bright = 0; gWaarde = 1; } int a13 = {34, 35}; // geel int b13 = {47}; // blou int c13 = {48}; // pers vir (int a = 0; a <2; a ++) {tint [a13 [a] = 53; sat [a13 [a] = 95; helder [a13 [a] = 100; } vir (int b = 0; b <1; b ++) {hue [b13 = 210; sat [b13 = 95; helder [b13 = 100; } vir (int c = 0; c <1; c ++) {hue [c13 [c] = 307; sat [c13 [c] = 95; helder [c13 [c] = 100; }} pNummer = pNommer + 1;
as (pNommer == 14) {
pNommer = 0; }}
leegte ani2 () {
// Serial.println ("2"); ongetekende lang curM = millis ();
as (curM - preM> = 10) {
preM = curM; vir (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } hue = tint + gValue ; } teller ++; if (counter == 360) {// Serial.print ("counter:"); // Serial.println (teller); // Serial.println (curM); teller = 0; ani2_Teller = 0; }}}
leegte ani3 () {
// Serial.println ("3"); }////////////////////////////////////////////////////////////// / Serial.println ("gereed"); } /////////////////////////////////////////////////////void btnEvent (int b_interval) {ongetekende lang curMillis1 = millis ();
vir (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }
if (curMillis1 - preMillis1> b_interval) {
preMillis1 = curMillis1; vir (int i = 0; i = 360) {hueV = -1; } anders as (tint <= 0) {hueV = 1; } hue = tint + hueV ; helder = 100; }}}}}//////////////////////////////////////////// -/ int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (tint , sat , helder , kleure ); int num1 = i * 3; strip.setPixelColor (num1, kleure [0], kleure [1], kleure [2]); strip.setPixelColor (num1 + 1, kleure [0], kleure [1], kleure [2]); strip.setPixelColor (num1 + 2, kleure [0], kleure [1], kleure [2]); } strip.show (); }
Stap 20: Patrone
Hierdie projek het verskeie driehoeke wat 'n seskantige vorm vorm. U kan dus stereoskopiese patrone skep volgens die manier waarop u lig ontwerp! Druk net op elke stuk en die verskillende kleure word gegradeer, en as die kleur wat u wil uitkom, druk net op die hand wat u gedruk het, en dit sal pragtig bly skyn met die kleur wat u wil hê!
Aanbeveel:
Slim lessenaar LED -lig - Slim beligting met Arduino - Neopixels -werkruimte: 10 stappe (met foto's)
Slim lessenaar LED -lig | Slim beligting met Arduino | Neopixels Workspace: Ons spandeer deesdae baie tyd tuis, studeer en werk virtueel, so waarom nie ons werkruimte groter maak met 'n pasgemaakte en slim beligtingstelsel Arduino en Ws2812b LED's nie. Hier wys ek u hoe u u Smart bou LED -lessenaar op die tafel wat
LED -lig (te) op batterye met sonoplaai: 11 stappe (met foto's)
LED -lig (te) met batterye Met sonoplaai: my vrou leer mense hoe om seep te maak, die meeste van haar klasse was in die aand en hier in die winter word dit donker omstreeks 16:30, sommige van haar studente het probleme ondervind om ons huis. Ons het 'n bord voor, maar selfs met 'n straatlig
Draagbare binnenshuise lig met 100W LED -chip: 26 stappe (met foto's)
Draagbare binnenshuise lig met 100W LED -chip: in hierdie instruksies / video sal ek jou wys hoe ek 'n draagbare binnenshuise lig gemaak het met 'n 100W LED -chip wat aangedryf word met 'n 19V 90W -kragtoevoer vanaf 'n ou skootrekenaar. UPDATE 2 (FINALE): temperatuur rondom die LED (37C stabiel by 85W na 30 minute in 'n 20C -kamer)
Kosmiese lig met LED's ingebed in hars: 11 stappe (met foto's)
Kosmiese lig met LED's ingebed in hars: ek wou 'n lig maak uit hars wat LED's gebruik het, maar sonder soldeer (ek weet dat baie mense nie soldeer nie, en daar is waarskynlik 'n paar soos ek wat dit kan doen, maar moenie ' Ek hou regtig daarvan om dit te doen.) Dit word aangedryf deur 'n paar muntbatterye, so dit is maklik
Musiekreaktiewe lig -- Hoe om 'n super -eenvoudige musiekreaktiewe lig te maak vir die maak van 'n tafelblad: 5 stappe (met foto's)
Musiekreaktiewe lig || Hoe om 'n super -eenvoudige musiekreaktiewe lig te maak om lessenaars te maak: Hallo ouens, vandag bou ons 'n baie interessante projek. Vandag gaan ons musiek reaktiewe lig bou. Die LED sal sy helderheid verander volgens die bas wat eintlik 'n lae-frekwensie klanksein is. Dit is baie eenvoudig om te bou. Ons sal