This shows you the differences between two versions of the page.
|
pm:prj2022:imacovei:rps [2022/05/31 18:46] alexandru.andrei99 [Descriere generală] |
pm:prj2022:imacovei:rps [2022/06/01 00:26] (current) alexandru.andrei99 |
||
|---|---|---|---|
| Line 15: | Line 15: | ||
| 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 ===== | ||