Mục lục:
- Bước 1: Sơ đồ và phần cứng
- Bước 2: Làm cho PCB Hosting trở thành đèn LED
- Bước 3: Làm hộp
- Bước 4: Chuẩn bị cà vạt
- Bước 5: Keo sợi quang
- Bước 6: Đưa sợi quang qua dây buộc
- Bước 7: Dán sợi quang vào dây buộc
- Bước 8: Mã
- Bước 9: Sản phẩm cuối cùng
Video: Starry Sky Led Tie: 9 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Một thời gian trước, tôi đã tìm thấy một món đồ chơi trẻ em bằng sợi quang tại một cửa hàng đô la và bắt đầu nghĩ về những gì tôi có thể làm với nó.
Một trong những ý tưởng điên rồ mà tôi có, đó là tạo ra một chiếc cà vạt với hiệu ứng của bầu trời đầy sao.
Tôi vẫn còn một số arduino pro mini, bo mạch và pin adafruit đặt xung quanh có thể phù hợp với dự án này.
Vì vậy, ngay sau khi tôi tìm thấy một chiếc cà vạt rộng đẹp trong một tiệm cầm đồ ở thị trấn của tôi và tìm thấy một chiếc hộp có thể phù hợp với phần cứng, tôi đã quyết định mua nó và thử chế tạo nó.
Hướng dẫn này cho bạn thấy tôi đã làm như thế nào.
Nó chạy trên arduino pro mini, bộ sạc adafruit powerboost 500, emmerich icr 18650nh-sp và 5 đèn LED trắng. Mã làm cho độ sáng thay đổi của đèn LED trở nên ngẫu nhiên. (40 giây đầu tiên của video có tốc độ gấp 3 lần)
Bước 1: Sơ đồ và phần cứng
Tôi đang sử dụng phần cứng sau:
- PCB với đèn LED trắng băng và điện trở 220 Ohm.
- Arduino pro mini (tôi đã sử dụng hàng nhái)
- Bộ sạc Adafruit Powerboost 500
- Pin Emmerich Li-ion ICR-18650NH-SP
- Sợi quang (với các kích cỡ khác nhau)
Bước 2: Làm cho PCB Hosting trở thành đèn LED
Tôi cắt một dải PCB để giữ đèn LED và sử dụng các chân LED để hàn nó vào PCB chính.
Kết nối tất cả các cực âm (-) với GND và sử dụng một nửa số chân để hàn nó bị mắc kẹt vào PCB chính.
Kết nối tất cả các cực dương (+) với điện trở và với cáp với arduino.
Mỗi đèn LED phải được kết nối với một trong các cổng PWM sau: 3, 5, 6, 9, 10, 11
Ngớ ngẩn là tôi đã mắc rất nhiều lỗi với dự án này và quên kiểm tra các cổng PWM chính xác, vì vậy tôi phải giải quyết một vài sau. Đã thử nghiệm với Cao / Thấp nên tôi chỉ nhận thấy điều này sau đó.
Tôi đã bắt đầu với 7 đèn LED, nhưng chỉ có 6 cổng PWM và một trong những đèn LED tôi bán lại đã chết. Tôi chỉ giữ 5 đèn LED hoạt động và không sử dụng đèn LED thứ 6.
Bước 3: Làm hộp
Tôi đã sử dụng Bosch GRO (như Dremel) và một mũi khoan để cắt hình dạng của pin, nút, cổng micro-usb, các tiêu đề từ Arduino và các sợi quang. (sử dụng mặt nạ chống bụi!)
Dán pin vào vỏ bằng 2 dải.
Đã sử dụng vít để gắn bo mạch Adafruit và PCB.
Ma sát khi đóng mở làm hỏng một số dây dẫn. Tôi đã phải giải quyết chúng và sử dụng keo để ngăn nó xảy ra lần nữa.
Bước 4: Chuẩn bị cà vạt
Tháo đường khâu từ phần dưới cùng của cà vạt để vừa với tấm cao su.
Để ẩn phần cứng và vẫn có thể truy cập nếu cần, tôi quyết định sử dụng dây kéo.
Tôi không giỏi về máy khâu, vì vậy mẹ tôi đã đặt một chiếc khóa kéo ở mặt sau của chiếc cà vạt.
Sau khi hoàn thành, tôi dán tấm cao su vào cà vạt. Tôi sợ sử dụng quá nhiều keo sẽ làm ướt vải và có thể nhìn thấy từ phía trước, vì vậy tôi đã cố gắng làm đều nó và không sử dụng quá nhiều. Nhìn chung thì có vẻ đẹp, nhưng ở một vài chỗ tôi nhận thấy quá nhiều hoặc quá ít keo, khiến nó thấm qua vải hoặc không dính vải tốt. May mắn thay, điều này hầu như chỉ có thể nhìn thấy từ khoảng cách gần trong ánh sáng rực rỡ.
Hộp và cà vạt bây giờ đã hoàn thành. Đã đến lúc kết dính các sợi quang học!
Bước 5: Keo sợi quang
Đồ chơi có một bó dây cáp quang lớn rất dễ bị đứt. Lúc đầu, tôi đã thử dán từng cái một, nhưng nhanh chóng nhận thấy rằng tốt hơn hết là tạo thành các bó nhỏ và dán chúng vào đèn LED cùng một lúc. Điều đó sẽ giúp bạn dễ dàng giữ ổn định cho đến khi keo khô. Lộn xộn đèn LED đầu tiên tìm ra điều này.
Hãy chắc chắn sử dụng một loại keo trong suốt! Cái tôi sử dụng khô rất chậm và keo khô nhanh mà tôi đã thử trên đèn LED đầu tiên chuyển sang màu trắng, làm cho một số sợi từ đèn LED đầu tiên kém sáng hơn.
Tôi đã dán các tấm cao su nhỏ màu đen để ngăn ánh sáng bị rò rỉ lên trên và để ngăn cách đèn LED.
Một trong những tấm ngăn không cho vỏ máy đóng lại nên tôi đã thêm một sợi dây chun để giữ cho nắp đóng lại.
Bước 6: Đưa sợi quang qua dây buộc
Bắt đầu từ phần dưới cùng, tôi dùng kim ghim các lỗ và luồn từng sợi một. Mỗi sợi của đèn LED trải rộng ngẫu nhiên trên dây buộc.
Tôi dán một dải màu đen ở mặt sau được cho là đi hết phần dây buộc nhỏ hơn để giữ trọng lượng của hộp, nhưng sau khi tôi đặt tất cả các dây qua và cảm thấy độ căng của dây, tôi quyết định dán tất cả mọi thứ với cà vạt là một ý tưởng tốt hơn và cắt bỏ dải.
Vì dây cáp quang của đồ chơi quá ngắn, nên rất khó để gắn chúng vào tất cả các dây buộc. Tôi bị hạn chế trong việc định vị hộp và gặp khó khăn trong việc làm cho mọi thứ phẳng như tôi muốn.
Bước 7: Dán sợi quang vào dây buộc
Tôi dán tất cả các dây cáp quang vào tấm cao su để tránh các dây bị kéo ra khỏi tấm cao su và làm cho dây buộc bằng phẳng.
Để đảm bảo rằng tôi không dán kẹp vào cà vạt khi tạo áp lực lên nó, tôi đặt một ít giấy vào giữa. Nó trông không tuyệt vời nhưng hoạt động tốt. Và bạn không nhìn thấy nó khi nó được đóng lại.
Sau khi keo khô, tôi cắt các dây ở mặt trước và cắt bớt một chút miếng cao su ngay trên dây cao nhất, vì dây buộc hơi dài.
Những bức ảnh với chiếc áo sơ mi trắng được thực hiện trước khi tôi cắt đoạn cao su cuối cùng đó.
Bước 8: Mã
Dưới đây là mã tôi đã viết cho cà vạt.
Tất cả các đèn LED đều có "mức trung bình" (không thực sự là mức trung bình mà là độ sáng trung bình).
Ngay khi đạt đến mức trung bình đó, nó sẽ quyết định 3/4 cơ hội chuyển sang độ sáng thấp hơn. Nó cũng đặt ngẫu nhiên độ sáng tối thiểu mới, độ sáng tối đa, thời gian chờ cho độ sáng tối thiểu và tối đa và tốc độ tăng hoặc giảm mỗi vòng (1-255) từ 5 giá trị đặt trước. Sau đó, nó sẽ thực hiện một chu kỳ cho đến khi nó đạt mức trung bình một lần nữa. Chỉ có 2 đèn LED có thể ở chu kỳ cao cùng một lúc.
Mọi trạng thái được biểu thị bằng một giá trị số nguyên (1-7) xác định xem nó có đang ở mức trung bình thấp, trung bình thấp, chờ thấp, đang cập nhật, v.v.
Để biết thông tin về cách tải mã lên arduino, vui lòng xem tại www.arduino.cc
/ * Starry Sky Tie * * Đây là một tập lệnh để làm mờ ngẫu nhiên 5 đèn LED từ độ sáng trung bình đến thấp hơn * hoặc cao hơn với các cài đặt thời gian thấp hơn, cao hơn và ngẫu nhiên * để trông giống như một bầu trời đầy sao khi được sử dụng với sợi quang. * Trong trường hợp này, những điều này sẽ được thực hiện một cách ràng buộc. * * Cơ hội tăng / giảm = 1/4 tăng, 3/4 giảm, với tối đa 2 * tăng lên tối đa cùng một lúc. * * Mức trung bình không đổi. * Các tùy chọn tối thiểu, tối đa và thời gian thay đổi ngẫu nhiên * từ 5 tùy chọn mỗi khi đèn LED đạt mức trung bình trở lại. * * Được tạo bởi Billy Jaspers, tháng 5 năm 2019. *
/ Khai báo các chân
int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;
// Biến thời gian
thời gian dài hiện tại không được ký; thời gian chờ đợi lâu không có dấu [5]; unsigned long lastRound;
// Biến LED
int BrightMin [5] = {10, 10, 10, 10, 10}; // Độ sáng tối thiểu int BrightAvg [5] = {200, 200, 200, 200, 200}; // Độ sáng trung bình int BrightMax [5] = {240, 240, 240, 240, 240}; // Độ sáng tối đa int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Thời gian chờ int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Thời gian chờ int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Thời gian chờ int increment [5] = {2, 5, 4, 5, 2}; // Tăng độ sáng int currentBright [5] = {200, 230, 210, 210, 235}; // Độ sáng hiện tại
// Khả năng biến LED
int BrightMinPos [5] = {5, 20, 40, 5, 20}; // Khả năng độ sáng tối thiểu int BrightMaxPos [5] = {240, 245, 230, 225, 245}; // Khả năng độ sáng tối đa int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Thời gian chờ ở các khả năng có độ sáng thấp int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Thời gian chờ ở các khả năng có độ sáng cao int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Thời gian chờ ở các khả năng có độ sáng trung bình int incrementPos [5] = {2, 4, 5, 3, 1}; // tăng khả năng độ sáng
// Biến
khởi động bool = true; // Có cần bắt đầu cài đặt bắt đầu không?
// Các biến định hướng
/ * 0 = Đang chờ ở mức Trung bình 1 = đang chờ Trung bình xuống Thấp 2 = đang chờ Thấp 3 = sắp Thấp đến Trung bình 4 = sắp Trung bình đến Tối đa 5 = chờ ở Tối đa 6 = sắp Cao đến Trung bình 7 = Đang cập nhật biến * / int statusLED [5] = {0, 0, 0, 0, 0}; int amountHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // Có phải Led đang chờ không?
// Các biến ngẫu nhiên
số ngẫu nhiên dài; // Long để lưu trữ số ngẫu nhiên dài randomNumberTwo; // Dài để lưu trữ số ngẫu nhiên thứ hai
// bộ đếm
int i = 0; // Bộ đếm cho vòng lặp chính
void setup () {
Serial.begin (115200); // Bắt đầu serial randomSeed (analogRead (A0)); // Đặt các hạt ngẫu nhiên
// Khai báo kết quả đầu ra
pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }
// Ghi dữ liệu vào đèn LED
void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }
// Vòng lặp chính
void loop () {if (startup) {// Cài đặt khởi động lastRound = millis (); // Đặt lastRound cho boot writeToLED (); // Ghi dữ liệu bắt đầu vào LED startup = false; // Tắt khởi động} currentTime = millis (); // Đặt thời gian hiện tại
if (currentTime - lastRound> = refreshRate) {
for (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Đang cập nhật Led randomNumber = random (5); BrightMin = BrightMinPos [randomNumber]; // Đặt giá trị ngẫu nhiên cho độ sáng tối thiểu randomNumber = random (5); BrightMax = BrightMaxPos [randomNumber]; // Đặt giá trị ngẫu nhiên cho độ sáng tối đa randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Đặt giá trị ngẫu nhiên cho thời gian chờ thấp randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Đặt giá trị ngẫu nhiên cho thời gian chờ cao randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Đặt giá trị ngẫu nhiên cho thời gian chờ trung bình randomNumber = random (5); increment = incrementPos [randomNumber]; // Đặt giá trị ngẫu nhiên cho giá trị gia tăng randomNumber = random (2); // Đặt giá trị ngẫu nhiên cho hướng randomNumberTwo = random (2); // Đặt giá trị ngẫu nhiên cho hướng if (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = BrightAvg ) {statusLED = 0; // Nếu ở điểm thấp nhất: Chuyển đến Đang chờ Trung bình} else {currentBright = currentBright + increment ; // Khác: Độ sáng cao hơn}} else if (statusLED == 2) {// -2- Đang đợi Thấp if (! StatusWaiting ) {// Nếu không chờ đợi: waitTime = millis (); // Đặt trạng thái thời gian chờWaiting = true; // Bắt đầu chờ} else if (statusWaiting && currentTime-waitTime > = timeWaitLow ) {// Nếu chờ AND timeWaitAvg đã qua: statusWaiting = false; // Dừng trạng thái chờLED = 3; // Đặt statusLed thành Đang đợi cập nhật}} else if (statusLED == 1) {// -1- Chuyển từ Trung bình xuống Thấp if (currentBright <= BrightMin ) {statusLED = 2; // Nếu ở điểm thấp nhất: Chuyển đến Đang đợi Thấp} else {currentBright = currentBright -increment ; // Khác: Độ sáng thấp hơn}} else if (statusLED == 6) {// -6- Tối đa thành Trung bình if (currentBright = timeWaitMax ) {// Nếu chờ VÀ thời gianWaitAvg đã trôi qua: statusWaiting = false; // Dừng trạng thái chờLED = 6; // Đặt statusLed thành Đang chờ cập nhật}} else if (statusLED == 4) {// -4- Chuyển từ Avg thành Max if (currentBright > = BrightMax ) {statusLED = Số 5; // Nếu ở điểm thấp nhất: Chuyển đến Mức cao đang chờ} else {currentBright = currentBright + increment ; // Khác: Độ sáng cao hơn}} else if (statusLED == 0) {// -0- Đang đợi ở mức Trung bình if (! StatusWaiting ) {// Nếu không đợi: waitTime = millis (); // Đặt trạng thái thời gian chờWaiting = true; // Bắt đầu chờ} else if (statusWaiting && currentTime-waitTime > = timeWaitAvg ) {// Nếu chờ VÀ thời gianWaitAvg đã trôi qua: statusWaiting = false; // Dừng trạng thái chờLED = 7; // Đặt statusLed thành Đang chờ cập nhật}}} i = 0; lastRound = millis (); // Đặt khi vòng cuối cùng kết thúc. writeToLED (); // Ghi tất cả dữ liệu vào LED của}}
Bước 9: Sản phẩm cuối cùng
Tôi nghĩ rằng nó đã hoạt động tốt. Cà vạt không quá dày, cứng, dài hoặc nặng và hiệu ứng ngôi sao trông tuyệt vời.
Đề xuất:
Tie Time Keeper: 6 bước (có hình ảnh)
Tie Time Keeper: Điều quan trọng là có thể biết thời gian nhưng không phải ai cũng thích đeo đồng hồ và lấy điện thoại thông minh của bạn chỉ để kiểm tra thời gian có vẻ hơi không cần thiết. Tôi muốn giữ tay không đeo nhẫn, vòng tay và đồng hồ khi hoạt động trong môi trường
Sonic Bow Tie, bởi David Boldevin Engen: 4 bước (có hình ảnh)
Sonic Bow Tie, của David Boldevin Engen: Một chiếc nơ nhỏ gọn, có khả năng hiển thị liên tục âm thanh xung quanh ở bốn tần số khác nhau trên hai dãy đèn LED 4x5 được nhân đôi. trong bất kỳ đám đông nào. Những gì bạn sẽ n
Holi-Tie: 8 bước (có hình ảnh)
Holi-Tie: Đây là Holi-Tie, một loại cà vạt lễ hội được thiết kế để đeo trong những ngày lễ. Dựa trên Ampli-Tie của Becky Stern một cách lỏng lẻo, sử dụng bảng Flora, Holi-Tie sử dụng vi điều khiển Circuit Python Express (CPX) để điều khiển hoạt ảnh NeoPixel
SKY CAM một Giải pháp Máy ảnh Trên không: 10 Bước (Có Hình ảnh)
SKY CAM một Giải pháp Máy ảnh Trên không: Tài liệu hướng dẫn này sẽ hướng dẫn bạn cách tôi tạo hệ thống Cáp Cam điều khiển từ xa (Bán tự động) cho Dự án Sản phẩm Điện tử GCSE của tôi tại Trường học và hy vọng cho phép bạn có thể tạo hệ thống của riêng mình! Đây được coi là một hướng dẫn sơ bộ
DIY Bow Tie --- With Lights !!: 9 bước (có hình ảnh)
Thắt nơ tự làm --- Có đèn !!: Những thứ này rất phù hợp cho đám cưới, lễ hội, sự kiện đặc biệt, đi chơi đêm và bất cứ lúc nào bạn muốn trở thành người tuyệt vời nhất trong phòng! Tại sao bạn lại không muốn một chiếc nơ sáng màu ? Ngoài ra, đừng ngại nhé các cô gái, bạn hoàn toàn có thể thắt nơ nhẹ nhàng đấy:) Photo Cred