INHOUDSOPGAWE:
- Stap 1: Oorsig
- Stap 2: materiaal
- Stap 3: Maak die spel
- Stap 4: Toekomstige wysigings
- Stap 5: Gevolgtrekking
Video: Mynveër: 5 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Vir ons finale CPE 133-projek het ek en Chase besluit om 'n 'Minesweeper'-speletjie te skep wat gebruik maak van knoppies en wissel-insette vanaf 'n Basys-3-bord sowel as VHDL-kode. 'N Beter naam vir die spel kan heel moontlik' Russian Roulette 'wees, maar ons wou 'n meer gesinsvriendelike naam hê. Die spel behels dat die gebruiker op die middelste knoppie op die Basys -bord druk om een van die 16 skakelaars lukraak toe te ken om 'aktief' te wees met 'n bom. Twee spelers draai dan om die beurt die skakelaars een vir een om, totdat een van die spelers die skakelaar met die 'bom' omdraai. As dit gebeur, waarsku die spelers met sewe segmente dat die speler pas die wedstryd verloor het.
Stap 1: Oorsig
Die projek het baie van die VHDL -modules gebruik wat ons gedurende hierdie kwartaal gebruik het. 'N Vierbiteller is saam met die klokrand gebruik om 'n ewekansige vierbitgetal te simuleer om een van die skakelaars te aktiveer. 'N Toestanddiagram is ook gebruik om verskillende woorde na die sewe segment vertoning uit te voer, wat wissel van' SPEEL 'wanneer die spelers in die middel van hul spel is, tot' VERLOOR 'as een van die spelers die aktiewe skakelaar omgedraai het.
Stap 2: materiaal
- Basys3 Development Board van Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (hierdie lêer is aan ons verskaf op Polylearn en is geskryf deur Bryan Mealy)
- 'N 4 -bits toonbank gemaak van T -slippers
- 'N FSM
Stap 3: Maak die spel
Die eerste stap in die rigting van die maak van hierdie speletjie was om 'n stroombaandiagram te teken met al die komponente wat ons gaan gebruik. Insette vir hierdie stelsel was knoppie 1, die 16 skakelaars en die klok. Uitsette was die sewe segment vertoning en die anodes. Nadat ons die kringdiagram geteken het, het ons individuele bronlêers vir elke komponent in Vivado geskryf en saamgestel met behulp van poortkaarte onder die hoofbronlêer.
Die hele spelbasis draai om die toevallige toewysing van een van die 16 skakelaars met 'n bom, en dat die spelers nie weet watter skakelaar aktief is totdat die aktiewe skakelaar aangeskakel is nie. Ons het aanlyn na willekeurige en pseudo-ewekansige genereerders gekyk, maar uiteindelik het ons besluit dat die gebruik van 'n 4-bis teller en die toewysing van die ooreenstemmende skakelaar aktief genoeg willekeurig is vir wat ons soek. Ons kon ons 4-bis teller wat ons in 'n vorige projek geskep het, hergebruik om vir hierdie opdrag te kan werk. Ons het die toonbank gebruik om 'n ewekansige getal tussen 0-15 te skep; dan het ons in die hoof 1 -komponent die desimale ekwivalent van die ewekansige getal aan die ooreenstemmende skakelaar op die bord toegeken. Soos gesien in die skematiese weergawe, gaan beide die uitset X ('aktiewe bom') van die hoof 1 -komponent en die skakelaars wat die spelers aanskakel na FSM1. Die staatsmasjien gee 'n Z -waarde van een bis uit, wat dan deur BC_DEC1 gelees word. Die Finite State -masjien wat ons gebruik het, het twee verskillende toestande: in toestand A lewer die sewe segment -vertonings 'PLAY' uit en die masjien bly in daardie toestand totdat dit besef dat die geaktiveerde skakelaar omgedraai is. Sodra dit gebeur, gaan die FSM na staat B, waar dit 'LOSE' na die sewesegmentweergawe stuur en in daardie toestand bly totdat al 16 skakelaars na '0' gedraai word. As aan hierdie voorwaarde voldoen is, gaan die FSM weer na staat A en wag die spelers om 'n ander wedstryd te begin. 'N Moore -diagram om hierdie FSM te help verstaan, word hierbo getoon.
Stap 4: Toekomstige wysigings
'N Paar wysigings wat ons oorweeg het om ons spel aan te bring, sluit in die toevoeging van meer bomme op die veld (moontlik van een na drie), 'n tellingteller en verskeie rondes. Ons het uiteindelik teen hierdie verbeterings besluit, aangesien ons gevind het dat 'n langer, uitgebreide wedstryd gewoonlik meer gespanne en uiteindelik lekkerder was as 'n wedstryd wat gewoonlik geëindig het na drie of vier skakelings.
Stap 5: Gevolgtrekking
Ons was baie tevrede met die eindresultaat van hierdie projek; nie net omdat die finale weergawe van die speletjie lekker was om te speel nie, maar ook omdat die ontwerp en programmering van die projek ons vereis het om die meeste te gebruik, indien nie alles wat ons hierdie kwartaal geleer het nie. Ons gebruik flip -flops, tellers, FSM's, die klok, gebruikersinvoer van die bord en uitvoer na die sewe segment -skerm.
Ons het ook geleer hoe 'n paar sintaksisfoute die program heeltemal kan breek (selfs al sou dit in ander programmeertale soos Python of Java as goed geag word), en dit slegs nadat verskeie simulasies en verskeie herhalings van die kode opgelaai en getoets is op die bord, sal u uiteindelik al die foute uit u kode kan uitwerk?
Aanbeveel:
Neem wonderlike foto's met 'n iPhone: 9 stappe (met foto's)
Neem wonderlike foto's met 'n iPhone: die meeste van ons dra deesdae 'n slimfoon oral, daarom is dit belangrik om te weet hoe u u slimfoonkamera kan gebruik om fantastiese foto's te neem! Ek het net 'n paar jaar 'n slimfoon gehad, en ek hou daarvan om 'n ordentlike kamera te hê om dinge te dokumenteer wat ek
Raspberry Pi -boks met koelventilator met CPU -temperatuuraanwyser: 10 stappe (met foto's)
Raspberry Pi Box of Cooling FAN Met CPU Temperature Indicator: Ek het framboos pi (Hierna as RPI) CPU temperatuur aanwyser stroombaan in die vorige projek bekendgestel. Die kring wys eenvoudig RPI 4 verskillende CPU temperatuur vlakke soos volg.- Groen LED aangeskakel wanneer CPU temperatuur is binne 30 ~
Howto: Raspberry PI 4 Headless (VNC) installeer met Rpi-imager en foto's: 7 stappe (met foto's)
Howto: Raspberry PI 4 Headless (VNC) installeer met Rpi-imager en foto's: ek is van plan om hierdie Rapsberry PI te gebruik in 'n klomp prettige projekte in my blog. Kyk gerus daarna. Ek wou weer my Raspberry PI gebruik, maar ek het nie 'n sleutelbord of muis op my nuwe plek gehad nie. Dit was 'n rukkie sedert ek 'n Framboos opgestel het
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer