Documente Academic
Documente Profesional
Documente Cultură
PROIECT DE DIPLOMA
BUCUREŞTI
2019
1. Introducere
Cuprins
1. Introducere ................................................................................................................................................. - 3 -
1.1. Scurt istoric .......................................................................................................................................... - 3 -
1.2. Exemple de aplicații ............................................................................................................................. - 5 -
1.2.1. Robot pentu tuns iarba................................................................................................................. - 6 -
1.2.2. Robot supraveghere ..................................................................................................................... - 8 -
1.2.3. “Car 2 car communication” .......................................................................................................... - 9 -
1.3 Ideea și motivația lucrării ................................................................................................................... - 10 -
2. Descrierea componentelor ....................................................................................................................... - 11 -
2.1. Structura robotului ............................................................................................................................ - 11 -
2.2. Senzor ultrasonic ............................................................................................................................... - 11 -
2.3. Line follow ......................................................................................................................................... - 12 -
2.4. Driver de motoare ............................................................................................................................. - 13 -
2.4.1. Puntea H ..................................................................................................................................... - 13 -
2.5. Servomotorul ..................................................................................................................................... - 15 -
2.6. Alimentarea mașinuței ...................................................................................................................... - 17 -
2.7. Motor cu reductor ............................................................................................................................. - 18 -
3. Poiectarea circuitului imprimat ................................................................................................................ - 19 -
3.1. Schema bloc....................................................................................................................................... - 19 -
3.2. Schema complete .............................................................................................................................. - 20 -
3.2.1 Microcontroler ATMEGA328PU................................................................................................... - 20 -
3.2.2 UART ............................................................................................................................................ - 22 -
3.2.3. Driver de motoare ...................................................................................................................... - 23 -
3.2.4. Regulator de tensiune în comutație ........................................................................................... - 25 -
3.3. Layout ciruitului imprimat ................................................................................................................. - 29 -
3.4. Necesarul de materiale...................................................................................................................... - 31 -
4. Mediul de dezvoltare................................................................................................................................ - 34 -
4.1. Arduino IDE ........................................................................................................................................ - 34 -
4.2. Structura programelor în Arduino IDE............................................................................................... - 35 -
4.3. Conceptul de follow line ................................................................................................................... - 35 -
4.4. Senzorul ultrasonic ........................................................................................................................... - 36 -
4.5. Software ........................................................................................................................................... - 37 -
4.5.1. Codul pentru urmărirea liniei ............................................................................................... - 37 -
-1-
Filofteia-Valentina VOINEA – Proiect de diplomă
4.5.2. Codul pentru controlul încărcării și descărcării hranei pentru animale. .............................. - 38 -
4.5.3 Codul pentru controlul barierelor și a încărcării cu hrană a robotului ..................................... - 40 -
5. Concluzii.................................................................................................................................................... - 41 -
6. Rererințe ................................................................................................................................................... - 42 -
Anexe ............................................................................................................................................................ - 45 -
-2-
1. Introducere
1. Introducere
Această lucrare prezintă realizarea unui sistem hardware pentru comanda a patru motoare de
curent continuu, prin care se realizează hrănirea animalelor dintr-un adăpst de animale.
Proiectul este compus dintr-un sistem hardware pentru comanda motoarelor de curent
continuu, o parte de acţionare mecanică, precum şi o aplicaţie software prin care se comandă mişcările
maşinii. Toate aceste trei părţi comunică între ele, rezultând în final produsul finit dorit de către
utilizator.
Documentaţia aferentă acestui proiect este structurată în patru capitole în care sunt prezentate
etapele realizării lui.
Lucrarea este realizată ca o machetă (robot) funcţională, ea fiind o demonstraţie practică a
funcţionării unei vehicul inteligent, capabil să ruleze pe un traseu configurat, fără să părăsească
suprafața acestuia și să realizeze intrucțiunile pe care mașina le are implementate. Arhitectura mașinii
include un șasiu, patru motoare de curent continuu pentru tracțiune, un senzor de ultrasunete pentru
detecția barierelor și un circuit imprimat (PCB) pe care avem toate componentele necesare funcționarii
robotului.
Demonstrația practică este efectuata de robot (mașinuță) care v-a încărca și descărca hrana animalelor
într-un loc specific în cadrul machetei.
Robotica este o ramură a ingineriei. Această tehnologie este folosită pentru a dezvolta mașini
care să înlocuiască oamenii și să reproducă acțiunile umane. Roboții pot fi utilizați în multe situații și
în multe scopuri, dar astăzi multe dintre acestea sunt folosite în medii periculoase (inclusiv detectarea
și dezactivarea bombelor), procese de fabricație sau în cazul în care oamenii nu pot supraviețui (de
exemplu în spațiu). Roboții pot lua orice formă iar unii sunt făcuți să semene cu oamenii în aparență.
Acest lucru se spune că ajută la acceptarea unui robot în anumite comportamente replicative, de obicei
efectuate de oameni. Astfel de roboți încearcă să reproducă mersul pe jos, ridicarea, vorbirea,
cunoașterea și practic, orice poate face un om. [1]
Astăzi, robotica este un domeniu în creștere rapidă, pe măsură ce progresele tehnologice
continuă; cercetarea, proiectarea și construirea de noi roboți au diverse scopuri practice, indiferent
dacă sunt pe plan intern, comercial sau militar. Roboții sunt construiți pentru a ajuta oamnii, pentru a
-3-
Filofteia-Valentina VOINEA – Proiect de diplomă
le ușura munca, pentru a le face viața mai ușoară. Aceștia sunt construiți pentru a face anuminte
activități în locul oamenilor, iar oamenii putând face alte lucruri în tot acest timp. Robotica este de
asemenea folosită în STEM (știință, tehnologie, inginerie și matematică) ca ajutor didactic. [2]
Odată cu dezvoltarea rapidă a tehnologiei, oamenii își doresc să facă cât mai multe lucruri într-
un timp foarte scurt. Tehnologia a avansat foarte mult iar noi, oamenii, ne dorim să facem activități
fără a depune efort prea mult. De aceea, astăzi, roboții au un potențial foarte mare de a înlocui foarța
de muncă pe sarcini simple și repetitive. Roboții se gasesc in număr foarte mare în fabrici pentru a
ușura munca oamenilor sau pentru a înlocui personalul. Există multe exemple de roboței (mașinuțe)
care fac anumite activități casnice, de exemplu familiile au înlocuit mașinile de tuns iarbă cu diferiți
roboți care fac acelaș lucru dar fără a implica prezența umană. Astfel, oamenii „salvează” timp și pot
face diferite alte lucruri. Exemplele nu se opresc doar aici, astfel, oamenii dezvoltă pe zi ce trece alte
activități pe care roboții pot să le întreprindă.
Există multe motive diferite pentru utilizarea unui robot, dar motivul principal pentru
majoritatea aplicațiilor este eliminarea unui operator uman. Cel mai evident motiv este: pentru a
economisi forța de muncă și a reduce costurile. Uneori, un operator uman poate face mai bine decât
robotul în ceea ce privește calitatea sau viteza, dar robotul va face sarcina în mod consecvent.
De exemplu, testarea și măsurarea sunt deseori deschise înterpretării umane. Operatorii diferiți
vor obține rezultate diferite. Același lucru s-a dovedit a fi aplicat în activitațile repetitive de laborator,
în special în cercetarea farmaceutică, unde sute de probe trebuie testate cu instrumente sensibile.
Rezultatele obținute variază în funcție de viteza operatorului, de manipulare etc. Aplicațiile în cazul
în care obiectivul a fost de a economisi costurile pentru cercetătorii de doctorat care completează
tuburile de testare au dat de multe ori rezultate mai repetate și mai precise.
Există încă multe aplicații în care robotul nu face altceva decât să elimine forța de muncă. Punctul
meu de vedere este că multe sarcini necalificate sunt atât de monotone încât nu ar trebui să cerem unei
ființe umane să le facă. Roboții vor avea, de asemenea, un acces îmbunătățit la stările interne fizice și
cognitive. Va fi ușor să modernizăm roboții, dar ei vor reuși în cele din urmă să o facă singuri.
Seturile noastre de cunoștințe cognitive intrinseci au fost forjate - și constrânse - de cerințele
evoluției, dar un creier robotic ar putea fi proiectat pentru a excela în orice număr de sarcini arbitrare.
Roboții vor putea calcula mai bine și mai repede decât oamenii, au abilități superioare de recunoaștere
a modelului, atenție nelimitată și memorie infailibilă.
Nu se îmbolnăvesc, nu li se face foame și nici sete sau nu sunt nevoiți să facă opriri frecvente la baie.
-4-
1. Introducere
Există multe tipuri de roboți dar toate se bazează pe trei similitudini când vine vorba de construirea
lor:
1. Roboții au toți un fel de construcție mecanică, un cadru, o formă sau o formă concepută pentru
a atinge o anumită sarcină. De exemplu, un robot conceput pentru a călători prin murdărie sau
noroi greu ar putea folosi șenile omise. Aspectul mecanic este în cea mai mare parte soluția
consructorului de a îndeplini sarcina atribuită și de a se ocupa de fizica mediului înconjurător.
2. Roboții au componente electrice care acționează și controlează mașinile. Aspectul electric al
roboților este folosit pentru deplasarea (prin intermediul motoarelor), a senzorilor (unde
semnalele electrice sunt utilizate pentru a măsura calitățile, poziția și starea energiei) și
funcționarea (roboții au nevoie de un anumit nivel de energie electrică alimentată de motoarele
lor și senzori pentru activarea și efectuarea operațiunilor de bază).
3. Toți roboții conțin un anumit nivel de cod de programare a calculatorului. Un program este
modul în care un robot decide când sau cum să facă ceva. În exemplul de pe șenile, un robot
care trebuie să se deplaseze pe un drum murdar poate avea construcția mecanică corectă și
poate primi o cantitate corectă de energie de la bateria sa, dar nu ar merge nicăieri fără un
program care să-i spună să se miște. Programele sunt esentiale unui robot, acesta ar putea avea
o construcție mecanică și electrică excelentă, dar dacă programul său este prost construit,
performanța sa va fi foarte slabă (sau poate că nu va funcționa deloc). Există trei tipuri diferite
de programe robotizate: telecomandă, inteligență artificială și hibrid. Un robot cu programare
de la distanță are un set de comenzi preexistente, pe care le va efectua numai dacă și când
primește un semnal de la o sursă de control, de obicei o ființă umană cu telecomandă. Este
probabil mai bine ca dispozitivele controlate în primul rând de comenzile umane să se
încadreze în disciplina automatizării, mai degrabă decât în robotică. Roboții care utilizează
inteligența artificială interacționează cu mediul înconjurător pe cont propriu fără o sursă de
control și pot determina reacții la obiectele și problemele cu care se confruntă prin utilizarea
programării lor preexistente. Hybrid este o formă de programare care încorporează funcțiile
AI (inteligență artificială). [2]
Casele moderne includ un campus adesea folosit ca grădină cu iarbă care crește și trebuie
menținută la o înălțime scurtă. Tăierea convențională a gazonului este adesea un plictisotoare și
consumă mult timp în realizarea acesteia. Sarcina de a tunde gazonul manual poate fi înlocuită cu
mașina de tuns iarba automată folosind un robot programat să îndeplinească o astfel de sarcină.
Roboții sunt adesea costisitori, ceea ce deseori descurajează oamenii să cumpere dispozitive
costisitoare. Sucesul fabricării unei mașini de tuns iarba cu preț scăzut, ieftin, va permite proprietarilor
de case să își mențină gazonul fără a cheltui mult timp și bani. Un robot autonom poate tunde gazonul
unei zone specifice a grădinii fără supraveghere umană. [3]
Obiectivul specific al acestui proiect a fost acela de a dezvolta un robot automat pentru mașini
de tuns iarba, care ar putea ajuta utilizatorii în ușurarea muncii. Robotul fiind capabil să acopere o
anumită zonă de teren plat, evitând orice obstacol de-a lungul drumului.
Mașina de tuns iarba robotizată poate avea suport Bluetooth, astfel încât să poți să-l programezi
folosind telefonul tau fără a mai trebui sa te așezi pentru a modifica ceva la ea. Cu toate acestea, este
mult mai util sa alegi un modul care leagă mașina de tuns iarba de rețeaua mobilă. Aceasta înseamnă
că îl puteți monitoriza și controla de oriunde cu conexiune mobilă. Există, de asemenea, suport pentru
controlul vocii, de exampleu Alexa și Asistentul Google, precum și o conexiune cu Apple Watch.
După instalarea mașinii de tuns iarba robotizată, se poate ajusta cu ușurință înălțimea de tăiere
fără a avea nevoie de un instrument. În proiectarea unui astfel de robot se ia în calcul și faptul că
robotul este utilizat și dimineața când iarba este puțin udă dar cu toata acestea trebuie să se ia în calcul
ca trebuie să functineze și atunci chiar dacă există posibilitatea de a aluneca pe pantă cand iarba este
udă.
-6-
1. Introducere
În momentul proiectării trebuie luat în calcul și faptul că robotul trebuie să aibe o limită de
decibeli, acesta trebuie să fie foarte silentios, ceea ce însemană că în timpul utilizării vecinii nu o sa
fie deranjați.
Mașinuța evită obstacolele pe drumul spre casă, care sunt adesea în jurul perimetrului.
-7-
Filofteia-Valentina VOINEA – Proiect de diplomă
-8-
1. Introducere
Pe lângă aceste experimente care sunt facute de către oameni pasionați, sunt și oameni care se
implica și vor să aducă împreună studenți pentru a-i familiariza cu munca în echipă. Aceștia încearcă
să propună lucruri diferete pentru a le dezvolta imaginația. Astfel, obiectivul principal al proiectului-
concurs este dezvoltarea unui sistem pentru mașină ce permite comunicarea cu alte mașini participante
la trafic.
În fiecare ediție a proiectului, conceptul este diferit, de exemplu: realizarea și funcționarea
sistemului de comunicare „car 2 car comunication” pentru mașină. Au fost prezentați mai mulți roboți
(mașinuțe) care trebuiau să comunice între ele întru-un circuit dat. Acestea au fost construite să fie
autonome și în momentul în care, pe traseu se întâlneau într-o intersecție cu o altă mașinuță, acestea
trebuiau să acorde prioritate de dreapta la fel ca și în cazul autovehiculelor.
Obiectivele proiectului:
• realizarea și funcționarea sistemului pentru mașină;
• controlarea motoarelor cu ajutorul microcontrolerului;
• eficiență energetică cât mai mare;
• conexiunea cât mai rapidă între acces point și mașină.
Astfel de proiecte vor să arate un prototip care are potențial și totodată că se poate implementa în viața
reală. Astfel de proiecte sunt deja implementate în companii mari precum Amazon pentru a ușura
munca angajaților și pentru a avea o creștere cât mai bună a randamenului.
-9-
Filofteia-Valentina VOINEA – Proiect de diplomă
Masinuțele au la baza un cicuit imprimat (PCB), lucru care m-a inspirat și m-a facut să vreau să
implementez ceva asemanor în cadrul proiectului meu.
- 10 -
2. Descrierea componentelor
2. Descrierea componentelor
În cadrul acestui capitol am descris structura și senzorii aleși pentru construirea prototipului.
- 11 -
Filofteia-Valentina VOINEA – Proiect de diplomă
Prin măsurarea timpului necesar pentru ca ecoul să ajungă la receptor, putem calcula distanța.
Acesta este principiul de bază de lucru al modulului ultrasonic pentru măsurarea distanței.
Senzorii ultrasonici pot și adoptați implementați într-un sistem de evitare a obstacolelor în
timp real pentru roboți, astfel încât robotul să poată detecta continuu împrejurimile, evitând
obstacolele și deplasându-se spre zona țintă.
O alta metodă este cea de urmărire a pereților pentru a realiza optimizarea traseului.
În această lucrare, senzorii cu ultrasunete sunt adoptați și implementați într-un sistem de oprire
a robotului, astfel încât robotul să poată detecta bariera, să se oprească și să basculeze hrana animalelor
continuând-si drumul după ce bariera s-a ridicat. [fig.1.4] [8]
Un robot de urmărire a liniei este un robot care urmează o anumită cale controlată de un
mecanism din spate.
Robotul pentru urmărirea liniei poate fi un robot mobil pe roți, cu o bază fixă, un robot mobil cu
picioare, cu mai multe corpuri rigide interconectate prin îmbinări.
Robotul ia în calcul prima poziție și o compară cu poziția în care se mișca într-o parte sau în alta, daca
aceasta eroare este mare, motoarele vor efectua o întoarcere mare. După această mișcare, dacă eroare
nu scade sau scade puțin motoarele vor vira până când robotul va găsi linia.
Senzorii pot fi poziționați oriunde ne dorim dar, în momentul când senzorul nu detectează
nicio linie, robotul se mișcă spre stânga sau dreapta încercând să găsească linia și când senzorul o
detectează, robotul își continuă traseul. Pentru o precizie mult mai bună am ales să folosesc șase
senzori pentru ca robotul să nu aibe erori și să urmarească linia tot timpul. Fig. 1.4
- 12 -
2. Descrierea componentelor
Putem controla viteza motorului DC prin simplul control al tensiunii de intrare la motor și cea mai
obișnuită metodă de a face acest lucru este prin utilizarea semnalului PWM. (modulația PWM)
2.4.1. Puntea H
Un pod H este un circuit electronic care comută polaritatea unei tensiuni aplicate unei sarcini.
Aceste circuite sunt adesea folosite în robotică și alte aplicații pentru a permite motoarelor DC să
circule înainte sau înapoi.
Majoritatea convertoarelor DC-AC (convertizoare de putere), majoritatea convertoarelor AC
/ AC, convertorul DC-to-DC, majoritatea controlerilor de motoare și multe alte tipuri de electronice
- 13 -
Filofteia-Valentina VOINEA – Proiect de diplomă
de putere utilizează punțile H. În particular, un motor pas cu pas bipolar este invariabil condus de un
regulator motor care conține două punți H.
Punțile H sunt disponibile ca circuite integrate sau pot fi construite din componente discrete. [9]
Termenul H este derivat din reprezentarea grafică tipică a unui astfel de circuit. Un pod H este
construit cu patru întrerupătoare (solid-state sau mecanice). Când întrerupătoarele S1 și S4 (în
conformitate cu fig. 1.5.) sunt închise (și S2 și S3 sunt deschise), o tensiune pozitivă va fi aplicată pe
motor. Prin deschiderea întrerupătoarelor S1 și S4 și prin închiderea întrerupătoarelor S2 și S3, această
tensiune este inversată, permițând funcționarea inversă a motorului.
- 14 -
2. Descrierea componentelor
2.5. Servomotorul
- 15 -
Filofteia-Valentina VOINEA – Proiect de diplomă
Servomotoarele sunt motoare electrice speciale, de curent continuu sau curent alternativ cu
viteză de rotaţie reglabilă într-o gamă largă în ambele sensuri având ca scop deplasarea într-un timp
prescris a unui sistem mecanic (sarcina) de-a lungul unei traiectorii date, realizând totodată şi
poziţionarea acestuia la sfârşitul cursei cu o anumită precizie.
În interiorul unui servo hobby sunt patru componente principale, un motor DC, o cutie de
viteze, un potențiometru și un circuit de comandă. Motorul de curent continuu este de mare viteză și
un cuplu redus, dar cutia de viteze reduce viteza la aproximativ 60 rot/min și în același timp, mărește
cuplul.
Potențiometrul este atașat la angrenajul final sau arborele de ieșire, astfel încât motorul să se
rotească și potențiometrul se rotește, producând astfel o tensiune care este legată de unghiul absolut
al arborelui de ieșire. În circuitul de comandă, această tensiune potențiometrică este comparată cu
tensiunea provenită de la linia de semnal. Dacă este necesar, controlerul activează o punte H integrată
care permite motorului să se rotească în ambele direcții până când cele două semnale ating o diferență
de zero.
Un servomotor este controlat prin trimiterea unei serii de impulsuri prin linia de semnal.
Frecvența semnalului de comandă trebuie să fie de 50 Hz sau un impuls ar trebui să aibă loc la fiecare
20ms. Lățimea impulsului determină poziția unghiulară a servomotorului, iar aceste tipuri de servo-
uri se pot roti, de obicei, la 180 de grade (au limite fizice de deplasare). [11]
- 16 -
2. Descrierea componentelor
Pentru alimentarea robotului trebuia sa aleg un tip de acumulatori care sa ofere o energie destul
de mare dar să aibă și o greutate acceptabilă. Cazul cel mai favorabil ar fi fost acumulatorii pe bază
de plumb care se găsesc pe piață la specificațiile 12V și 1...6A, dar din cauza că aceștia aveau o
greutate considerabilă, aproximativ 1,5 kg nu am putut opta pentru această variantă, robotul fiind prea
greu și dificil de controlat. Astfel am optat pentru acumulatori de tip Li-Ion care au o greutate mai
mică decât cei pe bază de plumb și o putere comparabilă.
Astfel am ales două celule Li-Ion de 3,7 V și 3200 mA conectate în serie.
În momentul utilizării motoarelor cu reductor am hotărât să atașez pe fiecare motor câte două
condesatoare. Aceste condensatoare ajută la diminuare perturbațiilor. [14]
- 18 -
3. Poiectarea circuitului imprimat
Pentru realizarea schemei PCB-ului am avut nevoie de o schemă, aceasta am ales să fie
conceputa în programul Eagle.
Autodesk EAGLE este un software electronic de automatizare a proiectării (EDA). Permite
activarea plăcii cu circuite imprimate (PCB) să conecteze perfect diagramele schematice, amplasarea
componentelor, rutarea PCB și conținutul cuprinzător al bibliotecii.
EAGLE conține un editor schematic pentru proiectarea schemelor de circuite. Schema este
stocată în fișiere cu extensie .SCH, părțile sunt definite în bibliotecile de dispozitive cu extensia .LBR.
Părțile pot fi plasate pe mai multe coli și conectate împreună prin porturi.
- 19 -
Filofteia-Valentina VOINEA – Proiect de diplomă
Editorul de layout PCB stochează fișierele de bord cu extensia .BRD. Aceasta permite
adnotarea înapoi la schema și rutarea automată pentru a conecta automat urmele bazate pe conexiunile
definite în schemă.
- 20 -
3. Poiectarea circuitului imprimat
Prin executarea unui ciclu, realizează transferuri apropiate de 20 MIPS/20MHz. Acest lucru permite
proiectantului de sistem să optimizeze dispozitivul pentru consumul de energie față de viteza de
procesare.
Dispune de un set de 131 instrucțiuni și 32 de regiștri de uz general. Cele 32 de registre sunt
direct adresabile de Unitatea Logica Aritmetica (ALU), permițând accesarea a două registre
independente într-o singură instrucțiune. Se obține astfel o eficiență sporită în execuție (de până la
zece ori mai rapidă decât microcontrolerele conventionale CISC).15]
Caracteristicile principale ale acestuia sunt:
• 32KB de memorie Flash reinscriptibilă pentru stocarea programelor
• 2KB de memorie interna SRAM
• 1KB de memorie EEPROM
• două numărătoare/temporizatoare de 8 biti
• un numărător/temporizator de 16 biti
• conține un modul USART pentru comunicație serială (port serial)
• tensiunea de operare:
▪ 0 - 4MHz @ 1.8V - 5.5V
▪ 0 - 10MHz @ 2.7V - 5.5V
▪ 0 - 20MHz @ 4.5 - 5.5V
▪
În figura 2.2 urmatoare este prezentat în microcontrolerul ATMEGA328-PU și o parte din
componente. În partea de sus putem observa că în pinul 20 (AVCC) am conectat un filtru trece jos
format din două condesantoare și o bobină, acesta are rolul de a activa portul analogic și de a avea un
riplu cât mai mic. La pinul 1, în partea de jos a schemei am conectat un buton de resetare.
Se observă că în schemă avem pini de programare care fac legatura cu portul serial (RX și TX)
de la microcontroler utilizând protocolul UART pentru programarea lui.
Pentru programarea microcontrolerului am folosit inițial Arduino pentru a scrie codul și pentru
a face corecturile necesare. După ce codul a fost corectat am folosit programerul FT232RL pentru a-
l transmite.
Modulul convertor USB la Serial se bazează pe circuitul integrat FT232RL. De cele mai multe
ori, modulul este folosit pentru a conecta la computer un microcontroler sau o placuță de dezvoltare.
Produsul convertește semnalele din protocolul USB la protocolul Serial și invers. Poate lucra atât pe
nivelul logic de 3.3V, cât și pe cel de 5V (tensiunea este selectabilă prin jumper).
- 21 -
Filofteia-Valentina VOINEA – Proiect de diplomă
3.2.2 UART
- 22 -
3. Poiectarea circuitului imprimat
Driverul de motoare DRV8870, conține trei circuite integrate de la Texas Instruments care
conțin fiecare cate un H-bridge pentru a comanda fiecare parte de motoare: un ciruit este utilizat pentru
roțtile din partea sânga (două motoare), al doilea este folosit pentru roțile din dreapta și al treilea
circuit este folosit pentru realizarea bascularii hranei animalelor.
Circuitele integrate sunt doua DRV8870 ideale pentru aplicații în care se utilizează motoare DC cu
perii.
Circuit integrat are două intrări logice ce controlează H-bridge driverului, care este format din
patru tranzistoare de tip N MOSFET-uri care pot controla motoare bidirecțional cu un curent de vârf
până la 3.6A.
Intrările pot fi PWM (modelarea lățimii pulsului) pentru a controla viteza motorului.
Driverul DRV8870 dispune de o reglementare integrată a curentului, bazată pe intrarea analogică
VREF și pe tensiunea pe pinul ISEN, care este proporțională cu curentul motorului printr-un rezistor
de sens extern.
Driverul este protejat în totalitate de defecțiuni și scurtcircuite, inclusiv subtensiune (UVLO),
supracurent (OCP) și supratemperatură (TSD). Când starea defecțiunii este eliminată, aparatul reia
automat funcționarea normal.
- 23 -
Filofteia-Valentina VOINEA – Proiect de diplomă
Pentru realizarea acestei parți de circuit am folosit două rezistențe de 0,56Ω în paralel, astfel
rezistența echivalentă fiind de 0,28Ω. Am folosit ca și conector (Dump din Fig. 2.4.), terminale cu
șurub la ieșirea din driverele către motoare.
Pentru calcularea șuntului am folosit următoarele formule:
=5V
=1.8A
= = = 0.277 Ω
= 0.28 Ω
P= * = * =0.91 W
Din motive economice am ales să folosesc două rezistențe conectate în paralel, care au
valoarea de 0,56 Ω, iar rezistanța echivalentă fiind aceeași și capabilitatea de disipare a unei puteri de
500mW pe rezistor, rezultând puterea disipată echivalentă pe cei doi rezostori de 1W, acoperind
necesarul de 0.91 W de disipare.
- 24 -
3. Poiectarea circuitului imprimat
𝑓𝑆𝑊 =400KHz
𝐼𝑜𝑢𝑡 = 2A
60 60
𝐼𝐿𝑅𝐼𝑃𝑚𝑎𝑥 = 𝐼𝑜𝑢𝑡 = ∗2= 1.2A
100 100
1 1
𝐼𝐿𝑟𝑚𝑠 = √(𝐼𝑜𝑢𝑡 2 + 𝐼 2
) = √(22 + 12 0.882 )= 2.016 A
12 𝑅𝐼𝑃𝑃𝐿𝐸
1 1
𝐼𝐿𝑟𝑚𝑠 = 𝐼𝑜𝑢𝑡 + 2
* 𝐼𝑅𝐼𝑃𝑃𝐿𝐸 = 2+ 2
* 0.88= 2.44 A
Este necesar un curent rms de 2A și o valoare de saturație minimă de 2.44 A
2∗2
𝐶𝑜𝑢𝑡 >
400∗103 ∗ 0.25
𝐶𝑜𝑢𝑡 > 40 µF
Am ales un condensator de 47 µF
Consesatoarele de la intrarea în regulatorul de tensiune au fost alese pe baza foii de cataog:
C5 = 10 µF
C6 = 100 nF
5.1 5.1
f0 = = = 21.7 kHz
𝑉𝑜𝑢𝑡 ∗ 𝐶𝑜𝑢𝑡 5 ∗ 47∗10−6
1 1
C8 > *
2∗ 𝜋 ∗ 𝑓0 𝑅3
1 1
C8 > *
2∗ 𝜋 ∗ 21.7∗103 100∗103
C8 >15.6 pF
a) b)
c) d)
Fig. 2.6 – Simulare
a) Start up; b) input transiet; c) load transient; d) stare de echilibru
În figura 2.3 a) pornirea – Caracteritica arată timpul în care ajunge tensiunea la 5V, ajunge la
5V în timp de 6 msec.
În figura 2.3 b) intrare tranzitorie – Tensiunea de ieșire care după oscilațiile pe care le are, ajunge să
se stabilizeze în aproximativ 2 msec.
În figura 2.3 c) sarcina tranzitorie – Încărcarea răspunsului tranzitoriu este caracteristica
răspunsului la o fluctuație de sarcină bruscă, adică timpul până când tensiunea de ieșire revine la o
valoare prestabilită după ce a scăzut sau a crescut și forma de undă a tensiunii de ieșire.
- 28 -
3. Poiectarea circuitului imprimat
În figura 2.3 d) stare echilibrată – starea de echilibru este condiția de echilibru a circuitului
care are loc deoarece efectele tranzitorilor nu mai sunt importante.
În imaginile următoare sunt prezetate graficele pentru ciclul de funționare si pentru eficiență
la diferite valori ale tensinii de intrare.
a) b)
Fig. 2.7 –Simulare
a) Ciclu de functionare; b) eficienta (pe scare logaritmica)
După finalizarea schemei electronice și după ce am verificat schema de mai multe ori pentru
a avea cât mai puține greșeli, am început asezarea componentelor pe “board”.
Pentru a putea fi cât mai compact, pentru un aspect plăcut și pentru a-l face cât mai intuitiv și
mai ușor de înțeles am așezat componentele și am realizat traseele atât pe partea de sus a plăcuței cât
și pe partea de jos a cesteia.
În proiectarea plăcuței am folosit diferite reguli de proiectare: pentru trasee am folosit unghiuri
de 45º și au fost dimensionate în funcție de puterea transportată.
- 29 -
Filofteia-Valentina VOINEA – Proiect de diplomă
În ceea ce privește traseele am folosit grosimi diferite pentru a putea face diferența între ele.
Astfel, traseele de conexiune au fost create cu grosimea de 0.4mm, iar pentru traseele de 5V am folosit
grosimea de 1.27mm. Pentru traseul de la baterie am folosit un polygon pentru a putea sa fie distribuită
cât mai uniform puterea și pentru a nu se încălzi plăcuța.
La nivel de module pe partea de sus a plăcuței se regăsesc: regulatorul de tensiune, driverele
de motoare și microcontrolerul ATMEGA328-PU.
a) b)
Pentru a ne a asigura că vom avea un curent de intrare de la baterie cât mai mare și o putere de
disipare pe rezistențele de limitare a curentului pe driverele de motoare am decis să plasăm și pe partea
de jos a plăcuței trei componenete:
- O diodă conecată în paralel cu cea de pe top, dublând astfel capacitatea de tracere a curentului;
- 30 -
3. Poiectarea circuitului imprimat
- două rezistanțe de la driverele de motoare pe care nu le-am putut plasa pe partea de top din
cauza polygonului de alimentare de la baterie pentru drivere, conectate în paralel pentru a avea
o putere de disipare de 1W.
În cazul diodelor am folosit două diode Schottky (pentru că au o cadere de tensiune mică) ca
să poată trece un curent mai mare prin ele.
Dioda Schottky este o diodă formată dintr-o joncțiune metal-semiconductor, la fel ca și dioda
cu contact punctiform. Capacitatea acestei joncțiuni este foarte mică, ceea ce înseamnă că dioda poate
lucra la frecvențe înalte. Un alt avantaj al joncțiunii metal-semiconductor față de joncțiunea
semiconductor-semiconductor folosită la diodele convenționale este căderea mică de tensiune, numai
0,3 V față de 0,6 V cât este în cazul unei diode din siliciu.[18]
Avantajele diodei Schottky:
✓ Are un timp de recuperare rapid datorită cantității foarte mici de încărcare stocată.
Deci, această diodă este utilizată pentru aplicația de comutare de mare viteză.
✓ Are tensiune redusă.
✓ Are capacitate joasă de joncțiune.
✓ Căderea de tensiune este scăzută.
- 32 -
3. Poiectarea circuitului imprimat
- 33 -
Filofteia-Valentina VOINEA – Proiect de diplomă
4. Mediul de dezvoltare
Arduino este o companie open-source care produce atât plăcuțe de dezvoltare bazate pe
microcontrolere, cât și partea de software destinată funcționării și programării acestora. Pe lângă
acestea include și o comunitate uriașă care se ocupă cu creația și distribuirea de proiecte care au ca
scop crearea de dispozitive care pot sesiza și controla diverse activități sau procese în lumea reală
Arduino având ca țintă asigurarea unei soluții ieftine și simple pentru începători și profesioniști
spre a crea dispozitive capabile să interacționeze cu mediul, folosind senzori și sisteme de acționare.
Cele mai comune exemple sunt dispozitivele pentru utilizatorii începători precum: roboții simpli,
termostatele și/sau detectoarele de mișcare.
Sistemul de bariere este bazat pe designul plăcilor cu microcontroler produse de câțiva
furnizori, folosind diverse tipuri de microcontrolere. Aceste plăci pun la dispoziția utilizatorului pini
I/O, digitali și analogici, care pot fi interfațați cu o gamă largă de plăcuțe numite scuturi (shield-uri)
și/sau cu alte circuite. Plăcile au interfețe de comunicații seriale, inclusiv USB pe unele modele, pentru
a încărca programe din calculatorele personale. Pentru programarea microcontrolerelor, Arduino vine
cu un mediu de dezvoltare integrat (IDE) bazat pe proiectul Processing, care include suport pentru
limbaje de programare ca C și C++.
În PCB-ul robotului a fost integrat și un microcontroler din familia ATMEGA, același
microcontroler ca cel de pe Arduino UNO, adica ATMEGA328P. PCB-ul nu are interfață de
comunicare serială (USB), iar pentru încărcarea aplicației dezvoltate în Arduino IDE am folosit un
programer. [19]
- 34 -
4. Mediul de dezvoltare
În prima parte a programelor am declarat librăriile pentru senzorii de linei și pentru servo-
motor. Apoi au fost definiți pinii pentru fiecare componentă, variabilele pentru funcții și
servomotoare. După definirea pinilor, am setat intrările și iesirile pe pini de la Arduino și
microcontrolerul ATMEGA 328P.
Programul arduino pentru robot este structurat pe 3 funcții:
1. Senzor follow line
2. Sensor utrasnic
3. Descărcarea hranei
Programul arduino pentru sistemul de bariere poate fi structurat pe mai multe funcții, acestea
variind cu numărul de cuști existente în adăpost. Prin crearea acestei structuri, sistemul oferă
posibilitatea de a face modificări foarte ușor în funcție de nevoile pe care le are fiecare adăpost.
Pentru a putea controla mișcarea de deplasare a robotului am folosit conceptul de line follow.
Algoritmul este singurul lucru care determină performanța unei linii urmând un robot mai mult decât
orice altceva. Algoritmul cel mai de bază este cel care utilizează un singur senzor. Dezavantajul
acestei metode este că linia următoare nu este netedă. Robotul continuă să se miște la stânga și la
dreapta pe pistă, pierzând timp și micșorându-se autonomia. O modificare a acestei metode este de a
- 35 -
Filofteia-Valentina VOINEA – Proiect de diplomă
adăuga mai mulți senzori, de aceea am utilizat cinci senzori, doi pe partea stângă, doi pe partea dreaptă
și unul central, pentru a avea o precizie cât mai bună și pentru erori cât mai mici.
Principalul avantaj este acela ca robotul va urma linia păstrând liniștit centrul său întotdeauna
deasupra liniei. În linii drepte, robotul se va stabiliza treptat și va merge drept, spre deosebire de un
robot cu un singur senzor. Aceasta permite robotului să urmărească linia mai repede și mai eficient.
Algoritmul de calcul este urmatorul:
SumLeft = suma senzorilor de pe partea dreaptă și a celui din centru;
SumRight = suma senzorilor de pe partea stângă și a celui din centru;
SumDifference = SumLeft – SumRight;
Pe lângă follow line am folosit și alte componente în controlul proiectului care au un rol foarte
important:
- senzorul de distanță cu ultrasunete
- barierele montate la fiecare cușcă din adăpost.
Senzorul ultrasonic are rolul de a detecta când o barieră este coborâtă (atunci când mancarea
s-a terminat) și de a opri în dreptul recipientului de aprovizionare cu hrană a cuștii respective sau de
a detecta bariera de la zona de încărcare cu hrană și apoi executând bascularea sau astepând încărcarea
mâncării.
În acest caz algoritmul de funcționare este acela de a citi regulat distanța, iar atunci cand
această disțantă este mai mică decât 5 cm se incrementează o variabilă cu vaoarea 1. În momentul
când variabila este impară, robotul va aștepta încărcarea cu hrană, urmând să își continue deplasarea
după ridicarea barierei până la prima barieră coborâtă. La întâlnirea următoarei bariere coborâte,
variabila incrementându-se cu 1, devine pară, ceea ce înseamnă că robotul trebuie să se oprească
pentru a descărca hrana.
După descărcarea hranei și ridicarea barierei, robotul se va deplasa din nou spre zona de
încărcare cu hrană, urmând să aprovizioneze cu hrana urmatoarea cușcă.
- 36 -
4. Mediul de dezvoltare
4.5. Software
- 37 -
Filofteia-Valentina VOINEA – Proiect de diplomă
Funcția de line follow va fi prezentată în figura 3.1. Pentru funcția de line follow, vom citi pe
intrările analogice valoarea transmisă de senzorii de linie cu infraroșu.
Pentru a putea controla mai ușor PWM-ul trimis la roțile robotului am folosit urmatorul
algoritm:
- 38 -
4. Mediul de dezvoltare
Dacă distanța este mai mică de 5 cm, se va incrementa o variabilă “count”, iar în funcție de valorile
variabilelor count vom avea două cazuri:
• Atunci când variabila count nu este divizibilă cu 2 și senzorii de line follow văd toți linia
neagră, robotul se va opri și va aștepta să fie încărcată cu hrană.
• Atunci când variabila count este divizibilă cu 2, iar senzorii de line follow nu văd toți linia
neagră, robotul se va opri și va începe descărcarea hranei. După terminarea descărcării
hranei, va aștepta ca bariera să se ridice pentru a putea continua deplasarea.
- 39 -
Filofteia-Valentina VOINEA – Proiect de diplomă
void barieraX () {
SM_bariera_mancare.write(0); //bariera de la zona de aprovizionare cu hrană coboară
SM_bariera_cusca_X.write(0); //bariera de la cușcă cu numarul X coboară
delay(1000);
SM_incarcare_mancare.write(90); //mecanismul de aprovizionare cu hrană se deschide și
începe aprovizionarea robotului cu hrană
delay(1500);
SM_incarcare_mancare.write(0); //mecanismul de aprovizonare cu hrană se închide, robotul
este încărcat cu hrană
delay(1000);
SM_bariera_mancare.write(90); //bariera de la zona de aprovizionare cu hrană se ridică, iar
robotul începe să meargă spre cuscă pentru a descărca hrana.
delay(2000);
SM_bariera_cusca_X.write(90); //bariera de la cușca X se ridică după ce robotul a terminat
de descărcat hrana, el urmând să meargă la zona de aprovizionare cu hrană pentru a putea
aproviziona restul cuștilor
delay(1000);
}
- 40 -
5. Concluzii
5. Concluzii
- 41 -
Filofteia-Valentina VOINEA – Proiect de diplomă
6. Rererințe
[1] – Mobile robot - de la Wikipedia, enciclopedia liberă [online]. [2019] [citat 01.06.2019];
Avaible from:
URL: https://en.wikipedia.org/wiki/Mobile_robot
[2] – Robotics - From Wikipedia, the free encyclopedia[online]. [2019] [citat 01.06.2019]; Avaible
from:
URL: https://en.wikipedia.org/wiki/Robotics
[3] – T. Mohammad Baloch and Timothy Thien Ching Kae, "Design and modelling a prototype
of a robotic lawn mower," 2008 International Symposium on Information Technology, Kuala
Lumpur, 2008, pp. 1-5.
[4] – Price Runner, „Top 22 best robotic lawn mowers of 2019.” [online]. [31 mai, 2019] [citat
01.06.2019]; Avaible from:
URL: https://www.pricerunner.com/test/robotic-lawn-mower
[5] – Rohan Juneja, „Ball Tracking Robot.” [online]. [5 ianuarie, 2016] [citat 02.06.2019]; Avaible
from:
URL: https://create.arduino.cc/projecthub/junejarohan/ball-tracking-robot-
7a9865?ref=tag&ref_id=robot&offset=8
[6] –
https://www.google.com/search?q=ingeniously+continental&source=lnms&tbm=isch&sa=X&ve
d=0ahUKEwiswuvi3fPiAhVwSxUIHU3pBwwQ_AUIECgB&biw=1366&bih=657#imgrc=4JfD
rVDiMuJAOM:
[7] – DFRobot - Pirate: 4WD Arduino Mobile Robot Kit with Bluetooth 4.0
URL: https://www.dfrobot.com/product-116.html
[8] – Fut-electronic Tech Co., Limited, Blue Ultrasonic Sensor,
URL: https://fut688.en.made-in-china.com/
[9] -
https://www.google.com/search?q=driver+de+motoare+pwm&source=lnms&tbm=isch&sa=X&
ved=0ahUKEwj56OqH3_PiAhUPKuwKHW5mAuEQ_AUIECgB&biw=1366&bih=657#imgrc
=i-urSDWQg4GXsM:
- 42 -
6. Rererințe
[9 ] – Tolga Özer, Sinan Kıvrak, Yüksel Oğuz, „H Brıdge DC Motor Drıver Desıgn and
Implementatıon with Usıng dsPIC30f4011”, Mai 2017, International Journal of Innovative
Research in Science, Engineering and Technology, [citat 18.06.2019]
URL:https://www.researchgate.net/publication/317225711_H_Bridge_DC_Motor_Driver_Desig
n_and_Implementation_with_Using_dsPIC30f4011?fbclid=IwAR0AQ_D8muv2zRe15Iloql1mw
i38REwsLn9To0Xs-eAAlSRN1ynzHsz9_00
[10] –HOW TO MECHATRONICS, Arduino DC Motor Control Tutorial – L298N | PWM | H-
Bridge 2019
URL: https://howtomechatronics.com/tutorials/arduino/arduino-dc-motor-control-tutorial-l298n-
pwm-h-bridge/
[11] – HOW TO MECHATRONICS, How Servo Motors Work & How To Control Servos using
Arduino, 2019 [citat 14.04.2019]
URL:https://howtomechatronics.com/how-it-works/how-servo-motors-work-how-to-control-
servos-using-arduino/
[12]
URL:https://www.google.com/search?q=ncr18650b&tbm=isch&source=iu&ictx=1&fir=_rZyq1
SzJ3j-1M%253A%252CExk1Z_FPi-Zd1M%252C_&vet=1&usg=AI4_-
kSFrjpg1XRiLQUNUWRv4jR49_dLQA&sa=X&ved=2ahUKEwiRz5ady_PiAhWG16QKHZtC
BMUQ9QEwD3oECAUQBA#imgrc=B5xVtRh3Gm5RMM:&vet=1
[13] – Catalog baterii
URL: http://pdf1.alldatasheet.com/datasheet-
pdf/view/597043/PANASONICBATTERY/NCR18650B.html
[14] – DFRobot – Drive the Future, TT Geared Motor with Back Shaft (160rpm 6v L Shape),
URL: https://www.dfrobot.com/product-100.html
[15] – foaie de catalog
URL: https://datasheet.lcsc.com/szlcsc/Microchip-Tech-ATMEGA328P-PU_C33901.pdf
[16] – Margaret Rouse, „UART (Universal Asynchronous Receiver/Transmitter)”
URL:https://whatis.techtarget.com/definition/UART-Universal-Asynchronous-Receiver-
Transmitter
[17] – Serial Port Complete – Programming and circuits for RS-232 and RS-485 Link and
Networks, Jon Axeson, 1998, Puplicat de Lakeview Research [ citat 29.05.2019]
- 43 -
Filofteia-Valentina VOINEA – Proiect de diplomă
URL:http://markswist.com/markpersonal/ebooks/Serial%20Port%20Complete%20-
%20Jan%20Axelson.pdf
[18] – “Schottky Diodă”, RIVERGLENNAPTS, [citat 03.05.2019]
URL: https://riverglennapts.com/ro/diode/305-schottky-diode.html
[19] – Alan G. Smith, “Introduction to Arduino”, Septembrie 30, 2011, [citat 1.05.2019]
- 44 -
Anexe
Anexe
#include <RedBot.h>
#include <RedBotSoftwareSerial.h>
// initilizarea variabilelor
int count = 0;
long duration;
int distance;
- 45 -
Filofteia-Valentina VOINEA – Proiect de diplomă
int SumLeft = 0;
int SumRight = 0;
int SumDifference = 0;
int Last = 0;
void setup()
delay(500);
pinMode(direction1motorA, OUTPUT);
pinMode(direction2motorA, OUTPUT);
pinMode(direction1motorB, OUTPUT);
pinMode(direction2motorB, OUTPUT);
pinMode(AIB, OUTPUT);
Serial.begin(9600);
delay(1000);
void LinieSenz() {
Serial.print(left_sen2.read());
- 46 -
Anexe
Serial.print("\t");
Serial.print(left_sen1.read());
Serial.print("\t");
Serial.print(center_sen.read());
Serial.print("\t");
Serial.print(right_sen1.read());
Serial.print("\t");
Serial.print(right_sen2.read());
Serial.println();
Serial.print(SumLeft);
Serial.print('\t');
Serial.print(SumDifference);
Serial.print('\t');
Serial.print(SumRight);
Serial.println();
Forward();
Serial.println("Forward");
- 47 -
Filofteia-Valentina VOINEA – Proiect de diplomă
SlightRight();
Last = 1;
Serial.println("Slight Right");
HardRight();
Last = 1;
Serial.println("Hard Right");
SlightLeft();
Last = 2;
Serial.println("Slight Left");
HardLeft();
Last = 2;
Serial.println("Hard Left");
if (Last == 1) {
HardRight();
if (Last == 2) {
HardLeft();
- 48 -
Anexe
void SenzUltra() {
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
void Oprire_bariera() {
{ count++;
Stop();
delay(500);
delay(3000);
pauza();
delay(2000);
- 49 -
Filofteia-Valentina VOINEA – Proiect de diplomă
delay(2500);
pauza();
delay(2500);
Stop();
Serial.println("Stop");
delay(2500);
void loop()
LinieSenz();
SenzUltra();
Oprire_bariera();
void Forward() {
analogWrite(direction1motorA, 60);
digitalWrite(direction2motorA, LOW);
analogWrite(direction1motorB, 60);
digitalWrite(direction2motorB, LOW);
- 50 -
Anexe
void HardRight() {
digitalWrite(direction1motorA, LOW);
analogWrite(direction2motorA, 30);
analogWrite(direction1motorB, 100);
digitalWrite(direction2motorB, LOW);
void SlightRight() {
analogWrite(direction1motorA, 0);
digitalWrite(direction2motorA, LOW);
analogWrite(direction1motorB, 120);
digitalWrite(direction2motorB, LOW);
void HardLeft() {
analogWrite(direction1motorA, 100);
digitalWrite(direction2motorA, LOW);
digitalWrite(direction1motorB, LOW);
analogWrite(direction2motorB, 30);
void SlightLeft() {
analogWrite(direction1motorA, 120);
digitalWrite(direction2motorA, LOW);
- 51 -
Filofteia-Valentina VOINEA – Proiect de diplomă
analogWrite(direction1motorB, 0);
digitalWrite(direction2motorB, LOW);
void Stop() {
analogWrite(direction1motorA, 0);
digitalWrite(direction2motorA, LOW);
analogWrite(direction1motorB, 0);
digitalWrite(direction2motorB, LOW);
// comanda de basculare
void sus()
digitalWrite(AIA, HIGH);
digitalWrite(AIB, LOW);
void jos()
digitalWrite(AIA, LOW);
digitalWrite(AIB, HIGH);
void pauza()
digitalWrite(AIA, LOW);
digitalWrite(AIB, LOW);
- 52 -