tuenhi.n2012 gửi vào
- 12287 lượt xem
DẪN NHẬP
Phương pháp Charliplexing là gì? Mình sẽ giới thiệu sơ lược về nó và hướng dẫn các bạn làm một board LoLShield (Lots of Lights Shield). Với LoLShield, mục tiêu chúng ta là điều khiển 126 đèn led đơn được xếp thành ma trận 9x14 bằng phương pháp Charliplexing để tiết kiệm chân Arduino và thiết kế sao nó thành Shield cắm thẳng lên Arduino. Ưu điểm: mang theo bên người, lúc buồn thì móc ra xài và có thể dùng nguồn USB hoặc nguồn pin, không dùng điện trở hạn dòng cho led, có thể làm VU meter, máy chơi game đơn giản như: Invender, Pong, Tetirs....
Qua đây, mình cũng chia sẻ với các bạn về biến đổi FFT qua Microsoft Excel 2010 và biến LoLShield thành VU meter cắm qua jack 3.5mm từ các thiết bị nghe nhạc với thư viện fix_fft.
I. GIỚI THIỆU
Charlieplexing đã được đề xuất vào đầu năm 1995 bởi Charlie Allen tại Maxim Integrated. Tuy nhiên, phương pháp này đã được biết đến và sử dụng trong những năm 1980 và được mô tả chi tiết vào năm 1979 trong một bằng sáng chế của Christopher W. Malinowski, Heinz Rinderle, và Martin Siegle thuộc Bộ Nghiên cứu và Phát triển, AEG-Telefunken, Heilbronn, Đức với tên gọi là "Hệ thống tín hiệu ba trạng thái".Nguồn tham khảo: https://en.wikipedia.org/wiki/Charlieplexing
Theo Charliplexing, ta có mối liên hệ giữa số lượng PINs vi điều khiển và số lượng LEDs cần điều khiển như sau:
Xét trường hợp dùng 3 PINs để điều khiển 6 LEDs:
Chúng ta chú ý về ba trạng thái của chân Arduino là: "high" (5V), "low" (0V) và "input". Chế độ "input" đặt chân Arduino ở trạng thái tổng trở cao (high-impedance state). Xem thêm tại link: https://www.arduino.cc/en/Tutorial/DigitalPins
II. CHUẨN BỊ
List vật tư chuẩn bị theo bảng bên dưới:
No.
Tên vật tư
Số lượng
Đơn vị
Notes
1
Board Arduino Uno
1
pcs
2
Led 3mm
126
pcs
Mua 150 pcs để spare
3
Jump đơn đực 2.54mm 1x40P
2
pcs
Loại dài 19mm
4
Bản đồng 2 mặt, kích thước bằng board arduino uno
1
pcs
5
Bản in mặt Top và Bottom cho LoLShield
1
pcs
6
Jack 3.5mm và đoạn dây
1
pcs
Để làm jack cắm vào laptop/ desktop/ điện thoại/ máy tính bảng…
7
Pin 9V
1
pcs
8
Đế Pin 9V có sẵn giắc DC
1
pcs
9
Các món khác: Dung dịch ăn mòn đồng, cồn, khoan …
1
set
III. PHẦN CỨNG
Tham khảo từ Jimmie P Rodgers: https://github.com/jprodgers/LoLshield, bao gồm bản vẽ Eagle, thư viện LoLShield và các chương trình test.
3.1. SƠ ĐỒ NGUYÊN LÝ
3.2. MẠCH IN
Khi làm mạch in 2 mặt, các bạn có thể tham khảo trên internet, có rất nhiều link hướng dẫn chi tiết.
Lưu ý
Khi hàn đèn LED, chúng ta nên làm theo từng hàng (từ hàng 1 đến hàng 9, mỗi hàng có 14 led) theo thứ tự lớp Bottom trước và lớp Top sau. Nếu ta hàn nhiều hàng (hay cột) cùng một lúc thì rất khó để kiểm tra LED hỏng hay chạm chập…. Sau khi hàn xong từng hàng, chúng ta add thư viện của LoLShield & dùng chương trình sau để test từng hàng LED:
Ví dụ:
IV. CHƯƠNG TRÌNH
Mình sẽ dùng LoLShield để làm VU Meter bằng biến đổi FFT. VU meter này kết nối trực tiếp đến laptop/desktop, mobile phone, tablet hay các thiết bị chơi nhạc khác qua jack 3.5mm.
4.1. TÌM HIỂU FFT
a. Tham khảo FFT
Các bạn có thể tham khảo FFT tại các trang:
b. FFT dùng Microsoft Excel
Cách cài đặt và phân tích FFT, ở đây mình dùng bản Microsoft Excel 2010:
c. Mô phỏng FFT bằng Microsoft Excel 2010
Ở miền thời gian, tín hiệu này có dạng:
Các lưu ý:
Xem Chart bên dưới:
Dùng Analysis Toolpak trong Excel 2010, ta sẽ được bảng tính như sau:
Cuối cùng, chúng ta có được biến đổi FFT cho tín hiệu trên bằng cách vẽ Amplitude theo trục y và FFT Freq. theo trục x. Lưu ý ở cột FFT Output Range, dạng số a+b*i là số phức.
d. Thư viện FFT cho Arduino
4.2. CHƯƠNG TRÌNH VU METER CHO LOLSHIELD
Tham khảo từ trang: http://andydoro.com/vulol/ của Andy Doro. Các bạn xem Video thực tế bên dưới: LoLShield - FFT VU METER.
V. PHẦN KẾT