"Fiat Lux - Hãy có ánh sáng": Giới thiệu về Neopixel WS2812

Mô tả dự án: 

Đây là chuỗi bài viết về 1 loại bóng LED RGB (WS2812) mà tui chưa thấy ai viết trên cộng đồng. Hôm nay, bạn sẽ biết được vì sao người ta lại có thể điều khiển nhiều LED RGB thế trong khi nó đến 3 chân xung.

Dẫn nhập

Thưở hồng hoang thế giới Arduino của bạn còn trống rỗng, chưa có hình dạng, bóng tối bao trùm vực thẳm. Bạn cắm bóng LED, nạp code BLINK huyền thoại và phán "Hãy có ánh sáng!". Thế là có ánh sáng. Bạn thấy thế là tốt đẹp. Qua một buổi chiều và một buổi sáng. Ngày đầu tiên trong thế giới Arduino của bạn là thế.

Bạn thấy một bóng LED là rất nhàm chán, và chúng phải sinh sôi nảy nở hơn. Bạn phán "Hãy có PWM!". Bạn cắm thêm nhiều bóng, chia xung và ra lệnh cho chúng nhấp nháy sáng tối theo ý bạn. Thế giới của bạn đã linh động và hoạt bát lên nhiều. Bạn cảm thấy tốt đẹp sau một buổi chiều và một buổi sáng. Đó là ngày thứ hai.

Khi số lượng bóng LED đã đầy dẫy lúc nhúc cho Arduino của bạn, bạn bắt đầu nghĩ đến phương án khác. Bạn phán "Hãy có mạch IC 595!". Thế là ma trận LED 64 bóng ra đời. Bạn thấy thế là tốt đẹp. Qua một buổi chiều và một buổi sáng. Đó là ngày thứ ba.

Bạn thấy bóng LED đơn sắc là chưa tốt nên phán: "Hãy có LED RGB." Thế là có LED RGB chung cực âm và cực dương tùy theo loại. Thế giới của bạn bây giờ đã 3 màu nhấp nháy. Bạn thấy hài lòng với công việc sáng tạo của mình. Đó là ngày thứ tư.

Ngày thứ năm, khi mạch của bạn đã lúc nhúc LED 3 màu trên Arduino, bạn bắt đầu nghĩ đến phương án điều khiển chúng. Ban đầu bạn nghĩ đến mạch IC 595, nhưng chẳng lẽ lại phải dùng đến 3 ICs vì mỗi bóng RGB có đến 3 chân, mỗi chân cho 1 màu. Chẳng lẽ sự nghiệp sáng thế nhấp nháy LED của bạn đến đây là kết thúc? broken heart

Câu thần chú trong ngày thứ năm của bạn là "Hãy có WS2812!"

WS2812 là gì vại? Ăn được hem?

WS2812 thực ra là 1 mạch tích hợp 3 bóng LED RGB và 1 IC điều khiển. Điều đặc biệt là bạn có thể nối tiếp nhiều bóng với nhau nhưng vẫn có thể điều khiển tới 144 bóng riêng biệt mà chỉ cần dùng 1 pin Arduino. Dưới đây là một vài thông số cơ bản của loại LED này (trích từ https://www.sparkfun.com/products/11821)

  • Góc nhìn: 120 degrees
  • Red: (620-630nm) @ 550-700mcd
  • Green: (515-530nm) @ 1100-1400mcd
  • Blue: (465-475nm) @ 200-400mcd

Một số ứng dụng

Vì nối tiếp được nên WS2812 có khả năng thiên biến vạn hóa rất ảo diệu. Dưới đây là một vài ví dụ: (trích từ https://www.adafruit.com/category/168)

 

Ưu và nhược điểm

Nhưng WS2812 cũng là 1 loài thụ tạo nên phải chịu số phận "nhân vô thập toàn" với những ưu và khuyết điểm như sau:

Ưu điểm

  • Tiết kiệm chân Arduino: bạn có thể dùng 1 pin duy nhất nhưng vẫn có thể điều chỉnh màu và độ sáng của từng LED riêng biệt.
  • Không phải lo về việc đây là bóng common anode hay cathode.
  • Nối tiếp các LED với nhau được (tới 144 bóng).
  • Có sẵn thư viện Arduino.

Nhược điểm

  • Là mạch IC tích hợp nên giá còn hơi cao (18USD) cho 100 bóng. Hơn nữa nếu bạn nhìn kỹ vào hình đầu bài, bạn sẽ thấy có các sợi dây màu vàng dài dài nối giữa các phần vi mạch với nhau. Vàng thật đó các bạn ạ! wink
  • Phải dùng với driver truyền tín hiệu. Cắm trực tiếp vào nguồn sẽ không sáng được.
  • Không phải là LED tròn nên giới hạn ứng dụng trong 2D.

Bài tới tui sẽ hướng dẫn phần cứng và phần mềm cho code BLINK thần thánh nha! heart

lên
25 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

"Fiat Lux - Hãy có ánh sáng": (Phần 5) Đồng hồ analog đo âm thanh

Đây là bài ví dụ về việc kết hợp module neopixel ring (24 bóng) và 1 cảm biến âm thanh làm đồng hồ analoge đo độ ồn. Các bạn có thể áp dụng cách này làm nhiều trò hay ho hơn như hiển thị nhiệt độ, tốc độ... Các bạn đặc biệt chú ý đến phần code nha!

lên
13 thành viên đã đánh giá bài viết này hữu ích.

Trí thông mình nhân tạo với Watson IBM và Raspberry Pi (Phần 2): Nhận dạng khuôn mặt, giới tính và tuổi

Bài trước tui đã hướng dẫn các bạn làm quen với Watson IBM trên Raspberry Pi. Bây giờ chúng ta sẽ quay trở lại với bài toán nhận diện khuôn mặt. Trong bài khóa "thông minh" với OpenCV, dữ liệu nhận dạng khuôn mặt được đưa ra bởi một thuật toán "tĩnh" OpenCV trên laptop của các bạn và sau đó kết quả được chép thủ công vào Raspberry Pi. Raspberry chỉ việc dựa vào kết quả training và đưa ra kết quả nhận diện khuôn mặt. Đây chưa phải là giải pháp tối ưu vì giả sử bạn muốn thay đổi thuật toán mới hoặc train cho tốt hơn thì không thể thực hiện trên Pi được. Thay vậy, bạn có thể dùng dịch vụ cloud của Watson cho việc training và chỉ việc up hình lên để Watson nhận diện. Kết quả sẽ được trả về qua json với lượng thông tin phong phú hơn nhiều. 

lên
7 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: