Mục lục:
- Quân nhu
- Bước 1: Hãy bắt đầu
- Bước 2: Chuẩn bị nguyên liệu
- Bước 3: Cắt Acrylic
- Bước 4: Tạo Mặt bằng Máy in 3D
- Bước 5: Quay phim
- Bước 6: Gắn dải LED + hàn dải LED (NeoPixel) với dây
- Bước 7: Hàn Tact Switch với dây
- Bước 8: Lắp ráp - Lắp bu lông vào mặt bên = ①
- Bước 9: Gắn Ⓛⓣ vào dấu Ⓒ = ②
- Bước 10: Lắp ráp -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③
- Bước 11: Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng Acrylic Bond = ④
- Bước 12: Gắn Ⓢ vào Ⓓ = ⑤
- Bước 13: Lắp ráp - 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
- Bước 15: Hình thức hoạt động của một dự án
- Bước 16: NeoPixel, Kết nối dây
- Bước 17: Nối dây NeoPixel và Arduino
- Bước 18: Lập trình Arduino
- Bước 19:
- Bước 20: Các mẫu
Video: Light Me Up !: 20 bước (kèm hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
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
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
Bước 3: 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
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
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
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
Bước 8: Lắp ráp - Lắp bu lông vào mặt 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 Ⓒ = ②
Bước 10: Lắp ráp -Sử dụng Ⓦ và Ⓝ để Kết hợp ① và ② = ③
Bước 11: Lắp ráp -Attach Ⓐⓔ và ③ Sử dụng Acrylic Bond = ④
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 Ⓓ = ⑤
Bước 13: Lắp ráp - 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
Bước 15: Hình thức hoạt động của một dự án
Bước 16: NeoPixel, Kết nối dây
Bước 17: Nối dây NeoPixel và Arduino
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
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:
Khung ảnh trái tim LED - Tạo món quà Valentine hoặc sinh nhật hoàn hảo: 7 bước (kèm hình ảnh)
Khung ảnh trái tim LED - Tạo một món quà Valentine hoặc sinh nhật hoàn hảo: Xin chào! Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách bạn có thể tạo Khung ảnh trái tim LED tuyệt vời này. Dành cho tất cả những người đam mê điện tử! Tạo món quà Valentine, Sinh nhật hoặc Kỷ niệm hoàn hảo cho những người thân yêu của bạn! Bạn có thể xem Video giới thiệu về điều này
Cung cấp cho giường ngủ của bạn ánh sáng rực rỡ!: 7 bước (kèm hình ảnh)
Cung cấp ánh sáng cho giường của bạn !: Trong phần có thể hướng dẫn này, tôi sẽ giải thích cách làm cho giường của bạn trông tuyệt đẹp với đèn LED RGB. Những cái tôi có được điều khiển từ xa, chúng có các tùy chọn khác nhau như mờ dần hoặc nhấp nháy, và chúng rất rẻ. Gần đây có một đợt giảm giá trên bangg
Vui nhộn Micro: Robot bit - DỄ DÀNG và Không tốn kém !: 17 Bước (kèm Hình ảnh)
Fun Micro: bit Robot - DỄ DÀNG và Không tốn kém !: BBC micro: bit thật tuyệt vời! Chúng rất dễ lập trình, được tích hợp các tính năng như Bluetooth và cảm biến gia tốc và chúng không đắt. Dự án này được lấy cảm hứng từ
Dr Who Tardis Night Light với Google Assistant: 4 bước (kèm hình ảnh)
Dr Who Tardis Night Light With Google Assistant: Xin chào những người hướng dẫn và Dr Who Fans Vì vậy, tôi đã chế tạo một phiên bản nhỏ hơn của chiếc đèn này cao khoảng 20cm cho cậu con trai nhỏ của mình cách đây một thời gian và nghĩ rằng cần phải có một chiếc cỡ bố trong nhà. Đây là đèn ngủ Tardis 35cm lớn được cung cấp bởi ESP8266 với
Tạo một áp phích lớn có thể in được từ ảnh bìa album ITunes của bạn!: 7 bước (kèm hình ảnh)
Tạo một áp phích có thể in khổng lồ từ Ảnh bìa album iTunes của bạn !: Đây là hướng dẫn mô tả cách xuất tích hợp ảnh bìa album iTunes hiện có của bạn và sắp xếp tất cả các bìa thành một lưới khổng lồ, để lại cho bạn một kho văn hóa đại chúng khổng lồ, đầy màu sắc và sôi động. để in và, có thể là