Taula de continguts:
- Subministraments
- Pas 1: Fem-ho
- Pas 2: Preparació del material
- Pas 3: tall de l’acrílic
- Pas 4: feu costat amb les impressores 3D
- Pas 5: rodatge
- Pas 6: connecteu una tira LED + tira LED de soldadura (NeoPixel) amb cables
- Pas 7: Interruptor de soldadura amb cables
- Pas 8: Muntatge: inseriu el cargol al costat = ①
- Pas 9: connecteu Ⓛⓣ al Ⓒ = ②
- Pas 10: Muntatge: utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③
- Pas 11: Muntatge -Adjuntar Ⓐⓔ i ③ Utilitzant un enllaç acrílic = ④
- Pas 12: adjunteu Ⓢ a Ⓓ = ⑤
- Pas 13: Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥
- Pas 14: completar el muntatge de la peça
- Pas 15: l'aparença de treball d'un projecte
- Pas 16: NeoPixel, cablejat del connector
- Pas 17: cablejat NeoPixel i Arduino
- Pas 18: programa l'Arduino
- Pas 19:
- Pas 20: patrons
Vídeo: Encén-me !: 20 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
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 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
Pas 3: tall de l’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
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
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
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
Pas 8: Muntatge: inseriu el cargol al costat = ①
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 Ⓒ = ②
Pas 10: Muntatge: utilitzeu Ⓦ i Ⓝ per combinar ① i ② = ③
Pas 11: Muntatge -Adjuntar Ⓐⓔ 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 Ⓓ = ⑤
Pas 13: Muntatge -Combina ④ i ⑤ Utilitzant Ⓦ i Ⓝ = ⑥
Pas 14: completar el muntatge de la peça
Pas 15: l'aparença de treball d'un projecte
Pas 16: NeoPixel, cablejat del connector
Pas 17: 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
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:
Llum amb bateria que s’encén mitjançant l’ús d’imants: 8 passos (amb imatges)
Llum amb bateria que s’encén mitjançant l’ús d’imants: sabem que la majoria de llums s’encenen / apaguen mitjançant un interruptor físic. El meu objectiu amb aquest projecte era crear una manera única d’encendre / apagar fàcilment la llum sense aquest interruptor clàssic. Em va intrigar la idea d'un llum que va canviar de forma durant aquest procés
Encén el collaret fosc: 6 passos (amb imatges)
Enceneu el collaret fosc: imagineu-vos que porteu un collaret que s’il·lumina automàticament quan es fa fosc i quan hi ha prou il·luminació per convertir-se en una joia normal. Un projecte relativament fàcil i divertit, especialment per a aquell que vulgui portar una joia que llueixi literalment. Agafa un
Encén el teu Sant Valentí amb una matriu escumosa: 5 passos
Il·lumina el teu Sant Valentí amb una matriu escumosa: el Dia de Sant Valentí és una oportunitat per enviar missatges d’amor. Per què no fer una cara LED divertida amb components econòmics per expressar el vostre sentiment?
Apagueu els fars quan s'encén: 9 passos (amb imatges)
Apagueu els fars quan s’activa l’encesa: la setmana passada vaig comprar al meu fill gran un Mazda 3 usat del 2007. Està en molt bon estat i li encanta. El problema és que, com que és un model base més antic, no té cap campana ni xiulet addicional com els fars automàtics. Conduïa un Toyota Coroll
Encén aquesta imatge: 6 passos (amb imatges)
Light That Picture!: Hola, aquest és un projecte força senzill on fem una petita foto i la convertim en un objecte decoratiu molt bonic perquè qualsevol noi, home, pare, plomer pugui admirar :) El cost d’aquest projecte és molt baix: -Aquí és el que necessitem-1. Pàgina completa a4 o més gran pr color