SISTEM AUTOMATIZAT DE SORT ARE CU BAND Ă [629289]
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
201 8
SISTEM AUTOMATIZAT DE SORT ARE CU BAND Ă
TRANSPORTOARE ȘI BRAȚ ROBOTIC
PROIECT DE DIPLOMĂ
Autor: Dan Emil Stăncălie
Conduc ător științific: Conf. dr. ing. Vlad Mure șan
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
DECAN
Prof.dr.ing. Liviu MICLEA Vizat,
DIRECTOR DEPARTAMENT AUTOMATIC Ă
Prof.dr.ing. Honoriu VĂ LEAN
Autor : Dan St ăncălie
Sistem Automatizat de Sortare cu Band ă Transportoare și Bra ț
Robotic
1. Enunțul temei: Sistem automatizat de sortare cu banda transportoare si bra ț
robotic cu ajutoarul unui microcontroller.
2. Conținutul proiectului: Introducere, Obiective, Studiu bibliogra fic, Analiză și
fundamentare teoretică, Microcontrol erul Arduino Mega 2560, Servomotoare,
Senz orul de culoare, Senzor Arduino shield, Mo torul pas cu pas, Driver pentru
motoare pas cu pas, Senzorul de lumină, Senzorul de distanță, Brațul robotic,
Proiecte de detaliu si implementare, Validarea, verificarea și testarea, Manual de
instalare și utilizar e, Concluzii, Bibliografie și Anexe.
3. Locul documentației: Universitatea Tehnic ă din Cluj -Napoca extensia Satu Mare
4. Consultanți: Conf. dr. ing. Vlad Mure șan
5. Data emiterii temei: 06.03.2018
6. Data predării: 09.07.2018
Semnătura autorului
Semn ătura c onduc ătorului științific
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
Declarație pe proprie răspundere privind
autenticitatea proiectului de diplomă
Subsemnatul Stăncălie Dan Emil , legitimat cu CI/BI seria SM nr 507234 , CNP
[anonimizat] , autorul lucrării:
Sistem Automatizat de Sortare cu Bandă Transportoare și Braț Robotic ,
elaborată în vederea susținerii examenului de finalizare a studiilor de licență la
Facultatea de Automatică și Calculatoare , specializarea Automatică și Informatică
Aplicată (la Satu Mare) , din cadrul Universității Tehnice din Cluj -Napoca, sesiunea Iulie
2018 a anului universitar 2017 -201 8, declar pe proprie răspundere, că această lucrare
este rezultatul propriei activități intelectuale, pe baza cercetărilor mele și pe baza
informațiilor obținute d in surse care au fost citate, în textul lucrării, și în bibliografie.
Declar, că această lucrare nu conține porțiuni plagiate, iar sursele bibliografice au
fost folosite cu respectarea legislației române și a convențiilor internaționale privind
drepturile de autor.
Declar, de asemenea, că această lucrare nu a mai fost prezentată în fața unei alte
comisii de examen de licență.
In cazul constatării ulterioare a unor declarații false, voi suporta sancțiunile
administrative, respectiv, anularea examenului de li cență .
Data Prenume , Nume
semnă tura
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
SINTEZA
proiectului de diplomă cu titlul:
Sistem Automatizat de Sortare cu Banda Transportoare si Bra ț
Robotic
Autor: Dan Emil Stăncălie
Conduc ător științific: Conf. dr. ing. Vlad Muresan
1. Cerințele temei: Sortarea obiectelor de pe banda transportoare.
2. Soluții alese: Sortarea obiectelor de pe banda transportoare cu ajutorul unui brat
robotic si senzorului de culoare.
3. Rezultate obținute: Implematarea unui sistem inteligent de automatizare a unui
braț robotic cu ajutorul unei benzi transportoare pentru sortare a unor obiecte de pe
bandă transportoare.
4. Testări și verificări: Testare a este realizat ă pentru a verifica dacă sistemul de
automatizare a l brațului robotic cu ajutorul unei benzi transportoare funtioneaz ă în
parametrii cât mai buni și pentru a detect a anumite erori sau defecte al e acestui s istem
automatizat. Validarea constand în construirea sistemului potrivit.
5. Contribuții personale: Reali zarea programului si implementarea lui pe
microcontrolerul Arduino Mega 2560.
6. Surse de documentare: Conform bibliografiei
Semnătura autorului
Semn ătura conduc ătorului științific
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
1
Cuprins
1. INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. 3
1.1 CONTEXT GENERAL ………………………….. ………………………….. ………………………….. …………………….. 3
1.2 OBIECT IVE ………………………….. ………………………….. ………………………….. ………………………….. …… 4
2. STUDIU BIBLIOGRAFIC ………………………….. ………………………….. ………………………….. ……………….. 5
3. ANALIZ Ă ȘI FUNDAMENTARE TEO RETICĂ ………………………….. ………………………….. ………………… 11
3.1 MICROCONTROLERUL ARDUINO MEGA2560 ………………………….. ………………………….. …………………. 11
3.2 SERVOMOTORUL ………………………….. ………………………….. ………………………….. ……………………… 15
3.3 SENZORUL DE CULOARE TCS34725 ………………………….. ………………………….. ………………………….. .. 17
3.4 SENSOR SHIELD ARDUINO ………………………….. ………………………….. ………………………….. …………… 18
3.5 MOTOR PAS CU PAS ………………………….. ………………………….. ………………………….. ………………….. 19
3.6 DRIVER PENTRU MOTOR P AS CU PAS ………………………….. ………………………….. ………………………….. .. 20
3.7 SENZORUL DE LUMINĂ ………………………….. ………………………….. ………………………….. ……………….. 21
3.8 SENSORUL DE DISTANȚĂ HC-SR04 ………………………….. ………………………….. ………………………….. … 23
3.9 BRAȚUL ROBOTIC ………………………….. ………………………….. ………………………….. ……………………… 24
4. PROIECTARE DE DETALI U ȘI IMPLEMENTARE ………………………….. ………………………….. …………… 25
5. VALIDARE, VERIFICARE ȘI TESTARE ………………………….. ………………………….. ………………………… 33
5.1 VALIDAREA ȘI VERIFICAREA ………………………….. ………………………….. ………………………….. ………….. 33
5.2 TESTAREA ………………………….. ………………………….. ………………………….. ………………………….. …. 33
6. MANUAL DE INSTALARE ȘI UTILIZARE ………………………….. ………………………….. …………………….. 35
7. CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. …. 41
7.1 REZULTATE OB ȚINUTE ………………………….. ………………………….. ………………………….. ………………… 41
7.2 CRITICĂ ………………………….. ………………………….. ………………………….. ………………………….. ……. 41
8. BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. …………………………. 43
9. ANEXE ………………………….. ………………………….. ………………………….. ………………………….. ………. 47
Introducere
2
Introducere
3 1. Introducere
1.1 Context general
În această lucrare de licență am folosit o sistematizare a unui robot în industrie de
sortare pentru a oferi o incredibilă productivitate și flexibiliate în același timp. Roboții
industriali fac parte din tehnologia nouă în toată lumea, ei fiind tot mai mult utilizați în
industriile de pe tot globul și se estimează la nivel global că 1,3 milioane de roboți
industriali vor ajunge în fabrici până în 2018.
Folosirea brațului robotic în industrie este benefic deoarece da dovadă de o
capacitate de producție constanta fără a avea pauze, somn sau vacanțe și poate în cele din
urmă să producă mai mult decât un om într-un timp mai scurt. Calitatea și precizia de
sortare a obiectelor se va face cu mai multă precizie și repetabilitate ridicată de fiecare
data când este utilizat brațul robotic.
Roboții industriali sunt exemple bune ale sistemelor flexibile de fabricaț ie.
Utilizarea roboților în platformele actuale de fabricație este o decizie de îmbunătățire a
flexibilit ății și pentru a spori agilitatea procesului de fabricație. În cazul în care procesele
de fabricare sunt complexe, cu un timp redus de cicluri și au o mulțime de parametri i
datorită diversității produselor, apoi utilizarea roboților este decizia corectă.
Majoritatea oamenilor știu că roboții sunt programați să efectueze acțiuni specifice
în mod repetitiv, fără variații și cu un grad înalt de precizie. Ce ea ce nu realizează adesea
este faptul că, cu inovații în tehnologie, e i pot f i de asemenea programa ți pentru cerințe
mai flexibile, cum ar fi orientarea obiectului, aplicațiile mul ti-tasking și complexe.
Principalele componente ale acestui proiect sunt:
• Utilizarea placii arduino mega 2560 pentru func ționarea in totalitate a sistemului.
• Brațul robotic care va ajuta la ridicarea obiectelor de pe banda transportoare .
• Folosirea bandei transportoare cu ajutorul unu i motor pas cu pas pentru
angrenarea axului.
• Senzorul de distan ța pentru detectarea pozi ției obiectului.
• Fotorezisten ța si dioda laser pentru oprirea bandei transportoare cand obiectul
ajun ge in raza de prindere a bra țului robotic.
• Senzorul de culoare pentru scanarea culorii obiectului prins de clestele bra țului
robotic .
• Driverul pentru motoare pas cu pas pentru controlul motorului bandei
transportoare.
• Arduino shield pentru conectarea celor 6 servomotoare a le brațului robotic.
Introducere
4 1.2 Obiective
Obiectivul principal al acestei lucrări este de a automa tiza un sistem de sortare a l
produselor cu ajutorul unui braț robotic și a unei benzi transportoare, pentru a mări
eficiența lucrări lor în industriile din toată lumea.
Pentru că această automatizare a unui sistem sistem de sortare a l produselor cu
ajutor ul unui braț robotic și a unei benzi transportoare să aibă o fiabiliate cât mai bună
am folosit dispo zitive cu un preț cât mai bun și cu o calitate ridicat ă pentru valoarea
prețului.
Obiectivele secundare a le acestei lucrări sunt de a action a o banda tra nsportoare cu
ajutorul unui motor pas cu pas și în același timp de a opri band a în raz a de ridicare a
brațului robotic cu ajutorul unui sensor de lumina și a uni laser. Un alt obiectiv secundar
este de a folosi un sensor de culoare RGB pentru detectarea cu lorii obiectelor de pe band a
transportoare și de a le sorta în recipiente.
Sistem ul de sortare a produselor cu ajutorul unui braț robotic și a unei benzi
transportoare va function a cu ajutorul unui microcontroller Arduino care repezint ă baza
acest ui sistem. Acesta prime ște de la fiecare sen zor în parte impulsuri și distribuie
semnalele către servomotoarele brațului robotic.
Studiu bibliografic
5 2. Studiu bibliografic
Roboții industriali sunt considerați c a o bază a producției competitive, care are c a
scop combinarea productivităt âții ridicate, a calită ții și a adaptabilită ții la costuri minime.
În 2007 au fost raportate mai mult de un milion de instalații de robo ți industrial i, industria
automobilelor principala avand mai mult de 60% din cota de piata . Cu t oate acestea,
industriile cu creștere inaltă (în domeniul științelor vieții, electronicii, celulelor solare,
alimentelor și logisticii) și a proceselor de producție emergente (lipire, acoperire, procese
bazate pe laser ), se bazeaza din ce în ce mai mult pe tehnologia avansată a robo ților. [1]
Domeniul de referință al acestui proiect îl reprezintă Automatizarea Industrială.
Acest domeniu se referă la utilizarea sistemelor de control, cum ar fi computerele sau
roboții, dar și a tehnologiil or informaționale pe ntru manipularea diferitelor procese și
mașini într -o industrie , care să inlocuiască o fiin ță umană.
Un principiu de bază al automatizărilor îl reprezintă creșterea calității și a
flexibilității în procesul de fabricație.
Anterior, scopul automatizării a fost de a crește productivitatea, deoarece sistemele
automate pot funcționa 24 de ore pe zi, și de a reduce costurile asociate operatorilor
umani. Cu toate acestea, astăzi, accentul automatizării să schimbat spre creșterea calită ții
și a flexibilitătii într-un proces de fabricație. [2]
Implementarea automatizărilor industriale prezintă următoarele avantaje:
• Costuri de operare mai mici;
Automatizarea industrială elimină costurile de îngrijire a sănătătii și concediul
plătit asociat unui operator uman. În plus, automatizarea industrială nu necesită cheltuieli
pentru beneficiile angajaților, cum ar fi bonusurile, acoperirea pensiilor etc. Mai presus
de toate, deși este asociată cu un cost inițial ridicat, salvează salariile lunare ale
lucrătorilor, ceea ce duce la economii substanțiale de cost pentru companie. Costul de
întreținere asociat mașinilor utilizate pentru automatizarea industrială este mai mic,
deoarece se vor strică prea ușor. În caz de urgență, numai inginerii de automatizări și de
între ținere sunt nevoiți să o repare.
• Productivitate ridicată;
Deși multe companii angajează sute de muncitori de producție pană la trei
schimburi pentru a conduce instalația pentru un număr maxim de ore, această trebuie să
fie inchisă pentru întreținer e și sărbători. Automatizarea acestora îndeplinește scopul
general, permițând companiei să conducă o fabrică de producție timp de 24 de ore pe zi,
7 zile într -o săptămană și 365 de zile pe an. Această duce la o imbunătătire semnificativă
a productivitătii companiei. [3]
• Calitate superioară;
Automatizarea atenuează eroarea asociată cu o fiintă umană. În plus, spre deosebire
de ființele umane, roboții nu implică nicio oboseală, ceea ce duce la produse cu o calitate
uniformă, fabricate în momente diferi te.
Studiu bibliografic
6 • Flexibilitate ridicată;
Adăugarea unei noi sarcini în linia de asamblare necesită programarea roboților cu
un operator uman, cu toate acestea, roboții pot fi programați să facă orice sarcină. Acest
lucru face că procesul de fabricație să fie ma i flexibil.
• Informație de inaltă precizie;
Adăugand colectarea automată de date, vă puteți permite să colectați informații
cheie despre producție, să imbunătătiti precizia datelor și să reduceți costurile de
colectare a datelor. Acest lucru vă ofer ă posibilitatea de a luă deciziile corecte în ceea ce
privește reducerea deșeurilor și imbunătătirea proceselor.
• Sigurantă inaltă;
Automatizarea industrială poate face că linia de producție aș fie sigură pentru
angajați prin implementarea roboților pentru a face fată condițiilor periculoase.
Pe de altă parte, automatizările industriale prezintă și un dezavantaj, acesta fiind
costul inițial ridicat. Investiția initială asociată cu trecerea de la o linie de producție umană
la o linie automată de pro ducție este foarte mare. De asemenea, costurile substanțiale sunt
implicate în instruirea angajaților pentru a face fată echipamentelor noi și sofisticate. [4]
Folosind drept referință "Epocă de Aur" în productivitate, prima revoluție
industrială a început în Marea Britanie prin mecanizarea industriei textile. Susținută de
noile tehnologii, cum ar fi motorul cu abur, pentru prima data, au apărut morile de bumba c
că locuri unde producătorii puțeau folosi mașini automatizate. Din acest moment,
progresele înregistrate în proiectarea mașinilor motorizate, cuplată cu noi metode de
producție a metalelor a devenit un pilon esențial pentru dezvoltarea economică,
deschiz ând calea pentru comerț.
Standarde mai ridicate de trăi au fost atinse odată cu folosirea noilor metode de
automatizare în sectoarele importante ale economiei, cum ar fii agricultura și mineritul,
ajutând la reducerea costurilor produselor alimentare.
În secolul 20, a două revoluție industrială a dat startul unei creșteri masive în
producție. Inspirate de fabricile de ambalare a cărnii din Chicago și Cincinnati, noile
tehnologii curm ar fi linia mobilă de asamblare de la Ford și utilizarea energiei ele ctrice,
a cauzat creșterea masivă a economiei, de aici stabilindu -se procese de producție mai
eficiente. Principalii factori de succes au fost și standardizarea proceselor de frabricatie
care au îmbunătățit calitatea produselor produse pentru consumatori. [5]
Studiu bibliografic
7
Figur a 1 A dou a Revoluție Industrială [8]
De-a lungul istoriei, inovația tehnologică în automatizare a susținut orice revoluție
industrială. Continuând acest trend, progresul în disciplinele științifice cum ar fi
mecatronică, tehnologiile de calcul și de comunicare, au dat naștere domeniului de
robotizări și sisteme automate.
Sistemele robotizate joacă un rol important într -o gamă largă a activitătilor
economice din sectorul auto, aerospațial și industria electronică pentru produse
alimentare, reciclare, logistică, și sectoarele biotehnologiei.
Firmele de succes care vor exploata la maxim domeniul de automatizări vor avea
parte de multe beneficii, cum ar fi:
⦁ Productivitate mărită și eficientă din punct de vedere al resurselor utilizate dar
și mai receptive cu clienții;
⦁ Sprijinire a personalizării în masă a produselor care se concentrează la fabricarea
de inaltă calitate;
⦁ Acces mult mai ușur la tehnologiile de robotizare cu o autonomie mărită;
⦁ Exploatarea cadrelor digitale pentru a oferi relații mai strânse între produ cători,
produse, lanțuri de valori și consumatori; [6]
Pe măsură ce tehnologiile robotice devin mai intel igente, mai rapide și mai ieftine,
ele vor fi folosite tot mai des. Dând la o parte metodele tradiționale, repetitive și
periculoase cum ar fi sudatul și manipularea precisă a materiilor, utilizarea roboților va
pune stăpânire pe industrie.
Un factor principal al automatizării în industrie îl reprezintă cel de nevoie a
manipulării materialelor.
Mutarea materialului în jurul unei fabrici nu este o s lujbă pentru un om. Este
repetitiv, obositor și posibil periculos. De aceea este o treabă bună pentru un robot. În
calitate de manipulatori programabili, roboții sunt o unealtă ideală pentru deplasarea
oricărui lucru de la punctul A la punctul B, iar și ia r. Fie că incărcati și descărcati un centru
de cotitură, transferând ștanțări între prese sau luând bomboane de la un transportor și
plasându -l într -o cutie, un robot de manipulare a materialelor este o nevoie principală.
Studiu bibliografic
8 Roboții de manipulare a material elor reduc costurile pentru că fac un fel de muncă
dificilă pentru care oamenii nu sunt potriviți. Ei vor ridica incărcăturile masive -cel mai
mare robot poate să ridice mai mult de 1300 kg la un moment dat și să plaseze încărcătură
pe o arie data cu o eroa re de un centimetru toată ziua și toată noaptea. Ei se folosesc în
locuri fierbinți, zgomotoase și periculoase, cum ar fi turnătorii, forjările și fabricile de
benzi, fără a luă niciodată o pauză sau concediu. [7]
Figur a 2 Brat Robotic industrial [9]
Majoriatatea materialelor manipulate de roboții automatizați se transporta cu
ajutorul sistemelor transportoare. De la apariția liniei de asamblare, sistemele
transportoare au reprezentat suportul fabricilor și depozitelor pentru transportul
materialelor d e-a lungul traseului de producție sau a instalațiilor de depozitare. Sistemele
de transport pot fi foarte elementare, cum ar fi benzile transportoare în formă de pin. Cu
toate acestea, sistemele de transport pot fi de asemenea mecanizate și automatizate în
întregime pentru transportul materialelor mai grele și pentru interacțiunea cu liniile
automate de producție. Există mai multe tipuri de sisteme de transportoare disponibile
pentru o gamă largă de aplicații. [10]
Transportoarele sunt folosite deoarece su nt destul de ușor de proiectat și menținut,
iar varietatea sistemelor de transportoare disponibile le permite să indeplinească diferite
roluri. În instalațiile de producție cu linii de asamblare, un transportor standard cu bandă
poate fi adesea o metodă si mplă de transport a mărfurilor de -a lungul liniei de producție,
o soluție mult mai eficientă decât transportarea manuală a echipamentului sau a
materialelor la fiecare stație de producție una câte una. Sistemele transportoare sunt
chiar selectate deasupra altor metode mecanizate sau automate de transport , cum ar fi
stivuitoarele, deoarece sunt mult mai sigure și muncitorii nu au nevoie de instruire pentru
a oper a sistemele. Pe langă aceste avantaje de economisire a costurilor și a forței de
muncă, transpor toarele oferă, de asemenea, flexibilitate personalizabilă, ceea ce duce la
utilizarea lor în multe situații. [11]
Studiu bibliografic
9 Numeroase sisteme de transportoare pot fi utilizate în aplicații standard. Sistemele
automate de transport automate sunt enumerate și descris e mai jos: [12]
• Transportoare cu Bandă: Constând dintr -o centură cu buclă cu secțiuni
metalice sau cauciucate, transportoarele cu bandă sunt unele dintre cele mai comune
tipuri de sisteme de transportoare. Acestea se găsesc în aplicații cum ar fi ca rusele pentru
bagajele aeroportului.
• Transportoare cu Role Metalice: Constă într -o bandă formată din role
metalice care transportă materiale prin rotire. Pe măsură ce șurubul se întoarce,
materialul urmează direcția de rotație spre zonă de transport. Un tip foarte scurt de
transportor cu șurub a fost șurubul Archimedes, care a fost utilizat pentru a transporta
apă pentru nevoile agricole.
• Transportoare Vibratoare: Concepute pentru a transporta obiecte volatile
sau materiale cu scurgere, transp ortoarele vibratoare sunt înclinate la un unghi de 45 de
grade. Această înclinare permite transportorului să sorteze materialele în timp ce sunt
transportate.
• Transportoare Pneumatice: Un transportor pneumatic utilizează aer
comprimat sau tuburi vi d pentru a împinge obiectele printr -un sistem de tuburi sau țevi.
Tuburile pneumatice au fost utilizate pentru a trimite mesaje în birouri înainte de apariția
e-mailului.
Figur a 3 Bandă Transportoare din Role Metal ice [13]
Studiu bibliografic
10
Analiză și fundamentare teoretică
11 3. Analiz ă și fundamentare teoretic ă
3.1 Microcontrolerul Arduino Mega2560
Arduino Mega 2560 este un microcontroler bazat pe ATmega2560. Dispune de 54 de
intrări / ieșiri digitale (dintre care 15 pot fi utilizate ca ieșiri PWM), 16 intrări analogice,
4 UART (porturi seriale hardware), un oscilator de cristal de 16 MHz, conexiune USB,
antet ICSP, alimentare, și buton de resetare. Conține tot ce este necesar pentru a susține
microcontrolerul , pur și simplu se conectează la un computer cu un c ablu USB sau
alimenta t cu un adaptor AC -DC sau cu o baterie pentru a începe. [14]
Tabel 1 Caracteristicile plăcii arduino mega 2560 [15]
Microcontroler ATmega2560
Tensiune de operare 5V
Tensiune de intrare (recomandată) 7-12V
Tensiunea de intrare (limita) 6-20V
Pini digitali I / O 54(din care 15 asigură ieșirea PWM)
Pini de intrare analogice 16
DC curent pe pin I / O 20 mA
Curent continuu pentru pinul de 3.3V 50 mA
Memorie flash 256 KB din care 8 KB utilizate de
bootloader
Analiză și fundamentare teoretică
12 SRAM 8 KB
EEPROM 4 KB
Viteza ceasului 16 MHz
LED_BUILTIN 13
Lungime 101,52 mm
Lățime 53,3 mm
Greutate 37g
Arduino este cel mai important ecosistem hardware și software open source din lume.
Compania oferă o gamă largă de instrumente software, platforme hardware și
documentație care permit aproape oricui să fie creativi cu tehnologia.
Arduino este un instrument popular pentru dezvoltarea produselor IoT , precum și
unul dintre cele mai de succes instrumente pentru educația STEM / STEAM. Sute de m ii
de designeri, ingineri, studenți, dezvoltatori și producători din întreaga lume folosesc
Arduino pentru a inova în muzică, jocuri, jucării, case inteligente, agricultură, vehicule
autonome și multe altele. [16]
Primul board Arduino a fost introdus în 200 5 pentru a ajuta designerii studenților –
care nu au avut experiență anterioară în domeniul programelor de electronică sau
microcontroler – pentru a crea prototipuri de lucru care să conecteze lumea fizică cu
lumea digitală. De atunci, a devenit cel mai po pular instrument de prototipare a
electronicii, folosit de ingineri și chiar de corporații mari.
Arduino este primul proiect pe scară largă open source hardware și a fost creat
pentru a construi o comunitate care ar putea ajuta la răspândirea utilizării in strumentului
și să beneficieze de contribuțiile sutelor de persoane care au ajutat la depanarea codului,
să scrie exemple, să creeze tutoriale, forumurile și construirea a mii de grupuri din
întreaga lume. Suntem recunoscători veșnic pentru faptul că sunte m sprijiniți de o astfel
de comunitate uimitoare. [17]
De la înființarea proiectului Arduino, au fost introduse numeroase noi biblioteci de
dezvoltare și biblioteci de software, cu scopul extinder ii gamei de posibilități disponibile
Analiză și fundamentare teoretică
13 pentru comunitate. Astăz i, mai mult de un deceniu mai târziu, Arduino continuă să
furnizeze hardware și software open source pentru a aduce la viață noi idei.
Deschiderea și ușurința utilizării proiectului a condus la adoptarea în masă a
proiectelor electronice bazate pe micro -controler și a fost un catalizator în crearea
Mișcării Maker. Arduino a devenit alegerea numărul unu pentru producătorii de produse
electronice, în special pentru dezvoltarea de soluții pentru piața IoT , care a fost prevăzută
să devină o piață de 6 trilioan e de dolari până în 2021.
Mega 2560 poate fi alimentat prin conexiunea USB sau cu o sursă externă de
alimentare. Sursa de alimentare este selectată automat. Alimentarea externă (non -USB)
poate proveni de la un adaptor AC -DC sau un acumulator. Adaptorul poa te fi conectat prin
conectarea unui conector central de 2,1 mm în mufa de alimentare a plăcii. Conductoarele
de la o baterie pot fi introduse în anteturile GND și Vin ale conectorului POWER. Placa
poate funcționa pe o sursă externă de 6 până la 20 de volți . Dacă este furnizat cu mai puțin
de 7V, totuși, pinul 5V poate furniza mai puțin de 5 volți, iar placa poate deveni instabilă.
Dacă se utilizează mai mult de 12V, regulatorul de tensiune se poate supraîncălzi și poate
deteriora placa. Intervalul recomanda t este de la 7 la 12 volți. Pinii de alimentare sunt
după cum urmează: [18]
– Vin. Tensiunea de intrare pe placă când utilizează o sursă de alimentare externă
(spre deosebire de 5 volți de la conexiunea USB sau de la altă sursă de alimentare reglată).
Pute ți furniza tensiune prin acest pin sau, dacă alimentați tensiunea prin mufa de
alimentare, accesați -l prin acest pin.
– 5V. Acest pin scoate un regulat de 5V de la regulatorul de pe placa. Placa poate fi
alimentată de la mufa de alimentare DC (7 -12V), cone ctorul USB (5V) sau pinul VIN al
plăcii (7 -12V). Tensiunea de alimentare prin pinii de 5 V sau 3,3 V ocolește regulatorul și
vă poate deteriora bordul. Nu ne sfătuim.
– 3V3. O alimentare de 3,3 volți generată de regulatorul de la bord. Rezistența
curentulu i maxim este de 50 mA.
– GND. Împletite.
– IOREF. Acest pin pe placă furnizează referința de tensiune cu care funcționează
microcontrolerul. Un scut configurat corespunzător poate citi tensiunea de pin IOREF și
poate selecta sursa de alimentare adecvată sa u poate activa traducătorii de tensiune pe
ieșiri pentru a lucra cu 5V sau 3,3V.
Analiză și fundamentare teoretică
14
Figur a 4 Microcontroller Arduino Mega256 [19]
Fiecare dintre cele 54 de caractere digitale de pe Mega poate fi folosit ca intrare sau
ieșire, utilizând funcțiile pinMode (), digitalWrite () și digitalRead (). Acestea funcționează
la 5 volți. Fiecare pin poate furniza sau recepționa 20 mA ca condiție de funcționare
recomandată și are o rezistență internă de tracțiune (deconectată în mod implicit) de 20 –
50 k ohm. Un maxim de 40 mA este valoarea care nu trebuie depășită pentru a evita
deteriorarea permanentă a microcontrolerului. În plus, u nii pini au funcții specializate:
[19]
– Serial: 0 (RX) și 1 (TX); Serial 1: 19 (RX) și 18 (TX); Serial 2: 17 ( RX) și 16 (TX);
Serial 3: 15 (RX) și 14 (TX). Folosit pentru a recepționa (RX) și a transmite (TX) date
seriale TTL. Pini 0 și 1 sunt, de asemenea, conectați la pinii corespunzători ai cipului
ATmega16U2 USB -to-TTL Serial.
– Interferențe externe: 2 (întrer upere 0), 3 (întrerupere 1), 18 (întrerupere 5), 19
(întrerupere 4), 20 (întrerupere 3) și 21 (întrerupere 2). Acești pini pot fi configurați
pentru a declanșa o întrerupere la un nivel scăzut, o margine în creștere sau în scădere
sau o schimbare a nivelul ui. Consultați funcția attachInterrupt () pentru detalii.
– PWM: 2 la 13 și 44 la 46. Asigurați ieșirea PWM pe 8 biți cu funcția analogWrite ().
– SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Acești pini acceptă comunicarea SPI
utilizând biblioteca SPI . Pinii SPI sunt diferiți și pe antetul ICSP, care este fizic compatibil
cu arduino / genuino Uno și vechile plăci Duemilanove și Diecimila Arduino.
– LED: 13. Există un LED încorporat conectat la pinul digital 13. Când pinul este
HIGH, LED -ul este pornit , când pinul este LOW, este oprit.
– TWI: 20 (SDA) și 21 (SCL). Suportați comunicarea TWI folosind biblioteca Wire .
Rețineți că aceste știfturi nu se află în aceeași locație ca și pinii TWI de pe panourile vechi
Duemilanove sau Diecimila Arduino.
Mega 25 60 este conceput pentru a fi compatibil cu majoritatea scuturilor proiectate
pentru Uno și pentru tablourile Diecimila sau Duemilanove Arduino mai vechi. Pini digital
0 la 13 (și pinii AREF și GND adiacenți), intrările analogice 0 la 5, antetul de alimenta re și
antetul ICSP sunt toate în locații echivalente. Mai mult, principala UART (port serial) este
localizată pe aceleași pini (0 și 1), la fel ca și întreruperile externe 0 și 1 (pini 2 și
Analiză și f undamentare teoretică
15 respective 3). SPI este disponibil prin antetul ICSP pe ambele plă ci Mega 2560 și
Duemilanove / Diecimila. Rețineți că I2C nu se află pe aceleași plăcuțe de pe panourile
Mega 2560 (20 și 21) ca plăci Duemilanove / Diecimila (intrări analogice 4 și 5). [20]
3.2 Servomotor ul
Un servomotor este un actuator rotativ sau un dispozitiv de acționare liniar care
permite un control precis al poziției, vitezei și accelerației unghiulare sau lineare. Se
compune dintr -un motor adecvat cuplat la un senzor pentru feedback -ul poziției. De
asemenea, este nevoie de un controler relativ s ofisticat, adesea un modul special conceput
pentru utilizarea cu servomotoare. Servomotoarele nu sunt o clasă specifică de motor,
deși servomotorul este adesea folosit pentru a se referi la un motor adecvat pentru a fi
utilizat într -un sistem de control cu buclă închisă . Servomotoarele sunt utilizate în
aplicații precum robotică , mașini CNC sau fabricarea automată. [21]
Figur a 5 Sertvomotor MG996R [22]
Un servomotor este un servomecanism cu buclă închisă care utilizează feedbac k-ul
poziției pentru a controla mișcarea și poziția finală. Intrarea la controlul său este un
semnal (fie analogic sau digital) reprezentând poziția comandată pentru arborele de
ieșire.
Motorul este asociat cu un anumit tip de codificator pentru a oferi fe edback pozitiv
și de viteză. În cel mai simplu caz, se măsoară numai poziția. Poziția măsurată a ieșirii este
comparată cu poziția de comandă, intrarea externă către controler. Dacă poziția de ieșire
diferă de cea necesară, se generează un semnal de eroare care face ca motorul să se
rotească în ambele direcții, după cum este necesar pentru a aduce arborele de ieșire în
poziția corespunzătoare. Pe măsură ce se apropie pozițiile, semnalul de eroare se reduce
la zero și motorul se oprește. [23]
Servomotoarele cele mai simple utilizează un senzor de poziție numai printr -un
potențiometru și un control de bang -bang al motorului; motorul se rotește întotdeauna la
Analiză și fundamentare teoretică
16 viteză maximă (sau este oprit). Acest tip de servomotor nu este utilizat pe scară largă în
controlul mi șcării industriale , ci formează baza servoarelor simple și ieftine utilizate
pentru modelele controlate cu radio .
Servomotoarele mai sofisticate utilizează encodere optice rotative pentru a măsura
viteza arborelui de ieșire și un dispozitiv de turație va riabilă pentru a controla viteza
motorului. Ambele îmbunătățiri, de obicei în combinație cu un algoritm de control PID ,
permit servomotorului să fie adus la poziția comandată mai repede și mai precis, cu o
depășire mai mică .
Tabe l 2 Caracteristicile servomotorului MG996R [24]
Servomotor MG996R
Tensiune de operare 4,8 la 6V (recomandat 5V)
Viteza 0,19sec/60degree (4,8v);
0,15sec/60degree (6,0v);
Cuplu 9,4kg/cm (4,8v);
11kg/cm (6,0v);
Unghi de operare 180 °
Protocol de control PWM
Lungime cablu 350 mm
Lungime 40,7
Latime 19,7
Inaltime 42,9 mm
Analiză și fundamentare teoretică
17 Greutate 55g
3.3 Senzorul de culoare TCS34725
Dispozitivul TCS3472 oferă o revenire digitală a valorilor roșu, verde, albastru
(RGB) și lumină clară. Un filtru de blocare IR, integrat pe cip și localizat la fotodiodele de
detectare a culorii, minimizează componenta spectrală IR a luminii de intrare și permite
măsurătorile de culoare să fie făcute cu exactitate. Sensibilitatea ridicată, gama dinamică
largă și filtrul de blocare IR fac TCS3472 o soluție ideală de senzor de culoare pentru
utilizare în condiții de iluminare diferite și prin materiale atenuante. Aceste date sunt
transferate prin intermediul unui I2C către gazdă. [25]
Figur a 6 Senzorul de culoare TCS34725 [26]
Convertorul light -to-digital TCS3472 conține o matrice fotodiodă 3 × 4, patru
convertoare analog -digital (ADC) care integrează curentul de fotodiodă, registrele de
date, o mașină de stare și o interfață I2C. Matricile 3 × 4 sunt comp use din fotodiode
filtrate în roșu, filtrată în verde, albastru -filtrată și clară (nefiltrate). În plus, fotodiodele
sunt acoperite cu un filtru IR -blocant. Cele patru ADC integrate simultan convertiți
curenții fotodiodei amplificate la o valoare digitală pe 16 biți. La finalizarea unui ciclu de
conversie, rezultatele sunt transferate în registrele de date, care sunt dublu -tamponate
pentru a asigura integritatea datelor. Tot timpul intern, precum și starea de așteptare cu
putere redusă sunt controlate de ma șina de stat.
Analiză și fundamentare teoretică
18 Comunicarea datelor TCS3472 se realizează printr -o magistrală rapidă, de până la
400 kHz, cu două fire, I2C. Busul standard I2C din industrie facilitează o conexiune simplă
și directă la microcontrolere și procesoare încorporate. În plus față de magistrala I2C,
TCS3472 oferă o ieșire separată a semnalului de întrerupere. Atunci când sunt activate
întreruperile și pragurile definite de utilizator sunt depășite, întreruperea activă -joasă
este afirmată și rămâne afirmată până când aceasta este el iminată de către controler.
Această caracteristică de întrerupere simplifică și îmbunătățește eficiența software -ului
de sistem eliminând necesitatea de a sondajului TCS3472. Utilizatorul poate defini
pragurile de întrerupere superioară și inferioară și po ate aplica un filtru de întrerupere a
persistenței. Filtrul de persistență a întreruperii permite utilizatorului să definească
numărul de evenimente consecutive de depășire a pragului necesare înainte de a genera
o întrerupere. Ieșirea de întrerupere este deschisă, astfel încât poate fi conectată cu alte
dispozitive. [27]
3.4 Sensor Shield Arduino
Arduino Sensor Shield V5.0 este o modalitate ușoară de a construi proiecte cu
Arduino care leagă diverse componente cum ar fi Servomotoare și Senzori. Această
versi une V5.0 acceptă interfața I2c, servomotor, module Bluetooth, card SD, module
APC220, LCD serial și paralel și altele. Acest shield are, de asemenea, un post special
pentru alimentare externă, sporind numărul de echipamente conectate și asigurând o
calitat e mai bună . [28]
Figur a 7 Sensor Shield Arduino V5.0 [29]
Analiză și fundamentare teoretică
19 3.5 Motor pas cu pas
Motoarele Pas cu Pas sunt motoare de curent continuu care se mișcă în trepte
discrete. Acestea au bobine multiple care sunt organizate în grupuri n umite "faze". Prin
acționarea fiecărei faze în succesiune, motorul se va roti, câte un pas la un moment dat.
Figur a 8 Motor pas cu pas [30]
Cu o pasare controlată de calculator, puteți obține o poziționare foarte precisă și /
sau un control al vitezei. Din acest motiv, motoarele pas cu pas sunt motorul preferat
pentru multe aplicații de control al mișcării de precizie.
Deoarece pasii se deplasează în pași precis repetabili, aceștia excelează în aplicații
care necesită o pozițio nare precisă, cum ar fi imprimante 3D, CNC, platforme de cameră și
plottere X și Y. Unele unități de disc utilizează, de asemenea, motoare cu pas cu pas pentru
a poziționa capul de citire / scriere. Creșterea precisă a mișcărilor permite, de asemenea,
un c ontrol excelent al vitezei de rotație pentru automatizarea proceselor și pentru
robotică. Motoarele DC normale nu au cuplu foarte mare la viteze reduse. Un motor Pas
cu Pas are un cuplu maxim la turații reduse, deci sunt o alegere bună pentru aplicații car e
necesită viteză redusă, cu mare precizie. [31]
Spre deosebire de motoarele de curent continuu, consumul de curent al motorului
pas cu pas este independent de sarcină. Aceste motoare atrag consuma mai mult curen t
atunci când nu muncesc deloc. Din acest mo tiv, ele tind să se încălzească. În general,
motoarele pas cu pas au un cuplu mai mic la viteze mari decât la viteze reduse. Unele
motoare sunt optimizate pentru o performanță mai bună la viteză mare, dar trebuie să fie
asociate cu un driver adecvat pentru a obține acea performanță. Există o mare varietate
de tipuri de stepper, dintre care unele necesită mânuitori foarte specializați. Pentru
scopurile noastre, ne vom concentra pe motoare pas cu pas care pot fi conduse cu drivere
Analiză și fundamentare teoretică
20 disponibile în mod obișnuit. Acestea sunt: Magnet permanent sau pasageri hibrizi, fie
bipolari cu 2 faze, fie 4 -faze unipolare.
Acest motor pas cu pas Nema 17 are un cuplu mare cu un unghi de trecere de 1,8 °
(200 de pași / rotație). Fiecare fază atrage 2A, permițând un cuplu de pr indere de 45Ncm
(63.7oz.in). [32]
Tabel 3 Motor pas cu pas specifica ții electrice [33]
Codul producătorului 17HS16 -2004S
Tipul motorului Bipolar Stepper
Unghi înclinat 1.8 °
Cuplu 45Ncm (63.7oz.in)
Curent 2A
Rezistența la faze 1.1ohms
Tensiune recomandată 12-24V
Inductanță 2.6mH ± 20% (1kHz)
3.6 Driver pentru motor pas cu pas
Acest produs este un board breakout pentru driverul de microsteptare A4988 DMOS
Allegro, cu Translator și protecție la supracurent . Acest driver de motor pas cu pas vă
permite să utilizați motoare pas cu pas bipolare în moduri complete, jumătate, trimestru,
al optulea și al șaselea pas, cu o capacitate de ieșire de până la 35 V și 2 A. [34]
Traducătorul este cheia implementării ușoare a modelului A4988. Doar
introducerea unui impuls pe intrarea STEP conduce motorul cu un microstep. Nu există
tabele de secvențe de faze, linii de control de înaltă frecvență sau interfețe complexe
Analiză și fundamentare teoretică
21 pentru programare. Interfața A4988 este potrivită pentru a plicații în care un
microprocesor complex nu este disponibil sau este supraîncărcat.
Caracteristici: [35]
-Simpl u pas și direcție de control a interf eței;
-Cinci rezoluții de pas diferite: pas cu pas în întregime, jumătate de pas, trimestru,
pas opt și pa sul șaisprezece ;
-Controlul reglabil al curentului vă permite să setați puterea maximă de ieșire cu un
potențiometru, care vă permite să utilizați tensiuni peste tensiunea nominală a motorului
pas cu pas pentru a atinge rate de pas mai mari ;
-Control intel igent de tăiere care selectează automat modul corect de dezintegrare
curent (dezintegrare rapidă sau dezintegrare lentă) ;
-Supraîncălzirea termică la temperaturi înalte, blocarea sub tensiune și protecția
curentului încrucișat ;
-Protecție la scurtcircuit l a sol și scurtcircuit ;
Figur a 9 Driver pentru motor pas cu pas [36]
3.7 Senzorul de lumin ă
Senzorul de lumină, așa numitul fotorezistor, reprezintă o parte importantă a
acestui sistem de automatizare a jaluzelei. Cu ajutorul acestui senzor, se percep datele de
intensitate a luminii exterioare, de care ne v -om folosi pentru a regla unghiurile de
mișcare ale jaluzelei. Astfel, intr -o zi foarte luminoasă, senzorul va citi o intensitate mare
a luminii, dând mai apoi semnal microcontrolle rului care v -a inchide jaluzeaua în unghiul
necesar inainte programat.
În princiu, senzorul de lumină este un dispozitiv sensibil la lumină folosit pentru a
indica prezența ori absența luminii, sau pentru a măsura intensitatea luminii. Într -un
mediu întune cos, rezistența lor e foarte mare, câteodată până la 1MI©, dar când acesta
este expus la lumina, rezistența scade dramatical până la doar câțiva ohmi.
Fotorezostoarele au o sensibilitate care variază în funcție de lungimea undei luminii
Analiză și fundamentare teoretică
22 aplicate, acestea f iind dispozitive neliniare. Sunt folosite în multe aplicații dar uneori fiind
depășite de alte dispozitive cum ar fi: fotodiodele și fototranzistorii. Unele țări au respins
fotorezistoarele din plumb sau cadmiu din probleme de siguranță ale mediului. [37]
Figur a 10 Fororezisten ță [38]
După materialele din care sunt făcute, fotorezistoarele sunt împărțite în două
categorii: intrinseci și extrinseci. Fotorezistoarele intrinseci folosesc materiale cum ar fi
siliciul și germaniul. Fo tonii care cad pe dispozitiv excită electronii din banda de valența
în banda de conducție, din acest proces rezultând mai mulți electroni în material, care
poartă curentul, provocând o rezistentă scăzută. Fotorezistoarele extrinseci sunt făcute
din materia le cu impurități, altfel numite dopanți. Dopanții creează o bandă de energie
deasupra bandei de valența existentă, populată cu electroni. Acești electroni au nevoie de
puțină energie pentru a furniza tranziția către bandă de conducție, datorită decalajului de
energie mic. Totuși, ambele tipuri de fotorezistoare vor prezența o scădere de rezistentă
când sunt iluminate. Cu cât este mai mare intensitatea luminii, cu atât căderea de
rezistentă este mai mare. Acestea fiind spuse, rezistentă fotorezistoarelor est e o funcție
inversă, neliniară a intensității luminii.
Rezistoarele dependente de lumină au o sensibilitate mai mică față de fotodiode și
fototranzistori. Fotodiodele și fototranzistorii sunt niște dispozitive semiconductoare,
care folosesc lumina pentru a controla fluxul de electroni și gropile din junctiunile PN.
[39]
O altă proprietate a unui fotorezistor o reprezintă prezența unei latente de timp
între schimbările de iluminare și schimbările de rezistență. Acest fenomen este numit ca
și rată de recupera re a rezistenței. De obicei, durează aproximativ 10 ms pentru ca
rezistența să scadă la zero când lumina este aplicată după un întuneric total, în timp ce
poate dură până la 1 secundă ca rezistența să crească la normal după ce lumina a fost
eliminată. Din această cauză, fotorezistoarele nu se pot folosi atunci când fluctuațiile de
lumină sunt rapide.
Anal iză și fundamentare teoretică
23
3.8 Sensorul de distan ță HC-SR04
Senzorul HC -SR04 cu ultrasunete (US) este un modul cu 4 pini, ale cărui nume de pin
sunt Vcc, Trigger, Echo și respectiv Ground. Acest senzor este un senzor foarte popular
utilizat în multe aplicații în care sunt necesare distanțe de măsurare sau obiecte de
detectare. Modulul are doi ochi ca proiectele din față care formează transmițătorul și
receptorul cu ultrasunete. Senzorul fun cționeaza cu o formula foarte simpl ă: Distan ța este
egal ă cu viteza ori timpul.
Figur a 11 Sensorul de distan ță HC-SR04 [40]
Transmițătorul cu ultrasunete transmite o undă ultrasonică, această undă
călătorește în aer și atunci când este obiectată de orice material aceasta se reflectă înapoi
spre senzor, acest val reflectat este observat de modulul receptorului ultrasonic.
Senzo rul de distanță HC -SR04 este utilizat în mod obișnuit atât cu microcontroler,
cât și cu platforme de microprocesor, cum ar fi Arduino, ARM, PIC, Zmeura Pie etc. Ghidul
următor este universal deoarece trebuie urmat indiferent de tipul de dispozitiv
computat ional folosit.
Pentru a alimenta senzorul se utili zează o tensiune de + 5V prin pinii de sol Vcc a i
senzorului. Curentul consumat de senzor este mai mic de 15mA și, prin urmare, poate fi
alimentat direct de pinii de 5V de la bord (dacă este disponibil). Triggerul și pinii Echo
sunt ambii pini I / O și, prin urmare, pot fi conectați la pinii I / O ai microcontrolerului.
Pentru a începe măsurarea, știftul de declanșare trebuie să fie ridicat pentru 10uS și apoi
oprit. Această acțiune va declanșa un val ultr asonic la frecvența de 40 Hz de la emițător și
receptorul va aștepta revenirea undei. Odată ce valul se întoarce după ce a fost reflectat
de orice obiect, pinul Echo este ridicat pentru o anumită perioadă de timp, care va fi egal
cu timpul necesar pentru c a undă să se întoarcă înapoi la senzor. [41]
Analiză și fundamentare teoretică
24 Tabel 4 Caracteristici HC -SR04 [42]
Senzor HC-SR04
Tensiune de lucru +5V
Distanța de măsurare
teoretică 2cm până la 450cm
Distanța practică de
măsurare 2cm până la 80cm
Precizie 3 mm
Unghi de măsurare acoperit <15 °
Curent de funcționare <15mA
Frecvența de operare 40Hz
3.9 Brațul robotic
Materialul bratului robotic este realizat din
aluminiu si are o greutate aproximativa cu 500g.
Lungimea bratului robotic este de aproximativ 45 ce cm
iar deschiderea clestelui de prindere este de 5,5 cm. [43]
Figur a 12 Braț robotic [44]
Proiectare de detaliu și implementare
25 4. Proiectare de detaliu și implementare
În acest capitol voi prezen ta pașii și schemele de proiectare a le sistemului de
automatizare a brațului robotic și a bandei transportoare, cât și implemantarea acestora
pentru că sistemul să funcționeze și parametrii optimi. Toate componentele ce vor fi
folosite în acest sistem au o funcție bine definit ă, iar fiecare va funționa în concordanță cu
celelalte. Pentru tensiunea necesară acestui proiect se vor folosi 3 surse de tensiune: o
sursă de tensiune pentru servomotoarele brațului robotic care va fi de 5V cu 10A, o sursă
de tensiune pentru funtionarea bandei transporto are de 12V cu 1250 m A și o sursă de
12v cu 2A pentru alimentarea plăci i Arduino și a celorlalți senzori. Cu ajutorul
programului realizat în Arduino, funcțiile pieselor sunt controlare și programate după
bunul plac și pentru o funcționare în parametrii opt imi.
Următoarele scheme vor prezența diagrama detaliată a sistemului care va fi alcătuită
din toate componentele aferente acestuia , cât și pinii și interconectarea acestora. Toate
schemele de mai jos au fost facute in programul Fritzing.
Figur a 13 Schema detaliata a sistemului 1
Proiectare de detaliu și implementare
26
Figu ra 14 Schema detaliata a sistemului 2
În următorii păși se vor prezen ta toate componentele sistemului separate, pentru o
detaliere mai amplă prezentându -se conectarea pinilor aferenți.
Figure 15 Conectarea sensorului de culoare TCS34725
Senzorul de culoare TCS34725 este alcătuit din 7 pini, din care doar 4 vor fii folosiți,
printre acești a fiind VCC -ul și GND -ul care va fi conectat la ground ul plăcii Arduino la fel
și tensiunea de alimentare VIN de 5V. Pinul SCL, adică comunicarea I2S va fi conectat pe
placă Arduino la pinul 21 SCL. La fel c a pinul SCL și pinul SDA adică comunicarea I2S va fi
conectat pe plac a Arduino la pinul 20 SDA.
Proiectare de detaliu și implementare
27
Figur a 16 Conectare a Fotorezisten ței
Senzorul de fotorezistență este alcătuit din 2 pini, unul va fi conectat la ground și unul
la tensiune și pentru o mai bună funcționare a aces tui sistem am folosit o rezistentă de
10k Ω care va fi conectată la groundul fotorezistentei iar apoi la groundul plăcii Arduino.
Fotorezistență va fi alimentată de la placă Arduino cu 5V, iar pinul de date rezultat va fi
conectat la pinul A0 al plăcii Ard uino.
Figur a 17 Conectare Rezistenta 10k Ω
Senzorul ultrasonic HC -SR04 este alcătuit din 4 pini, primul reprezentat
groundul(GND) care va fi conectat la groundul plăcii Arduino, pinul Echo va fi conectat pe
placă Arduino la p inul 34 iar pinul Trig al senzorului va fi conectat la pinul 33. Acest sensor
va fi alimentat de la plac a Arduino cu 5V prin pinul VCC.
Proiectare de detaliu și implementare
28
Figur a 18 Conectare senzor ultrasonic HC -SR04
Motorul pas cu pas este alcătuit din 4 pini. Toți cei 4 pini vor fi legați la un driver
pentru motoare pas cu pas A4988.Pinul A va fi conectat la pinul 1B al driverului motorului
pas cu pas, pinul C este conectat la pinul 1A, pinul B la pinul 2A și pinul D la pinul 2B al
plăcii driverului motorului p as cu pas.
Figur a 19 Conectare motor pas cu pas
Driverul pentru motorul pas cu pas este alcătuit din 16 pini, dintre care pini GND,
M51, M53 vor fi conectați la groundul plăcii Arduino. Alimentarea Vmot va fi legată la o
mufă de alimentare tata prin care va fi alimentat cu 12V cu 1250mA. VDD va fi alimentat
de la placă Arduino cu 5V, pinul DIRECTION va fi conectat la pinul 32 al plăcii Arduino,
pinul STEP este conectat la pinul 31, pinii SLEEP și RESET sunt legați împreună, ia r pinul
de ENABLE va fi conectat la placă Arduino în pinul 32.
Proiectare de detaliu și implementare
29
Figur a 20 Conectare driver motor pas cu pas
Conectarea laserului se va face prin cei doi pini pe care îi are laserul, unul fiind legat
la ground și unul va fi legat la alimentarea de 3,3V a plăcii Arduino.
Figur a 21 Conecatare Laser
Toate cele șase servomotoare se vor alimenta la 5V de pe plac a Arduino Shield la fel
și groundul. Pinii de semnal se vor lega la placa Arduino shield astfel:
• Servomotorul 1 pinul de semnal se va lega la pinul D2(S2)
• Servomotorul 2 pinul de semnal se va lega la pinul D3(S3)
• Servomotorul 3 pinul de semnal se va lega la pinul D4(S4)
• Servomotorul 4 pinul de semnal se va lega la pinul D5(S5)
• Servomotorul 5 pinul de semnal se va lega la pinul D6(S6)
• Servomotorul 6 pinul de semnal se va lega la pinul D7(S7)
Proiectar e de detaliu și implementare
30
Figur a 22 Conectarea servomotoarelor bra țului robotic
Conectarea plăcii Arduino Sensor shield V5.0 pe plac a Arduino mega 2560 se face
prin alinierea pinilor începând de la pinul 0 al plăcii Sensor Shield până la pinul 13 pe
plac a Arduino mega 2560 pe aceeași pini de la pinul 0 până la pinul 13.
Figur a 23 Conectare a plăcii Arduino sensor shield V5.0
Proiectare de detaliu și implementare
31
Figur a 24 Diagrama de stare a sistemului
Diagrama de stare prezintă modul in care sistemul se comport ă. Scopul acestei
diagrame este de a prezenta ciclul de functionare a l bandei transportoare și a bratu lui
robotic in corelare cu restul senzorilor. Motorul bandei transportoare este por nit atata
timp c ât pe banda transportoare nu se afla niciun obiect si diod a laser strabate distan ța
până în fotorezistent ă. Când un obiect se afla pe banda transportoare si ajun ge in raza de
lumin ă a diodei laser, fotorezisten ța nu mai este iluminat ă de c ătre diod a laser si banda
transportoare se opreste. Cand banda este oprit ă senzorul de distantă, citeste distanta
obietului si cu ajutorul parametrilor da ți de noi la fiecare centimetru , brațul robotic se
porne ște și se va deplasa la distan ța citită. Dupa prinderea obiectului de c ătre cle ștele
brațului robotic, senzorul de culoare scaneaz ă culoarea obiectului (roșu, verde, albastru),
iar restultatul scan ării va reprezenta o de plasare a bratului robotic c ătre depozitarea
obiectului si revenirea lui la locul ini țial.
Proiectare de detaliu și implementare
32
Validare, verificare și testare
33 5. Validare, verificare și testare
5.1 Validarea și Verificarea
Validarea este pentru construirea sistemului potrivit. Verificarea se referă la
construirea dreptului la sistem. Validarea este atasată cu examinarea faptului că sistemul
va satisface cerințele reale ale clientului, în timp ce verificarea este atasată dacă sistemul
este bine construit, fără probleme. Verificarea va ajută la concluzia dacă software -ul are o
valoare ridicată, dar nu va garanta că sistemul este constructiv.
Verificarea include toate comportamentele legate de producerea de software de
inaltă performantă: testare, examinare, investigație de proiectare, studiu de cerințe și așa
mai departe. Este o procedură cu intenție moderată, deoarece, dacă diferitele produse și
acreditări sunt articulate exact, nu ar trebui să fie necesară o judecată subiect ivă pentru a
confirmă software -ul. [45]
Verificarea poate indică:
• Realizarea examinării, inspecției, testării, verificării, auditului sau altfel
stabilirea și documentarea dacă obiectele, procesele, serviciile sau acreditările se
potrivesc cu necesitătile specifice.
• Metodă de evaluare a unui sistem sau a unui modu l pentru a stabili dacă
produsele dintr -o etapă avansată specific ată asigură situația obligatorie la începutul
etapei.
• Confirmarea corectă a preciziei programului.
Validarea este metodă de evaluare a unui sistem sau a unui constituent de -a lungul
sau la terminarea procesului de dezvoltare pentru a concluzion a dacă acesta îndeplinește
anumite cerințe.
5.2 Testarea
Capitolul de testare este realizat pentru a verifica dacă sistemul de automatizare a
brațului robotic cu ajutorul unei benzi transportoare f untioneaz ă în parametrii cât mai
buni și pentru a detect a anumite erori sau defecte al acestui s istem automatizat.
Testarea sistemului se va face prin două tipuri de testare cum ar fi:
• Tstarea non -funcțională
• Testarea funcțională
Testarea n on-functională se face împotrivă cerințelor nefuncționale sau care nu
sunt acoperite de testarea functională. Cerințele nefuncționale sunt acelea care reflectă
productivitatea, calitatea și stresul sistemului, în special din perspectivă utilizatorului.
Validare, verificare și testare
34 Prin urmare, testarea nefunc țională demonstrează modul în care se comportă sistemul în
comparație cu ceea ce este așteptat. [46]
Testarea functională, după cum sugerează și numele, se învârte în jurul aspectelor
funcționale ale sistemului sau subsistemelor ș i cât de eficient își execută funcțiile. Această
încercare se realizează prin specificațiile furnizate. Înainte de efectuarea testelor
nefuncționale, trebuie efectuată testarea functională.
După ce testarea funtional ă și cea non -funtional ă a fost făcută putem să garantăm
că sistemul automatizat va funtiona în parametri corecți și doar în condițiile în care a fost
testat sistemul iar informațiile făcute dealungul testului vor fi folosite pentru a face
sistemul să funtioneze cât mai bine si mai correct și p entru a remedia defectele găsite, iar
când sistemul de testare a fost dus la bun sfârșit putem să trecem la dezvoltarea lui. [47]
Manual de instalare și utilizare
35 6. Manual de instalare și utilizare
Pentru funcționarea acestui sistem de automatizare a brațului robotic cu ajutorul
unei bande transportoare vom avea nevoie de următoarele componenete:
• Microcontrollerul Arduino Meda 2560 ;
• Brațul robotic cu cele 6 servomotoare ;
• Senzorul de culoare ;
• Sensor shield V5.0 ;
• Driver pentru motor pas cu pas ;
• Motor pas cu pas ;
• O Fotorezistență ;
• O rezistentă 10k Ohmi ;
• Un laser de 3,3v ;
• Senzor de distanță ;
• O sursă de 5V cu 10A ;
• Un adaptor de 12V cu 2A ;
• Un adaptor de 12V cu 1250 m A;
• 2 mufe de alimentare “tat ă”;
• O mufă de alimentare “mam ă”;
• O placă de circuite ;
• Fire de tip “mama -mama”, “tata -mama”, “tata -tata” ;
• 3 comutoatoare ;
Primul pas este instalarea programului Arduino cu care vom putea să
implem entăm programul scris. Programul Arduino se poate descărcă de pe pagin a oficiala
Arduino.cc, accesând subcategoria Software și apoi Downloads, iar apoi vom descărcă
versiunea compat ibilă sistemului nostru de operare.
Instalarea programului Arduino se face ușor și se pot găsii informații în legătură
cu instalarea programului pe pagină officiala Arduino.cc.Microcontrollerul Arduino mega
2560 va face legătură cu programul Arduino p rintr -un cablu USB legat între placă Arduino
și calculator, iar apoi se poate execută codul scris de noi în programul Arduino.
Programul Arduino facilitează o serie de exemple care pot fi executate de către
consummator pentru a învață sau testa funcți onarea programului sau a plăcii. Programele
se vor încărca din Arduino în microcontroller prin accesarea butonului Verify, iar dacă
totul este corect putem utiliza butonul Upload.
Manual de instalare și utilizare
36 Toate conexiunile dintre componenete și plac a Arduino Mega vor fi preze ntate în
următoarele 2 scheme.
Figure 25 Schema de montaj 1
Figur a 26. Schema de montaj 2
Pentru acest proiect am folosit o machet ă din lemn de dimensiuni cu lungimea de
120cm și cu o lățime de 50cm și o bandă transport oare cu lungimea de 93cm și lățimea de
26cm.
Manual de instalare și utili zare
37
În imaginea următoare putem vedea cele două mufe de alimentare dintre care cea
notata cu numărul 2 în poză va fi alimentarea plăcii Arduino cu 12v și 2A iar muf a de
alimenatre notată cu 3 va reprezenta alimentarea driverului pentru moto rul pas cu pas
care acționeaza banda cu 12v și 1250mA iar sursă cu numărul 1 reprezentand alimentarea
celor 6 servomotoare din plac a Arduino shie ld V5.
Toate cele 3 surse de alimentare vor fi legate separat la câte un comutator cu care
putem opri sau porni curentul. Primul comutator cu numărul 4 va fii corespun zător
pentru aliment area servomotoarelor, al doilea comutator notat cu numărul 5 va fi pentru
Manual de instalare și utilizare
38 alimentarea plăcii Arduino. Iar ultimul comutator cu numărul 6 va fi pentru driverul de
motoare pas cu pas.
Pentru fun ționarea mai ușoară a motorului pas cu pas a l bandei transportoare am
folosit 2 roț i dințate cu pas de 2mm dintre care una cu lățimea de 6mm și 18 dinți și o
roată dințată cu lățimea de 6mm și 36 de dinți. Cele două roți au fost folosite împreună cu
o curea de 200m cu lățimea de 6mm și pasul de 2mm al dinților.
Manual de instalare și utilizare
39 Brațul robotic situat în partea dreaptă față a bandei trasportoare pentru a pu tea
ridica obiectele de pe aceasta.
Senzorul ultrasonic de distanță și cel de lumină vor fi situate în partea dreaptă a
bandei transportoare , iar laserul va fi situat în partea din stânga a bandei pentru a putea
lumina direct în sensorul de lumină.
Sensorul de culoare va fi situat deasupra cle ștelui bra țului roboti c petru a putea
citi culoarea obiecteleor prinse de bra țul robotic.
Manual de instalare și utilizare
40
Concluzii
41 7. Concluzii
7.1 Rezultate ob ținute
În această lucrare s -a realizat o implematare a unui sistem inteligent de
automatizare al unei benzi de sortare cu ajutorul unui braț robotic .
Majoritatea oamenilor știu că roboții sunt programați să efectueze acțiuni specifice
în mod repetitiv, fără var iații și cu un grad înalt de precizie. Ceea ce nu realizează adesea
este faptul că, cu inovații în tehnologie, e i pot fi de asemenea programa ți pentru cerințe
mai flexibile, cum ar fi orientarea obiectului, aplicațiile mul ti-tasking și complexe.
Pentr u realizarea acestui proiect a u trebuit să se parcurgă următorii păși:
• Începând de la schema generală a acestui sistem, a fost implementat un program
care realizea ză pașii necesari funcționării sistemului automatizat a l brațului robotic și a
bandei tr ansportoare;
• Scrierea programului respectiv și încărcarea lui cu ajutorului aplicației Arduino
pe microcontrolerul Arduino mega 2560;
• Conectarea senzorilor pre zenta ți în capitolele de mai sus astfel încât să
funcționeze fără probleme;
• Prezentarea pașilor necesari implementării sistemului;
• Testarea proiectlui ;
7.2 Critic ă
Poten țialele i mbunata țiri ale sistemului automatizat cu braț robotic și bandă
transportoare sunt:
• Folosirea unei benzi transportoare de calitate superioară poate a face mai ușoară
mișcarea motorului care angrenează axul bandei transportoar e;
• Inbunata țirea materialului brațului robotic ;
• Alungirea brațului robotic și amplasarea lui intr -o pozi ție mai bună pentru a putea
sorta mai rapid obiectele situate pe band a transportoare ;
• Înlocuirea sursei de energie normală cu cea solară ;
• Implementarea unei bateri i în caz de p ană de curent ;
• Creșterea potențialului de performanță ;
• Scăder ea consumului de energie a sistemului;
Concluzii
42
Bibliografie
43 8. Bibliografie
[1] Shimon Y. Nof, Handbook of Indutrial Robotics, 1999, pp. 5 -50.
[2] Harry Colestock, Indutrial RoboticsL Selection, Design and Maintenance, 2005, pp.
67-90.
[3] A. K. Gupta, Gupta, Industrial Aut omation and Robotics, 2007, pp. 24 -44, 66 -71.
[4] Richard K. Miller, Indutrial Robot Handbook, 2013, pp. 2 -77.
[5] J. Norberto Pires, Industrial Robots Programming, 2007, pp. 99 -115.
[6] James Perlberg, Industrial Robotics, 2016, pp. 5 -30.
[7] Louise Spilsbury, Richard Spilsbury, Incredible Robots in Industry, 2017, pp. 15 -22,
27-55.
[8] http://richmondvale.org/wp -content/uploads/2016/07/1913 -Ford -assembly -line-
1.jpg , accesat la data de 4.05.2018.
[9] https://i.pinimg.com/736x/49/c1/f2/49c1f2faaf35762a c329ebb349114ab9 –fanuc –
robotics.jpg, accesat la data de 4.05.2018.
[10] Adrian Ioannou, Industrial Robot Specifications, 2012, pp. 84.
[11] Mike Wilson, Implementation of Robot Systems, 2014, pp. 38 -39.
[12] Richard Shell, Handbook of Industrial Automatio n, 2000, pp. 140.
[13] https://i.pinimg.com/originals/9e/b4/22/9eb422b4159c1704d897c2855707c598.
jpg, accesat la data de 5.05.2018.
[14] http://www.arduino.cc, accesat la data de 3.05.201 8.
[15] https://store.arduino.cc/arduino -mega -2560 -rev3, accesat la data de 3.05.2018
[16] David John Warren, Harald Molle, Josh Adams, Arduino Robotics, 2011, pp. 15 -40.
[17] http://arduino -tech.com/arduino -mega.aspx, accesat la data de 4.05.2018 .
[18] https://www.robotshop.com/media/catalog/product/cache/image/900×900/9df 7
8eab33525d08d6e5fb8d27136e95/a/r/arduino -mega -2560 -microcontroller -3.jpg ,
accesat la data de 5.05.2018 .
[19] https://wiki.eprolabs.com/index.php?title=Arduino_Mega_2560 , accesat la data de
4.05.2018 .
[20] http://www.circuitstoday.com/arduino -mega -pinout -schematics, accesat la data de
4.05.2018.
[21] Wilfried Voss, A Comprehensible Guide to Servo Motor Sizing, 2007, pp. 7 -20, 25 –
28.
[22] https://i.ebayimg.com/images/g/9XcAAOSw14xWIa2b/s -l1600.jpg , accesat la data
de 16.05.2018.
Bibliografie
44 [23] Matthew Scarpino, Motors for Makers: A Guide to Steppers and Servos, 2015, pp. 3 –
23.
[24] https://www.electronicoscaldas.com/datasheet/MG996R_Tower -Pro.pdf , accesat
la data de 20.05.2018.
[25] https://www.adafruit.com/product/1334 , accesat la data de 21.05.2018.
[26] https://cdn.shopify.com/s/files/1/0176/3274/products/1334 -04_1024x1024.jpg ,
accesat la data de 21.05.2018.
[27] https://cdn -shop.adafruit.com/datasheets/TCS34725.pdf , accesat la data de
22.05.2018
[28] http://www.robot park.com/Sensor -Shield -V5-For-Arduino , accesat la data de
22.05.2018.
[29] https://ardushop.ro/191 -thickbox_default/sensor -shield -v50-for-arduino.jpg ,
accesat la data de 22.05.2018.
[30] http://valuehobby.valuehobby.netdna –
cdn.com/media/catalog/product/cache/1/image/600×600/9df78eab33525d08d6e5fb
8d27136e95/1/7/17hs16 -2004s104.jpg
[31] Cameron Hughes, Tracey Hughes, Robot Programming: A Guide to Controlling
Autonomous Robots, 2016, pp. 12 -40.
[32] Matthew Scarpino, Motors fo r Makers: A Guide to Steppers and Servos, 2015, pp.
44-61.
[33] https://www.andornot.co.uk/product/nema -17-stepper -motor -17hs16 -2004s1 ,
accesat la data de 1.06.2018.
[34] https://leeselectronic.com/en/product/15271.html , accesat la data de 1.06.2018.
[35] https://www.robotshop.com/media/files/PDF/datasheet -1182.pdf , accesat la data
de 1.06.2018.
[36] https://www.pollin.de/images/1600x1200x90/I712678.1 -Schrittmotor -Treiber –
DAYCOM -ST-A4988.jpg , accesat la data de 3.06.2018.
[37] Faludi, Robert. Building Wirel ess Sensor Networks. Farnham: O'Reilly Media,2010,
pp. 11 -15.
[38] https://static1.tme.eu//products_pics/1/f/f/1ff655edaac1ca6a033c5290110d7a55
/29682.jpg , accesat la data de 3.06.2018.
[39] Cook, David. Intermediate Robot Building. [Berkeley, Calif.]: Apres s, 2010. pp. 103 –
155
[40] https://www.makerlab -electronics.com/my_uploads/2016/05/ultrasonic -sensor –
HCSR04 -1.jpg , accesat la data de 3.06.2018.
[41] https://randomnerdtutorials.com/complete -guide -for-ultrasonic -sensor -hc-sr04 ,
accesat la data de 3.06.2018.
Bibliografie
45 [42] https://www.electroschematics.com/wp -content/uploads/2013/07/HCSR04 –
datasheet -version -1.pdf , accesat la data de 3.06.2018.
[43] http://www.robotpark.com/image/cache/data/PRO/95114/95114 -Robotpark -6-
DOF -Aluminum -Robot -Arm -Kits -2-700×700.jpg, accesat la data de 6.06.2018.
[44] http://en.wikipedia.org/wiki/Verification_and_validation, accesat la data de
8.06.2018.
[45] Howden, William E. Functional Program Testing And Analysis. New York: McGraw –
Hill, 1987, pp. 66 -102 .
[46] Howden, William E. Functional Program Testing And Analysis. New York: McGraw -Hill,
1987, pp. 102 -122.
Bibliografie
46
Anexe
47 9. Anexe
Codul sursă al acestui sistem va fi prezentat mai jos:
#include<VarSpeedServo.h>
#include <Wire.h>
#include "Adafruit_TCS34725.h"
VarSpeedServo servo1;
VarSpe edServo servo2;
VarSpeedServo servo3;
VarSpeedServo servo4;
VarSpeedServo servo5;
VarSpeedServo servo6;
Adafruit_TCS34725 SensorDeCor =
Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1X);
int photocellPin = 0; // pinul fotorezistentei
int photocellReading;
const int stepPin = 31;
const int dirPin = 30;
const int trigPin = 33;
const int echoPin = 34;
long duration;
int distance;
int safetyDistance;
void setup() {
Serial.begin(9600);
if (SensorDeCor.begin()) {
Serial.println("Found sensor");
} else {
Serial.println("No TCS34725 found … check your connections");
Anexe
48 while (1);
}
servo1.attach(2);
servo2.attach(3);
servo3.attach(4);
servo4.attach(5);
servo5.attach(6);
servo6.attach(7);
delay(50);
servo5.write(30);
servo4.write(60);
servo1.write(90);
servo2.write(80);
servo3.write(80);
servo6.write(35);
delay(50);
pinMode(13,OUTPUT);
pinMode(32, OUTPUT); //Enable
pinMode(31, OUTPUT); //Step
pinMode(30, OUTPUT); //Direction
pinMode(trigPin, OUTPUT); // S ets the trigPin as an Output
pinMode(echoPin, INPUT);
}
void start() {
digitalWrite(4,LOW);
for(int x = 0; x < 100; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(1000);
digitalWrite(stepPin,LOW);
delayMicroseconds(1000);
Anexe
49 }
digitalWrite(32,LOW);
}
void stopp() {
digitalWrite(32,HIGH);
}
void ridicare(){
delay(500);
servo5.slowmove(30, 20);
servo3.slowmove(80, 20);
delay(500);
servo4.slowmove(60, 20);
delay(400);
servo6.slowmove(35, 20);
delay(600);
}
void depozitarerosu() {
delay(400);
servo5.slowmove(100, 20);
servo3.slowmove(90, 20);
servo4.slowmove(120, 20);
delay(500);
servo6.slowmove(87, 20);
delay(2000);
servo1.slowmove(90, 20);
delay(500);
}
Anexe
50 void depozitarealbastru() {
delay(400);
servo5.slowmove(87, 20);
servo3.slowmove(95, 20);
servo4.slowmove(99, 20);
delay(500);
servo6.slowmove(105, 20);
delay(2000);
servo1.slowmove(90, 20);
delay(500);
}
void depozitareverde() {
delay(400);
servo5.slowmove(60, 20);
servo3.slowmove(90, 20);
servo4.slowmove(70, 20);
delay(500);
servo6.slowmove(87, 20);
delay(2000);
servo1.slowmove(90, 20);
delay(500);
}
void citesteculoarea(){
delay(400);
Serial.print(" Citire culoare");
uint16_t r, g, b, c, TemperaturaDaCor, LUX;
SensorDeCor.getRawData(&r, &g, &b, &c);
TemperaturaDaCor = SensorDeCor.calculateColorTemperature(r, g, b);
Anexe
51 LUX = SensorDeCor.calculateLux(r, g, b);
if (r > b && r > g && r> 1900 )
{
Serial.print(" – (Red Color)");
delay(1000);
ridicare();
delay(1000);
depozitarerosu();
delay(1000);
ridicare();
delay(100);
}
else if (b > g && r <1900)
{
Serial.print(" – (Blue Color)");
delay(1000);
ridicare();
delay(1000);
depozitarealbastru();
delay(1000);
ridicare();
delay(100);
}
else if (b > g && b>r)
{
Serial.print(" – (Blue Color)");
delay(1000);
ridicare();
delay(1000);
depozitarealbastru();
delay(1000);
Anexe
52 ridicare();
delay(100);
}
else if (g > b && r < 1900 )
{
Serial.print(" – (Green Color)");
delay(1000);
ridicare();
delay(1000);
depozitareverde();
delay(1000);
ridicare();
delay(100);
}
else if (g > b && g > r)
{
Serial.print(" – (Green Color)");
delay(1000);
ridicare();
delay(1000);
depozitareverde();
delay(1000);
ridicare();
delay(100);
}
delay(300);
}
void aruncare(){
delay(2000);
servo5.slowmove(60, 20);
Anexe
53 delay(1000);
servo3.slowmove(139, 20);
servo4.slowmove(82, 20);
delay(1000);
servo2.slowmove(80, 20);
servo6.slowmove(85, 20);
delay(500);
servo4.slowmov e(60, 20);
delay(2000);
servo1.slowmove(90, 20);
delay(1000);
servo5.slowmove(60, 20);
delay(100);
servo6.slowmove(35, 20);
delay(30);
}
void poz24() {
delay(1000);
servo6.slowmove(15, 20);
delay(400);
servo3.slowmove(139, 20);
servo4.slowmove(85, 20);
delay(800);
servo5.slowmove(120, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
Anexe
54 }
void poz23() {
delay(1000);
servo6.slowmove(16.5, 20);
delay(400);
servo3.slowmove(13 9, 20);
servo4.slowmove(81, 20);
delay(800);
servo5.slowmove(120, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz22() {
delay(1000);
servo6.slowmove(18, 20);
delay(400);
servo3.slowmove(139, 20);
servo4.slowmove(80, 20);
delay(800);
servo5.slowmove(121, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
Anexe
55 citesteculoarea();
delay(30);
}
void poz21() {
delay (1000);
servo6.slowmove(19, 20);
delay(400);
servo3.slowmove(141, 20);
servo4.slowmove(76, 20);
delay(800);
servo5.slowmove(117, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz20() {
delay(1000);
servo6.slowmove(20, 20);
delay(400);
servo3.slowmove(140, 20);
servo4.slowmove(76, 20);
delay(800);
servo5.slowmove(115, 20);
servo2.slowmove(80, 20);
Anexe
56 servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20) ;
delay(30);
citesteculoarea();
delay(30);
}
void poz19() {
delay(1000);
servo6.slowmove(23, 20);
delay(400);
servo3.slowmove(141, 20);
servo4.slowmove(73, 20);
delay(800);
servo5.slowmove(115, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz18() {
delay(1000);
servo6.slowmove(25, 20);
delay(400);
servo3.slowmove(141, 20);
servo4.slowmove(73, 20);
delay(800);
Anexe
57 servo5.slowmove(117, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz17() {
delay(1000);
servo6.slowmove(27, 20);
delay(400);
servo3.slowmove(144, 20);
servo4.slowmove(70, 20);
delay(800);
servo5.slowmov e(115, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz16() {
delay(1000);
servo6.slowmove(32, 20);
delay(400);
servo3.slowmove(144, 20);
Anexe
58 servo4.slowmove(67, 20);
delay(800);
servo5.slowmove(113, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz15() {
delay(1000);
servo6.slowmove(33, 20);
delay(400);
servo3.slowmove (144, 20);
servo4.slowmove(61, 20);
delay(800);
servo5.slowmove(111, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz14() {
delay(1000);
servo6.slowmove(35, 20);
Anexe
59 delay(400);
servo3.slowmove(144, 20);
servo4.slowmove(57, 20);
delay(800);
servo5.slowmove(109, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz13() {
delay(1000);
servo6.slowmove(36, 20);
delay(400);
servo3.slowmove(148, 20);
servo4.slowmove(53, 20);
delay(800);
servo5.slowmove(109, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz12() {
Anexe
60 delay(1000);
servo6.slowmove(37, 20);
delay(400);
servo3.slowmove(150, 20);
servo4.slowmove(56, 20);
delay(800);
servo5.slowmove(112, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz11() {
delay(1000);
servo6.slowmove(41, 20);
delay(400);
servo3.slowmove(151, 20);
servo4.slowmove(59, 20);
delay(800);
servo5.slowmove(113, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
Anexe
61
void poz10() {
delay(1000);
servo6.slowmove(44, 20);
delay(400);
servo3.slowmove(152, 20);
servo4.slowmove(56, 20);
delay(800);
servo5.slowmove(112, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz9() {
delay(1000);
servo6.slowmove(45, 20);
delay(400);
servo3.slowmove(153, 20);
servo4.slowmove(53, 20);
delay(800);
servo5.slowmove (111, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
Anexe
62 delay(30);
}
void poz8() {
delay(1000);
servo6.slowmove(48, 20);
delay(400);
servo3.slowmove(154, 20);
servo4.slowmove(50, 20);
delay(800);
servo5.slowmove(110, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
delay(30);
citesteculoarea();
delay(30);
}
void poz7() {
delay(1000);
servo6.slowmove(51, 20);
delay(400);
servo3.slowmove( 156, 20);
servo4.slowmove(49, 20);
delay(800);
servo5.slowmove(111, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(137, 20);
Anexe
63 delay(30);
citesteculoarea();
delay(30);
}
void poz6() {
delay(1000);
servo6.slowmove(54, 20);
delay(400);
servo3.slowmove(158, 20);
servo4.slowmove(52, 20);
delay(800);
servo5.slowmove(114, 20);
servo2.slowmove(80, 20);
servo1.slowmove(90, 20);
delay(2000);
servo1.slowmove(90, 20);
delay(30);
citesteculoarea();
delay(30);
}
void pozitiebrat(){
servo5.slowmove(0,20);
servo4.slowmove(80,20);
servo1.slowmove(120,20);
servo2.slowmove(80,20);
servo3.slowmove(80,20);
servo6.slowmove(25,20);
}
void loop() {
Anexe
64
photocellReading = analogRead(photocellPin);
digitalWrite(trigPin, LOW);
delayMicroseconds(1);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(1);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;
safetyDis tance = distance;
if (photocellReading < 1){
//fara cod
Serial.print("<1: ");
delay(1);
}
else if (photocellReading > 700 && photocellReading < 900){
//cod cand senzorul ii activ
start();
delay(1);
}
else{
//cod cand nu mai citeste senzorul
stopp();
if (safetyDistance >= 23 && safetyDistance <24){
Serial.print("Distance: ");
Serial.println(distance);
poz24();
delay(5000);
Anexe
65 }
else if (safetyDistance >= 22 && safetyDistance <23) {
Serial.print("Distance: ");
Serial.println(distance);
poz23();
delay(5000);
}
else if (safetyDistance >= 21 && safetyDistance <22) {
Serial.print("Distance: ");
Serial.println(distance);
poz22();
delay(5000);
}
else if (safetyDistance >= 20 && safetyDistance <21) {
Serial.print("Distance: ");
Serial.println(distance);
poz21();
delay(5000);
}
else if (safetyDistance >= 19 && safetyDistance <20) {
Serial.print("Distance: ");
Serial.println(distance);
poz20();
delay(5000);
}
else if (safetyDistance >= 18 && safetyDistance <19) {
Serial.print("Distance: ");
Serial.println(distance);
poz19();
delay(5000);
}
else if (safetyDistance >= 17 && safetyDistance <18) {
Anexe
66 Serial.print("Distance: ");
Serial.println(distance );
poz18();
delay(5000);
}
else if (safetyDistance >= 16 && safetyDistance <17) {
Serial.print("Distance: ");
Serial.println(distance);
poz17();
delay(5000);
}
else if (safetyDistance >= 15 && safetyDistance <16) {
Serial.print("Distance : ");
Serial.println(distance);
poz16();
delay(5000);
}
else if (safetyDistance >= 14 && safetyDistance <15) {
Serial.print("Distance: ");
Serial.println(distance);
poz15();
delay(5000);
}
else if (safetyDistance >= 13 && safetyDistance <14) {
Serial.print("Distance: ");
Serial.println(distance);
poz14();
delay(5000);
}
else if (safetyDistance >= 12 && safetyDistance <13) {
Serial.print("Distance: ");
Serial.println(distance);
Anexe
67 poz13();
delay(5000);
}
else if (safetyDistance >= 11 && safetyDistance <12) {
Serial.print("Distance: ");
Serial.println(distance);
poz12();
delay(5000);
}
else if (safetyDistance >= 10 && safetyDistance <11) {
Serial.print("Distance: ");
Serial.println(distance);
poz11() ;
delay(5000);
}
else if (safetyDistance >= 9 && safetyDistance <10) {
Serial.print("Distance: ");
Serial.println(distance);
poz10();
delay(5000);
}
else if (safetyDistance >= 8 && safetyDistance <9) {
Serial.print("Distance: ");
Serial.println(distance);
poz9();
delay(5000);
}
else if (safetyDistance >= 7 && safetyDistance <8) {
Serial.print("Distance: ");
Serial.println(distance);
poz8();
delay(5000);
Anexe
68 }
else if (safetyDistance >= 6 && safetyDistance <7) {
Serial.p rint("Distance: ");
Serial.println(distance);
poz7();
delay(5000);
}
}
}
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 AUTOMATIZAT DE SORT ARE CU BAND Ă [629289] (ID: 629289)
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.
