This shows you the differences between two versions of the page.
pm:prj2023:dene:stefaniapirvu.basketballgame [2023/05/28 20:17] stefania.pirvu |
pm:prj2023:dene:stefaniapirvu.basketballgame [2023/05/29 23:28] (current) stefania.pirvu |
||
---|---|---|---|
Line 50: | Line 50: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | **Mediul de dezvoltare** | + | == Mediul de dezvoltare == |
*Arduino IDE | *Arduino IDE | ||
- | **Biblioteci folosite** | + | == Biblioteci folosite == |
*Arduino.h | *Arduino.h | ||
*TM1637Display.h -> pentru modulul de afisare pe 7 segmente | *TM1637Display.h -> pentru modulul de afisare pe 7 segmente | ||
Line 60: | Line 60: | ||
*LiquidCrystal_I2C.h -> pentru display | *LiquidCrystal_I2C.h -> pentru display | ||
- | **Implementare Software** | + | == Implementare Software == |
- | SetUp | + | **SetUp** |
- | Am initializat LCD-ul, banda led, pinii de input pentru senzor si cele 4 butoane si pinul de output pentru buzzer. | + | |
+ | Am initializat LCD-ul, banda led, pinii de input pentru senzor si cele 4 butoane si pinul de output pentru buzzer. | ||
| | ||
- | Loop | + | **Loop** |
- | Daca jocul inca nu a inceput (start == 0) citestc inputurile date de butoane. Daca este apasat butonul 4, timpul creste cu 20 de secunde. Daca este detectat input de la butonul 3, jocul incepe, (start = 1). | + | |
- | Daca jocul a inceput, dar nu s-a ales modul de joc (game_mode == 0), se asteapta input de la butoanele 1 sau 2 pentru a seta modul de joc. Daca modul de joc este 1, se va apela functia multiplayer_game_mode , altfel se va apela functia singleplayer_game_mode. | + | Daca jocul inca nu a inceput (start == 0) citestc inputurile date de butoane. Daca este apasat butonul 4, timpul creste cu 20 de secunde. Daca este detectat input de la butonul 3, jocul incepe, (start = 1). |
+ | Daca jocul a inceput, dar nu s-a ales modul de joc (game_mode == 0), se asteapta input de la butoanele 1 sau 2 pentru a seta modul de joc. Daca modul de joc este 1, se va apela functia multiplayer_game_mode , altfel se va apela functia singleplayer_game_mode. | ||
| | ||
- | Multiplayer_game_mode | + | **Multiplayer_game_mode** |
- | Daca este primit un input de la unul dintre cele 2 butaone, se schimba jucatorul care este la rand. Daca este activat senzorul, atunci scorul jucatoruluicurent se modifica | + | |
- | Se apeleaza functiile SetupGreenPalette() si SetupBluePalette() pentru a seta culaorea ledurilor in functie de jucatorul care este la rand. | + | Daca este primit un input de la unul dintre cele 2 butaone, se schimba jucatorul care este la rand. Daca este activat senzorul, atunci scorul jucatoruluicurent se modifica |
- | Se afiseaza timpul curent pe modulul 7 segmente si se apeleaza functia stepUp() pentru a creste timpul | + | Se apeleaza functiile SetupGreenPalette() si SetupBluePalette() pentru a seta culaorea ledurilor in functie de jucatorul care este la rand. |
+ | Se afiseaza timpul curent pe modulul 7 segmente si se apeleaza functia stepUp() pentru a creste timpul | ||
| | ||
- | Singleplayer_game_mode | + | **Singleplayer_game_mode** |
- | Pe acelasi principiu ca si la multiplayer, daca senzorul este activat se modifica scorul. Se afiseaza timpul curent pe modulul 7 segmente si se apeleaza functia stepDown() pentru a arata timpul ramas | + | |
+ | Pe acelasi principiu ca si la multiplayer, daca senzorul este activat se modifica scorul. Se afiseaza timpul curent pe modulul 7 segmente si se apeleaza functia stepDown() pentru a arata timpul ramas | ||
| | ||
- | StepUp / StepDown | + | **StepUp / StepDown** |
- | Sunt doua functii foarte asemanatoare care modifica timpul. In cazul stepUp, daca timpul a atins numarul de minute si secunde setate la inceput, jocul s-a terminat, (game_over = 1) . In cazul stepDown, timpul scade, iar daca a ajuns la 0 jocul se termina. | + | |
- | In ambele cazuri pe modulul 7 segmente va fi afisa mesajul Game Over si buzzer-ul va fi activat | + | Sunt doua functii foarte asemanatoare care modifica timpul. In cazul stepUp, daca timpul a atins numarul de minute si secunde setate la inceput, jocul s-a terminat, (game_over = 1) . In cazul stepDown, timpul scade, iar daca a ajuns la 0 jocul se termina. |
+ | In ambele cazuri pe modulul 7 segmente va fi afisa mesajul Game Over si buzzer-ul va fi activat | ||
| | ||
- | Functii pentru culoare led | + | **Functii pentru culoare led** |
- | Functiile SetupGreenPalette(),SetupPurpleAndGreenPalette(), SetupBluePalette() seteaza paleta de culori pentru inelul de leduri, iar functia FillLEDsFromPaletteColors itereaza prin index-urile ledurilor pentru a oferi senzatia de miscare a culorilor | + | |
+ | Functiile SetupGreenPalette(),SetupPurpleAndGreenPalette(), SetupBluePalette() seteaza paleta de culori pentru inelul de leduri, iar functia FillLEDsFromPaletteColors itereaza prin index-urile ledurilor pentru a oferi senzatia de miscare a culorilor | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | |||
+ | {{:pm:prj2023:dene:pirvu_stefania_1.jpeg?500|}} | ||
+ | {{:pm:prj2023:dene:pirvu_stefania_2.jpeg?500|}} | ||
+ | {{:pm:prj2023:dene:pirvu_stefania_3.jpeg?500|}} | ||
+ | {{:pm:prj2023:dene:pirvu_stefania_4.jpeg?500|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | A fost printre putinele proiecte la care am lucrat cu placere si fara stres. Am reusit sa realizez ce mi-am propus. Pe masura ce implementam am adaugat mai multe functionalitati fata de ce mi-am propus initial. | ||
===== Download ===== | ===== Download ===== | ||
+ | <note> | ||
+ | {{:pm:prj2023:dene:pirvu_stefania_proiect_pm.txt|}} | ||
- | + | Zip:{{:pm:prj2023:dene:pirvu_stefania_cod_pm.zip|}} | |
+ | </note> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
* 27.05 -Alegere tema proiect | * 27.05 -Alegere tema proiect | ||
Line 107: | Line 121: | ||
* https://www.youtube.com/watch?v=DKmNSCMPDjE&t=379s | * https://www.youtube.com/watch?v=DKmNSCMPDjE&t=379s | ||
* https://how2electronics.com/neopixel-led-strip-ws2812b-with-arduino/ | * https://how2electronics.com/neopixel-led-strip-ws2812b-with-arduino/ | ||
+ | * https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf | ||
+ | * https://docs.arduino.cc/tutorials/ | ||
</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> | ||