SISTEM DE PARCARE CU SENZORI PENTRU UN AUTOMOBIL AURA -NICOLETA MINCIU COORDONATOR ȘTIINȚIFIC Ș.L.DR.I NG. EUGEN DUMITRAȘ CU IULIE 2017 CRAIOVA iii… [622759]
i
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI
ELECTRONICĂ
DEPARTAMENTUL DE CALCULATOARE ȘI TEHNOLOGIA
INFORMAȚIEI
PROIECT DE DIPLOMĂ
AURA -NICOLETA MINCIU
COORDONATOR ȘTIINȚIFIC
EUGEN DUMITRAȘCU
IULIE 2017
CRAIOVA
ii
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI
ELECTRONICĂ
DEPARTAMENTUL DE CALCULATOARE ȘI TEHNOLOGIA
INFORMAȚIEI
SISTEM DE PARCARE CU SENZORI PENTRU UN AUTOMOBIL
AURA -NICOLETA MINCIU
COORDONATOR ȘTIINȚIFIC
Ș.L.DR.I NG. EUGEN DUMITRAȘ CU
IULIE 2017
CRAIOVA
iii
"Pășește prin viață ca și cum ai avea mereu ceva nou de învățat și vei reusi astfel să inveti mereu."
Vernon Howard
iv
DECLARAȚIE DE ORIGINALITATE
Subsemnat a MINCIU AURA -NICOLETA studentă la specializarea CACULATOARE ROMÂNĂ
din cadrul Facult ății de Automatică, Calculatoare și Electronică a Universit ății din Craiova, certific
prin prezenta că am luat la cunoșt ință de cele prezentate mai jos și că î mi asum, în acest context,
originalit atea proiectului meu de licență :
cu titlul SISTEM DE PARCARE CU SENZORI PENTRU UN AUTOMOBIL,
coordonată de Ș.L. DR.ING. EUGEN DUMITRAȘCU ,
prezentată în sesiunea IULIE 2017.
La elaborarea proiectului de licență, se consideră plagiat una dintre următoarele acțiuni:
reproducerea exactă a cuvintelor unui alt autor, dintr -o altă lucrare, în limba română sau prin
traducere dintr -o altă limbă, dacă se omit ghilimele și referința precisă,
redarea cu alte cuvinte, reformularea prin cuvinte proprii sau rezumarea ideilor din alte
lucrări , dacă nu se indică sursa bibliografică,
prezentarea unor date experimentale obținute sau a unor aplicații realizate de alți autori fără
menționarea corectă a acestor surse,
însușirea totală sau parțială a unei lucrări în care reg ulile de mai sus sunt respectate, dar care
are alt autor.
Pentru evitarea acest or situații neplăcute se recomandă:
plasarea într e ghilimele a citatelor directe și indicarea referinței într -o listă corespunzătoare la
sfărșitul lucrării,
indicarea în text a reformulării unei idei, opinii sau teorii și corespunzător în lista de referințe
a sursei originale de la care s -a făcut preluarea,
precizarea sursei de la care s -au preluat date experimentale, descrieri tehnice, figuri, imagini,
statistici, tabele et caetera ,
precizarea referințelor poate fi omisă dacă se folosesc informații sau teorii arhicunoscute, a
căror paternitate este unanim cunoscută și acceptată.
Data , Semnătura candidat: [anonimizat] ,
v
UNIVERSITATEA DIN CRAIOVA
Facultatea de Automat ică, Calculatoare și Electronică
Departamentul de Calculatoare și Tehnologia Informației Aprobat la data de
…………………
Șef de departament,
Prof. dr. ing.
Marius BREZOVAN
PROIECTUL DE DIPLOMĂ
Numele și prenumele student: [anonimizat]/ -ei:
Minciu Aura -Nicoleta
Enunțul temei:
Sistem de parcare cu senzori pentru un automobil.
Datele de pornire:
-microcontroller ATmega16
-bluetooth
-mașinuță
-LCD
-senzor de proximitate
-led
-rezistență
-tranzistor
-motor
-potențiometru
Conținutul proiectului :
-introduc ere
-noțiuni teoretice
-hardware
-software
-tooluri
-cod sursă
-bibliografie
-referințe web
-cod sursă
Material grafic obligatoriu:
-scheme hardware
-diagrame
-capturi imagini
Consultații:
Periodice
Conducătorul științific
(titlul, nume și prenume , semnătura): Șef lucrări dr. ing. Eugen Dumitrașcu
Data eliberării temei :
01.12.201 6
Termenul estimat de predare a 01.06.2017
vi
proiectului :
Data predării proiectului de către
student și semnătura acestuia:
vii
UNIVERSITATEA DIN CRAIOVA
Facultate a de Automatică, Calculatoare și Electronică
Departamentul de Calculatoare și Tehnologia Informației
REFERATUL CONDUCĂTORULUI ȘTIINȚIFIC
Numele și prenumele candida tului/ -ei: Minciu Aura -Nicoleta
Specializarea: Calculatoare Română
Titlul proiectul ui: Sistem de parcare cu senzori pentru un automobil
Locația în care s -a realizat practica de
documentare (se bifează una sau mai
multe din opțiunile din dreapta): În facultate □
În producție □
În cercetare □
Altă locație:
În urma analizei lucrării candidatului au fost constatate următoarele:
Nivelul documentării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Tipul proiectului Cercetare
□ Proiectare
□ Realizare
practică □ Altul
[se detaliază ]
Aparatul matematic utilizat Simplu
□ Mediu
□ Complex
□ Absent
□
Utilitate Contract de
cercetare □ Cercetare
internă □ Utilare
□ Altul
[se detaliază ]
Redactarea lucrării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Partea grafică, desene Insuficient ă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Realizarea
practică Contribuția autorului Insuficientă
□ Satisfăcătoare
□ Mare
□ Foarte mare
□
Complexitatea
temei Simplă
□ Medie
□ Mare
□ Complexă
□
Analiza cerințelor Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Arhitectura Simplă
□ Medie
□ Mare
□ Complexă
□
viii
Întocmirea
specificațiilor
funcționale Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Implementarea Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Testarea Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Funcționarea Da
□ Parțială
□ Nu
□
Rezultate experimentale Experiment propriu
□ Preluare din bibliografie
□
Bibliografie Cărți
Reviste
Articole
Referințe web
Comentarii
și
observații
În conclu zie, se propune:
ADMITEREA PROIECTULUI
□ RESPINGEREA PROIECTULUI
□
Data, Semnătura conducătorului științific,
ix
REZUMATUL PROIECTULUI
Tema de licență propusă are ca scop dezvoltarea unui sistem embedded reprezentat de un sistem de
parcare pentru un automobil folosind senzori.
Pentru realizarea parții hardware am avut nevoie de două microcontrolere ATmega16, unul în
interiorul ma șinuței și unul pe telec omandă, un senzor de proximitate, două dispozitive bluetooth. Am
folosi t și 3 leduri pentru e stimarea distanței dintre mașină și obstacol (pentru o distanța de X cm se
aprinde primul led -verde, pentru una mai mică se va aprinde și un al doilea l ed -galben , pentru o
distanță minimă stabilită se vor ap rinde toate ledurile -și cel roș u ). Pentru detectarea distanței dintre
mașină și obstacol am folosit un senzor ultrasonic care poate măsura o distanță de până la 400 cm.
Tema a fost aleasă pentru că lumea aut omotive este într -o continuă creștere iar funcționalitățiile
existente dar și cele viitoare pot fi dezvoltate și chiar îmbunătățite de orice pasionat de electronică,
programare și mașini.
Termenii cheie : senzori, LCD, bluetooth , ATmega, automobil .
x
CUPRINSUL
1 INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. ……… 1
1.1 SCOPUL ………………………….. ………………………….. ………………………….. ………………………….. ……………….. 1
1.2 MOTIVAȚIA ………………………….. ………………………….. ………………………….. ………………………….. …………… 1
1.3 INTRODUCERE ÎN LUMEA AUTOMOBILELOR ………………………….. ………………………….. ………………………….. …… 1
2 NOȚIUNI TEORETICE ………………………….. ………………………….. ………………………….. ………………………….. 3
2.1 DESPRE C ………………………….. ………………………….. ………………………….. ………………………….. …………….. 3
2.2 MICROCONTROLLERUL ATMEGA 16 ………………………….. ………………………….. ………………………….. …………… 3
2.2.1 Timere ATmega 16 ………………………….. ………………………….. ………………………….. ………………………. 5
2.2.2 Funcții alternative ale porturilor ………………………….. ………………………….. ………………………….. ……. 6
2.2.3 JTAG ICE ………………………….. ………………………….. ………………………….. ………………………….. ………… 8
2.3 SEMNALUL DIGITAL ………………………….. ………………………….. ………………………….. ………………………….. … 10
2.4 SEMNALUL ANALOGIC ………………………….. ………………………….. ………………………….. …………………………. 12
2.5 SEMNALUL PWM ………………………….. ………………………….. ………………………….. ………………………….. …. 13
2.6 DISPOZITIV BLUETOOTH HC-05 ………………………….. ………………………….. ………………………….. ………….. 14
2.7 SENZOR DE PROXIMITATE HC-SR04 ………………………….. ………………………….. ………………………….. ………… 16
2.8 LCD HD44780 ………………………….. ………………………….. ………………………….. ………………………….. ……. 18
2.9 UART ………………………….. ………………………….. ………………………….. ………………………….. ……………….. 20
3 HARDWARE ………………………….. ………………………….. ………………………….. ………………………….. ……….. 21
3.1 HARDWARE MAȘINUȚĂ ………………………….. ………………………….. ………………………….. ………………………… 21
3.2 HARDWARE TELECOMANDĂ ………………………….. ………………………….. ………………………….. …………………… 23
4 SOFTWARE ………………………….. ………………………….. ………………………….. ………………………….. ………… 25
4.1 DRIVERE ………………………….. ………………………….. ………………………….. ………………………….. …………….. 25
4.2 HANDLERE ………………………….. ………………………….. ………………………….. ………………………….. ………….. 26
4.3 RTE ………………………….. ………………………….. ………………………….. ………………………….. …………………. 26
4.4 APLICAȚII ………………………….. ………………………….. ………………………….. ………………………….. ……………. 26
5 TOOLURI ………………………….. ………………………….. ………………………….. ………………………….. ……………. 27
5.1 ECLIPSE ………………………….. ………………………….. ………………………….. ………………………….. ……………. 27
5.2 TERA TERM ………………………….. ………………………….. ………………………….. ………………………….. …………. 27
5.3 AVR STUDIO 4 ………………………….. ………………………….. ………………………….. ………………………….. …….. 29
6 BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. ………………………….. …….. 33
7 REFERINȚE WEB ………………………….. ………………………….. ………………………….. ………………………….. ….. 34
xi
A. CODUL SURSĂ ………………………….. ………………………….. ………………………….. ………………………….. …….. 35
xii
LISTA FIGURILOR
Figura 1: Mașina cu aburi ………………………….. ………………………….. ………………………….. ………………………….. . 2
Figura 2: Arhitectură AVR ………………………….. ………………………….. ………………………….. ………………………….. 4
Figura 3: Pini microcontroller ATmega16 ………………………….. ………………………….. ………………………….. ……… 5
Figura 4: Schema logică a numărătorului binar sincron de 4 biți, cu numărare în sens direct ……………………… 6
Figura 5: Funcții alternative Port A ………………………….. ………………………….. ………………………….. ……………… 7
Figura 6: Funcții alternative Port B ………………………….. ………………………….. ………………………….. ………………. 7
Figura 7: Funcții alternative Port C ………………………….. ………………………….. ………………………….. ………………. 7
Figura 8: Funcții alternative Port D ………………………….. ………………………….. ………………………….. ……………… 8
Figura 9: Conectare Jtag ………………………….. ………………………….. ………………………….. ………………………….. … 8
Figura 10: Selectarea frecvenței procesorului ………………………….. ………………………….. ………………………….. .. 9
Figura 11: Conectorii de acces Jtag ………………………….. ………………………….. ………………………….. …………….. 10
Figura 12: Jtag conectat la Atmega16 ………………………….. ………………………….. ………………………….. …………. 10
Figura 13: Semnal digital ………………………….. ………………………….. ………………………….. ………………………….. 11
Figura 14 : Întrerupător deschis Figura 15 : Întrerupător închis ………………………….. ………………………….. 12
Figura 16 : Semnal analogic ………………………….. ………………………….. ………………………….. ………………………. 12
Figura 17 . Semnal PWM ………………………….. ………………………….. ………………………….. ………………………….. . 14
Figura 18 : Schema de conectare a dispozitivului bluetooth HC -05 la ATmega16 ………………………….. ………… 15
Figura 19 : Schema de conectare a senzorului HC_SR04 la ATmeg a16 ………………………….. ………………………. 17
Figura 20: Diagrama de timp pentru senzorul de proximitate ………………………….. ………………………….. …….. 18
Figura 21: Ecran LCD ………………………….. ………………………….. ………………………….. ………………………….. …… 19
Figura 22: Conectare LCD la ATmega16 ………………………….. ………………………….. ………………………….. ………. 19
Figura 23 : Secvență de biți trimiși de UART ………………………….. ………………………….. ………………………….. …. 20
Figura 24 : Schemă hardware mașinuță ………………………….. ………………………….. ………………………….. ………. 22
Figura 25 : Motorul și puntea H ………………………….. ………………………….. ………………………….. …………………. 23
Figura 26 : Schemă hardware telecomandă ………………………….. ………………………….. ………………………….. …. 24
Figura 27 : Nivele de arhitectură software ………………………….. ………………………….. ………………………….. ….. 25
Figura 28 : Eclipse ………………………….. ………………………….. ………………………….. ………………………….. ……….. 27
Figura 29 :Tera Term c onectare la USB ………………………….. ………………………….. ………………………….. ……….. 28
Figura 30 :Tera Term: setări pentru portul serial ………………………….. ………………………….. ……………………….. 28
Figura 31 :Tera Term: setări pentru terminal ………………………….. ………………………….. ………………………….. .. 29
Figura 32 : AVR Studio selectare programator ………………………….. ………………………….. ………………………….. 30
Figura 35: Mesaje Build ………………………….. ………………………….. ………………………….. ………………………….. .. 30
Figura 36: AVR Debug ………………………….. ………………………….. ………………………….. ………………………….. …. 31
xiii
xiv
LISTA TABELELOR
Tabel 1: Caracteristici semnal digital 11
Tabel 2 : Caracteristici semnal analogic 13
Tabel 3: Conectare dispozitiv bluetooth cu convertor USB -TTL 16
1
1 INTRODUCERE
1.1 Scopul
Această lucrare de licență are ca scop prezentarea procesului de realizare a unei mașinuțe controlate
cu ajutorul unei telecomenzi utilizând comunicația bluetooth, mașinuță dotată cu un senzor ultrasonic
pentru detectarea distanței dintre aceasta și un o bstacol atunci când se realizează parcarea.
De asemenea lucrarea urmărește introducerea în lumea automotive a celor interesați prin prezentarea
unor noțiuni teoretice legate de componentele folosite în realizarea mașinuței.
1.2 Motivația
Tema a fost aleasă pe ntru a putea înțelege și realiza de la zero funcționalitatea unei mașinuțe de
jucărie care sa simuleze o mașină adevarată.
Interesul pentru această temă a venit din dorința de aprofundare a cunoștințelor despre embedded
dobândite în facultate și nu numai. Am ales să realizez eu partea hardware, pentru că nu mai
realizasem până acum o aplicație de această natură și a fost o provocare din care am avut foarte multe
de învățat.
Industria autoturismelor este în continuă dezvoltare ceea ce m -a îndemnat să aleg această temă.
1.3 Introducere în lumea automobilelor
Deși m așina cu aburi a fost dezvoltată mai devreme, industria automotive datează din anii 1860 -1870
predominant în Franța și Germania.
2
Figura 1: Mașina cu aburi
Înainte de Primul r azboi mondial sute de magazine micuțe își puneau bazele unor companii de
automobile însă nu multe au reușit să nu dea faliment. Cei care au rezistat în această luptă erau
organizați în trei categorii:
producători de biciclete ex. Opel în Germania
producăt ori de căruțe ex. Durant în SUA
producători de mașini
3
2 NOȚIUNI TEORETICE
2.1 Despre C
Limbajul C este unul procedural, portabil, cunoscut mai ales pentru scrierea de software de sistem.
Este foarte apropiat de limbajul de asamblare, operează în stransă le gatură cu hardware -ul, însă. spre
deosebire de limbajul de asamblare care este specific unui model de mașină, codul scris în C poate fi
rulat pe orice tip de mașină(calculator).
C este un limbaj de bază, structurat, folosește preprocesarea pentru definirea de macrouri, folosește
pointeri, ceea ce permite accesarea la nivel scazut a memoriei, folosește transmiterea parametrilor prin
valoare, permite manipularea de fișiere.
Eu am folosit acest limbaj de programare pentru a scrie codul ce a fost apoi descărcat pe cele două
microcontrollere folosite în aplicația mea.
2.2 Microcontrol lerul ATmega16
Microcontrollerul este o structură electronică destinată controlului unui proces. Mai general spus, este
un microcircuit care încorporează o unitate centrală (CPU) și o m emorie împreună cu resurse care -i
permit interactiunea cu mediul exterior.
În zilele noastre, microcontrollerele încep să devină din ce în ce mai indispensabile, acestea
regăsindu -se incorporate în diverse dispozitive electronice începând cu frigiderul, cu ptorul cu
microunde și până la mașini, avioane.
Microcontrollerul ATMega16 are:
– 32 pini de intrare / ieșire organizați î n 4 porturi (A, B, C, D)
– portul A este folosit pentru intrări analogice
– 2 timere pe 8 biți și unul pe 16 biț i
– 16 KB de memor ie Flash
– 1 KB de memorie RAM
– o interfață JTAG
4
– o interfa ță SPI
– o interfa ță UART
– oscilator intern de 8 MHz
– 3 pini pentru î ntreruperi externe
Figura 2: Arhitectură AVR
ATmega 16 dispune, pentru comunicarea cu e xteriorul , de 32 de pini grupați în 4 porturi A, B, C, D.
Fiecare grupă are 8 pini numerotați de la 0 la 7. Toți pinii au ca și funcție de bază funcția digital I/O și
sunt identici din punct de vedere hardware, doar că mai au și funcții alternative .
5
Figura 3: Pini microcontroller ATmega16
2.2.1 Timere ATmega 16
"Performanța marii majorități a programelor dezvoltate în cadrul disciplinelor de programare a fost
evaluată prin intermediul complexității temporar e și spațiale. Un program este cu atât mai performant
cu cât ocupă mai putină memorie și rulează mai repede. Criteriul timpului minim de execuție se aplică
și pentru programele de emulare hardware a funcțiilor logice.
Marea majoritate a aplicațiilor pentru microcontrolere necesită măsurarea timpului: cât timp încălzim
mâncarea la cuptorul cu microunde, cât tip spală rufele mașina de spălat, etc.
Până în prezent se pot imagina două modalități de măsurare a timpului. Ambele modalități se
bazează pe același pr incipiu: executarea de către procesor a unei instrucțiuni cod mașină necesită un
timp bine precizat. În consecință, dacă procesorul a executat n instrucțiuni timpul scurs se află prin
însumarea timpilor de execuție a celor n instrucțiuni. "
Pentru măsurarea trecerii timpului se folosesc numărătoare ce reprezintă niște mașini secvențiale care
adună sau scad 1 la starea curentă obținând -o astfel pe următoarea. Starea unui numărător se schimbă
pe baza unui front al semnalului de ceas(de obicei pe cel ridicător) .
6
Un numărator are:
intrare de ceas -CLK
n ieșiri – Q[n-1:0]
intrare de direcție – UP = '1' – crescător, UP = '0' – descrescător
Figura 4: Schema logică a numărătorului binar sincron de 4 biți, cu număra re în sens direct
Pentru măsurarea intervalelor mai mari de timp se poate mări numărul de biți folosiți pentru
numărare(16, 24 sau 32 de biți) sau o altă metodă este micșorarea frecvenței ceasului numărătorului.
Dezavantaje ar fi căă dacă crește numărul de biți creste si complexitatea hardware -ului iar dacă
scădem frecvența scade și precizia. Cu toate acestea soluția aleasă de producătorii de microcontrollere
este scăderea frecvențe pentru că nu este nevoie de o precizie ridicată și de un interval mare d e timp în
același timp.
Ceasul de numărare se poate obține astfel: fCLK_CPU/8, fCLK_CPU/64, fCLK_CPU/256,
fCLK_CPU/512 și fCLK_CPU/1024 . Blocul care face aceast ă divizare este prescaler -ul.
Microcontrollerul ATmega16 dispune de 3 timere, două de 8 biți și unul de 16 biți.
Pentru realizarea acestui proiect eu am folosit timerul 1, care este timerul pe 16 biți. Acest timer este
folosit pentru numărarea intervalelor de timp, un timer pe 8 biți fiind insuficient.
2.2.2 Funcții alternative ale porturilor
Porturile microcontrollerelor pot avea diferite funcții depinzând de modul de configurare.
Dacă portul A este configurat ca și port de intrare acesta poate primi semnale analogice. Dacă unii
pini sun t configurați ca pini de ieșire, modul acestora nu trebuie schimba t atunci cand se desfășoară o
conversie pentru că rezultatul poate fi corupt în timpul schimbării.
7
Figura 5: Funcții alternative Port A
Portul B poate fi folosit ca pentru comunicația pe SPI sau ca și input pentru timere.
Figur a 6: Funcții alternative Port B
Portul C este folosit în principal pentru conectarea JTAG -ului folosit la debug sau pentru programarea
microcontrollerelor.
Figura 7: Funcții alternative Port C
8
Portul D a re porturi pentru întreruperi externe, timere, precum și pini de Tx și Rx.
Figura 8: Funcții alternative Port D
2.2.3 JTAG ICE
Interfața JTAG este folosită pentru a putea accesa si urmări modulele interne ale microcontrollerelor.
Aceas ta permite ca funcționarea unui procesor să fie oprită și execuția pas cu pas a unui program.
JTAG ICE folosește interfața JTAG pentru a -i oferi utilizatorului posibilitatea de simulare în timp real
a funcționalității microcontrollerului.
Figura 9: Conectare Jtag
9
În arhitectura circuitelor cu JTAG există un port de acces TAP care permite :
1. testarea funcțiilor circuitului
2. testarea conexiunilor cu alte circuite
3. excluderea circuitelor din procesul de testare la nivel de pla chetă
4. operații de autotestare executate de circuit
Figura 10: Selectarea frecvenței procesorului
Conectarea la microcontroller se face prin :
TDI – date seriale de intrare
10
TDO – date seriale de ieșire
TCK – tact de test
TMS – modul de lucru al controllerului TAP
Figura 11: Conectorii de acces Jtag
Figura 12: Jtag conectat la Atmega16
2.3 Semnalul digital
Un semnal digital este un semnal care are la bază două valori logice, 0 ș i 1 (biți), fiecare având câte o
reprezentare în funcție de modul în care sunt transmise.
11
Transmisia a unor semnale digitale este de multe or i de preferat celei analogice deoarece este mai
puțin afectată de zgomote, fiind deci mai robustă. Datorită trecerilor bruște de la o valoare la alta, se
mai spune că este "jumpy"(săltăreață).
Figura 13: Semnal digital
Caract eristici:
Semnal Sunt semnale discrete în timp generate de modularea digitală
Forme de undă Caracterizat prin forme de undă dreptunghiulare
Transmisii de date Poate fi imun la interferențe fără a se deteriora în timpul citirii/ scrierii
transmisiei
Band ă Nu este sigur că un semnal digital poate fi procesat în timp real ți consumă mai
multă lățime de bandă să transmită acceași informație
Consum Consumul dispozitivelor digitale este destul de redus
Exemple CD, DVD, Computer
Aplicații Smartphone, PDA, TV
Tabel 1: Caracteristici semnal digital
În afară de modul, pentru un pin al unui microcontroller se poate seta și direcția, astfel avem intrări
digitale și ieșiri digitale.
O intrare digitală permite detectarea stării logice la in trarea microcontrollerului. Aceasta poate fi
reprezentată de un întrerupator sau un comutator care întrerupe un circuit electric.
12
Figura 14: Întrerupător deschis Figura 15: Întrerupător închis
Exista mai multe tipuri de switch -uri:
• push -button –” push -to-make”: tastatura, telefon, soneria
– “push -to-brake”: intrerupator electric, lumina de la frigider
• rotary switch – aprinderea farurilor
• toggle switch – tasta Caps lock
2.4 Semnalul analogic
Un semnal analog este un semnal a cărui valoare se poate modifica constant și care poate
varia in amplitudine si în frecvență.
Figura 16: Semnal analogic
13
Caracteristici:
Semnal Sunt semnal e continue în timp ce reprezintă măsurătorile fizice
Forme de undă Caracterizat prin forme de undă sinusoidale
Transmisii de date Sunt predispuse la zgomot, transmisia unui semnal analog necesită amplificări
care la rândul lor pot să introducă zgomot
Bandă Procesarea unui semnal analog se poate face în timp real și consumă mai puțină
lățime de bandă
Consum Necesită un consum mai mare de energie
Exemple Vocea umană, muzică, vibrații
Aplicații Termometru, Senzori
Tabel 2: Carac teristici semnal analogic
2.5 Semnalul PWM
PWM înseamnă modularea impulsurilor în durată unde, prin modulare înțelegem procedeul de
transfer de informație de la un semnal modulator (care conține informații) la un semnal purtator ( care
transportă informația prin modificarea caracteristicilor acestuia).
Lațimea impulsurilor unui semnal PWM este proporțională cu amplitudinea semnalului
analogic(semnalul modulator).
Caracteristici ale semnalului PWM sunt :
perioada – reprezintă durata de timp de la un front ridi cător până la următorul front ridicător.
[T] S.I. = s
frecvența – reprezintă inversul perioadei.
f = 1/T
14
factor de umplere – reprezintă durata în care semnalul a stat în 1 logic raportată la întreaga
perioadă a semnalului
D = T '1' / T
Figura 17. Semnal PWM
2.6 Dispozitiv BLUETOOTH HC -05
HC-05 este un modul bazat pe un protocol de comunicare serial, destinat conexiunilor fără fire.
Caracteristici hardware:
Interfață UART cu posibilitatea programării lungimii mesajului ce se va trans mite
Controlul intrărilor și ieșirilor
De la 1,8 la 3,6V I/O
Caracteristici software:
15
Baud rate default: 38400, 8 bi ți de date, un bit de stop, nu are biți de paritate, control de date.
Baud rate suportat:9600, 19200, 38400, 57600, 115200, 230400, 460800 .
Dispozitivul se deconectează dacă pe pinul de intrare/ieșire 0 apare un impuls ridicător.
PIO1 este port de status:conectat, deconectat
Figura 18: Schema de conectare a dispozitivului bluetooth HC -05 la ATmega16
Înainte de mo ntarea pe plăcuța de test a dispozitivelor bluetooth HC -05, acestea au fost conectate între
ele. Unul a fost configurat ca SLAVE iar celălalt ca MASTER. Pentru conectarea lor a fost folosit
Tera Term(terminal emulator) și un convertor UBS -TTL. Înainte de a limentare, dispozitivul care
urmează a fi configurat trebuie să fie în modul AT, mod activat prin ținerea apăsată a butonului aflat
pe dispozitiv. Pentru ambele dispozitive s -a setat un baudrate de 38400 precum și CARRIAGE
RETURN și LINE FEED, care sunt o bligatorii pentru un HC -05.
Pe placa de test, pentru a obține o tensiune de 3,3V necesară alimentării lui HC -05 a fost realizat un
divizor de tensiune folosind 3 rezistențe de 1KΩ înseriate astfel: 1KΩ conectat la pinul controller -ului
iar 2KΩ la GND.
HC-05 trebuie conectat astfel cu convertorul USB -TTL:
16
HC-05 USB -TTL
VCC +5V
GND GND
Tx Rx
Rx Tx
Key +3.3V
Tabel 3: Conectare dispozitiv bluetooth cu convertor USB -TTL
Comenzi utilizate:
AT+ORGL: restează modul la starea orig inală
AT+RMAAD: separă modului de alte conexiuni anterioare
AT+PSWD=1234: setează parola ca fiind 1234
AT+ROLE = 1: setează rolul modului ca fiind MASTER
2.7 Senzor de proximitate HC -SR04
Senzorii sunt cunoscuți ca și detectori de obiecte. Când un obiect se află în apropierea senzorului
acesta emite raze infraroșu ce lovesc obiectul, apoi aceste se întorc la senzor pentru a indica prezența
obiectului.
Detectarea obiectelor se face fără contact. În funcție de materiale care se doreste a fi detectat, există
mai multe tipuri de senzori de proximitate:
– senzori de proximitate inductivi – obiecte metalice(aluminiu, fier, alamă, cupru, etc.)
17
– senzori de proximitate capacitivi – obiecte metalice, rășinii, lichide, pulbere, etc
– senzori de proximitate magneti ci – magneți
Figura 19: Schema de conectare a senzorului HC_SR04 la ATmega16
Eu am folosit pentru acest proiect un senzor ultrasonic HC – SR04 care poate detecta obiecte aflate la
o distanță minimă de 2cm și o distanță maximă de 400cm . Acest senzor are un pin care trebuie
conectat la 5V, un pin de intrare(trigger), un pin de ieșire(Echo) și un pin ce trebuie conectat la
masa(0V).
Mai jos este prezentată diagrama de timp. Trebuie trimis un puls de 10us trigger -ului pentru a înc epe
masurarea apoi senzorul va trimite înapoi un ciclu de 8 ultrasunete de 40kHz și se va aștepta un ecou.
Ecoul este distanța calculată ca fiind intervalul de timp trecut de la emiterea pulsului și până la
recepționarea ecoului.
18
Figura 20: Diagrama de timp pentru senzorul de proximitate
2.8 LCD HD44780
LCD -ul este un dispozitiv electronic cu 16 pini folosit pentru afișarea diverselor informații dorite de
uitilzator. Este folosit pentru ceasurile digitale, pentru afișarea gradelo r de la cuptorul cu microunde,
afișarea de date la mașini.
Cu un singur dispozitiv HD44780 putem afișa o linie de 8 caractere sau 2 linii de 8 caractere.
Sursa de alimentare mic ă (2.7V până la 5.5V) a HD44780 este potrivită pentru or ice produs portabi l
cu baterie c are necesită disipare redusă a puterii .
19
Figura 21: Ecran LCD
Figura 22: Conectare LCD la ATmega16
20
2.9 UART
UART este o componentă a calculatorului folosită pentru transmiterea ser ială a datelor. Viteza de
transmitere a datelor și formatul acestora pot fi configurate.
Uart conține un registru de deplasare și astfel poate primi octeți pe care ii trimite mai departe
secvențial bit cu bit.Un al doilea UART primește biții pe care îi i a apoi și ii grupează în octeți.
Figura 23: Secvență de biți trimiși de UART
Comunicația pe UART poate fi:
simplă – datele se transmit de la un dispozitiv la atlul fără ca cel de -al doilea să răspundă
full duplex – ambele dispo zitive trimit ți primesc informații în același timp
half duplex – primul transmite și al doilea primește, apoi al doilea trimite și primul primește
Caracteristici ale UART:
primește paralel octeți pe care ii convertește în biți și îi transmite serial la i eșire
la intrare convertește biții primiți în octeți
dacă se dorește, dispune de un bit de paritate la ieșire și se poate testa paritatea octeților
primiți
adaugă biți de start și stop la ieșire și îi elimină la intrare
are întreruperi de la tastatură sau mouse
21
3 HARDWARE
3.1 Hardware mașinuță
Fig. 2.15 ilustrează ECU -ul aflat în interiorul mașinii.
S-au folosit
* un microcontroller ATmega16
* un servomotor
* un motor
* un dispozitiv bluetooth HC -05
* un senzor de proximitate HC -SR04
* 3LED -uri
Pentru controlul motorului s -a realizat o punte H folosind tranzistoare PNP. Tranzistoarele Q1 și Q4
controlează mersul în spate, Q2 și Q3 mersul în față iar Q5 este folosit pentru reglarea vitezei
motorului.
22
Figura 24: Schemă hardw are mașinuță
23
Figura 25: Motorul și puntea H
3.2 Hardware telecomandă
Pentru telecomandă s -au folosit:
* un microcontroller ATmega16
* un dispozitiv bluetooth HC -05
* 4 butoane utilizate astfel:
– unul pentru mers în față
– unul pentru mers în spate
24
– unul pentru stânga
– unul pentru dreapta
*un potențiometru pentru reglarea vitezei mașinuței
* un ecran LCD pentru afișarea distanței dintre obstacol și mașinuță în timpul parcării
Figura 26: Schemă hardware telecomandă
25
4 SOFTWARE
Marile companii de automobile urmăresc pentru partea software niște standarde.
Arhitectura unei mașini are la nivelul inferior partea hardware iar la nivelul superior aplicațiile care
controlează totul.
Figura 27 : Nivele de arhitectură software
4.1 Drivere
Nivelul driverelor este situat cel mai aproape de hardware. Aceste module software pot accesa direct
perifericele microcontrollerelor
MICROCONTROL LER DRIVERE HANDLERE RTE APLICAȚII
DRIV ERE
26
4.2 Handlere
Nivelul handlerelor reprezint ă o interfață a driverelor. Spre deosebire de drivere care se schimbă în
funcție de versiunea de microcontroller sau de funcționalitatea pinilor acestuia, handlerele sunt mai
generale oferind niște API -uri care accesează driverele.
4.3 RTE
Acest nivel software este cel care realizează comunicația între Basic Software și aplicații. ACset
modul este diferit pentru toate microcontrollerele
4.4 Aplicații
Nivelul aplicațiilor este cel prin care dam comandă modulelor de mai jos. Este cel prin care putem
controla intensitatea luminilor, viteza ștergătoarelor, reglarea oglinzilor, deschiderea automată a
portbagajului, deschiderea automata a ușilor, închiderea lor.
DRIVERE HANDLERE
DRIVERE HANDLERE RTE
27
5 TOOLURI
5.1 ECLIPSE
Este un mediu de dezvoltare destinat în primul rând pentru proiecte scri se în Java, dar este un excelent
mediu și pentru dezvoltarea în C. Interfața sa este simplă și intuitivă .
Eu am folosit acest tool pentru a scrie codul aplicației mele. Pentru a putea compila codul scris pentru
microcontrollere am adaugat un plugin.
Figu ra 28: Eclipse
5.2 Tera Term
Tera Term este un emulator open -source pe care l -am folosit pentru împerecherea celor două
dispozitive bluetooth folosite la acest proiect.
Utilizând Tera Term am putut seta modul unui dispozitiv ca mast er și unul ca slave, acestea putându –
se conecta apoi automat la alimentare.
28
Figura 29:Tera Term conectare la USB
Figura 30:Tera Term: setări pentru portul serial
29
Figura 31:Tera Term: setări pentru terminal
5.3 AVR Studio 4
AVR este un mediu de dezvoltare software creat de compania ATmel.
Acest mediu are incorporat un editor de text, precum și un simulator și un programator.
Eu am folosit AVR Studio pentru programarea microco ntrollerelor ți pentru debugul programului.
30
Figura 32: AVR Studio selectare programator
Figura 33: Mesaje Build
31
Figura 34: AVR Debug
32
Concluzii
Acest proiect a fost o provocar e pentru mine. Nu mai realizasem pana acum o lucrare practică ca
aceasta în care a trebuit să fac complet partea hardware. Deși am interacționat cu microcontrollerul
ATmega16 , bluetooth -ul și senzorul au fost ceva nou pentru mine, la fel și lipirea compone ntelor pe
placuțe.
Am avut de învățat multe lucruri noi cu această ocazie și încă mai am lucruri de învățat.
Această lucrarea poate fi cu siguranță imbunătățită cu funcționalități cum ar fi controlul farurilor ,
controlul mașinuțe folosind unde radio.
33
6 BIBLIOGRAFIE
[AT] – ATmega16 datasheet
[HC-05] – HC-05 -Bluetooth to Serial Port Module, 2010
[HC-SR04] – Ultrasonic Ranging Module HC – SR04
[IL16] – Micro -curs, Ioan Lemeni, 2016
[LCD] – HD44780U (LCD -II)
[TCP L88]The C programming Language, Brian W. Kernighan și Dennis M. Ritchie, 1988
34
7 REFERINȚE WEB
[AI] – Automotive industry, John Bell Rae, Alan K. Binder disponibil on -line la adresa :
https://www.britannica.com/topic/automotive -industry#toc65766
[UART] – UART (Universal Asynchronous Receiver/Transmitter) disponibil on -line la adresa:
http://whatis.techtarget.com/definition/UART -Universal -Asynchronous -Receiver -Transmitter
[MICRO ] -WHAT ARE MICROCONTROLLERS AND WHAT ARE THEY USED FOR?
disponibil on -line la adresa:
https://learn.mikroe.com/ebooks/8051programming/chapter/what -are-microcontrollers -and-what -are-
they-used-for/
35
A. CODUL SURSĂ
/*
* Sensor.c
*
*/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include "Proje ctDefinitions.h"
#include "UART.h"
#define TRIG 1
#define ECHO 2
static unsigned int PULSE = 0;
static unsigned int counter = 0;
char display_output[3];
int main(void)
{
DDRB = 0xfb;
DDRD = 0xfa;
UART_INIT();
GICR |= (1<<INT0);
MCUCR |= (1<<IS C00);
TCCR1A = 0x00;
TCCR1B = 0x00;
TCNT1 = 0;
UART_SEND((unsigned char)123);
sei();
while(1)
{
36
if(TCNT1 != 0)
{
}
else
{
counter = PULSE / 58;
// cli();
PORTB |= 1 << PB1;
WAIT_FOR_10US;
PORTB &= ~(1 << PB1);
TCCR1B |= (1 << CS11);
//sei();
}
}
}
ISR(INT0_vect)
{
static unsigned char intCnt = 0;
if(intCnt == 1)
{
PULSE = TCNT1;
TCCR1B &= ~(1 << CS12) & ~(1 << CS11) & ~(1 << CS10);
TCNT1 = 0;
intCnt = 0;
}
else
{
intCnt = 1;
}
}
/*
*Uart.c
*
*/
#include "UART.h"
#ifndef F_CPU
#define F_CPU 8000000UL
37
#endif
#define BAUD 9600
#define BAUDRATE ((F_CPU)/(BAUD*16UL) -1)
// function to initialize UART
void UART_INIT (void)
{
UBRRH=(BAUDRATE>>8);
UBRRL=BAUDRATE;
UCSRB|=(1<<TXEN)|(1<<RXEN);
UCSRC|=(1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);
}
// function to send data
void UART_SEND (unsigned char data)
{
while (!( UCSRA & (1<<U DRE)));
UDR = data;
}
// function to receive data
unsigned char UART_RECEIVE (void)
{
while(!(UCSRA) & (1<<RXC));
return UDR;
}
/*
*Messages.h
*/
#define MO VE_FORWARD 0x10
#define MOVE_BACKWARED 0x20
#define MOVE_LEFT 0x40
#define MOVE_RIGHT 0x80
38
CD / DVD
39
INDEX
B
Bibliografie , 37
C
Codul sursă , 39
CUPRINSUL , x
L
LISTA FIGURILOR , xi
LISTA TABELELOR , xii
R
Referințe web , 38
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: SISTEM DE PARCARE CU SENZORI PENTRU UN AUTOMOBIL AURA -NICOLETA MINCIU COORDONATOR ȘTIINȚIFIC Ș.L.DR.I NG. EUGEN DUMITRAȘ CU IULIE 2017 CRAIOVA iii… [622759] (ID: 622759)
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.
