This shows you the differences between two versions of the page.
pm:prj2022:imacovei:rps [2022/05/31 18:44] alexandru.andrei99 [Descriere generală] |
pm:prj2022:imacovei:rps [2022/06/01 00:26] (current) alexandru.andrei99 |
||
---|---|---|---|
Line 11: | Line 11: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Astfel, proiectul consta intr-un joc in care fiecare jucator va avea un set de 3 butoane corespunzatoare fiecarei alegeri (piatra / foarfeca / hartie), alaturi de alte 2 butoane care servesc la inceperea unei noi runde si la resetarea scorului. Informatiile vor fi afisate pe un ecran LCD, mai exact scorul (numarul de runde castigate de fiecare jucator) impreuna cu indicatoare pentru a confirma ca alegerea facuta prin apasarea unui buton a fost inregistrata, o scurta numaratoare inversa inainte de a afisa rezultatul urmata de afisarea alegerilor jucatorilor si castigatorul. | + | Astfel, proiectul consta intr-un joc in care fiecare jucator va avea un set de 3 butoane corespunzatoare fiecarei alegeri (piatra / foarfeca / hartie), alaturi de alte 2 butoane care servesc la inceperea unei noi runde si la resetarea scorului. Informatiile vor fi afisate pe un ecran LCD, mai exact scorul (numarul de runde castigate de fiecare jucator) impreuna cu indicatoare pentru a confirma ca alegerea facuta prin apasarea unui buton a fost inregistrata. Dupa ce jucatorii au terminat de ales, se va afisa rezultatul rundei (castigatorul, pierzatorul sau egalitate si scorul actualizat) |
Schema bloc: | Schema bloc: | ||
- | {{:pm:prj2022:imacovei:schema_bloc.png}} | + | {{:pm:prj2022:imacovei:schema_bloc.png?700}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 24: | Line 24: | ||
* Buzzer | * Buzzer | ||
* Ecran LCD | * Ecran LCD | ||
+ | |||
+ | |||
+ | * Schema electrica: | ||
+ | {{:pm:prj2022:imacovei:RPS_Schema_Eagle.png?700}} | ||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
+ | * Mediu de dezvoltare: Arduino IDE | ||
+ | * Librarii 3rd-party: | ||
+ | * Pentru lucrul cu LCD I2C: https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library | ||
+ | * Pentru sunete buzzer am folosit o parte din: https://github.com/robsoncouto/arduino-songs/tree/master/nevergonnagiveyouup | ||
+ | * Algoritm (pseudocod): | ||
+ | <code> | ||
+ | gameControlInterruption() | ||
+ | readInput() | ||
+ | if (input == RESET) | ||
+ | resetScoreAndRound() | ||
+ | else | ||
+ | newRound() | ||
+ | playNextNoteOnBuzzer() | ||
+ | |||
+ | |||
+ | player2InputInterruption() | ||
+ | readInput() | ||
+ | updatePlayer2Pick() | ||
+ | playNextNoteOnBuzzer() | ||
+ | |||
+ | |||
+ | player1InputInterruption() | ||
+ | readInput() | ||
+ | updatePlayer1Pick() | ||
+ | playNextNoteOnBuzzer() | ||
+ | |||
+ | |||
+ | loop() | ||
+ | if (both_players_ready) | ||
+ | determineRoundOutcome() | ||
+ | updateScore() | ||
+ | displayResults() | ||
+ | else | ||
+ | displayRoundStatus() | ||
+ | </code> | ||
+ | * Surse: https://github.com/andreialexandru99/Rock-Paper-Scissors-Arduino | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Proiectul functioneaza cum mi-am dorit. Am reusit chiar sa adaug o functionalitate noua, chiar daca foarte simpla, si anume fiecare apasare de buton sa cante o noua nota dintr-un cantec. In ciuda simplitatii, a adus mai multa placere in lucratul la proiect. :) | ||
+ | |||
+ | Poze cu ansamblul final: | ||
- | ===== Concluzii ===== | + | {{:pm:prj2022:imacovei:rps_off.jpg?700}} |
+ | {{:pm:prj2022:imacovei:rps_on.jpg?700}} | ||
===== Download ===== | ===== Download ===== | ||
+ | Proiectul poate fi descarcat de pe GitHub sau direct de {{pm:prj2022:imacovei:rock-paper-scissors-arduino-main.zip |aici}}. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |