Taula de continguts:

Encén-me !: 20 passos (amb imatges)
Encén-me !: 20 passos (amb imatges)

Vídeo: Encén-me !: 20 passos (amb imatges)

Vídeo: Encén-me !: 20 passos (amb imatges)
Vídeo: Растяжка на все тело за 20 минут. Стретчинг для начинающих 2024, Desembre
Anonim
Encén-me!
Encén-me!
Encén-me!
Encén-me!
Encén-me!
Encén-me!
Encén-me!
Encén-me!

membres de l'equip del projecte

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

I si poguessis tocar i dissenyar la llum? Què us semblaria si tinguéssiu un bonic patró de llum dissenyat per vosaltres mateixos amb una animació interessant? Il·lumineu-me serà un interessant quadern de dibuixos que toca i dissenya la llum i fa patrons interessants. Aquest projecte té diversos triangles que formen un forma hexagonal. De manera que podeu crear patrons estereoscòpics segons com dissenyeu la llum. Només cal que premeu cada peça i es classificaran diversos colors i, quan surti el color que voleu, només heu de prémer la mà que heu premut i continuarà brillant amb el color que volíeu. El projecte va utilitzar uns 312 triangles, però es podria crear una bona llum que funciona bé amb 6 triangles. Ara deixeu-me mostrar-vos com fer-ho amb sis triangles. Seguiu els passos i tindreu el vostre propi meravellós treball.

Subministraments

Maquinari: Arduino (he utilitzat arduino mega 2560), acrílic (clar, blanc), tira LED (NeoPixel), film difusor, botó, connector de 4 pins, cable, placa de circuit, font d'alimentació

Eines: màquina de tall guiada per làser, impressora 3D

Pas 1: Fem-ho

Fem-ho!
Fem-ho!
Fem-ho!
Fem-ho!
Fem-ho!
Fem-ho!

Fem aquesta bonica peça hexagonal amb mi!

El Light Me Up està fet amb 312 triangles, però fins i tot 6 triangles poden dissenyar una llum meravellosa. Si voleu fer-ho a una escala més gran, podeu fer-ho fent referència al fitxer adjunt a continuació.

Pas 2: Preparació del material

Preparació del material
Preparació del material

Pas 3: tall de l’acrílic

Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic

Utilitzeu un tallador làser per tallar la part frontal i posterior de cada part. El color de l’acrílic a la part posterior pot ser el que vulgueu, però assegureu-vos d’utilitzar acrílic transparent perquè la part frontal s’ha d’obtenir. Si utilitzeu un color acrílic que no sigui transparent, no veureu bé la llum.

Pas 4: feu costat amb les impressores 3D

Feu cares amb impressores 3D
Feu cares amb impressores 3D
Feu cares amb impressores 3D
Feu cares amb impressores 3D
Feu cares amb impressores 3D
Feu cares amb impressores 3D

Ara toca fer els laterals de cada peça. A continuació, s’adjunten els fitxers de modelatge 3D que hi ha al lateral. Hem utilitzat el PLA per fer costats. El PLA és més fort i menys contraccions que l’ABS, de manera que es recomana utilitzar filaments amb el PLA.

Pas 5: rodatge

Rodatge
Rodatge
Rodatge
Rodatge
Rodatge
Rodatge

Ara posem una pel·lícula de difusió de la llum a l’acrílic de la part frontal. Si hi poseu pel·lícula, s’estén i brilla molt més bonic. Primer, talla la pel·lícula amb la forma d’un triangle (és millor que tallis la pel·lícula més gran que l’acrílic tallat) És senzill posar-hi pel·lícula, com una pel·lícula protectora al telèfon. Si voleu donar propines aquí, podeu utilitzar una targeta per empènyer-la de manera que quedi ben enganxada.

Pas 6: connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables

Connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables
Connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables
Connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables
Connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables
Connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables
Connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables
Connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables
Connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables

Si heu estat tan bons soldant la tira LED, és hora de posar-la a la part posterior. En primer lloc, poseu una pistola de cola o cinta adhesiva a dues cares a la part posterior de la tira LED. I primer traieu els cables d’ambdós costats del fil de soldadura a través dels forats d’ambdós costats. Finalment, fixeu la tira LED a la part posterior d’acrílic i ja s’ha acabat.

És hora de soldar! prepareu tires LED, connectors de 4 pins (connectors o cables) i el que necessiteu per soldar. He utilitzat LEDs en tres unitats. Podeu utilitzar un o dos LEDs si voleu, però us recomano utilitzar tres. Quan tots els materials estiguin a punt, soldeu els cables de les dues línies de dades, línies de 5 V i línies de terra de la tira LED.

Pas 7: Interruptor de soldadura amb cables

Interruptor tàctil de soldadura amb cables
Interruptor tàctil de soldadura amb cables
Interruptor tàctil de soldadura amb cables
Interruptor tàctil de soldadura amb cables

Pas 8: Muntatge: inseriu el cargol al costat = ①

Muntatge -Insert el cargol al lateral = ①
Muntatge -Insert el cargol al lateral = ①
Muntatge -Insert el cargol al lateral = ①
Muntatge -Insert el cargol al lateral = ①

Ara és molt fàcil! Col·loqueu un cargol a cadascun dels tres costats impresos en 3D. La raó per la qual utilitzar el botó de cargol, com fer servir cargols i femelles estructurals, serà capaç de crear. Quan la peça estigui acabada, posaré la peça a la caixa i l’acabaré amb una femella.

Pas 9: connecteu Ⓛⓣ al Ⓒ = ②

Adjunta Ⓛⓣ al Ⓒ = ②
Adjunta Ⓛⓣ al Ⓒ = ②
Adjunta Ⓛⓣ al Ⓒ = ②
Adjunta Ⓛⓣ al Ⓒ = ②

Pas 10: Muntatge: utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③

Muntatge -Utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③
Muntatge -Utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③
Muntatge -Utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③
Muntatge -Utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③
Muntatge -Utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③
Muntatge -Utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③

Pas 11: Muntatge -Adjuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④

Muntatge -Ajuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④
Muntatge -Ajuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④
Muntatge -Ajuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④
Muntatge -Ajuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④
Muntatge -Ajuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④
Muntatge -Ajuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④
Muntatge -Ajuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④
Muntatge -Ajuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④

Si col·loqueu un parabolt al lateral, el posarem al lateral i al davant. La part frontal és d’acrílic, de manera que l’heu de posar amb un enllaç acrílic dedicat. Si fixeu acrílic a un enllaç normal, deixarà una empremta.

Pas 12: adjunteu Ⓢ a Ⓓ = ⑤

Adjunta Ⓢ a Ⓓ = ⑤
Adjunta Ⓢ a Ⓓ = ⑤
Adjunta Ⓢ a Ⓓ = ⑤
Adjunta Ⓢ a Ⓓ = ⑤

Pas 13: Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥

Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥
Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥
Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥
Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥
Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥
Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥

Pas 14: completar el muntatge de la peça

Muntatge complet de la peça
Muntatge complet de la peça
Muntatge complet de la peça
Muntatge complet de la peça
Muntatge complet de la peça
Muntatge complet de la peça

Pas 15: l'aparença de treball d'un projecte

Image
Image

Pas 16: NeoPixel, cablejat del connector

NeoPixel, cablejat del connector
NeoPixel, cablejat del connector
NeoPixel, cablejat del connector
NeoPixel, cablejat del connector
NeoPixel, cablejat del connector
NeoPixel, cablejat del connector

Pas 17: cablejat NeoPixel i Arduino

Cablejat NeoPixel i Arduino
Cablejat NeoPixel i Arduino

Pas 18: programa l'Arduino

extern volatile unsigned long timer0_millis;

#incloure

#define MODEBTNNUM 3 int ani_mode = 0; llarg sense signar preM1, preM2, preM3;

configuració nul·la () {

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

bucle buit () {

for (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } per a (int i = 0; i <6; i ++) {Wire.requestFrom (i + 1, 1); while (Wire.available ()) {int x = Wire.read (); // Serial.println (x); if (x == 5) {ani_mode = 0; // Serial.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; // temporitzador_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("restabliment del temporitzador"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}

Pas 19:

extern volatile unsigned long timer0_millis;

#incloure

#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 colors [num] [3]; int hue [num]; int sat [num]; int brillant [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]; btnMode booleà; 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; preMillis1 llarg sense signar; llarg signat preM; int ani_mode = 0; int ani2_Counter = 0; int comptador = 0; ///////////////////////////////////////////// void setup () {Wire. començar (esclauNum); Wire.onRequest (requestEvent); Wire.onReceive (receiveEvent); for (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); } //////////////////////////////////////////////

bucle buit () {

if (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; sat = 95; brillant = 100; } f_v = 0; } //////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = fals; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); //////////////////////////////////////// switch (ani_mode) {case 0: ani0 (); trencar; cas 1: ani1 (); ani_mode = 0; ani2_Counter = 0; trencar; cas 2: ani2_Counter = 1; ani_mode = 0; trencar; cas 3: ani3 (); ani_mode = 0; ani2_Counter = 0; trencar; per defecte: readyState (); trencar; } if (ani2_Counter == 1) {ani2 (); } setPixels (num); }

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

void receiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("rebut 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } ///////////////////////////////////////////// void requestEvent () {

if (btnMode == true) {

Wire.write (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 <num; i ++) {bright = 0; Valor g = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a <2; a ++) {tonalitat [a1 [a] = 100; sat [a1 [a] = 95; brillant [a1 [a] = 100; } per a (int b = 0; b <2; b ++) {tonalitat [b1 = 200; sat [b1 = 95; brillant [b1 = 100; } per a (int c = 0; c <2; c ++) {tonalitat [c1 [c] = 300; sat [c1 [c] = 95; brillant [c1 [c] = 100; } // Serial.println ("0"); } else if (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 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 ++) {tonalitat [a2 [a] = 26; sat [a2 [a] = 95; brillant [a2 [a] = 100; } per a (int d = 0; d <4; d ++) {tonalitat [d2 [d] = 63; sat [d2 [d] = 95; brillant [d2 [d] = 100; } // Serial.println ("1"); } else if (pNumber == 2) {// patró de cub gegant per a (int i = 0; i <num; i ++) {brillant = 0; Valor g = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // groc 06 per a (int a = 0; a <6; a ++) {tonalitat [a14 [a] = 35; sat [a14 [a] = 95; brillant [a14 [a] = 100; }} else if (pNumber == 3) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // groc per a (int a = 0; a <6; a ++) {tonalitat [a3 [a] = 53; sat [a3 [a] = 95; brillant [a3 [a] = 100; }} else if (pNumber == 4) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int a4 = {34, 35}; // groc int b4 = {47}; // blau int c4 = {48}; // porpra

for (int a = 0; a <2; a ++) {tonalitat [a4 [a] = 53; sat [a4 [a] = 95; brillant [a4 [a] = 100; }

per a (int b = 0; b <1; b ++) {tonalitat [b4 = 210; sat [b4 = 95; brillant [b4 = 100; } per a (int c = 0; c <1; c ++) {tonalitat [c4 [c] = 307; sat [c4 [c] = 95; brillant [c4 [c] = 100; }} else if (pNumber == 5) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (int a = 0; a <6; a ++) {tonalitat [a5 [a] = 100; sat [a5 [a] = 95; brillant [a5 [a] = 100; }} else if (pNumber == 6) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // groc per a (int a = 0; a <6; a ++) {tonalitat [a6 [a] = 53; sat [a6 [a] = 95; brillant [a6 [a] = 100; }} else if (pNumber == 7) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // morat per a (int c = 0; c <6; c ++) {tonalitat [c7 [c] = 307; sat [c7 [c] = 95; brillant [c7 [c] = 100; }} else if (pNumber == 8) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // porpra per a (int c = 0; c <6; c ++) {tonalitat [c8 [c] = 307; sat [c8 [c] = 95; brillant [c8 [c] = 100; }} else if (pNumber == 9) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // morat per a (int c = 0; c <6; c ++) {tonalitat [c9 [c] = 307; sat [c9 [c] = 95; brillant [c9 [c] = 100; }} else if (pNumber == 10) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // porpra per a (int c = 0; c <6; c ++) {tonalitat [c10 [c] = 307; sat [c10 [c] = 95; brillant [c10 [c] = 100; }} else if (pNumber == 11) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // porpra per a (int c = 0; c <6; c ++) {tonalitat [c11 [c] = 307; sat [c11 [c] = 95; brillant [c11 [c] = 100; }} else if (pNumber == 12) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // morat per a (int c = 0; c <6; c ++) {tonalitat [c12 [c] = 307; sat [c12 [c] = 95; brillant [c12 [c] = 100; }} else if (pNumber == 13) {for (int i = 0; i <num; i ++) {bright = 0; Valor g = 1; } int a13 = {34, 35}; // groc int b13 = {47}; // blau int c13 = {48}; // porpra per (int a = 0; a <2; a ++) {tonalitat [a13 [a] = 53; sat [a13 [a] = 95; brillant [a13 [a] = 100; } per a (int b = 0; b <1; b ++) {tonalitat [b13 = 210; sat [b13 = 95; brillant [b13 = 100; } per a (int c = 0; c <1; c ++) {tonalitat [c13 [c] = 307; sat [c13 [c] = 95; brillant [c13 [c] = 100; }} pNumber = pNumber + 1;

if (pNumber == 14) {

pNúmero = 0; }}

void ani2 () {

// Serial.println ("2"); unsigned long curM = millis ();

if (curM - preM> = 10) {

preM = curM; for (int i = 0; i <num; i ++) {if (tonalitat = 360) {gValue = -1; } tonalitat = tonalitat + valor g ; } comptador ++; if (comptador == 360) {// Serial.print ("comptador:"); // Serial.println (comptador); // Serial.println (curM); comptador = 0; ani2_Counter = 0; }}}

void ani3 () {

// Serial.println ("3"); } ///////////////////////////////////////////// void readyState () {/ / Serial.println ("llest"); } //////////////////////////////////////////// void btnEvent (int b_interval) {unsigned long curMillis1 = millis ();

for (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }

if (curMillis1 - preMillis1> b_interval) {

preMillis1 = curMillis1; for (int i = 0; i = 360) {hueV = -1; } else if (tonalitat <= 0) {tonalitatV = 1; } tonalitat = tonalitat + tonalitat V ; brillant = 100; }}}} ///////////////////////////////////////////// void setPixels (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (matís , sat , brillant , colors ); int num1 = i * 3; strip.setPixelColor (num1, colors [0], colors [1], colors [2]); strip.setPixelColor (num1 + 1, colors [0], colors [1], colors [2]); strip.setPixelColor (num1 + 2, colors [0], colors [1], colors [2]); } strip.show (); }

Pas 20: patrons

Patrons!
Patrons!
Patrons!
Patrons!

Aquest projecte té diversos triangles que formen una forma hexagonal. De manera que podeu crear patrons estereoscòpics segons com dissenyeu la llum. Simplement premeu cada peça i es classificaran diversos colors i, quan surti el color que desitgeu, només heu de prémer la mà que heu premut i continuarà brillant amb el color que desitgeu.

Recomanat: