Differences

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

Link to this comparison view

pm:prj2023:drtranca:mini-chess [2023/05/05 22:03]
lucas.lazaroiu
pm:prj2023:drtranca:mini-chess [2023/05/29 13:15] (current)
lucas.lazaroiu
Line 11: Line 11:
 <note tip> <note tip>
   * Este un joc de mini-sah (tabla de 5x5)   * Este un joc de mini-sah (tabla de 5x5)
-  * Este un mod rapid de a petrece timpul cu inca o persoana. +  * Un mod rapid de a petrece timpul cu inca o persoana. 
-  * Initial am vrut sa fac un joc de sah normal, dar am realizat ca unul mai micut adauga un factor de ineditate si, avand in vedere ca ecranul este foarte mic (deci nu ar trebui sa petrecem foarte mult timp uitandu-ne la el), se va termina mult mai rapid <del> si e mai usor de implementat </​del>​+  * Initial am vrut sa fac un joc de sah normal, dar am realizat ca unul mai micut adauga un factor de ineditate si, avand in vedere ca ecranul este foarte mic, se va termina mult mai rapid.
   * Ideal se joaca in doua persoane, dar ar putea fi interesanta si analiza solo pentru aceasta varianta minimala de sah.   * Ideal se joaca in doua persoane, dar ar putea fi interesanta si analiza solo pentru aceasta varianta minimala de sah.
 </​note>​ </​note>​
Line 26: Line 26:
 {{ :​pm:​prj2023:​drtranca:​mini_chess_schema_bloc.png |}} {{ :​pm:​prj2023:​drtranca:​mini_chess_schema_bloc.png |}}
 <note tip> <note tip>
-**Piese necesare:**+**Componente ​necesare:**
      * Arduino Uno R3      * Arduino Uno R3
      * ECRAN LCD 1.8"      * ECRAN LCD 1.8"
-     * Breadboard+     * Breadboard ​x 2
      * Buzzer      * Buzzer
      * 7 Butoane      * 7 Butoane
-     * Rezistente 0.5-2kΩ 
      * Fire      * Fire
 </​note>​ </​note>​
 +
 +==Schema Electrica:​==
 +{{:​pm:​prj2023:​drtranca:​mini-chess_schema_electrica.png?​700 |}}
  
 ===== Software Design ===== ===== Software Design =====
Line 40: Line 42:
  
 <note tip> <note tip>
-  * mediu de dezvoltare: Arduino IDE +  * Mediu de dezvoltare: Arduino IDE 
-  * Se vor folosi cateva matrice: 6 pentru ​pixelii pieselor ​si una pentru starea curenta a board-ului.+  * S-au folosit intreruperi ​pentru ​butoane, PWM pentru buzzer, ​si comunicarea cu LCD-ul se face cu protocolul SPI 
 +  * O matrice 5x5 este folosita ​pentru starea curenta a board-ului 
 +  * 6 perechi de vectori sunt folosite pentru stocarea pixelilor pieselor. Folosind acesti vectori se poate afla reprezentarea 25x25 a pieselor 
 +  * Codul este modularizat. Foarte multe functii au fost create pentru usurinta in dezvoltare si urmarire a logicii programului 
 +  * Memoria folosita de program (nu de cod) este la limita de 2KB impusa de placuta Arduino
 </​note>​ </​note>​
  
Line 47: Line 53:
  
 <note tip> <note tip>
-**TBA**+{{:​pm:​prj2023:​drtranca:​mini-chess_1.jpg?​150|}} 
 +{{:​pm:​prj2023:​drtranca:​mini-chess_2.jpg?​150|}} 
 +{{:​pm:​prj2023:​drtranca:​mini-chess_3.png?​150|}} 
 +{{:​pm:​prj2023:​drtranca:​mini-chess_4.png?​150|}} 
 </​note>​ </​note>​
  
Line 53: Line 63:
  
 <note tip> <note tip>
-**TBA**+Proiectul este complet functional: de la generarea pieselor si a tablei, pana la logica jocului si functionalitatea buzzerului si a butoanelor.
 </​note>​ </​note>​
  
Line 59: Line 69:
  
 <​note>​ <​note>​
-**TBA**+     *Codul: {{:​pm:​prj2023:​drtranca:​mini-chess.zip|}} 
 +     {{:​pm:​prj2023:​drtranca:​mini-chess-variant.txt|}}:​ Pt incarcat la variants.ini in Fairy Stockfish (link mai jos)
 </​note>​ </​note>​
  
Line 65: Line 76:
  
 <note tip> <note tip>
-**TBA**+     Pixel-art pentru piese in Paint 
 +     Scris de mana pixelii intr-un format matrice char[25][25] 
 +     Comandat piese (doar un breadboard) 
 +     Conectat LCD la Arduino (si testat) 
 +     * Logica de generare a tablei/​pieselor pe ecranul LCD 
 +     * Scris un program care transforma fiecare matrice char[25][25] in 2 vectori pentru reducerea memoriei 
 +     * Inlocuit matricile cu vectorii obtinuti 
 +     * Implementat un cursor minimal ce se poate muta pe tabla stanga-dreapta si select/undo (cu 4 butoane) 
 +     * Cumparat inca un breadboard + extra fire 
 +     * Mutat butoanele pe al doilea breadboard si adaugat inca 3 butoane (sus, jos, reset) 
 +     * Implementat logica pentru mutarea pieselor 
 +     * Implementat logica pentru mutarea legala a pieselor 
 +     * Implementat logica pentru update-ul jocului pe masura ce sunt facute mutari 
 +     * Conectat buzzer-ul la Arduino 
 +     * Implementat logica de final de joc, anuntata de buzzer in 2 moduri (draw, win/loss) 
 +     * Finishing touches (Draw by no progress, Draw by insufficient material, mutat bishop-ul pe un dark square pentru a face knight-bishop mate posibil, adaugat logica promovare pion)
 </​note>​ </​note>​
  
Line 71: Line 97:
  
 <​note>​ <​note>​
-**TBA**+     *[[https://​mschoeffler.com/​2019/​06/​20/​arduino-tutorial-making-the-kmr-1-8-spi-tft-display-work|Pentru LCD]] 
 +     *[[https://​fairyground.vercel.app/​index.html|Fairy Stockfish ]] Engine folosit pentru a verifica ca aranjamentul pieselor este balansat
 </​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/drtranca/mini-chess.1683313421.txt.gz · Last modified: 2023/05/05 22:03 by lucas.lazaroiu
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