Përmbajtje:
- Hapi 1: Vendosja e ndarësit të orës
- Hapi 2: Krijimi i një makine me gjendje të fundme (FSM)
- Hapi 3: Hartëzimi i ekranit të shtatë segmenteve
- Hapi 4: Krijimi i Krahasuesit
- Hapi 5: Vendosja e një kohëmatësi
- Hapi 6: Hartimi i Gjeneratorit të Numrave Pseudo të Rastit
- Hapi 7: Krijimi i një konvertuesi
- Hapi 8: Vendosja e gjithçkaje së bashku në modulin e lojës
- Hapi 9: Probleme shtesë të hasura
- Hapi 10: Skedarët dhe kufizimet e burimit
Video: Përputhja binare në dhjetore Lojë: 10 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Ky udhëzues do të tregojë procesin dhe modulet e kërkuara për të krijuar lojën tonë të përputhjes binare me dhjetore. Brenda 60 sekondave, përdoruesit do të përkthejnë dhe futin sa më shumë numra dhjetorë të gjeneruar në mënyrë të rastësishme në ekranin e shtatë segmenteve në binar duke i kyçur çelsat dhe duke i dorëzuar me një buton me mend. Pasi të përfundojë, një rezultat përfundimtar do të shfaqet dhe më pas do të rivendoset për të luajtur përsëri.
Kuptimi i reflekseve binare dhe të shpejtë është i dobishëm për të bërë mirë, por butoni i rivendosjes sigurohet në rast se dikush dëshiron të provojë përsëri menjëherë.
Hapi 1: Vendosja e ndarësit të orës
Shtylla kurrizore e të gjithë këtij projekti vjen nga sinkronizimi i saktë i të gjitha pjesëve në këtë gizmo. Makina jonë e Gjendjes së Fundit përdor orën e brendshme, por ekrani me shtatë segmente dhe kohëmatësi duhet të përdorin një version të ndryshuar të orës.
Kjo "orë e re" vjen nga ndarja e orës së brendshme me një periudhë të dëshiruar për të arritur një frekuencë të caktuar të nevojshme për secilin komponent specifik. Kjo është bërë në laboratorët e mëparshëm dhe nga përvoja, ne e dimë se kohëmatësi ka shifrën "e dikujt" të vendosur në 0.1 Hz, dhe shifra "dhjetëra" është 1 Hz
Hyrjet: ClkIn, pjesëtues (32 bit)
Rezultatet: ClkOut
Hapi 2: Krijimi i një makine me gjendje të fundme (FSM)
Në makinën tonë të Gjendjes së Fundit, ne vendosëm që pesë gjendje (Fillimi, Shfaqja, Kontrolli, Rezultati dhe Përfundimi) do të ishin të nevojshme me pesë hyrje (fillimi, rivendosja, hamendësimi, barazimi, koha e përfundimit). Dalja e vetme në Makinën tonë Shtetërore është një numër 3 bitësh që përfaqëson gjendjen në të cilën është përdoruesi (000, 001, 011, 101, 100) në lidhje me gjendjet më poshtë.
Mos harroni se një makinë e gjendjes së fundme nuk i paraformon funksionet më poshtë, përkundrazi ajo thjesht tregon se në çfarë gjendje është programi dhe çfarë. Ajo që ndodh në të vërtetë përcaktohet nga moduli kryesor i shpjeguar më poshtë.
Gjendja e fillimit (000)
Gjendja fillestare është vendi ku përdoruesi do të fillojë derisa hyrja e fillimit të jetë e lartë, kjo është gjithashtu gjendja që do të arrihet sa herë që shtypet butoni i rivendosjes.
Gjendja e lojës (001)
Gjendja e lojës është fillimi i lojës, ku krijohet numri i rastësishëm dhe përdoruesi ndryshon çelsin për të krijuar një hyrje. Pasi të shtypet butoni me mend, loja zhvendoset në Gjendjen e Kontrollit.
Gjendja e Kontrollit (011)
Kjo gjendje është vendi ku përdoret krahasuesi, i cili do të krahasojë vlerat e hyrjes së përdoruesit dhe numrin e krijuar rastësisht. Nëse paraqitja është e saktë, vlera e barabartë është e lartë dhe FSM shkon në gjendjen e rezultatit; megjithatë, nëse paraqitja është e pasaktë, FSM kthehet përsëri në Gjendjen e Shfaqjes derisa dorëzimi të jetë i saktë.
Ky Gjendje Kontrolli ndodh relativisht shpejt në krahasim me të tjerat, pasi po ndodh vetëm për aq kohë sa shtypet butoni i kontrollit
Gjendja e pikëve (101)
Meqenëse vlera e barabartë është e lartë, parashtrimi ishte i saktë. Në këtë gjendje, vlera e rezultatit do të rritet me një dhe një numër i ri do të gjenerohet që përdoruesi të futë. Ky numër i ri na kthen në gjendjen fillestare, ku përdoruesi do të kalojë përsëri ndërprerësit.
Gjendja përfundimtare (100)
Pasi të mbarojë kohëmatësi prej 60 sekondash, hyrja e afatit do të jetë e lartë dhe përdoruesi arrin në gjendjen përfundimtare ku shfaqet rezultati përfundimtar. Hyrja e rivendosjes më pas do të shtypet dhe FSM fillon përsëri në gjendjen e fillimit.
Hyrjet: Clk, së pari, filloni, mendoni, të barabartë, timeout
Dalja: gjendje (3 bit)
Hapi 3: Hartëzimi i ekranit të shtatë segmenteve
Shfaqja e Shtatë Segmenteve është një pjesë kryesore e të gjithë projektit pasi dy shifrat e para në ekran përdoren si dalje e gjeneratorit të numrave të rastit, ndërsa dy shifrat e fundit janë kohëmatësi. Megjithëse ne kemi zbatuar një shembull të kësaj në laboratorin e fundit në aspektin e të pasurit shifra në ekran, ai u shfaq në formë heksadecimal. Për të rregulluar këtë çështje, ne përdorëm një konvertues dhe ndarës të orës që shpjegohet më poshtë më poshtë.
Ekrani tregon të gjitha 0 -të derisa FSM -ja të hyjë në gjendjen e lojës; megjithatë, në gjendjen përfundimtare, ekrani duhet të tregojë vetëm rezultatin e përdoruesit.
Meqenëse ne po përdorim të katër shifrat e ekranit të shtatë segmenteve, ne duhet të kalojmë nëpër secilën anodë mjaft shpejt në 300 Hz në mënyrë që të perceptohemi si gjithmonë të ndezur.
Hyrjet: Clk, shtatë segmente
Rezultatet: katodat (7 bit), anodat (4 bit)
Hapi 4: Krijimi i Krahasuesit
Ky nënmodul përdoret në Gjendjen e Kontrollit për sa i përket krahasimit të supozimit binar 7 -bit të futur kundrejt vlerës dhjetore aktuale.
Ne kishim një deklaratë if që vlerësonte të dy hyrjet dhe dy daljet në varësi të faktit nëse vlera e barabartë ishte apo jo e lartë ose e ulët. Sado i rëndësishëm të jetë ky modul, ai është deri tani një nga programet më të thjeshtë për tu hartuar në këtë projekt.
Hyrjet: ndërprerës (8 bit), numër (8 bit)
Rezultati: EQ
Hapi 5: Vendosja e një kohëmatësi
Kohëmatësi ynë është në thelb dy sportele të ndryshëm që po rriten me ritme të ndryshme. Një numërues në vlerën "e dikujt", (ekrani i parë me shtatë segmente) dhe një numërues për vlerën "dhjetë" (shifra e dytë në ekranin me shtatë segmente). Çdo shifër bazohet në skajin në rritje të orës dhe sapo numëruesi të arrijë 60 sekonda, koha e përfundimit do të jetë e lartë dhe loja do të përfundojë dhe do të kthehet në gjendjen e fillimit.
Hyrjet: Clk, gjendja (3 bit), fillimi
Rezultatet: Aktual (8 bit), timeout
Hapi 6: Hartimi i Gjeneratorit të Numrave Pseudo të Rastit
Një metodë tjetër alternative për një gjenerator numrash veçanërisht për këtë rast është që të ketë një numërues përsëritës nga 0-99 (në binar) që nxjerr numrin e numëruar kur hyrja është e lartë, pasi kjo do të hiqte nevojën për përdorimin e një LFSR.
Numri ndryshon çdo skaj në rritje të orës së brendshme (10 nano-sekonda) dhe kalon nëpër të gjithë 100 numrat në një mikrosekondë. Sa herë që përdoruesi dëshiron një numër të ri nga gjeneruesi i numrave, ai nxjerr numrin në të cilin ishte, Edhe pse ky proces nuk është krejt i rastësishëm, probabiliteti për të gjetur rezultate të lidhura me këtë proces është mjaft i ulët për të qenë pseudo-rastësor.
Hyrjet: Clk, changenum, të barabarta
Rezultatet: numri (8 bit)
Hapi 7: Krijimi i një konvertuesi
Një komponent i domosdoshëm është Konvertuesi, të cilin e përdorëm për të shfaqur numrat dhjetorë në ekranin me shtatë segmente në vend të heksadecimalit origjinal. Edhe pse të dy numrat bazohen në një numër binar 7 bit, ne krijuam një modul të tërë të caktuar për shndërrimin e heksadecimal në decimal.
Për shembull, nëse prodhimi ynë përfundimtar për rezultatin ishte 0010001 (shtatëmbëdhjetë), ekrani me shtatë segmente do të tregonte vlerën heksadecimale të 11, në vend të numrit dhjetor të 17.
Hyrja: Numin (8 bit)
Dalja: Numout (8 bit)
Hapi 8: Vendosja e gjithçkaje së bashku në modulin e lojës
Për komponentët tanë, ne përdorëm çelsat e nevojshëm 0-6 që përdoruesi të kalonte, me tre butona për të vepruar si hyrje të përdoruesit për fillimin, rivendosjen dhe supozimin. Komponentët e ekranit me shtatë segmente dhe orën janë gjithashtu komponentë që kemi bërë nga laboratorët e mëparshëm, por duhej të ndryshonim në mënyrë që t'i përshtatej këtij projekti.
Ne e ndajmë këtë projekt në gjashtë modulet e treguar më sipër për të zbërthyer të gjithë gizmën në shumë pjesë pune, megjithatë, mënyra e lidhjes së tyre është mjaft e ndërlikuar dhe tregohet nga fotografia e kutisë së zezë të bashkangjitur.
Ndërsa loja po ndodh, 7 LED janë ndezur për të njoftuar përdoruesin se cili ndërron të përdorë, dhe kur loja të përfundojë, ne gjithashtu programuam LED që të ndizen
Hyrjet: ndërron (8 bit), Clk, rivendos, fillo, merre me mend
Rezultatet: katodat (7 bit), anodat (4 bit), LED (7 bit)
Hapi 9: Probleme shtesë të hasura
Edhe pse vetëm shtatë ndërprerës janë përdorur në këtë lojë, kodi e ka vendosur atë si një numër 8 bitësh. Ne e bëmë këtë në mënyrë që të kemi një krahasues më të përshtatshëm që do t'i krahasojë këto 8 bit me numrin 8 bit që krijuam nga gjeneruesi i numrave të rastit.
Rezultati gjithashtu na dha pak telashe në fillim sepse e vendosëm atë të rrisë një pikë kur FSM ishte në gjendjen e rezultatit; megjithatë ajo që ndodhi në vend ishte që rezultati vazhdonte të rritej për sa kohë që gjendja ishte në gjendje, duke na dhënë një rezultat të paarsyeshëm të lartë me të cilin nuk mund të përballonim. Ne e rregulluam këtë duke shtuar një sinjal pulsi që u sinkronizua me skajin në rritje të orës, siç shihet në kodin në hapin 8.
Më në fund, kohëmatësi mori shumë kohë për të korrigjuar pasi do të shtrembërojë ekranin tonë me shtatë segmente kur ishte duke numëruar mbrapsht, kështu që na u desh ta ndryshonim atë nga numërimi nga 60 në numërimin nga 0.
Hapi 10: Skedarët dhe kufizimet e burimit
Nëse preferoni të tërhiqeni nga skedarët tanë burim në vend që të krijoni tuajat, këtu janë. Gjithashtu, skedari i kufizimit është i përfshirë.
Recommended:
Orë mikro binare: 10 hapa (me fotografi)
Ora Mikro Binare: Duke krijuar më parë një Instructable (Binary DVM), që përdor zonën e kufizuar të ekranit duke përdorur binar. Ishte vetëm një hap i vogël që më parë kishte krijuar modulin kryesor të kodit për konvertimin dhjetor në binar në krijimin e një ore binare, por t
Mini lojë "Guess the Number" Lojë me mikro: bit: 10 hapa
Mini Makina e lojës "Guess the Number" me Micro: bit: A keni luajtur ndonjëherë " Guess the Number "? Kjo është një makinë lojërash shumë e thjeshtë për t’u ndërtuar që luan " Guess the Number " me ty Ne e projektuam këtë projekt DIY për të inkurajuar lojën fizike dhe për t'i ndihmuar fëmijët të mësojnë programim. Ai përdor një MU
Lojë Microbit Tic Tac Toe Lojë: 4 hapa (me fotografi)
Microbit Tic Tac Toe Lojë: Për këtë projekt, bashkëpunëtori im - @descartez dhe unë krijuam një lojë të mrekullueshme tic tac toe duke përdorur radio funksionalitetin e mikrobitëve. Nëse nuk keni dëgjuar më parë për mikrobit, ata janë një mikrokontrollues i mrekullueshëm i krijuar për t'u mësuar fëmijëve programimin. Ata
"Përputhja e ngjyrave" (Lojë refleks): 4 hapa
"Përputhja e ngjyrave" (Lojë refleks): Hyrje: Për projektin tim shkollor nuk isha i sigurt se çfarë të bëja, por pas disa mendimeve, vendosa të bëj një lojë refleksi. Ne jemi një shkollë lojërash në fund të fundit. Ne duhej të bënim diçka interaktive dhe unike, kështu që një lojë do të ishte perfekte! Jam i lumtur se si gjithçka
Lojë binare: 9 hapa (me fotografi)
Lojë binare: Kjo është një lojë që kam krijuar në Qarqet Tinkercad për të mësuar numrat binarë. Nëse doni të ndiqni së bashku me këtë udhëzues dhe të krijoni tuajin, skedarët dhe kodi mund të gjenden në github tim në https://github.com/kee