Differences

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

Link to this comparison view

pm:prj2026:jan.vaduva:paul_george.solot [2026/05/02 21:32] (current)
paul_george.solot created
Line 1: Line 1:
 +====== Final Countdown ======
  
 +===== Introducere =====
 +
 +Final Countdown e un proiect individual care combină embedded cu o aplicație mobilă. E un joc bomb-defusal,​ inspirat de Keep Talking and Nobody Explodes, construit pe un ESP32-S3 și câteva module hardware montate într-o carcasă.
 +
 +Dispozitivul pornește o rundă când scanezi un tag RFID, după care trebuie să rezolvi trei lucruri fizice: introduci un cod pe keypad, reglezi un potențiometru la o valoare cerută și ții dispozitivul stabil, altfel modulul de mișcare penalizează orice bruscare. Telefonul se conectează prin BLE la ESP32 și afișează starea jocului și hint-urile. În paralel, trebuie să ții un deget pe senzorul cardiac. Dacă pulsul este ridicat, primești timp suplimentar.
 +
 +Am vrut un joc interactiv care să aibă atât parte fizică, cât și o interfață comod de utilizat pe telefon. Direcția asta mi s-a părut bună pentru că forțează proiectul să treacă prin mai multe zone: integrare hardware, firmware modular, comunicație BLE și o aplicație mobilă care chiar folosește datele de pe ESP32.
 +
 +Elementul nou este integrarea reală între dispozitivul fizic și telefon, cu o logică de joc care știe să gestioneze defecțiuni hardware și să funcționeze chiar și cu module lipsă.
 +
 +===== Descriere generală =====
 +
 +Proiectul are două părți: dispozitivul embedded și aplicația de pe telefon.
 +
 +Partea embedded e construită pe un ''​ESP32-S3 DevKitC-1 WROOM-1''​. Placa citește modulele, rulează logica jocului, controlează ieșirile locale și expune un serviciu BLE. Intrările vin de la ''​RC522 RFID'',​ ''​keypad-ul 4x4''​ prin ''​PCF8574'',​ ''​MPU6050''​ (mișcare) și un ''​potențiometru''​ (modul de reglaj). Feedback-ul local: un ''​OLED'',​ un ''​buzzer'',​ un ''​LED RGB''​ și trei LED-uri simple pentru strike-uri.
 +
 +Aplicația de telefon e făcută în ''​Expo / React Native''​. Caută dispozitivul prin BLE, se conectează la serviciul ESP32, citește starea jocului și o afișează mai lizibil decât pe ecranul local.
 +
 +
 +----
 +{{ :​pm:​prj2026:​jan.vaduva:​block_diagram_final_countdown.png?​700 |}}
 +
 +Cum interacționează modulele:
 +
 +  * ''​RFID''​ — armează jocul și confirmă finalul rundei
 +  * ''​keypad-ul''​ — introducerea codului
 +  * ''​potențiometrul''​ — modulul de tuning
 +  * ''​MPU6050''​ — detectează mișcările bruște și verifică stabilitatea
 +  * ''​OLED-ul''​ — feedback local rapid
 +  * ''​buzzer-ul''​ — semnalează timpul rămas și stările importante
 +  * ''​LED-ul RGB''​ și cele trei LED-uri simple — indicații vizuale
 +  * ''​telefonul''​ — afișează starea jocului și hint-urile prin BLE
 +
 +===== Hardware Design =====
 +
 +^ Componentă ^ Rol ^
 +| ''​ESP32-S3 DevKitC-1''​ | Microcontroler principal |
 +| ''​RC522 RFID''​ | Armare și confirmare finală a rundei |
 +| ''​4x4 matrix keypad''​ | Introducerea codului |
 +| ''​PCF8574''​ | Extindere I/O pentru keypad |
 +| ''​MPU6050''​ | Detectarea mișcării și a stabilității |
 +| ''​WH148 potentiometer''​ | Modul de tuning |
 +| ''​OLED SSD1306''​ | Afișaj local |
 +| ''​Passive buzzer''​ | Semnalizare sonoră |
 +| ''​RGB LED''​ | Indicator de stare generală |
 +| ''​3 simple LEDs''​ | Indicatori pentru strike-uri |
 +| ''​BLE smartphone''​ | Aplicație mobilă companion |
 +| ''​Whiteboard,​ wires, connectors, USB power''​ | Interconectare și alimentare |
 +
 +===== Software Design =====
 +
 +Firmware-ul e scris în ''​ESP-IDF''​. Aplicația mobilă companion comunică prin BLE cu dispozitivul și afișează starea jocului și hint-urile, ca utilizatorul să urmărească mai ușor runda.
 +
 +===== Rezultate Obținute =====
 +
 +În momentul ăsta proiectul are o bază funcțională:​ firmware modular pentru ESP32, aplicație mobilă cu BLE și documentație pentru wiring și API. Logica jocului e definită, structura sistemului e stabilă, se poate demonstra și extinde.
 +
 +Mai am de făcut integrarea finală pe varianta fizică definitivă,​ testarea completă pe hardware și finisarea prezentării stărilor jocului.
 +
 +===== Concluzii =====
 +
 +===== Cod sursă și alte resurse pe GitLab =====
 +
 +Proiecul este pe [[https://​gitlab.cs.pub.ro/​paul_george.solot/​final_countdown|Gitlab]]
 +
 +===== Jurnal =====
 +
 +  * 5 aprilie 2026 — am dat comandă pentru componente
 +  * 2 mai 2026 — am încercat primul prototip. Senzorul cardiac era scurtcircuitat,​ așa că l-am eliminat din proiect.
 +
 +===== Bibliografie / Resurse =====
 +
 +Resurse folosite:
 +
 +  * documentația oficială ''​ESP-IDF''​
 +  * datasheet-ul și documentația ''​ESP32-S3''​
 +  * datasheet-ul ''​RC522 / MFRC522''​
 +  * datasheet-ul ''​MPU6050''​
 +  * datasheet-ul ''​PCF8574''​
 +  * documentația ''​SSD1306 / SSD1315''​
 +  * documentația ''​Expo''​ și ''​React Native''​
 +  * documentația bibliotecii BLE din aplicația mobilă
 +  * fișierele de schemă și diagramele făcute pe parcurs
pm/prj2026/jan.vaduva/paul_george.solot.txt · Last modified: 2026/05/02 21:32 by paul_george.solot
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