Mục lục:

Ánh sáng xung quanh tương tác: 8 bước
Ánh sáng xung quanh tương tác: 8 bước

Video: Ánh sáng xung quanh tương tác: 8 bước

Video: Ánh sáng xung quanh tương tác: 8 bước
Video: Các Electron lấy năng lượng từ đâu để quay quanh hạt nhân Nguyên tử? | Khoa học và Khám phá 2024, Tháng bảy
Anonim
Ánh sáng xung quanh tương tác
Ánh sáng xung quanh tương tác
Ánh sáng xung quanh tương tác
Ánh sáng xung quanh tương tác
Ánh sáng xung quanh tương tác
Ánh sáng xung quanh tương tác

Đây là hướng dẫn đầu tiên của tôi! Hãy chịu khó với tôi trong khi tôi đấu tranh để viết tiếng Anh thích hợp. Hãy sửa cho tôi! Tôi bắt đầu dự án này ngay sau khi cuộc thi 'Let it glow' bắt đầu. Tôi ước tôi đã làm được nhiều hơn nữa và hoàn thành những gì tôi muốn làm. Nhưng giữa trường học và công việc, tôi không còn nhiều thời gian như tôi mong muốn. Tuy nhiên, tôi để lại ở đây một báo cáo về các thí nghiệm của tôi như một tài liệu hướng dẫn, vì vậy bất kỳ ai cũng có thể thử và thực hiện những gì tôi đã làm. Tài liệu hướng dẫn này không nhằm mục đích hướng dẫn và dạy cách thực hiện sản phẩm này. Nó không phải là một hướng dẫn cho những người mới bắt đầu trong lĩnh vực điện tử. Nó giống như việc chia sẻ một ý tưởng và mục tiêu mà tôi muốn theo đuổi. Nếu bạn là người mới bắt đầu / hoàn toàn không biết gì về điện tử và muốn làm một cái gì đó như thế này, tôi xin lỗi! Nhưng chúng tôi có thể cố gắng luôn luôn giúp bạn. Xem bước cuối cùng. Chúng tôi đã thấy nhiều dự án ánh sáng xung quanh. Hầu hết chúng đều sử dụng đèn LED RGB: - Để chiếu sáng căn phòng bằng một màu, thiết lập bầu không khí phù hợp với tâm trạng của bạn - Để tạo hiệu ứng ánh sáng từ màu của TV / Màn hình hoặc từ âm thanh. Thậm chí có một số trong các hướng dẫn. Tôi luôn muốn làm một cái gì đó tương tự như những ánh sáng xung quanh này và lấp đầy các bức tường trong phòng của tôi bằng đèn LED RGB. Tuy nhiên, tiến thêm một bước nữa, làm cho tất cả và từng thứ trong số chúng có thể kiểm soát được. Dự án này hy vọng sẽ tạo ra một bộ thiết bị điện tử mã nguồn mở cho những người yêu thích và mày mò điện tử, cho phép hack phần cứng / phần mềm và tích hợp cảm giác. Đây là một bản xem trước nhỏ về những gì tôi đã thực hiện:

Bước 1: Khám phá ý tưởng

Tôi muốn có thể lấp đầy các bức tường trong phòng của mình bằng đèn LED RGB, kiểm soát màu sắc và độ sáng cho từng đèn LED. Tôi sẽ sử dụng bộ vi điều khiển để dễ sử dụng và linh hoạt được cung cấp. Thật không may, tôi không thể điều khiển hàng trăm đèn LED với một vài chân có sẵn trên vi điều khiển. Thậm chí sẽ rất khó để viết mã điều khiển của rất nhiều đèn LED, vì vậy tôi quyết định rằng tôi nên chia tất cả các đèn LED thành nhiều thanh nhỏ hơn và đối với mỗi thanh, tôi có thể sử dụng một bộ vi điều khiển. Sau đó, tôi sẽ sử dụng khả năng giao tiếp của vi điều khiển để chia sẻ thông tin giữa chúng. Thông tin này có thể là màu sắc và độ sáng của đèn LED, kiểu / chuỗi màu và thông tin cảm quan. Đối với mỗi thanh, tôi quyết định sử dụng 16 đèn LED RGB. Điều này dẫn đến một thanh không quá lớn cũng không nhỏ. Bằng cách này, tôi sử dụng một số lượng tài nguyên có thể chấp nhận được cho mỗi đèn LED, giảm chi phí cho mỗi thanh. Tuy nhiên, 16 đèn LED RGB là 48 đèn LED (3 * 16 = 48) để bộ vi điều khiển kiểm soát. bộ vi điều khiển rẻ nhất mà tôi có thể sử dụng. Điều này có nghĩa là bộ vi điều khiển sẽ chỉ có tối đa 20 chân I / O, không đủ cho 48 đèn LED. Thay thế mà tôi có thể nghĩ đến là sử dụng một số loại thanh ghi dịch chuyển có chốt! Tiếp tục: - Tạo và tương tác ánh sáng xung quanh- Tạo thanh tiêu chuẩn của đèn LED có thể điều khiển- Khả năng kết nối nhiều thanh để lấp đầy một căn phòng- Cho phép người dùng thích ứng / cấu hình và tích hợp cảm giác

Bước 2: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng

Như đã nói ở bước trước, tôi muốn tạo nhiều thanh để chiếu sáng một phòng. Điều này làm cho vấn đề chi phí được quan tâm. Tôi sẽ cố gắng làm cho mỗi thanh theo cách tiết kiệm chi phí nhất có thể. Bộ vi điều khiển tôi sử dụng là AVR ATtiny2313. Những thứ này khá rẻ và tôi đã có một số nằm xung quanh. ATtiny2313 cũng có một Giao diện nối tiếp chung và một giao diện USART sẽ được sử dụng tốt trong các bước sau. Tôi cũng có ba bộ mở rộng cổng I / O MCP23016 - I2C 16bit nằm xung quanh, chỉ là số lượng phù hợp! Tôi đã sử dụng mỗi bộ mở rộng cổng để điều khiển một màu trong số 16 đèn LED. Đèn LED… Thật không may, lại là thứ rẻ nhất mà tôi có thể tìm thấy. Chúng có 48 màu đỏ, xanh lục và xanh lam ~ 10000mcd 5mm với góc 20 độ. Điều này không thành vấn đề bây giờ, vì đây chỉ là một nguyên mẫu. Mặc dù thực tế này, kết quả là khá tốt đẹp! Tôi đang chạy bộ vi điều khiển ở 8 MHz. Bus I2C có tốc độ 400 kHz. Tần số chuyển đổi của đèn LED là khoảng 400 Hz. Bằng cách này, nếu tôi có thể điều khiển 48 đèn LED mà không cần đẩy nó đến giới hạn, tôi sẽ có chỗ cho nhiều thứ hơn sau!

Bước 3: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Sau khi thiết kế mạch, tôi đã xây dựng nó trong một số bảng mạch, cho mục đích tạo mẫu. Sau vài giờ cắt dây và lắp ráp mạch, tôi nhận được kết quả này: Một bảng mạch khổng lồ với 48 đèn LED và hàng tấn dây!

Bước 4: Kiểm soát?

Điều khiển?
Điều khiển?

Đây là phần thử thách nhất của dự án. Tôi muốn tạo ra một thuật toán điều khiển đủ chung để xử lý các mẫu / chuỗi và cũng kiểm soát độ sáng và màu sắc của mỗi đèn LED. Để điều khiển các đèn LED, tôi phải gửi đến MCP23016 một khung hình 4byte (1 byte = 8 bit). Một byte với địa chỉ của IC tương ứng với màu sắc, 1 byte với lệnh "ghi" và 2 byte với giá trị của 16bits (LED). IC được kết nối với các đèn LED dưới dạng "chìm", có nghĩa là, một giá trị logic 0 ở chân sẽ sáng đèn LED Và bây giờ là phần thử thách, làm thế nào để điều khiển PWM cho 48 đèn LED? PWM giải thích @ Wikipedia. Nếu tôi muốn độ sáng của đèn LED ở mức 50%, giá trị PWM của tôi là 50%. Điều này có nghĩa là đèn LED, trong một khoảng thời gian, phải bật cùng một khoảng thời gian với thời gian tắt. Hãy dành một khoảng thời gian là 1 giây. PWM là 50% có nghĩa là trong 1 giây này, thời gian bật là 0,5 giây và thời gian tắt là 0,5 giây. PWM là 80%? 0,2 giây tắt, 0,8 giây bật! Trong thế giới kỹ thuật số: Với khoảng thời gian 10 chu kỳ đồng hồ, 50% có nghĩa là trong 5 chu kỳ, đèn LED bật và trong 5 chu kỳ nữa, đèn LED tắt. 20%? 2 chu kỳ bật, 8 chu kỳ tắt. 45%? Chà, chúng ta không thể thực sự nhận được 45% … Vì khoảng thời gian là theo chu kỳ và chúng ta chỉ có 10 chu kỳ, chúng ta chỉ có thể chia PWM theo từng bước giảm 10%. Điều này có nghĩa là sự phát triển của pin phải là 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Hoặc thậm chí 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; Trong lập trình, chúng ta có thể thực hiện trình tự bật và tắt một mảng này. Đối với mỗi chu kỳ, chúng tôi xuất ra chân giá trị của chỉ số là chu kỳ.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Để điều khiển chân LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Kết quả là LED0 + LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Ngoại trừ dãy số này trong IC mở rộng cổng, chúng ta sẽ nhận được LED0 với độ sáng 50% và LED1 là 20% !! Đơn giản cho 2 đèn LED phải không? Bây giờ chúng ta phải tạo điều này cho 16 đèn LED, cho mỗi màu! Đối với mỗi một trong các mảng này, chúng ta có sự kết hợp độ sáng cho mỗi màu (16 đèn LED) Mỗi khi chúng ta muốn có một kết hợp màu khác, chúng ta phải thay đổi mảng này.

Bước 5: Thực hiện dễ dàng

Làm cho nó dễ dàng!
Làm cho nó dễ dàng!
Làm cho nó dễ dàng!
Làm cho nó dễ dàng!

Bước trước đó là quá nhiều công việc để tạo một chuỗi đơn giản… Vì vậy, tôi quyết định tạo một chương trình, nơi chúng tôi cho biết màu sắc của mỗi đèn LED trong một bước của trình tự và chúng tôi nhận được ba mảng của bước. Tôi đã thực hiện chương trình này trong LabView do hạn chế về thời gian.

Bước 6: Thử nghiệm đầu tiên

Thử nghiệm đầu tiên
Thử nghiệm đầu tiên

Đang tải một số bước trong bộ vi điều khiển và chúng tôi nhận được thông tin như sau: Rất tiếc về chất lượng video kém! Tôi đã xác định số bước tối đa của một chuỗi là 8 và giới hạn bước nhảy PWM ở 20%. Quyết định này dựa trên loại điều khiển mà tôi đang sử dụng và mức EEPROM của ATtiny2313.

Bước 7: Kiểm soát thời gian thực

Kiểm soát thời gian thực
Kiểm soát thời gian thực
Kiểm soát thời gian thực
Kiểm soát thời gian thực
Kiểm soát thời gian thực
Kiểm soát thời gian thực

Như đã đề cập trong các bước trước, tôi muốn giao tiếp với tất cả các bộ vi điều khiển điều khiển đèn LED trong phòng của tôi. Vì vậy, tôi đã sử dụng giao diện USART có sẵn trong ATtiny2313 và kết nối nó với máy tính của mình. Tôi cũng đã tạo một chương trình trong LabView để điều khiển thanh LED. chứng minh cách tôi có thể thay đổi màu của đèn LED và xác định trình tự.

Bước 8: Kết luận

Kết luận
Kết luận
Kết luận
Kết luận
Kết luận
Kết luận
Kết luận
Kết luận

Tôi nghĩ rằng tôi đã thành công trong cách tiếp cận đầu tiên của dự án của mình. Tôi có thể điều khiển 16 đèn LED RGB với ít tài nguyên và ràng buộc. Có thể điều khiển từng đèn LED riêng biệt, tạo ra bất kỳ trình tự mong muốn nào.

Công việc tương lai:

Nếu nhận được phản hồi tích cực từ mọi người, tôi có thể sẽ phát triển thêm ý tưởng này và làm một Bộ thiết bị điện tử tự làm đầy đủ, có bảng mạch in và hướng dẫn lắp ráp.

Đối với phiên bản tiếp theo của tôi, tôi sẽ: -Thay đổi bộ vi điều khiển thành một bộ với ADC -Thay đổi MCP23016 cho một số loại nối tiếp song song khác có thể làm giảm nhiều dòng điện hơn từ đèn LED -Tạo phần mềm nguồn mở để giao tiếp với bộ vi điều khiển và điều khiển đèn LED -Phát triển giao tiếp giữa một số vi điều khiển.

Bạn có bất kỳ đề nghị hoặc câu hỏi? Hoặc để lại một bình luận!

Lọt vào chung kết trong Let It Glow!

Đề xuất: