FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMANT IOAN SLAVICI TIMIȘOARA [303990]
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMANT "IOAN SLAVICI" TIMIȘOARA
UNIVERSITATEA "IOAN SLAVICI" [anonimizat]: [anonimizat]. [anonimizat]
2020
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMANT "IOAN SLAVICI" TIMIȘOARA
UNIVERSITATEA "IOAN SLAVICI" [anonimizat]: [anonimizat]. [anonimizat]
2020
Cuprins
UNIVERSITATEA DIN ORADEA
FACULTATEA de Inginerie Electrică și Tehnologia Informației
DEPARTAMENTUL Calculatoare și tehnologia informației
TEMA: DISPOZITIV DE ASISTENȚĂ LA PARCARE
Proiectul de Finalizare a studiilor a student: [anonimizat]: David-Samuel Bogdan
1). Tema proiectului de finalizare a studiilor: Dispozitiv de asistență la parcare
2). Termenul pentru predarea proiectului de diplomă 21 august 2020
3). Elemente inițiale pentru elaborarea proiectului de finalizare a studiilor
Documentație aferenta dezvoltării proiectului;
Platforma de experimentare.
4). Conținutul proiectului de finalizare a studiilor :
Prezentarea noțiunilor teoretice necesare aplicației; prezentare în detaliu a aplicației;
Parte teoretică asupra studiului energiei regenerabile.
5). Material grafic: Dupa caz: Schema bloc; Poze; Detaliile aferente procesului de proiectare.
6). Locul de documentare pentru elaborarea proiectului de diplomă:
Biblioteca Universității de Vest și Biblioteca Universității ”Politehnica” din Timișoara; Internet.
7). Data emiterii temei 20 octombrie 2019
Coordonatori științifici
Prof.dr.ing. Mircea Vladuțiu
REFERAT
PRIVIND PROIECTUL DE DIPLOMĂ
A
ABSOLVENT: [anonimizat] / ABSOLVENT: [anonimizat] : David-Samuel Bogdan
DOMENIUL Calculatoare și tehnologia informației
SPECIALIZAREA Tehnologia informației
PROMOȚIA 2019
Titlul proiectului: Dispozitiv de asistență la parcare
Structura proiectului:
1. Introducere
2. Schema aplicației
3. Elemente constructive
4. Elemente software
5. Probleme apărute la punerea în funcțiune a aplicației
6. Concluzii
7. Bibliografie
9. Anexe
Aprecieri asupra conținutului proiectului de DIPLOMĂ (finalizare a studiilor), [anonimizat], actualitate, deficiențe
Lucrarea se caracterizează printr-o [anonimizat] o bună ponderare între dezvoltarea noțiunilor teoretice și descrierea aplicației.
[anonimizat] o bună coerență.
Capitolele cuprind o descriere detaliată a modulelor hardware și software implicate în realizarea practică.
Aprecieri asupra proiectului (se va menționa: [anonimizat], calitatea și diversitatea surselor consultate; modul în care absolvent: [anonimizat], fiind complementar părții redactate.
(se va menționa: opțional locul de documentare și modul în care absolvent: [anonimizat], lucrarea având la bază un număr de 15 titluri bibliografice. [anonimizat] în lucrare doar pe măsură ce sunt utilizate.
Concluzii (coordonatorul proiectului trebuie să aprecieze valoarea proiectului întocmit, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării proiectului, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)
În baza celor mai sus menționate, apreciez că lucrarea elaborată de absolvent este valoroasă, absolventul dovedind reală competență în domeniu.
Redactarea proiectului respectă întocmai cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).
Consider că proiectul îndeplinește/ nu îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din SEPTEMBRIE 2020 și propun acordarea notei ………
Oradea,
Data Coordonator științific
23.08.2020 Prof.dr.ing. Mircea Vladuțiu
1.Introducere
1.1.Motivația
Odată cu numărul tot mai mare de vehicule pe drum, problema parcării și în marile orașe crește. Locurile de parcare sunt congestionate și aproape toate orașele metropolitane se confruntă cu deficiențe cronice de locuri de parcare publice și rezidențiale; chiar dacă descoperiți un spațiu, parcarea nu va fi o sarcină ușoară. Un alt motiv din spatele creșterii problemei de parcare este creșterea lățimii și lungimii mașinii, ceea ce nu mai era cazul până acum.
Barele și aliajele cromate arată bine, dar o zgârietură sau o mică adâncitură pe ele, care se întâmplă de obicei în timp ce parchezi mașina, ar putea slăbi buzunarul. Cu o investiție de câțiva dolari, puteți instala senzorul de parcare și camerele retrovizoare în mașina dvs. în cel mai scurt timp, însă, majoritatea mașinilor noi sunt oferite cu kit de accesorii pentru parcare.
Figura 1.1 Senzori de parcare [5]
Senzorul de parcare este un dispozitiv care vă ajută să parcați vehiculul în siguranță și vă oferă încredere în timpul inversării. Determină distanța obiectelor sau obstacolelor prin săritura undelor ultrasonice/electromagnetice emise de acesta, apoi afișează distanța calculată între obstacol și senzor.
Multe mașini sunt echipate cu difuzoare încorporate care cresc viteza și frecvența pe măsură ce vehiculul se apropie de obstacol. Deși, undele sonore (în senzorii ultrasonici) pot lipsi obiecte periferice sau obiecte mai mici. Senzorii electromagnetici au o acoperire mai largă de detecție decât ultrasonicul și detectează obstacolul odată ce mașina începe să se miște. Mai mult, senzorii ultrasonici de parcare pot detecta obstacole chiar și atunci când mașina este staționată.
Deplasarea mașinii în față nu este atât de complicată ca înapoi. Senzorii de parcare invers sunt o caracteristică obligatorie pentru șoferii care au probleme cu parcarea înapoi din cauza judecării distanțelor de probleme sau greșeli. Acești senzori devin activi când începeți să parcați mașina. Senzorii de parcare din spate avertizează șoferii cu privire la distanța obstacolului din spatele mașinii și îi protejează împotriva accidentelor sau a oricăror avarii.
Figura 1.2. Senzori bara spate de parcare [5]
Camerele de parcare retrovizoare se aprind automat când mutați mașina în sens invers și afișează vizualizarea sloturilor rutiere sau de parcare din spatele mașinii. Instalarea acestor camere, la propriu, este o afacere scumpă; deși sistemul încorporat este dotat cu ecran de afișare integrat, cum ar fi Sat Nav. Cu toate aceste instrumente de parcare, parcarea devine mult mai sigură și mai ușoară.
1.2. Structura lucrării
Pe lângă introducerea care prezintă scopul și motivația alegerii temei, structura lucrării va fi formată din 4 capitole esențiale, concluzii, bibliografie și anexe.
– în capitolul 2 se va discuta despre schema Block a aplicației, ilustrarea și explicația în detaliu a acesteia.
– în capitolul 3 sunt înșiruite componentele esențiale, materialele folosite, descrierea construcției și a componentelor hardware, centrat pe ceea ce s-a aplicat, dar si programul care a făcut posibilă funcționalitatea întregului sistem.
– în capitolul 4 am folosit programe consacrate si o descriere a părților folosite din programele utilizate la realizarea structurii proiectului, corpurilor de susținere cât și a schemei bloc.
– în capitolul 5 se vor explica problemele apărute de-a lungul timpului realizării proiectului. Am adăugat acest capitol pentru a pune în evidență problemele apărute în faza de punere în funcțiune și în cea de testare a implementării aplicației.
Proiectul este finalizat printr-un capitol de concluzii, succedat de o listă bibliografică.
În cele ce urmează se va găsi o descriere cu explicații pe înțelesul tuturor a implementării acestui proiect.
2. Schema aplicației
Pentru realizarea schemelor am folosit două aplicații gratuite având denumirea Fritzing [1] (https://fritzing.org/learning/), respectiv cea de-a doua Photopea [2] https://www.photopea.com/, pentru schema electrica, schema de interconectare ale elementelor de structură ale aplicației, cât și schema bloc a aplicației am folosit tot Fritzing, iar pentru schema software am folosit Photopea.
Voi prezenta în cele ce urmează trei scheme:
Schema electrică;
Schema de interconectare ale elementelor de structură ale aplicației;
Schema bloc a aplicației.
2.1. Schema electrică a aplicației
În figura 2.1 vedem mai bine legăturile făcute între componente, schema fiind mai bine desfășurată în plan. Pentru aceasta am folosit versiunea salvată a schemei realizate, aceasta fiind pe plan alb, versiunea brută fiind pe planul de lucru alb-negru gradat.
Figura 2.1 Schema electrică a aplicației [1]
După cum se vede în partea de jos avem placa de dezvoltare Arduino Uno, iar sub placa Arduino avem un Buzzer. În partea de sus din dreapta avem doi senzori HC-SR04 Ultrasonici, iar în partea stângă avem un Led roșu (633nm) și un Rezistor de 220 de ohm.
Legăturile de alimentare a componentelor pornesc din pinul Output (+5V) al plăcii de dezvoltare Arduino și se intersectează cu pinul VCC al senzorului ultrasonic care susține partea de alimentare a plăcii.
Legăturile de pământare sunt similare cu cea de alimentare, la fel vor face o intersecție.
Ea pornește din portul GND al plăcii de dezvoltare Arduino, se intersectează cu pinul GND al senzorului Ultrasonic HC-SR04 și pinul de la ledul roșu de sus.
Senzorii HC-SR04 ultrasonici sunt conectați tot la partea digitală output a plăcii de dezvoltare Arduino pentru schimbul de date. Porturile output a primului senzor este pinul A2 și pin A3, cel de al doilea senzor este conectat pe pinul A1 și pinul A5. Rolul acestor senzori ultrasonici este de a măsura distanța față de un obiect (obstacol), iar dacă distanța este mai mică de x centimetri pe pinul D3 se generează o frecvență PWM pentru Buzzer-ul nostru, iar pe pinul A4 avem legat Ledul roșu care se va aprinde, toate aceste legături de pe placa Arduino având rol de transfer de date între componente.
2.2. Schema de interconectare ale elementelor de structură ale aplicației
În figură 2.2 fiind prezentată schema de tip PCB, este realizată pe aceeași platformă ca și cea de tip CAD, numită EasyEda. Schema este concepută în 3 straturi, legăturile fiind făcute atât în partea din față a schemei cât și în partea din spate.
Figura 2.2.Schema de interconectare ale elementelor de structură ale aplicației [1]
Culoarea galbenă a legăturilor reprezintă legăturile din partea din față, acestea fiind legăturile pentru transfer de date (biți) între componențele schemei tipărite și placă de dezvoltare Arduino Nano cât și încadrarea schemei în pagina de lucru. De asemenea ele reprezintă partea de alimentare (5V) a componentelor și pământarea (GND) între componentele schemei și porturile plăcii de dezvoltare Arduino Nano. Culoarea galbenă evidențiază componentele schemei de partea de legătură, fiecare componentă fiind din nou evidențiată și cu ajutorul denumirii.
2.3. Schema bloc a aplicației
În figura 2.3 pentru o înțelegere mult mai amplă a conexiunilor se găsește ilustrată o schemă cu viziune plană a componentelor aplicației și legăturile acestora. Pentru realizarea ei am folosit Fritzing [1].
Figura 2.3 Schema bloc [1]
3.Elemente constructive
3.1.Structura corpului aplicației
Aplicația a fost montată pe o mașinuță [7] din plastic cu telecomandă cumpărată de la raionul de jucării. Am folosit teneuri, fașete și scoci, ca realizarea proiectului să poată fi făcută mult mai ușor. Pentru aceasta am folosit ustensile care se găsesc ușor și sunt la îndemâna fiecăruia: un cutter, brichetă, o șurubelniță cu cu formă de stea, un șubler, o trusă obișnuită de geometrie și un compas.
Pentru realizarea corpului au trebuit efectuate niște măsurători și calcule. Conform figurii 3.1 de mai jos, structura aplicației este formată din mai multe părți. Fiecare parte a corpului reprezentată în figură este numerotată în colțul dreaptă sus pentru a fi mai ușoară deosebirea lor în descrierea ce urmează mai jos .
Figura 3.1.Structura pe care a fost montată aplicația [10]
Imaginea (1) și (2) este reprezentată mașinuța de curse cu drifter controlat de la distanță, cu faruri față și spate, cu funcționare completă, beculețe în interiorul fiecărei roti, o rotire de 360, având 4 relee pentru pornire mai rapidă și cursa mai lină, șasiu cu capac, iar viteza sa atinge 30Klm/H, având o scară de 1:10 respectiv o dimensiune de 45 centimetri lungime, pe 18 centimetri lățime, pe 10 centimetri înălțime, reprezentad suportul aplicației.
Imaginea (3) regăsim însăși aplicația, respectiv placa de dezvoltare compatibilă cu Arduino Uno (ATmega328p și CH340) [6], care are montat deasupra plăcii un shield special pentru Arduino Uno cu LCD și Tastatura (LCD 1602 cu keypad), tot odată mai avem un buzzer pentru placa de bază cu conectorii aferenți, folosit ca semnal sonor și binenteles un led roșu folosit ca semnal luminos.
Imaginea cu numărul (4) este cablul de alimentare care intră în placa de dezvoltare Arduino uno, alimentarea plăcii se face printr-un power bank (7) care are o capacitate de 5000 mAh, care se află în interiorul carcasei a mașinuței.
Imaginea cu numărul (5) este senzorul HC-SR04 Ultrasonic din față a mașinii, pe care îl puteți vedea și în imaginea (7) în partea stângă în interiorul carcasei.
Imaginea cu numărul (6) este senzorul HC-SR04 Ultrasonic din spatele mașinii, pe care îl puteți vedea și în imaginea (7) în partea dreaptă în interiorul carcasei.
3.2. Echipamentele folosite (partea hardware)
Tipuri de senzori de parcare
Există două tipuri de senzori de parcare, care includ următoarele:
– Senzor de parcare cu ultrasunete
– Senzor de parcare electromagnetic
1). Senzor de parcare cu ultrasunete
Acești senzori joacă un rol cheie în detectarea obiectelor cu ajutorul undelor sonore de înaltă frecvență. Acești senzori produc impulsuri de sunet care reflectă obiectele apropiate. Un receptor observă undele reproduse și estimează spațiul din mașină până la obiect.
De obicei, acești senzori sunt conectați la un dispozitiv de alarmă pentru a da o alertă șoferului atunci când un obstacol se apropie de vehicul.
Există unele dezavantaje prin utilizarea acestor senzori, care includ următoarele.
Frecvent obiectele minuscule nu sunt detectate deloc.
Materiale particulare precum carnea, plasticul sau sângele nu pot reproduce unde ultrasonice.
De obicei, există o colecție de senzori aranjați peste bara de protecție a mașinii, în care un strat de grăsime, precum și murdărie, poate opri funcționarea corectă a senzorului.
2). Senzori de parcare electromagnetici
Un senzor de parcare electromagnetic este utilizat pentru detectarea obiectelor din apropiere cu ajutorul frecvențelor electromagnetice. Întrucât acești senzori observă o gamă largă de lungimi de undă peste spectrul electromagnetic. Pot observa diferite tipuri de obiecte fără limite similare ale senzorilor de parcare cu ultrasunete. Acești senzori pot fi construiți cu o cameră pentru a ajuta proprietarii de mașini în vizualizarea vehiculului, precum și în zona din jurul său.
În general, atât senzorii de parcare, cum ar fi cei ultrasonici, cât și electromagnetici sunt proiectate pentru a se conecta ori de câte ori funcționează cu viteză mică sau invers. În mod automat, încetează transmiterea datelor prin sistemul de infotainment în timp ce înaintează și cu viteză suficientă pentru a reduce întreruperea șoferului.
Funcționarea
Principiul de funcționare al senzorului de parcare depinde de tipul sau: electromagnetic, sau ultrasonic. Ori de câte ori șoferul folosește viteza inversă, atunci senzorii de parcare se declanșează automat și transmit semnale ultrasonice. Când aceste semnale lovesc obiectul apropiat, acestea sunt imediat replicate și din nou sunt capturate de senzorii de parcare. În funcție de timpul scurs în timpul trimiterii și recuperării semnalelor, unitatea de control a motorului măsoară distanța de la vehicul la un obiect.
Când mașina se deplasează spre un obiect, atunci sistemul de alarmă oferă o alertă șoferului autovehiculului cu un sunet sonor pentru a preveni vehiculul. Unele companii de automobile oferă o cameră încorporată pentru a avea o viziune exactă a zonei înconjurătoare a vehiculului.
Avantaje
Avantajele senzorului de parcare includ următoarele:
acest sistem scade epuizarea șoferului în timpul parcării auto.
reducerea zonei invizibile din regiunea vehiculului, astfel usurând sarcina dificilă a parcării în locuri înguste.
vizualizarea sporită a regiunii după ce vehiculul scade probabilitatea de rănire către autoturism, altminteri apropiate de obiecte.
Limitări
Limitările acestui senzor includ în principal următoarele:
detectarea obiectelor verticale sau plate extrem de subțiri este dificilă.
când suprafața este acoperită cu zăpadă sau noroi, senzorul nu reușește să detecteze obiectul
Find vorba despre o imagine de ansamblu a senzorului de parcare. Aplicațiile senzorului de parcare includ acolo unde sistemele de parcare sunt instalate ca hoteluri, aeroporturi, bănci, centre comerciale și târguri comerciale.
Pentru a face posibilă funcționarea proiectului partea hardware principală a proiectului este senzorul ultrasonic HC-SR04.
Figura 3.2 Senzorul HC-SR04 Ultrasonic [5]
Functionarea unui senzor ultrasonic
Totul începe atunci când un puls de cel puțin 10 µS (10 microsecunde) în durată este aplicat pe pinul Trigger. Ca răspuns, senzorul transmite o explozie sonică de opt impulsuri la 40 KHz. Acest model cu 8 impulsuri face „semnătura ultrasonică” de la dispozitiv unic, permițând receptorului să diferențieze modelul transmis de zgomotul ultrasonic ambiental.
Cele opt impulsuri ultrasonice călătoresc prin aer departe de emițător. Între timp, pinul Echo merge HIGH pentru a începe să formeze începutul semnalului ecou-back.
În cazul în care aceste impulsuri nu sunt reflectate înapoi, semnalul Echo se va termina după 38 mS (38 milisecunde) și va reveni scăzut. Astfel, un impuls de 38 mS nu indică nicio obstrucție în raza de acțiune a senzorului.
Figura 3.3 Senzorul HC-SR04 Ultrasonic [4]
Dacă aceste impulsuri sunt reflectate înapoi, pinul Echo coboară imediat ce primește semnalul. Acest lucru produce un impuls a cărui lățime variază între 150 µS și 25 mS, în funcție de timpul necesar pentru a primi semnalul.
Figura 3.4 Senzorul HC-SR04 Ultrasonic [4]
Lățimea pulsului primit este apoi utilizată pentru a calcula distanța până la obiectul reflectat. Acest lucru poate fi rezolvat folosind o ecuație simplă distanță-viteză-timp, am învățat în liceu. În cazul în care ați uitat, o modalitate ușoară de a vă aminti ecuațiile de distanță, viteză și timp este de a pune literele într-un triunghi.
Placa Arduino Uno
Figura 3.5 Placa de dezvoltare Arduino Uno (ATmega328p și CH340)[11]
Arduino este este o platformă de procesare open-source.
Placa de dezvoltare o versiune de Arduino Uno R3, cu o interfață USB nouă și îmbunătățită. Ca și Uno are slot de expansiune cu suport pentru 3,3 V, pin de RESET și un sistem de selecție automat pentru sursa de alimentare USB sau DC. Uno este compatibil din perspectiva codului și a formatului cu Duemilanove, Diecimilla și alte versiuni mai vechi de Arduino, deci toate librăriile și modulele pe care le ai vor funcționa fără nici o problemă. Uno R3 oferă în plus o concesiune usb îmbunătățită, pini în plus pentru suportul I2C și IORef. Plăcile Arduino pot citi inputuri, lumina pe un senzor, un deget pe un buton sau un mesaj Twitter și o transformă într-o ieșire activă un motor, pornind un LED, publicând ceva online.
Arduino s-a născut la Ivrea Interaction Design Institute ca un instrument ușor de prototipare rapidă, destinat studenților care nu au un background în electronică și programare. De îndată ce a ajuns la o comunitate mai largă, consiliul Arduino a început să se schimbe pentru a se adapta noilor nevoi și provocări, diferențiind oferta sa de la plăcile simple pe 8 biți până la produsele pentru aplicații IoT, imprimări 3D și medii încorporate. Toate plăcile Arduino sunt complet open-source, permițându-le utilizatorilor să le construiască independent și eventual să le adapteze la nevoile lor specifice. Software-ul, de asemenea, este open-source, și este în creștere prin contribuțiile utilizatorilor din întreaga lume.
Există multe alte microcontrollere și platforme de microcontroller disponibile pentru calculul fizic. Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard și multe altele oferă funcționalități similare. Toate aceste unelte i-au detaliile dezordonate ale programării microcontrollerului și o înfășoară într-un pachet ușor de utilizat.
Arduino simplifică, de asemenea, procesul de lucru cu microcontrollerele, dar oferă un anumit avantaj pentru profesori, studenți și amatori interesați față de alte sisteme:
Ieftin – plăcile Arduino sunt relativ ieftine în comparație cu alte platforme de microcontroller. Versiunea cea mai puțin costisitoare a modulului Arduino poate fi asamblată manual, iar modulele Arduino pre-asamblate costă mai puțin de 50 $
Cross-platform – Software-ul Arduino (IDE) rulează pe sistemele de operare Windows, Macintosh OSX și Linux. Cele mai multe sisteme de microcontroller sunt limitate la Windows.
Mediu de programare simplu și clar – Software-ul Arduino (IDE) este ușor de utilizat pentru începători, dar suficient de flexibil pentru ca utilizatorii avansați să profite de asemenea. Pentru profesori, este convenabil pe mediul de programare Prelucrare, astfel încât elevii care învață să programeze în acel mediu vor cunoaște modul în care funcționează ID-ul Arduino.
Software open source și extensibil – Software-ul Arduino este publicat ca instrument open source, disponibil pentru extensie de către programatori experimentați. Limbajul poate fi extins prin biblioteci C ++, iar oamenii care doresc să înțeleagă detaliile tehnice pot face saltul de la Arduino la limbajul de programare AVR C pe care se bazează. În mod similar, puteți adăuga codul AVR-C direct în programele dvs. Arduino dacă doriți.
Sursa open source și hardware extensibil – Planurile plăcilor Arduino sunt publicate sub licență Creative Commons, astfel încât designerii de circuit experimentați pot să facă propria versiune a modulului, să o extindă și să o îmbunătățească. Chiar și utilizatorii relativ neexperimentați pot construi versiunea cu panou de bord a modulului pentru a înțelege cum funcționează și pentru a economisi bani. [12]
Figura 3.6 Diagrama plăcii cu Arduino Uno (ATmega328p și CH340)[11]
Am decis folosirea plăcii Arduino datorită ușurinței de programare și a costului cu mult inferior față de alte plăci ca de exemplu Raspberry deși ele sunt mult mai avansate din punct de vedere a posibilităților tehnice.
Arduino poate fi utilizat pentru a comunica cu un computer, o altă placă Arduino sau alte microcontrollere. Microcontrollerul ATmega328P oferă comunicații seriale UART TTL (5V), care se poate realiza cu pinul digital 0 (Rx) și pinul digital 1 (Tx). Un ATmega16U2 de pe placă canalizează această comunicare serială prin USB și apare ca un port virtual pentru software pe computer. Firmware-ul ATmega16U2 folosește driverele USB COM standard și nu este necesar un driver extern. Cu toate acestea, pe Windows, este necesar un fișier.inf. Software-ului Arduino incluzând un monitor de serie care permite trimiterea de date textuale simple către și de pe placa Arduino. Pe placa Arduino există două LED-uri RX și TX care vor clipi atunci când datele sunt transmise prin cipul USB la serial și conexiunea USB la computer (nu pentru comunicarea în serie pe pinii 0 și 1). O bibliotecă SoftwareSerial permite comunicarea în serie pe oricare dintre pinii digitali ai Uno. ATmega328P suportă de asemenea comunicarea I2C (TWI) și SPI. Software-ul Arduino include o bibliotecă Wire pentru a simplifica utilizarea magistralei I2C.
Arduino Uno este o placă microcontroller bazată pe micro-controler ATmega328P pe 8 biți. Împreună cu ATmega328P, este alcătuit din alte componente, cum ar fi oscilatorul de cristal, comunicarea în serie, regulatorul de tensiune etc., pentru a susține microcontrollerul. Arduino Uno are 14 pini de intrare/ieșire digitali (din care 6 pot fi folosiți ca ieșiri PWM), 6 pini de intrare analogici, o conexiune USB, o priză Power bar, un antet ICSP și un buton de resetare.
Pentru această aplicație am folosit o placă de dezvoltare compatibilă cu Arduino Uno (ATmega328p și CH340).
Am decis folosirea plăcii Arduino datorită ușurinței de programare și a costului cu mult inferior față de alte plăci că de exemplu Raspberry deși ele sunt mult mai avansate din punct de vedere a posibilităților tehnice.
Am ales Arduino uno (în favoarea unui Arduino nano de exemplu) pentru compatibilitatea cu shieldul cu lcd și pentru că poate fi fixat cu ușurință (prin șuruburi/cuie/ace).
De la această placă am folosit pinii atât din partea analogică cât și din partea digitală. Fiecare dintre ce-i 14 pini digitali (notați cu D) poate fi folosit ca ieșire sau intrare folosind în program funcțiile pinMode (), digitalWrite () și digitalRead (). Ele operează la 5V. Fiecare pin poate distribui sau primi un maxim de 40mA și are în interiorul său un rezistor. Ceilalți pini analogi 8 la număr, au funcții specializate. Spre exemplu 0RX și 1TX sunt folosite pentru a primi sau transmite date prin serial. Nu voi intra în detalii pentru că acea parte a microcontroller-ului nu a fost folosită la realizarea acestui proiect. Pentru acest tip de proiect a fost cel mai potrivit microcontroller datorită dimensiunilor mici.
Comparație între Arduinno și Raspberry Pi
Ambele Raspberry Pi 3 și Arduino sunt alegeri populare pe piață între ele fiind unele diferențe:
Arduino
Definiție:
Un Arduino este o placă de bază cu microcontroller. Un microcontroller este un calculator simplu în care se poate executa un singur program la un moment dat. Este foarte ușor de utilizat. Arduino este o platformă open-source și prototip, bazată pe hardware și software ușor de utilizat.
Tipul plăcii:
Arduino este o placă de microcontroller și această placă nu este la fel de puternică ca și Raspberry Pi 3, dar placa cu microcontroller poate fi excelentă pentru setările rapide. Microcontrollerele sunt bune atunci când vine vorba de controlul dispozitivelor mici, dar nu este posibilă rularea unui întreg sistem de operare.
Abilități și Conectivitate:
Arduino nu se poate conecta la dispozitive Bluetooth și Internet fără un Shield care adaugă conexiune Internet sau Bluetooth. HAT-urile (Hardware Attached on Top) și Shields ajută la acest proces.
Porturi:
Arduino nu are nici unu dintre acestea dar se pot adăuga folosind shield-ul.
Aplicații:
Nu se poate realiza în Arduino, deoarece microcontrollerele au doar 16 MHz
Domeniile de aplicabilitate:
Placa de microcontrollere Arduino poate fi utilizată pentru sarcini simple și repetitive, cum ar fi funcționalitatea sau deschiderea și închiderea ușii de garaj, citirea temperaturii și raportarea la site-urile sociale (de ex.: Twitter) și rularea unui robot simplu.
Raspberry PI 3 [8]
Definiție:
Cea mai recentă versiune a computerului Raspberry Pi este Raspberry Pi 3 Model B. Raspberry Pi este o serie de computere cu o singură placă. Este un calculator cu dimensiuni de carduri de credit cu costuri reduse, care se conectează la un monitor de calculator sau la un televizor, iar pentru a-l utiliza, se poate folosi o tastatură și mouse-ul standard.
Tipul plăcii:
Este un “calculator” complet funcțional cu memorie dedicată, processor și care rulează pe un sistem de operare Linux.
Abilități și Conectivitate:
Raspberry poate fi conectat la dispositive Bluetooth sau la internet folosind portul Ethernet sau prin Wi-Fi.
Porturi:
HDMI, port audio, 4 USB, port webcam și LCD port
Aplicații:
Se pot realiza mai multe programe multitasking cu Broadcom BCM2837 ȘoC, adică se poate folosi la un proiect complex care necesită mai multe acțiuni la un moment dat și poate fi realizat cu ușurință folosind Raspberry Pi 3.
Domeniile de aplicabilitate:
Raspberry Pi este cea mai bună metodă de a folosi atunci când un utilizator necesită mijloace de calculator complete atunci când utilizatorul dorește să controleze un robot mai complicat, efectuând calcule intense, sau mai multe sarcini.
Figura 3.7 Diagrama plăcii cu Arduino Uno (ATmega328p și CH340) [8]
Shield pentru Arduino cu LCD și Tastatura (LCD 1602 cu keypad)
Afișarea informațiilor în proiectele electronice a fost întotdeauna cea mai convingătoare problemă. Există diferite modalități de afișare a datelor. Aceste ecrane pot fi atât de simple, cum ar fi 7segmente sau LED-uri, sau pot fi mai fascinante, cum ar fi LCD-urile. Folosirea ecranelor LCD a fost întotdeauna una dintre cele mai populare metode de afișare a informațiilor. Ecranele LCD sunt împărțite în două tipuri generice: caractere și grafică.
Unul dintre cele mai comune, mai ieftine și mai simple LCD-uri disponibile este LCD-ul cu caractere. Acest LCD este format din mai multe rânduri și coloane. Literele și numerele sunt scrise în locurile create de rânduri și coloane. De exemplu, caracterul LCD 16 * 2 are 2 rânduri și 16 coloane. Deci poate afișa 32 de caractere.
Lucrul cu aceste LCD-uri este foarte simplu și au compatibilitate deplină cu toate microcontrollerele și plăcile de procesare. Pentru o utilizare mai ușoară a acestor LCD-uri, modelul său 16×2, inclusiv patru taste pentru realizarea meniului, este realizat ca un scut, care este, de asemenea, compatibil cu plăcile Arduino.
Am ales un shield cu lcd pentru a elimina cele 8-9 fire și alte componente necesare pentru a conecta un display clasic 16×02 la Arduino, acestea fiind lipite și conectate la Arduino direct prin shield. Shieldul mai dispune de 5 butoane conectate pe pinul A0(pentru dezvoltări ulterioare). Display-ul este un display de tip vechi, lcd, cu 16 caractere pe rând, 2 rânduri.
Figura 3.8 Shield pentru Arduino cu LCD și Tastatură (LCD 1602 cu Keypad)[6]
Alte componete folosite pentru implemetarea aplicației.
Pentru această aplicație am mai folosit
Un buzzer pasiv pentru că avem posibiliatea de a modifica frecvența sunetului, pe când la un buzzer activ frecvența ar fi una fixă.
Ledul folosit este un led de 5mm diametru, roșu. Acesta are o rezistență de 220ohm conectată în serie (lipită pe el, sub bandă neagră). Rezistența are rolul de a limita curentul ce trece prin led și de a-l proteja să nu se ardă.
Figura 3.9 Buzzer-ul pasiv cu conector pentru placa de bază și un led roșu cu diametrul de 5mm și o rezistență de 220ohm 5mm
Construcția a fost terminată, funcționarea componentelor a fost explicată și pentru că aceste componente să poată funcționa, trebuie stabilit un cod software. Mai departe vor fi explicate și aspectele legate de cod-ul aplicației.
3.3. Construcția corpului aplicației
După cum am spus și în primul subcapitol materialul de care m-am folosit în acest proiect este din plastic subțire.
Am făcut ca această aplicație să se poată monta pe mașinuța prezentată din figura 3.10 de mai jos.
Figura 3.10. Mașinuța de curse cu telocomandă ghidată [7]
Aplicația a fost montată pe o mașinuță de curse cu drifter controlat de la distanță, cu faruri față și spate, cu funcționare completă, rotire 360, având 4 relee pentru pornire mai rapidă și cursă mai lină, șasiu cu capac, iar viteza sa atinge 30Klm/H, având o scară de 1:10 respectiv o dimensiune de 45 centimetri lungime, pe 18 centimetri lățime, pe 10 centimetri înălțime, reprezentând suportul aplicației.
3.3.1. Montarea aplicației
Placa Arduino a fost montată cu 3 holșuruburi pe partea de sus a carcasei, iar peste a fost montat un shild pentru Arduino cu LCD și Tastatură (LCD 1602 cu keypad).
Figura 3.11.Montarea plăcii Arduino [13]
Pe placa Arduino am lipit un Led roșu iar pe shield am conectat un buzzer pentru placa de bază, cât și firele celor doi senzori ultrasonici după cum se poate vedea în Figura 3.11 de mai sus.
3.3.2. Montarea Senzorilor
Senzorii Ultrasonici HC-SR04 au fost montați unul în față și unul în spatele mașinuței.
Firele de la senzorii ultrasonici au fost trase prin interiorul carsasei, iar pentru aceasta am folosit un cutter, o brichetă pentru a încălzii lama și a face posibil ca firele să fie trase înăuntru, am decupat carcasa și am fixat firele cu scotch de hârtie până la senzori. Prin locul unde am decupat în carcasa am tras și cablul de alimentare de la Power Bank.
Figura 3.12. Traseul firelor de la senzori și alimentare [12]
Pentru a monta senzorii ultrasonici în carcasa mașinii am folosit tot un cutter și o brichetă pentru a încălzii lama, am măsurat diametrul celor două cercuri de la senzor și cu ajutorul unui compas am desenat diametrul cercurilor pe carcasa și cu ajutorul cutter-ului încălzit am decupat cercurile pentru a putea fixa senzorul pe carcasă.
Figura 3.13. Montarea senzorilor fata și spate [13]
Pentru a fi sigur că senzorii sunt fixați bine am prins senzorul ultrasonic HC-SR04 cu fașete albe din interior în exteriorul carcasei.
3.3.3. Alimentarea plăcii Arduino
Pentru alimentarea plăcii de dezvoltare Arduino am folosit un cablu negru USB AM la BM de un metru pentru Arduino Uno și un Power bank de 4000 de mAh.
Figura 3.14. Traseul firelor de la senzori și alimentare [15]
Pentru aceasta a trebuit să decupez în carcasa mașinuței pentru a putea trage cablul de alimentare din placa Arduino către Power bank..
Tot odată prin același decupaj am tras și firele de la senzorii de parcare către plac Arduino.
4. Elemente software
În figura 4.1 de mai jos am desenat cu ajutorul aplicației Photopea [2] Schema Software a aplicației cu toate fazele prin care trece de când este alimentată și până este oprită.
Figura 4.1. Schema software
Pentru realizarea acestui proiect a fost nevoie de folosirea unor aplicații. În acest capitol voi descrie toate părțile folosite din programele aplicate, dar voi face o prezentare a Schemei Software al aplicației
4.1. Codul aplicației de detectare obstacol
După ce toate componentele proiectului au fost descrise a venit rândul și codului sursă folosit pentru punerea în funcțiune a întregului proiect. În cele ce urmează vă fi desfășurată explicația codului și descrierea proiectului după acel cod.
Limbajul folosit are la bază limbajul C iar programul de compilare este un program pus gratuit la dispoziție de către Arduino pe site-ul lor acesta fiind în totalitate compatibil cu plăcile de dezvoltare Arduino [11].
În prima parte a codului avem specificat distanța la care se declanșează alarma 1 (atunci când trece de mai puțin de 10 cm), alarma 2 (atunci când trece de mai puțin de 30 cm) și alarma 3 (atunci când trece de mai puțin de 50 cm). Frecvența la care scoate sunete buzzerul este în Hz, care poate fi între 31 și 20.000, pentru această aplicație am ales ca frecvența să fie la 250 Hz.
Pinii pe care a fost montat senzorul din față este TRIG1 cu A5 și ECHO1 cu A1, iar senzorul din spate a fost montat pe TRIG2 cu A2 și ECHO2 cu A3.
Pinii pe care a fost montat Buzzer-ul este pinul 3 iar minusul acestuia a fost lipit este pinul 13, iar ledul roșu a fost montat pe pinul A4.
Figura 4.2. Declararea distanței și pinii pe care au fost montați [14]
În imaginea de jos am introdus funcția care citește distanța la care se află senzorul față de obstacolul din fața lui.
Tot odată avem declarați pinii pe care e pus display-ul pentru a putea afișa distanța corectă față de obstacol
Figura 4.3. Funcția care citește distanța și pinii pe care e pus display-ul
Atunci când alimentăm aplicația funcția setup rulează o dată la pornirea Arduino. Mai departe facem inițializarea pinului cu ledul ca OUTPUT și cu cu pinul pe care e pus minusul de la buzzer
Prin pinul TRIG1 Trigger-ul trimite un scurt impuls de sunet, iar prin pinul TRIG2 Echo recepționează sunetul când se întoarce.
Dacă distanța este mai mare de 50 cm atunci stingem ledul și dăm minus la buzzer și inițializăm display-ul cu valoare distanței față de obstacol.
Figura 4.4. Pornirea aplicației și inițializarea display-ului [15].
Funcția setup rulează la infinit citind distanța din față și din spate, ecranul display-ului este tot timpul golit afișând distanța din față și din spate față de obstacol.
Dacă avem un obiect care este prea aproape (mai puțin de "MINI" 10 cm) față de senzorul din față sau spate, ledul roșu se pornește și buzzer-ul face 5 beep-uri rapide până când distanța față de obstacol este mai mare de 10 cm.
Figura 4.5. Citirea distanței și inițializarea alarmei 3
Dacă avem un obiect care este prea aproape (mai puțin de MIN2 30 cm) față de senzorul din față sau spate, ledul roșu se pornește și buzzer-ul face 3 beep-uri până când distanța față de obstacol este mai mare de 30 cm.
De asemenea dacă avem un obiect care este prea aproape (mai puțin de MIN3 50 cm) față de senzorul din față sau spate, ledul roșu se pornește și buzzer-ul face 2 beep-uri până când distanța față de obstacol este mai mare de 50 cm.
Atunci când distanța este suficient de mare în față și în spate față de obiect atunci alarma (buzzer-ul) se va opri, iar ledul se va stinge.
Figura 4.6. Inițializarea alarmei 2, inițializarea alarmei 3 si oprirea alarmei.
Funcția care citește distanța din față care va trimite un impuls scurt către pinul de TRIG, vom măsura cât durează până primim răspunsul pe pinul de ECHO, așteptând maxim 100.000 nanosecunde (~34/2=17m). Sunetul parcurge 0.034cm într-o nanosecundă, a cărei distanțe se împarte la 2 pentru ca sunetul dus-întors de la senzor.
Figura 4.7. Funcția care citește distanța din față si o calculeaza
De asemenea avem și funcția care citește distanța din spate care va trimite un impuls scurt către pinul de TRIG, vom măsura cât durează până primim răspunsul pe pinul de ECHO, așteptând maxim 100.000 nanosecunde (~34/2=17m).
Figura 4.8. Funcția care citește distanța din spate și o calculează
Sunetul parcurge 0.034 cm într-o nanosecundă, a cărei distanțe se împarte la 2 pentru ca sunetul dus-întors de la senzor.
4.2 Programul Fritzing
Fritzing [1] este o aplicație care se poate descărca online. Această aplicație poate fi accesată de pe site-ul https://fritzing.org/. Acest editor permite inginerilor să proiecteze, simuleze și să distribuie mai departe în mod privat sau public orice schemă, simulare sau schemă bloc. Toate documentele pot fi descărcate în formatele cunoscute PDF, PNG sau SVG. Fritzing permite crearea sau editarea unor diagrame schematice și mixarea elementelor analogice și digitale. Descărcarea acestuia se poate face gratuit accesând următorul link de mai jos : https://fritzing.en.lo4d.com/download/mirror-ls1
Figura 4.9 Aplicatia Fritzing
Pentru acest proiect din Fritzing am folosit: Wiring Tools, Drawing Tools, Part Attributes (conține părți și echipamente prestabilite cum ar fi Arduino, Senzorii Ultrasonici sau echipamentele ce se pot concepe de la zero după nevoie). Cu această aplicație am realizat schema de tip PCB (printed circuit board) și cea de-a doua de tip CAD (compute-aided design) prezentate în al doilea capitol.
4.3. Programul Arduino
Arduino [11], este un program pus la dispoziție în mod gratuit de firma Arduino și poate fi descărcat direct de pe site-ul lor (www.Arduino.cc). Arduino este o companie care proiectează și plăci de dezvoltare dar și creare software. Acest program pune la dispoziție un limbaj unic ușor de folosit, dar aplicația mai poate compila și alte limbaje cum ar fi limbajul C. Acest program mai pune la dispoziție nenumărate librării.
Figura 4.10 Aplicatia Arduino [11]
Acest program pune la dispoziție toate ustensilele necesare pentru crearea și compilarea unui soft, pentru ca aceasta să poată să fie urcată pe placa de dezvoltare direct din aceeași platformă.
4.4. Programul paint
Pentru editarea pozelor găsite în această lucrare am folosit o aplicație pusă la dispoziție de către Windows. Anume, programul paint din care am folosit partea de tăiere, selectare și lipire a pozelor acestea fiind găsite în tab-ul de sus "Crop" și "Select".
Figura 4.11 Aplicația Paint
4.5. Greenshot
Greenshot [3] un program foarte folositor pus la dispoziția utilizatorului pe site-ul următor (https://getgreenshot.org/). Acest program l-am folosit pentru decuparea fotografiilor efectuate, după aceea lipirea lor în PAINT pentru editare.
Figura 4.12. Aplicația Greenshot [3]
Tot odată am folosit pentru a încercui sau pentru a marca cu săgeți pentru a putea arăta anumite lucruri în imagini.
5.Probleme apărute la punerea în funcțiune a aplicației
5. Probleme apărute
Pe parcursul construirii acestei aplicații am întâmpinat diferite probleme la nivel de construcție cât și la nivel de soft.
La partea de construcție am întâmpinat trei mari probleme. Una dintre ele a fost la partea de prindere a senzorilor ultrasonici HC-SR04 (figura 5.1).
Figura 5.1. Probleme apărute la montarea senzorilor
Atunci când am decupat pentru a putea monta senzorii ultrasonici a trebuit să încălzesc lama unui cutter pentru a decupa două cercuri care să aibă forma senzorului ultrasonic, pentru a-l prinde de carcasa mașinuței din interior înspre exteriorul mașinuței.
Pentru a fi și mai sigur că vor sta ficși am legat acei sezori ultrasonici cu o fașetă atât la cel din față cât și la cel din spatele mașinuței.
A doua problemă pe care am întâmpinat-o este partea în care a trebuit să fixez placa Arduino pe carcasa mașinuței, astfel prinzând-ul cu șuruburi și tot odată a trebuit să decupez pe mijlocul carcasei un pătrat prin care să trag cablul de alimentare către power bank, dar și firele care duc către senzorii de parcare. Figura5.2
Figura 5.2. Probleme apărute la montarea senzorilor
A treia problemă care am intâmpinat-o este faptul ca mașinuța de curse care prinde o viteză de pâna la 30km/h, atingând aceasta viteză find puțin mai dificil de controlat cu telecomanda.
6.Concluzii
Soluțiile dispozitivului de asistență la parcare, simplifică procesul de parcare a mașinilor pentru evitarea posibilelor accidente.. Automatizarea criteriului de parcare în siguranță este tot mai căutată odată cu creșterea numărului de mașini.
După cum am arătat în capitolul 1 tema "Dispozitiv de asistență la parcare" a fost asumată de un număr important de capitole. În capitolul 2 am analizat tema din punct de vedere al schemei electrice cât și bloc. Pe parcursul capitolului 3 a fost explicat fiecare componentă folosită pentru această aplicație, dar și fiecare pas făcut pentru realizarea construcției aplicației, iar pe finalul capitolului o descriere a codului Arduino folosit. În capitolul 4 partea folosită din elementele program (software) iar capitolul 5 arată dificultățile întâlnite pe parcursul construirii aplicației.
Dimensiunile aplicației fac diferită această aplicație de dimensiunile unei mașini adevărate. Elementele folosite sunt de dimensiuni mici și nu necesită un mare consum de curent.
Construind această aplicație am câștigat experiență la nivel de programare, utilizarea micro-controalelor și punerea lor în funcțiune. Am reușit să înțeleg cum funcționează un senzor de parcare și ce anume este nevoie să faci pentru a putea să le poți monta pe orice mașină, dar și să am o mai largă viziune la ceea ce înseamnă programarea micro-controalelor și utilizarea lor în nenumărate aplicații.
7.Bibliografie
[1]https://fritzing.org/learning/
[2]https://www.photopea.com/
[3] https://getgreenshot.org/
[4] https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/
[5]https://munteanubogdan.com/tutoriale/montare-senzori-de-parcare/
[6]https://www.optimusdigital.ro/
[7]https://www.emag.ro/masina-racing-drift-x-insane-scara-1-10-telecomanda-6-ani-1185983/pd/DZKTPWBBM/?X-Search-Id=dcf801857f4ac96c6aa7&X-Product-Id=55012243&X-Search-Page=1&X-Search-Position=0&X-Section=search&X-MB=0&X-Search-Action=view
[8] https://www.raspberrypi.org/
[9]http://tet.pub.ro/pages/STAD/Senzori,%20traductoare%20si%20achizitii%20de%20date%20cu%20Arduino%20Uno.pdf
[10]http://www.youtube.com/
[11]https://www.Arduino.cc/
[12]https://www.instructables.com/id/Ultrasonic-Parking-Sensor-With-Arduino/
[13]Manual de utilizare si montare senzori parcare https://i.dedeman.ro/media/file/file/m/a/manual-senzori-parcare-pni-p03.pdf
[14]Programming Languages , de: Carlos Ghezzi , Mehdi Jarayeri , John Wileyc Publicat:1987.
[15]Programarea concurentă în limbaje de nivel înalt de: Petru Eles, Horia Ciocârlie,Editura Științifică ,Publicat: 1991.
8.Anexe
Codul Sursa :
//biblioteca pentru display
#include <LiquidCrystal.h>
//distanta la care se declanseaza alarma 1
#define MIN1 10
//distanta la care se declanseaza alarma 2
#define MIN2 30
//distanta la care se declanseaza alarma 3
#define MIN3 50
//frecventa la care scoate sunete buzzerul(in Hz, intre 31 si 20000)
#define FREQ 250
//pinii pe care e pus senzorul ultrasonic din fata
#define TRIG1 A5
#define ECHO1 A1
//pinii pe care e pus senzorul ultrasonic din spate
#define TRIG2 A2
#define ECHO2 A3
//pinul pe care e pus buzzerul
#define BUZZER 3
//pinul pe care e pus minusul de la buzzer
#define MINUS 13
//pinul pe care e pus ledul rosu
#define LED A4
//functie care citeste distanta
float read_distance(void);
//pinii pe care e pus display-ul
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//functia setup ruleaza o data la pornirea Arduino
void setup() {
//initializam pinul cu ledul ca OUTPUT
pinMode(LED, OUTPUT);
//pinul pe care e pus minusul de la buzzer
pinMode(MINUS, OUTPUT);
//prinul de TRIG trimite un scurt imupls de sunet
pinMode(TRIG1, OUTPUT);
pinMode(TRIG2, OUTPUT);
//pinul de ECHO receptioneaza sunetul cand se intoarce
pinMode(ECHO1, INPUT);
pinMode(ECHO2, INPUT);
//stingem ledul
digitalWrite(LED, LOW);
//dam minus la buzzer
digitalWrite(MINUS, LOW);
//initializam display-ul
lcd.begin(16, 2);
}
//functia setup ruleaza la infinit
void loop() {
//citim distanta din fata
float fata = read_distance1();
//citim distanta din spate
float spate = read_distance2();
//golim ecranul
lcd.clear();
//mutam cursorul pe prima linie
lcd.setCursor(0, 0);
//afisam distanta din fata
lcd.print("Fata:");
lcd.print(fata);
lcd.print("cm");
//mutam cursorul pe a doua linie
lcd.setCursor(0, 1);
//afisam distanta din spate
lcd.print("Spate:");
lcd.print(spate);
lcd.print("in");
//daca avem un obiect prea aproape
if(fata < MIN1 or spate < MIN1){
//pornim ledul
digitalWrite(LED, HIGH);
//facem 5 beep-uri rapide
for(int i = 0; i < 5; i++){
tone(BUZZER, FREQ);
delay(100);
noTone(BUZZER);
delay(100);
}
}else if(fata < MIN2 or spate < MIN2){
//pornim ledul
digitalWrite(LED, HIGH);
//facem 3 beep-uri
for(int i = 0; i < 3; i++){
tone(BUZZER, FREQ);
delay(100);
noTone(BUZZER);
delay(230);
}
}else if(fata < MIN3 or spate < MIN3){
//pornim ledul
digitalWrite(LED, HIGH);
//facem 2 beep-uri la intervale mari
for(int i = 0; i < 2; i++){
tone(BUZZER, FREQ);
delay(100);
noTone(BUZZER);
delay(400);
}
}else{//distanta este suficient de mare
//oprim alarma
noTone(BUZZER);
//stingem ledul
digitalWrite(LED, LOW);
delay(1000);
}
}
//functie care citeste distanta din fata
float read_distance1() {
//trimitem un impuls scurt pe pinul de TRIG
digitalWrite(TRIG1, LOW);
delayMicroseconds(10);
digitalWrite(TRIG1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG1, LOW);
//masuram cat dureaza pana primim raspunsul pe pinul de ECHO, asteptam maxim 100.000 nanosecunde (~34/2=17m)
int duration = pulseIn(ECHO1, HIGH, 100000);
//sunetul parcurge 0.034cm intr-o nanosecunda, distanta se imparte la 2 pentru ca sunetul a mers dus-intors de la senzor
return (duration / 2) * 0.034;
}
//functie care citeste distanta din spate
float read_distance2() {
//trimitem un impuls scurt pe pinul de TRIG
digitalWrite(TRIG2, LOW);
delayMicroseconds(10);
digitalWrite(TRIG2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG2, LOW);
//masuram cat dureaza pana primim raspunsul pe pinul de ECHO, asteptam maxim 100.000 nanosecunde (~34/2=17m)
int duration = pulseIn(ECHO2, HIGH, 100000);
//sunetul parcurge 0.034cm intr-o nanosecunda, distanta se imparte la 2 pentru ca sunetul a mers dus-intors de la senzor
return (duration / 2) * 0.034;
}
DECLARAȚIE DE AUTENTICITATE
A
PROIECTULUI DE FINALIZARE A STUDIILOR
Titlul proiectului Dispozitiv de asistență la parcare
Autorul proiectului David – Samuel Bogdan
Proiectul de finalizare a studiilor este elaborat în vederea susținerii examenului de finalizare a studiilor organizat de către Facultatea I.E.T.I. din cadrul Universității din Oradea, sesiunea SEPTEMBRIE a anului universitar 2020.
Prin prezenta, subsemnatul David Samuel Bogdan, CNP 1930129350021, declar pe proprie răspundere că aceast proiect a fost scris de către mine, fără nici un ajutor neautorizat și că nici o parte a proiectului nu conține aplicații sau studii de caz publicate de alți autori.
Declar, de asemenea, că în proiect nu există idei, tabele, grafice, hărți sau alte surse folosite fără respectarea legii române și a convențiilor internaționale privind drepturile de autor.
Oradea,
Data
10.09.2020 Semnătura
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMANT IOAN SLAVICI TIMIȘOARA [303990] (ID: 303990)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
