Cao Minh Gia Huy gửi vào
- 20270 lượt xem
I. Giới thiệu
Persistence of Vision hay [POV] là một ảo ảnh quang học mà nhờ đó nhiều hình ảnh rời rạc được ghép lại thành một hình ảnh duy nhất khi con người quan sát. Nghĩa là: khi bạn nhìn vào một quạt làm việc, bạn sẽ thấy các cánh quạt của nó tạo thành một vòng tròn trong suốt! Nhưng, tại sao ?!
Đôi mắt giữ thông tin hình ảnh trong một khoảng thời gian lâu hơn nó ở đó và não kết hợp những hình ảnh với nhau trong một cảnh. Điều này là do những hình ảnh chúng ta thấy mất khoảng 1/10 giây để được ghi nhớ trong não của chúng ta, vì vậy khi cánh quạt di chuyển trong một thời gian ít hơn 1/10 giây, não kết hợp những hình ảnh của các vị trí khác nhau của cánh quạt với nhau và chúng ta bắt đầu nhìn thấy vòng tròn đó.
III. Nội dung
1. Linh kiện
Trong bài viết này, mình đang làm cho một loạt các đèn LED hiển thị chữ và các ký tự. Phần cứng gồm có:
- 7 LED ( màu gì cũng được )
- 7 điện trở (220 ohm)
- 1 Arduino Uno R3
- Breadboard
- Pin 9V
- Dây cột (dây rút) (hoặc dây xu)
- Dây nối Jumpers
- Một camera có tốc độ chụp nhanh để có thể ghi lại hình ảnh (để các bạn có thể khoe với bạn bè)
2. Nối dây
Bước 1: Đặt các Arduino và breadboard quay lưng vào nhau, sau đó buộc chúng lại với nhau.
Bước 2: Đặt các dây nối giữa các Arduino và breadboard theo thứ tự hiển thị trong hình ảnh.
Bước 3 (tùy chọn): Các bạn có thể buộc pin 9V vào Arduino luôn để cấp nguồn thay vì dùng cáp USB kết nối với máy tính xách tay của bạn.
3. Mã lập trình
Đoạn code được đính kèm trong link này, các bạn download về nghen:
https://drive.google.com/file/d/0B8fHiHDek0bNOWY2bUhtMEE1WE0/view?usp=sharing
Lưu ý:
#define msgLength 11; ///thay đổi độ dài đoạn chuỗi String msgBody = "Ahmad Saeed"; ///thay đổi chuỗi nhập vào
4. Cách đoạn mã thực hiện
Ý tưởng chính của mã này là để phân chia đầu vào bất kỳ văn bản nhập vào, sau đó chia cho mỗi nhân vật thành các cột, sau đó hiển thị các cột trên một mảng cột LED với một khoảng thời gian ngắn hiển thị tách mỗi cột. Giả sử rằng bạn đang hiển thị chữ "S" trên một 5x7 LED Matrix. Bạn có thể mô tả trạng thái của các đèn LED ở mỗi cột (từ trên xuống) trong hệ nhị phân như thế này:
Cột 1:[ Row1: LOW Row2: HIGH Row3: HIGH Row4: LOW Row5: LOW Row6: HIGH Row7: LOW ]
rút ngắn lại là: Cột 1: LOW - HIGH - HIGH - LOW - LOW - HIGH - LOW hay 0 1 1 0 0 1 0
và cho phần còn lại của cột nó sẽ là như thế này:
Cột 1: 0 1 1 0 0 1 0
Cột 2: 1 0 0 1 0 0 1
Cột 3: 1 0 0 1 0 0 1
Cột 4: 1 0 0 1 0 0 1
Cột 5: 0 1 0 0 1 1 0
Trên 7 đèn LED, mã sẽ hiển thị Cột 1 khoảng 8 mili giây, sau đó -- Cột 2, và cứ tiếp tục như vậy.
Cảm ơn các bạn đã quan tâm đến bài viết. Chúc các bạn làm thành công. Hãy đóng góp cho mình dưới bài viết nhé.
Simple Arduino POV Wand by ahmadsaeed
www.instructables.com
Cao Minh Gia Huy dịch