Tartalomjegyzék:
- Kellékek
- Lépés: Készítsük el
- 2. lépés: Az anyag előkészítése
- Lépés: Az akril vágása
- 4. lépés: Készítsen oldalakat 3D nyomtatókkal
- 5. lépés: Filmezés
- 6. lépés: Csatlakoztassa a LED -csíkot + forrasztó LED -csíkot (NeoPixel) vezetékekkel
- 7. lépés: Forrasztó Tact Switch vezetékekkel
- 8. lépés: Összeszerelés -Helyezze be a csavart az oldalon = ①
- 9. lépés: Csatlakoztassa a Ⓛⓣ -t a Ⓒ = ② -hez
- 10. lépés: Összeszerelés -Használja a Ⓦ és Ⓝ gombokat a ① és ② = ③ kombinálásához
- 11. lépés: Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
- 12. lépés: Csatolja a Ⓢ -t a Ⓓ = ⑤ -hez
- 13. lépés: Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával
- 14. lépés: A darab összeszerelése
- 15. lépés: A projekt működési megjelenése
- 16. lépés: NeoPixel, csatlakozóvezetékek
- 17. lépés: NeoPixel és Arduino vezetékek
- 18. lépés: Programozza be az Arduino programot
- 19. lépés:
- 20. lépés: Minták
Videó: Light Me Up!: 20 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
projektcsapat tagjai
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
Mi lenne, ha megérintené és megtervezné a fényt? Milyen érzés lenne, ha gyönyörű fénymintája lenne, amelyet érdekes animációval tervezne? A Light me up egy érdekes vázlatfüzet lesz, amely megérinti és megtervezi a fényt, és érdekes mintákat készít! Ez a projekt több háromszöget tartalmaz, amelyek egy hatszög alakú. Tehát sztereoszkópikus mintákat hozhat létre a fény tervezése szerint! Csak nyomja meg az egyes darabokat, és a különböző színek fokozatba kerülnek, és amikor a kívánt szín megjelenik, nyomja meg a lenyomott kezet, és továbbra is gyönyörűen ragyog a kívánt színnel! A projekt körülbelül 312 háromszöget használt, de létrehozhat szép fény, amely jól működik 6 háromszöggel. Most hadd mutassam meg, hogyan kell elkészíteni hat háromszöggel. Kövesse a lépéseket, és csodálatos munkája lesz!
Kellékek
Hardver: Arduino (én arduino mega 2560 -at használtam), akril (átlátszó, fehér), LED -szalag (NeoPixel), diffúzorfilm, gomb, 4 tűs csatlakozó, vezeték, áramkör, tápegység
Eszközök: Lézerrel vezérelt vágógép, 3D nyomtató
Lépés: Készítsük el
Készítsük el velem ezt az aranyos hatszögletű darabot!
A Light Me Up 312 háromszögből készül, de akár 6 háromszög is csodálatos fényt képes tervezni. Ha nagyobb méretben szeretné elkészíteni, akkor az alábbi csatolt fájlra hivatkozva készítheti el.
2. lépés: Az anyag előkészítése
Lépés: Az akril vágása
Lézervágóval vágja le az egyes részek elejét és hátulját. A hátlapon lévő akril színe bármi lehet, de ügyeljen arra, hogy átlátszó akrilt használjon, mert az elejét halványítani kell! Ha az átlátszó színtől eltérő színű akrilt használ, nem fogja jól látni a fényt.
4. lépés: Készítsen oldalakat 3D nyomtatókkal
Most itt az ideje, hogy elkészítsük az egyes darabok oldalait. Készítsük el! Az oldalon található 3D -s modellező fájlok az alábbiakban találhatók. A PLA -t használtuk az oldalak készítéséhez A PLA erősebb és kevésbé összehúzódik, mint az ABS, ezért a szálak használata ajánlott a PLA használatához.
5. lépés: Filmezés
Most tegyünk egy könnyű diffúziós filmet az elülső akrilra. Ha fóliát teszel rá, akkor szétterül és sokkal szebb lesz. Először vágja le a fóliát háromszög alakúra. (Jobb, ha nagyobbra vágja a fóliát, mint a kivágott akril) Egyszerű fóliát felhelyezni a telefonra. Ha itt borravalót szeretne adni, akkor kártya segítségével tolhatja, hogy szépen beragasztható legyen!
6. lépés: Csatlakoztassa a LED -csíkot + forrasztó LED -csíkot (NeoPixel) vezetékekkel
Ha ennyire jól forrasztotta a LED szalagot, akkor ideje a LED szalagot a hátlapra helyezni. Először ragasztópisztolyt vagy kétoldalas szalagot rögzítsen a LED szalag hátuljára. És először távolítsa el a vezetékeket a forrasztóhuzal mindkét oldaláról a mindkét oldalon lévő lyukakon keresztül. Végül rögzítse a LED csíkot a hátsó akrilhoz, és vége!
Itt a forrasztás ideje! készítse elő a LED szalagokat, a 4 tűs csatlakozókat (csatlakozó vagy vezetékek) és a forrasztáshoz szükséges elemeket. Három egységben használtam LED -eket. Ha akar, használhat egy vagy két LED -et, de azt javaslom, hogy használjon hármat. Ha minden anyag kész, forrasztja a vezetékeket a LED szalag mindkét adatvezetékében, 5 V -os és földvezetékében.
7. lépés: Forrasztó Tact Switch vezetékekkel
8. lépés: Összeszerelés -Helyezze be a csavart az oldalon = ①
Most ez egy igazán egyszerű rész! Helyezzen egy csavart a három 3D nyomtatott oldal mindegyikére. Az ok, amiért a csavargomb, mint a szerkezeti csavarok és anyák használata lehetséges. Ha a darab kész, beteszem a darabot a tokba, és anyával befejezem.
9. lépés: Csatlakoztassa a Ⓛⓣ -t a Ⓒ = ② -hez
10. lépés: Összeszerelés -Használja a Ⓦ és Ⓝ gombokat a ① és ② = ③ kombinálásához
11. lépés: Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
Ha csavart helyez az oldalára, akkor oldalra és elülsőre tesszük. Az eleje akril, ezért speciális akril kötéssel kell felvinni. Ha akrilt ragaszt a szokásos kötéshez, nyomot hagy.
12. lépés: Csatolja a Ⓢ -t a Ⓓ = ⑤ -hez
13. lépés: Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával
14. lépés: A darab összeszerelése
15. lépés: A projekt működési megjelenése
16. lépés: NeoPixel, csatlakozóvezetékek
17. lépés: NeoPixel és Arduino vezetékek
18. lépés: Programozza be az Arduino programot
külső illékony, előjel nélküli hosszú időzítő0_millis;
#befoglalni
#define MODEBTNNUM 3 int ani_mode = 0; előjel nélküli hosszú preM1, preM2, preM3;
void setup () {
Wire.begin (); for (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } // Sorozat.kezdet (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); while (Wire.available ()) {int x = Wire.read (); // Sorozat.println (x); ha (x == 5) {ani_mode = 0; // Sorozat.println ("x = 5"); }}} /////////////////////////////////////////////////////////////// /////// if (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 ("időzítő visszaállítás"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}
19. lépés:
külső illékony, előjel nélküli hosszú időzítő0_millis;
#befoglalni
#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int szám = NUMPIXELS / 3; const int slaveNum = 1; int színek [szám] [3]; int hue [szám]; int sat [szám]; int fényes [szám]; int pNumber = 0; int gValue [szám] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 [szám] = {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 [szám]; logikai btnMode; int hueV [szám] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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; előjel nélküli hosszú preMillis1; előjel nélküli hosszú előM; int ani_mode = 0; int ani2_Counter = 0; int számláló = 0; /////////////////////////////////////////////////////////////////- begin (slaveNum); Wire.onRequest (requestEvent); Wire.onRecept (ReceiveEvent); for (int i = 0; i <szám; i ++) {pinMode (btnPin , INPUT_PULLUP); } // Sorozat.kezdet (9600); strip.begin (); } ///////////////////////////////////////////////////////////
void loop () {
ha (f_v == 1) {for (int i = 0; i <szám; i ++) {színárnyalat = 50; szat = 95; fényes = 100; } f_v = 0; } /////////////////////////////////////////////////////////////////////////////////// hamis; for (int i = 0; i <szám; i ++) {if (! digitalRead (btnPin ))) {btnMode = true; }} btnEvent (5); // Sorozat.println (ani_mode); /////////////////////////////////////////////////////// kapcsoló (ani_mode) {case 0: ani0 (); szünet; 1. eset: ani1 (); ani_mode = 0; ani2_Counter = 0; szünet; 2. eset: ani2_Counter = 1; ani_mode = 0; szünet; 3. eset: ani3 (); ani_mode = 0; ani2_Counter = 0; szünet; alapértelmezett: readyState (); szünet; } if (ani2_Counter == 1) {ani2 (); } setPixels (szám); }
///////////////////////////////////////////
void ReceiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("kapott 5"); ani_mode = 0; } ani_mode = x; // Sorozat.println (ani_mode); } ////////////////////////////////////////////////////////////////-
if (btnMode == igaz) {
Huzal.írás (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 <szám; i ++) {bright = 0; gÉrték = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; mert (int a = 0; a <2; a ++) {színárnyalat [a1 [a] = 100; szo [a1 [a] = 95; fényes [a1 [a] = 100; } for (int b = 0; b <2; b ++) {színárnyalat [b1 = 200; szat [b1 = 95; fényes [b1 = 100; } for (int c = 0; c <2; c ++) {hue [c1 [c] = 300; szat [c1 [c] = 95; fényes [c1 [c] = 100; } // Sorozat.println ("0"); } else if (pNumber == 1) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; mert (int a = 0; a <8; a ++) {színárnyalat [a2 [a] = 26; szat [a2 [a] = 95; fényes [a2 [a] = 100; } for (int d = 0; d <4; d ++) {hue [d2 [d] = 63; szat [d2 [d] = 95; fényes [d2 [d] = 100; } // Sorozat.println ("1"); } else if (pNumber == 2) {// óriási kocka minta (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // sárga 06 itt (int a = 0; a <6; a ++) {színárnyalat [a14 [a] = 35; ül [a14 [a] = 95; fényes [a14 [a] = 100; }} else if (pNumber == 3) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // sárga (int a = 0; a <6; a ++) {színárnyalat [a3 [a] = 53; szat [a3 [a] = 95; fényes [a3 [a] = 100; }} else if (pNumber == 4) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int a4 = {34, 35}; // sárga int b4 = {47}; // kék int c4 = {48}; // lila
mert (int a = 0; a <2; a ++) {színárnyalat [a4 [a] = 53; ül [a4 [a] = 95; fényes [a4 [a] = 100; }
mert (int b = 0; b <1; b ++) {színárnyalat [b4 = 210; szat [b4 = 95; fényes [b4 = 100; } for (int c = 0; c <1; c ++) {hue [c4 [c] = 307; szat [c4 [c] = 95; fényes [c4 [c] = 100; }} else if (pNumber == 5) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int a5 = {34, 35, 46, 47, 48, 49};
mert (int a = 0; a <6; a ++) {színárnyalat [a5 [a] = 100; ült [a5 [a] = 95; fényes [a5 [a] = 100; }} else if (pNumber == 6) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // sárga (int a = 0; a <6; a ++) {színárnyalat [a6 [a] = 53; sz [a6 [a] = 95; fényes [a6 [a] = 100; }} else if (pNumber == 7) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // lila a (int c = 0; c <6; c ++) {színárnyalat [c7 [c] = 307; szat [c7 [c] = 95; fényes [c7 [c] = 100; }} else if (pNumber == 8) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // lila: (int c = 0; c <6; c ++) {színárnyalat [c8 [c] = 307; szat [c8 [c] = 95; fényes [c8 [c] = 100; }} else if (pNumber == 9) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // lila: (int c = 0; c <6; c ++) {színárnyalat [c9 [c] = 307; szat [c9 [c] = 95; fényes [c9 [c] = 100; }} else if (pNumber == 10) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // lila: (int c = 0; c <6; c ++) {színárnyalat [c10 [c] = 307; szat [c10 [c] = 95; fényes [c10 [c] = 100; }} else if (pNumber == 11) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // lila: (int c = 0; c <6; c ++) {színárnyalat [c11 [c] = 307; szat [c11 [c] = 95; fényes [c11 [c] = 100; }} else if (pNumber == 12) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // lila: (int c = 0; c <6; c ++) {színárnyalat [c12 [c] = 307; szat [c12 [c] = 95; fényes [c12 [c] = 100; }} else if (pNumber == 13) {for (int i = 0; i <szám; i ++) {bright = 0; gÉrték = 1; } int a13 = {34, 35}; // sárga int b13 = {47}; // kék int c13 = {48}; // lila: (int a = 0; a <2; a ++) {színárnyalat [a13 [a] = 53; ül [a13 [a] = 95; fényes [a13 [a] = 100; } for (int b = 0; b <1; b ++) {hue [b13 = 210; szat [b13 = 95; fényes [b13 = 100; } for (int c = 0; c <1; c ++) {hue [c13 [c] = 307; szat [c13 [c] = 95; fényes [c13 [c] = 100; }} pSzám = pSzám + 1;
ha (pSzám == 14) {
pSzám = 0; }}
void ani2 () {
// Serial.println ("2"); előjel nélküli hosszú curM = millis ();
if (curM - preM> = 10) {
preM = curM; for (int i = 0; i <szám; i ++) {if (színárnyalat = 360) {gValue = -1; } színárnyalat = színárnyalat + gÉrték ; } számláló ++; if (számláló == 360) {// Sorozat.print ("számláló:"); // Sorozat.println (számláló); // Soros.println (curM); számláló = 0; ani2_Counter = 0; }}}
void ani3 () {
// Serial.println ("3"); } ////////////////////////////////////////////////////////////////- / Serial.println ("kész"); } ////////////////////////////////////////////////////////////////////////- {unsigned long curMillis1 = millis ();
for (int i = 0; i <szám; i ++) {btnState = digitalRead (btnPin ); }
if (curMillis1 - preMillis1> b_interval) {
preMillis1 = curMillis1; mert (int i = 0; i = 360) {hueV = -1; } else if (színárnyalat <= 0) {hueV = 1; } színárnyalat = színárnyalat + színárnyalat ; fényes = 100; }}}} /////////////////////////////////////////////////////////////////- int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (színárnyalat , telített , fényes , színek ); int szám1 = i * 3; strip.setPixelColor (szám1, színek [0], színek [1], színek [2]); strip.setPixelColor (szám1 + 1, színek [0], színek [1], színek [2]); strip.setPixelColor (szám1 + 2, színek [0], színek [1], színek [2]); } strip.show (); }
20. lépés: Minták
Ez a projekt több háromszöget tartalmaz, amelyek hatszögletű alakot alkotnak. Tehát sztereoszkópikus mintákat hozhat létre a fény tervezése szerint! Csak nyomja meg az egyes darabokat, és a különböző színek fokozatba kerülnek, és amikor a kívánt szín megjelenik, nyomja meg a lenyomott kezet, és továbbra is gyönyörűen ragyog a kívánt színnel!
Ajánlott:
LED LIGHT DIY webkamerához (C920): 10 lépés (képekkel)
LED LIGHT DIY webkamerához (C920): A világítás elengedhetetlen egy webkamera számára. Ez a kis LED-gyűrű segít az arckamerának, hogy nagyon jól érezze magát. A LED nélkül is készíthet videót fény nélkül. 3D nyomtatót és WS2812b LED modult használtam (Neopixel kompatibilis)
BookWorm Light-Up Book Light és Bookmark: 13 lépés (képekkel)
BookWorm Light-Up Book Light és Bookmark: Készítse el ezt a szórakoztató könyvmoly-könyvjelzőt, amely könyvfényként is szolgál! Kinyomtatjuk, kivágjuk, színezzük és díszítjük, és ezzel világítják meg az éjszakát, hogy a sötétben olvashasson. Csak néhány anyagból készült, és remek első ci
Fairy Light Battery Saver: 8 lépés (képekkel)
Fairy Light Battery Saver: A CR2032 akkumulátorok nagyszerűek, de nem tartanak olyan sokáig, mint szeretnénk, amikor LED -es " Fairy Light " húrok. Itt az Ünnepi szezon mellett úgy döntöttem, hogy módosítok néhány 20 fényfüzért, hogy lemerüljön egy USB tápegység. Online kerestem és f
Ikea Light Hack (flexin Your Light): 5 lépés
Ikea Light Hack (flexin Your Light): Amikor úgy döntöttem, hogy javítom az asztalom megvilágítását, az Ikea felé fordultam. Megvettem az Ikea Jansjo -t (http://www.ikea.com/us/en/catalog/products/10128748) és az Ikea Lack -ot (http://www.ikea.com/us/en/catalog/products/60124272 ), és tévesen eldobta a nyugtát
Led Light Cap / Safty Cap vagy Light: 4 lépés
Led Light Cap / Safty Cap vagy Light: ez az egyik nevezésem a versenyre. Ezt az ötletet a h2on szerszámos doboz szekciójában lévő make magzine -ból kaptam, amely a sapkás lámpához készült, ezért mondtam toi yourselft vásárlás helyett. 22 dollárért csináltam magamból néhány dollárnál kevesebbet