Isi kandungan:
- Langkah 1: Motivasi dan Masalah
- Langkah 2: Mendapatkan Maklumat Bit Mentah Dari USB Basys
- Langkah 3: Menghuraikan Maklumat Usb
- Langkah 4: Memaparkan Gambar yang Dilukis Melebihi VGA dan Mengedit Apa yang Dilukis
- Langkah 5: Nikmati Penciptaan Anda
Video: Program Lukisan VGA: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Projek oleh: Adam Klein, Ian Strachan, Brandon Slater
Projek yang akan kami selesaikan adalah menyimpan, mengurai, dan menampilkan maklumat dari tetikus USB dalam bentuk program lukisan. Idea di sebalik projek ini adalah untuk memasangkan tetikus dan kabel VGA ke papan Basys di port terbina dalamnya, dan memaparkan tetikus sebagai kotak lukisan yang dapat bergerak di monitor, mengubah warna yang berbeza ketika klik kiri dan kanan terpakai. Pada dasarnya, kami akan membuat pemacu untuk menggunakan tetikus dengan papan dasar, dan menjadikan monitor sebagai pengesahan fungsi kami. Apa yang akhirnya berlaku adalah penciptaan program menggambar dengan papan dasar sebagai sistem input, dan sistem menangkap data separa berfungsi untuk tetikus.
Dalam arahan ini, kami akan menguraikan langkah-langkah dari input tetikus ke output vga.
Langkah 1: Motivasi dan Masalah
Motivasi:
Motivasi utama projek kami adalah untuk membuat pemacu tetikus untuk papan Basys3 yang akan dapat digunakan oleh pelajar CPE 133 untuk projek akhir mereka di masa depan. Namun, kami mengambil idea ini selangkah lebih jauh dengan membuat program melukis, yang juga dapat dikembangkan oleh bakal pelajar.
Masalah:
Masalah yang kami dapati adalah bahawa tidak ada modul tetikus yang jelas yang siap dimuat dan digunakan untuk papan Basys3. Untuk menyelesaikan masalah ini, kami berusaha membuatnya sendiri. Dengan berbuat demikian, kami berusaha untuk membuat modul tetikus yang akan membolehkan pelajar masa depan melaksanakan input tetikus dengan lebih mudah dalam projek mereka.
Langkah 2: Mendapatkan Maklumat Bit Mentah Dari USB Basys
- Sebilangan besar yang kami lakukan untuk tetikus dalam projek ini berasal dari dokumentasi Basys3. Dari panduan kecil pada port USB Basys dalam pdf itu, kami mendapati bahawa papan Basys mempunyai jam terpasang untuk membaca bit pada kelajuan yang betul dari peranti USB.
- Pada dasarnya, tetikus menghantar bit ke usb bermula dari keadaan siaga, membaca 32 bit yang mewakili status tetikus, kedudukan x, dan kedudukan y, dan akhirnya berakhir dengan bit idle yang lain. Untuk melakukan ini, komponen input tetikus menggunakan shift register dan 32 bit counter di mana shift shift digunakan untuk menyimpan 32 bit data masuk dari tetikus dan 32 bit counter digunakan untuk mengira jumlah bit yang disimpan memungkinkan keadaan daftar untuk menetapkan semula dan menyimpan set seterusnya 32 bit masuk.
- Kod untuk register shift, penghitung 32 bit, dan pembaca data boleh dimuat turun di bawah, serta fail kekangan yang disesuaikan dengan penggunaan port USB kami sebagai input
Langkah 3: Menghuraikan Maklumat Usb
- Setelah membuat input tetikus ke komponen usb, langkah selanjutnya adalah membuat komponen bit usb ke maklumat vektor yang akan menjadikan data yang diterima oleh tetikus dapat dibaca untuk vga.
- Komponen ini menggunakan mesin keadaan yang mengambil sekumpulan bit yang dikeluarkan oleh input tetikus ke usb dan bergerak melalui keadaan berdasarkan sama ada bit baru yang mengubah status dan kedudukan tetikus dimasukkan.
- Gambarajah blok untuk dua langkah pertama projek ditunjukkan di sini, dan dua fail vhdl adalah untuk menguji pelaksanaan tetikus menggunakan LED basys (ujian yang malangnya tidak pernah lulus) dan untuk menghantar aliran bit dari USB port ke vektor kelajuan dan kedudukan yang boleh digunakan oleh VGA.
- Gambar di sebelah rajah blok di atas adalah gambar kecil (Instructables tidak membenarkan kami memaparkan gambar lebar penuh) maklumat bit yang kami dapati dalam dokumentasi basys untuk menyelesaikan langkah ini.
Langkah 4: Memaparkan Gambar yang Dilukis Melebihi VGA dan Mengedit Apa yang Dilukis
- Kabel VGA mempunyai output 14 bit, 4 bit untuk setiap tiga warna dan sedikit untuk penyegerakan mendatar dan penyegerakan menegak.
-
VGA lain adalah modul VGA yang disediakan dan berfungsi seperti berikut:
- Monitor dipecah menjadi 40x30 blok 16x16 piksel untuk skrin beresolusi 640x480 seperti yang dilihat pada gambar di atas. Modul memilih alamat blok untuk mewakili salah satu daripada 1200 blok pada monitor. Alamat blok dipilih melalui persamaan berikut: alamat = 40y + x
- Warna diwakili oleh isyarat 12 bit yang berkorelasi dengan nilai RRRRGGGGBBBB yang mewarnai blok yang dipilih.
-
Kod kawalan kami, VGAtest dan VGAtestconst, berfungsi seperti berikut:
- Mula-mula menetapkan blok yang dipilih ke tengah monitor.
- Warna blok ditentukan oleh 12 suis pada papan, menetapkan nilai RRRRGGGGBBBB.
- Empat butang arah di papan menukar alamat yang dipilih. Contohnya, menekan butang kanan akan menambah 1 ke alamat, memilih blok satu di sebelah kanan blok sebelumnya. Menekan butang ke bawah akan menambah 40 ke alamat, memilih blok yang berada di bawah blok sebelumnya.
- Butang tengah digunakan untuk menetapkan semua nilai warna ke 0 ketika ditekan. Ini dimaksudkan untuk berperilaku sebagai butang hapus yang mudah digunakan oleh pengguna, sehingga pengguna tidak perlu membalikkan setiap suis ke 0 untuk menghapus.
- Gambar terakhir adalah gambarajah blok untuk pengawal. Cukup lebar kerana merangkumi komponen modul dan mungkin tidak dipaparkan sepenuhnya.
Langkah 5: Nikmati Penciptaan Anda
Terhubung di sini adalah timelapse cepat keseronokan yang anda dapat dengan projek akhir, walaupun hanya dengan menggunakan suis dan butang di papan dasar sebagai input.
Terima kasih untuk membaca!
Disyorkan:
Dua Cara Membuat Aplikasi Lukisan: 10 Langkah
Dua Cara Membuat Aplikasi Menggambar: Saya tahu aplikasi menggambar ini hanya mempunyai layar 5x5 piksel sehingga anda benar-benar tidak dapat menghasilkan banyak tetapi tetap menyenangkan
Robot Lukisan Bertenaga Arduino: 11 Langkah (dengan Gambar)
Arduino Powered Painting Robot: Pernahkah anda terfikir apakah robot boleh membuat lukisan dan seni yang memukau? Dalam projek ini saya berusaha mewujudkannya dengan Robot Lukisan Bertenaga Arduino. Objektifnya adalah agar robot dapat membuat lukisan sendiri dan menggunakan alat
Litar Berat untuk Menerangi Lukisan: 4 Langkah
Litar Berat untuk Menerangi Lukisan: Ini adalah litar yang sangat mudah, buat cahaya untuk menerangi lukisan
Lukisan Sensorial: 5 Langkah
Sensorial Painting: Sensorial Painting es un proyecto diseñado para que alguien no vidente pueda pintar o dibujar dentro de bordes que uno pueda delimitar. En este caso utilizaremos un Kultrun de la cultura dan pueblo mapuche. SP te avisará mediante sonidos de un Trompe
Lukisan Cahaya Permulaan (tanpa Photoshop): 5 Langkah (dengan Gambar)
Permulaan Lukisan Cahaya (tanpa Photoshop): Saya baru-baru ini membeli kamera baru dan sedang menyiasat beberapa ciri ketika saya menjumpai lukisan cahaya, atau fotografi dengan pendedahan yang panjang, di internet. Sebilangan besar daripada kita akan melihat bentuk asas pencahayaan cahaya dengan foto di bandar dengan jalan