Isi kandungan:

Program Lukisan VGA: 5 Langkah
Program Lukisan VGA: 5 Langkah

Video: Program Lukisan VGA: 5 Langkah

Video: Program Lukisan VGA: 5 Langkah
Video: Cara Jadi Seperti Hacker dalam 5 Detik 2024, November
Anonim
Program Lukisan VGA
Program Lukisan VGA

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 dan Masalah
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

Mendapatkan Maklumat Bit Mentah Dari USB Basys
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

Menghuraikan Maklumat Usb
Menghuraikan Maklumat Usb
Menghuraikan Maklumat Usb
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

Memaparkan Gambar yang Dilukis Lebih Dari VGA dan Mengedit Apa yang Dilukis
Memaparkan Gambar yang Dilukis Lebih Dari VGA dan Mengedit Apa yang Dilukis
Memaparkan Gambar yang Dilukis Lebih Dari VGA dan Mengedit Apa yang Dilukis
Memaparkan Gambar yang Dilukis Lebih Dari VGA dan Mengedit Apa yang Dilukis
Memaparkan Gambar yang Dilukis Lebih Dari VGA dan Mengedit Apa yang Dilukis
Memaparkan Gambar yang Dilukis Lebih Dari 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: