Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:robert:sudoku [2022/05/27 22:38]
claudiu.axinia [Bibliografie/Resurse]
pm:prj2022:robert:sudoku [2022/05/27 23:56] (current)
claudiu.axinia [Download]
Line 17: Line 17:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +==== Lista componente folosite: ​====
-Aici puneţi tot ce ţine de hardware design: +
-  * listă de piese +
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +
-  * diagrame de semnal  +
-  * rezultatele simulării +
-</​note>​ +
- +
-Lista componente folosite:+
  
     * Placa compatibila cu Arduino UNO     * Placa compatibila cu Arduino UNO
Line 35: Line 27:
     * Fire tata-tata     * Fire tata-tata
     * Rezistoare 1000 & 470 Ohmi     * Rezistoare 1000 & 470 Ohmi
 +
 +==== Conectare LCD 128 X 160 - sursa bibliografie ====
 +
 +{{:​pm:​prj2022:​robert:​conectare_lcd_axinia.png?​300|}}
 +
 +==== Implementare hardware ====
 +
 +{{:​pm:​prj2022:​robert:​hardware_axinia.jpg?​300|}}
 +
 +==== Schema electrica ====
 +
 +{{:​pm:​prj2022:​robert:​schema_electrica_axinia.png?​300|}}
 +
 +Nu am gasit in Tinkercad LCD-ul meu anume, asa ca am incercat sa arat cat mai apropiat in schema cum am legat. Conectarea ecranului meu LCD la Arduino/​Breadboard s-a facut conform acestei poze dintr-un videoclip de pe YouTube(bibliografie):​
 +
 +=== Conectare ecran LCD-Arduino/​Breadboard ===
 +
 +{{:​pm:​prj2022:​robert:​lcd_to_arduino_axinia.png?​300|}}
  
  
Line 42: Line 52:
 ===== Software Design ===== ===== Software Design =====
  
 +Am implementat codul in Arduino IDE, folosind si biblioteca Ucglib(bibliografie) pentru afisarea pe ecranul LCD.
  
-<note tip> +Implementare:​ 
-Descrierea codului aplicaţiei ​(firmware): + 
-  * mediu de dezvoltare ​(if any(e.gAVR StudioCodeVisionAVR+In setup(): Sunt afisate regulile scorului pe ecran, sunt scrise numerele initiale pe grila si scorul este initializat cu 0. 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib+ 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +In resetGame(): Este desenata grila si sunt afisate numerele initiale, fiind initializata matricea de sudoku si pozitia jucatoruluiNumerele initiale sunt colorate cu albastru, cele puse pe parcurs cu alb, iar casuta in care se afla jucatorul cu verde. 
-  ​* ​(etapa 3surse şi funcţii implementate + 
-</​note>​+In loop(): Este verificata starea LOW/HIGH a butoanelor si se executa actiuni pe baza acestei stari. 
 + 
 +UP/DOWN - schimba pozitia pe axa Oyiar LEFT/RIGHT pe axa Ox 
 + 
 +DELETE - sterge numarul curent(nu unul din cele initiale!
 + 
 +INCREMENT ​incrementeaza valoarea numarului(maxim pana la valoarea admisa
 + 
 +PLACE - scrie numarul selectat in celula curenta(respectand regulile de non-duplicate
 +        
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Am obtinut jocul de Sudoku(versiunea 4x4), respectand, prin implementarile hardware si software, regulile si design-ul binecunoscute. Jucatorul se poate deplasa in toate cele 4 directii pe ecran si poate plasa/​sterge numere in grila pentru a rezolva jocul. In final, se calculeaza scorul conform regulilor afisate la inceput si, in caz de victorie, se afiseaza un mesaj de felicitari "Ai castigat!"​. Functionalitati:​ 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</​note>​+==== Reguli - ecran de start ==== 
 + 
 +{{:​pm:​prj2022:​robert:​reguli_axinia.jpg?​300|}} 
 + 
 +==== Joc initial ==== 
 + 
 +{{:​pm:​prj2022:​robert:​joc_initial_axinia.jpg?​300|}} 
 + 
 +==== Joc final ==== 
 + 
 +{{:​pm:​prj2022:​robert:​joc_final_axinia.jpg?​300|}} 
 + 
 +==== Mesaj "Ai castigat!"​ si scor ==== 
 + 
 +{{:​pm:​prj2022:​robert:​scor_axinia.jpg?​300|}} 
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+- A fost un proiect distractiv de implementat,​ care a necesitat cunostinte matematice pentru implementarea software a Sudoku, rabdare in intampinarea si solutionarea dificultatilor si munca pentru asamblarea hardware prin aplicarea cunostintelor invatate la materia PM.
  
-<note warning>​ +- Jocul este foarte asemanator ​cu cel clasic pe hartiefolosind bineinteles o altfel ​de implementare prin jocul din butoane push pe LCD
-O arhivă (sau mai multe dacă este cazul) ​cu fişierele obţinute în urma realizării proiectului:​ sursescheme, etc. Un fişier README, un ChangeLog, un script ​de compilare şi copiere automată ​pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** ​sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul)**Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**+Am tratat si cazuri absurde precum jucatorul incercand sa stearga numerele date deja initial ​sau iesirea in afara grilei. 
-</​note>​+ 
 +Codul este o baza solida caruia i se pot aplica in viitor lucruri/​functii suplimentare prin updatarea acestuia
 +===== Download =====
  
 +{{:​pm:​prj2022:​robert:​sudoku_axinia_arhiva.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
  
pm/prj2022/robert/sudoku.1653680293.txt.gz · Last modified: 2022/05/27 22:38 by claudiu.axinia
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0