Mục lục:

DIY Bộ đèn Topbox xe máy Givi V56 với tín hiệu tích hợp: 4 bước (có hình ảnh)
DIY Bộ đèn Topbox xe máy Givi V56 với tín hiệu tích hợp: 4 bước (có hình ảnh)

Video: DIY Bộ đèn Topbox xe máy Givi V56 với tín hiệu tích hợp: 4 bước (có hình ảnh)

Video: DIY Bộ đèn Topbox xe máy Givi V56 với tín hiệu tích hợp: 4 bước (có hình ảnh)
Video: GIVI SR357 Quality Control Problem 2024, Tháng mười một
Anonim
Image
Image
DIY Bộ đèn Topbox xe máy Givi V56 với tín hiệu tích hợp
DIY Bộ đèn Topbox xe máy Givi V56 với tín hiệu tích hợp
DIY Bộ đèn Topbox xe máy Givi V56 với tín hiệu tích hợp
DIY Bộ đèn Topbox xe máy Givi V56 với tín hiệu tích hợp

Là một người lái mô tô, tôi đã quá quen thuộc với việc bị đối xử như thể tôi vô hình trên đường. Một điều tôi luôn bổ sung cho xe đạp của mình là hộp trên cùng thường có đèn tích hợp. Gần đây tôi đã nâng cấp lên một chiếc xe đạp mới và mua chiếc hộp Givi V56 Monokey vì nó có rất nhiều chỗ để đồ. Hộp này có một vị trí cho bộ đèn nhà xưởng bao gồm hai dải đèn LED cho mỗi bên. Vấn đề là bộ này khoảng $ 70 và chỉ có phanh. Có một bộ công cụ hậu mãi có thể thực hiện những điều tương tự và có thể dễ cài đặt hơn một chút, nhưng giá của bạn lên tới 150 đô la. Là một người tháo vát và đang tìm lý do để thử các dải đèn LED định vị, tôi quyết định tạo ra một hệ thống tích hợp không chỉ có đèn phanh mà còn có đèn chiếu sáng (bật bất cứ khi nào di chuyển), đèn báo rẽ và đèn báo nguy hiểm. Chỉ vì cái quái của nó, tôi thậm chí đã thêm một chuỗi khởi động…. bởi vì tôi có thể. Lưu ý rằng điều này cần rất nhiều việc phải làm mặc dù tôi có rất nhiều thứ phải tìm hiểu. Mặc dù công việc, tôi khá hài lòng với cách điều này diễn ra. Hy vọng rằng điều này sẽ hữu ích cho người khác.

Hoạt động cơ bản của cách thức hoạt động của hệ thống này là bộ Arduino tìm kiếm các tín hiệu trên các chân cắm: đèn phanh, đèn rẽ trái và đèn rẽ phải. Để đọc tín hiệu 12 volt từ xe máy, tôi đã sử dụng optoisolators để chuyển đổi tín hiệu 12V thành tín hiệu 5V mà Arduino có thể đọc được. Sau đó, mã sẽ đợi một trong những tín hiệu này rồi xuất các lệnh tới dải LED bằng cách sử dụng thư viện FastLED. Đó là những điều cơ bản, bây giờ để đi vào chi tiết.

Quân nhu

Đây là những thứ mà tôi đã sử dụng vì phần lớn tôi đã có chúng nằm xung quanh. Rõ ràng, chúng có thể được trao đổi khi cần thiết:

  1. Arduino - Tôi đã sử dụng nano để xem xét kích thước nhưng bạn có thể sử dụng bất cứ thứ gì bạn cảm thấy thích miễn là bạn có năm chân để sử dụng.
  2. Bộ điều chỉnh 5V - Tôi đã sử dụng L7805CV có khả năng 1,5 ampe. Dự án này sẽ sử dụng 0,72 amps cho đèn LED cộng với công suất cho nano, vì vậy 1,5 hoạt động tuyệt vời cho dự án này.
  3. Tụ điện - bạn sẽ cần một 0,33 uF và một 0,1 uF để bộ điều chỉnh điện áp hoạt động bình thường.
  4. 3x optoisolators - để thực hiện chuyển đổi tín hiệu từ 12V sang 5V. Tôi đã sử dụng loại PC817X chỉ có bốn chân, đó là tất cả những gì chúng tôi cần.
  5. Điện trở - bạn sẽ cần hai loại, mỗi loại ba cái. Đầu tiên cần phải đủ để giảm dòng điện qua đèn LED hồng ngoại optoisolator. Bạn sẽ cần ít nhất 600 ohm, nhưng 700 sẽ là một ý tưởng tốt hơn để xử lý điện áp thay đổi trên xe máy. Cái kia cần phải ở đâu đó từ 10k đến 20k để có tín hiệu nhanh ở phía bên kia của bộ cảm biến quang học.
  6. Bảng nguyên mẫu - Tôi có một số đủ nhỏ để nhét vào trong một hộp dự án nhỏ với một chút cắt tỉa.
  7. Hộp dự án - đủ lớn để lắp các thành phần, nhưng đủ nhỏ để dễ lắp.
  8. Dây - Tôi đã sử dụng dây ethernet Cat 6 vì tôi có rất nhiều thứ xung quanh nó. Điều này có tám dây, tất cả đều được mã hóa bằng màu sắc giúp hỗ trợ tất cả các kết nối khác nhau và là một thước đo đủ lớn để xử lý các bản vẽ hiện tại.
  9. Phích cắm - bất cứ nơi nào bạn muốn hệ thống có thể dễ dàng tháo rời. Tôi đã sử dụng một phích cắm không thấm nước để cho phép tháo hộp trên cùng và xử lý bất kỳ nước mưa hoặc nước nào dính vào hộp. Tôi cũng cần các phích cắm nhỏ hơn cho các dải LED để không phải khoan các lỗ lớn.
  10. Dây buộc zip và giá kết dính bằng dây buộc zip để giữ mọi thứ ở đúng vị trí.
  11. Co lại màng bọc để làm gọn gàng các kết nối.

Bước 1: Xây dựng mạch

Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch

Rõ ràng, nếu bạn đang theo dõi bản dựng của tôi, bạn sẽ không phải trải qua số lượng thử nghiệm mà tôi đã làm. Điều đầu tiên tôi làm là đảm bảo mã của mình hoạt động và tôi có thể nhận được tín hiệu từ các bộ tản nhiệt quang cũng như kiểm soát đúng các dải LED. Phải mất một chút thời gian để tìm ra cách tốt nhất để gắn các chân tín hiệu vào bộ cách ly nhưng qua quá trình thử và sai, tôi đã tìm ra đúng hướng. Tôi vừa mới sử dụng một bảng nguyên mẫu tiêu chuẩn vì tôi chỉ đang xây dựng một bảng và việc tìm ra một mẫu dấu vết sẽ mất nhiều thời gian hơn đáng giá. Phần trên của bảng mạch trông rất tuyệt, nhưng phần dưới trông giống như một chút lộn xộn, nhưng ít nhất nó có chức năng.

Thiết kế cơ bản bắt đầu với việc đầu vào nguồn điện 12V từ nguồn chuyển mạch (dây chỉ bật khi xe máy đang nổ máy). Sơ đồ nối dây thực sự có thể giúp tìm ra dây này. Điều này được đưa vào một bên của bộ điều chỉnh điện áp. Tụ điện 0,33 uF liên kết đầu vào này với đất trên bộ điều chỉnh điện áp, sau đó được cấp trở lại mặt đất trên xe máy. Đầu ra của bộ điều chỉnh điện áp sẽ có một tụ điện 0,1uF được gắn vào nó với đất. Các tụ điện này giúp làm mịn điện áp từ bộ điều chỉnh. Nếu bạn không thể tìm thấy chúng trong hình của bảng mạch, chúng nằm bên dưới bộ điều chỉnh điện áp. Từ đó, đường 5V đi đến Vin trên Arduino, tới chân nguồn sẽ cấp cho các dải LED và hai phía Nguồn của bộ quang dẫn sẽ cấp vào các chân Arduino cung cấp tín hiệu 5V cần thiết.

Đối với optoisolators, có hai mặt: một có đèn LED hồng ngoại và mặt kia có bóng bán dẫn với bộ dò hồng ngoại. Chúng tôi muốn sử dụng phía IR LED để đo tín hiệu 12V. Vì đèn LED có điện áp chuyển tiếp là 1,2V, chúng ta cần một điện trở hạn chế dòng điện mắc nối tiếp. 12V - 1,2V = 10,8V và để chạy đèn LED ở 18 mA (tôi luôn thích chạy dưới 20 mA vì lý do tuổi thọ), bạn sẽ cần một điện trở R = 10,8V / 0,018A = 600 ohm. Điện áp trên xe cũng có xu hướng chạy cao hơn, có thể lên đến 14V, vì vậy tốt hơn là bạn nên lên kế hoạch cho mức đó, khoảng 710 ohm, mặc dù 700 sẽ hợp lý hơn. Đầu ra cho phía đèn LED sau đó được cấp trở lại mặt đất. Đối với phía đầu ra của bộ điều chỉnh quang, đầu vào sẽ sử dụng tín hiệu 5V từ bộ điều chỉnh sau đó đầu ra sẽ kết nối với một điện trở khác trước khi nối đất. Điện trở này chỉ cần vào khoảng 10k - 20k ohm, ít nhất đó là những gì biểu dữ liệu của tôi cho thấy. Điều này sẽ cho phép đo tín hiệu nhanh chóng vì chúng tôi không xử lý môi trường ồn ào. Đầu ra cho chân Arduino sẽ đi ra giữa điện trở và đầu ra của bộ quang trở để khi tín hiệu tắt, chân đó ở mức thấp và khi tín hiệu ở chân cao.

Các dải đèn LED có ba dây liên kết với chúng: Nguồn, đất và dữ liệu. Nguồn cần phải là 5V. Dự án này sử dụng tổng cộng 12 đèn LED (mặc dù tôi có nhiều đèn LED hơn trên các dải nhưng tôi chỉ sử dụng mỗi đèn LED thứ ba) và mỗi đèn mất 60mA khi ánh sáng trắng được sử dụng ở độ sáng tối đa. Điều này cho tổng cộng 720 mA. Chúng tôi đang ở trong phạm vi công suất đầu ra cho bộ điều chỉnh điện áp, vì vậy chúng tôi tốt. Chỉ cần đảm bảo rằng dây là một khổ đủ lớn để xử lý nguồn điện, tôi đã sử dụng dây ethernet Cat 6 24 gauge. Dây Ethernet là thứ mà tôi đã ngồi xung quanh và nó có 8 dây được mã hóa màu nên nó hoạt động tốt cho dự án này. Các dây duy nhất sau đó cần đi đến hộp trên cùng là nguồn và đất (cả hai đều được phân chia giữa các dải) và hai đường dữ liệu (một cho mỗi dải).

Phần còn lại của dây là kết nối với các chân trên arduino và cấp nguồn cho nó. Các chân đã được sử dụng cho dự án này như sau:

  1. Vin - kết nối với 5V
  2. Gnd - kết nối với mặt đất
  3. Pin2 - được kết nối với đường dữ liệu dải bên trái
  4. Pin3 - được kết nối với đường dữ liệu dải bên phải
  5. Pin4 - được kết nối với tín hiệu Phanh từ bộ cảm biến quang học
  6. Pin5 - được kết nối với xi nhan trái từ bộ điều chỉnh quang học
  7. Pin6 - được kết nối với xi nhan phải từ bộ điều chỉnh quang học

Bước 2: Nối dây và cài đặt

Đấu dây và cài đặt
Đấu dây và cài đặt
Đấu dây và cài đặt
Đấu dây và cài đặt
Đấu dây và cài đặt
Đấu dây và cài đặt

Khi mạch đã được xây dựng, đã đến lúc thực sự nối dây này vào đúng vị trí. Sử dụng sơ đồ hệ thống dây điện cho xe đạp của bạn, bạn sẽ cần xác định vị trí sau:

  • Nguồn điện đã chuyển mạch
  • Đất
  • Tín hiệu phanh trong
  • Tín hiệu Rẽ trái Vào
  • Tín hiệu rẽ phải vào

Đối với tôi, có một phích cắm duy nhất có tất cả những thứ này trên đó, vì vậy tôi chỉ sử dụng nó. Với đủ thời gian, tôi có thể đã tìm được kiểu phích cắm tương tự và chỉ cần tạo một mô-đun cắm vào, nhưng tôi đã không làm thế, vì vậy tôi chỉ tháo lớp cách điện ở các vị trí và hàn dây mới vào nó. Tôi đã sử dụng phích cắm trên các kết nối được ghép nối này để có thể loại bỏ phần còn lại nếu tôi cần làm trong tương lai. Từ đó, tôi đặt Arduino, hiện đang ở trong một hộp dự án được niêm phong, dưới chỗ ngồi mà tôi đã gắn nó. Sau đó, cáp đầu ra chạy dọc theo khung giá đến phích cắm không thấm nước, sau đó đi vào hộp và chạy dọc theo mặt sau đến nắp nơi nó tách ra cho mỗi bên. Các dây dẫn chạy dọc bên trong nắp đến điểm kết nối cho các đèn LED. Dây được trợ giúp tại chỗ bằng cách sử dụng dây buộc zip gắn với giá treo dây buộc zip cấp ngoài trời với lớp keo dính. Bạn có thể tìm thấy những thứ này trong phần cài đặt cáp tại một cửa hàng đồ cải tiến gia đình

Tôi đã sử dụng hai phích cắm JST mini trên các dải LED vì tôi cần một phích cắm đủ nhỏ để đi qua một lỗ có đường kính tối thiểu và vì tôi muốn đảm bảo có đủ dây để xử lý các yêu cầu hiện tại. Một lần nữa, nó có thể đã quá mức cần thiết và tôi không có bất kỳ phích cắm nhỏ nào có ba dây tiện dụng. Lỗ trên hộp để dây đèn đi qua đã được bịt kín để ngăn nước ra ngoài. Đối với việc định vị các dải đèn LED, vì có một chút không khớp về khoảng cách (có khoảng cách chênh lệch khoảng 1 - 1,5 mm giữa các lỗ trên gương phản xạ và đèn LED), tôi đã định vị chúng để chúng phân chia sự khác biệt giữa đèn LED và lỗ càng nhiều càng tốt. Sau đó, tôi sử dụng keo nóng để dán chúng vào vị trí và keo trám để đóng kín toàn bộ khu vực. Bản thân các dải đèn LED không thấm nước, vì vậy không có vấn đề gì nếu chúng bị ướt. Mặc dù có vẻ như cần cài đặt rất nhiều nhưng điều này giúp hệ thống dễ dàng tháo gỡ hơn trong tương lai hoặc cần thay thế các bộ phận vì nó có thể xảy ra.

Bước 3: Mã

Mã nguồn của tôi phải ở phần đầu của Có thể hướng dẫn này. Tôi luôn nhận xét mã của mình rất nhiều để sau này dễ hiểu hơn. Tuyên bố từ chối trách nhiệm: Tôi không phải là người viết mã chuyên nghiệp. Mã được viết theo phương pháp dễ tiếp cận hơn trước và một số cải tiến đã được thực hiện, nhưng tôi biết nó có thể được tinh chỉnh hơn. Tôi cũng đang sử dụng một lượng lớn hàm delay () cho thời gian không lý tưởng. Tuy nhiên, các tín hiệu mà thiết bị đang nhận không phải là tín hiệu nhanh so với các tín hiệu so sánh, vì vậy tôi vẫn cảm thấy hợp lý khi giữ chúng hơn bằng cách sử dụng một cái gì đó như mili (). Tôi cũng là một người cha và một người chồng rất bận rộn nên việc dành thời gian để cải thiện một số thứ mà cuối cùng sẽ không làm thay đổi chức năng không phải là điều cao trong danh sách.

Đối với dự án này, chỉ cần một thư viện là thư viện FastLED. Điều này có tất cả mã để điều khiển dải LED loại WS2811 / WS2812B. Từ đó, tôi sẽ trình bày các chức năng cơ bản sẽ được sử dụng.

Đầu tiên khác với các định nghĩa tiêu chuẩn là khai báo hai dải của bạn. Bạn sẽ sử dụng mã sau cho mỗi dải:

FastLED.addLeds (dẫn [0], NUM_LEDS);

Dòng mã này thiết lập Pin 2 xác định dải này là dải 0 với số lượng đèn LED được xác định bởi NUM_LEDS không đổi, trong trường hợp của tôi được đặt thành 16. Để xác định dải thứ hai, dải 2 sẽ trở thành 3 (cho pin3) và dải sẽ được dán nhãn dải 1.

Dòng tiếp theo sẽ quan trọng là định nghĩa màu sắc.

led [0] [1] = Color_high CRGB (r, g, b);

Dòng mã này được sử dụng mặc dù trong các giao diện khác nhau (hầu hết tôi sử dụng một hằng số). Về cơ bản, mã này sẽ gửi một giá trị đến mỗi kênh LED (đỏ, lục, lam) xác định từng độ sáng. Giá trị độ sáng có thể được xác định bằng một số 0 - 255. Bằng cách thay đổi mức độ sáng cho mỗi kênh, bạn có thể xác định các màu khác nhau. Đối với dự án này, tôi muốn có màu trắng để giữ cho ánh sáng càng sáng càng tốt. Vì vậy, những thay đổi duy nhất tôi làm là đặt mức độ sáng như nhau trên cả ba kênh.

Bộ mã tiếp theo được sử dụng để chiếu sáng riêng từng đèn. Lưu ý rằng đối với mỗi dải, mỗi LED có địa chỉ bắt đầu từ 0 cho địa chỉ gần nhất với kết nối đường dữ liệu cho đến LED số cao nhất mà bạn có trừ đi 1. Ví dụ, đây là 16 dải LED, vì vậy giá trị cao nhất là 16 - 1 = 15. Lý do cho điều này là vì đèn LED đầu tiên có nhãn 0.

for (int i = NUM_LEDS-1; i> -1; i = i - 3) {// Điều này sẽ thay đổi ánh sáng cho mọi LED thứ ba đi từ LED cuối cùng đến đầu tiên. led [0] = Color_low; // Đặt màu LED dải 0 thành màu đã chọn. leds [1] = Color_low; // Đặt màu LED dải 1 thành màu đã chọn. FastLED.show (); // Hiển thị các màu đã đặt. led [0] = CRGB:: Đen; // Tắt bộ màu để chuẩn bị cho màu tiếp theo. led [1] = CRGB:: Đen; chậm trễ (150); } FastLED.show (); // Hiển thị các màu đã đặt.

Cách mã này hoạt động là một biến (i) được sử dụng trong vòng lặp for làm địa chỉ LED sau đó được tham chiếu đến toàn bộ số LED (NUM_LEDS). Lý do cho điều này là tôi muốn đèn bắt đầu ở cuối dải hơn là đầu. Cài đặt được xuất ra cả hai dải (led [0] và led [1]) sau đó lệnh hiển thị thay đổi được đưa ra. Sau đó đèn này tắt (CRGB:: Black) và đèn tiếp theo sáng. Tham chiếu Đen là một màu cụ thể trong thư viện FastLED nên tôi không phải đưa ra 0, 0, 0 cho mỗi kênh mặc dù chúng sẽ làm điều tương tự. Vòng lặp For tăng 3 đèn LED cùng một lúc (i = i-3) vì tôi chỉ sử dụng mỗi đèn LED khác. Vào cuối vòng lặp này, chuỗi ánh sáng sẽ đi từ đèn LED này sang đèn LED tiếp theo với chỉ một đèn chiếu sáng trên mỗi dải, giống như hiệu ứng Hiệp sĩ Rider. Nếu bạn muốn giữ cho mỗi đèn sáng để thanh xây dựng, bạn chỉ cần loại bỏ các dòng tắt đèn LED xảy ra trong bộ mã tiếp theo trong chương trình.

for (int i = 0; i <dim; i ++) {// Làm mờ nhanh đèn đến mức sáng đang chạy. rt = rt + 1; gt = gt + 1; bt = bt + 1; for (int i = 9; i <NUM_LEDS; i = i +3) {// Điều này sẽ làm sáng ba đèn cuối cùng cho đèn vị trí. led [0] = CRGB (rt, gt, bt); // Đặt màu LED dải 0 thành màu đã chọn. led [1] = CRGB (rt, gt, bt); // Đặt màu LED dải 1 thành màu đã chọn. } FastLED.show (); chậm trễ (3); }

Ví dụ cuối cùng về mã mà tôi sử dụng cho đèn LED là một vòng lặp mờ. Ở đây, tôi sử dụng các khe tạm thời cho độ sáng cho từng kênh (rt, gt, bt) và tăng chúng lên 1 với độ trễ giữa mỗi lần hiển thị để đạt được giao diện như tôi muốn. Cũng lưu ý rằng mã này chỉ thay đổi ba đèn LED cuối cùng vì điều này đang mờ dần trong đèn đang chạy, vì vậy tôi bắt đầu từ 9 thay vì 0.

Phần còn lại của mã LED là các lần lặp lại của chúng. Mọi thứ khác đều tập trung vào việc tìm kiếm tín hiệu trên ba dây khác nhau. Khu vực Loop () của mã tìm kiếm đèn phanh, đèn này sẽ nhấp nháy một lần trước khi bật sáng (điều này có thể điều chỉnh nếu muốn) hoặc tìm tín hiệu báo rẽ. Đối với mã này, bởi vì tôi không thể cho rằng đèn rẽ trái và phải sẽ bật chính xác cùng một lúc cho các mối nguy hiểm, tôi sẽ tìm mã trước cho một trong hai, sau đó, sau một khoảng thời gian ngắn, tôi kiểm tra xem cả hai có đang bật hay không đèn báo nguy hiểm đang sáng. Một phần khó khăn mà tôi gặp phải là tín hiệu rẽ vì đèn sẽ tắt trong một khoảng thời gian nào đó, vậy làm cách nào để phân biệt giữa tín hiệu vẫn sáng nhưng trong thời gian tắt và tín hiệu bị hủy? Những gì tôi nghĩ ra là triển khai một vòng lặp trễ được thiết lập để tiếp tục lâu hơn thời gian trễ giữa các lần nhấp nháy tín hiệu. Nếu tín hiệu rẽ vẫn bật, thì vòng lặp tín hiệu sẽ tiếp tục. Nếu tín hiệu không bật trở lại khi thời gian trễ kết thúc, thì tín hiệu sẽ quay trở lại điểm bắt đầu của vòng lặp (). Để điều chỉnh độ dài của độ trễ, hãy thay đổi số cho ánh sáng không đổi

while (digitalRead (leftTurn) == LOW) {for (int i = 0; i <lightDelay; i ++) {leftTurnCheck (); if (digitalRead (leftTurn) == HIGH) {leftTurnLight (); } delay (100); } for (int i = 0; i <NUM_LEDS; i = i +3) {// Điều này sẽ thay đổi ánh sáng cho mọi LED thứ ba đi từ LED cuối cùng đến đầu tiên. led [0] = CRGB (0, 0, 0); // Đặt màu LED dải 0 thành màu đã chọn. } for (int i = 9; i <NUM_LEDS; i = i +3) {// Điều này sẽ thiết lập đèn đang chạy chỉ sử dụng ba đèn cuối cùng. led [0] = Color_low; // Đặt màu LED dải 0 thành màu đã chọn. } FastLED.show (); // Cài đặt đầu ra return; // Sau khi đèn xi nhan không còn bật, quay lại vòng lặp. }

Hy vọng rằng phần còn lại của mã là tự giải thích. Nó chỉ là một tập hợp lặp đi lặp lại của việc kiểm tra và hành động theo các tín hiệu.

Bước 4: Kết quả

Kết quả
Kết quả

Điều đáng kinh ngạc là hệ thống này hoạt động ngay lần đầu tiên tôi nối dây cho xe đạp. Bây giờ, công bằng mà nói, tôi đã thử nghiệm rất nhiều trên băng ghế dự bị trước đó, nhưng tôi vẫn mong đợi sẽ có một vấn đề hoặc một sự điều chỉnh. Hóa ra là tôi không cần thực hiện bất kỳ điều chỉnh nào đối với mã cũng như các kết nối. Như bạn có thể thấy trong video, hệ thống chạy theo trình tự khởi động (mà bạn không cần phải có), sau đó mặc định thành đèn chạy. Sau đó, nó sẽ tìm kiếm phanh trong trường hợp đó nó sẽ sáng tất cả các đèn LED ở độ sáng tối đa và nhấp nháy chúng một lần trước khi tiếp tục cho đến khi phanh được nhả. Khi đèn báo rẽ được sử dụng, tôi đã tạo hiệu ứng di chuyển cho phía có chỉ báo rẽ và phía bên kia sẽ là đèn chạy hoặc đèn phanh nếu bật. Đèn nguy hiểm sẽ chỉ nhấp nháy cùng lúc với các đèn khác.

Hy vọng rằng với những chiếc đèn bổ sung này, tôi sẽ dễ nhìn thấy hơn với những người khác. Ít nhất, đó là một bổ sung tuyệt vời để làm cho hộp của tôi nổi bật hơn một chút so với những người khác trong khi cung cấp tiện ích. Tôi hy vọng dự án này cũng hữu ích cho người khác ngay cả khi họ không làm việc với đèn chiếu sáng hộp trên xe máy. Cảm ơn!

Đề xuất: