Tartalomjegyzék:

Light Me Up!: 20 lépés (képekkel)
Light Me Up!: 20 lépés (képekkel)

Videó: Light Me Up!: 20 lépés (képekkel)

Videó: Light Me Up!: 20 lépés (képekkel)
Videó: Jessie J - Domino (Official Video) 2024, November
Anonim
Világosíts fel!
Világosíts fel!
Világosíts fel!
Világosíts fel!
Világosíts fel!
Világosíts fel!
Világosíts fel!
Világosíts fel!

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!
Készítsük el!
Készítsük el!
Készítsük el!
Készítsük el!
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

Anyag előkészítése
Anyag előkészítése

Lépés: Az akril vágása

Vágó akril
Vágó akril
Vágó akril
Vágó akril
Vágó akril
Vágó akril
Vágó akril
Vágó akril

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

Készítsen oldalakat 3D nyomtatókkal
Készítsen oldalakat 3D nyomtatókkal
Készítsen oldalakat 3D nyomtatókkal
Készítsen oldalakat 3D nyomtatókkal
Készítsen oldalakat 3D nyomtatókkal
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

Film forgatás
Film forgatás
Film forgatás
Film forgatás
Film forgatás
Film forgatá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

Csatlakoztassa a LED csíkot + forrasztó LED csíkot (NeoPixel) vezetékekkel
Csatlakoztassa a LED csíkot + forrasztó LED csíkot (NeoPixel) vezetékekkel
Csatlakoztassa a LED csíkot + forrasztó LED csíkot (NeoPixel) vezetékekkel
Csatlakoztassa a LED csíkot + forrasztó LED csíkot (NeoPixel) vezetékekkel
Csatlakoztassa a LED csíkot + forrasztó LED csíkot (NeoPixel) vezetékekkel
Csatlakoztassa a LED csíkot + forrasztó LED csíkot (NeoPixel) vezetékekkel
Csatlakoztassa a LED csíkot + forrasztó LED csíkot (NeoPixel) vezetékekkel
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

Forrasztó Tact kapcsoló vezetékekkel
Forrasztó Tact kapcsoló vezetékekkel
Forrasztó Tact kapcsoló vezetékekkel
Forrasztó Tact kapcsoló vezetékekkel

8. lépés: Összeszerelés -Helyezze be a csavart az oldalon = ①

Összeszerelés -Helyezze be a csavart az oldalon = ①
Összeszerelés -Helyezze be a csavart az oldalon = ①
Összeszerelés -Helyezze be a csavart az oldalon = ①
Ö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

Csatlakoztassa a Ⓛⓣ -t a Ⓒ = ② -hez
Csatlakoztassa a Ⓛⓣ -t a Ⓒ = ② -hez
Csatlakoztassa a Ⓛⓣ -t a Ⓒ = ② -hez
Csatlakoztassa a Ⓛⓣ -t a Ⓒ = ② -hez

10. lépés: Összeszerelés -Használja a Ⓦ és Ⓝ gombokat a ① és ② = ③ kombinálásához

Összeszerelés -Használja a Ⓦ és Ⓝ billentyűket a ① és ② = ③ kombinálásához
Összeszerelés -Használja a Ⓦ és Ⓝ billentyűket a ① és ② = ③ kombinálásához
Összeszerelés -Használja a Ⓦ és Ⓝ billentyűket a ① és ② = ③ kombinálásához
Összeszerelés -Használja a Ⓦ és Ⓝ billentyűket a ① és ② = ③ kombinálásához
Összeszerelés -Használja a Ⓦ és Ⓝ billentyűket a ① és ② = ③ kombinálásához
Összeszerelés -Használja a Ⓦ és Ⓝ billentyűket a ① és ② = ③ kombinálásához

11. lépés: Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④

Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
Összeszerelés -Csatlakoztassa Ⓐⓔ és ③ akrilkötés használatával = ④
Ö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

Csatolja a Ⓢ -t a Ⓓ = ⑤ -hez
Csatolja a Ⓢ -t a Ⓓ = ⑤ -hez
Csatolja a Ⓢ -t a Ⓓ = ⑤ -hez
Csatolja a Ⓢ -t a Ⓓ = ⑤ -hez

13. lépés: Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával

Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával
Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával
Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával
Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával
Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával
Összeszerelés -Kombinálja a ④ és ⑤ gombokat a Ⓦ és Ⓝ = ⑥ használatával

14. lépés: A darab összeszerelése

Végezze el az összeszerelést
Végezze el az összeszerelést
Végezze el az összeszerelést
Végezze el az összeszerelést
Végezze el az összeszerelést
Végezze el az összeszerelést

15. lépés: A projekt működési megjelenése

Image
Image

16. lépés: NeoPixel, csatlakozóvezetékek

NeoPixel, csatlakozóvezetékek
NeoPixel, csatlakozóvezetékek
NeoPixel, csatlakozóvezetékek
NeoPixel, csatlakozóvezetékek
NeoPixel, csatlakozóvezetékek
NeoPixel, csatlakozóvezetékek

17. lépés: NeoPixel és Arduino vezetékek

NeoPixel és Arduino Wiring
NeoPixel és Arduino Wiring

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

Minták!
Minták!
Minták!
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: