Inhaltsverzeichnis:

Zünde mich an! - Gunook
Zünde mich an! - Gunook

Video: Zünde mich an! - Gunook

Video: Zünde mich an! - Gunook
Video: Smile And Burn - Zünde mich an [OFFICIAL VIDEO] 2024, November
Anonim
Erleuchte mich!
Erleuchte mich!
Erleuchte mich!
Erleuchte mich!
Erleuchte mich!
Erleuchte mich!
Erleuchte mich!
Erleuchte mich!

Mitglieder des Projektteams

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Was wäre, wenn Sie das Licht anfassen und gestalten könnten? Wie würde es sich anfühlen, wenn Sie ein schönes Lichtmuster hätten, das Sie mit einer interessanten Animation selbst entworfen haben?Light me up wird ein interessantes Skizzenbuch sein, das das Licht selbst berührt und gestaltet und interessante Muster macht! sechseckige Form. So können Sie je nach Lichtdesign stereoskopische Muster erstellen! Drücken Sie einfach auf jedes Stück und verschiedene Farben werden abgestuft, und wenn die gewünschte Farbe herauskommt, drücken Sie einfach auf die Hand, die Sie gedrückt haben, und es wird weiterhin schön in der gewünschten Farbe glänzen! Das Projekt verwendet etwa 312 Dreiecke, aber es könnte entstehen ein schönes Licht, das gut mit 6 Dreiecken funktioniert. Lassen Sie mich Ihnen jetzt zeigen, wie Sie es mit sechs Dreiecken machen. Folgen Sie den Schritten und Sie werden Ihre eigene wunderbare Arbeit haben!

Lieferungen

Hardware: Arduino (ich habe Arduino Mega 2560 verwendet), Acryl (klar, weiß), LED-Streifen (NeoPixel), Diffusorfolie, Taste, 4-poliger Stecker, Draht, Platine, Netzteil

Werkzeuge: Lasergeführte Schneidemaschine, 3D-Drucker

Schritt 1: Lass es uns schaffen

Lass es uns machen!
Lass es uns machen!
Lass es uns machen!
Lass es uns machen!
Lass es uns machen!
Lass es uns machen!

Lass uns dieses süße sechseckige Stück mit mir machen!

Das Light Me Up besteht aus 312 Dreiecken, aber auch 6 Dreiecke können wunderbares Licht erzeugen. Wenn Sie es in größerem Maßstab machen möchten, können Sie dies anhand der unten angehängten Datei tun.

Schritt 2: Materialvorbereitung

Material vorbereitung
Material vorbereitung

Schritt 3: Acryl schneiden

Schneiden von Acryl
Schneiden von Acryl
Schneiden von Acryl
Schneiden von Acryl
Schneiden von Acryl
Schneiden von Acryl
Schneiden von Acryl
Schneiden von Acryl

Verwenden Sie einen Laserschneider, um die Vorder- und Rückseite jedes Teils zu schneiden. Die Farbe des Acryls auf der Rückseite kann beliebig sein, aber achten Sie darauf, transparentes Acryl zu verwenden, da die Vorderseite abgedunkelt werden muss! Wenn Sie eine andere Acrylfarbe als transparent verwenden, sehen Sie das Licht nicht gut.

Schritt 4: Machen Sie Seiten mit 3D-Druckern

Machen Sie Seiten mit 3D-Druckern
Machen Sie Seiten mit 3D-Druckern
Machen Sie Seiten mit 3D-Druckern
Machen Sie Seiten mit 3D-Druckern
Machen Sie Seiten mit 3D-Druckern
Machen Sie Seiten mit 3D-Druckern

Jetzt ist es Zeit, die Seiten jedes Stücks zu machen. Auf geht's! Die 3D-Modellierungsdateien an der Seite sind unten angehängt. Wir haben das PLA verwendet, um Seiten zu machen. Das PLA ist stärker und zieht sich weniger zusammen als das ABS, daher werden Filamente empfohlen, um das PLA zu verwenden.

Schritt 5: Filmen

Dreharbeiten
Dreharbeiten
Dreharbeiten
Dreharbeiten
Dreharbeiten
Dreharbeiten

Lassen Sie uns nun eine Lichtstreuungsfolie auf das Acryl auf der Vorderseite legen. Wenn Sie Folie darauf legen, breitet sie sich aus und glänzt viel schöner. Schneiden Sie zuerst die Folie in die Form eines Dreiecks. (Sie sollten die Folie besser schneiden als das geschnittene Acryl) Es ist einfach, Folie wie eine Schutzfolie auf Ihr Telefon zu legen. Wenn Sie hier Trinkgeld geben möchten, können Sie es mit einer Karte schieben, damit es sauber aufgeklebt werden kann!

Schritt 6: LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten

LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten
LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten
LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten
LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten
LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten
LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten
LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten
LED-Streifen anbringen + LED-Streifen (NeoPixel) mit Drähten löten

Wenn Sie so gut im Löten des LED-Streifens waren, ist es Zeit, den LED-Streifen auf die Rückseite zu legen. Bringen Sie zuerst eine Klebepistole oder ein doppelseitiges Klebeband an der Rückseite des LED-Streifens an. Und zuerst die Drähte von beiden Seiten des Lötdrahtes durch die Löcher auf beiden Seiten entfernen. Zum Schluss noch den LED-Streifen am hinteren Acryl befestigen und fertig!

Es ist Lötzeit! Bereiten Sie LED-Streifen, 4-polige Stecker (Stecker oder Drähte) vor und was Sie zum Löten benötigen. Ich habe LEDs in drei Einheiten verwendet. Sie können ein oder zwei LEDs verwenden, wenn Sie möchten, aber ich empfehle drei. Wenn alle Materialien fertig sind, löten Sie die Drähte in beiden Datenleitungen, 5V-Leitungen und Masseleitungen des LED-Streifens.

Schritt 7: Taktschalter mit Drähten löten

Löttaktschalter mit Drähten
Löttaktschalter mit Drähten
Löttaktschalter mit Drähten
Löttaktschalter mit Drähten

Schritt 8: Montage -Schraube an der Seite einsetzen =

Montage -Schraube seitlich einsetzen=
Montage -Schraube seitlich einsetzen=
Montage -Schraube seitlich einsetzen=
Montage -Schraube seitlich einsetzen=

Jetzt ist es ein wirklich einfacher Teil! Platzieren Sie eine Schraube auf jeder der drei 3D-gedruckten Seiten. Der Grund, warum die Verwendung des Bolzenknopfes wie die Verwendung von strukturellen Schrauben und Muttern erfolgen kann. Wenn das Stück fertig ist, lege ich das Stück in den Koffer und beende es mit einer Nuss.

Schritt 9: Befestigen Sie Ⓛⓣ an Ⓒ= ②

an anhängen = ②
an anhängen = ②
an = ②. anhängen
an = ②. anhängen

Schritt 10: Zusammenbau -Verwenden Sie ein Ⓦ und Ⓝ, um ① und ②= ③. zu kombinieren

Zusammenbau -Verwende a Ⓦ und Ⓝ, um ① und ②= ③. zu kombinieren
Zusammenbau -Verwende a Ⓦ und Ⓝ, um ① und ②= ③. zu kombinieren
Zusammenbau -Verwende a Ⓦ und Ⓝ, um ① und ②= ③. zu kombinieren
Zusammenbau -Verwende a Ⓦ und Ⓝ, um ① und ②= ③. zu kombinieren
Zusammenbau -Verwende a Ⓦ und Ⓝ, um ① und ②= ③. zu kombinieren
Zusammenbau -Verwende a Ⓦ und Ⓝ, um ① und ②= ③. zu kombinieren

Schritt 11: Montage -Befestigen Sie Ⓐⓔ und ③ mit einer Acrylbindung = ④

Zusammenbau -Befestige Ⓐⓔ und ③ mit einer Acrylverbindung= ④
Zusammenbau -Befestige Ⓐⓔ und ③ mit einer Acrylverbindung= ④
Zusammenbau -Befestige Ⓐⓔ und ③ mit einer Acrylverbindung= ④
Zusammenbau -Befestige Ⓐⓔ und ③ mit einer Acrylverbindung= ④
Zusammenbau -Befestige Ⓐⓔ und ③ mit einer Acrylverbindung= ④
Zusammenbau -Befestige Ⓐⓔ und ③ mit einer Acrylverbindung= ④
Zusammenbau -Befestige Ⓐⓔ und ③ mit einer Acrylverbindung= ④
Zusammenbau -Befestige Ⓐⓔ und ③ mit einer Acrylverbindung= ④

Wenn Sie eine Schraube an der Seite anbringen, setzen wir sie an der Seite und vorne an. Die Vorderseite ist aus Acryl, daher müssen Sie sie mit einer speziellen Acrylverbindung anbringen. Wenn du Acryl an einer normalen Bindung anbringst, hinterlässt es Spuren.

Schritt 12: an Ⓓ= ⑤. anhängen

an anhängen = ⑤
an anhängen = ⑤
an anhängen = ⑤
an anhängen = ⑤

Schritt 13: Zusammenbau -Kombiniere ④ und ⑤ mit Ⓦ und Ⓝ= ⑥

Zusammenbau -Kombiniere ④ und ⑤ mit Ⓦ und Ⓝ= ⑥
Zusammenbau -Kombiniere ④ und ⑤ mit Ⓦ und Ⓝ= ⑥
Zusammenbau -Kombiniere ④ und ⑤ mit Ⓦ und Ⓝ= ⑥
Zusammenbau -Kombiniere ④ und ⑤ mit Ⓦ und Ⓝ= ⑥
Zusammenbau -Kombiniere ④ und ⑤ mit Ⓦ und Ⓝ= ⑥
Zusammenbau -Kombiniere ④ und ⑤ mit Ⓦ und Ⓝ= ⑥

Schritt 14: Komplette Stückmontage

Komplette Stückmontage
Komplette Stückmontage
Komplette Stückmontage
Komplette Stückmontage
Komplette Stückmontage
Komplette Stückmontage

Schritt 15: Das funktionierende Erscheinungsbild eines Projekts

Image
Image

Schritt 16: NeoPixel, Anschlussverdrahtung

NeoPixel, Anschlussverkabelung
NeoPixel, Anschlussverkabelung
NeoPixel, Anschlussverkabelung
NeoPixel, Anschlussverkabelung
NeoPixel, Anschlussverkabelung
NeoPixel, Anschlussverkabelung

Schritt 17: NeoPixel- und Arduino-Verkabelung

NeoPixel- und Arduino-Verkabelung
NeoPixel- und Arduino-Verkabelung

Schritt 18: Programmieren Sie das Arduino

extern volatile unsigned long timer0_millis;

#enthalten

#define MODEBTNNUM 3 int ani_mode = 0; vorzeichenlos lang preM1, preM2, preM3;

Leere Einrichtung () {

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

Leere Schleife () {

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); Während (Wire.available ()) {int x = Wire.read (); // Serial.println (x); wenn (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); } } } ///////////////////////////////////////////// /////// if (ani_mode == 0) { for (int i = 1; i 3000) { preM1 = current1; für (int i = 1; i 5000) {preM2 = aktuell2; für (int i = 1; i 3000) {preM3 = current3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("Timer-Reset"); for (int i = 1; i < 7; i++) { Wire.beginTransmission(i); Wire.write (ani_mode); //Seriell.println("3000"); Wire.endTransmission(i); } } } }

Schritt 19:

extern volatile unsigned long timer0_millis;

#enthalten

#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel-Streifen = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int num = NUMPIXELS / 3; const int slaveNum = 1; int Farben[num][3]; int Farbton[num]; int sat[num]; int hell[num]; int pZahl = 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 }; 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]; boolescher btnMode; 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 }; #include #define BTNNUM 1 int f_v = 1; unsigned long preMillis1; unsigned long preM; int ani_mode = 0; int ani2_Counter = 0; int-Zähler = 0; //////////////////////////////////////////void setup () { Draht. begin(slaveNum); Wire.onRequest(requestEvent); Wire.onReceive(receiveEvent); for (int i = 0; i < num; i++) { pinMode (btnPin, INPUT_PULLUP); } //Seriell.begin (9600); strip.begin(); } //////////////////////////////////////////

Leere Schleife () {

if (f_v == 1) { for (int i = 0; i < num; i++) { hue = 50; sat = 95; hell = 100; } f_v = 0; } ///////////////////////////////////// //버튼 입력 체크:멈춤신호 보내기 btnMode = falsch; for (int i = 0; i < num; i++) { if (!digitalRead(btnPin)) { btnMode = true; } } btnEvent(5); // Serial.println (ani_mode); ///////////////////////////////////// Schalter (ani_mode) {Fall 0: ani0(); brechen; Fall 1: ani1(); ani_mode = 0; ani2_Counter = 0; brechen; Fall 2: ani2_Counter = 1; ani_mode = 0; brechen; Fall 3: ani3(); ani_mode = 0; ani2_Zähler = 0; brechen; Standard: readyState(); brechen; aufrechtzuerhalten. Wenn (ani2_Counter == 1) {ani2(); } setPixels(num); }

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

Void ReceiveEvent (int howMany) {int x = Wire.read(); Wenn (x == 5) {//Serial.println ("5 erhalten"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } ////////////////////////////////////////// void requestEvent() {

if (btnMode == true) {

Wire.write(5); // Serial.println("5 보냄"); aufrechtzuerhalten. Sonst { Wire.write (0); }

}

Leere ani0() {

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

Leere ani1() {

// Serial.println ("1"); if (pNumber == 0) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; für (int a = 0; a < 2; a++) { hue[a1[a] = 100; sat[a1[a] = 95; hell[a1[a] = 100; } für (int b = 0; b < 2; b++) { hue[b1 = 200; sat[b1 = 95; hell[b1 = 100; } für (int c = 0; c < 2; c++) { Farbton[c1[c] = 300; sat[c1[c] = 95; hell[c1[c] = 100; } // Serial.println ("0"); aufrechtzuerhalten. Sonst if (pNumber == 1) { for (int i = 0; i < num; i++) { Bright = 0; gWert = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; für (int a = 0; a < 8; a++) { hue[a2[a] = 26; sat[a2[a] = 95; hell[a2[a] = 100; } für (int d = 0; d < 4; d++) { Farbton[d2[d] = 63; sat[d2[d] = 95; hell[d2[d] = 100; } // Serial.println ("1"); aufrechtzuerhalten. Sonst if (pNumber == 2) {//Riesenwürfelmuster für (int i = 0; i < num; i++) {hell = 0; gWert = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // yellow 06 for (int a = 0; a < 6; a++) { hue[a14[a] = 35; sat[a14[a] = 95; hell[a14[a] = 100; }} sonst if (pNumber == 3) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // Gelb für (int a = 0; a < 6; a++) { hue[a3[a] = 53; sat[a3[a] = 95; hell[a3[a] = 100; }} else if (pNumber == 4) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int a4 = {34, 35};//gelb int b4 = {47};//blau int c4 = {48};//lila

für (int a = 0; a < 2; a++) { hue[a4[a] = 53; sat[a4[a] = 95; hell[a4[a] = 100; }

für (int b = 0; b < 1; b++) { Farbton[b4 = 210; sat[b4 = 95; hell[b4 = 100; } für (int c = 0; c < 1; c++) { Farbton[c4[c] = 307; sat[c4[c] = 95; hell[c4[c] = 100; }} else if (pNumber == 5) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int a5 = {34, 35, 46, 47, 48, 49};

für (int a = 0; a < 6; a++) { hue[a5[a] = 100; sat[a5[a] = 95; hell[a5[a] = 100; }} else if (pNumber == 6) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // Gelb für (int a = 0; a < 6; a++) { hue[a6[a] = 53; sat[a6[a] = 95; hell[a6[a] = 100; }} else if (pNumber == 7) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // lila für (int c = 0; c < 6; c++) { hue[c7[c] = 307; sat[c7[c] = 95; hell[c7[c] = 100; }} else if (pNumber == 8) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int c8 = {34, 35, 46, 47, 48, 49}; //violett für (int c = 0; c < 6; c++) { hue[c8[c] = 307; sat[c8[c] = 95; hell[c8[c] = 100; }} else if (pNumber == 9) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int c9 = {34, 35, 46, 47, 48, 49}; //violett für (int c = 0; c < 6; c++) { hue[c9[c] = 307; sat[c9[c] = 95; hell[c9[c] = 100; }} else if (pNumber == 10) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int c10 = {34, 35, 46, 47, 48, 49}; //violett für (int c = 0; c < 6; c++) { hue[c10[c] = 307; sat[c10[c] = 95; hell[c10[c] = 100; }} else if (pNumber == 11) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int c11 = {34, 35, 46, 47, 48, 49}; //violett für (int c = 0; c < 6; c++) { hue[c11[c] = 307; sat[c11[c] = 95; hell[c11[c] = 100; }} else if (pNumber == 12) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int c12 = {34, 35, 46, 47, 48, 49}; //violett für (int c = 0; c < 6; c++) { hue[c12[c] = 307; sat[c12[c] = 95; hell[c12[c] = 100; }} else if (pNumber == 13) { for (int i = 0; i < num; i++) { bright = 0; gWert = 1; } int a13 = {34, 35}; //gelb int b13 = {47}; // blau int c13 = {48}; //violett für (int a = 0; a < 2; a++) { hue[a13[a] = 53; sat[a13[a] = 95; hell[a13[a] = 100; } für (int b = 0; b < 1; b++) { hue[b13 = 210; sat[b13 = 95; hell[b13 = 100; } für (int c = 0; c < 1; c++) { Farbton[c13[c] = 307; sat[c13[c] = 95; hell[c13[c] = 100; } } pZahl = pZahl + 1;

if (pZahl == 14) {

pZahl = 0; } }

Leere 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; } Farbton = Farbton + gWert; } Zähler++; Wenn (Zähler == 360) {//Serial.print ("Zähler: "); // Serial.println (Zähler); // Serial.println (curM); Zähler = 0; ani2_Counter = 0; } } }

Leere ani3() {

// Serial.println ("3"); } //////////////////////////////////////////void readyState() {/ /Serial.println("bereit"); } ////////////////////////////////////////// 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; für (int i = 0; i = 360) { hueV = -1; aufrechtzuerhalten. Sonst wenn (Farbton <= 0) { Farbton = 1; } Farbton = Farbton + FarbtonV; hell = 100; } } } } ///////////////////////////////////////// void setPixels(int k) { for (int i = 0; i < k; i++) { H2R_HSBtoRGB(hue, sat, bright, colors); int num1 = i * 3; strip.setPixelColor(num1, Farben[0], Farben[1], Farben[2]); strip.setPixelColor(num1 + 1, Farben[0], Farben[1], Farben[2]); strip.setPixelColor(num1 + 2, Farben[0], Farben[1], Farben[2]); } Strip-Show(); }

Schritt 20: Muster

Muster!
Muster!
Muster!
Muster!

Dieses Projekt hat mehrere Dreiecke, die eine sechseckige Form bilden. So können Sie je nach Lichtdesign stereoskopische Muster erstellen! Drücken Sie einfach auf jedes Stück und verschiedene Farben werden abgestuft, und wenn die gewünschte Farbe herauskommt, drücken Sie einfach auf die Hand, die Sie gedrückt haben, und sie wird weiterhin schön in der gewünschten Farbe glänzen!

Empfohlen: