Sommario:
- Forniture
- Passaggio 1: facciamolo
- Passaggio 2: preparazione del materiale
- Passaggio 3: taglio dell'acrilico
- Passaggio 4: crea i lati con le stampanti 3D
- Passaggio 5: riprese
- Passaggio 6: collegare la striscia LED + la striscia LED di saldatura (NeoPixel) con i fili
- Passaggio 7: interruttore tattile di saldatura con fili
- Passaggio 8: montaggio -Inserire il bullone sul lato=
- Passaggio 9: collega Ⓛⓣ a Ⓒ= ②
- Passaggio 10: Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③
- Step 11: Assemblaggio -Attacca Ⓐⓔ e ③ Usando un adesivo acrilico= ④
- Passaggio 12: collega Ⓢ a Ⓓ= ⑤
- Passaggio 13: Assemblaggio - Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥
- Passaggio 14: assemblaggio completo del pezzo
- Passaggio 15: l'aspetto lavorativo di un progetto
- Passaggio 16: NeoPixel, cablaggio del connettore
- Passaggio 17: cablaggio NeoPixel e Arduino
- Passaggio 18: programma Arduino
- Passaggio 19:
- Passaggio 20: modelli
Video: Illuminami!: 20 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
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
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
Passaggio 3: taglio dell'acrilico
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
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
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
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
Passaggio 8: montaggio -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 Ⓒ= ②
Passaggio 10: Assemblaggio: utilizzare Ⓦ e Ⓝ per combinare ① e ②= ③
Step 11: Assemblaggio -Attacca Ⓐⓔ e ③ Usando 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 Ⓓ= ⑤
Passaggio 13: Assemblaggio - Combina e ⑤ Usando Ⓦ e Ⓝ= ⑥
Passaggio 14: assemblaggio completo del pezzo
Passaggio 15: l'aspetto lavorativo di un progetto
Passaggio 16: NeoPixel, cablaggio del connettore
Passaggio 17: 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
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:
Come installare Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: 7 passaggi (con immagini)
Howto: installazione di Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: ho intenzione di utilizzare questo Rapsberry PI in una serie di progetti divertenti nel mio blog. Sentiti libero di dare un'occhiata. Volevo tornare a usare il mio Raspberry PI ma non avevo una tastiera o un mouse nella mia nuova posizione. Era un po' che non installavo un Raspberry
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: 6 passaggi (con immagini)
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: Ehi, come va, ragazzi! Akarsh qui da CETech. In questo progetto, daremo un'occhiata all'HuskyLens di DFRobot. È un modulo fotocamera basato sull'intelligenza artificiale in grado di eseguire diverse operazioni di intelligenza artificiale come Face Recognitio
Riconoscimento delle immagini con schede K210 e Arduino IDE/Micropython: 6 passaggi (con immagini)
Riconoscimento immagine con schede K210 e Arduino IDE/Micropython: ho già scritto un articolo su come eseguire demo OpenMV su Sipeed Maix Bit e ho anche realizzato un video di demo di rilevamento oggetti con questa scheda. Una delle tante domande che le persone hanno posto è: come posso riconoscere un oggetto che la rete neurale non è tr
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro
Come smontare un computer con semplici passaggi e immagini: 13 passaggi (con immagini)
Come smontare un computer con semplici passaggi e immagini: questa è un'istruzione su come smontare un PC. La maggior parte dei componenti di base sono modulari e facilmente smontabili. Tuttavia è importante che tu sia organizzato al riguardo. Questo ti aiuterà a non perdere parti e anche a rendere più facile il rimontaggio