Sisukord:

Arduino Sorta Sudoku mäng: 3 sammu (piltidega)
Arduino Sorta Sudoku mäng: 3 sammu (piltidega)

Video: Arduino Sorta Sudoku mäng: 3 sammu (piltidega)

Video: Arduino Sorta Sudoku mäng: 3 sammu (piltidega)
Video: SUKHMANI SAHIB FAST 5 PATHS / ਸੁਖਮਨੀ ਸਾਹਿਬ 5 ਪਾਠ ਫਾਸਟ 2024, November
Anonim
Arduino Sorta sudoku mäng
Arduino Sorta sudoku mäng

Paljudele inimestele meeldib Sudokut mängida ja lapselastele meeldib arvamismängud, nii et otsustasin teha kaasaskantava “Sorta Sudoku” mängu. Minu versioonis on mäng 4x4 ruudustik, kuid pakutakse ainult ühte numbrit. Idee on arvutada ülejäänud numbrid kõige vähemate katsetega. See on lihtne mäng, kuid see võib olla sõltuvusttekitav, kui püüate saavutada täiuslikku tulemust 15. Mäng nõuab nii õnne kui ka loogikat ja parim tulemus, mida ma seni näinud olen, on 16. Vaadake, sest isegi kui te pole mängu ehitamisest huvitatud, võib tarkvara mõningaid elemente kasutada ühes oma projektis.

Samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
Riistvara

Riistvara võib põhineda peaaegu igal Arduino versioonil. Tegin prototüüpimise Nano abil ja põletasin seejärel koodi ATMega328 kiibiks. See on sama kiip, mida kasutatakse nanos, kuid selle kasutamine iseenesest võimaldab kompaktsemat ehitust ja väiksemat energiatarbimist. Nagu näete, ehitasin vooluringi väikesele leivaplaadile, mis on LCD -moodulil tagasi. Teine aspekt, mis erineb, on see, et Nano töötab välise kristalli abil sagedusel 16 MHz, kuid ma otsustasin ATMega328 kiibi jaoks kasutada sisseehitatud 8 MHz ostsillaatorit. See säästab osi ja energiat.

2004. aasta LCD liidesed Arduinoga samamoodi nagu 1602 LCD. Huvitav erinevus on kuvamiskohtade aadressides. Ilmselgelt on erinevus, sest kahe rea asemel on neli rida, kuid 2004. aastal on kolmas rida esimese rea pikendus ja neljas rida teise rea pikendus. Teisisõnu, kui teil oleks testprogramm, mis lihtsalt saatis LCD -le tähemärkide rea, ilmuks 21. märk kolmanda rea alguses ja 41. märk liigub tagasi esimese rea algusesse. Tarkvara tegeleb selle erinevusega LCD -aadressi otsingu tabeliga.

Mängu sisendiks on omatehtud 4x4 lülitusmaatriks. Iga lüliti vastab otse ekraanil olevale samaväärsele asukohale. Samuti on toitelüliti ja lähtestuslüliti. Lähtestuslüliti kustutab vana mängu ja loob uue mängu.

Otsustasin muuta oma versiooni aku toiteks, nii et kasutasin tavalist 18650 liitium-ioon, 3,6-voldist akut. See nõudis, et lisan väikese tahvli, mis võimaldab USB -laadimist, ja teise väikese tahvli, et tõsta aku ja pinge LCD -le ja ATMega kiibile 5 volti. Piltidel on näha minu kasutatud moodulid, kuid on ka kõik-ühes mooduleid, mis täidavad mõlemat funktsiooni.

Samm 2: Tarkvara

Tarkvara on sama nii Nano kui ka ATMega328 kiibi puhul. Ainus erinevus on programmeerimismeetodis. Kasutan oma LCD -tarkvara paljaste versioonide ja klaviatuurimaatriksi dekodeerimistarkvara. Need on projekti jaoks eraldiseisvad failid.

Mängu loomisel kasutatakse käske “random” ja “randomSeed”. Lisasin “seemne” EEPROM -i salvestuse, et tagada iga sisselülitamisel erinev järjestus. Mõistatuse read on tuletatud 24-elemendilisest otsimismassiivist. Esimesed kolm rida valitakse tabelist juhuslikult, kontrollides, kas valitud rida ei ole eelmise reaga vastuolus. Viimane rida täidetakse käsitsi, kuna sellel hetkel on ainult üks võimalik muster. Pärast seda on vaja lihtsalt klaviatuuri maatriksit skannida ja klahvivajutusi numbriteks teisendada.

Numbri äraarvamiseks vajutage korduvalt vastavat lülitit. Iga vajutus suurendab kuvatavat numbrit. Kui ületate soovitud numbri, jätkake vajutamist. Kui vabastate lüliti hetkeks, lukustub see viimati kuvatud numbrisse. Kui number on vale, kustutab see numbri ja võite uuesti proovida. Iga oletus suurendab kuvatavat loendurit ja kui arv on õigesti ära arvatud, on see maatrikslüliti tegelikult välja lülitatud.

3. samm: kuvab

Kuvab
Kuvab
Kuvab
Kuvab
Kuvab
Kuvab

Siin on mõned pildid erinevatest näidikutest.

Soovitan: