Spisu treści:

Rozświetl mnie!: 20 kroków (ze zdjęciami)
Rozświetl mnie!: 20 kroków (ze zdjęciami)

Wideo: Rozświetl mnie!: 20 kroków (ze zdjęciami)

Wideo: Rozświetl mnie!: 20 kroków (ze zdjęciami)
Wideo: White 2115 - Gubię kroki 2024, Listopad
Anonim
Rozpal mnie!
Rozpal mnie!
Rozpal mnie!
Rozpal mnie!
Rozpal mnie!
Rozpal mnie!
Rozpal mnie!
Rozpal mnie!

członkowie zespołu projektowego

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Co by było, gdybyś mógł dotknąć i zaprojektować światło? Jak by to było, gdybyś miał piękny wzór światła, który sam zaprojektowałeś z ciekawą animacją? Rozświetl mnie będzie ciekawym szkicownikiem, który dotyka i projektuje samo światło i tworzy ciekawe wzory! Ten projekt ma kilka trójkątów, które tworzą sześciokątny kształt. Możesz więc tworzyć stereoskopowe wzory zgodnie z tym, jak projektujesz światło! Wystarczy nacisnąć każdy element, a różne kolory będą stopniowane, a gdy żądany kolor wyjdzie, po prostu uderz w naciśniętą dłoń, a będzie nadal pięknie świecić kolorem, który chciałeś! W projekcie wykorzystano około 312 trójkątów, ale mógł stworzyć ładne światło, które dobrze współpracuje z 6 trójkątami. Teraz pokażę ci, jak to zrobić z sześcioma trójkątami. Postępuj zgodnie z instrukcjami, a będziesz miał własną wspaniałą pracę!

Kieszonkowe dzieci

Sprzęt: Arduino (użyłem arduino mega 2560), akryl (przezroczysty, biały), pasek LED (NeoPixel), folia dyfuzorowa, przycisk, złącze 4-pinowe, przewód, płytka drukowana, zasilacz

Narzędzia: Maszyna do cięcia laserowego, drukarka 3D

Krok 1: Zróbmy to

Zróbmy to!
Zróbmy to!
Zróbmy to!
Zróbmy to!
Zróbmy to!
Zróbmy to!

Zróbmy ze mną ten uroczy sześciokątny kawałek!

Light Me Up składa się z 312 trójkątów, ale nawet 6 trójkątów może zaprojektować wspaniałe światło. Jeśli chcesz zrobić to na większą skalę, możesz to zrobić powołując się na załączony poniżej plik.

Krok 2: Przygotowanie materiału

Przygotowanie materiału
Przygotowanie materiału

Krok 3: Cięcie akrylu

Cięcie akrylu
Cięcie akrylu
Cięcie akrylu
Cięcie akrylu
Cięcie akrylu
Cięcie akrylu
Cięcie akrylu
Cięcie akrylu

Użyj wycinarki laserowej, aby wyciąć przód i tył każdej części. Kolor akrylu z tyłu może być dowolny, ale upewnij się, że używasz przezroczystego akrylu, ponieważ przód musi być przyciemniony! Jeśli użyjesz kolorowego akrylu innego niż przezroczysty, nie będziesz dobrze widzieć światła.

Krok 4: Zrób strony z drukarkami 3D

Twórz strony z drukarkami 3D
Twórz strony z drukarkami 3D
Twórz strony z drukarkami 3D
Twórz strony z drukarkami 3D
Twórz strony z drukarkami 3D
Twórz strony z drukarkami 3D

Teraz nadszedł czas na wykonanie boków każdego kawałka. Zróbmy to! Pliki modelowania 3D z boku są załączone poniżej. Użyliśmy PLA do wykonania boków PLA jest mocniejszy i mniej skurczy niż ABS, dlatego zaleca się stosowanie włókien z PLA.

Krok 5: Filmowanie

Filmowanie
Filmowanie
Filmowanie
Filmowanie
Filmowanie
Filmowanie

Teraz nałóżmy folię rozpraszającą światło na akryl na froncie. Jeśli nałożysz na nią folię, rozłoży się i błyszczy znacznie ładniej. Najpierw przytnij folię do kształtu trójkąta. (Lepiej przyciąć folię większą niż cięty akryl) Łatwo jest nałożyć folię, jak folię ochronną na telefon. Jeśli chcesz dawać napiwek, możesz użyć karty, aby ją popchnąć, aby dobrze się utknęła!

Krok 6: Przymocuj pasek LED + pasek LED do lutowania (NeoPixel) za pomocą przewodów

Dołącz taśmę LED + taśmę LED do lutowania (NeoPixel) z przewodami
Dołącz taśmę LED + taśmę LED do lutowania (NeoPixel) z przewodami
Dołącz taśmę LED + taśmę LED do lutowania (NeoPixel) z przewodami
Dołącz taśmę LED + taśmę LED do lutowania (NeoPixel) z przewodami
Dołącz taśmę LED + taśmę LED do lutowania (NeoPixel) z przewodami
Dołącz taśmę LED + taśmę LED do lutowania (NeoPixel) z przewodami
Dołącz taśmę LED + taśmę LED do lutowania (NeoPixel) z przewodami
Dołącz taśmę LED + taśmę LED do lutowania (NeoPixel) z przewodami

Jeśli byłeś tak dobry w lutowaniu paska LED, czas umieścić pasek LED z tyłu. Najpierw przymocuj pistolet do kleju lub taśmę dwustronną z tyłu paska LED. I najpierw usuń przewody z obu stron drutu lutowniczego przez otwory po obu stronach. Na koniec przymocuj pasek LED do tylnego akrylu i gotowe!

Czas na lutowanie! przygotuj paski LED, złącza 4-pinowe (złącze lub przewody) i co potrzebujesz do lutowania. Użyłem diod LED w trzech jednostkach. Możesz użyć jednej lub dwóch diod LED, jeśli chcesz, ale polecam użycie trzech. Gdy wszystkie materiały są gotowe, przylutuj przewody w obu liniach danych, liniach 5v i liniach uziemienia taśmy LED.

Krok 7: Przełącznik taktyczny lutowania z przewodami

Przełącznik taktowy lutowania z przewodami
Przełącznik taktowy lutowania z przewodami
Przełącznik taktowy lutowania z przewodami
Przełącznik taktowy lutowania z przewodami

Krok 8: Montaż – włóż śrubę z boku= ①

Montaż - Włóż śrubę z boku= ①
Montaż - Włóż śrubę z boku= ①
Montaż - Włóż śrubę z boku= ①
Montaż - Włóż śrubę z boku= ①

Teraz to naprawdę łatwa część! Umieść jedną śrubę na każdej z trzech stron wydrukowanych w 3D. Powód, dla którego użycie przycisku śruby, podobnie jak użycie śrub konstrukcyjnych i nakrętek, będzie w stanie zrobić. Kiedy kawałek będzie gotowy, włożę go do etui i dokończę nakrętką.

Krok 9: Dołącz Ⓛⓣ do Ⓒ= ②

Dołącz Ⓛⓣ do Ⓒ= ②
Dołącz Ⓛⓣ do Ⓒ= ②
Dołącz Ⓛⓣ do Ⓒ= ②
Dołącz Ⓛⓣ do Ⓒ= ②

Krok 10: Montaż - użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③

Montaż - Użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③
Montaż - Użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③
Montaż - Użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③
Montaż - Użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③
Montaż - Użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③
Montaż - Użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③

Krok 11: Montaż – przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④

Montaż -Przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
Montaż -Przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
Montaż -Przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
Montaż -Przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
Montaż -Przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
Montaż -Przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
Montaż -Przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
Montaż -Przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④

Jeśli założysz śrubę z boku, założymy ją z boku i z przodu. Front jest akrylowy, więc trzeba go założyć dedykowanym akrylowym spoiwem. Jeśli przymocujesz akryl do zwykłego wiązania, pozostawi ślad.

Krok 12: Dołącz Ⓢ do Ⓓ= ⑤

Dołącz Ⓢ do Ⓓ= ⑤
Dołącz Ⓢ do Ⓓ= ⑤
Dołącz Ⓢ do Ⓓ= ⑤
Dołącz Ⓢ do Ⓓ= ⑤

Krok 13: Montaż - Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥

Montaż -Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥
Montaż -Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥
Montaż -Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥
Montaż -Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥
Montaż -Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥
Montaż -Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥

Krok 14: Kompletny montaż elementu

Kompletny montaż elementu
Kompletny montaż elementu
Kompletny montaż elementu
Kompletny montaż elementu
Kompletny montaż elementu
Kompletny montaż elementu

Krok 15: Wygląd roboczy projektu

Image
Image

Krok 16: NeoPixel, okablowanie złącza

NeoPixel, okablowanie złącza
NeoPixel, okablowanie złącza
NeoPixel, okablowanie złącza
NeoPixel, okablowanie złącza
NeoPixel, okablowanie złącza
NeoPixel, okablowanie złącza

Krok 17: Okablowanie NeoPixel i Arduino

Okablowanie NeoPixel i Arduino
Okablowanie NeoPixel i Arduino

Krok 18: Zaprogramuj Arduino

extern volatile unsigned long timer0_millis;

#włączać

#define MODEBTNNUM 3 int ani_mode = 0; bez znaku długi preM1, preM2, preM3;

pusta konfiguracja () {

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

pusta pętla () {

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); jeśli (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 = prąd2; for (int i = 1; i 3000) { preM3 = prąd3; // timer0_milli = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println("resetowanie licznika"); for (int i = 1; i < 7; i++) { Wire.beginTransmission(i); Wire.write(ani_mode); //Serial.println("3000"); Wire.endTransmission(i); } } } }

Krok 19:

extern volatile unsigned long timer0_millis;

#włączać

#include #define PIN 12 #define LICZBA PIKSELÓW 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel(LICZBA PIKSELÓW, PIN, NEO_GRB + NEO_KHZ800); const int liczba = LICZBA PIKSELÓW / 3; const int slaveNum = 1; kolory int[liczba][3]; int odcień[liczba]; int sat[liczba]; int jasny[liczba]; int numer p = 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, 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[liczba]; wartość logiczna btnMode; int barwaV[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, 1 }; #include #define BTNNUM 1 int f_v = 1; bez znaku długi preMillis1; niepodpisany długi preM; int ani_mode = 0; int ani2_Counter = 0; int licznik = 0; ////////////////////////////////////////// void setup() { Wire. początek(slaveNum); Wire.onRequest(requestEvent); Wire.onReceive(odbierzZdarzenie); for (int i = 0; i < num; i++) { pinMode(btnPin, INPUT_PULLUP); } //Serial.begin(9600); strip.początek(); } //////////////////////////////////////////

pusta pętla () {

if (f_v == 1) { for (int i = 0; i < num; i++) { barwa = 50; sat = 95; jasny = 100; } f_v = 0; } ///////////////////////////////////// //버튼 입력 체크:멈춤신호 보내기 btnMode = fałszywe; for (int i = 0; i < num; i++) { if (!digitalRead(btnPin)) { btnMode = true; } } btnEvent(5); // Serial.println(ani_mode); ////////////////////////////////////// przełącznik (tryb_ani) { przypadek 0: ani0(); przerwa; przypadek 1: ani1(); tryb_ani = 0; ani2_Counter = 0; przerwa; przypadek 2: ani2_Counter = 1; tryb_ani = 0; przerwa; przypadek 3: ani3(); tryb_ani = 0; ani2_Counter = 0; przerwa; domyślnie: gotowyState(); przerwa; } if (licznik_ani2 == 1) { ani2(); } setPixels(liczba); }

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

void odbierzZdarzenie(int howMany) { int x = Wire.read(); if (x == 5) { // Serial.println("otrzymano 5"); tryb_ani = 0; } ani_mode = x; // Serial.println(ani_mode); } ////////////////////////////////////////// nieważne żądanieZdarzenie() {

if (btnMode == prawda) {

Drut.zapis(5); // Serial.println("5 보냄"); } else { Wire.write(0); }

}

nieważne ani0() {

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

nieważne ani1() {

// Serial.println("1"); if (pNumber == 0) { for (int i = 0; i < liczba; i++) { jasne = 0; gWartość = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a < 2; a++) { barwa[a1[a] = 100; sat[a1[a] = 95; jasny[a1[a] = 100; } for (int b = 0; b < 2; b++) { barwa[b1 = 200; sat[b1 = 95; jasny[b1 = 100; } for (int c = 0; c < 2; c++) { barwa[c1[c] = 300; sat[c1[c] = 95; jasny[c1[c] = 100; } // Serial.println("0"); } else if (pNumber == 1) { for (int i = 0; i < liczba; i++) { jasne = 0; gWartość = 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++) { barwa[a2[a] = 26; sat[a2[a] = 95; jasny[a2[a] = 100; } for (int d = 0; d < 4; d++) { barwa[d2[d] = 63; sat[d2[d] = 95; jasny[d2[d] = 100; } // Serial.println("1"); } else if (pNumber == 2) { //wielki wzór kostki for (int i = 0; i < num; i++) { bright = 0; gWartość = 1; } int a14 = {34, 35, 46, 47, 48, 49};//żółty 06 for (int a = 0; a < 6; a++) { barwa[a14[a] = 35; sat[a14[a] = 95; jasny[a14[a] = 100; } }else if (pNumber == 3) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int a3 = {34, 35, 46, 47, 48, 49};//żółty dla (int a = 0; a < 6; a++) { barwa[a3[a] = 53; sat[a3[a] = 95; jasny[a3[a] = 100; } } else if (pNumber == 4) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int a4 = {34, 35};//żółty int b4 = {47};//niebieski int c4 = {48};//fioletowy

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

for (int b = 0; b < 1; b++) { barwa[b4 = 210; sat[b4 = 95; jasny[b4 = 100; } for (int c = 0; c < 1; c++) { barwa[c4[c] = 307; sat[c4[c] = 95; jasny[c4[c] = 100; } } else if (pNumber == 5) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (int a = 0; a < 6; a++) { barwa[a5[a] = 100; sat[a5[a] = 95; jasny[a5[a] = 100; } } else if (pNumber == 6) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int a6 = {34, 35, 46, 47, 48, 49};//żółty dla (int a = 0; a < 6; a++) { barwa[a6[a] = 53; sat[a6[a] = 95; jasny[a6[a] = 100; } } else if (pNumber == 7) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c7 = {34, 35, 46, 47, 48, 49};//fioletowy dla (int c = 0; c < 6; c++) { barwa[c7[c] = 307; sat[c7[c] = 95; jasny[c7[c] = 100; } } else if (pNumber == 8) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c8 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c8[c] = 307; sat[c8[c] = 95; jasny[c8[c] = 100; } } else if (pNumber == 9) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c9 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c9[c] = 307; sat[c9[c] = 95; jasny[c9[c] = 100; } } else if (pNumber == 10) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c10 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c10[c] = 307; sat[c10[c] = 95; jasny[c10[c] = 100; } } else if (pNumber == 11) { for (int i = 0; i < liczba; i++) { jasne = 0; gWartość = 1; } int c11 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c11[c] = 307; sat[c11[c] = 95; jasny[c11[c] = 100; } } else if (pNumber == 12) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c12 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c12[c] = 307; sat[c12[c] = 95; jasny[c12[c] = 100; } } else if (pNumber == 13) { for (int i = 0; i < liczba; i++) { jasne = 0; gWartość = 1; } int a13 = {34, 35}; //żółty int b13 = {47}; //niebieski int c13 = {48}; //fioletowy dla (int a = 0; a < 2; a++) { hue[a13[a] = 53; sat[a13[a] = 95; jasny[a13[a] = 100; } for (int b = 0; b < 1; b++) { barwa[b13 = 210; sat[b13 = 95; jasny[b13 = 100; } for (int c = 0; c < 1; c++) { barwa[c13[c] = 307; sat[c13[c] = 95; jasny[c13[c] = 100; } } pNumer = pNumer + 1;

jeśli (pNumber == 14) {

pNumer = 0; } }

nieważne ani2() {

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

if (curM - preM >= 10) {

preM = curM; for (int i = 0; i < liczba; i++) { if (odcień = 360) { gWartość = -1; } barwa = barwa + gWartość; } licznik++; if (counter == 360) { // Serial.print("licznik: "); // Serial.println(licznik); // Serial.println(curM); licznik = 0; ani2_Counter = 0; } } }

nieważne ani3() {

// Serial.println("3"); } ////////////////////////////////////////// nieważne readyState() { / / Serial.println("gotowy"); } ///////////////////////////////////////// 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; dla (int i = 0; i = 360) { hueV = -1; } else if (hue <= 0) { hueV = 1; } barwa = barwa + barwaV; jasny = 100; } } } } ////////////////////////////////////////// void setPixels(int k) { for (int i = 0; i < k; i++) { H2R_HSBtoRGB(odcień, sat, jasne, kolory); int liczba1 = i * 3; strip.setPixelColor(num1, kolory[0], kolory[1], kolory[2]); strip.setPixelColor(num1 + 1, kolory[0], kolory[1], kolory[2]); strip.setPixelColor(num1 + 2, kolory[0], kolory[1], kolory[2]); } strip.show(); }

Krok 20: Wzory

Wzory!
Wzory!
Wzory!
Wzory!

Ten projekt ma kilka trójkątów, które tworzą sześciokątny kształt. Możesz więc tworzyć stereoskopowe wzory zgodnie z tym, jak projektujesz światło! Wystarczy nacisnąć każdy element, a różne kolory będą stopniowane, a gdy wyjdzie żądany kolor, po prostu naciśnij dłoń, którą nacisnąłeś, a będzie nadal pięknie świecić żądanym kolorem!

Zalecana: