Differences

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

Link to this comparison view

pm:prj2023:razvans:tic-tac-toe-on-leds [2023/05/29 23:10]
stefania.dicu1506
pm:prj2023:razvans:tic-tac-toe-on-leds [2023/05/30 11:48] (current)
stefania.dicu1506
Line 39: Line 39:
   * potențiometru   * potențiometru
  
-Schema ​electrica ​butoane + buzzer:+Schema ​electrică ​butoane + buzzer:
  
 {{ :​pm:​prj2023:​razvans:​butoane_xo.png?​400 |}} {{ :​pm:​prj2023:​razvans:​butoane_xo.png?​400 |}}
  
  
-Schema ​electrica ​LED-uri:+Schema ​electrică ​LED-uri:
  
 {{ :​pm:​prj2023:​razvans:​schema_leduri_x0.png?​400 |}} {{ :​pm:​prj2023:​razvans:​schema_leduri_x0.png?​400 |}}
  
  
-Schema ​electrica ​ecran LCD:+Schema ​electrică ​ecran LCD:
  
 {{ :​pm:​prj2023:​razvans:​lcd_xo.png?​200 |}} {{ :​pm:​prj2023:​razvans:​lcd_xo.png?​200 |}}
Line 58: Line 58:
  
  
-<note tip> 
 Mediu de dezvoltare: Arduino IDE Mediu de dezvoltare: Arduino IDE
 +
 Librării şi surse 3rd-party: Librării şi surse 3rd-party:
   * LiquidCrystal.h => LCD   * LiquidCrystal.h => LCD
Line 65: Line 65:
  
  
-Functia ​setup(): +Funcția ​setup(): 
-  * se seteaza ​pinii pentru LED-uri ca OUTPUT +  * se setează ​pinii pentru LED-uri ca OUTPUT 
-  * se seteaza ​pinii pentru butoane ca INPUT +  * se setează ​pinii pentru butoane ca INPUT 
-  * se seteaza ​pinul pentru buzzer ca OUTPUT +  * se setează ​pinul pentru buzzer ca OUTPUT 
-  * se porneste ​un joc de lumini+  * se pornește ​un joc de lumini
   * se sting LED-urile ​   * se sting LED-urile ​
-  * se initializeaza ​diverse variabile+  * se inițializează ​diverse variabile
  
-Cateva ​dintre ​functiile ​prezente ​in codul sursa:+Câteva ​dintre ​funcțiile ​prezente ​în codul sursă:
  
-Functia ​loop(): +Funcția ​loop(): 
-  * se cauta prima pozitie libera si se aprinde LED-ul respectiv, ​pozitie ​din care player-ul ​isi poate incepe ​mutarea +  * se caută ​prima poziție liberă și se aprinde LED-ul respectiv, ​poziție ​din care player-ul ​își poate începe ​mutarea 
-  * se verifica ​ce buton este apasat si astfel se efectueaza ​una dintre ​mutarile ​posibile; ​pozitia curenta ​pe care se afla player-ul este marcata ​printr-un blink al LED-ului, care ramane ​aprins ​cand s-a apasat ​butonul OK+  * se verifică ​ce buton este apăsat și astfel se efectuează ​una dintre ​mutările ​posibile; ​poziția curentă ​pe care se află player-ul este marcată ​printr-un blink al LED-ului, care rămâne ​aprins ​când s-a apăsat ​butonul OK
  
-Functia ​arduinosTurn():​ +Funcția ​arduinosTurn():​ 
-  * verifica posibilitatile ​de mutare ​dupa 3 criterii => o pozitie favorabila castigului, o pozitie ​ce pune in dificultate player-ul ​si pozitie ​random+  * verifică posibilitățile ​de mutare ​după 3 criterii => o poziție favorabilă câștigului, o poziție ​ce pune în dificultate player-ul ​și poziție ​random
  
-Functia ​checkGame():​ +Funcția ​checkGame():​ 
-  * verifica daca s-a ajuns la vreuna din combinatiile castigatoare si stabileste castigatorul+  * verifică dacă s-a ajuns la vreuna din combinațiile câștigătoare și stabilește câștigătorul
  
  
-Mai exista ​de asemenea ​si alte functii, al caror nume este destul de sugestiv pentru comportamentul lor: initialise(),​ checkPossibilities(),​ checkBlockers(),​ randomPlay(),​ playPoss(), endGame(), endSongs().+Mai există ​de asemenea ​și alte funcții, al căror ​nume este destul de sugestiv pentru comportamentul lor: initialise(),​ checkPossibilities(),​ checkBlockers(),​ randomPlay(),​ playPoss(), endGame(), endSongs().
  
  
-</​note>​ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Rezultatele ​au fost cele dorite, întrucât am reușit să duc la capăt toate funcționalitățile pe care mi le-am propus. Am obținut astfel un joc de X și 0 player-Arduino,​ la finalul căruia se pot obține 3 scenarii: a câștigat jucătorul, a câștigat Arduino sau a fost remiză. După fiecare rezultat, se va porni o melodie de fundal și un joc de lumini pe LED-urile din combinația câștigătoare,​ sau un joc de lumini cu toate cele 18 LED-uri în cazul remizei. De asemenea, pe ecranul LCD se va afișa și scorul curent
-Care au fost rezultatele ​obţinute în urma realizării proiectului vostru+ 
-</note>+{{ :​pm:​prj2023:​razvans:​rezultate_1.jpeg?​400 |}} 
 + 
 + 
 +{{ :​pm:​prj2023:​razvans:​rezultate_2.jpeg?​400 |}} 
 + 
 + 
 +{{ :​pm:​prj2023:​razvans:​rezultate_3.jpeg?​400 |}} 
 + 
 +Link video demo: https://​youtu.be/​4XEJhvZ9xkQ 
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +Deși mi s-a părut complicat la început, neștiind cu ce să încep mai întâi în implementarea proiectului,​ pe parcurs mi-a făcut mare plăcere să lucrez la el, cu siguranță mi-aș dori să mai experimentez cu astfel de proiecte pe viitor. Mi s-a părut foarte interesant și am învățat să pun în practică noțiuni teoretice.
 +
  
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, 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**.+Arhivă proiect{{:pm:prj2023:razvans:dicustefania_tictactoeonleds.zip|}} 
 </​note>​ </​note>​
  
Line 113: Line 124:
   * 17.05.2023: Implementarea hardware a proiectului   * 17.05.2023: Implementarea hardware a proiectului
   * 28.05.2023: Implementarea software a proiectului   * 28.05.2023: Implementarea software a proiectului
 +  * 29.05.2023: Proiectul finalizat
  
  
Line 118: Line 130:
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+ 
 +  * https://​www.instructables.com/​Intelligent-Arduino-Tic-Tac-Toe-Noughts-and-Crosse/ 
 +  ​https://​www.geekering.com/​categories/​embedded-sytems/​arduino/​joaotarquinio/​arduino-mega-2560-getting-started-with-lcds/​ 
 +  ​https://www.hibit.dev/​posts/​62/​playing-popular-songs-with-arduino-and-a-buzzer 
 </​note>​ </​note>​
  
 <​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>​
  
pm/prj2023/razvans/tic-tac-toe-on-leds.1685391051.txt.gz · Last modified: 2023/05/29 23:10 by stefania.dicu1506
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