This shows you the differences between two versions of the page.
pm:prj2022:ionuto:sudoku [2022/05/27 22:50] albert.piscanu [Jurnal] |
pm:prj2022:ionuto:sudoku [2022/06/02 01:00] (current) albert.piscanu [Software Design] |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introducere ===== | ===== Introducere ===== | ||
+ | {{:pm:prj2022:ionuto:sudkk.png?700|}} | ||
+ | |||
+ | |||
Proiectul meu constă în implementarea jocului Sudoku. Jucătorul va avea la dispoziție o telecomandă cu care va completa căsuțele afișate pe un ecran LCD. | Proiectul meu constă în implementarea jocului Sudoku. Jucătorul va avea la dispoziție o telecomandă cu care va completa căsuțele afișate pe un ecran LCD. | ||
Line 10: | Line 13: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | {{:pm:prj2022:ionuto:untitled_diagram_11_.drawio.png|}} | + | {{:pm:prj2022:ionuto:pqooo.png|}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Lista de piese: | Lista de piese: | ||
- | * Placa dezvoltare UNO R3 Arduino compatibil, AtMega328p, CH340G, MiniUSB | + | * Placă de dezvoltare Mega 2560 CH340 + cablu USB – Compatibilă Arduino |
* Breadboard 400 puncte | * Breadboard 400 puncte | ||
* LED RGB, 10mm, catod comun | * LED RGB, 10mm, catod comun | ||
Line 37: | Line 40: | ||
Am construit diferite functii pentru tratarea interactiunii cu buzzer-ul, senzorul IR, butonul, led-ul RGB sau pentru testarea corectitudinii solutiei. | Am construit diferite functii pentru tratarea interactiunii cu buzzer-ul, senzorul IR, butonul, led-ul RGB sau pentru testarea corectitudinii solutiei. | ||
+ | |||
+ | |||
+ | Jucatorul apasa butonul pentru a incepe jocul si apoi foloseste o telecomanda pentru a muta cursorul de la o casuta la alta si pentru a introduce cifrele. Daca jocul este completat, un led rgb va lumina rosu sau verde in functie de corectitudinea solutiei. De asemenea, o solutie corecta va fi acompaniata de un sunet victorios scos de buzzer. | ||
+ | |||
+ | Functii implementate: | ||
+ | * get_grid_and_numbers_positions() -> calculeaza pozitia pe ecran a grid-ului si a cifrelor | ||
+ | * configurare_menu() -> construieste meniul initial | ||
+ | * manage_LED() -> controleaza starea ledului | ||
+ | * RGB_color() -> seteaza culoarea ledului | ||
+ | * turn_off() -> opreste ledul | ||
+ | * get_input() -> interpreteaza inputul primit de la telecomanda | ||
+ | * print_grid() -> afiseaza grid-ul | ||
+ | * print_numbers() -> afiseaza cifrele | ||
+ | * display_timer() -> construieste si afiseaza cronometrul | ||
+ | * check_solution() -> verifica corectitudinea solutiei | ||
+ | * game_over() -> afiseaza mesajul "GAME OVER", porneste o melodie redata de buzzer si ofera posibilitatea intoarcerii la meniul initial | ||
+ | * congratulations() -> afiseaza mesajul "CONGRATULATIONS!", porneste o melodie redata de buzzer si ofera posibilitatea intoarcerii la meniul initial | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Demo: [[https://streamable.com/vv23us|Sudoku_demo]] | ||
- | {{:pm:prj2022:ionuto:whatsapp_image_2022-05-27_at_22.02.51.jpeg?700|}} | + | |
+ | {{:pm:prj2022:ionuto:20220602_003354.jpg?500}} | ||
+ | {{:pm:prj2022:ionuto:20220602_003428.jpg?500}} | ||
+ | {{:pm:prj2022:ionuto:20220602_003438.jpg?500}} | ||
+ | {{:pm:prj2022:ionuto:20220602_003604.jpg?500}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | A fost interesant sa descopar mai multe despre functionarea unui senzor IR si a unei telecomenzi in general, precum si interactiunea cu un display LCD. Limitarile de pini ale placutei Arduino Uno ce m-au determinat sa achizitionez o noua placuta Arduino Mega 2560, arderea unui senzor IR , tresarirea la primul zgomot asurzitor scos de buzzer, fumul scos de componentele incinse si socurile electrice resimtite au facut din acest proiect o experienta aparte. | ||
+ | ===== Download ===== | ||
+ | {{:pm:prj2022:ionuto:sudoku.rar|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 50: | Line 78: | ||
* 07.05.2022 – Descrierea proiectului si fixarea listei de componente necesare | * 07.05.2022 – Descrierea proiectului si fixarea listei de componente necesare | ||
- | * 11.05.2022 – Am intrat in posesia tuturor componentelor necesare | ||
* 14.05.2022 – Conectarea si testarea tuturor componentelor | * 14.05.2022 – Conectarea si testarea tuturor componentelor | ||
* 18.05.2022 – Desenarea grid-ului si facilitarea introducerii numerelor in casute | * 18.05.2022 – Desenarea grid-ului si facilitarea introducerii numerelor in casute | ||
- | * 24.05.2022 – implementarea functiei de verificarea a solutiei si a interactiunii cu utilizatorul (buton, buzzer, led) | + | * 24.05.2022 – Implementarea functiei de verificare a solutiei si a interactiunii cu utilizatorul (buton, buzzer, led) |
* 27.05.2022 – Finalizarea documentatiei | * 27.05.2022 – Finalizarea documentatiei | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | * 3.5inch_Arduino_8BIT_Module_ILI9486_MAR3501_V1.1 |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe *Resurse Software* şi *Resurse Hardware*. | + | * KY-022 Infrared receiver module Datasheet |
- | </note> | + | * https://github.com/gitcnd/LCDWIKI_GUI |
+ | * https://github.com/robsoncouto/arduino-songs | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |