Talaan ng mga Nilalaman:
- Hakbang 1: Pagganyak at Suliranin
- Hakbang 2: Pagkuha ng Impormasyon ng Raw Bit Mula sa Basys USB
- Hakbang 3: Pag-parse ng Impormasyon sa Usb
- Hakbang 4: Pagpapakita ng Pinta na Larawan Sa paglipas ng VGA at Pag-edit ng Ano ang Ginagawa
- Hakbang 5: Masiyahan sa Iyong Paglikha
Video: Programa sa Pagpipinta ng VGA: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Proyekto ni: Adam Klein, Ian Strachan, Brandon Slater
Ang proyekto na itinakda namin upang makumpleto ay ang mag-imbak, mag-parse, at magpakita ng impormasyon mula sa isang USB mouse sa anyo ng isang programa sa pagpipinta. Ang ideya sa likod ng proyekto ay upang mai-plug ang mga cable ng mouse at VGA sa board ng Basys sa mga built-in na port nito, at ipakita ang mouse bilang isang galaw na kuwadradong pagpipinta sa monitor, binabago ang iba't ibang kulay kapag kaliwa at kanang pag-click ay ginamit na Sa esensya, lilikha kami ng isang driver para sa paggamit ng mouse gamit ang basys board, at pagkakaroon ng monitor bilang aming pag-verify ng pagpapaandar. Ang natapos talagang nangyayari ay ang paglikha ng isang programa ng pagguhit gamit ang basys board bilang isang input system, at isang semi-functional na data capture system para sa mouse.
Sa itinuturo na ito, masisira namin ang mga hakbang mula sa pag-input ng mouse hanggang sa output ng vga.
Hakbang 1: Pagganyak at Suliranin
Pagganyak:
Ang pangunahing pagganyak para sa aming proyekto ay upang lumikha ng isang driver ng mouse para sa board ng Basys3 na magagamit ng mga mag-aaral sa CPE 133 sa hinaharap para sa kanilang huling proyekto sa hinaharap. Gayunpaman, kinuha namin ang ideyang ito ng isang hakbang sa pamamagitan ng paglikha ng isang programa sa pagpipinta, isa na maaari ding buuin ng mga mag-aaral sa hinaharap.
Problema:
Ang problemang natuklasan namin ay walang malinaw na module ng mouse na handang mag-download at magamit para sa board ng Basys3. Upang malutas ang problemang ito, sinubukan naming lumikha ng isa sa aming sarili. Sa pamamagitan nito, nagsusumikap kaming lumikha ng isang module ng mouse na magpapahintulot sa mga mag-aaral sa hinaharap na mas madaling ipatupad ang pag-input ng mouse sa kanilang mga proyekto.
Hakbang 2: Pagkuha ng Impormasyon ng Raw Bit Mula sa Basys USB
- Karamihan sa ginawa namin para sa mouse sa proyektong ito ay nagmula sa dokumentasyon ng Basys3. Mula sa maliit na gabay sa port ng Basys USB sa pdf na iyon, nalaman namin na ang Basys board ay may built in na orasan para sa pagbabasa ng mga piraso sa tamang bilis mula sa mga USB device.
- Mahalaga, ang mouse ay nagpapadala ng mga piraso sa usb na nagsisimula mula sa isang idle na estado, nagbabasa ng 32 bits na kumakatawan sa katayuan ng mouse, x posisyon, at posisyon na y, at sa wakas ay nagtatapos sa isa pang idle bit. Upang gawin ito, ang sangkap ng pag-input ng mouse ay gumagamit ng isang rehistro ng shift at 32 bit counter kung saan ginagamit ang rehistro ng shift upang mag-imbak ng 32 piraso ng papasok na data mula sa mouse at ang 32 bit counter ay ginagamit upang bilangin ang bilang ng mga bit na nakaimbak na nagpapahintulot sa estado magparehistro upang i-reset at iimbak ang susunod na hanay ng 32 papasok na mga piraso.
- Ang code para sa shift register, 32 bit counter, at data reader ay mai-download sa ibaba, pati na rin ang mga hadlang na file na iniakma sa aming paggamit ng USB port bilang isang input
Hakbang 3: Pag-parse ng Impormasyon sa Usb
- Matapos likhain ang input ng mouse sa sangkap ng usb, ang susunod na hakbang ay upang likhain ang mga usb bit sa sangkap ng impormasyon ng vector na gagawing mabasa ang data sa mouse para sa vga.
- Ang sangkap na ito ay gumagamit ng isang machine ng estado na kumukuha ng hanay ng mga piraso na na-output ng pag-input ng mouse sa usb at gumagalaw sa mga estado batay sa kung ang mga bagong piraso na nagbabago ng katayuan at posisyon ng mouse ay na-input.
- Ang block diagram para sa unang dalawang mga hakbang ng proyekto ay ipinakita dito, at ang dalawang mga vhdl file ay para sa pagsubok ng pagpapatupad ng mouse gamit ang basys LED's (isang pagsubok na sa kasamaang palad ay hindi naipasa) at para sa paghahagis ng bit stream mula sa USB port sa bilis at posisyon ng mga vector na maaaring magamit ng VGA.
- Ang imahe sa tabi ng block diagram sa itaas ay isang maliit na snapshot (Hindi pinapayagan sa amin ng mga tagubilin na ipakita ang buong malawak na imahe) ng kaunting impormasyon na nakita namin sa dokumentasyon ng basys para sa pagkumpleto ng hakbang na ito.
Hakbang 4: Pagpapakita ng Pinta na Larawan Sa paglipas ng VGA at Pag-edit ng Ano ang Ginagawa
- Ang VGA cable ay may 14 na piraso ng output, 4 na piraso para sa bawat isa sa tatlong mga kulay at medyo para sa pahalang na pag-sync at patayong pag-sync.
-
Ang OtherVGA ay ibinigay na module ng VGA at gumagana ito tulad ng sumusunod:
- Ang monitor ay pinaghiwalay sa 40x30 blocks ng 16x16 pixel para sa isang 640x480 resolusyon na screen tulad ng nakikita sa larawan sa itaas. Ang module ay pipili ng isang block address upang kumatawan sa isa sa mga 1200 bloke sa monitor. Napili ang block address sa pamamagitan ng sumusunod na equation: address = 40y + x
- Ang kulay ay kinakatawan ng isang 12 bit signal na tumutugma sa isang halagang RRRRGGGGBBBB na kulay sa napiling bloke.
-
Ang aming control code, VGAtest at VGAtestconst, ay gumagana tulad ng sumusunod:
- Una nitong itinatakda ang napiling bloke sa gitna ng monitor.
- Ang kulay ng bloke ay natutukoy ng 12 switch sa board, itinatakda ang halaga ng RRRRGGGGBBBB.
- Ang apat na direksyon na pindutan sa board ay nagbabago ng napiling address. Halimbawa, ang pagpindot sa kanang pindutan ay magdaragdag ng 1 sa address, na pipiliin ang isang bloke sa kanan ng nakaraang bloke. Ang pagpindot sa down button ay magdaragdag ng 40 sa address, na pipiliin ang isang bloke sa ibaba ng nakaraang block.
- Ginamit ang pindutan ng gitna upang itakda ang lahat ng mga halaga ng kulay sa 0 kapag pinindot. Ito ay sinadya upang kumilos bilang isang burahin na pindutan na madali para magamit ng gumagamit, kaya't hindi kailangang i-flip ng user ang bawat switch sa 0 upang mabura.
- Ang huling imahe ay ang diagram ng block para sa controller. Ito ay medyo malawak dahil kasama dito ang mga bahagi ng module at maaaring hindi maipakita nang buo.
Hakbang 5: Masiyahan sa Iyong Paglikha
Naka-link dito ay isang mabilis na timelapse ng kasiyahan na maaari mong makuha sa panghuling proyekto, kahit na gamit lamang ang mga switch at pindutan sa basys board bilang input.
Salamat sa pagbabasa!
Inirerekumendang:
Pinapagana ng Arduino na Pagpipinta ng Robot: 11 Mga Hakbang (na may Mga Larawan)
Pinapagana ng Arduino na Pagpipinta ng Robot: Naisip mo ba kung ang isang robot ay maaaring gumawa ng nakakaakit na mga kuwadro at sining? Sa proyektong ito tinangka kong gawin iyon sa isang Arduino Powered Painting Robot. Ang layunin ay upang ang robot ay maaaring gumawa ng mga kuwadro na gawa sa sarili nitong at gumamit ng isang ref
Simula ng Banayad na Pagpipinta (walang Photoshop): 5 Hakbang (na may Mga Larawan)
Simula sa Banayad na Pagpipinta (walang Photoshop): Kamakailan-lamang na bumili ako ng isang bagong camera at sinisiyasat ang ilan sa mga tampok nito nang makita ko ang light painting, o mahabang pagkakalantad ng litrato, sa internet. Karamihan sa atin ay makikita ang pangunahing anyo ng lightpainting na may larawan sa isang lungsod na may kalsada
Space Monsters - isang Pakikipag-ugnay na Pagpipinta: 8 Hakbang (na may Mga Larawan)
Space Monsters - isang Pakikipag-ugnay na Pagpipinta: Pagod na rin sa pandinig ng " NO! &Quot; kapag nais mong hawakan ang isang pagpipinta? Gumawa tayo ng isa na MAAARI mong hawakan
Tigre Pagpipinta 3d Naka-print: 5 Hakbang
Tigre Pagpipinta 3d Naka-print: Ang itinuturo na ito ay pagsamahin ang sining at pag-print na magkasama upang muling likhain ang pagpipinta ng isang tigre. Ang alon ay binubuo ng 3 filament: itim, puti at kahel. Ang paraan ng paggana nito ay ang pag-print mo sa isang stl ng tigre, pagkatapos ng ilang halaga ng mga layer
42 RGB LED Pixel Art Pagpipinta: 5 Hakbang
42 RGB LED Pixel Art Pagpipinta: Hoy, Kaya para sa isang takdang-aralin sa paaralan na tinatawag na " Kung ito kung gayon iyan " Kailangan kong gumawa ng isang interactive // isang bagay // gamit ang isang Arduino Uno starterkit (at kung anupaman ang isa ay handang bilhin ang kanilang sarili). Nakikita bilang ginagawa ko ang isang pag-aaral ng Art / Teknolohiya na nais ko