Talaan ng mga Nilalaman:
- Hakbang 1: Pangkalahatang-ideya
- Hakbang 2: Mga Kagamitan
- Hakbang 3: Paggawa ng Laro
- Hakbang 4: Pagpapakita ng Resulta
- Hakbang 5: Pagsasama-sama sa Lahat ng Ito
- Hakbang 6: Mga Pagbabago sa Hinaharap
- Hakbang 7: Konklusyon
Video: FPGA Asteroid Game: 7 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:15
Para sa aming Huling Proyekto sa CPE 133, nagpasya kaming lumikha ng isang asteroids na laro sa aming FPGA gamit ang dalawang switch ng switch ng pindutan at ang display na 7-segment. Gumagana ang laro upang ang isang asteroid ay nagsisilaw sa isa sa tatlong mga sapalarang piniling hilera, at dumarating patungo sa barko sa kabilang bahagi ng 7-segment na display. Ang itaas na pindutan at ibabang pindutan ay maaaring magamit upang ilipat ang iyong barko sa paraan ng asteroid. Sa kabiguang gawin ito, binabasa ng display ang 'BAnG' nang ilang sandali at pagkatapos ay mabilis na i-restart ang laro upang maaaring subukang muli ng gumagamit. Ang sumusunod ay isang maikling paglalarawan kung paano ginawa ang proyekto upang ang sinumang gumagamit ay maaaring magtiklop o pagbutihin ang aming disenyo.
Hakbang 1: Pangkalahatang-ideya
Ang proyekto ay higit na binubuo ng Finite State Machines (FSMs), na gumagamit ng lohika upang ilipat ang FPGA sa pagitan ng mga estado kung saan nag-iimbak at nagpapakita ng iba't ibang mga halaga ng mga posisyon ng barko at bato. Ang dalawang pangunahing mga module ay ang laro FSMs para sa bato at barko, at ang binary sa 7-segment na display decoder na FSM, na isinama nang sama-sama gamit ang isang napaka-simpleng istrukturang modelo sa VHDL.
Ang mga FSM ay nilikha para sa posisyon ng barko, posisyon ng bato, at para sa 7-segment decoder. Ang layunin ng FSM ng barko ay upang ang barko ay maaaring lumipat sa tamang posisyon kapag pinindot ng player ang isang pataas o pababang pindutan. Kailangan ang FSM sapagkat kailangan nitong alalahanin kung aling posisyon ang huling ito upang lumipat sa tamang posisyon.
Ang layunin ng FSM ng bato ay ilipat ang bato sa tamang posisyon batay sa kung aling hilera ito at ang huling posisyon sa hilera na iyon. Bilang karagdagan, sinusubaybayan nito ang posisyon para sa module na ipapakita ito at pseudo-random na pumili ng isang bagong hilera upang lilitaw sa susunod.
Ang FSM para sa 7-segment display decoder ay ginamit upang hindi lamang ipakita ang barko at ang bato ngunit din upang ipakita ang "BAnG" kapag ang posisyon ng barko at ang posisyon ng bato ay pareho.
Hakbang 2: Mga Kagamitan
Ang mga materyales na ginamit sa proyekto ay:
- Ang Basys3 Development Board mula sa Digilent, Inc.
- Vivado Design Suite
- sseg_dec.vhd (Ang file na ito ay ibinigay sa amin sa Polylearn at isinulat ni Bryan Mealy)
- Clk_div.vhd (Ang file na ito ay ibinigay sa amin sa Polylearn at isinulat ni Bryan Mealy)
- Tatlong Finite State Machines (FSMs)
Hakbang 3: Paggawa ng Laro
Ang modyul ng laro ay nilikha sa pamamagitan ng paggamit ng pagmomodelo ng pag-uugali upang ilarawan ang mga estado ng barko at bato para sa kanilang sariling mga FSM. Ang bentahe nito ay mas madaling mag-modelo ng circuit sa pag-uugali sa pamamagitan ng paglalarawan kung ano ang ginagawa nito kaysa malaman ang lahat ng mga sangkap na kinakailangan upang idisenyo ang hardware.
Ang mga estado ng bato ay tapos na gamit ang isang pseudo random number generator para sa unang posisyon ng bato. Upang magawa ito, binigyan namin ang generator ng sarili nitong orasan na kung saan ay napakabilis na kaugnay sa bilis ng laro. Sa bawat pagtaas ng gilid, isang tatlong bit na numero ang nadagdagan, at ang lahat ng mga halagang ito ay tumutugma sa isa sa tatlong mga pagsisimula ng estado para sa barko. Samakatuwid, ang tatlong mga halaga ay tumutugma sa posisyon 3 (sa kanang tuktok), tatlong tumutugma sa posisyon 7 (ang gitna), at dalawa ay tumutugma sa posisyon 11 (sa kanang ibaba).
Kapag naganap na ang random na henerasyon at ang asteroid ay nabigyan ng paunang estado, pahalang itong dumadaloy patungo sa barko nang walang pagkakagambala.
0 ← 1 ← 2 ← 3
4 ← 5 ← 6 ← 7
11 ← 10 ← 9 ← 8
Ang orasan na ginamit para sa susunod na estado ng lohika ng estado ay kumokontrol sa bilis ng laro; nalaman namin sa pamamagitan ng pagsubok at error na ang 9999999 ay isang mabuting halaga para sa max na bilang nito.
Ang lohika ng barko ay gumagana sa pamamagitan ng pagsisimula sa posisyon ng gitnang (posisyon 4) sa dulong kaliwang bahagi. Kung ang kanang itaas na pindutan o ibabang pindutan ay pinindot, ang barko ay lilipat pataas at pababa sa posisyon na 0 at 11 na naaayon sa pindutang na-pinindot.
Upang magkaroon ng pakiramdam ang paggalaw ng barko para sa gumagamit, hindi namin ginawang hindi magkakasabay ang paggalaw nito. Gumamit kami ng isang orasan para sa mga pagbabago sa estado nito, at gumamit kami ng isang pinakamataas na bilang na 5555555.
Hakbang 4: Pagpapakita ng Resulta
Ang binary sa 7-segment decoder ay tumatagal ng mga variable na posisyon ng 4-bit para sa barko at sa asteroid at ipinapakita ang naaangkop na imahe (alinman sa barko at bato o ang mensahe na "BAnG").
Natutupad ito sa pamamagitan ng unang pag-check kung pantay ang dalawa at pagkatapos ay pagpapakita ng mensahe na "BAnG" kung ang tseke ay nagbabalik totoo.
Kung hindi ito magbabalik ng totoo, ipapakita ng decoder ang barko at ang bato sa pamamagitan ng paglipat sa pagitan nila sa napakataas na dalas ng orasan at lokohin ang mata na makita sila na parang ipinapakita nang sabay.
Hakbang 5: Pagsasama-sama sa Lahat ng Ito
Inilakip namin ang FSM ng barko at bato sa isang malaking FSM na na-wire namin sa ipinakitang FSM. Ang mga pag-input sa laro ay ang pindutan ng pataas at ang pababang pindutan sa board ng BASYS3 at ang orasan ng system. Ang mga output ay ang segment at anode vector pitong segment-display.
Ang mga input at output na ito ay makikita sa mga hadlang na file kung saan naka-map ang mga ito.
Hakbang 6: Mga Pagbabago sa Hinaharap
Sa hinaharap, ang pagdaragdag ng higit na pag-andar ng paggalaw ng barko sa proyekto ay magiging isang pagpapabuti. Maaari itong magawa sa pamamagitan lamang ng pagbibigay ng 2 higit pang mga input ng pindutan at pinapayagan ang barko na kumuha ng mga posisyon (estado) maliban sa 0, 4, at 8. Ang isa pang posibleng pagbabago ay maaaring kontrolin ang susunod na tiyempo ng estado ng asteroid upang magsimula itong mabagal at dagdagan ang bilis ng 1.5x tuwing namimiss nito ang barko hanggang sa ma-hit ito, kung saan ito muling sisimulan at magiging mabagal muli. Dadagdagan nito ang paghihirap ng laro at gawing mas masaya para sa gumagamit kung ipinatupad ito, at maaaring gawin sa pamamagitan ng paglikha ng isang variable para sa pinakamataas na bilang ng susunod na estado na orasan ng bato, pinaparami ang variable na iyon ng 1.5 sa tuwing hindi lumilitaw ang asteroid Hindi ito nai-hit, at naitakda ulit ito sa paunang halaga sa tuwing tumatama ang bato.
Hakbang 7: Konklusyon
Ang proyekto na ito ay nakatulong sa amin upang mas maunawaan ang may wakas na mga makina ng estado, orasan, at interactive na ipinapakita sa mga pitong segment na ipinapakita.
Ang pinakamalaking bagay tungkol sa may wakas na mga makina ng estado ay mahalagang malaman (tandaan) kung anong estado ka kasalukuyang nasa upang lumipat sa susunod na nais na estado. Kakatwa, magandang payo sa buhay; dapat mong malaman kung saan mo malalaman kung saan ka pupunta.
Sa pamamagitan ng pagmamanipula ng iba't ibang mga pagkakataon ng mga orasan, nagawa naming random na makabuo ng mga numero, ilipat ang bato sa susunod na posisyon, at pamahalaan ang pagpapakita ng barko, ang bato, at ang end-of-game na mensahe.
Nalaman namin na higit sa isang anode ay hindi maipakita nang sabay. Sinamantala ng modyul na ibinigay sa amin na makikita lamang ng mata ng tao ang pagkakaiba hanggang sa isang tiyak na dalas. Kaya't isang mas mataas na dalas ng paglipat ng mga anode ang napili. Ang barko at bato na nakikita nang sabay-sabay ay talagang isang parunggit dahil ang bawat isa ay ipinakita nang magkahiwalay, ngunit napakabilis. Ang konseptong iyon ay inilapat upang maipakita ang paggalaw ng barko, ang bato, at ang mensahe na "BAnG".
Inirerekumendang:
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Mga Kapansanan sa Locomotor: 9 Mga Hakbang (na may Mga Larawan)
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Kapansanan sa Locomotor: Ang mga taong may malubhang mga kapansanan sa lokomotor tulad ng mga sanhi ng cerebral palsy ay madalas na may mga kumplikadong pangangailangan sa komunikasyon. Maaaring kailanganin silang gumamit ng mga board na may alpabeto o karaniwang ginagamit na mga salitang nakalimbag sa kanila upang makatulong sa komunikasyon. Gayunpaman, marami
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
Pasadyang Arduino upang Panatilihing MAAARI ang Mga Pindutan sa Mga Manibela na May Bagong Car Stereo: 9 Mga Hakbang (na may Mga Larawan)
Pasadyang Arduino upang Panatilihin ang CAN Steering Wheel Buttons Sa Bagong Car Stereo: Napagpasyahan kong palitan ang orihinal na stereo ng kotse sa aking Volvo V70 -02 ng isang bagong stereo upang masisiyahan ako sa mga bagay tulad ng mp3, bluetooth at handsfree. Ang aking kotse ay may ilang mga kontrol sa manibela para sa stereo na nais kong magamit pa rin.
Album ng Mga Litrato ng Mga Bata Na May Komersyal ng Flashcard: 8 Mga Hakbang (na may Mga Larawan)
Kids Photo Album With Flashcard Commercial: Ipinapakita ng mga itinuturo na ito kung paano gumawa ng isang awtomatikong pag-update ng photo album ng WiFi bilang karagdagan sa mga tampok sa komersyal na flash card