Mục lục:

Digilog_Bike POV Display: 14 bước
Digilog_Bike POV Display: 14 bước

Video: Digilog_Bike POV Display: 14 bước

Video: Digilog_Bike POV Display: 14 bước
Video: Persistence of Vision Display using Microchip PIC 18F2550 Not Arduino 2024, Tháng bảy
Anonim
Image
Image

Digilog

Kỹ thuật số + Tương tự

Kỹ thuật số gặp tương tự

POV

Sự bền bỉ của thị giác

Còn được gọi là hiển thị dư ảnh, nếu bị lắc ở tốc độ cao, dư ảnh vẫn còn.

Mọi người nghĩ rằng họ đang xem video khi họ xem TV. Nhưng trên thực tế, anh ta đang xem vài bức tranh liên tiếp. Điều này bị nhầm với một hình ảnh vì ảnh hưởng của dư ảnh còn lại trên võng mạc của chúng ta khi xem các hình ảnh liên tiếp. Loại ảo giác này được gọi là POV.

Bước 1: Khái niệm ý tưởng

Ý tưởng Khái niệm
Ý tưởng Khái niệm

POV được thực hiện bằng cách gắn dây đeo đèn LED vào bánh xe đạp.

Bước 2: Danh sách vật liệu

Danh sách vật liệu
Danh sách vật liệu
Danh sách vật liệu
Danh sách vật liệu

Máy tính & I / O

1. Arduino Mega 2560 [arduino] x3

2. Mô-đun cảm biến Hall V2 [YwRobot] x3

3. WS2812-5050 Neopixel linh hoạt [Adafruit] x3

4. Từ tính (đường kính 15mm, dày 50mm) x3

5. Arduino Mega Case x3

Đường dây điện

5. Pin Lithium 5000mAh / 3.7V [TheHan] x3

6. Bộ điều chỉnh AVR 5V & mô-đun sạc & PCM: JBATT-U5-LC [Jcnet] x3

7. Bộ dây 4Jumper 65PCS / BỘ [OR0012] x3

Bước 3: Công cụ

Công cụ
Công cụ

Không cần quá nhiều công cụ tuy nhiên bạn sẽ cần:

1. Máy hàn

2. Một bàn ủi hàn

3. Súng bắn keo

4. Kềm

Bước 4: Làm khung

Image
Image
Làm khung
Làm khung

Cắt xe đạp và gắn đế

Máy mài được sử dụng để cắt bánh xe đạp ra khỏi xe đạp và hàn các tấm thép để cố định bánh xe.

Bước 5: Phác thảo các hình ảnh và khái niệm cuối cùng

Phác thảo các hình ảnh và khái niệm cuối cùng
Phác thảo các hình ảnh và khái niệm cuối cùng
Phác thảo các hình ảnh và khái niệm cuối cùng
Phác thảo các hình ảnh và khái niệm cuối cùng
Phác thảo các hình ảnh và khái niệm cuối cùng
Phác thảo các hình ảnh và khái niệm cuối cùng

Chúng tôi đã chọn một con rồng làm hình ảnh cuối cùng. Bởi vì làn sóng của con rồng dường như được thể hiện tốt nhất bằng hiệu ứng dư ảnh.

Bước 6: Cắt hình ảnh chuyển động

Cắt hình ảnh chuyển động
Cắt hình ảnh chuyển động
Cắt hình ảnh chuyển động
Cắt hình ảnh chuyển động

Chia hình ảnh thành ba phần sẽ phù hợp với mỗi chiếc xe đạp và chia tổng số 12 hình ảnh theo màu sắc và chuyển động.

Bước 7: Chuẩn bị phần mềm

Chuẩn bị phần mềm
Chuẩn bị phần mềm
Chuẩn bị phần mềm
Chuẩn bị phần mềm

Phần phụ 1. Cài đặt Arduino

Tải xuống Arduino:

(Cài đặt để phù hợp với phiên bản hệ điều hành và hệ thống của bạn.)

-

Phần phụ 2. Cài đặt thư viện

* (Nếu bạn muốn cài đặt thông qua Github, vui lòng truy cập liên kết ở trên Thư viện Github Arduino:

1. Chạy chương trình Arduino

2. Cho phép liên kết Menu trên cùng - phác thảo - bao gồm thư viện - thêm thư viện. Zip

3. Bạn nên chọn tệp. Zip đã cài đặt thư viện github4

* (Nếu bạn muốn sử dụng các dịch vụ chương trình Arduino)

1. Chạy các chương trình Arduino

2. Cho phép liên kết Trình đơn trên cùng - bản phác thảo - bao gồm thư viện - thư viện quản lý - tìm kiếm ‘Adafruit neopixel’ - bạn có thể xem ‘Adafruit Neopixel của Adafruit’

3. Cài đặt và cập nhật thư viện

-

Phần phụ 3. Cài đặt chương trình chuyển đổi

1. Cài đặt Chương trình Vòng tròn Xoay (R. C. P):

2. Bạn cần đọc tệp README

Bước 8: Tạo nguồn điện cho phần cứng

Tạo nguồn cung cấp điện cho phần cứng
Tạo nguồn cung cấp điện cho phần cứng
Tạo nguồn cung cấp điện cho phần cứng
Tạo nguồn cung cấp điện cho phần cứng
Tạo nguồn cung cấp điện cho phần cứng
Tạo nguồn cung cấp điện cho phần cứng

* Đây là cách cung cấp điện áp 5V Arduino qua pin. Vui lòng làm theo các bước dưới đây.

1. Kết nối pin Lithium và mô-đun sạc JBATT. (Để tham khảo, mô-đun JBATT có công tắc nguồn tích hợp.)

2. Kết nối đầu ra của JBATT với đầu cuối Vin của Arduino và thiết bị đầu cuối Đất.

3. Kết nối cổng Micro 5pin usb với cổng sạc để kiểm tra xem sản phẩm đã hoạt động bình thường chưa.

4. Tiếp theo, chuyển công tắc tích hợp sang BẬT.

5. Nếu đèn LED màu đỏ sáng lên và đèn LED màu xanh lá cây sáng lên trong Arduino, cấu hình giai đoạn nguồn sản phẩm đã hoàn tất bình thường.

Bước 9: Tạo I / O phần cứng & Kiểm tra OUTPUT (NeoPixel Working)

Tạo I / O phần cứng & Kiểm tra OUTPUT (NeoPixel Working)
Tạo I / O phần cứng & Kiểm tra OUTPUT (NeoPixel Working)
Tạo I / O phần cứng & Kiểm tra OUTPUT (NeoPixel Working)
Tạo I / O phần cứng & Kiểm tra OUTPUT (NeoPixel Working)
Tạo I / O phần cứng & Kiểm tra OUTPUT (NeoPixel Working)
Tạo I / O phần cứng & Kiểm tra OUTPUT (NeoPixel Working)

* Phần này bao gồm cảm biến và giai đoạn đầu ra

1. Kết nối các cảm biến Arduino và Hall. Chân dữ liệu kết nối với chân 2 của Arduino.

2. Khi Arduino được cấp nguồn và nam châm tiếp xúc gần với cảm biến Hall, đèn led màu đỏ sẽ sáng.

3. Kết nối Arduino và Neopixel. Chỉ có 30 Neopixel được sử dụng.

4. Kết nối chân dữ liệu với chân 6 của Arduino.

5. Kết nối Arduino và cáp tải xuống với cổng usb của máy tính và chạy Arduino trên máy tính của bạn.

6. Chọn Tool - board - “Arduino / Genuino Mega hoặc Mega 2560” từ thanh menu trên cùng của chương trình Arduino.

7. Kiểm tra xem có danh sách các sản phẩm có thể kết nối trực tiếp với cổng hay không. Nếu nó không được chọn, hãy nhấp để chọn nó.

8. Dán mã bên dưới và nhấp vào Tải lên ở trên cùng bên trái. (Sau đó, tất cả các quá trình tải lên chương trình đều thực hiện theo các bước 5-8.)

9. Cấu hình hoàn tất khi tất cả 30 pixel neoled được bật.

# 1. bao gồm tệp tiêu đề và tiền xử lý

Đầu tiên chúng ta cần đưa thư viện Adafruit_NeoPixel có thể hoạt động Neopixels.

Thư viện có thể được sử dụng bằng cách khai báo các đối tượng.

Lớp Adafruit_NeoPixel có thể nhập công khai 3 tham số.

Tham số đầu tiên là số lượng đèn LED.

tham số giây là số pin được kết nối với đầu vào kỹ thuật số Neopixel.

Tham số thứ ba là các tùy chọn đầu vào theo đặc tính của sản phẩm. sản phẩm WS2812b ba màu sử dụng đầu vào 'NEO_GRB'

#bao gồm

#define PIN 6 Adafruit_NeoPixel dải = Adafruit_Neopixel (30, PIN, NEO_GRB + NEO_KHZ800);

# 2. cài đặt

Trong phần thiết lập, khởi tạo đối tượng và chuẩn bị để sử dụng.

'Adafruit_Neopixle_Object.begin ()' đặt tất cả các đèn LED để tắt.

'Adafruit_Neopixle_Object.show ()' xuất ra với độ sáng được đặt trong đèn LED.

void setup () {

dải.begin (); dải.show (); }

# 3. vòng lặp chính

Hành động của vòng lặp chính sử dụng vòng lặp for để xuất ra tuần tự (0,1 giây) các đèn LED màu trắng

void loop () {

for (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); dải.show (); chậm trễ (100); }}

Bước 10: Lắp ráp và gắn vào bánh xe

Lắp ráp và gắn vào bánh xe
Lắp ráp và gắn vào bánh xe
Lắp ráp và gắn vào bánh xe
Lắp ráp và gắn vào bánh xe

1. Kết nối Neopixels. (Chú ý kiểm tra số pin)

2. Kết nối Cảm biến Hall. (Tham khảo Bước 9)

3. Gắn khung vào Arduino giữa các xe đạp. (Gắn hộp Arduino song song với khung xe đạp).

4. Chèn Arduino được kết nối với Neopixel. (Hãy cẩn thận vì súng bắn keo đang nóng).

5. Chèn cảm biến Hall đã kết nối vào Arduino, (Giữ chặt dây cáp để cảm biến Hall không bị rơi ra).

6. Hàn để kết nối pin. (Hãy cẩn thận khi bạn hàn).

7. Cố định nó bằng súng bắn keo. (Gắn mô-đun sạc vào pin để đảm bảo không gian).

8. Cắm từng dòng trước khi kết nối với Arduino, 9. Cắm theo từng số pin. (Kết nối các đường nhảy cho mô-đun sạc mà không làm nhầm lẫn chúng).

10. Kết thúc bằng súng bắn keo một lần, (Hãy cẩn thận để không bị rơi).

Bước 11: Kiểm tra INPUT (Dữ liệu cảm biến HALL)

Kiểm tra INPUT (Dữ liệu cảm biến HALL)
Kiểm tra INPUT (Dữ liệu cảm biến HALL)
Kiểm tra INPUT (Dữ liệu cảm biến HALL)
Kiểm tra INPUT (Dữ liệu cảm biến HALL)
Kiểm tra INPUT (Dữ liệu cảm biến HALL)
Kiểm tra INPUT (Dữ liệu cảm biến HALL)

* Kiểm tra mã phần mềm để xem cảm biến có hoạt động không.

1. Dán và tải lên đoạn mã dưới đây.

2. Nhấp vào nút Serial Monitor ở trên cùng bên phải của Arduino.

3. Khi nam châm tiếp xúc với cảm biến Hall trong hơn 1 giây, quá trình cấu hình hoàn tất khi từ “tiếp xúc từ tính” xuất hiện trên màn hình nối tiếp.

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- # 1. Xác định số pin và thiết lập

Số pin cấu hình đầu tiên để sử dụng cảm biến Hall và đặt số pin làm cổng Chỉ đầu vào.

Đặt giao tiếp để kiểm tra dữ liệu của cảm biến Hall trên màn hình nối tiếp.

#define HALL 2

void setup () {pinMode (HALL, INPUT); Serial.begin (9600); }

# 2. vòng lặp chính

Kiểm tra dữ liệu cảm biến Hall trong khoảng thời gian 0,1 giây.

Nếu nam châm được cảm nhận và dữ liệu bị thay đổi, "tiếp điểm từ tính" được xuất ra màn hình nối tiếp.

void loop () {

if (digitalRead (HALL)) {Serial.println ("liên hệ từ tính"); } delay (100); }

Bước 12: Thuật toán mã hóa

* Tạo logic và mã hóa để điều khiển Neopixels dựa trên các giá trị cảm biến.

1. Dán và tải lên đoạn mã dưới đây.

2. Hình ảnh không được hiển thị đúng vì không có khung hình là điều bình thường. Nhưng bạn có thể thấy nó hoạt động đại khái.

3. Nhanh chóng chạm và thả cảm biến Hall và nam châm trong vòng 1 giây. Lặp lại thao tác này khoảng 10 lần.

4. Cấu hình hoàn tất khi màu sắc của Neopixels thay đổi thường xuyên.

# 1. Bao gồm các tệp tiêu đề và tiền xử lý

Đầu tiên, chúng ta phải hiểu rằng bộ nhớ của Arduino Mega không đủ lớn để chứa một tệp hình ảnh.

Do đó, tệp tiêu đề 'avr / pgmspace' được sử dụng để tận dụng không gian bộ nhớ khác nhau.

Để sử dụng Neopixels, bạn khai báo một đối tượng và cấu hình số pin I / O.

Mảng hình ảnh quá lớn để mã hóa, vì vậy hãy tải xuống và dán các tệp đính kèm.

#bao gồm

#include #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel dải = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // dán mảng vào 'image_array_1.txt' // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'

# 2. Biến toàn cục & thiết lập

Đặt một biến toàn cục.

Điều chính là đặt độ sáng, nó quyết định vòng đời của sản phẩm.

int count = 0;

kép v = 0; gấp đôi last_v = 0; bộ đếm thời gian kép = micros (); double ex_timer = micros (); double last_timer = micros (); int deg = 36; int pix = 35; int rgb = 3; double q_arr [2] = {0, 0}; int HALL_COUNT = 0; nhân đôi VELO; xử lý kép_timer = micros (); void setup () {strip.setBrightness (255); dải.begin (); dải.show (); Serial.begin (230400); }

# 3. vòng lặp chính - phần đầu ra biểu thức hình ảnh

Mã này là một câu lệnh có điều kiện về cách xuất thời gian bánh xe quay theo độ phân giải.

Bộ phận này sử dụng chu kỳ quay của bánh xe đạp một lần là thông số rất quan trọng.

Ngoài ra, điều quan trọng là phải đọc dữ liệu mảng hình ảnh từ bộ nhớ.

void loop () {

if ((count (ex_timer / 120.0) - (micros () - processing_timer))) {timer = micros (); if (VELO> 360000) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_1 [count] [1])), pgm_read_byte (& (image_1 [count] [2])), pgm_read_byte (& (image_1 [count] [0])))); } dải.show (); } else if (VELO 264000) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_2 [count] [1])), pgm_read_byte (& (image_2 [count] [2])), pgm_read_byte (& (image_2 [count] [0])))); } dải.show (); } else if (VELO 204000) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_3 [count] [1])), pgm_read_byte (& (image_3 [count] [2])), pgm_read_byte (& (image_3 [count] [0])))); } dải.show (); } else if (VELO <= 204000) {for (int i = 0 + 5; i = 120)) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, dải. Màu (0, 0, 0)); } dải.show (); }

#4. vòng lặp chính - xử lý và kiểm tra thời gian chu kỳ & cảm biến

Đây là phần quan trọng nhất của toàn bộ hệ thống.

Đầu tiên, hãy kiểm tra thời gian thực hiện toàn bộ mã và điều chỉnh thời gian đầu ra của đèn LED trên mỗi chu kỳ.

Thời gian được cảm nhận mỗi khi bánh xe quay dự đoán thời gian của chu kỳ tiếp theo.

Gia tốc có thể được ước tính bằng cách trừ thời gian chu kỳ đo được cuối cùng cho thời gian chu kỳ đo đúng giờ.

Hệ thống tính toán thời gian xử lý và gia tốc để tính toán thời gian các đèn LED bật liên tục.

xử lý_timer = micros ();

if ((digitalRead (HALL) == HIGH) && (HALL_COUNT == 1)) {VELO = v; v = micros () - last_timer; ex_timer = q_arr [0] - q_arr [1] + v; last_timer = micros (); q_arr [0] = q_arr [1]; q_arr [1] = v; đếm = 0; HALL_COUNT = 0; } else if (digitalRead (HALL) == LOW) {HALL_COUNT = 1; }}

Bước 13: Sử dụng phần mềm

Sử dụng phần mềm
Sử dụng phần mềm
Sử dụng phần mềm
Sử dụng phần mềm
Sử dụng phần mềm
Sử dụng phần mềm

* Sử dụng phần mềm để chuyển đổi hình ảnh và chèn dữ liệu rước vào mã

1. Chèn hình ảnh từ bước trên vào thư mục hình ảnh trong thư mục R. C. P đã cài đặt ở bước chuẩn bị.

- Cách đặt ảnh như sau - Đổi tên 4 ảnh động của sản phẩm số 1 theo thứ tự 1.png, 2.png, 3-p.webp

2. Chạy tệp Ver.5.exe.

3. Xác minh rằng 12 tệp pro_1_code_1.txt đến pro_3_code_4.txt được tạo trong thư mục R. C. P.

4. Nếu nó không được tạo, hãy thay đổi nội dung của config.txt dưới dạng tệp cấu hình sau.

5. Sau khi tệp được tạo, hãy sao chép toàn bộ nội dung từ tệp pro_1_code_1.txt và dán vào phần được hiển thị trong đoạn mã bên dưới.

6. Thêm nội dung pro_1_code_2.txt, pro_1_code_3.txt và pro_1_code_4.txt vào phần được đánh dấu theo thứ tự thứ 5.

7. Tham chiếu đến 5 và 6, pro_2_code…, pro_3_code hoàn thành mã theo cùng một cách.

Bước 14: Hoàn thành

Hoàn thành
Hoàn thành
Hoàn thành
Hoàn thành
Hoàn thành
Hoàn thành

Đã hoàn thành việc sản xuất POV tạo ra một hình ảnh với ba bánh xe.

Đề xuất: