Satura rādītājs:

Arduino Sorta Sudoku spēle: 3 soļi (ar attēliem)
Arduino Sorta Sudoku spēle: 3 soļi (ar attēliem)

Video: Arduino Sorta Sudoku spēle: 3 soļi (ar attēliem)

Video: Arduino Sorta Sudoku spēle: 3 soļi (ar attēliem)
Video: The Simplest Ruleset In Sudoku 2024, Novembris
Anonim
Arduino Sorta Sudoku spēle
Arduino Sorta Sudoku spēle

Daudziem cilvēkiem patīk spēlēt Sudoku, bet mazbērniem patīk minēšanas spēles, tāpēc es nolēmu izveidot portatīvu “Sorta Sudoku” spēli. Manā versijā spēle ir 4x4 režģis, bet ir norādīts tikai viens numurs. Ideja ir uzminēt pārējos skaitļus pēc iespējas mazāk mēģinājumu. Tā ir vienkārša spēle, taču tā var būt aizraujoša, jo jūs meklējat perfektu rezultātu 15. Spēlei ir vajadzīgs gan veiksmes elements, gan loģika, un labākais rezultāts, ko līdz šim esmu redzējis, ir 16. Paskatieties, jo pat ja jūs neinteresē spēles veidošana, iespējams, ir daži programmatūras elementi, kurus varat izmantot kādā no saviem projektiem.

1. darbība. Aparatūra

Aparatūra
Aparatūra
Aparatūra
Aparatūra
Aparatūra
Aparatūra

Aparatūras pamatā var būt gandrīz jebkura Arduino versija. Es veicu prototipēšanu, izmantojot Nano, un pēc tam kodu sadedzināju ATMega328 mikroshēmā. Tā ir tā pati mikroshēma, ko izmanto Nano, taču tās izmantošana pati par sevi nodrošina kompaktāku konstrukciju un mazāku enerģijas patēriņu. Kā redzat, es izveidoju ķēdi uz neliela maizes dēļa, kas atrodas uz LCD moduļa. Otrs atšķirīgais aspekts ir tas, ka Nano darbojas ar frekvenci 16 MHz, izmantojot ārēju kristālu, bet es izvēlējos ATMega328 mikroshēmai izmantot iebūvēto 8 MHz oscilatoru. Tas ietaupa detaļas un enerģiju.

2004. gada LCD savienojas ar Arduino tāpat kā 1602 LCD. Interesanta atšķirība ir displeja atrašanās vietu adresēšana. Acīmredzot pastāv atšķirība, jo divu līniju vietā ir četras līnijas, bet 2004. gadā trešā līnija ir pirmās līnijas pagarinājums, bet ceturtā līnija ir otrās līnijas pagarinājums. Citiem vārdiem sakot, ja jums būtu testa programma, kas LCD ekrānā tikko nosūtītu rakstzīmju virkni, trešās rindas sākumā tiktu parādīta 21. rakstzīme, bet 41. rakstzīme - līdz pirmās rindas sākumam. Programmatūra apstrādā šo atšķirību ar LCD adrešu meklēšanas tabulu.

Spēles ievade ir pašdarināta 4x4 slēdžu matrica. Katrs slēdzis tieši atbilst ekvivalentajai displeja vietai. Ir arī barošanas slēdzis un atiestatīšanas slēdzis. Atiestatīšanas slēdzis notīra veco spēli un ģenerē jaunu spēli.

Es nolēmu savu versiju darbināt ar akumulatoru, tāpēc es izmantoju parasto 18650 litija jonu 3,6 voltu akumulatoru. Tam bija jāpievieno neliela tāfele, lai varētu uzlādēt USB, un vēl viena maza plāksne, lai palielinātu akumulatora spriegumu līdz 5 voltiem LCD un ATMega mikroshēmai. Attēlos ir redzami manis izmantotie moduļi, taču ir arī daudzfunkciju moduļi, kas veic abas funkcijas.

2. darbība: programmatūra

Programmatūra ir vienāda gan Nano, gan ATMega328 mikroshēmai. Vienīgā atšķirība ir programmēšanas metodē. Es izmantoju savu LCD programmatūras barebones versiju un tastatūras matricas atšifrēšanas programmatūru. Tie ir atsevišķi projekta “iekļaut” faili.

Spēles izveidē tiek izmantotas komandas “random” un “randomSeed”. Es pievienoju “sēklu” saglabāšanu EEPROM, lai nodrošinātu, ka katrā ieslēgšanas reizē tiek ģenerēta atšķirīga secība. Mīklas līnijas ir iegūtas no 24 elementu uzmeklēšanas masīva. Pirmās trīs rindas tiek nejauši atlasītas no tabulas, pārbaudot, vai izvēlētā rinda nav pretrunā ar iepriekšējo rindu. Pēdējā rinda tiek aizpildīta manuāli, jo tajā brīdī būs tikai viens iespējamais raksts. Pēc tam atliek tikai skenēt tastatūras matricu un pārvērst taustiņu nospiešanu ciparos.

Lai uzminētu skaitli, atkārtoti nospiediet atbilstošo slēdzi. Katra nospiešana palielina parādīto skaitli. Ja pārsniedzat vajadzīgo numuru, vienkārši nospiediet. Atlaižot slēdzi uz sekundi, tas tiks bloķēts pēdējā parādītajā numurā. Ja numurs ir nepareizs, tas tiks izdzēsts, un jūs varat mēģināt vēlreiz. Katrs minējums palielina parādīto skaitītāju, un, kad skaitlis ir pareizi uzminēts, matricas slēdzis tiek efektīvi atspējots.

3. darbība. Displeji

Displeji
Displeji
Displeji
Displeji
Displeji
Displeji

Šeit ir daži dažādu displeju attēli.

Ieteicams: