Mục lục:

Light Me Up !: 20 bước (kèm hình ảnh)
Light Me Up !: 20 bước (kèm hình ảnh)

Video: Light Me Up !: 20 bước (kèm hình ảnh)

Video: Light Me Up !: 20 bước (kèm hình ảnh)
Video: ĐÁNH NỀN ĐẸP CHỈ SAU 10 PHÚT ~ MẸO ĐÁNH CUSHION ĐẸP, BỀN VÀ NHANH GỌN 2024, Tháng mười một
Anonim
Thắp sáng cho tôi!
Thắp sáng cho tôi!
Thắp sáng cho tôi!
Thắp sáng cho tôi!
Thắp sáng cho tôi!
Thắp sáng cho tôi!
Thắp sáng cho tôi!
Thắp sáng cho tôi!

thành viên nhóm dự án

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Điều gì sẽ xảy ra nếu bạn có thể chạm vào và thiết kế ánh sáng? Bạn sẽ cảm thấy như thế nào nếu có một mẫu ánh sáng tuyệt đẹp do chính tay bạn thiết kế với một hình ảnh động thú vị? Hãy thắp sáng cho tôi sẽ là một cuốn sổ phác thảo thú vị chạm và thiết kế chính ánh sáng và tạo ra những mẫu thú vị! Dự án này có một số hình tam giác tạo thành một hình lục giác. Vì vậy, bạn có thể tạo ra các mẫu lập thể theo cách bạn thiết kế ánh sáng! Chỉ cần nhấn từng miếng và các màu khác nhau sẽ được phân cấp, và khi màu bạn muốn xuất hiện, chỉ cần nhấn vào tay bạn đã nhấn và nó sẽ tiếp tục sáng đẹp với màu bạn muốn! Dự án sử dụng khoảng 312 hình tam giác, nhưng nó có thể tạo ra một đèn tốt hoạt động tốt với 6 hình tam giác. Bây giờ hãy để tôi chỉ cho bạn cách tạo nó với sáu hình tam giác. Làm theo các bước và bạn sẽ có tác phẩm tuyệt vời của riêng mình!

Quân nhu

Phần cứng: Arduino (tôi đã sử dụng arduino mega 2560), Acrylic (trong, trắng), Dải đèn LED (NeoPixel), Phim khuếch tán, nút, Đầu nối 4 chân, Dây điện, Bảng mạch, Nguồn điện

Công cụ: Máy cắt có hướng dẫn bằng laser, Máy in 3D

Bước 1: Hãy bắt đầu

Hãy làm cho nó!
Hãy làm cho nó!
Hãy làm cho nó!
Hãy làm cho nó!
Hãy làm cho nó!
Hãy làm cho nó!

Cùng mình làm mảnh hình lục giác dễ thương này nhé!

Light Me Up được tạo ra từ 312 hình tam giác, nhưng ngay cả 6 hình tam giác cũng có thể tạo ra ánh sáng tuyệt vời. Nếu muốn làm với quy mô lớn hơn, bạn có thể tham khảo file đính kèm bên dưới.

Bước 2: Chuẩn bị nguyên liệu

Chuẩn bị vật liệu
Chuẩn bị vật liệu

Bước 3: Cắt Acrylic

Cắt acrylic
Cắt acrylic
Cắt acrylic
Cắt acrylic
Cắt acrylic
Cắt acrylic
Cắt acrylic
Cắt acrylic

Sử dụng máy cắt laser để cắt mặt trước và mặt sau của từng bộ phận. Màu của acrylic ở mặt sau có thể là bất cứ thứ gì bạn muốn, nhưng hãy đảm bảo sử dụng acrylic trong suốt vì mặt trước phải được làm mờ! Nếu bạn sử dụng màu acrylic không phải trong suốt, bạn sẽ không nhìn rõ ánh sáng.

Bước 4: Tạo Mặt bằng Máy in 3D

Tạo mặt bằng máy in 3D
Tạo mặt bằng máy in 3D
Tạo mặt bằng máy in 3D
Tạo mặt bằng máy in 3D
Tạo mặt bằng máy in 3D
Tạo mặt bằng máy in 3D

Bây giờ là lúc để làm cho các mặt của mỗi mảnh. Hãy làm cho nó! Các tệp mô hình 3D ở bên được đính kèm bên dưới. Chúng tôi đã sử dụng PLA để làm các mặt. PLA mạnh hơn và ít co hơn ABS, vì vậy các sợi được khuyến nghị sử dụng PLA.

Bước 5: Quay phim

Quay phim
Quay phim
Quay phim
Quay phim
Quay phim
Quay phim

Bây giờ chúng ta hãy đặt một bộ phim khuếch tán ánh sáng lên acrylic ở mặt trước. Nếu bạn đặt phim lên nó, nó sẽ trải ra và tỏa sáng đẹp hơn nhiều. Đầu tiên, cắt phim thành hình tam giác (Tốt hơn là bạn nên cắt phim lớn hơn cắt acrylic) Thật đơn giản để dán phim lên, giống như một lớp phim bảo vệ trên điện thoại của bạn. Nếu muốn tip ở đây, bạn có thể dùng thẻ đẩy để có thể dán cho gọn gàng nhé!

Bước 6: Gắn dải LED + hàn dải LED (NeoPixel) với dây

Gắn dải LED + dải LED hàn (NeoPixel) với dây
Gắn dải LED + dải LED hàn (NeoPixel) với dây
Gắn dải LED + dải LED hàn (NeoPixel) với dây
Gắn dải LED + dải LED hàn (NeoPixel) với dây
Gắn dải LED + dải LED hàn (NeoPixel) với dây
Gắn dải LED + dải LED hàn (NeoPixel) với dây
Gắn dải LED + dải LED hàn (NeoPixel) với dây
Gắn dải LED + dải LED hàn (NeoPixel) với dây

Nếu bạn đã hàn dải LED rất tốt, thì đã đến lúc bạn nên đặt dải LED ở mặt sau. Đầu tiên, bạn gắn súng bắn keo hoặc băng dính hai mặt vào mặt sau của dải đèn LED. Và đầu tiên tháo dây ở cả hai bên của dây hàn qua các lỗ ở cả hai bên. Cuối cùng, gắn dải đèn LED vào tấm acrylic phía sau là xong!

Đó là thời gian hàn! chuẩn bị dải đèn LED, đầu nối 4 chân (đầu nối hoặc dây điện) và những thứ bạn cần để hàn. Tôi đã sử dụng đèn LED trong ba đơn vị. Bạn có thể sử dụng một hoặc hai đèn LED nếu muốn, nhưng tôi khuyên bạn nên sử dụng ba đèn. Khi tất cả các vật liệu đã sẵn sàng, hãy hàn dây ở cả đường dữ liệu, đường 5v và đường nối đất của dải LED.

Bước 7: Hàn Tact Switch với dây

Hàn Tact Switch có dây
Hàn Tact Switch có dây
Hàn Tact Switch có dây
Hàn Tact Switch có dây

Bước 8: Lắp ráp - Lắp bu lông vào mặt bên = ①

Lắp ráp -Chèn bu lông vào mặt bên = ①
Lắp ráp -Chèn bu lông vào mặt bên = ①
Lắp ráp -Chèn bu lông vào bên = ①
Lắp ráp -Chèn bu lông vào bên = ①

Bây giờ nó là một phần thực sự dễ dàng! Đặt một chốt trên mỗi mặt trong ba mặt được in 3D. Lý do tại sao sử dụng nút bu lông như sử dụng một kết cấu bu lông và đai ốc sẽ có thể thực hiện. Khi mảnh ghép hoàn thành, tôi sẽ đặt mảnh vào hộp và hoàn thiện nó bằng một cái đai ốc.

Bước 9: Gắn Ⓛⓣ vào dấu Ⓒ = ②

Đính kèm Ⓛⓣ vào Ⓒ = ②
Đính kèm Ⓛⓣ vào Ⓒ = ②
Đính kèm Ⓛⓣ vào Ⓒ = ②
Đính kèm Ⓛⓣ vào Ⓒ = ②

Bước 10: Lắp ráp -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③

Assembly -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③
Assembly -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③
Assembly -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③
Assembly -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③
Assembly -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③
Assembly -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③

Bước 11: Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng Acrylic Bond = ④

Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng một liên kết Acrylic = ④
Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng một liên kết Acrylic = ④
Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng một liên kết Acrylic = ④
Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng một liên kết Acrylic = ④
Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng một liên kết Acrylic = ④
Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng một liên kết Acrylic = ④
Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng một liên kết Acrylic = ④
Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng một liên kết Acrylic = ④

Nếu bạn đặt một chốt ở bên cạnh, chúng tôi sẽ đặt nó ở bên cạnh và mặt trước. Mặt trước là acrylic, vì vậy bạn phải dán nó vào bằng chất kết dính acrylic chuyên dụng. Nếu bạn gắn acrylic vào một liên kết thông thường, nó sẽ để lại dấu vết.

