Daftar Isi:

Tampilan POV Digilog_Bike: 14 Langkah
Tampilan POV Digilog_Bike: 14 Langkah

Video: Tampilan POV Digilog_Bike: 14 Langkah

Video: Tampilan POV Digilog_Bike: 14 Langkah
Video: как сделать простой, Arduino POV отображать ТЕКСТ, ЧАСЫ, utsource 2024, November
Anonim
Image
Image

Digilog

Digital + Analog

Digital bertemu analog

POV

Kegigihan Visual

Juga dikenal sebagai tampilan afterimage, jika diguncang dengan kecepatan tinggi, afterimage tetap ada.

Orang-orang mengira mereka sedang menonton video ketika mereka menonton TV. Namun pada kenyataannya, dia melihat beberapa gambar berturut-turut. Ini disalahartikan sebagai gambar karena efek bayangan yang tersisa di retina kita saat melihat gambar yang berurutan. Ilusi semacam ini disebut POV.

Langkah 1: Konsep Ide

Konsep Ide
Konsep Ide

POV diimplementasikan dengan menempelkan tali LED ke roda sepeda.

Langkah 2: Daftar Bahan

Daftar Bahan
Daftar Bahan
Daftar Bahan
Daftar Bahan

Komputasi & I/O

1. Arduino Mega 2560 [arduino] x3

2. Modul sensor hall V2 [YwRobot] x3

3. WS2812-5050 Neopixel Fleksibel [Adafruit] x3

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

5. Arduino Mega Case x3

Saluran Listrik

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

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

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

Langkah 3: Alat

Peralatan
Peralatan

Tidak terlalu banyak alat yang dibutuhkan namun Anda akan membutuhkan:

1. Mesin Solder

2. Besi solder

3. Pistol lem

4. Penjepit

Langkah 4: Membuat Bingkai

Image
Image
Membuat Bingkai
Membuat Bingkai

Memotong Sepeda dan Memasang Basis

Penggiling digunakan untuk memotong roda sepeda dari sepeda dan mengelas pelat baja untuk mengamankan roda.

Langkah 5: Membuat Sketsa Gambar dan Konsep Akhir

Membuat Sketsa Gambar dan Konsep Akhir
Membuat Sketsa Gambar dan Konsep Akhir
Membuat Sketsa Gambar dan Konsep Akhir
Membuat Sketsa Gambar dan Konsep Akhir
Membuat Sketsa Gambar dan Konsep Akhir
Membuat Sketsa Gambar dan Konsep Akhir

Kami memilih naga sebagai gambar akhir. Karena gelombang naga tampaknya paling baik diwakili oleh efek afterimage.

Langkah 6: Buat Potongan Gambar Bergerak

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

Bagilah gambar menjadi tiga bagian yang sesuai dengan masing-masing sepeda dan bagi total 12 gambar berdasarkan warna dan gerakan.

Langkah 7: Persiapan Perangkat Lunak

Persiapan Perangkat Lunak
Persiapan Perangkat Lunak
Persiapan Perangkat Lunak
Persiapan Perangkat Lunak

Sub bagian 1. Instal Arduino

Unduh Arduino:

(Instal agar sesuai dengan versi dan sistem OS Anda.)

-

Sub bagian 2. Instal perpustakaan

*(Jika Anda ingin menginstal melalui Github, silakan kunjungi tautan di atas Github Arduino Library:

1. Jalankan program Arduino

2. Izinkan tautan Menu atas – sketsa – sertakan perpustakaan – tambahkan. Zip library

3. Anda harus memilih file. Zip yang sudah diinstal github library4

*(Jika Anda ingin menggunakan layanan program Arduino)

1. Jalankan program Arduino

2. Izinkan tautan Menu atas – sketsa – sertakan perpustakaan – perpustakaan manajemen – cari ‘Adafruit neopixel’ – Anda dapat melihat ‘Adafruit Neopixel oleh Adafruit’

3. Instal dan perbarui perpustakaan

-

Sub bagian 3. Instal program konverter

1. Instal Program Rotation Circle (R. C. P):

2. Anda perlu membaca file README

Langkah 8: Membuat Catu Daya Perangkat Keras

Membuat Catu Daya Perangkat Keras
Membuat Catu Daya Perangkat Keras
Membuat Catu Daya Perangkat Keras
Membuat Catu Daya Perangkat Keras
Membuat Catu Daya Perangkat Keras
Membuat Catu Daya Perangkat Keras

*Begini cara mensuplai tegangan Arduino 5V melalui baterai. Silakan ikuti langkah-langkah di bawah ini.

1. Hubungkan baterai Lithium dan modul pengisian JBATT. (Untuk referensi, modul JBATT memiliki sakelar daya bawaan.)

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

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

4. Selanjutnya, putar sakelar internal ke ON.

5. Jika led merah menyala dan led hijau menyala di Arduino, konfigurasi tahap daya produk selesai secara normal.

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

Membuat I/O Perangkat Keras & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I/O Perangkat Keras & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I/O Perangkat Keras & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I/O Perangkat Keras & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I/O Perangkat Keras & Memeriksa OUTPUT (NeoPixel Bekerja)
Membuat I/O Perangkat Keras & Memeriksa OUTPUT (NeoPixel Bekerja)

*Bagian ini terdiri dari tahap sensor dan keluaran

1. Hubungkan sensor Arduino dan Hall. Pin data terhubung ke pin Arduino 2.

2. Ketika Arduino dinyalakan dan magnet bersentuhan dekat dengan sensor Hall, led merah akan menyala.

3. Hubungkan Arduino dan Neopixel. Hanya 30 Neopiksel yang digunakan.

4. Hubungkan pin data dengan pin Arduino 6.

5. Hubungkan Arduino dan unduh kabel ke port usb komputer Anda dan jalankan Arduino di komputer Anda.

6. Pilih Alat – papan – “Arduino / Genuino Mega atau Mega 2560” dari bilah menu atas program Arduino.

7. Periksa apakah ada daftar produk yang dapat langsung dihubungkan ke port. Jika tidak dicentang, klik untuk memilihnya.

8. Tempel kode di bawah ini dan klik Unggah di kiri atas. (Setelah itu, semua unggahan program mengikuti langkah 5-8.)

9. Konfigurasi selesai ketika semua 30 piksel neoled menyala.

#1. termasuk file header dan preprocessing

Pertama kita perlu membawa perpustakaan Adafruit_NeoPixel yang mampu bertindak Neopixels.

Library dapat digunakan dengan mendeklarasikan objek.

Kelas Adafruit_NeoPixel dapat memasukkan 3 parameter di depan umum.

Parameter pertama adalah jumlah LED.

parameter detik adalah nomor pin yang terhubung ke input digital Neopixel.

Parameter ketiga adalah memasukkan opsi sesuai dengan karakteristik produk. produk WS2812b tiga warna menggunakan input 'NEO_GRB'

#termasuk

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

#2. mempersiapkan

Di bagian penyiapan, inisialisasi objek dan siapkan untuk digunakan.

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

Keluaran 'Adafruit_Neopixle_Object.show()' dengan kecerahan yang diatur dalam LED.

batalkan pengaturan(){

strip.mulai(); strip.tampilkan(); }

#3. lingkaran utama

Tindakan loop utama menggunakan loop for untuk secara berurutan mengeluarkan (0,1 detik) LED berwarna putih

lingkaran kosong(){

for(uint16_t i=0;i<strip.numPixels();i++){ strip.setPixelColor(i, 255, 255, 255); strip.tampilkan(); penundaan(100); } }

Langkah 10: Merakit dan Melampirkan ke Roda

Merakit dan Memasang ke Roda
Merakit dan Memasang ke Roda
Merakit dan Memasang ke Roda
Merakit dan Memasang ke Roda

1. Hubungkan Neopiksel. (Perhatikan cek nomor pin)

2. Hubungkan Sensor Hall. (Lihat Langkah.9)

3. Pasang bingkai ke Arduino di antara sepeda. (Pasang kasing Arduino sejajar dengan rangka sepeda).

4. Masukkan Arduino yang terhubung ke Neopixel. (Hati-hati karena lem tembaknya panas).

5. Masukkan sensor Hall yang terhubung ke Arduino, (Kencangkan pengikat kabel agar sensor Hall tidak jatuh).

6. Solder untuk menghubungkan baterai. (Hati-hati saat Anda menyolder).

7. Perbaiki dengan lem. (Pasang modul pengisian daya pada baterai untuk mengamankan ruang).

8. Colokkan setiap baris sebelum terhubung ke Arduino, 9. Colokkan sesuai nomor pin masing-masing. (Hubungkan garis lompat untuk modul pengisian daya tanpa membingungkannya).

10. Selesaikan dengan lem tembak sekali, (Harap hati-hati jangan sampai jatuh).

Langkah 11: Memeriksa INPUT (Data Sensor HALL)

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

*Periksa kode perangkat lunak untuk melihat apakah sensor berfungsi.

1. Tempel dan unggah kode di bawah ini.

2. Klik tombol Serial Monitor di kanan atas Arduino.

3. Ketika magnet bersentuhan dengan sensor Hall selama lebih dari 1 detik, konfigurasi selesai ketika kata "kontak magnet" muncul di monitor serial.

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- #1. Tentukan nomor pin dan pengaturan

Nomor pin konfigurasi pertama yang menggunakan sensor Hall dan mengatur nomor pin sebagai port Input-only.

Atur komunikasi untuk memeriksa data sensor Hall pada monitor serial.

#tentukan Aula 2

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

#2. lingkaran utama

Periksa data sensor Hall pada interval 0,1 detik.

Jika magnet dirasakan dan data diubah, "magnet kontak" dikeluarkan ke monitor serial.

lingkaran kosong(){

if(digitalRead(HALL)){ Serial.println("kontak magnet"); } penundaan(100); }

Langkah 12: Algoritma Pengkodean

*Buat logika dan pengkodean untuk mengontrol Neopiksel berdasarkan nilai sensor.

1. Tempel dan unggah kode di bawah ini.

2. Adalah normal jika gambar tidak ditampilkan dengan benar karena tidak ada bingkai yang dihasilkan. Tapi Anda bisa melihatnya bekerja secara kasar.

3. Sentuh dan lepaskan sensor Hall dan magnet dengan cepat dalam 1 detik. Ulangi operasi ini sekitar 10 kali.

4. Konfigurasi selesai ketika warna Neopiksel berubah secara teratur.

#1. Termasuk file header dan preprocessing

Pertama, kita harus memahami bahwa memori Arduino Mega tidak cukup besar untuk menampung file gambar.

Oleh karena itu, file header 'avr/pgmspace' digunakan untuk memanfaatkan ruang memori yang berbeda.

Untuk menggunakan Neopiksel, Anda mendeklarasikan objek dan mengonfigurasi nomor pin I/O.

Array gambar terlalu besar untuk dikodekan, jadi unduh dan tempel file terlampir.

#termasuk

#sertakan #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // rekatkan array di 'image_array_1.txt' // " 'image_array_2.txt' // " 'image_array_3.txt' // " 'image_array_4.txt'

#2. Variabel & pengaturan global

Tetapkan variabel global.

Hal utama adalah mengatur kecerahan, itu menentukan siklus hidup produk.

int jumlah = 0;

ganda v = 0; ganda last_v = 0; penghitung waktu ganda = mikro(); double ex_timer = mikro(); double last_timer = mikro(); int derajat = 36; int piksel = 35; int rgb = 3; ganda q_arr[2] = {0, 0}; int HALL_COUNT = 0; VELO ganda; pemrosesan_timer ganda = mikro(); void setup(){ strip.setBrightness(255); strip.mulai(); strip.tampilkan(); Serial.begin(230400); }

#3. loop utama - bagian keluaran ekspresi gambar

Kode ini adalah pernyataan bersyarat tentang cara menampilkan waktu putaran roda berdasarkan resolusi.

Bagian ini menggunakan siklus memutar roda sepeda sekali sebagai parameter yang sangat penting.

Juga, penting untuk membaca data array gambar dari memori.

lingkaran kosong() {

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])))); } strip.tampilkan(); } 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])))); } strip.tampilkan(); } 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])))); } strip.tampilkan(); } else if (VELO <= 204000) { for (int i = 0 + 5; i = 120)) { for (int i = 0 + 5; i < pix; i++) { strip.setPixelColor(i - 5, strip. Warna(0, 0, 0)); } strip.tampilkan(); }

#4. loop utama - pemrosesan dan pemeriksaan & penginderaan waktu siklus

Ini adalah bagian terpenting dari keseluruhan sistem.

Pertama, periksa waktu yang dibutuhkan untuk mengeksekusi seluruh kode dan sesuaikan waktu output LED per siklus.

Waktu yang dirasakan setiap kali roda berputar memprediksi waktu siklus berikutnya.

Percepatan dapat diperkirakan dengan mengurangkan waktu siklus terukur terakhir dari waktu siklus terukur tepat waktu.

Sistem menghitung waktu pemrosesan dan percepatan untuk menghitung berapa lama LED menyala terus menerus.

processing_timer = mikro();

if ((DigitalRead(HALL) == HIGH) && (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; menghitung = 0; HALL_COUNT = 0; } else if (digitalRead(HALL) == LOW) { HALL_COUNT = 1; } }

Langkah 13: Menggunakan Perangkat Lunak

Menggunakan Perangkat Lunak
Menggunakan Perangkat Lunak
Menggunakan Perangkat Lunak
Menggunakan Perangkat Lunak
Menggunakan Perangkat Lunak
Menggunakan Perangkat Lunak

*Gunakan perangkat lunak untuk mengubah gambar dan memasukkan data prosesi ke dalam kode

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

- Cara memasang gambar adalah sebagai berikut.- Ganti nama 4 gambar animasi produk #1 dengan urutan 1.png, 2.png, 3.png, dan 4.png.- Ganti nama 4 gambar animasi produk #2 menjadi 5.png, 6.png, 7.png, 8.png.- Ganti nama 4 gambar animasi Produk #3 menjadi 9.png, 10.png, 11.png, 12.png.

2. Jalankan file Ver.5.exe.

3. Verifikasi bahwa 12 file pro_1_code_1.txt hingga pro_3_code_4.txt dibuat di folder R. C. P.

4. Jika belum dibuat, ubah isi config.txt menjadi file konfigurasi berikut.

5. Setelah file dibuat, salin seluruh konten dari file pro_1_code_1.txt dan tempel ke bagian yang ditunjukkan pada kode di bawah ini.

6. Tambahkan konten pro_1_code_2.txt, pro_1_code_3.txt, dan pro_1_code_4.txt ke bagian yang ditandai dalam urutan ke-5.

7. Mengacu pada 5 dan 6, pro_2_code…, pro_3_code melengkapi kode dengan cara yang sama.

Langkah 14: Selesai

Menyelesaikan
Menyelesaikan
Menyelesaikan
Menyelesaikan
Menyelesaikan
Menyelesaikan

Menyelesaikan produksi POV yang menciptakan satu gambar dengan tiga roda.

Direkomendasikan: