This is an old revision of the document!


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.
  • Scopul proiectului este de a simula un sistem de parcare autonomă al unei mașini.
  • Ideea de la care am pornit a fost senzorul de parcare, după care am decis să dezvolt proiectul astfel încât mașina să se folosească de informațiile primite pentru a realiza și parcarea propriu-zisă.
  • Proiectul este util deoarece are aplicabilitate și în viața reală, ușurând procesul de parcare pentru șoferi.

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:

Componentă Cantitate Link
Placă de plastic 4 https://www.optimusdigital.ro/ro/mecanica-accesorii-de-prindere/450-placa-din-plastic-cu-gaurigalbena.html?search_query=placa+de+plastic&results=39
Motor cu reductor si roată 4 https://www.optimusdigital.ro/ro/motoare-altele/139-motor-cu-reductor-si-roata.html?search_query=wheel&results=33
Punte H dublă L298N 2 https://www.optimusdigital.ro/ro/drivere-de-motoare-cu-perii/145-driver-de-motoare-dual-l298n.html?search_query=driver+modul+&results=151
Senzor ultrasunete HC SR-04P 3 https://sigmanortec.ro/Senzor-Ultrasunete-HC-SR-04P-3-5-5V-p148477760
Breadboard 400 puncte 2 https://sigmanortec.ro/Breadboard-400-puncte-p129872825
Placă de Dezvoltare Compatibilă cu Arduino UNO R3 (ATmega328p + ATmega16u2) 1 https://www.optimusdigital.ro/ro/placi-avr/4561-placa-de-dezvoltare-compatibila-cu-arduino-uno-r3-atmega328p-atmega16u2-cablu-50-cm.html?search_query=arduino+uno+r3&results=129
LCD 1602 cu interfață I2C 1 https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/2894-lcd-cu-interfata-i2c-si-backlight-albastru.html?search_query=lcd+i2c&results=17
Senzor de temperatură LM35D 1 https://www.optimusdigital.ro/ro/senzori/1469-senzor-de-temperatura-analogic-lm35d-to-92.html?search_query=lm35&results=2
Buzzer 1 https://sigmanortec.ro/Buzzer-activ-5v-p126421597
Butoane 2 https://sigmanortec.ro/buton-mini-6x6x5-4-pini
Suport de 6 baterii AA 1 https://www.optimusdigital.ro/ro/suporturi-de-baterii/941-suport-de-baterii-2-x-18650.html?search_query=suport&results=600

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:

  • Alimentarea Arduino se face direct din L298N, folosindu-se de stabilizatorul de 5V:

  • Conectarea pinilor (in + out + enables):

Asamblare hardware:

Software Design

Mediu de dezvoltare: Arduino IDE

Descrierea flow-ului software:

Mașina funcționează în două moduri distincte, controlate din aplicația de pe smartphone (Dabble):

Modul Manual (default la conectare) Modul Automat: Evitare obstacole + prăpastii

Starea 0 → Așteptare conectare Bluetooth (Idle):

  • 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:

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.

pm/prj2025/fstancu/alexandra.dinca2908.1748376716.txt.gz · Last modified: 2025/05/27 23:11 by dan.vrinceanu
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