This shows you the differences between two versions of the page.
pm:prj2023:dene:stefaniapirvu.basketballgame [2023/05/24 18:09] stefania.pirvu |
pm:prj2023:dene:stefaniapirvu.basketballgame [2023/05/29 23:28] (current) stefania.pirvu |
||
---|---|---|---|
Line 19: | Line 19: | ||
Pentru modul multiplayer contorizarea timpului incepe imediat. Pe ecran este afisat numarul jucatorului care este la rand.Acesta este indicat si de culoarea ledurilor. Daca jucatorul arunca mingea in cos, se modifica automat jucatorul curent. Daca jucatorul rateaza, se va apasa pe un buton pentru a trece la celalalt jucator. | Pentru modul multiplayer contorizarea timpului incepe imediat. Pe ecran este afisat numarul jucatorului care este la rand.Acesta este indicat si de culoarea ledurilor. Daca jucatorul arunca mingea in cos, se modifica automat jucatorul curent. Daca jucatorul rateaza, se va apasa pe un buton pentru a trece la celalalt jucator. | ||
- | La finalul jocului se va declansa un sunet si se va afisa mesajul "Game Over" pe modulul 7 segmente | + | La finalul jocului se va declansa un sunet si se va afisa mesajul "Game Over" pe modulul 7 segmente. |
Senzorul cu infrarosu este asezat pe inelul coșului de baschet. Când detectează o minge, scorul se modifică penru jucătorul curent și se declanseaza buzzer-ul și banda led. | Senzorul cu infrarosu este asezat pe inelul coșului de baschet. Când detectează o minge, scorul se modifică penru jucătorul curent și se declanseaza buzzer-ul și banda led. | ||
Line 50: | Line 50: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | == Mediul de dezvoltare == | ||
+ | *Arduino IDE | ||
+ | == Biblioteci folosite == | ||
+ | *Arduino.h | ||
+ | *TM1637Display.h -> pentru modulul de afisare pe 7 segmente | ||
+ | *FastLED.h -> pentru banda led | ||
+ | *Wire.h | ||
+ | *LiquidCrystal_I2C.h -> pentru display | ||
- | ===== Rezultate Obţinute ===== | + | == Implementare Software == |
+ | **SetUp** | ||
- | ===== Concluzii ===== | + | Am initializat LCD-ul, banda led, pinii de input pentru senzor si cele 4 butoane si pinul de output pentru buzzer. |
+ | |||
+ | **Loop** | ||
- | ===== Download ===== | + | 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** | ||
+ | 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. | ||
+ | Se afiseaza timpul curent pe modulul 7 segmente si se apeleaza functia stepUp() pentru a creste timpul | ||
+ | | ||
+ | **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 | ||
+ | | ||
+ | **StepUp / StepDown** | ||
- | ===== Jurnal ===== | + | 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** | ||
+ | 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 ===== | ||
+ | |||
+ | {{: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 ===== | ||
+ | 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 ===== | ||
+ | <note> | ||
+ | {{:pm:prj2023:dene:pirvu_stefania_proiect_pm.txt|}} | ||
+ | |||
+ | Zip:{{:pm:prj2023:dene:pirvu_stefania_cod_pm.zip|}} | ||
+ | </note> | ||
+ | ===== Jurnal ===== | ||
+ | * 27.05 -Alegere tema proiect | ||
+ | * 28.04 - Creare pagine wiki | ||
+ | * Achizitionare componente | ||
+ | * 15.05 - Montaj hardware | ||
+ | * 15.05->24.05 - Scris cod | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Line 69: | Line 118: | ||
**Resurse Software** | **Resurse Software** | ||
* https://www.youtube.com/watch?v=H5rlxtoinh8&t=236s | * https://www.youtube.com/watch?v=H5rlxtoinh8&t=236s | ||
+ | * https://www.circuitbasics.com/how-to-use-active-and-passive-buzzers-on-the-arduino/ | ||
+ | * https://www.youtube.com/watch?v=DKmNSCMPDjE&t=379s | ||
+ | * 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> | ||