Cuprins:

Joc Arduino Sorta Sudoku: 3 pași (cu imagini)
Joc Arduino Sorta Sudoku: 3 pași (cu imagini)

Video: Joc Arduino Sorta Sudoku: 3 pași (cu imagini)

Video: Joc Arduino Sorta Sudoku: 3 pași (cu imagini)
Video: "Ndava shtratin për 25 vite", shokon burri: Gruaja e djali me ngritën kurthin e SMS kërcënuese Pj.1 2024, Noiembrie
Anonim
Joc Arduino Sorta Sudoku
Joc Arduino Sorta Sudoku

Multor oameni le place să joace Sudoku, iar nepoților le plac jocurile de ghicit, așa că am decis să fac un joc portabil „Sorta Sudoku”. În versiunea mea, jocul este o grilă 4x4, dar este furnizat un singur număr. Ideea este să ghiciți restul numerelor în cele mai puține încercări. Este un joc simplu, dar poate fi un fel de captivant pe măsură ce urmărești scorul perfect de 15. Jocul necesită atât un element de noroc, cât și logică, iar cel mai bun scor pe care l-am văzut până acum este 16. Aruncă o privire pentru că chiar dacă nu sunteți interesat de construirea jocului, ar putea exista unele elemente ale software-ului pe care le puteți utiliza într-unul din propriile dvs. proiecte.

Pasul 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Hardware-ul se poate baza pe aproape orice versiune Arduino. Am făcut prototipurile folosind un Nano și apoi am ars codul într-un cip ATMega328. Acesta este același cip folosit în Nano, dar utilizarea lui de la sine permite o construcție mai compactă și un consum mai mic de energie. După cum puteți vedea, am construit circuitul pe o placă mică, care se află pe modulul LCD. Celălalt aspect diferit este că Nano rulează la 16 MHz folosind un cristal extern, dar am ales să folosesc oscilatorul încorporat de 8 MHz pentru cipul ATMega328. Acest lucru economisește piese și energie.

LCD-ul din 2004 se conectează la Arduino în același mod ca un LCD 1602. O diferență interesantă constă în adresarea locațiilor de afișare. Evident, există o diferență, deoarece există patru linii în loc de două, dar, în 2004, a treia linie este o extensie a primei linii, iar a patra linie este o extensie a celei de-a doua linii. Cu alte cuvinte, dacă ați avea un program de testare care tocmai a trimis un șir de caractere pe ecranul LCD, cel de-al 21-lea personaj ar apărea la începutul celei de-a treia linii, iar cel de-al 41-lea personaj se întoarce la începutul primei linii. Software-ul gestionează această diferență cu un tabel de căutare a adresei LCD.

Intrarea pentru joc este o matrice de comutare de casă 4x4. Fiecare comutator corespunde direct locației echivalente de pe afișaj. Există, de asemenea, un comutator de alimentare și un comutator de resetare. Comutatorul de resetare șterge jocul vechi și generează un joc nou.

Am decis să fac versiunea mea alimentată cu baterie, așa că am folosit o baterie comună Li-ion 18650, de 3,6 volți. Acest lucru a necesitat să adaug o placă mică pentru a permite reîncărcarea USB și o altă placă mică pentru a crește tensiunea bateriei la 5 volți pentru LCD și cipul ATMega. Imaginile arată modulele pe care le-am folosit, dar există și module all-in-one care îndeplinesc ambele funcții.

Pasul 2: Software

Software-ul este același atât pentru cipul Nano, cât și pentru cipul ATMega328. Singura diferență constă în metoda de programare. Folosesc propria mea versiune barebones a software-ului LCD și software-ul de decodare a matricei tastaturii. Acestea sunt fișiere separate „include” pentru proiect.

Comenzile „random” și „randomSeed” sunt folosite pentru a ajuta la crearea jocului. Am adăugat o salvare în EEPROM a „seed” pentru a mă asigura că se generează o secvență diferită la fiecare pornire. Liniile pentru puzzle sunt derivate dintr-o matrice de căutare de 24 de elemente. Primele trei rânduri sunt selectate aleatoriu din tabel, cu verificări pentru a vă asigura că o linie selectată nu intră în conflict cu o linie anterioară. Ultima linie este completată manual, deoarece va exista un singur model posibil în acel moment. După aceea, este doar o chestiune de scanare a matricei tastaturii și convertirea apăsărilor de taste pe numere.

Pentru a ghici un număr, apăsați comutatorul corespunzător în mod repetat. Fiecare apăsare mărește numărul afișat. Dacă depășiți numărul dorit, continuați să apăsați. Dacă eliberați comutatorul pentru o secundă, acesta se va bloca în ultimul număr afișat. Dacă numărul este incorect, acesta va fi șters și puteți încerca din nou. Fiecare presupunere mărește contorul afișat și odată ce un număr este ghicit corect, acel comutator de matrice este efectiv dezactivat.

Pasul 3: Afișează

Afișează
Afișează
Afișează
Afișează
Afișează
Afișează

Iată câteva imagini ale diferitelor afișaje.

Recomandat: