Isi kandungan:

Paparan Digilog_Bike POV: 14 Langkah
Paparan Digilog_Bike POV: 14 Langkah

Video: Paparan Digilog_Bike POV: 14 Langkah

Video: Paparan Digilog_Bike POV: 14 Langkah
Video: Песенка - ЕДЕТ ТРАКТОР - Развивающие мультики для детей - Синий трактор 2024, November
Anonim
Image
Image

Digilog

Digital + Analog

Digital memenuhi analog

POV

Ketahanan Visual

Juga dikenali sebagai paparan gambar, jika digoncang pada kelajuan tinggi, gambar latar tetap ada.

Orang menganggap mereka menonton video ketika menonton TV. Tetapi sebenarnya, dia melihat beberapa gambar berturut-turut. Ini salah untuk gambar kerana kesan imejan yang tinggal di retina kami ketika melihat gambar berturut-turut. Ilusi semacam ini disebut POV.

Langkah 1: Konsep Idea

Konsep Idea
Konsep Idea

POV dilaksanakan dengan memasang tali LED pada roda basikal.

Langkah 2: Senarai Bahan

Senarai Bahan
Senarai Bahan
Senarai Bahan
Senarai Bahan

Pengkomputeran & I / O

1. Arduino Mega 2560 [arduino] x3

2. Modul sensor dewan V2 [YwRobot] x3

3. WS2812-5050 Neopixel Fleksibel [Adafruit] x3

4. Magnetik (diameter 15mm, ketebalan 50mm) x3

5. Kes Arduino Mega x3

Talian Kuasa

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

6. Pengatur AVR 5V & modul pengecasan & PCM: JBATT-U5-LC [Jcnet] x3

7. Kit wayar 4Jumper 65PCS / SET [OR0012] x3

Langkah 3: Alat

Alat
Alat

Tidak banyak alat yang diperlukan tetapi anda akan memerlukan:

1. Mesin Pematerian

2. Besi pematerian

3. Pistol gam

4. Nipper

Langkah 4: Membuat Bingkai

Image
Image
Membuat Bingkai
Membuat Bingkai

Memotong Basikal dan Memasang Pangkalan

Pengisar digunakan untuk memotong roda basikal dari basikal dan plat keluli yang dikimpal untuk menahan roda.

Langkah 5: Merangka Gambar dan Konsep Akhir

Lakarkan Imej dan Konsep Akhir
Lakarkan Imej dan Konsep Akhir
Melakarkan Imej dan Konsep Akhir
Melakarkan Imej dan Konsep Akhir
Melakarkan Imej dan Konsep Akhir
Melakarkan Imej dan Konsep Akhir

Kami memilih naga sebagai gambar terakhir. Kerana gelombang naga sepertinya paling baik ditunjukkan oleh kesan afterimage.

Langkah 6: Buat Potongan Gambar Bergerak

Buat Potongan Gambar Bergerak
Buat Potongan Gambar Bergerak
Buat Potongan Gambar Bergerak
Buat Potongan Gambar Bergerak

Bahagikan gambar menjadi tiga bahagian yang sesuai pada setiap basikal dan bahagikan jumlah 12 gambar mengikut warna dan gerakan.

Langkah 7: Sediakan Perisian

Persediaan Perisian
Persediaan Perisian
Persediaan Perisian
Persediaan Perisian

Sub bahagian 1. Pasang Arduino

Muat turun Arduino:

(Pasang agar sesuai dengan versi dan sistem OS anda.)

-

Sub bahagian 2. Pasang perpustakaan

* (Sekiranya anda ingin memasang melalui Github, sila kunjungi pautan di atas Perpustakaan Github Arduino:

1. Jalankan program Arduino

2. Benarkan pautan Menu teratas - lakaran - sertakan perpustakaan - tambah perpustakaan. Zip

3. Anda harus memilih fail. Zip yang sudah memasang pustaka github4

* (Sekiranya anda ingin menggunakan perkhidmatan program Arduino)

1. Jalankan program Arduino

2. Benarkan pautan Menu teratas - lakaran - sertakan perpustakaan - pustaka pengurusan - cari 'Adafruit neopixel' - anda dapat melihat 'Adafruit Neopixel by Adafruit'

3. Pasang dan kemas kini perpustakaan

-

Sub bahagian 3. Pasang program penukar

1. Pasang Program Putaran Putaran (R. C. P):

2. Anda perlu membaca fail README

Langkah 8: Membuat Bekalan Kuasa Perkakasan

Membuat Bekalan Kuasa Perkakasan
Membuat Bekalan Kuasa Perkakasan
Membuat Bekalan Kuasa Perkakasan
Membuat Bekalan Kuasa Perkakasan
Membuat Bekalan Kuasa Perkakasan
Membuat Bekalan Kuasa Perkakasan

* Ini adalah cara membekalkan voltan Arduino 5V melalui bateri. Sila ikuti langkah di bawah.

1. Sambungkan bateri Lithium dan modul pengecasan JBATT. (Sebagai rujukan, modul JBATT mempunyai suis kuasa terbina dalam.)

2. Sambungkan terminal output JBATT ke terminal Vin terminal Arduino dan Ground.

3. Sambungkan port usb Micro 5pin ke port pengecasan untuk memeriksa apakah produk telah berfungsi dengan baik.

4. Seterusnya, putar suis bawaan ke AKTIF.

5. Sekiranya lampu merah menyala dan lampu hijau menyala di Arduino, konfigurasi tahap kuasa produk selesai seperti biasa.

Langkah 9: Membuat I / O Perkakasan & Memeriksa OUTPUT (NeoPixel Bekerja)

Membuat I / O Perkakasan & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I / O Perkakasan & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I / O Perkakasan & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I / O Perkakasan & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I / O Perkakasan & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I / O Perkakasan & Memeriksa OUTPUT (NeoPixel Bekerja)

* Bahagian ini terdiri dari tahap sensor dan output

1. Sambungkan sensor Arduino dan Hall. Pin data menyambung ke pin Arduino 2.

2. Apabila Arduino dihidupkan dan magnet bersentuhan rapat dengan sensor Hall, lampu merah akan menyala.

3. Sambungkan Arduino dan Neopixel. Hanya 30 Neopixel yang digunakan.

4. Sambungkan pin data dengan pin Arduino 6.

5. Sambungkan Arduino dan muat turun kabel ke port usb komputer anda dan jalankan Arduino di komputer anda.

6. Pilih Alat - papan - "Arduino / Genuino Mega atau Mega 2560" dari bar menu teratas program Arduino.

7. Periksa sama ada terdapat senarai produk yang boleh dihubungkan terus ke port. Sekiranya tidak dicentang, klik untuk memilihnya.

8. Tampal kod di bawah dan klik Muat naik di kiri atas. (Selepas itu, semua muat naik program mengikuti langkah 5-8.)

9. Konfigurasi selesai apabila semua 30 piksel neol dihidupkan.

# 1. termasuk fail header dan preprocessing

Pertama kita perlu membawa perpustakaan Adafruit_NeoPixel yang mampu bertindak Neopixels.

Perpustakaan dapat digunakan dengan menyatakan objek.

Kelas Adafruit_NeoPixel dapat memasukkan 3 parameter di khalayak ramai.

Parameter pertama ialah bilangan LED.

parameter saat adalah nombor pin yang disambungkan ke input digital Neopixel.

Parameter ketiga adalah memasukkan pilihan mengikut ciri produk. produk WS2812b tiga warna menggunakan input 'NEO_GRB'

#sertakan

#define PIN 6 Adafruit_NeoPixel strip = Adafruit_Neopixel (30, PIN, NEO_GRB + NEO_KHZ800);

# 2. persediaan

Pada bahagian persediaan, inisialisasi objek dan sediakan untuk digunakan.

'Adafruit_Neopixle_Object.begin ()' menetapkan semua LED untuk dimatikan.

Output 'Adafruit_Neopixle_Object.show ()' dengan kecerahan yang ditetapkan dalam LED.

batal persediaan () {

jalur.begin (); strip.show (); }

# 3. gelung utama

Tindakan gelung utama menggunakan gelung untuk mengeluarkan output secara berurutan (0.1 saat) LED berwarna putih

gelung kosong () {

untuk (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); kelewatan (100); }}

Langkah 10: Pemasangan dan Pasangkan Roda

Berkumpul dan Lekatkan pada Roda
Berkumpul dan Lekatkan pada Roda
Berkumpul dan Lekatkan pada Roda
Berkumpul dan Lekatkan pada Roda

1. Sambungkan Neopixels. (Perhatikan cek nombor pin)

2. Sambungkan Hall Sensor. (Rujuk Langkah.9)

3. Pasang bingkai ke Arduino di antara basikal. (Pasang casing Arduino selari dengan bingkai basikal).

4. Masukkan Arduino yang disambungkan ke Neopixel. (Hati-hati kerana gam gamnya panas).

5. Masukkan sensor Hall yang disambungkan ke Arduino, (Kunci tali kabel supaya sensor Hall tidak jatuh).

6. Pateri untuk menyambungkan bateri. (Berhati-hati semasa anda memateri).

7. Betulkan dengan gam gam. (Pasang modul pengecasan pada bateri untuk mengamankan ruang).

8. Pasangkan setiap baris sebelum menyambung ke Arduino, 9. Pasangkan mengikut setiap nombor pin. (Sambungkan garis lompat untuk modul pengisian tanpa membingungkannya).

10. Selesaikan dengan gam gam sekali, (Hati-hati jangan jatuh).

Langkah 11: Memeriksa INPUT (HALL Data Sensor)

Memeriksa INPUT (HALL Data Sensor)
Memeriksa INPUT (HALL Data Sensor)
Memeriksa INPUT (Data Sensor HALL)
Memeriksa INPUT (Data Sensor HALL)
Memeriksa INPUT (HALL Data Sensor)
Memeriksa INPUT (HALL Data Sensor)

* Periksa kod perisian untuk melihat apakah sensor berfungsi.

1. Tampal dan muat naik kod di bawah.

2. Klik butang Serial Monitor di kanan atas Arduino.

3. Apabila magnet bersentuhan dengan sensor Hall selama lebih dari 1 saat, konfigurasi selesai apabila kata "contact magnet" muncul di monitor bersiri.

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- # 1. Tentukan nombor pin dan persediaan

Nombor pin konfigurasi pertama yang menggunakan sensor Hall dan menetapkan nombor pin sebagai port Input sahaja.

Tetapkan komunikasi untuk memeriksa data sensor Hall pada monitor bersiri.

#tentukan HALL 2

batal persediaan () {pinMode (HALL, INPUT); Serial.begin (9600); }

# 2. gelung utama

Periksa data sensor Hall pada selang 0.1 saat.

Sekiranya magnet dirasakan dan data diubah, "magnet kontak" akan dikeluarkan ke monitor bersiri.

gelung kosong () {

jika (digitalRead (HALL)) {Serial.println ("contact magnetic"); } kelewatan (100); }

Langkah 12: Algoritma Pengekodan

* Buat logik dan pengekodan untuk mengawal Neopixel berdasarkan nilai sensor.

1. Tampal dan muat naik kod di bawah.

2. Adalah normal untuk gambar tidak ditampilkan dengan betul kerana tidak ada bingkai yang dihasilkan. Tetapi anda dapat melihatnya berfungsi dengan kasar.

3. Sentuh dan lepaskan sensor Hall dan magnet dengan cepat dalam masa 1 saat. Ulangi operasi ini kira-kira 10 kali.

4. Konfigurasi selesai apabila warna Neopixels berubah secara berkala.

# 1. Termasuk fail header dan preprocessing

Pertama, kita mesti memahami bahawa memori Arduino Mega tidak cukup besar untuk menyimpan fail gambar.

Oleh itu, fail tajuk 'avr / pgmspace' digunakan untuk menggunakan ruang memori yang berbeza.

Untuk menggunakan Neopixels, anda menyatakan objek dan konfigurasi nombor pin I / O.

Susunan gambar terlalu besar untuk pengekodan, jadi muat turun dan tampal fail yang dilampirkan.

#sertakan

#include #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // tampal susunan dalam 'image_array_1.txt' // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'

# 2. Pemboleh ubah & persediaan global

Tetapkan pemboleh ubah global.

Perkara utama adalah menetapkan kecerahan, itu menentukan kitaran hidup produk.

kiraan int = 0;

berganda v = 0; dua kali terakhir_v = 0; pemasa dua kali = mikro (); dua kali ex_timer = mikro (); double_ Last_timer = mikro (); int deg = 36; int pix = 35; int rgb = 3; double q_arr [2] = {0, 0}; int HALL_COUNT = 0; berganda VELO; double processing_timer = mikro (); sia-sia persediaan () {strip.setBrightness (255); jalur.begin (); strip.show (); Serial.begin (230400); }

# 3. gelung utama - bahagian output ekspresi gambar

Kod ini adalah pernyataan bersyarat mengenai bagaimana mengeluarkan masa roda berputar dengan resolusi.

Bahagian ini menggunakan kitaran memutar roda basikal sekali sebagai parameter yang sangat penting.

Juga, penting untuk membaca data array gambar dari memori.

gelung kosong () {

jika ((kiraan (ex_timer / 120.0) - (mikrok () - pemprosesan_timer))) {pemasa = mikro (); jika (VELO> 360000) {untuk (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 [kiraan] [2])), pgm_read_byte (& (gambar_1 [kiraan] [0]))))); } strip.show (); } lain jika (VELO 264000) {untuk (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 [kiraan] [2])), pgm_read_byte (& (gambar_2 [kiraan] [0]))))); } strip.show (); } lain jika (VELO 204000) {untuk (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])))); } strip.show (); } lain jika (VELO <= 204000) {untuk (int i = 0 + 5; i = 120)) {untuk (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Warna (0, 0, 0)); } strip.show (); }

# 4. gelung utama - pemprosesan dan pemeriksaan & pengesanan masa kitaran

Ini adalah bahagian terpenting dari keseluruhan sistem.

Pertama, periksa masa yang diambil untuk melaksanakan keseluruhan kod dan sesuaikan masa output LED setiap kitaran.

Masa yang dirasakan setiap kali roda berputar meramalkan masa kitaran seterusnya.

Pecutan dapat diperkirakan dengan mengurangkan masa kitaran yang diukur terakhir dari waktu kitaran yang diukur tepat pada masanya.

Sistem mengira masa pemprosesan dan pecutan untuk mengira berapa lama LED menyala berterusan.

memproses_timer = mikro ();

jika ((digitalRead (HALL) == TINGGI) && (HALL_COUNT == 1)) {VELO = v; v = mikro () - last_timer; ex_timer = q_arr [0] - q_arr [1] + v; last_timer = mikro (); q_arr [0] = q_arr [1]; q_arr [1] = v; kiraan = 0; HALL_COUNT = 0; } lain jika (digitalRead (HALL) == RENDAH) {HALL_COUNT = 1; }}

Langkah 13: Menggunakan Perisian

Menggunakan Perisian
Menggunakan Perisian
Menggunakan Perisian
Menggunakan Perisian
Menggunakan Perisian
Menggunakan Perisian

* Gunakan perisian untuk mengubah gambar dan memasukkan data prosesi ke dalam kod

1. Masukkan gambar dari langkah di atas ke dalam folder gambar di folder R. C. P yang dipasang pada langkah penyediaan.

- Cara meletakkan gambar adalah seperti berikut.- Ganti nama 4 gambar animasi produk # 1 mengikut urutan 1.png, 2.png, 3.png, dan 4.png.- Ganti nama 4 gambar animasi produk # 2 mengikut urutan 5.png, 6.png, 7.png, 8.png.- Namakan semula 4 gambar animasi Produk # 3 mengikut 9.png, 10.png, 11.png, 12.png.

2. Jalankan fail Ver.5.exe.

3. Sahkan bahawa 12 fail pro_1_code_1.txt hingga pro_3_code_4.txt dibuat dalam folder R. C. P.

4. Jika tidak dibuat, ubah isi config.txt sebagai fail konfigurasi berikut.

5. Setelah fail dibuat, salin keseluruhan kandungan dari file pro_1_code_1.txt dan tampalkannya ke bahagian yang ditunjukkan dalam kod di bawah.

6. Tambahkan kandungan pro_1_code_2.txt, pro_1_code_3.txt, dan pro_1_code_4.txt ke bahagian yang ditandakan dalam urutan ke-5.

7. Merujuk kepada 5 dan 6, pro_2_code…, pro_3_code melengkapkan kod dengan cara yang sama.

Langkah 14: Selesaikan

Selesai
Selesai
Selesai
Selesai
Selesai
Selesai

Selesai penghasilan POV yang menghasilkan satu gambar dengan tiga roda.

Disyorkan: