„Arduino Sorta Sudoku“žaidimas: 3 žingsniai (su nuotraukomis)
„Arduino Sorta Sudoku“žaidimas: 3 žingsniai (su nuotraukomis)

Video: „Arduino Sorta Sudoku“žaidimas: 3 žingsniai (su nuotraukomis)

Video: „Arduino Sorta Sudoku“žaidimas: 3 žingsniai (su nuotraukomis)
Video: Работа с digitalWrite() на Arduino | Цифровой выход 2025, Sausis
Anonim
„Arduino Sorta Sudoku“žaidimas
„Arduino Sorta Sudoku“žaidimas

Daugeliui žmonių patinka žaisti „Sudoku“, o anūkams - spėlionių žaidimai, todėl nusprendžiau sukurti nešiojamąjį „Sorta Sudoku“žaidimą. Mano versijoje žaidimas yra 4x4 tinklelis, tačiau pateikiamas tik vienas numeris. Idėja yra atspėti likusius skaičius kuo rečiau. Tai paprastas žaidimas, tačiau jis gali sukelti priklausomybę, kai siekiate tobulo rezultato 15. Žaidimui reikia ir sėkmės, ir logikos, ir geriausias rezultatas, kurį iki šiol mačiau, yra 16. Pažiūrėkite, nes net Jei nesate suinteresuotas kurti žaidimą, gali būti, kad yra tam tikrų programinės įrangos elementų, kuriuos galite naudoti viename iš savo projektų.

1 žingsnis: Aparatūra

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

Techninė įranga gali būti pagrįsta beveik bet kuria „Arduino“versija. Aš sukūriau prototipą naudodamas „Nano“ir tada įrašiau kodą į „ATMega328“lustą. Tai tas pats lustas, naudojamas „Nano“, tačiau naudojant jį pats, galima kompaktiškesnę konstrukciją ir mažiau energijos. Kaip matote, aš sukūriau grandinę ant mažos duonos lentos, kuri pritvirtinta prie LCD modulio. Kitas skirtingas aspektas yra tas, kad „Nano“veikia 16 MHz dažniu, naudodamas išorinį kristalą, tačiau aš nusprendžiau naudoti įmontuotą 8 MHz osciliatorių „ATMega328“mikroschemai. Tai taupo dalis ir energiją.

2004 m. LCD jungiasi prie „Arduino“taip pat, kaip ir 1602 LCD. Įdomus skirtumas yra rodomų vietų adresavimas. Akivaizdu, kad yra skirtumas, nes yra keturios eilutės, o ne dvi, tačiau 2004 m. Trečioji eilutė yra pirmosios eilutės pratęsimas, o ketvirtoji eilutė - antrosios eilutės pratęsimas. Kitaip tariant, jei turėtumėte bandomąją programą, kuri tiesiog išsiuntė simbolių eilutę į LCD, 21 -asis simbolis būtų rodomas trečiosios eilutės pradžioje, o 41 -as simbolis suvyniotų iki pirmosios eilutės pradžios. Programinė įranga pašalina šį skirtumą su LCD adresų paieškos lentele.

Žaidimo įvestis yra naminė 4x4 jungiklio matrica. Kiekvienas jungiklis tiesiogiai atitinka lygiavertę vietą ekrane. Taip pat yra maitinimo jungiklis ir atstatymo jungiklis. Atstatymo jungiklis išvalo seną žaidimą ir sukuria naują žaidimą.

Aš nusprendžiau, kad mano versija būtų maitinama baterijomis, todėl naudojau įprastą 18650 ličio jonų, 3,6 voltų bateriją. Tam reikėjo pridėti mažą plokštę, kad būtų galima įkrauti USB, ir kitą mažą plokštę, kad akumuliatoriaus įtampa padidėtų iki 5 voltų LCD ir „ATMega“mikroschemai. Paveikslėliai rodo mano naudojamus modulius, tačiau taip pat yra „viskas viename“modulių, kurie atlieka abi funkcijas.

2 žingsnis: programinė įranga

Programinė įranga yra vienoda tiek „Nano“, tiek „ATMega328“mikroschemai. Vienintelis skirtumas yra programavimo metodas. Aš naudoju savo LCD programinės įrangos „barebones“versiją ir klaviatūros matricos dekodavimo programinę įrangą. Tai yra atskiri projekto „įtraukti“failai.

Kuriant žaidimą naudojamos komandos „random“ir „randomSeed“. Pridėjau „sėklos“išsaugojimą EEPROM, kad būtų užtikrinta, jog kiekvieno maitinimo metu sugeneruojama skirtinga seka. Dėlionės eilutės yra gautos iš 24 elementų paieškos masyvo. Pirmosios trys eilutės atsitiktinai parenkamos iš lentelės, patikrinant, ar pasirinkta eilutė neprieštarauja ankstesnei eilutei. Paskutinė eilutė užpildoma rankiniu būdu, nes tuo metu bus tik vienas galimas modelis. Po to tereikia nuskaityti klaviatūros matricą ir paversti klavišų paspaudimus skaičiais.

Norėdami atspėti skaičių, pakartotinai paspauskite atitinkamą jungiklį. Kiekvienas paspaudimas padidina rodomą skaičių. Jei peržengėte norimą skaičių, tiesiog paspauskite. Jei sekundę atleisite jungiklį, jis užrakins paskutinį rodomą skaičių. Jei skaičius neteisingas, jis bus išvalytas ir galėsite bandyti dar kartą. Kiekvienas spėjimas padidina rodomą skaitiklį ir teisingai atspėjus skaičių, matricos jungiklis išjungiamas.

3 žingsnis: rodymas

Rodo
Rodo
Rodo
Rodo
Rodo
Rodo

Štai keletas įvairių ekranų nuotraukų.