Sommario:

Illuminami!: 20 passaggi (con immagini)
Illuminami!: 20 passaggi (con immagini)

Video: Illuminami!: 20 passaggi (con immagini)

Video: Illuminami!: 20 passaggi (con immagini)
Video: Monti a OttoeMezzo: Posso chiederle se lei è Massone? 2024, Novembre
Anonim
Accendimi!
Accendimi!
Accendimi!
Accendimi!
Accendimi!
Accendimi!
Accendimi!
Accendimi!

membri del team di progetto

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

E se potessi toccare e disegnare la luce? Come ti sentiresti se avessi un bellissimo modello di luce che hai disegnato tu stesso con un'animazione interessante?Light me up sarà un interessante album da disegno che tocca e disegna la luce stessa e crea modelli interessanti!Questo progetto ha diversi triangoli che formano un forma esagonale. Quindi puoi creare modelli stereoscopici in base a come progetti la luce! Basta premere ogni pezzo e vari colori verranno graduati, e quando il colore desiderato esce, basta colpire la mano che hai premuto e continuerà a brillare magnificamente con il colore che volevi! Il progetto ha utilizzato circa 312 triangoli, ma potrebbe creare una bella luce che funziona bene con 6 triangoli. Ora lascia che ti mostri come farlo con sei triangoli. Segui i passaggi e avrai il tuo meraviglioso lavoro!

Forniture

Hardware: Arduino (ho usato arduino mega 2560), acrilico (trasparente, bianco), striscia LED (NeoPixel), pellicola diffusore, pulsante, connettore a 4 pin, cavo, circuito stampato, alimentatore

Strumenti: macchina da taglio a guida laser, stampante 3D

Passaggio 1: facciamolo

Facciamolo!
Facciamolo!
Facciamolo!
Facciamolo!
Facciamolo!
Facciamolo!

Facciamo questo simpatico pezzo esagonale con me!

Il Light Me Up è realizzato con 312 triangoli, ma anche 6 triangoli possono creare una luce meravigliosa. Se vuoi realizzarlo su scala più grande, puoi farlo facendo riferimento al file allegato di seguito.

Passaggio 2: preparazione del materiale

Preparazione del materiale
Preparazione del materiale

Passaggio 3: taglio dell'acrilico

Acrilico da taglio
Acrilico da taglio
Acrilico da taglio
Acrilico da taglio
Acrilico da taglio
Acrilico da taglio
Acrilico da taglio
Acrilico da taglio

Usa un laser cutter per tagliare la parte anteriore e posteriore di ogni parte. Il colore dell'acrilico sul retro può essere quello che vuoi, ma assicurati di usare l'acrilico trasparente perché la parte anteriore deve essere oscurata! Se usi un colore acrilico diverso dal trasparente, non vedrai bene la luce.

Passaggio 4: crea i lati con le stampanti 3D

Crea lati con stampanti 3D
Crea lati con stampanti 3D
Crea lati con stampanti 3D
Crea lati con stampanti 3D
Crea lati con stampanti 3D
Crea lati con stampanti 3D

Ora è il momento di fare i lati di ogni pezzo. Facciamolo! I file di modellazione 3D a lato sono allegati di seguito. Abbiamo usato il PLA per creare i lati Il PLA è più forte e ha meno contrazioni rispetto all'ABS, quindi si consiglia di utilizzare i filamenti per il PLA.

Passaggio 5: riprese

riprese
riprese
riprese
riprese
riprese
riprese

Ora mettiamo un film di diffusione della luce sull'acrilico sul davanti. Se ci metti sopra la pellicola, si allarga e brilla molto più bella. Per prima cosa, taglia la pellicola a forma di triangolo. (Faresti meglio a tagliare la pellicola più grande dell'acrilico tagliato) È semplice applicare la pellicola, come una pellicola protettiva sul telefono. Se vuoi dare la mancia qui, puoi usare una carta per spingerla in modo che possa essere attaccata ordinatamente!

Passaggio 6: collegare la striscia LED + la striscia LED di saldatura (NeoPixel) con i fili

Attacca la striscia LED + la striscia LED per saldatura (NeoPixel) con fili
Attacca la striscia LED + la striscia LED per saldatura (NeoPixel) con fili
Attacca la striscia LED + la striscia LED per saldatura (NeoPixel) con fili
Attacca la striscia LED + la striscia LED per saldatura (NeoPixel) con fili
Attacca la striscia LED + la striscia LED per saldatura (NeoPixel) con fili
Attacca la striscia LED + la striscia LED per saldatura (NeoPixel) con fili
Attacca la striscia LED + la striscia LED per saldatura (NeoPixel) con fili
Attacca la striscia LED + la striscia LED per saldatura (NeoPixel) con fili

Se sei stato così bravo a saldare la striscia LED, è ora di mettere la striscia LED sul retro. Innanzitutto, attacca una pistola per colla o un nastro biadesivo sul retro della striscia LED. E prima rimuovi i fili da entrambi i lati del filo di saldatura attraverso i fori su entrambi i lati. Infine, attacca la striscia LED all'acrilico posteriore ed è finita!

È tempo di saldatura! preparare strisce LED, connettori a 4 pin (connettore o fili) e ciò che serve per la saldatura. Ho usato i LED in tre unità. Puoi usare uno o due LED se vuoi, ma ti consiglio di usarne tre. Quando tutti i materiali sono pronti, saldare i fili in entrambe le linee dati, linee 5v e linee di terra della striscia LED.

Passaggio 7: interruttore tattile di saldatura con fili

Interruttore tattile di saldatura con fili
Interruttore tattile di saldatura con fili
Interruttore tattile di saldatura con fili
Interruttore tattile di saldatura con fili

Passaggio 8: montaggio -Inserire il bullone sul lato=

Assemblaggio -Inserire il bullone sul lato=
Assemblaggio -Inserire il bullone sul lato=
Assemblaggio -Inserire il bullone sul lato=
Assemblaggio -Inserire il bullone sul lato=

Ora è una parte davvero facile! Posiziona un bullone su ciascuno dei tre lati stampati in 3D. Il motivo per cui l'uso del pulsante del bullone come l'utilizzo di bulloni e dadi strutturali sarà in grado di fare. Quando il pezzo è finito, lo metto nell'astuccio e lo finisco con un dado.

Passaggio 9: collega Ⓛⓣ a Ⓒ= ②

Collega Ⓛⓣ a Ⓒ= ②
Collega Ⓛⓣ a Ⓒ= ②
Collega Ⓛⓣ a Ⓒ= ②
Collega Ⓛⓣ a Ⓒ= ②

Passaggio 10: Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③

Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③
Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③
Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③
Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③
Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③
Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③

Step 11: Assemblaggio -Attacca Ⓐⓔ e ③ Usando un adesivo acrilico= ④

Assemblaggio: collegare Ⓐⓔ e ③ utilizzando un adesivo acrilico= ④
Assemblaggio: collegare Ⓐⓔ e ③ utilizzando un adesivo acrilico= ④
Assemblaggio: collegare Ⓐⓔ e ③ utilizzando un adesivo acrilico= ④
Assemblaggio: collegare Ⓐⓔ e ③ utilizzando un adesivo acrilico= ④
Assemblaggio: collegare Ⓐⓔ e ③ utilizzando un adesivo acrilico= ④
Assemblaggio: collegare Ⓐⓔ e ③ utilizzando un adesivo acrilico= ④
Assemblaggio: collegare Ⓐⓔ e ③ utilizzando un adesivo acrilico= ④
Assemblaggio: collegare Ⓐⓔ e ③ utilizzando un adesivo acrilico= ④

Se metti un bullone sul lato, lo metteremo sul lato e sul davanti. La parte anteriore è in acrilico, quindi devi indossarla con un adesivo acrilico dedicato. Se attacchi l'acrilico a un legame normale, lascerà un segno.

Passaggio 12: collega Ⓢ a Ⓓ= ⑤

Collega Ⓢ a Ⓓ= ⑤
Collega Ⓢ a Ⓓ= ⑤
Collega Ⓢ a Ⓓ= ⑤
Collega Ⓢ a Ⓓ= ⑤

Passaggio 13: Assemblaggio - Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥

Assemblaggio -Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥
Assemblaggio -Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥
Assemblaggio -Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥
Assemblaggio -Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥
Assemblaggio -Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥
Assemblaggio -Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥

Passaggio 14: assemblaggio completo del pezzo

Assemblaggio completo del pezzo
Assemblaggio completo del pezzo
Assemblaggio completo del pezzo
Assemblaggio completo del pezzo
Assemblaggio completo del pezzo
Assemblaggio completo del pezzo

Passaggio 15: l'aspetto lavorativo di un progetto

Image
Image

Passaggio 16: NeoPixel, cablaggio del connettore

NeoPixel, cablaggio del connettore
NeoPixel, cablaggio del connettore
NeoPixel, cablaggio del connettore
NeoPixel, cablaggio del connettore
NeoPixel, cablaggio del connettore
NeoPixel, cablaggio del connettore

Passaggio 17: cablaggio NeoPixel e Arduino

Cablaggio NeoPixel e Arduino
Cablaggio NeoPixel e Arduino

Passaggio 18: programma Arduino

extern volatile unsigned long timer0_millis;

#includere

#define MODEBTNNUM 3 int ani_mode = 0; preM1, preM2, preM3 lungo senza segno;

void setup() {

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

ciclo vuoto() {

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(); // 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 = corrente3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println("ripristino timer"); for (int i = 1; i < 7; i++) { Wire.beginTransmission(i); Wire.write(ani_mode); //Serial.println("3000"); Wire.endTransmission(i); } } } }

Passaggio 19:

extern volatile unsigned long timer0_millis;

#includere

#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 colori[num][3]; int tonalità[num]; int sat[num]; int luminoso[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 btnStato[num]; btnMode booleano; 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; unsigned long preMillis1; preM lungo senza segno; int ani_mode = 0; int ani2_Counter = 0; contatore int = 0; ////////////////////////////////////////// void setup() { Wire. inizio(numeroslave); Wire.onRequest(requestEvent); Wire.onReceive(receiveEvent); for (int i = 0; i < num; i++) { pinMode(btnPin, INPUT_PULLUP); } //Serial.begin(9600); strip.begin(); } //////////////////////////////////////////

ciclo vuoto() {

if (f_v == 1) { for (int i = 0; i < num; i++) { tonalità = 50; sat = 95; luminoso = 100; } f_v = 0; } ///////////////////////////////////// //버튼 입력 체크:멈춤신호 보내기 btnMode = falso; for (int i = 0; i < num; i++) { if (!digitalRead(btnPin)) { btnMode = true; } } btnEvent(5); // Serial.println(ani_mode); ///////////////////////////////////// switch (ani_mode) { case 0: ani0(); rottura; caso 1: ani1(); ani_mode = 0; ani2_Counter = 0; rottura; caso 2: ani2_Counter = 1; ani_mode = 0; rottura; caso 3: ani3(); ani_mode = 0; ani2_Counter = 0; rottura; default: readyState(); rottura; } if (ani2_Counter == 1) { ani2(); } setPixel(num); }

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

void requireEvent(int howMany) { int x = Wire.read(); if (x == 5) { // Serial.println("ricevuto 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); }

}

vuoto ani0() {

// Serial.println("0"); }

vuoto ani1() {

// Serial.println("1"); if (pNumber == 0) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a < 2; a++) { tonalità[a1[a] = 100; sat[a1[a] = 95; luminoso[a1[a] = 100; } for (int b = 0; b < 2; b++) { tonalità[b1 = 200; sat[b1 = 95; luminoso[b1 = 100; } for (int c = 0; c < 2; c++) { tonalità[c1[c] = 300; sat[c1[c] = 95; luminoso[c1[c] = 100; } // Serial.println("0"); } else if (pNumber == 1) { for (int i = 0; i < num; i++) { bright = 0; gValore = 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++) { tonalità[a2[a] = 26; sat[a2[a] = 95; luminoso[a2[a] = 100; } for (int d = 0; d < 4; d++) { tonalità[d2[d] = 63; sat[d2[d] = 95; luminoso[d2[d] = 100; } // Serial.println("1"); } else if (pNumber == 2) { //modello cubo gigante for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int a14 = {34, 35, 46, 47, 48, 49};//giallo 06 for (int a = 0; a < 6; a++) { hue[a14[a] = 35; sat[a14[a] = 95; luminoso[a14[a] = 100; } }else if (pNumber == 3) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int a3 = {34, 35, 46, 47, 48, 49};//giallo for (int a = 0; a < 6; a++) { hue[a3[a] = 53; sat[a3[a] = 95; luminoso[a3[a] = 100; } } else if (pNumber == 4) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int a4 = {34, 35};//giallo int b4 = {47};//blu int c4 = {48};//viola

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

for (int b = 0; b < 1; b++) { tonalità[b4 = 210; sat[b4 = 95; luminoso[b4 = 100; } for (int c = 0; c < 1; c++) { tonalità[c4[c] = 307; sat[c4[c] = 95; luminoso[c4[c] = 100; } } else if (pNumber == 5) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (int a = 0; a < 6; a++) { tonalità[a5[a] = 100; sat[a5[a] = 95; luminoso[a5[a] = 100; } } else if (pNumber == 6) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int a6 = {34, 35, 46, 47, 48, 49};//giallo for (int a = 0; a < 6; a++) { hue[a6[a] = 53; sat[a6[a] = 95; luminoso[a6[a] = 100; } } else if (pNumber == 7) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int c7 = {34, 35, 46, 47, 48, 49};//viola for (int c = 0; c < 6; c++) { hue[c7[c] = 307; sat[c7[c] = 95; luminoso[c7[c] = 100; } } else if (pNumber == 8) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int c8 = {34, 35, 46, 47, 48, 49}; //viola for (int c = 0; c < 6; c++) { tonalità[c8[c] = 307; sat[c8[c] = 95; luminoso[c8[c] = 100; } } else if (pNumber == 9) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int c9 = {34, 35, 46, 47, 48, 49}; //viola for (int c = 0; c < 6; c++) { tonalità[c9[c] = 307; sat[c9[c] = 95; luminoso[c9[c] = 100; } } else if (pNumber == 10) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int c10 = {34, 35, 46, 47, 48, 49}; //viola for (int c = 0; c < 6; c++) { tonalità[c10[c] = 307; sat[c10[c] = 95; luminoso[c10[c] = 100; } } else if (pNumber == 11) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int c11 = {34, 35, 46, 47, 48, 49}; //viola for (int c = 0; c < 6; c++) { tonalità[c11[c] = 307; sat[c11[c] = 95; luminoso[c11[c] = 100; } } else if (pNumber == 12) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int c12 = {34, 35, 46, 47, 48, 49}; //viola for (int c = 0; c < 6; c++) { tonalità[c12[c] = 307; sat[c12[c] = 95; luminoso[c12[c] = 100; } } else if (pNumber == 13) { for (int i = 0; i < num; i++) { bright = 0; gValore = 1; } int a13 = {34, 35}; //giallo int b13 = {47}; //blue int c13 = {48}; //viola for (int a = 0; a < 2; a++) { tonalità[a13[a] = 53; sat[a13[a] = 95; luminoso[a13[a] = 100; } for (int b = 0; b < 1; b++) { tonalità[b13 = 210; sat[b13 = 95; luminoso[b13 = 100; } for (int c = 0; c < 1; c++) { tonalità[c13[c] = 307; sat[c13[c] = 95; luminoso[c13[c] = 100; } } pNumber = pNumber + 1;

if (pNumber == 14) {

pNumero = 0; } }

vuoto ani2() {

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

if (curM - preM >= 10) {

preM = curM; for (int i = 0; i < num; i++) { if (hue = 360) { gValue = -1; } tonalità = tonalità + gValue; } contatore++; if (contatore == 360) { // Serial.print("contatore: "); // Serial.println(contatore); // Serial.println(curM); contatore = 0; ani2_Counter = 0; } } }

vuoto ani3() {

// Serial.println("3"); } ////////////////////////////////////////// void readyState() { / / Serial.println("pronto"); } ///////////////////////////////////////// void btnEvent(int b_interval) { curMillis1 lungo senza segno = 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 (tonalità <= 0) { tonalitàV = 1; } tonalità = tonalità + tonalitàV; luminoso = 100; } } } } ////////////////////////////////////////// void setPixels(int k) { for (int i = 0; i < k; i++) { H2R_HSBtoRGB(hue, sat, bright, colors); int numero1 = i * 3; strip.setPixelColor(num1, colori[0], colori[1], colori[2]); strip.setPixelColor(num1 + 1, colori[0], colori[1], colori[2]); strip.setPixelColor(num1 + 2, colori[0], colori[1], colori[2]); } strip.show(); }

Passaggio 20: modelli

Modelli!
Modelli!
Modelli!
Modelli!

Questo progetto ha diversi triangoli che formano una forma esagonale. Quindi puoi creare modelli stereoscopici in base a come progetti la luce! Basta premere ogni pezzo e vari colori verranno graduati, e quando il colore desiderato esce, basta colpire la mano che hai premuto e continuerà a brillare magnificamente con il colore che volevi!

Consigliato: