This shows you the differences between two versions of the page.
pm:prj2025:fstancu:alexandra.dinca2908 [2025/05/27 23:11] dan.vrinceanu [Software Design] |
pm:prj2025:fstancu:alexandra.dinca2908 [2025/05/28 01:49] (current) alexandra.dinca2908 |
||
---|---|---|---|
Line 69: | Line 69: | ||
===Descrierea flow-ului software:=== | ===Descrierea flow-ului software:=== | ||
- | Mașina funcționează în două moduri distincte, controlate din aplicația de pe smartphone (Dabble): | + | Mașina stă default în modul idle, până la apasărea pe buton, moment în care se generează o întrerupere și se începe rutina de căutare a locului de parcare. |
- | Modul Manual (default la conectare) | + | * Starea 0 -> Idle: la pornirea μC-ului sau la revenirea în starea 0, se măsoară temperatura o dată și se afișează pe LCD |
- | Modul Automat: Evitare obstacole + prăpastii | + | * Starea 1 -> Căutare loc de parcare: mașina se mișcă în față și se folosește de senzorul lateral pentru a găsi locul și a determina ce tip de loc e. Când acesta detectează o adâncime de peste 20 de cm, începe să măsoare locul. După ce adâncimea laterală se micșorează, algoritmul aproximează lungimea locului de parcare pe baza timpului petrecut scanând. În funcție de lungime, determină dacă parcarea se va realiza lateral sau cu spatele. Senzorul din față are scopul de a opri mașina în cazul în care nu există loc și urmează să se producă o coliziune. |
- | + | * Starea 2 -> Realizare parcare laterală: mașina face o rotație de 45 de grade, dă cu spatele până senzorul din spate detectează impact, și apoi se rotește -45 grade | |
- | Starea 0 → Așteptare conectare Bluetooth (Idle): | + | * Starea 3 -> Realizare parcare cu spatele: mașina se poziționează corect (dând cu spatele puțin), se rotește 90 de grade, iar apoi dă cu spatele până când senzorul din spate detectează impact |
- | * La pornirea microcontrollerului, mașina așteaptă conectarea prin Bluetooth. | + | |
- | * Pe LCD se afișează mesajul: Conecteaza-te sefule | + | |
- | * Nicio mișcare nu este permisă până la stabilirea conexiunii. | + | |
- | Starea 1 → Mod Manual (Bluetooth GamePad activ): | + | |
- | * După conectare, mașina intră în Mod Manual, unde poate fi controlată de utilizator folosind aplicația Dabble. | + | |
- | * Se afișează pe LCD: Mod: Manual | + | |
- | * Direcțiile disponibile: | + | |
- | * ↑ - Mers înainte | + | |
- | * ↓ - Mers înapoi | + | |
- | * ← - Viraj la stânga | + | |
- | * → - Viraj la dreapta | + | |
- | * În lipsa unei comenzi, motoarele sunt oprite automat. | + | |
- | Starea 2 → Mod Automat (Evitare obstacole și prăpastii): | + | |
- | * Activat prin apăsarea butonului Triangle din aplicație. | + | |
- | + | ||
- | * Comportament: | + | |
- | + | ||
- | * Se afișează pe LCD: Mod: Obstacole+, Prapastii | + | |
- | * Se utilizează senzorul ultrasonic pentru detecția obstacolelor și senzorul IR pentru prăpastii. | + | |
- | * Dacă se detectează o prăpastie (senzor IR = LOW): | + | |
- | * Mașina oprește, dă înapoi și virează automat pentru a evita zona periculoasă. | + | |
- | * Mesaj pe LCD: Prapastie STOP | + | |
- | * Dacă se detectează un obstacol în față: | + | |
- | * Se măsoară distanțele din stânga și dreapta prin rotirea servomotorului. | + | |
- | * Se alege direcția cea mai liberă și se virează în acea parte. | + | |
- | * Mesaj pe LCD: Obstacol STOP | + | |
- | * Dacă drumul e liber: mașina merge înainte. | + | |
- | * Mesaj pe LCD: Drum liber | + | |
- | Starea 3 → Revenire la Manual: | + | |
- | * Apăsarea butonului Cross din aplicație dezactivează modul automat. | + | |
- | * Mașina oprește orice mișcare și revine în modul manual. | + | |
- | * LCD-ul afișează din nou: Mod: Manual | + | |
===GitHub:=== | ===GitHub:=== |