Differences

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

Link to this comparison view

pm:prj2026:bianca.popa1106:toma.ariciu [2026/05/09 23:46]
toma.ariciu [Descriere generală]
pm:prj2026:bianca.popa1106:toma.ariciu [2026/05/09 23:58] (current)
toma.ariciu [Software Design]
Line 15: Line 15:
 Sistemul este construit în jurul plăcii ATmega328P Xplained Mini, alimentată prin USB de la un laptop sau o baterie externă. Microcontrolerul comunică cu patru grupuri de periferice: Sistemul este construit în jurul plăcii ATmega328P Xplained Mini, alimentată prin USB de la un laptop sau o baterie externă. Microcontrolerul comunică cu patru grupuri de periferice:
  
-**Detecție.** Trei senzori IR de obstacole sunt amplasați la limitele dintre sectoare, lângă pistă. Fiecare senzor declanșează o întrerupere externă pe ATmega328P când vehiculul trece prin dreptul lui, astfel încât detecția se face pe eveniment, nu prin polling continuu.+**Detecție.** Trei senzori IR de obstacole sunt amplasați la limitele dintre sectoare, lângă pistă. Fiecare senzor declanșează o întrerupere externă pe ATmega328P când vehiculul trece prin dreptul lui.
  
-**Cronometraj.** Timer1 al microcontrolerului (16 biți) servește ca bază de timp principală. La fiecare întrerupere de la senzori, valoarea curentă a timer-ului este capturată în software și folosită pentru a calcula timpul scurs de la trecerea anterioară. Întregul cronometraj se face cu resurse interne, fără hardware suplimentar.+**Cronometraj.** Timer1 al microcontrolerului (16 biți) servește ca bază de timp principală. La fiecare întrerupere de la senzori, valoarea curentă a timer-ului este capturată în software și folosită pentru a calcula timpul scurs de la trecerea anterioară.
  
 **Feedback vizual.** Trei LED-uri RGB (câte unul per sector) arată rezultatul comparației dintre timpul nou-măsurat,​ turul anterior și recordul sesiunii: **Feedback vizual.** Trei LED-uri RGB (câte unul per sector) arată rezultatul comparației dintre timpul nou-măsurat,​ turul anterior și recordul sesiunii:
-  * **Mov** ​— record absolut pe sectorul respectiv +  * **Mov** ​record absolut pe sectorul respectiv 
-  * **Verde** ​— record personal pe sectorul respectiv +  * **Verde** ​record personal pe sectorul respectiv 
-  * **Galben** ​— mai lent decât recordul personal+  * **Galben** ​mai lent decât recordul personal
  
 **Afișaj.** Un LCD 16×2 conectat prin I²C arată numărul turului curent, timpii pe sectoare în timp real, cel mai bun tur și diferențele față de el. **Afișaj.** Un LCD 16×2 conectat prin I²C arată numărul turului curent, timpii pe sectoare în timp real, cel mai bun tur și diferențele față de el.
Line 31: Line 31:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +==== Listă de componente ====
-Aici puneţi tot ce ţine de hardware design: +
-  * listă de piese +
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +
-  * diagrame de semnal  +
-  * rezultatele simulării +
-</​note>​+
  
 +^ Componentă ^ Rol în proiect ^
 +| ATmega328P-XMINI | Microcontrolerul care rulează firmware-ul. mEDBG-ul integrat pe placă permite programarea și debugging-ul prin USB. |
 +| 3× Senzor IR de obstacole (3.3–5 V) | Detectează trecerea vehiculului prin cele trei puncte de control. |
 +| 3× LED RGB 5 mm cu catod comun | Indicator vizual per sector (mov / verde / galben). |
 +| 1× LCD 1602 + modul I²C | Afișaj numeric pentru tur, sectoare și delta. |
 +| 2× Buton PCB tactil (12×12×7.3 mm) | Resetare sesiune și resetare valori salvate. |
 +
 +==== Justificarea componentelor ====
 +
 +**Senzorii IR de obstacole** au fost aleși pentru că oferă un semnal digital simplu (HIGH/LOW), compatibil direct cu pinii cu întrerupere externă ai ATmega328P. Pragul de detecție se reglează din potențiometrul de pe modul, ceea ce permite calibrarea în funcție de pistă și de obiectul detectat.
 +
 +**LED-urile RGB cu catod comun** au fost preferate în locul a trei LED-uri colorate separate per sector, pentru ca toate cele trei culori să apară în aceeași poziție fizică. Pentru cele trei culori discrete folosite (mov, verde, galben) este suficient controlul digital pe fiecare canal, fără PWM.
 +
 +**LCD-ul cu adaptor I²C** reduce numărul de pini ocupați de la șase (mod paralel) la doi (SDA, SCL), eliberând GPIO pentru senzori, LED-uri și butoane.
 ===== Software Design ===== ===== Software Design =====
  
 +**Mediu de dezvoltare:​** PlatformIO cu framework-ul MiniCore.
 +
 +Logica programului se bazează pe măsurarea timpului scurs între întreruperile generate de cei trei senzori IR, folosind Timer1 pe 16 biți ca bază de timp.
  
-<note tip> +**Structura algoritmului:​**
-Descrierea codului aplicaţiei (firmware):​ +
-  ​mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +
-  ​librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  ​algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  ​(etapa 3) surse şi funcţii implementate +
-</​note>​+
  
 +  - Inițializare:​ configurarea pinilor I/O, a Timer1, a întreruperilor externe pentru senzori și a interfeței I²C pentru LCD.
 +  - Bucla principală:​
 +    - Așteptarea unui flag setat de un ISR la trecerea vehiculului prin dreptul unui senzor.
 +    - Calculul timpului pe sectorul închis ca diferență între capturile Timer1.
 +    - Compararea timpului nou cu recordul personal al sesiunii și cu recordul absolut al zilei.
 +    - Actualizarea culorii LED-ului pentru sectorul respectiv (mov / verde / galben).
 +    - Actualizarea afișajului LCD cu turul curent, timpii pe sectoare și delta.
 +    - Tratarea butoanelor (cu debouncing software) pentru reset sesiune și reset valori salvate.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
pm/prj2026/bianca.popa1106/toma.ariciu.1778359596.txt.gz · Last modified: 2026/05/09 23:46 by toma.ariciu
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