Bước 12: Gắn Ⓢ vào Ⓓ = ⑤

Đính kèm Ⓢ vào Ⓓ = ⑤
Đính kèm Ⓢ vào Ⓓ = ⑤
Đính kèm Ⓢ vào Ⓓ = ⑤
Đính kèm Ⓢ vào Ⓓ = ⑤

Bước 13: Lắp ráp - Kết hợp ④ và ⑤ Sử dụng Ⓦ và Ⓝ = ⑥

Assembly - Kết hợp ④ và ⑤ Sử dụng Ⓦ và Ⓝ = ⑥
Assembly - Kết hợp ④ và ⑤ Sử dụng Ⓦ và Ⓝ = ⑥
Assembly - Kết hợp ④ và ⑤ Sử dụng Ⓦ và Ⓝ = ⑥
Assembly - Kết hợp ④ và ⑤ Sử dụng Ⓦ và Ⓝ = ⑥
Assembly - Kết hợp ④ và ⑤ Sử dụng Ⓦ và Ⓝ = ⑥
Assembly - Kết hợp ④ và ⑤ Sử dụng Ⓦ và Ⓝ = ⑥

Bước 14: Hoàn thành việc lắp ráp mảnh ghép

Lắp ráp mảnh hoàn chỉnh
Lắp ráp mảnh hoàn chỉnh
Lắp ráp mảnh hoàn chỉnh
Lắp ráp mảnh hoàn chỉnh
Lắp ráp mảnh hoàn chỉnh
Lắp ráp mảnh hoàn chỉnh

Bước 15: Hình thức hoạt động của một dự án

Image
Image

Bước 16: NeoPixel, Kết nối dây

NeoPixel, Kết nối dây
NeoPixel, Kết nối dây
NeoPixel, Kết nối dây
NeoPixel, Kết nối dây
NeoPixel, Kết nối dây
NeoPixel, Kết nối dây

Bước 17: Nối dây NeoPixel và Arduino

NeoPixel và Arduino Wiring
NeoPixel và Arduino Wiring

Bước 18: Lập trình Arduino

extern dễ bay hơi không dấu dài timer0_millis;

#bao gồm

#define MODEBTNNUM 3 int ani_mode = 0; dài không dấu preM1, preM2, preM3;

void setup () {

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

void loop () {

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

Bước 19:

extern dễ bay hơi không dấu dài timer0_millis;

#bao gồm

#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel dải = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int num = NUMPIXELS / 3; const int slaveNum = 1; int color [num] [3]; int hue [num]; int sat [num]; int sáng [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]; boolean 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, 1, 1, 1}; #include #define BTNNUM 1 int f_v = 1; preMillis1 dài không dấu; preM dài không dấu; int ani_mode = 0; int ani2_Counter = 0; int bộ đếm = 0; /////////////////////////////////////////////// void setup () {Wire. bắt đầu (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (nhậnEvent); for (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); dải.begin (); } ///////////////////////////////////////////////

void loop () {

if (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; sat = 95; sáng = 100; } f_v = 0; } ////////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = sai; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////////// switch (ani_mode) {case 0: ani0 (); nghỉ; case 1: ani1 (); ani_mode = 0; ani2_Counter = 0; nghỉ; case 2: ani2_Counter = 1; ani_mode = 0; nghỉ; trường hợp 3: ani3 (); ani_mode = 0; ani2_Counter = 0; nghỉ; mặc định: readyState (); nghỉ; } if (ani2_Counter == 1) {ani2 (); } setPixels (num); }

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

void getEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("đã nhận 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; gValue = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a <2; a ++) {hue [a1 [a] = 100; sat [a1 [a] = 95; sáng [a1 [a] = 100; } for (int b = 0; b <2; b ++) {hue [b1 = 200; sat [b1 = 95; sáng [b1 = 100; } for (int c = 0; c <2; c ++) {hue [c1 [c] = 300; sat [c1 [c] = 95; sáng [c1 [c] = 100; } // Serial.println ("0"); } else if (pNumber == 1) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 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 ++) {hue [a2 [a] = 26; sat [a2 [a] = 95; sáng [a2 [a] = 100; } for (int d = 0; d <4; d ++) {hue [d2 [d] = 63; sat [d2 [d] = 95; sáng [d2 [d] = 100; } // Serial.println ("1"); } else if (pNumber == 2) {// mẫu hình lập phương khổng lồ for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // màu vàng 06 for (int a = 0; a <6; a ++) {hue [a14 [a] = 35; sat [a14 [a] = 95; sáng [a14 [a] = 100; }} else if (pNumber == 3) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // màu vàng for (int a = 0; a <6; a ++) {hue [a3 [a] = 53; sat [a3 [a] = 95; sáng [a3 [a] = 100; }} else if (pNumber == 4) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int a4 = {34, 35}; // màu vàng int b4 = {47}; // màu xanh int c4 = {48}; // màu tím

for (int a = 0; a <2; a ++) {hue [a4 [a] = 53; sat [a4 [a] = 95; sáng [a4 [a] = 100; }

for (int b = 0; b <1; b ++) {hue [b4 = 210; sat [b4 = 95; sáng [b4 = 100; } for (int c = 0; c <1; c ++) {hue [c4 [c] = 307; sat [c4 [c] = 95; sáng [c4 [c] = 100; }} else if (pNumber == 5) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (int a = 0; a <6; a ++) {hue [a5 [a] = 100; sat [a5 [a] = 95; sáng [a5 [a] = 100; }} else if (pNumber == 6) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // màu vàng for (int a = 0; a <6; a ++) {hue [a6 [a] = 53; sat [a6 [a] = 95; sáng [a6 [a] = 100; }} else if (pNumber == 7) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // màu tím for (int c = 0; c <6; c ++) {hue [c7 [c] = 307; sat [c7 [c] = 95; sáng [c7 [c] = 100; }} else if (pNumber == 8) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // màu tím for (int c = 0; c <6; c ++) {hue [c8 [c] = 307; sat [c8 [c] = 95; sáng [c8 [c] = 100; }} else if (pNumber == 9) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // màu tím for (int c = 0; c <6; c ++) {hue [c9 [c] = 307; sat [c9 [c] = 95; sáng [c9 [c] = 100; }} else if (pNumber == 10) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // màu tím for (int c = 0; c <6; c ++) {hue [c10 [c] = 307; sat [c10 [c] = 95; sáng [c10 [c] = 100; }} else if (pNumber == 11) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // màu tím for (int c = 0; c <6; c ++) {hue [c11 [c] = 307; sat [c11 [c] = 95; sáng [c11 [c] = 100; }} else if (pNumber == 12) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // màu tím for (int c = 0; c <6; c ++) {hue [c12 [c] = 307; sat [c12 [c] = 95; sáng [c12 [c] = 100; }} else if (pNumber == 13) {for (int i = 0; i <num; i ++) {Bright = 0; gValue = 1; } int a13 = {34, 35}; // màu vàng int b13 = {47}; // màu xanh int c13 = {48}; // màu tím for (int a = 0; a <2; a ++) {hue [a13 [a] = 53; sat [a13 [a] = 95; sáng [a13 [a] = 100; } for (int b = 0; b <1; b ++) {hue [b13 = 210; sat [b13 = 95; sáng [b13 = 100; } for (int c = 0; c <1; c ++) {hue [c13 [c] = 307; sat [c13 [c] = 95; sáng [c13 [c] = 100; }} pNumber = pNumber + 1;

if (pNumber == 14) {

pNumber = 0; }}

void 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; } hue = hue + gValue ; } bộ đếm ++; if (counter == 360) {// Serial.print ("counter:"); // Serial.println (counter); // Serial.println (curM); bộ đếm = 0; ani2_Counter = 0; }}}

void ani3 () {

// Serial.println ("3"); } ///////////////////////////////////////////////// void readyState () {/ / Serial.println ("sẵn sàng"); } ///////////////////////////////////////////////// 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 (hue <= 0) {hueV = 1; } hue = hue + hueV ; sáng = 100; }}}} ///////////////////////////////////////////////// void setPixels (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (hue , sat , Bright , Colors ); int num1 = i * 3; dải.setPixelColor (num1, màu [0], màu [1], màu [2]); dải.setPixelColor (num1 + 1, các màu [0], các màu [1], các màu [2]); dải.setPixelColor (num1 + 2, màu [0], màu [1], màu [2]); } dải.show (); }

Bước 20: Các mẫu

Hoa văn!
Hoa văn!
Hoa văn!
Hoa văn!

Dự án này có một số hình tam giác tạo thành hình lục giác. Vì vậy, bạn có thể tạo ra các mẫu lập thể theo cách bạn thiết kế ánh sáng! Chỉ cần nhấn từng miếng và các màu sắc khác nhau sẽ được phân cấp, và khi màu bạn muốn xuất hiện, chỉ cần nhấn vào tay bạn nhấn và nó sẽ tiếp tục sáng đẹp với màu bạn muốn!

Đề xuất: