Differences

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

Link to this comparison view

pm:prj2026:alexandru.jipa2803:cosmin_stefan.popa [2026/05/09 20:38]
cosmin_stefan.popa [Introducere]
pm:prj2026:alexandru.jipa2803:cosmin_stefan.popa [2026/05/10 08:07] (current)
cosmin_stefan.popa [Software Design]
Line 8: Line 8:
 <note tip>​**Ipoteză** <note tip>​**Ipoteză**
  
-Credem că aplicarea prelucrării morfologice ​a imaginilor va îmbunătăți precizia de detectare a mișcării fiindcă va reduce contribuția zgomotului vizual la diferențele observate între cadre.</​note>​+Credem că prelucrarea morfologică a imaginilor va îmbunătăți precizia de detectare a mișcării fiindcă va reduce contribuția zgomotului vizual la diferențele observate între cadre.</​note>​
  
  
Line 22: Line 22:
  
 ESP32-CAM este o placă de dezvoltare cu un modul de cameră OV2640. ESP32-CAM comandă prin I2S un amplificator care transmite semnalul de output unui difuzor de 4 ohmi. ESP32-CAM este o placă de dezvoltare cu un modul de cameră OV2640. ESP32-CAM comandă prin I2S un amplificator care transmite semnalul de output unui difuzor de 4 ohmi.
 +
 +==== Ținte de performanță ====
 +
 +^ Metrică ^ Țintă ^ Măsurare ^
 +| Latența detecției de mișcare | < 200 ms | Timestamp la captura camerei și mișcarea servomotorului |
 +| Acuratețea urmăririi, la iluminare stabilă | > 80% din timp | Inspecție vizuală directă |
 +| Consum total de curent | < 1.5 A | Ampermetru în serie pe alimentare |
 +
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 28: Line 36:
 Piesele folosite în proiect: Piesele folosite în proiect:
  
-  * Arduino Uno R3 
-  * ESP32-CAM 
-  * 2x servomotoare SG90 
-  * suport pan/tilt 
-  * modul diodă laser 
-  * amplificator I2S MAX98357A 
-  * speaker 4 ohmi 
-  * 4x LED RGB anod comun 
-  * 3x tranzistor 2N2222 
-  * potențiometru 
-  * adaptor USB-C 
-  * rezistori, fire 
  
 +^ Piesă ^ Folosință ^
 +| Arduino Uno R3 | Control lumini și servomotoare,​ citire volum |
 +| ESP32-CAM | Detecție mișcare, redare sunete |
 +| 2x servomotoare SG90 | Țintirea laserului |
 +| platformă pan + tilt | Suport pentru servomotoare |
 +| modul diodă laser | Feedback vizual pentru urmărire |
 +| amplificator I2S MAX98357A | Conversie digital-to-analog și amplificare sunet |
 +| speaker 4 ohmi | Redare sunet |
 +| 4x LED RGB anod comun | Efecte de lumină |
 +| 3x tranzistor 2N2222 | Comutare LED-uri |
 +| potențiometru | Schimbarea volumului |
 +| adaptor USB-C | Alimentare de la sursă externă |
 +| rezistori, fire | Conectare pini, divizor de tensiune etc. |
 +
 +Dintre pinii plăcii Arduino Uno, am folosit **0** și **1** pentru comunicarea prin UART cu ESP32. Divizorul de tensiune este necesar întrucât Arduino furnizează 5V pe pinul TX în timp ce ESP32 folosește logică digitală de 3.3V. Pinii GPIO **3**, **5**, **6**, **11** au fost aleși pentru a comanda dioda laser și LED-urile, iar pinii **9** și **10**, care pot furniza semnal PWM, au fost aleși pentru controlul servomotoarelor. Pinul **A0** servește la citirea valorii potențiometrului.
 +
 +Pe placa ESP32-CAM am folosit pinii **13**, **14** și **15** pentru comunicare prin I2S cu amplificatorul,​ respectiv pinii **12** și **16** pentru comunicarea prin UART cu Arduino.
 ===== Software Design ===== ===== Software Design =====
  
 +Sistemul software urmează un automat finit de stări reprezentat în diagrama de mai jos:
 +
 +{{ :​pm:​prj2026:​alexandru.jipa2803:​cosmin_stefan.popa:​automat-2.png?​350 |}}
 +
 +Cele două microprocesoare care implementează acest automat au responsabilități diferite și comunică folosind protocolul point-to-point SLIP peste UART.
 +
 +Subsistemul de pe ESP32-CAM conține două taskuri de FreeRTOS prin intermediul cărora:
 +  * Prelucrează imaginile obținute de la cameră pentru a detecta mișcarea.
 +  * Decide starea sistemului.
 +  * Trimite coordonatele mișcării către Arduino Uno R3.
 +  * Citește instrucțiuni legate de sunet de la Arduino Uno R3.
 +  * Redă prin I2S sunete stocate în memoria flash.
 +
 +Subsistemul de pe Arduino Uno R3:
 +  * Primește coordonatele mișcării de la ESP32-CAM și ațintește vertiginos laserul spre subiect ;-) folosind servomotoarele.
 +  * Citește volumul de la potențiometru și trimite valoarea către ESP32-CAM.
 +  * Primește acțiuni specifice fiecărei stări (ex. pornire laser, pornire LED-uri etc.).
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
Line 52: Line 82:
 ===== Jurnal ===== ===== Jurnal =====
  
 +Diagrama Gantt curentă:
  
 {{ :​pm:​prj2026:​alexandru.jipa2803:​cosmin_stefan.popa:​gantt-mai-9-fix.png?​700 |}} {{ :​pm:​prj2026:​alexandru.jipa2803:​cosmin_stefan.popa:​gantt-mai-9-fix.png?​700 |}}
pm/prj2026/alexandru.jipa2803/cosmin_stefan.popa.1778348297.txt.gz · Last modified: 2026/05/09 20:38 by cosmin_stefan.popa
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