This is an old revision of the document!
Lap Timing System este un sistem de cronometraj pe sectoare pentru un vehicul care parcurge o pistă închisă, inspirat din modul în care se afișează timpii pe sectoare în calificările de Formula 1. Sistemul măsoară timpul scurs între trecerile vehiculului prin trei puncte de control de pe pistă și oferă atât citiri numerice, cât și un feedback vizual conform convenției folosite de transmisiunile F1.
Scopul proiectului este de a transforma rularea pe pistă într-o experiență de tip time trial, în care utilizatorul are imediat o evaluare a performanței pe fiecare sector, fără să fie nevoit să compare numere.
De ce cred că este util:
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.
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:
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.
Control. Două butoane permit resetarea sesiunii curente, respectiv ștergerea tuturor valorilor salvate pentru ziua curentă.
Sesiunea funcționează în model qualifying lap: cronometrul pornește la prima trecere prin dreptul senzorului de start, iar fiecare trecere ulterioară prin același punct închide turul curent și îl pornește pe următorul.
| 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. |
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.
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.