2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:09
Boste potrebovali:
1. Digilent Basys 3, plošča FPGA (ali katera koli druga FPGA,)
2. Relativno posodobljena različica Vivada ali kakšnega drugega okolja VHDL
3. Računalnik, ki lahko zažene omenjeni program.
1. korak: Igra sama
Kako FSM sodeluje z moduli.
Kako igrati
Za začetek pritisnite srednji gumb. To bo povzročilo, da se na sedemsegmentnem zaslonu prikaže "99", ki predstavlja zdravje igralca dva. Nato bodo LED zasvetile zaporedno od desne proti levi. To tvori napajalno palico. Ko je polnilnik poln, se ponastavi. Cilj igralca ena je, da obrne stikalo, ko je črta čim višja. Več kot sveti LED, več škode naredi igralec drugemu igralcu. Ko igralec prvi premakne stikalo, se povzročena škoda odšteje od zdravja igralca drugega. Nato preide na vrsto igralca dva. Zdaj prikazana številka prikazuje zdravje igralca, vrstica za vklop se napolni od leve proti desni. Ko igralec dva naredi svoj korak, se škoda odšteje in spet je na vrsti igralec. To se ponavlja, dokler en igralec ne doseže 0 zdravja. Videoposnetek tega delovanja je priložen.
2. korak: FSM
Ta igra je v bistvu en velik končni stroj, v katerem se dogaja neka zapletena logika, ki temelji na stanju, v katerem je FSM.
Stanje 1: Meni Prvo stanje je zaslon menija, ki je eno enostavnejših stanj. Vključuje sedem segmentni zaslon, ki prikazuje besedo »PLAY«, in gumb, ki povzroči začetek igre. Gumb BTN nas pripelje do naslednjega stanja, ki je na vrsti za igralca.
2. stanje: Na vrsti je prvi igralec
Na vrsti igralec aktivira signal, ki povzroči, da sedemsegmentni zaslon prikazuje zdravje igralca dva. Vklopi se še en signal za aktiviranje registra premikov, uvoženega iz drugega modula, ki smo ga ustvarili (Pone.vhd). Ta premični register povzroči, da LED zasveti tako, kot bi se v drugih igrah povečeval merilnik moči, nato pa bi se ponastavil na 0, ko doseže največjo količino LED, ki bi jo lahko prižgali. Posodablja se o naraščajočem robu ure, pridobljenem iz barclock.vhd, ki je spremenjen iz izposojene laboratorijske datoteke. Imeli smo igralčevo palico, ki se je začela z desne strani in zapolnila do leve, ker je stikalo igralca tudi na levi (za intuitivno uporabniško izkušnjo). Ko je stikalo obrnjeno, se stanje premakne na odbitek enega igralca in količina aktivne LED diode se shrani v signal.
Stanje 3: Odbitek enega igralca Signal z količino aktivne LED diode določa količino zdravja, ki se odšteje. To naredimo tako, da imamo drug premični register (deductor1.vhd), ki namesto da bi povečal LED, jih zmanjšal. To zmanjšuje naraščajoči rob enega od modulov ur div, ki smo si ga sposodili in spremenili (downcounterclock.vhd). Ko je ena LED izklopljena, se ena točka zdravja odšteje od celotnega zdravja igralca dva. Če med tem procesom igralec dva doseže 0 zdravja, se ustavimo in takoj preidemo v stanje »Game over«. V nasprotnem primeru, ko LED vektor doseže "0000000000000000", preidemo na potezo igralca dva.
Stanje 4: Zavoj igralca dva Zaigra igralca dva je popolnoma enak potezi igralca enega, le da se premični register zanj (Ptwo.bhd) premika od leve proti desni, stikalo pa je na desni strani deske. Aktivira se signal za prikaz stanja zdravja igralca 1. Ko je stikalo 2 aktivno, se to premakne na odbitni obrat igralca dva.
5. stopnja: Odbitek za drugega igralca Tako kot na vrsti za drugega igralca drugi odbitek deluje podobno kot odbitni igralec prvega igralca. Glavna razlika je v tem, da premični register, ki nadzoruje izklop LED, gre v nasprotni smeri, kar je enostavno spremeniti, ko igralec pravilno odšteje.
Korak 6: Konec igre Če igralec kadar koli doseže nič, se igra preklopi v to stanje. Nič lepega prikaza. Če pritisnete tipko BTN one, se stanje povrne na 99, stanje pa se vrne v meni, s čimer se igra začne znova.
3. korak: moduli
Diagram črne škatle za igro
Spodnja ura (na podlagi modula clk_div.vhd avtorja Bryana Mealyja):
To je ura, ki upravlja čas odbitkov. Konstanta z imenom max_count je 3x večja od konstante max_count barclock. Tako bodo odbitki 3x počasnejši od hitrosti palice.
Barclock - (na podlagi modula clk_div.vhd avtorja Bryan Mealy):
Ta ura obravnava časovni razpored merilnikov moči, ki smo jih hitro povečali, da bi igri dodali težave. Ta čas lahko prilagodite po svojih željah, povečate hitrost tako, da konstanto max_count povečate ali zmanjšate, tako da max_count postane manjše število. Sseg_dec - (Napisal Bryan Mealy): Ta modul za vnos vzame 8 -bitno število, ki ga dekodira, pretvori število v decimalni ekvivalent in nato izpiše na zaslon s sedmimi segmenti. Če želite, da ta datoteka deluje, se prepričajte, da se vaše omejitve ujemajo z našimi.
Ponedeljek:
To je premični register, ki premakne bite v levo in doda en vroč bit, da bo videti, kot da se merilnik moči povečuje. Ko so vsi biti vroči, se vsi biti ponastavijo na '0' in cikel se začne znova.
Ptwo:
To je obrnjena različica modula P1.
Odvodnik1:
To je kombinacija registra premikov in odštevalnika. Register premikov gre v nasprotni smeri registra premikov P1, kar kaže na odbitek. To tudi odšteje 1 od zdravja igralca 2 za vsak cikel ure, zato bo s kombinacijo teh dveh funkcij videti, da se zdravje nasprotnika zmanjšuje za 1 za vsak led zdravstvene vrstice, ki se zniža.
Deductor2: To je obrnjena različica modula Deductor1.
PlayDecoder (izposojeno in slgihtly spremenjeno iz ekchen35649 njegovih 133 navodil): To se uporablja v stanju menija za prikaz besede »PLAY« na sedemsegmentnem dekoderju.
4. korak: Preizkusite
To igro je prvotno navdihnila ena od mini iger iz Kirbyja. To je preprosta igra za dva igralca, ki jo lahko igrate na deski Basys 3 ali kateri koli FPGA.
1. korak: Potrebni materiali
Potrebovali boste: Digilent Basys 3, ploščo FPGA (ali katero koli drugo) Relativno posodobljeno različico Vivada ali kakšno drugo okolje vhdl Računalnik, ki lahko izvaja omenjeni program A možgani
2. korak: Igra sama
Kako igrati
Za začetek pritisnite srednji gumb. To bo povzročilo, da se na sedemsegmentnem zaslonu prikaže "99", ki predstavlja zdravje igralca dva. Nato bodo LED zasvetile zaporedno od desne proti levi. To tvori napajalno palico. Ko je polnilnik poln, se ponastavi. Cilj igralca ena je, da obrne stikalo, ko je črta čim višja. Več kot sveti LED, več škode naredi igralec drugemu igralcu. Ko igralec prvi premakne stikalo, se povzročena škoda odšteje od zdravja igralca drugega. Nato preide na vrsto igralca dva. Zdaj prikazana številka prikazuje zdravje igralca, vrstica za vklop se polni od leve proti desni. Ko igralec dva naredi svoj korak, se škoda odšteje in spet je na vrsti igralec. To se ponavlja, dokler en igralec ne doseže 0 zdravja. Videoposnetek tega delovanja je priložen.
Če želite igrati igro, jo naložite na basys desko in pritisnite srednji gumb. Poskusite obrniti stikalo s čim več aktivnimi LED diodami, nato pa počakajte in opazujte, kako deska odšteje te točke od zdravja vašega nasprotnika. Nato ga posredujte prijatelju in
3. korak: FSM
Ta igra je v bistvu en velik končni stroj, v katerem se dogaja neka zapletena logika, ki temelji na stanju, v katerem je FSM.
(Diagram stanja)
Stanje 1: Meni
Prvo stanje je zaslon menija, ki je eno enostavnejših stanj. Vključuje sedem segmentni zaslon, ki prikazuje besedo »PLAY«, in gumb, ki povzroči začetek igre. Gumb BTN nas pripelje do naslednjega stanja, ki je na vrsti za igralca.
2. stanje: Na vrsti je prvi igralec
Igralec na vrsti aktivira signal, ki povzroči, da sedemsegmentni zaslon prikazuje zdravje igralca dva. Vklopi se še en signal za aktiviranje registra premikov, uvoženega iz drugega modula, ki smo ga ustvarili (Pone.vhd). Ta premični register povzroči, da LED zasveti tako, kot bi se v drugih igrah povečeval merilnik moči, nato pa bi se ponastavil na 0, ko doseže največjo količino LED, ki bi jo lahko prižgali. Posodablja se o naraščajočem robu ure, pridobljenem iz barclock.vhd, ki je spremenjen iz izposojene laboratorijske datoteke. Vrstica igralca ena se je začela z desne strani in napolnila do leve, ker je stikalo igralca tudi na levi (za intuitivno uporabniško izkušnjo). Ko je stikalo obrnjeno, se stanje premakne na odbitek enega igralca in količina aktivne LED diode se shrani v signal.
Stanje 3: Igralec ena odšteje
Signal s količino aktivne LED diode določa količino zdravja, ki se odšteje. To naredimo tako, da imamo drug premični register (deductor1.vhd), ki namesto povečuje LED, jih zmanjšuje. To zmanjšuje naraščajoči rob enega od modulov ur div, ki smo si ga sposodili in spremenili (downcounterclock.vhd). Ko je ena LED izklopljena, se ena točka zdravja odšteje od celotnega zdravja igralca dva. Če med tem procesom igralec dva doseže 0 zdravja, se ustavimo in takoj preidemo v stanje »Game over«. V nasprotnem primeru, ko LED vektor doseže "0000000000000000", preidemo na potezo igralca dva.
Stanje 4: Na vrsti je igralec dva
Zavoj igralca dva je popolnoma enak potezi igralca enega, le da premični register zanj (Ptwo.bhd) gre od leve proti desni, stikalo pa je na desni strani deske. Aktivira se signal za prikaz stanja zdravja igralca 1. Ko je stikalo 2 aktivno, se to premakne na odbitni obrat igralca dva.
5. stopnja: Odbitek za drugega igralca
Tako kot na vrsti igralec dva, igralec dva odbija zelo podobno odbitku igralca enega. Glavna razlika je v tem, da premični register, ki nadzoruje izklop LED, gre v nasprotni smeri, kar je enostavno spremeniti, ko igralec pravilno odšteje.
Korak 6: Konec igre Če igralec kadar koli doseže nič, se igra preklopi v to stanje. Nič lepega prikaza. Če pritisnete tipko BTN one, se stanje povrne na 99, stanje pa se vrne v meni, s čimer se igra začne znova.
Črna škatla
4. korak: moduli
Spodnja ura (na podlagi modula clk_div.vhd avtorja Bryana Mealyja):
To je ura, ki upravlja čas odbitkov. Konstanta z imenom max_count je 3x večja od konstante max_count barclock. Tako bodo odbitki 3x počasnejši od hitrosti palice.
Barclock - (na podlagi modula clk_div.vhd avtorja Bryana Mealyja): Ta ura obravnava časovni razpored merilnikov moči, ki smo jih hitro povečali, da bi igri dodali težave. Ta čas lahko prilagodite po svojih željah, povečate hitrost tako, da konstanto max_count povečate ali zmanjšate, tako da max_count postane manjše število. Sseg_dec - (Napisal Bryan Mealy): Ta modul za vnos vzame 8 -bitno število, ki ga dekodira, pretvori število v decimalni ekvivalent in nato izpiše na zaslon s sedmimi segmenti. Če želite, da ta datoteka deluje, se prepričajte, da se vaše omejitve ujemajo z našimi.
Pone: To je premični register, ki premakne bitove v levo in doda en vroč bit, da bo videti, kot da se merilnik moči povečuje. Ko so vsi biti vroči, se vsi biti ponastavijo na '0' in cikel se začne znova.
Ptwo: To je obrnjena različica modula P1.
Deductor1: To je kombinacija premičnega registra in odštevalnika. Register premikov gre v nasprotni smeri registra premikov P1 in označuje odbitek. To tudi odšteje 1 od zdravja igralca 2 za vsak cikel ure, tako da bo s kombinacijo teh dveh funkcij videti, da se zdravje nasprotnika zmanjšuje za 1 za vsako vodilo zdravstvene vrstice, ki se zniža.
Deductor2: To je obrnjena različica modula Deductor1.
PlayDecoder (izposojeno in nekoliko spremenjeno iz ekchen35649 njegovih 133 navodil):
To se uporablja v stanju menija za prikaz besede »PLAY« na sedemsegmentnem dekoderju.
Naloge: slike, video
Priporočena:
Retro arkadna miza za 2 igralca Micro Center: 20 korakov
Retro Arcade Stand-Up za 2 igralca podjetja Micro Center: Vaš lokalni Micro Center zdaj vsebuje vse, kar potrebujete za izdelavo lastne omare Retro Arcade na osnovi Raspberry Pi. Kompleti so popolnoma prilagodljivi, vključujejo omarico, Raspberry Pi, gumbe, igralne palice, avdio in video dodatke itd. To je
PCB za 2 igralca: 3 koraka
PCB za dva igralca pong: V tem priročniku lahko sestavite prenosno igro pong za 2 igralca. Ta zasnova je nastala okoli kode, ki jo je na GitHubu objavil Onur Avun. Ustvarjal sem ta projekt, upam, da vam bo všeč
Tap Tap Rainbow - igra za hiter odziv za 2 igralca: 4 koraki (s slikami)
Tap Tap Rainbow - igra za dva igralca s hitrim odzivom: pred dvema tednoma je imela moja hči genialno idejo, da naredi igro hitre reakcije z mavričnimi barvami (ona je mavrični strokovnjak: D). Ideja mi je bila takoj všeč in začeli smo razmišljati, kako bi jo lahko spremenili v pravo igro. Imate mavrico v
Igre za enega igralca z LED trakom za enega igralca z lestvico rezultatov: 10 korakov
Igre za enega igralca z LED -trakom za enega igralca z lestvico rezultatov: Najprej molite boga za vsa ljudstva po svetu, Bog nam lahko v tem času le pomaga in nam da mir. Vsi smo zaprti in nikamor ne gremo. Nimam več dela, zato začnite preučevati python na spletu in si ne morete misliti
8x16 LED Matrix pong igra (2 vesla na igralca): 3 koraki
8x16 LED Matrix Pong igra (2 različici vesla na igralca): navdihnilo me je veliko različic klasične igre Pong, izvedene na Arduinu z uporabo matrike LED 8x8. V tem navodilu vam bom pokazal, kako sestaviti mojo najljubšo različico ponga, ki ima dva igralca - napadalca in vratarja - na igralca.