Sisukord:
Video: Kahe mängija konkurentsivõimeline ajastusmäng: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Sa vajad:
1. Digilent Basys 3, FPGA -plaat (või mõni muu FPGA)
2. Vivado või mõne muu VHDL -keskkonna suhteliselt ajakohane versioon
3. Arvuti, mis oskab nimetatud programmi käitada.
Samm: mäng ise
Kuidas Mikroneesia suhelda moodulitega.
Kuidas mängida
Alustamiseks vajutage keskmist nuppu. Selle tulemusel kuvatakse seitsme segmendi ekraanil “99”, mis tähistab teise mängija tervist. Seejärel süttivad LED -id järjest paremalt vasakule. See moodustab võimsusriba. Kui toitenupp on täis, lähtestatakse see. Esimese mängija eesmärk on lüliti ümber pöörata, kui latt on võimalikult kõrge. Mida rohkem LED -e süttib, seda rohkem teeb mängija mängijale kahju. Pärast seda, kui esimene mängija lülitit pöörab, arvatakse tehtud kahju maha teise mängija tervisest. Seejärel lülitub see mängija teisele käigule. Nüüd näitab kuvatav number mängija tervist ja toitenupp täitub vasakult paremale. Kui mängija teine on oma käigu teinud, arvatakse kahju maha ja see on taas mängija kord. Seda korratakse seni, kuni üks mängija saavutab 0 tervise. Selle toimimise video on lisatud.
2. samm: Mikroneesia
See mäng on sisuliselt üks suur piiratud olekuga masin, milles toimub mingi keeruline loogika, lähtudes olekust, milles Mikroneesia on.
Esimene olek on menüüekraan, mis on üks lihtsamaid olekuid. See sisaldab seitsme segmendi kuva, millel on sõna “PLAY”, ja nuppu, mis paneb mängu käima. Nupp BTN viib meid järgmisesse olekusse, mis on mängija kord.
Olek 2: mängija esimene kord
Mängija esimese kord aktiveerib signaali, mis paneb seitsme segmendi kuva kuvama mängija teise tervise. Teine signaal lülitub sisse, et aktiveerida teisest meie moodulist imporditud vahetusregister (Pone.vhd). See nihkeregister paneb LED -i põlema nagu muudes mängudes suurenev võimsusmõõtur ja seejärel lähtestatakse see 0 -ni, kui see jõuab maksimaalse valgusdioodide hulgani, mida võiks süüdata. See värskendatakse kella tõusvas servas, mis on saadud saidilt barclock.vhd, mida on muudetud laenatud laborifailist. Mängija riba algas paremalt ja täitus vasakule, sest mängija lüliti on samuti vasakul (intuitiivse kasutuskogemuse jaoks). Kui lüliti on pööratud, liigub olek mängijale ühele mahaarvamisele ja aktiivse LED -i kogus salvestatakse signaali.
Olek 3: mängija üks mahaarvamine Signaal, milles on aktiivne valgusdiood, määrab mahaarvatava tervise hulga. Selleks kasutatakse teist vahetuste registrit (deduktor1.vhd), mis LED -ide suurendamise asemel neid vähendab. See väheneb ühe laenatud ja muudetud kella div mooduli tõusvas servas (downcounterclock.vhd). Kui üks LED on välja lülitatud, arvatakse mängija teise tervisest maha üks tervisepunkt. Kui selle protsessi käigus jõuab mängija 2 terviseni 0, peatume ja liigume kohe olekusse „Mäng läbi”. Vastasel juhul, kui LED -vektor jõuab “0000000000000000”, liigume edasi mängija teisele.
Olek 4: Mängija teise kord Mängija teise kord on täpselt nagu mängija esimese kord, välja arvatud selle vahetuste register (Ptwo.bhd) läheb vasakult paremale ja lüliti on laua paremal küljel. Signaal aktiveerub mängija 1 tervise kuvamiseks. Kui lüliti 2 on aktiivne, liigub see teise mängija mahaarvamiskäigule.
5. etapp: mängija teine mahaarvamine Nii nagu mängija teise kord, toimib mängija mahaarvamine sarnaselt mängija ühe mahaarvamisega. Peamine erinevus seisneb selles, et LED -i väljalülitamist reguleeriv vahetusregister läheb vastupidises suunas, mida on lihtne muuta, kui olete mängija mahaarvamise korralikult töötanud.
6. etapp: mäng läbi Kui mõni mängija jõuab mingil hetkel nullini, lülitub mäng sellesse olekusse. Midagi uhket ei kuvata. Kui vajutada nuppu BTN, taastatakse terviseseisund 99 ja olek naaseb menüüsse, alustades mängu tegelikult uuesti.
3. samm: moodulid
Mängu musta kasti skeem
Downcounterclock (Bryan Mealy mooduli clk_div.vhd põhjal):
See on kell, mis tegeleb deduktsioonide ajastamisega. Konstant nimega max_count on 3 korda rohkem kui barclock max_count konstant. See muudab mahaarvamised 3 korda aeglasemaks kui riba kiirus.
Barclock - (põhineb Bryan Mealy moodulil clk_div.vhd):
See kell tegeleb võimsusmõõturite ajastamisega, mida tegime kiiresti juurde, et mängule raskusi tekitada. Seda ajastust saab kohandada oma maitse järgi, suurendades kiirust, muutes konstantse max_count suuremaks või vähendades seda, muutes max_count väiksemaks. Sseg_dec - (Kirjutas Bryan Mealy): see moodul võtab sisendiks 8 -bitise numbri, mille ta dekodeerib, teisendades numbri kümnendkoha ekvivalendiks ja seejärel väljastab seitsme segmendi kuva. Selle faili toimimiseks peate veenduma, et teie piirangud vastavad meie omadele.
Pone:
See on nihkeregister, mis nihutab bitte vasakule, lisades ühe kuuma biti, et näha, nagu võimsusmõõtur suureneb. Kui kõik bitid on kuumad, lähtestatakse kõik bitid väärtusele "0" ja tsükkel algab otsast peale.
Ptwo:
See on P1 mooduli ümberpööratud versioon.
Deductor1:
See on kombinatsioon vahetuste registrist ja lahutajast. Nihkeregister läheb P1 vahetusregistri vastassuunas, näidates mahaarvamist. See lahutab ka mängija 2 tervisest 1 iga tsükli kohta, nii et nende kahe funktsiooni kombinatsiooni korral näib, et vastase tervis väheneb 1 võrra iga langenud terviseriba viite kohta.
Deductor2: See on Deductor1 mooduli ümberpööratud versioon.
PlayDecoder (laenatud ja kiiresti muudetud saidilt ekchen35649 tema 133 juhendatav): Seda kasutatakse menüü olekus sõna “PLAY” kuvamiseks seitsme segmendi dekoodril.
4. samm: testige
See mäng oli algselt inspireeritud ühest Kirby minimängust. See on lihtne kahe mängijaga mäng, mida saab mängida Basys 3 laual või mis tahes FPGA-l.
Samm: vajalikud materjalid
Teil on vaja: Digilent Basys 3, FPGA -plaati (või mõnda muud) Vivado suhteliselt ajakohast versiooni või mõnda muud vhdl -keskkonda Arvuti, mis suudab käivitada nimetatud programmi A aju
2. samm: mäng ise
Kuidas mängida
Alustamiseks vajutage keskmist nuppu. Selle tulemusel kuvatakse seitsme segmendi ekraanil teise mängija tervist tähistav “99”. Seejärel süttivad LED -id järjest paremalt vasakule. See moodustab võimsusriba. Kui toitenupp on täis, lähtestatakse see. Esimese mängija eesmärk on lüliti ümber pöörata, kui latt on võimalikult kõrge. Mida rohkem LED -e süttib, seda rohkem teeb mängija mängijale kahju. Pärast seda, kui esimene mängija lülitit pöörab, arvatakse tehtud kahju maha teise mängija tervisest. Seejärel lülitub see mängija teisele käigule. Nüüd näitab kuvatav number mängija tervist ja toitenupp täitub vasakult paremale. Kui mängija teine on oma käigu teinud, arvatakse kahju maha ja see on taas mängija kord. Seda korratakse seni, kuni üks mängija saavutab 0 tervise. Selle toimimise video on lisatud.
Mängu mängimiseks laadige see põhiplaadile ja vajutage keskmist nuppu. Proovige lülitit pöörata nii palju aktiivseid LED -e kui võimalik ja oodake ning vaadake, kuidas laud need punktid vastase tervisest maha arvab. Seejärel andke see oma sõbrale üle ja
3. samm: Mikroneesia
See mäng on sisuliselt üks suur piiratud olekuga masin, milles toimub mingi keeruline loogika, lähtudes olekust, milles Mikroneesia on.
(Osariigi skeem)
Olek 1: menüü
Esimene olek on menüüekraan, mis on üks lihtsamaid olekuid. See sisaldab seitsme segmendi kuva, millel on sõna “PLAY”, ja nuppu, mis paneb mängu käima. Nupp BTN viib meid järgmisesse olekusse, mis on mängija kord.
Olek 2: mängija esimene kord
Mängija esimese kord aktiveerib signaali, mis paneb seitsme segmendi kuva kuvama mängija teise tervise. Teine signaal lülitub sisse, et aktiveerida teisest meie moodulist imporditud vahetusregister (Pone.vhd). See nihkeregister paneb LED -tuled põlema nagu muudes mängudes suurenev võimsusmõõtur ja seejärel lähtestatakse see 0 -le, kui see saavutab maksimaalse valgusdioodide hulga, mida võiks süüdata. See värskendatakse kella tõusvas servas, mis on saadud saidilt barclock.vhd, mida on muudetud laenatud laborifailist. Mängija esimese riba algas paremalt ja täitus vasakule, sest mängija lüliti on samuti vasakul (intuitiivse kasutuskogemuse jaoks). Kui lüliti on pööratud, liigub olek mängijale ühele mahaarvamisele ja aktiivse LED -i kogus salvestatakse signaali.
Olek 3: mängija üks mahaarvamine
Signaal koos aktiivse LED -i kogusega määrab mahaarvatava tervise. Seda tehakse teise nihkeregistri (deduktor1.vhd) abil, mis LED -ide suurendamise asemel neid vähendab. See väheneb ühe laenatud ja muudetud kella div mooduli tõusvas servas (downcounterclock.vhd). Kui üks LED on välja lülitatud, arvatakse mängija teise tervisest maha üks tervisepunkt. Kui selle protsessi käigus jõuab mängija 2 terviseni 0, peatume ja liigume kohe olekusse „Mäng läbi”. Vastasel juhul, kui LED -vektor jõuab “0000000000000000”, liigume edasi mängija teisele.
Olek 4: teise mängija kord
Mängija teise kord on täpselt nagu mängija esimese kord, välja arvatud selle vahetuste register (Ptwo.bhd) läheb vasakult paremale ja lüliti on laua paremal küljel. Signaal aktiveerub mängija 1 tervise kuvamiseks. Kui lüliti 2 on aktiivne, liigub see teise mängija mahaarvamiskäigule.
5. etapp: mängija teine mahaarvamine
Nagu mängija teise kord, toimib ka mängija mahaarvamine sarnaselt mängija ühe mahaarvamisega. Peamine erinevus seisneb selles, et LED -i väljalülitamist reguleeriv vahetusregister läheb vastupidises suunas, mida on lihtne muuta, kui olete mängija mahaarvamise korralikult töötanud.
6. etapp: mäng läbi Kui mõni mängija jõuab mingil hetkel nullini, lülitub mäng sellesse olekusse. Midagi uhket ei kuvata. Kui vajutate nuppu BTN, taastatakse terviseseisund 99 ja olek läheb tagasi menüüsse, alustades mängu tõhusalt otsast.
Must kast
4. samm: moodulid
Downcounterclock (Bryan Mealy mooduli clk_div.vhd alusel):
See on kell, mis tegeleb deduktsioonide ajastamisega. Konstant nimega max_count on 3 korda rohkem kui barclock max_count konstant. See muudab mahaarvamised 3 korda aeglasemaks kui riba kiirus.
Barclock - (põhineb Bryan Mealy moodulil clk_div.vhd): see kell tegeleb võimsusmõõturite ajastamisega, mida tegime mängule raskuste lisamiseks kiiresti juurde. Seda ajastust saab kohandada oma maitse järgi, suurendades kiirust, muutes konstantse max_count suuremaks või vähendades seda, muutes max_count väiksemaks. Sseg_dec - (Kirjutas Bryan Mealy): see moodul võtab sisendiks 8 -bitise numbri, mille ta dekodeerib, teisendades numbri kümnendkoha ekvivalendiks ja seejärel väljastab seitsme segmendi kuva. Selle faili toimimiseks peate veenduma, et teie piirangud vastavad meie omadele.
Pone: see on nihkeregister, mis nihutab bitte vasakule, lisades ühe kuuma biti, et näha, nagu võimsusmõõtur suureneb. Kui kõik bitid on kuumad, lähtestatakse kõik bitid väärtusele "0" ja tsükkel algab otsast peale.
Ptwo: See on P1 mooduli ümberpööratud versioon.
Deductor1: See on kombinatsioon vahetuste registrist ja lahutajast. Nihkeregister läheb P1 vahetusregistri vastassuunas, näidates mahaarvamist. See lahutab ka mängija 2 tervisest 1 iga tsükli kohta, nii et nende kahe funktsiooni kombinatsiooni korral tundub, et vastase tervis väheneb 1 võrra iga allapoole läinud terviseriba viite kohta.
Deductor2: See on Deductor1 mooduli ümberpööratud versioon.
PlayDecoder (laenatud ja veidi muudetud saidilt ekchen35649 tema 133 juhendatav):
Seda kasutatakse menüü olekus sõna “PLAY” kuvamiseks seitsme segmendi dekoodris.
Mida teha: pildid, video
Soovitan:
[2020] Kahe (x2) mikro: bitti kasutamine RC -auto juhtimiseks: 6 sammu (koos piltidega)
[2020] Kahe (x2) mikro: bitti kasutamine RC auto juhtimiseks: kui teil on kaks (x2) mikro: bitti, kas olete mõelnud neid kasutada RC auto kaugjuhtimiseks? Saate juhtida RC -autot, kasutades saatjana üht mikro: bitti ja vastuvõtjana teist. Kui kasutate MakeCode redaktorit mikro: b
Kahe nupuga releelüliti: 3 sammu
Kahe nupuga releelüliti: see artikkel näitab teile, kuidas lülitit sisse ja välja lülitada. Seda vooluringi saab teha kahe lülitiga. Vajutate ühele lülitile ja lambipirn lülitub sisse. Vajutate teisele lülitile ja pirn lülitub välja. Kuid see Ins
Kahe jäljega ostsilloskoop: 11 sammu (piltidega)
Dual Trace ostsilloskoop: Kui ma ehitasin oma eelmist miniostsilloskoopi, tahtsin näha, kui hästi suudan oma väikseima ARM -mikrokontrolleri STM32F030 (F030) täita ja see tegi head tööd. Ühes kommentaaris pakuti välja, et " Sinine pill " koos STM32F103 -ga
DIY pööratav kahe mootoriga: 10 sammu (piltidega)
Isetegemine kahe mootoriga pööratav: Alguses tahan alati saada tulistavat pöördlauda ja hiljuti avastasin, et juhtumisi oli kaks tühikäigul töötavat mootorit. Niisiis, mõtlesin, kas saaksin nendega turnida. Ilma pikema jututa proovin seda! Põhimõte: vähendamine
Konkurentsivõimeline helisüsteem: 5 sammu
Konkurentsivõimeline helisüsteem: selles projektis välja töötatud konkurentsisummer töötab sarnaselt piirkondlikel ja riiklikel teadusringide võistlustel kasutatavate helisüsteemidega. See projekt oli inspireeritud minu kaasamisest oma keskkooli teadusnõu meeskonda kolm