Mașină cu senzor de parcare și parcare automată - Dincă Alexandra-Cristina
Dincă Alexandra-Cristina, 334CD
Introducere
Proiectul constă într-o mașină care, la comandă, începe să caute un loc de parcare. În funcție de spațiul găsit, decide dacă va realiza parcare paralelă sau cu spatele și, pe baza sistemului de parcare, va realiza manevrele fără coliziuni. Sistemul dispune de avertizări auditive pentru a informa șoferul asupra obstacolelor de la fiecare pas. În plus, mașina este dotată cu un LCD care afișează distanța până la coliziune în timpul parcării și temperatura când mașina este idle.
Descriere generală
Alimentarea tuturor componentelor se face dintr-un stabilizator de 5V al unui driver. Cele 2 drivere sunt alimentate din sursă cu 7.5V.
Cele 4 motoare sunt controlate de câte 2 drivere (punte H dublă). Acestea împart pini de input și enable (In1, In2 cu In3, In4 si EnA cu EnB pe fiecare driver) pentru a economisi pini de pe Arduino si pentru că fiecare laterală a masinii primeste exact aceleași semnale.
Restul componentelor se conectează direct la plăcuță.
2 senzori ultrasunete se conectează la pini digitali, iar al 3-lea la pini analogi (inițial voiam să îi conectez pe toți 3 la pini analogi, dar A4 și A5 interferează cu I2C, iar A1 este necesar senzorului de temperatură)
LCD I2C se conectează la SDA și SCL
butonul se conectează la un pin digital
senzorul de temperatură se conectează la pin analog (A1)
Hardware Design
Lista de piese:
Scheme electrice:
Schemă circuit:
Schema conține driver-ul L293D, dar proiectul folosește punte dublă H L298N. Am adaptat (dpdv schematic) L293D la L298N astfel încât să simuleze alimentarea plăcuței prin stablizator. Pinii sunt similari (4 in, 4 out, 2 enable), dar diferențele de conectare se pot observa în schemele următoare:
Asamblare hardware:
Software Design
Mediu de dezvoltare: Arduino IDE
Descrierea flow-ului software:
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.
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
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 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
GitHub:
Rezultate Obţinute
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
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.