Differences

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

Link to this comparison view

pm:prj2024:fgul:claudiu.mogodeanu [2024/05/20 00:55]
claudiu.mogodeanu Add state machine
pm:prj2024:fgul:claudiu.mogodeanu [2024/05/26 21:38] (current)
claudiu.mogodeanu [Rezultate Obţinute]
Line 58: Line 58:
   * Am testat individual fiecare componenta (dupa ce am dus toate firele), mai am de realizat software-ul complet   * Am testat individual fiecare componenta (dupa ce am dus toate firele), mai am de realizat software-ul complet
   * Componentele sunt lipite/​insurubate pe o placa de plexiglas pentru a le da o forma compacta   * Componentele sunt lipite/​insurubate pe o placa de plexiglas pentru a le da o forma compacta
-  * Nu m-am ocupat complet de cable management si design pentru background-ul placii, promit ca o sa arate mai bine de atat firele + 
-  De asemenea, inca nu este atasat servomotorul la cutie+** FORMA FINALA **\\ 
 + 
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​fgul/​forma_finala_cm.jpeg?​600}}
  
 ===== Software Design ===== ===== Software Design =====
Line 87: Line 89:
   * In fisierul **song.cpp** am pus o secventa din Arduino Songs (link mai sus), fiind apelata prin sing().   * In fisierul **song.cpp** am pus o secventa din Arduino Songs (link mai sus), fiind apelata prin sing().
   * Buzzer-ul, prin **small_buzz()** si **big_buzz()** din **Buzzer_lcd.cpp**,​ este folosit si pentru a anunta jucatorul cand poate incepe sa faca o actiune.   * Buzzer-ul, prin **small_buzz()** si **big_buzz()** din **Buzzer_lcd.cpp**,​ este folosit si pentru a anunta jucatorul cand poate incepe sa faca o actiune.
-  * Oricand, pe parcursul jocului, se poate apasa pe unul din butoanele aditionale, care prin intreruperile **INT0** sau **INT1** modifica timpul in care un led sta aprins, marind sau micsorand dificultatea. Am folosit si un debounce diy bazat pe millis() trecute de la ultima apasare de astfel de buton pentru a evita detectiile eronate. Observasem initial ca mi se lua de 2-3 un buton, dar acum merg as expected.+  * Oricand, pe parcursul jocului, se poate apasa pe unul din butoanele aditionale, care prin intreruperile **INT0** sau **INT1** modifica timpul in care un led sta aprins, marind sau micsorand dificultatea. Am folosit si un debounce diy bazat pe millis() trecute de la ultima apasare de astfel de buton pentru a evita detectiile eronate. Observasem initial ca mi se lua de 2-3 ori un buton, dar acum merg as expected
 +  * Aditional, inainte de a incepe jocul (adica de a detecta senzorul ceva), cand se apasa pe butoanele separate, se poate seta numarul nivelelor pe care o sa le aiba utilizatorul de replicat pe parcursul jocului urmator.
   * Am incercat, pe cat posibil, sa fac lucrurile exact cum aveau loc in minigame-ul din AmongUs.\\   * Am incercat, pe cat posibil, sa fac lucrurile exact cum aveau loc in minigame-ul din AmongUs.\\
  
 +** Laboratoare folosite: **\\ 
 +  * **intreruperi** la butoanele aditionale 
 +  * **I2C** la ecran LCD 
 +  * **PWM** la servomotor 
 +  * **GPIO** la butoanele aditionale\\
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Video demonstrativ:​ [[https://​youtu.be/​e2v6rafF98A?​si=K-xSSuDst3Fxy5WZ | Impostor Detector]]\\ 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +<html><iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​e2v6rafF98A?​si=W2CZdvmhFi-dojYU"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen>​</iframe></​html>
-</note> +
 ===== Concluzii ===== ===== Concluzii =====
  
 +Avand in vedere ca a fost prima mea interactiune (mai mult decat niste laboratoare cu schelet si placi deja existente) cu un Arduino, am invatat destul de multe lucruri interesante.\\
 +Tinand cont de lipsa de experienta, am decis din start sa nu ma indrept spre un proiect extrem de complex, desi nici acesta nu este laturalnic, astfel incat sa detin totusi control asupra lui si sa invat/​folosesc cat mai multe elemente de baza.\\
 +Imi plac bibliotecile externe, dar am folosit si cateva registre\\
 +Nu sunt extrem de multumit de aspectul proiectului,​ mai ales de cable management, dar este totusi destul de compact si complet functional.
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Remember git for source code[[https://​github.com/claudiu-mogo/​Impostor_Detector | github project]]\\ 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+Cod, schematic si imagini: {{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​fgul/​big_project_cm.zip | Arhiva}}\\
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Sincer relevant este doar repo-ul de github. Restul sunt imagini ​care exista pe pagina ​de ocw deja.
-</​note>​+
  
 ===== Jurnal ===== ===== Jurnal =====
Line 114: Line 122:
   * 05.05 - Initiat jurnal   * 05.05 - Initiat jurnal
   * 12.05 - Unit fire si lipire initiala (hardware initial)   * 12.05 - Unit fire si lipire initiala (hardware initial)
-  * 15.05 - Realizat documentatie hardware+  * 15.05 - Done Milestone 2 (Documentatie Hardware) 
 +  * 19.05 - Gata 90%+ din software (de aici pot adauga chestii extra) 
 +  * 20.05 - Done Milestone 3 (Documentatie Software) 
 +  * 25.05 - Rezultate finale (video YouTube) 
 +  * 26.05 - Finalizat pagina OCW
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +1. [[https://​app.diagrams.net/​ | Draw.io]] -- pentru diagrame si scheme bloc\\ 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+2. [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf | ATmega328P_Datasheet]]\\ 
-</note> +3. [[https://​www.optimusdigital.ro/​en/​led-matrices/​4404-ws2812-4x4-rgb-led-matrix.html?search_query=matrice+led&​results=29 | Optimus Digital]] - doar un exemplu de piesa. Si restul au fost cumparate tot de aici\\ 
- +4. [[https://ocw.cs.pub.ro/​courses/​tsc/​laboratoare/​laborator-02 | Laboratoare TSC]] - cum am invatat sa creez schematic si piese in Fusion 360\\ 
-<html><a class="​media mediafile mf_pdf"​ href="?do=export_pdf">​Export to PDF</a></html>+5. [[https://​roboromania.ro/​produs/​modul-4x4-keypad-matrix-buttons/​ | Modul-4x4-keypad-matrix-buttons]] - cod matrice butoane\\ 
 +6. [[https://​www.geeksforgeeks.org/​how-to-interface-i2c-lcd-display-with-arduino/​ | Tutorial lcd]] - samples de cod LCD\\
  
pm/prj2024/fgul/claudiu.mogodeanu.1716155752.txt.gz · Last modified: 2024/05/20 00:55 by claudiu.mogodeanu
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