POV - Đánh lừa thị giác

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ó:

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 Row2HIGH Row3HIGH Row4: LOW Row5: LOW Row6HIGH 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 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 

www.instructables.com

Cao Minh Gia Huy dịch

Những hình ảnh về dự án: 
lên
28 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 
Chuyên mục: 
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ả

Giới thiệu Arduino Mega2560

Chào các bạn, chắc hẳn các bạn đã quá quen thuộc với Arduino Uno R3 rồi. Hôm nay bài viết này sẽ giới thiệu cho các bạn một loại Arduino mới có ứng dụng nhiều hơn và được sử dụng rộng rãi hơn: Arduino Mega2560.

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

Làm đồng hồ bằng Arduino và động cơ một chiều

Chào các bạn, mình đã cố gắng thử làm đồng hồ bằng arduino với một động cơ nhưng nó không khả thi lắm do cần ít nhất 2 cây kim chỉ thời gian. Do đó mình suy nghĩ theo một hướng khác. Trong chiếc đồng hồ này, khoảng cách giữa 2 con số chỉ giờ sẽ được chia thành 6 vạch thay vì 5, mỗi vạch sẽ thể hiện tương ứng với 10 phút. Ví dụ: Nếu cây kim ở vị trí sau số 12 và chỉ ngay vạch thứ 2 thì thời gian lúc đó là 12:20. Làm chiếc đồng hồ này và phần lập trình khá đơn giản.

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