Alin-Mihai ȘERBAN (78398) - Car Parking Sensor
Autorul poate fi contactat la adresa: Login pentru adresa
Introducere
Proiectul ales de mine urmareste implementarea unui sistem de senzori de parcare care sa asiste soferul in timpul parcarii laterale sau cu spatele. Sistemul detecteaza obstacolele din dreptul vehiculului pana la o distanta de 2 metrii prin intermediul a 3 senzori ultrasonicii si transmite soferului informatii despre obstacole.
Informatia transmisa soferului este de 2 feluri:
audio, prin intermediul unui buzzer care scoate un sunet la un interval de timp proportional cu distanta pana la cel mai apropiat obstacol
video, prin intermediul unui ecran LCD pe care se vor desena aproximativ obstacolele, in raport cu pozitia masinii
Utilitatea proiectului consta in faptul ca reprezinta o alternativa simpla si ieftina la un asistent de parcare integrat intr-o masina.
Sursa de inspiratie: watch
Descriere generală
Schema bloc:
Hardware Design
Lista de piese:
placa de baza cu microcontroller-ul si componentele de baza
3 senzori ultrasonici HC-SR04
buzzer
buton de control de tip switch pentru controlul redarii sunetului
display grafic LCD TFT ST7735
rezistente
Lista de componente nu este cea finala (ma gandesc sa cumpar inca un senzor ultrasonic daca cei 3 nu sunt suficienti si bugetul permite).
Schema electrica:
Software Design
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
Meidul de dezvoltare folosit:
avr-gcc - pentru compilare
Visual Studio Code - pentru editare
cygwin64 terminal - pentru rularea folosind “make”
HIDBootFlash - pentru flash-uire
Biblioteci folosite:
Pentru implementarea cat mai facila a functionalitatilor am preluat de pe internet o biblioteca pentru control-ul display-ului. In surse, fisierele lcd.c si lcd.h implementeaza comunicatia cu cu display-ul prin intermediul SPI, iar fisierele gfx.c, gfx.h si glcdfont.h contin implementari pentru diverse functii de afisare (de exemplu: desenarea liniilor, a dreptunghiurilor sau a textului).
Pentru preluarea informatiilor de la senzorii de distanta am urmarit modul de functionare (HCSR04.pdf) al senzorului ultrasonic HC-SR04: am contorizat timpul dintre trimiterea unui semnal de 10 us pe portul TRIGGER al senzorului si primirea raspunsului pe pinul ECHO al acestuia, determinand din acest timp distanta pana la obstacol. Pentru contorizarea timpului am folosit timer0.
Pe langa acestea, am creat urmatoarele functii:
void play_intermitent_tone(int total_duration) ⇒ pentru redarea unui sunet intermitent (pentru avertizarea sonora a distantei). Sunetul este redat doar daca switch-ul este pornit si daca distanta minima data de oricare din senzori este mai mica de 1 metru. De asemenea, de la o distanta minima mai mica de 10 cm, sunetul este redat la frecventa maxima pentru alertarea soferului. Frecventa la care alerta sonora este redata este invers proportionala cu distanta fata de obstacol.
void draw_back_wall_line(int dist0, int dist1) ⇒ o functie de afisare a pozitiei masinii in raport cu obstacolul de care se apropie. Masina si peretele, sunt afisate pe ecran doar in cazul in care distanta minima dintre distantele masurate de cei 2 senzori este mai mica de un metru. Unghiul maxim dintre perete si masina la care afisez peretele este de 30 de grade (din motive ce tin de capabiliatile senzorilor). Distanta dintre cei 2 senzori in momentul implementarii este de 24 de cm.
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
In urma testelor facute am observat ca senzorii de distanta sunt foarte sensibili si interfereaza destul de usor unul cu celalalt si sunt usor influentati de suprafata din care se reflecta sunetul. Pe langa aceasta, am observat ca pentru un obstacol aflat la un unghi mai mare de 30 de grade fata de senzori semnalul sonic se reflecta prea mult si nu mai este receptionat inapoi de senzor. Din aceasta cauza am decis simplificarea proiectului prin reducerea numarului de senzori de la 3 la 2.
Concluzii
A fost un proiect interesant, senzorii mi-au dat multe batai de cap, dar m-am distrat si in acelasi timp. Sper ca in viitor sa pot sa imbunatatesc proiectul si sa fac teste pe o masina reala.
Download
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Documentația în format
PDF