Daftar Isi:
- Langkah 1: Motivasi dan Masalah
- Langkah 2: Mendapatkan Informasi Bit Mentah Dari Basys USB
- Langkah 3: Parsing Informasi Usb
- Langkah 4: Menampilkan Gambar yang Dilukis Melalui VGA dan Mengedit Apa yang Digambar
- Langkah 5: Nikmati Kreasi Anda
Video: Program Pengecatan VGA: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Proyek oleh: Adam Klein, Ian Strachan, Brandon Slater
Proyek yang ingin kami selesaikan adalah menyimpan, mengurai, dan menampilkan informasi dari mouse USB dalam bentuk program pengecatan. Ide di balik proyek ini adalah untuk dapat menyambungkan mouse dan kabel VGA ke papan Basys di port bawaannya, dan menampilkan mouse sebagai kotak lukisan yang dapat dipindahkan di monitor, mengubah warna berbeda saat klik kiri dan kanan dilakukan. digunakan. Intinya, kami akan membuat driver untuk menggunakan mouse dengan papan basys, dan menjadikan monitor sebagai verifikasi fungsionalitas kami. Apa yang akhirnya benar-benar terjadi adalah pembuatan program menggambar dengan papan bas sebagai sistem input, dan sistem penangkap data semi-fungsional untuk mouse.
Dalam instruksi ini, kami akan memecah langkah-langkah dari input mouse ke output vga.
Langkah 1: Motivasi dan Masalah
Motivasi:
Motivasi utama untuk proyek kami adalah untuk membuat driver mouse untuk papan Basys3 yang dapat digunakan oleh siswa CPE 133 di masa depan untuk proyek akhir mereka di masa mendatang. Namun, kami mengambil ide ini selangkah lebih maju dengan membuat program melukis, yang juga dapat dikembangkan oleh siswa masa depan.
Masalah:
Masalah yang kami temukan adalah tidak ada modul mouse bening yang siap diunduh dan digunakan untuk papan Basys3. Untuk mengatasi masalah ini, kami mencoba membuatnya sendiri. Dengan melakukan itu, kami berusaha untuk membuat modul mouse yang memungkinkan siswa masa depan untuk lebih mudah menerapkan input mouse dalam proyek mereka.
Langkah 2: Mendapatkan Informasi Bit Mentah Dari Basys USB
- Banyak dari apa yang kami lakukan untuk mouse dalam proyek ini berasal dari dokumentasi Basys3. Dari panduan kecil tentang port USB Basys di pdf itu, kami menemukan bahwa papan Basys memiliki jam bawaan untuk membaca bit dengan kecepatan yang tepat dari perangkat USB.
- Pada dasarnya, mouse mengirimkan bit ke usb mulai dari keadaan idle, membaca 32 bit yang mewakili status mouse, posisi x, dan posisi y, dan akhirnya diakhiri dengan bit idle lainnya. Untuk melakukan ini, komponen input mouse menggunakan register geser dan penghitung 32 bit di mana register geser digunakan untuk menyimpan 32 bit data yang masuk dari mouse dan penghitung 32 bit digunakan untuk menghitung jumlah bit yang disimpan memungkinkan keadaan mendaftar untuk mengatur ulang dan menyimpan set berikutnya dari 32 bit yang masuk.
- Kode untuk register geser, penghitung 32 bit, dan pembaca data dapat diunduh di bawah ini, serta file kendala yang disesuaikan dengan penggunaan port USB sebagai input.
Langkah 3: Parsing Informasi Usb
- Setelah membuat input mouse ke komponen usb, langkah selanjutnya adalah membuat komponen informasi bit-bit usb ke vektor yang akan membuat data yang diterima oleh mouse dapat dibaca oleh vga.
- Komponen ini menggunakan mesin status yang mengambil set bit yang dikeluarkan oleh input mouse ke usb dan bergerak melalui status berdasarkan apakah bit baru yang mengubah status dan posisi mouse dimasukkan.
- Diagram blok untuk dua langkah pertama proyek ditampilkan di sini, dan dua file vhdl adalah untuk menguji implementasi mouse menggunakan LED basys (tes yang sayangnya tidak pernah lulus) dan untuk mentransmisikan aliran bit dari USB port untuk mempercepat dan memposisikan vektor yang dapat digunakan VGA.
- Gambar di sebelah diagram blok di atas adalah snapshot kecil (Instructables tidak memungkinkan kami untuk menampilkan gambar lebar penuh) dari informasi bit yang kami temukan di dokumentasi basys untuk menyelesaikan langkah ini.
Langkah 4: Menampilkan Gambar yang Dilukis Melalui VGA dan Mengedit Apa yang Digambar
- Kabel VGA memiliki output 14 bit, 4 bit untuk masing-masing dari tiga warna dan sedikit untuk sinkronisasi horizontal dan sinkronisasi vertikal.
-
OtherVGA adalah modul VGA yang disediakan dan berfungsi sebagai berikut:
- Monitor dipecah menjadi 40x30 blok 16x16 piksel untuk layar resolusi 640x480 seperti yang terlihat pada gambar di atas. Modul memilih alamat blok untuk mewakili salah satu dari 1200 blok pada monitor. Alamat blok dipilih melalui persamaan berikut: alamat = 40y + x
- Warna diwakili oleh sinyal 12 bit yang berkorelasi dengan nilai RRRRGGGGBBBB yang mewarnai blok yang dipilih.
-
Kode kontrol kami, VGAtest dan VGAtestconst, berfungsi sebagai berikut:
- Ini pertama-tama mengatur blok yang dipilih ke tengah monitor.
- Warna blok ditentukan oleh 12 sakelar di papan, mengatur nilai RRRRGGGGBBBB.
- Empat tombol arah di papan mengubah alamat yang dipilih. Misalnya, menekan tombol kanan akan menambahkan 1 ke alamat, memilih satu blok di sebelah kanan blok sebelumnya. Menekan tombol bawah akan menambahkan 40 ke alamat, memilih satu blok di bawah blok sebelumnya.
- Tombol tengah digunakan untuk mengatur semua nilai warna ke 0 saat ditekan. Ini dimaksudkan untuk berperilaku sebagai tombol hapus yang mudah digunakan oleh pengguna, sehingga pengguna tidak perlu membalik setiap sakelar ke 0 untuk menghapus.
- Gambar terakhir adalah diagram blok untuk pengontrol. Ini cukup lebar karena mencakup komponen modul dan mungkin tidak ditampilkan sepenuhnya.
Langkah 5: Nikmati Kreasi Anda
Tertaut di sini adalah timelapse cepat dari kesenangan yang dapat Anda miliki dengan proyek akhir, bahkan hanya dengan menggunakan sakelar dan tombol pada papan bass sebagai input.
Terima kasih sudah membaca!
Direkomendasikan:
Pengubah Dichoptic Bergantian dari Transmisi Stereoskopik 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 Langkah
Pengubah Dichoptic Bergantian dari Transmisi Stereoskopik 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: Untuk beberapa waktu saya telah mengerjakan penerus AODMoST asli. Perangkat baru menggunakan mikrokontroler 32-bit yang lebih cepat dan lebih baik serta sakelar video analog yang lebih cepat. Hal ini memungkinkan AODMoST 32 untuk bekerja dengan resolusi yang lebih tinggi dan mengimplementasikan fungsi baru
Pengubah Dichoptic Bergantian dari Transmisi Stereoskopik [ATmega328P+HEF4053B VGA Superimposer]: 7 Langkah
Pengubah Dichoptic Bergantian dari Transmisi Stereoskopik [ATmega328P+HEF4053B VGA Superimposer]: Setelah eksperimen saya dengan kaca kristal cair yang digunakan untuk menutup mata (di sana-sini), saya memutuskan untuk membuat sesuatu yang sedikit lebih canggih dan juga tidak memaksa pengguna untuk memakai PCB di dahinya (orang terkadang bisa
VGA / GPU Eksternal untuk Laptop Menggunakan EXP GDC Beast: 15 Langkah (dengan Gambar)
VGA / GPU Eksternal untuk Laptop Menggunakan EXP GDC Beast: Hi Guys.. Ini adalah tutorial pertama saya tentang instruksi. Bahasa Inggris bukan bahasa pertama saya jadi mohon maafkan kesalahan tata bahasa saya. Saya membuat ini berdasarkan pengalaman saya dalam mengupgrade laptop saya. Dan saya tidak akan membuat Anda bosan dengan perkenalan yang panjang karena saya tidak tahu
Game Arkade dan Joystick VGA ESP32: 6 Langkah (dengan Gambar)
ESP32 VGA Arcade Games dan Joystick: Dalam instruksi ini saya akan menunjukkan cara mereproduksi empat arcade seperti game - Tetris - Snake - Breakout - Bomber - menggunakan ESP32, dengan output untuk monitor VGA. Resolusi 320 x 200 piksel, dalam 8 warna. Saya sebelumnya telah melakukan versi dengan
Arduino Basic PC Dengan Output VGA: 5 Langkah (dengan Gambar)
Arduino Basic PC Dengan Output VGA: Dalam Instruksi saya sebelumnya, saya telah menunjukkan cara membuat komputer 8-bit retro yang menjalankan BASIC, melalui dua Arduino, dan dengan sinyal output dalam B&W untuk layar TV. Sekarang saya akan menunjukkan cara membuat komputer yang sama, tetapi dengan sinyal output di