Proiect De Diploma 2017 Stoica Ionut Catalin Electromecanica [306293]

ROBOT CU FLEXIBILITATE ÎN PROGRAMARE

CAPITOLUL 1

INTRODUCERE

Motto

“ – Un robot nu are voie să rănească o ființă umană și nici să permită prin inactivitate ca o ființă umană sa fie lezată.

– Un robot trebuie să se supună ordinelor provenite de la o ființă umană cu excepția cazului în care un astfel de ordin contravine primei legi.

– [anonimizat] a doua lege.”

Isaac Asimov’s Three Laws of Robotics – 1983

Aproximativ toți oamenii consideră un “robot” o mașină care acționează la fel ca o [anonimizat] “inteligență”. O definiție interesantă este dată în Dicționarul Webster : „Robotul este un aparat automat sau dispozitiv care îndeplinește funcții atribuite în general omului sau manifestă inteligență aproape umană în timpul funcționării sale”. Interpretarea aceasta prezintă un caracter extensiv si poate cuprinde diferite sisteme automate ce îndeplinesc sarcini fizice fără ca omul să intervină. Așadar termenul de „robot” [anonimizat] o delimitare unanim acceptată a „roboticii”.

Un robot „inteligent” ar trebui să fie capabil să perceapă anumite comenzi vocale cu ajutorul cărora se pot preîntâmpina eventuale dezastre sau pur și simplu să se poată schimba prioritățile în ordinea desfășurării operațiilor. [anonimizat]. Roboții domestici au fost dezvoltați pentru amatorii de astfel de „automatizări” casnice mai ales in domeniul „jocuri/jucării. [anonimizat] a mișcărilor, observare a [anonimizat]. Roboții de acest gen au o [anonimizat], fiind in general „unicate”.

Cel mai important domeniu în care roboții au cunoscut o [anonimizat] o mare varietate de sarcini. [anonimizat], [anonimizat] (prezentată intr-o manieră repetitivă strictă si complet definită), [anonimizat]. [anonimizat], acest lucru ducând la avarierea ambelor „părți”. [anonimizat], auzii sau nu pot vede. [anonimizat] a avea o eficiență ridicată și pentru a [anonimizat], să dezvolte acțiune corectivă și in același timp sa dețină o [anonimizat]-se in mediul înconjurător asemănător unui om.

Există următoarea întrebare „ În viitor vor fi roboții constienți ?” În prag de mileniul III majoritatea oamenilor pun problema in felul următor : [anonimizat]a umană sau, mai degrabă, situația va fi inversă ?!

Scurt istoric

Denumirea de “robot” a fost introdusă de către scriitorul ceh Karl Capek în lucrarea sa “Roboții universali ai lui Rossum” (1921), plecând de la cuvântul ROBOTA ce înseamnă muncă, activitate de rutină. Traducerea in limba engleză a acestui termen a consacrat pe plan internațional o denumire simplă “robot”. Însă, în această piesă, roboții pe care i-a creat Rossum, humanoizi mecanici, realizați cu scopul de a servi oamenii, se revoltă într-un final, împotriva omenirii, distrugând-o.

O idee prezentă în imaginația omenirii din vechi timpuri a fost realizarea unor instalații artificiale in vederea executării unor operații similare cu cele executate de om. O trecere rapidă prin istoria roboților ar arăta în felul următor:

perioada cuprinsă din antichitate până in 1940 este considerată preistoria roboților, fiindcă mecanismele care au fost realizate pe principii pur mecanice imitau aproape perfect însușiri ale ființelor vii;

în anul 1940 începe istoria roboților prin realizarea manipulatoarelor sincrone pentru mișcarea unor recipiente radioactive din anumite spații supuse iradierii; această etapă a ținut aproximativ până în anul 1960;

perioada de revoluție a roboților este considerată perioada anilor 1960-1980, fiind caracterizată de o diversitate si aplicabilitate fără precedent în domeniul industrial;

perioada anilor 1980-1990 reprezintă deceniul roboților industriali de generația I și II și robotizarea producției (industrie și servicii);

la începutul anului 1990 apar primii roboți „inteligenți”, etapă în dezvoltare și în momentul de față.

Scriitorul Isaac Asimov, în povestirea SF “Runaround” (1940) forumlează cele mai importante trei legi ale roboților, utilizând pentru prima dată cuvântul “robotică”, cu semnificația de știința care se ocupă cu studiul sistematic al roboților.

In dezvoltarea roboticii, trei tehnologii au fost cruciale:

tehnologia servomecanismelor;

tehnologia electronică;

tehnica de calcul.

Simon Nof, editorul lucrării „Handbook of Industrial Robotics”, formulează în anul 1985 legile roboticii aplicate:

în locurile de muncă periculoase pentru oameni, roboții trebuie sa înlocuiască îi înlocuiască pe aceștia;

roboții trebuie sa înlocuiască oamenii in activități pe care aceștia nu doresc să le facă;

oamenii ar trebui înlocuiți de roboți in activități în care, aceștia din urmă, le fac mai eficient (inițial ar fi un dezavantaj pentru mulți dar inevitabil vor beneficia toți.).

Roboții se tranformă, astfel, într-un produs specific spațiului mecatronic. Flexibilitatea (în programarea roboților) se referă la :

ușurința cu care pot fi schimbate programele de funcționare,

limitele între care se pot comanda valorile parametrilor cinematici,

numărul și modul de desfășurare a secvențelor de mișcare,

posibilitatea dozării mișcărilor în vederea generării unor traiectorii complexe,

modul de introducere a programelor.

Domenii ale roboticii

Miliroboții sunt roboți ce acționează în misiuni de recunoaștere. Aceștia sunt construiți modular, prezentând un modul de locomoție, un modul de procesare si un modul energetic. Pot să transporte module video, de sunet și sunt capabili să schimbe diferite informații între ei, ceea ce duce la configurații ce pot sporii mobilitatea sistemului.

Roboții târâtori pot efectua mișcări precise asemănătoare mișcării unui vierme. Au aproximativ 60x60mm. Pentru deplasare, ei se bazează pe fenomenul piezoelectric pentru deplasare.

Roboții șarpe sunt folosiți pentru a ajunge în zone greu accesibile de tip tubulatură, motoare, etc., datorită formei lor.

Modulele universal – plug – and – play – dunt cele care se pot asambla într-un robot în aproape toate modurile posibile, generând automat planuri pentru mișcarea robotului format în funcție de numărul de grade de mobilitate disponibile.

Figura . Roboți șarpe

Vehiculele autonome sunt de fapt mașini autonome ce pot rula pe șosea fără intervenția omului, putând atinge viteza de până la 140 km/h, combinând tehnologii diferite. Ideal ar fi ca deși oricare din tehnologiile acestea este imperfectă, combinația lor să fie mult mai robustă decât fiecare in parte. Vehiculele din această categorie pot folosi diverse tipuri de senzori :

G.P.S. folosit pentru poziție, radare pe unde ultrascurte și lasere în infraroșu folosite pentru a detecta obstacolele, camere de filmat stereoscopice utilizate pentru urmărirea șoselei, algoritmi de control dinamic utlilizate cu scopul de a realiza calculul frânării, accelerației și schimbării de direcție.

Figura . Vehicule conduse automat

Medicină – Roboții chirurgi – Asistență socială – Acest sistem este format în principiu din două părți : „stația”, locul în care se află chirurgul care urmărește întreaga operație pe un ecran cu reprezentare în imagini tridimensionale ale organului vizat si „sclavul” (robotul), acesta din urmă fiind dotat cu unul sau mai multe brațe mecanice. Unul dintre acestea, poartă sursa de lumină, o cameră în miniatură, laser/celelalte sunt posedă degete ce pot mânui bisturie, ace si diferite instrumente chirurgicale, fiind capabile să imite mișcarea corespondentă umană. De-asemenea, sistemul este dotat cu un computer cu ajutorul căruia se asigură acuratețea mișcărilor. Datorită acestui tip de roboți, medicii pot efectua operații de la distanță.

Figura . Roboți chirurgi

Acestea sunt doar câteva exemple de tipuri de roboți utilizați in diferite domenii înafară de domeniul industrial. Pe lângă cei prezentați, mai există nenumărate exemple cum ar fi: roboți jucării, roboți fotbaliști, roboți de supraveghere, roboți destinați explorărilor (militare, spațiale etc.), roboți de serviciu, roboți autonomi, roboți de curățenie, roboți subacvatici, roboți de uz casnic, roboți de bucătărie, roboți folosiți in agricultură, etc.

CLASIFICAREA ROBOȚILOR

din punctul de vedere al gradului de mobilitate se cunosc roboți ficși si mobili;

din punctul de vedere al informației de intrare si al metodei de instruire există:

roboți acționați de om;

roboți cu sistem de comandă cu relee ( secvențial );

roboți cu sistem secvențial de program modificabil;

roboți repetitori ( cu programare prin instruire);

roboți inteligenți;

din punct de vedere al sistemului de coordonate, roboții sunt un sistem de coordonate carteziene (18%), cilindrice (33%) și sferice (40%);

din punct de vedere al sistemului de comandă :

comandă punct cu punct ( unde nu interesează traiectoria propriu-zisă);

comandă pe contur ( implică coordonarea mișcării axelor );

comandă pe întreaga traiectorie ( implică toți parametrii de mișcare);

din punct de vedere al sarcinii manipulate;

din punct de vedere al sistemului de acționare: hidraulică (40%), electrică (30%), pneumatică (21%), mixtă;

din punct de vedere al preciziei de poziționare: sub 0,1 [mm], (0,1÷ 0,5) [mm], (0,5 ÷ 1) [mm], (1 ÷ 3) [mm], peste 3 [mm];

din punctul de vedere al tipului de programare :

cu programare rigidă (fără posibilități de corecție);

cu programare flexibilă (există posibilitatea modificării programului);

cu programare adaptivă ( există posibilitatea adaptării automate a programului în timpul funcționării);

Structura robotului

Un robot este un sistem compus din mai multe subsisteme. Sistemul se definește ca fiind un ansamblu de părți componente, elemente, și legăturile dintre acestea. Elementele care compun acest sistem se numesc subsisteme. La rândul lor subsistemele pot conține și ele un număr de subsisteme, iar din această cauză există o ierarhizare și anume sistemul principal – sistem de rangul 1, subsistemele – sisteme de rangul 2, etc. Structura unui sistem este definită de modul cum se compune acel sistem din subsisteme si legăturile dintre aceste subsisteme. Compunerea aceasta a sistemelor din subsisteme se scoate in evidență prin scheme bloc, iar legăturile dintre subsisteme, prin matrici de cuplare (care definesc legăturile dintre "intrările" și "ieșirile") și matrici de structură (care evidențiază care subsisteme sunt în legătură). Robotul este un sistem de rangul 1 fiind asemănător construtiv cu sistemul unui om, la fel si subsistemele robotului. Schema bloc a structurii unui robot este prezentată în Figura 4:

Figura . Schema bloc a unui robot

Sistemul robotului comunică cu mediul și este compus din :

sistemul mecanic care are rolul scheletului uman, astfel definește amplitudinea și natura mișcărilor care pot fi realizate;

sistemul de acționare este cel care realizează mișcarea relativă a elementelor mecanismelor din sistemul mechanic, având rolul sistemului mușchiular al omului.

sistemul de comandă – emite diferite comenzi către sistemul de acționare, prelucrând informații preluate de la sistemul mecanic, sistemul de acționare și de la mediu, având același rol cu cel al sistemului nervos uman.

aparatele de măsură si traductorii sunt cei care capteză informații despre starea internă a robotului ( viteze, debite, presiuni, deplasări, accelerații relative, temperaturi).

senzorii responsabili cu preluatul de informații despre starea „externă" a robotului, caracterizată prin parametrii mediului (presiune, temperatură, compoziție, etc.) și acțiunea acestuia asupra robotului (forțe, cupluri, etc.); senzorii și traductorii indeplinesc rolul organelor de simț.

platforma mobilă se ocupă cu realizarea deplasării roboților mobili, facând parte din componența sistemului mecanic, având rolul asemănător cu cel al aparatului locomotor al omului;

sistemul de conducere definit ca fiind un sistem de rang superior al sistemului mecanic și este compus din sistemul de acționare și cel de comandă.

Roboții acționați hidraulic conțin un grup hidraulic pentru relizarea și prepararea circulației fluidului având rolul de purtător de energie (uleiul). Acest grup joacă rolul aparatului digestiv și a celui respirator / circulator al omului.

Prin "mediu" al robotului, se înțelege spațiul în care acesta evoluează cu fenomenele care au loc în acest spațiu și cu obiectele conținute. Totalitatea obiectelor cu care interacționează robotul, constituie "periferia" acestuia.

Legăturile dintre componentele care realizează interacțiunea cu mediul și componentele robotului sunt:

directe;

inverse ("feed back").

Legături directe există la sistemul de comandă atunci când la sistemul de acționare se transmit comenzi, iar acesta acționează asupra cuplelor cinematice conducătoare, axelor, sistemului mecanic, care la rândul său, acest ultim sistem, acționează asupra mediului cu efectorul final.

Legături inverse sunt reprezentate de informațiile furnizate sistemului de comandă de către senzori, traductoare și aparate de măsură.

Totodată mai sunt considerate legături și fluxul de energie dat de mediu sistemului de acționare al robotului, și fluxul de energie disipat de la robot la mediu).

Motivarea temei alese

Prin prezenta lucrare mi-am propus următoarele obiective:

realizarea unui studiu asupra roboților industriali, autonomi și mobili;

implementarea unei aplicații pe bază de uC.

Trăim într-o lume care se află într-o continuă schimbare și dezvoltare din punct de vedere tehnologic. Tehnologia a devenit un lucru de care, cu toții simțim că avem nevoie. Aceasta, de la an la an, capătă noi forme, având o evoluție constantă și rapidă. Beneficiul principal pe care tehnologia i-l aduce omului este ajutorul, fiind menită sa-i simplifice viața acestuia.

O realizare cu adevărat impresionantă și în același timp extrem de utilă în foarte multe domenii, o reprezintă robotul, el fiind capabil să execute operații și comenzi într-un interval de timp scurt și totodată în mod eficient. În cele mai multe cazuri, într-o fabrică de producție, robotul a devenit un “must have” pentru companii.

Modurile de funcționare, de gândire, de gestionare, de percepție a lumii exterioare, pe care le deține un robot, reprezintă un lucru fascinant și de aceea am ales să realizez un minirobot mobil care să aibă o întrebuințare limitată dar totuși complexă și anume cea de a depista și de a evita obstacolele care-i ies în cale. În viață, se spune că pentru a înțeleg cu adevărat un lucru, trebuie să ai tangențe cu acesta. Tehnologia unui robot mobil este într-adevăr, în stadiul actual, la un nivel foarte ridicat, însă pentru o bună înțelegere și cunoaștere a mersului lucrurilor, etapele trebuie realizate pas cu pas.

Astfel, datorită curiozității dar și „setei de cunoaștere” în ceea ce este privită tehnologia roboților zilelor noastre, m-am decis să realizez o aplicație care, cred eu, mă va ajuta să aprofundez în acest domeniu și să înțeleg de fapt, care e modul de gândire al robotului.

Aplicația propusă reprezintă „o bază”, asupra careia, aplicând și alte întrebuințări și aspecte, devine benefică în diferite domenii. Funcționarea robotului care evită obstacole, se bazează, în acest caz, pe o modalitate de comunicație serială între două plăcuțe de dezvoltare Arduino UNO, modalitate foarte interesantă de relaționare între două microcontrollere. Pe lângă acestea, robotul este dotat cu două motoreductoare de curent continuu, un driver de motoare cu punte dublă H, un acumulator Li-Po dar și un servomotor și un senzor ultrasonic, acesta din urmă fiind capabil să depisteze obiecte care se află în preajma robotului. Între toate aceste component, există o relație bine strucurată și realizată, prin care robotul primește capacitatea să evite coliziunile cu obstacolele din mediul exterior. Aplicația îmbină partea hardware cu partea software, fiind o modalitate foarte bună de înțelegere a strânsei legături între cele două mari părți ale lumii inginerești.

În cele ce urmează se va prezenta în mod detaliat aplicația și totodată tehnologia pe care acesta o deține, atât din punctul de vedere al structurii hardware, cât și din punctul de vedere al structurii software.

CAPITOLUL 2

ROBOT CU FLEXIBILITATE IN PROGRAMARE

Cercetarea fabricației ca fenomen de producție arată că extinderea automatizării și mecanizării este posibilă doar prin dezvoltarea anumitor categorii de mijloace de producție,

Concentrate pe satisfacerea cerințelor specifice acestui fenomen. Termenul general prin care se definește totalitatea caracteristicilor noi pe care le prezintă aceste noi mijloace de producție este cel de „flexibilitate”. În domeniul producției industriale, termenul apare recent in strânsă legătură cu automatizarea fabricației, ca trăsătură ce definește un sistem automat de fabricație care se bazează pe mașini transformabile pentru procese de prelucrare dar în același timp și pentru cele de transport al materialelor. Ulterior, termenul de flexibilitate este folosit și cu referire la capacitatea unui anumit sistem de a trece la fabricația produselor de un alt tip, această caracteristică fiind definită ca elasticitate tehnologică.

În același timp, sistemele de fabricație mecanizate si automatizate flexibile trebuiesc definite în comparație cu sistemele de fabricație mecanizate si automatizate rigide. În timp ce sistemele rigide sunt concepute de la început sa realizeze o singură sarcină de fabricație, sistemele flexibile sunt concepute în așa fel încât să se poată transforma in vederea realizării mai multor sarcini diferite de fabricație.

Conceptul de flexibilitate este utilizat pentru caracterizarea anumitor soluții tehnice diferite, începând de la linia de transfer adaptată până la câteva variante ale sarcinii de producție și de la centrul de fabricație cu comandă numerică la linia de fabricație cu comandă numerică și sisteme integrate de mașini unelte și instalații logistice, comandate cu ajutorul unor structuri ierarhizate de dispozitive de prelucrare a datelor. Automatizarea pe baza specializării-produs în zona seriilor mici de fabricație și a produselor care se diversifică intensiv, presupune o asociere a noțiunii de sistem de fabricație cu cea de “flexibilitate”.

Robotul prin structura si funcțiile sale, sintetizează elemente de vârf dintr-o serie de domenii tehnico-științifice și totodată prin atribuți substituie sau chiar imită anumite funcții cum sunt cele de locomoție, cele de manipulare și nu în ultimul rând până și pe cele de intelect ale omului. Așadar, robotul reprezintă, în mare măsură, un sistem extreme de complex, acesta fiind descris prin anumite modele matematice definite prin sisteme de ecuații diferențiale neliniare, cu parametrii variabili, cuprinzând un număr destul de mare de variabile.

Programarea și reprogramarea robotului ce asigură ce asigură flexibilitate se face prin intermediul unui calculator de tip PC; iar în același timp, există posibilitatea controlului manual al robotului printr-o tastatură proprie.

Concluzionând se poate spune că flexibilitatea presupune capacitatea sistemului de a se adapta la sarcini de producție diferite.

2.1. Mecanica roboților

Robotul industrial este un exemplu reprezentativ de produs mecatronic folosit în procesul de producție, cu scopul de a realiza anumite funcții de manipulare asemănătoare cu cele realizate de om. Din punct de vedere structural, robotul industrial este văzut ca un hipersistem alcătuit din trei sisteme. Sistemul mecanic al roboților industriali ( fig. 5) corespunde brațului și mâinii umane cum se poate observa în figura de mai jos. Acest sistem este alcătuit dintr-un lanț cinematic format din elemente rigide interconectate prin cuple de translație sau rotație care le oferă o mișcare relativă. Lanțul cinematic are un capăt inferior fixat in batiu și totodată are un capăt superior care susține mâna robotului, respectiv dispozitivul de prehensiune sau sculă (gripper). Se urmărește ca structura mecanică să asigure:

o mobilitate cât mai mare (determinată de antropomorfism); antropomorfismul fiinda asemănarea dintre caracteristicile brațului robotic si brațul omului;

greutate cât mai mică;

suplețe;

randament energetic ridicat.

Figura . Structura mecanică a unui robot industrial

Roboții industriali utilizați la ora actuală prezintă soluții conceptuale si constructive neunitare datorită, în special, diversității sarcinilor cerute, parametrilor tehnici impuși si datorită aplicațiilor specifice pentru care au fost proiectați. Cu toate acestea, robotul poate fi considearat un sistem omogen format format din anumite elemente având funcții bine precizate care asigură interacțiunea nemijlocită între robot și obiectul acțiunii sale din spațiul de operare.

Robotul are posibilitatea interacțiunii cu mediul înconjurător prin intermediul structurii mecanice, asigurându-i-se poziționarea, deplasarea si orientarea efectorului final. Cele mai importante componente ale structurii mecanice sunt : elementul efector/efector terminal, brațul/structura de ghidare și obiectul acțiunii sale din spațiul de ghidare.

Elementul efector/efector terminal denumit câteodata și element de prehensiune/mână mecanică sau efector terminal asigură contactul direct și nemijlocit dintre un robot și obiectul care se află in spațiul de operare asupra căruia acționează. Efectorul diferă constructiv după natura funcției realizate și după gama aplicațiilor. Așadar, elementele efectoare utilizate diferă în funcție de operații/utilizări.

Un astfel de element este alcătuit din:

corpul propriu-zis, cu o structură mecanică adecvată funcției realizate;

unul sau mai multe dispozitive de acționare;

niciunul, unul sau mai mulți senzori care determină regimurile critice ale operației realizate.

Se remarcă faptul că majoritatea soluțiilor constructive adoptate tind spre realizarea unui element multifuncțional cu o largă gamă de aplicații sau tind spre realizarea unui element efector monofuncțional cu o destinație precisă.

Brațul robotului/structura de ghidare are rolul de a poziționa corect elementul efector. În acest scop, brațul robotului reprezintă o structură mecanică care are o geometrie variabilă ce se poate obține prin legarea în cascadă a unor segmente conectate prin articulații de translație sau rotație. Sistemele de acționare corespunzătoare asigură mișcările independente pentru fiecare segment în raport cu segmentul precedent. Mișcările de acest gen sunt în general restricționate de diferite caracteristici pe care le deține arhitectura mecanică.

Toate elementele și subansamblele se montează pe un anumit cadru special care se numește baza robotului/structura de ghidare. Ea fie se suspendă pe o cale de ghidare, fie se așează pe un postament fix/mobil (în funcție de tipul robotului).

Toate elementele enumerate mai sus, alcătuiesc structura de bază o oricărui robot industrial. Pe lângă această structură clasică, în construcția roboților pot apărea sisteme cu 2-3 brațe, sisteme de locomoție, sisteme cu 2-3 elemente efectoare, etc.

Sistemul mecanic al robotului asigură realizarea mișcărilor acestuia și transformarea/transmiterea energiei mecanice necesare interacțiunii cu mediul; acesta este alcătuit din mai multe elemente legate între ele prin cuple cinematice.

Manipularea se referă la modificarea poziției efectorului terminal (prehensorului), cu care obiectul este solidarizat, cu ajutorul sistemului de ghidare (poziționare+orientare) care oferă efectorului mișcarea si energia necesară în conformitate cu acțiunea necesară asupra mediului.

Sistemele de ghidare pot fi cu :

topologie serială;

topologie paralelă;

topologie mixtă.

Poziția si orientarea unui corp în spațiul tridimensional se poate defini cu ajutorul pozișiei punctului caracteristic și orientărilor dreptei caracteristice, respectiv a dreptei auxiliare. Punctul caracteristic și dreapta caracteristică/auxiliară la un obiect cilindric (fig. 6) se reprezintă astfel:

Figura . Reprezentare punct caracteristic si dreaptă caracteristică/auxiliară

la un obiect cilindric

Se ințelege prin:

punct caracteristic – un punct al obiectului, care se foloseste pentru definirea poziției acestuia;

dreaptă caracteristică – o dreaptă ce trece prin punctul caracteristic;

dreaptă auxiliară – o dreaptă perpendiculară în punctul caracteristic pe dreapta caracteristică.

În modelul matematic al sistemului mecanic al robotului, originea este reprezentată de către punctul caracteristic, iar dreptele caracteristică si auxiliară sunt axe ale unui sistem de referință cartezian drept legat la obiect; sistemul generator de traiectorie are rolul de a modifica poziția punctului caracteristic (sistemul de poziționare) si de a orienta dreptele caracteristică și auxiliară (sistemul de orientare). Platforma mobilă/fixă reprzintă o parte a sistemului mecanic, asigurând suportul întregului ansamblu.

2.2. Acționarea roboților

Există anumite particularități pe care le prezintă sistemele de acționare ale roboților industriali și anume:

să exercite cuplu sau forța nominală (mai mare decaât suma celor rezistente și a celor de frecare);

în poziția pentru care momentul redus respectiv forța în cuplu are valoare maximă;

momentul de inerție propriu respectiv forța să fie cât mai reduse;

să aibă un indice energetic ( greutate/putere nominală) cât mai ridicat;

să prezinte un grad mare de siguranță în momentul executării comenzilor de deplasare primite;

comportarea lor trebuie să fie cât mai liniară între mărimea de ieșire si mărimea de comandă;

să nu fie generatoare de oscilații si de vibrații neamortizate;

să prezinte o bună stabilitate termică în timp și un punct de echilibru termodinamic cât mai scăzut;

în cazul în care se întrerupe accidental energia care îi alimentează, trebuie să blocheze sistemul mecanic în poziția curentă;

înlocuirea sau depanarea lor trebuie să fie ușoară și in același timp trebuie sa prezinte o fiabilitate cât mai bună.

Caracteristica principală a roboților o prezintă în mare parte capabilitatea lor de a se mișca. “Actuatorul” reprezintă dispozitivul mecanic care produce o mișcare. Robotul poate să conțină diferite tipuri de actuatori, fiecare fiind ales pentru o anumită sarcină.

Sistemul de acționare realizează mișcarea cuplelor cinematice ale robotului, aceasta efectuându-se cu ajutorul motoarelor de acționare, care pot fi atât de tip electric, pneumatic cât si hidraulic. În momentul de față, roboții actuali au aproape în întregime motoare elctrice de acționare ( motoare asincrone, motoare de curent continuu, motoare pas cu pas).

Cum era precizat si mai sus, există trei tipuri de acționări ale roboților :

acționarea electrică;

acționarea hidraulică;

acționarea pneumatică.

Acționarea electrică – se aplică pentru roboții mici și mijlocii, doar acolo unde acționarea nu necesită o putere mai mare de 3-5 kW, caz în care greutatea motoarelor si gabaritul se încadrează in dezideratele de formă și de suplețe ale structurii mecanice. Acest tip de acționare este posibil doar acolo unde nu se impun condiții speciale de mediu.

Structura sistemului de acționare este formată din: motor, reductor și driver (dispozitiv de comandă locală a motorului).

Motorul are rolul de a converti energia electrică în energei mecanică de mișcare a cuplelor, asigurând momentul necesar pentru învingerea forțelor rezistente și totodată realizează o anumită traiectorie de mișcare.

Reductorul realizează o legătură între motor și cupla cinematică pentru a adapta mișcarea elementelor la nevoile practice ale robotului.

În figura 7 este reprezentată schema bloc a sistemului de acționare al robotului, schemă realizată pe web-site-ul http://draw.io.

Figura . Schema bloc a sistemului de acționare al robotului

Funcția de acționare asigură momentul mecanic, deplasarea relativă si execuția comenzii pentru cuplele cinematice ale robotului. Această funcție de acționare este realizată de sistemul de acționare, acesta din urmă realizând conversia energiei în mișcare mecanică a cuplelor roboților.

Motivul pentru care acționarea electrică este predominantă se datorează avantajelor pe care le au motoarele electrice în ceea ce privesc energia electrică și posibilitățile de comandă; se poate realiza cu motoare de curent alternativ, având excitația în paralel sau mixtă (serie-derivație), motoare de curent continuu, în cazul în care nu este nevoie de o sarcină prea mare și cu motoare pas cu pas, unde există posibilitatea utilizării unui astfel de motor. În cazul în care se folosesc motoare de curent alternativ sau motoare de curent continuu este nevoie de un traductor pentru a se putea controla poziția cuplei robotului, la cele pas cu pas nefiind necesar acest lucru.

Din punctul de vedere al poziției motoarelor, ele se pot fixa : pe elementul mobil sau pe suportul fix al motorului. Dacă se analizează primul caz, se constată faptul că transmisiile sunt mai simple însă crește greutatea elementelor în mișcare ale robotului. În schimb, în cel de al doilea caz situația este opusă deoarece apar complicații la realizarea transmisiilor iar elementele sunt mai ușoare.

Motoarele pas cu pas sunt mai ușor de comandat în buclă deschisă, asigurând un moment foarte bun la viteze mici. Un sistem acționat de un motor pas cu pas este compact, prezentând limite privind eroarea de poziționare dinamică. Folosind comanda în buclă închisă, multe dintre dezavantaje ar putea fi depășite.

Ce rol are un driver ? Driver-ul se ocupă de comanda alimentării cu energie electrică a unui motor, realizând o legătură cu sistemul de comandă al robotului.

Există două tipuri principale de drivere și anume: driver analogic și driver digital. Viteza de referință a motorului în driver-ul analogic se reprezintă printr-o tensiune într-un anumit domeniu; valoarea de 0V a tensiunii reprezintă viteza nulă iar valorile intermediare ale tensiunii reprezintă viteze proporționale cu acestea. În cazul driver-ului digital, pentru a se realiza reglarea vitezei de referință a motorului, se trimit date de la un computer sau de la un terminal. Tensiunea analogică este unul din semnalele de intrare ale acestui tip de driver sau ele pot lua formă de impuls.

Driverele sau circuitele de comandă ale unui motor pas cu pas au ca rol principal, să alimenteze sau nu înfașurările motorului respectiv, dar in același timp controlează sensul curentului prin acestea.

Un sistem de acționare elctrică cuprinde elemente componente grupate în două subsisteme, în funcție de rolul lor:

un subsistem de forță (SF) – realizează conversia electromecanică a energiei;

un subsistem de comandă și control (SCC) – care asigură, după cum sugerează si numele, comanda și controlul sistemului de acționare electrică.

Schema generală a sistemului de acționare electrică :

Figura . Schema sistemului de acționare electrică

Motorul de curent continuu reprezintă sistemul de forță (transformă puterea electrică în putere mecanică) iar sistemul de comandă si control ( cel care alimentează motorul de curent continuu cu energie electrică și totodată îl menține într-un anumit regim de funcționare influențat fiind de către comanda de intrare) este reprezentat prin buclele de acordare si regulatoarele de tip PI (RPI). Obiectul acționat antrenat (OA) de motorul electric are rolul de a realiza anumite mișcări impuse.

Acționarea hidraulică – se utilizează în cazul sarcinilor sau puterilor mari, asigurând o compactizare a roboților.

Acționarea pneumatică – se utilizează în cazul sarcinilor sau puterilor reduse, fiind una din cele mai comode dar și economice mijloace de acționare

2.2.1. Acționarea cu motoare asincrone

Mașina asincronă cu mișcare de rotație este motorul cu cel mai mare grad de utilizare în acționările industriale datorită faptului că prezintă nenumărate avantaje spre deosebire de celelalte posibilități de acționare electrică și anume:

prezintă fiabilitate ridicată;

avantaj economic datorită prețului redus;

simplitate constructivă;

Cel mai important avantaj al acestora se leagă de apariția microcontroller-ului în anul 1980. Acest lucru a dus la elaborarea de noi sisteme foarte complexe de tipul unui invertor care realizează rapid și în același timp ușor, reglarea turației acestui tip de mașină și totodată a dus la apariția driverelor, acestea permițând controlul parametrilor de ieșire (cuplu si turație) dar și programarea lor în limite largi. Cuvântul “asincron” se datorează diferenței dintre frecvența de rotație a rotorului si frecvența câmpului magnetic învârtitor. Motorul asincron se poate construi fie cu rotorul bobinat fie cu rotorul în scurtcircuit. Ultima variantă (cu rotorul în scurtcircuit) prezintă fiabilitate mai ridicată si totodata simplitate, caracteristici ce se datorează lipsei sistemului de perii colectoare.Însă raportul putere/gabarit al acestuia este mai mic decât în cazul motorului cu rotorul bobinat, acesta din urmă având putere mai mare.

Alimentarea motorului asincron se face prin conectarea la rețeaua trifazată folosind elemente care formează circuite de alimentare si de protecție cum ar fi: siguranțele fuzibile, releele de protecție magneto-termice, contactoare sau relee, întreruptoare manuale, relee de protecție termică, etc. Pentru a se putea realiza automatizarea acționărilor de reglare a turației motorului este nevoie de un invertor. Prin intrările analogice sau digitale, invertorul permite interfațarea cu sistemul de automatizare. Acesta se conectează în rețelele de calculatoare cu ajutorul unor protocoale de comunicație consacrate. Invertoarele se pot interconecta destul de ușor cu controlerele logice programabile.

Figura . Structura unui sistem de acționare electrică

Comenzile externe se pot seta direct fie de la nivelul invertorului, fie prin sistemul de automatizare ( microcontroler sau controler logic programabil. Cuplul electromagnetic dezvoltat de către motor se poate exprima în mod simplificat cu ajutorul relației lui Kloss:

– momentul maxim (critic);

– alunecarea critică.

Cuplul critic sau momentul critic pe care motorul îl dezvoltă reprezintă punctul caracteristicii natural incepând de la care turația scade brusc spre zero, motorul se oprește, so blochează mechanic și se distruge.

Alunecarea se poate define cu ajutorul urmatoarei ecuații:

– viteza unghiulară a câmpului magnetic învârtitor statoric, respectiv turația aceluiași câmp asociat sistemului trifazic de curenți din stator;

– viteza motorului;

n – turația motorului.

Cunoscând frecvența rețelei de alimentare și numărul de perechi de poli din stator valorile și se determină cu ajutorul următoarelor ecuații:

Dacă se ține cont de faptul că în sistemul nostru energetic național, frecvența este de 50Hz, pentru motoarele asincrone care au numărul de perechi de poli p = 1;2;3;4 sau 5, turațiile maxime de rotație vor fi: 3000;1500;750; respectiv 600 rot/min. Invertoarele de tensiune/frecvență se aplică în cazul în care, în aplicațiile practice este nevoie de turație mai mare decât 3000 rot/min atunci când nu se dorește folosirea amplificatoarelor mecanice de turație datorită randamentului scăzut și datorită faptului ca acestea complică foarte mult partea mecanică. Cu ajutorul acestui tip de invertoare se pot atinge frecvențe cu valori mai mari de 50Hz. În mod uzual se pot regla frecvențe de 900Hz și astfel apare posibilitatea obținerii unei turații de 54000rot/min, în cazul unui motor cu o pereche de poli.

Figura . Principiul invertorului tensiune/frecvență

Redresorul trifazat va redresa tensiunea asincronă trifazată R, S, T. Printr-un filtru L-C va trece tensiunea continua obținută anterior. Acesta va filtra tensiunea, aceasta din urmă alimentând invertorul, care va permite obținerea unor forme de undă dorite pentru comanda circuitului de forță alcătuit din tranzistori IGBT. Tensiunea si frecvența acesteia care va ajunge la nivelul motorului asincron, vor fi reglate de către invertor. Astfel, se poate modifica atât frecvența , tensiunea cât si turația motorului.

Figura . Componența unui invertor/frecvență

Tensiunea de alimentare trifazată R, S, T va fi preluată de către sistemul de tip invertor la frecvența fixă de 50Hz și o va redresa, urmând apoi să treacă printr-un filtru. Tensiunea continuă va fi transmisă invertorului care o va transforma tot în tensiune alternativă, însă cu o formă și caracteristici controlabile din exterior. Valoarea tensiunii se poate seta în volți (V) iar valoarea frecvenței se poate seta în Hertzi (Hz).

Sistemele acestea inteligente pot comanda ca mașina asincronă să funcționeze la cuplu constant sau la putere constantă. Există multiple posibilități din exterior, de interfațare și control. Fiind comandate de către un asemenea tip de invertoare, motoarele asincrone se pot programa și controla de la distanță, putându-se integra in sisteme SCADA. Aceste invertoare pot fi programate să-și identifice motorul din punct de vedere al caracteristicilor, în special al impedanțelor, setându-se apoi parametrii de frecvență si de tensiune pe care invertorul îi va trimite către motor. Nu se poate conecta la invertor, orice tip de motor asincron, astfel trebuie avute in vedere limitele de turație recomandate din punct de vedere mecanic de către firma constructoare a motorului. Este posibil ca unele tipuri de motoare asincrone sa nu suporte turații peste anumite limite.

Pentru a alege un motor asincron de acționare în vederea automatizării acesteia se ține cont de caracteristica naturală a mașinii asincrone, relația cuplu – alunecare, M = f(s). Fiecărei valori a cuplului nominal îi corespunde o valoare a alunecării nominale . La fel de importante sunt și valorile critice ale cuplului si alunecării mai ales în vederea proiectării automatizate, din perspectiva setării valorilor de referință.

Figura . Caracteristica cuplu-alunecare

În niciun caz, nu se vor depăși valorile critice. O caracteristică importantă în ceea ce privește automatizarea acționărilor o reprezintă faptul că aceasta permite evitarea atingerii acestor limite. La alegerea punctului de funcționare a motorului pe caracteristica naturală, punctul N corespunzător valorii nominale este determinat prin interesecția caracteristicii de sarcină MS = f(Ω), cu caracteristica naturală Ω = f(M).

Figura . Caracteristica naturală a MAS

Pentru a alege modul de auomatizare a acționării cu mașina asincronă, trebuie sa existe o bună cunoaștere a modului de variație a caracteristicii de sarcină din procesul industrial în așa fel încat, dacă se setează valorile de referință, în special pentru turație, să nu se ajungă la cazul în care punctul N sa fie prea aproape de punctul critic K.

Figura . Caracteristici artificiale a MAS

Dacă automatizarea acționărilor cu mașina asincronă se face prin alimentarea cu ajutorul invertorului de tensiune/frecvență, există posibilitatea programării diferitelor valori ale raportului tensiune/frecvență. Se pot obține caracteristici artificiale ale mototrului prin reducerea tensiunii de alimentare. Această tensiune de alimentare a unui motor asincron nu poate trece peste valoarea nominală înscrisă în catalogul mașinii datorită faptului că mașina funcționează cu miezul magnetic saturat și astfel creșterea tensiunii nu ar avea niciun efect pozitiv, ci din contră, ar prezenta doar efecte negative prin supratensionarea înfășurărilor motorului. Dacă se modifică frecvența de lucru a invertorului, se poate ajunge la caracteristici care ar păstra cuplul critic.

Figura . Caracteristici prin modificarea frecvenței

În momentul în care se reduce tensiunea de alimentare, se va reduce si valoarea cuplului de pornire, a cuplului mecanic de care este capabil motorul să pornească în sarcină.

Pornirea MAS se poate face fie într-un singur sens (în cazul polizoarelor, mașini de rectificat, sisteme de ventilare, etc.), fie în două sensuri, însă mai există un tip de pornire a MAS, necesar în multe aplicații practice și anume, pornirea stea – triunghi.

2.2.2. Acționarea cu MCC

Mașina de curent continuu cu excitație derivație

Caracteristica mecanică – alimentarea

Pentru o mai eficientă stabilire a legăturii între mărimile electrice și cele mecanice, se consideră, pentru mașina de curent continuu cu excitație derivație, următorii parametrii electrici: tensiunea de alimentare , direcția „G” aleasă în sens trigonometric și curentul total I care se va diviza pe cele două circuite: – curentul prin înfășurarea de excitație și curentul – curent prin circuitul rotoric (al indusului). Statorul, respectiv rotorul, în cazul motorului de curent continuu cu excitație derivație, sunt alimentate de la același nivel al tensiunii de alimentare . Această tensiune reprezintă parametrul cu gradul de importanță cel mai ridicat pentru mașina electrică de acționare. Valoarea acestei tensiuni de alimentare, înscrisă pe eticheta motorului, nu poate fi depășită. Având în vedere faptul că motorul funcționează la o anumită valoare a tensiunii de alimentare, miezul magnetic din stator și rotor vor funcționa saturate. Un efect ce dăunează foarte mult în acest sens motorului, îl reprezintă creșterea tensiunii deoarece acest fenomen nu aduce o creștere a câmpului magnetic ci din contră, duce la o creștere a scânteilor la perii.

Figura . Motorul de curent continuu cu excitație derivație

I = +

Rotorul se află în câmpul magnetic al polilor excitației și în același timp este străbătut de curentul . Astfel acesta va fi solicitat de forțe electromagnetice care vor da naștere cuplului de rotație M.

M = · Ф ·

Concomitent, în înfășurările rotorului se va induce o tensiune contra – electromotoare E,

E = – · n · Ф

Deoarece direcția “G” este în sens trigonometric, se va scrie următoarea ecuație a tensiunilor :

G: + ∆Up – –E =0;

Dacă se neglijează căderea de tensiune la periile colectoare ale motorului ∆Up ≈ 0, ecuația initial va arată în felul următor:

– + · n · Ф = 0

În acest moment se poate determina turația “n” a motorului, marime mecanică dependent de parametrii electrici:

Din ecuația cuplului de rotație M se poate determina :

M = · · Ф => ,

Și astfel relația caracteristicii natural turație funcție de cuplu va fi următoarea:

În final se va ajungela relația caracteristicii naturale turație funcție de cuplul mecanic:

n = − K*Φ

Figura . Caracteristica naturală a MCC cu excitație derivație

Mașina de curent continuu cu excitație derivație are o caracteristică naturală liniară cu panta negativă egală cu (-K) și poartă denumirea de caracteristică cu panta negativă. Mai exact, la arborele mașinii, odată cu creșterea cuplului rezistent, va scădea turația cu o valoare dependentă de panta caracteristicii, de rigiditatea caracteristicii.

Figura . Schema conexiunii serie a MCC cu excitație derivație

Figura . Caracteristica turație – cuplu

În cazul MCC cu excitație serie, caracteristica mecanică este elastică. Ceea ce înseamnă că odată ce crește cuplul rezistent la arborele motorului, turația scade cu valori tot mai mari funcție de elasticitate.

2.2.3. Acționarea cu MPP

Motoarele pas cu pas sunt motoare sincrone speciale, adaptate funcționării discrete, ale căror înfășurări ale fazelor sunt alimentate cu impulsuri de curent. Astfel, ia naștere un câmp magnetic învârtitor cu o axă care ocupă doar anumite poziții, ceea ce face ca rotorul să ocupe diferite poziții discrete. Așa numitul „pas” al motorului reprezintă trecerea de la o poziție la alta iar acest lucru se realizează sub influența schimbării repartiției discrete a câmpului magnetic. Acest tip de motor mai este privit ca un convertor discret impuls/deplasare.

Clasificarea motoarelor pas cu pas în funcție de construcția circuitului magnetic:

motoare pas cu pas cu reluctanță variabilă (rotor cilindric din tole, dințat);

motoare pas cu pas cu magnet permanent în rotot (rotor cilindric sau rotor disc);

motoare pas cu pas hibride (cu magneți permanenți și reluctanță variabilă).

Motorul cu magnet permanent, cel mai uzual, are 4 faze: un pol sau mai mulți poli în rotor și opt poli în stator. Pentru a se putea explica mai ușor funcționarea acestui tip de motor se va reprezenta grafic cazul motorului cu patru faze: A, B, C și D, aceștia fiind patru poli decalați cu un unghi de 90 de grade și un magnet în rotor. Curentul prin bobinele motorului, la motorul unipolar, este asigurat numai într-un singur sens iar în reprezentarea grafică apare modul de comandă al motorului în secvență simplă. Se activează o singură bobină care creează un câmp magnetic echivalent unui magnet ce are polul nord spre rotor. Polul nord creat de bobină va atrage polul sud al magnetului din rotor. În primul desen este activată bobina A, polul sud al magnetului fiind orientat spre această bobină. În cazul în care se dorește ca motorul sa aiba un sens orar de rotație, la pasul următor se va activa bobina B și se va dezactiva bobina A, motorul rotindu-se în sens orar cu un unghi de 90 de grade. În cazul în care se dorește ca rotația motorului sa se realizeze în sens antiorar, la pasul următor se va alimenta bobina D și la fel ca și în celalalt caz, se va dezactiva bobina A. Sensul orar are următoarea secvență: A-B-C-D, în timp ce sensul antiorar va avea secvența: A-D-C-B, după cum este reprezentat și in figura 20.

Modul de comandă simplă pentru motorul pas cu pas unipolar

Figura . Pășirea normală, secvență simplă

Figura . Distribuția impulsurilor pe bobinele motorului pas cu pas

În cazul unei secvențe duble de comandă a motorului unipolar se activează două faze simultan, de exemplu: fazele A și B pentru pasul 1. De data aceasta, polul sud al magnetului va fi poziționat între cei doi poli. Pentru pasul următor se va activa faza C și se va dezactiva faza A, rotirea fiind de 90 de grade în sens orar. În figura 22 este reprezentată comanda dublă pentru rotirea în sens orar, având secvența: AB-BC-CD-DA.

Modul de comandă dublă pentru motorul pas cu pas unipolar

Figura . Rotirea motorului pas cu pas unipolar în cazul secvenței duble

Dacă se compară comanda dublă cu cea simplă, în cazul comenzii duble, cuplul care se devoltă este mai mare decât în cazul comenzii simple, însă și consumul este dublu. În ceea ce privește secvența mixtă, pasul este de 45 de grade, o rotație completă efectuându-se în opt semipași. Sensul orar, în cazul secvenței mixte va fi: A-AD-D-DC-C-CB-B-BA, dezvoltând un cuplu variabil.

În cazul motorului bipolar, pentru bobinele motorului, se asigură curent pentru ambele sensuri, astfel poate lua naștere atît polul nord cât și polul sud la capătul bobinei dinspre rotor. Bobinele, în acest caz, sunt grupate două câte două, putându-se lega atât în serie cât și în paralel, astfel vor exista patru borne disponibile. În figura 23, bobinajul care creează polul nord este reprezentat prin culoare roșie și bobinajul care creează polul sud este prezentat prin culoarea albastră. La fel ca și în cazul motorului cu un singur pol, deplasarea unghiulară a rotorului se realizează în același mod, însă dezvoltă un cuplu mai mare.

Modul de comandă simplă pentru motorul pas cu pas bipolar

Figura . Rotirea motorului pas cu pas în cazul comenzii simple

Figura . MPP bipolar, curenții prin bobine la secvență simplă

În cadrul secvenței duble de comandă a motorului bipolar, de fiecare dată sunt activate toate bobinele, cuplul dezvoltat la arborele motorului este maxim și tot aici consumul este și el maxim.

În cadrul comenzii cu micropași curentul ce străbate bobinele motorului nu are numai valorile nominale la fel ca în cazurile anterioare. Rotorul poate să ocupe, în acest caz, și poziții intermediar datorită compunerii forțelor cu care acționează câmpul magnetic produs de trecerea curentului prin bobinele motorului asupra rotorului. În figurile anterioare a fost prezentat motorul bipolar cu magneți permanenți, iar acum, în cele ce urmează se va explica compunerea forțelor pentru moduri diferite de comandă a motorului.

Figura . MPP bipolar, secvență simplă, compunerea forțelor la fiecare pas

Figura . MPP bipolar, secvență dublă, compunerea forțelor la fiecare pas

Figura . MPP bipolar, secvență mixtă, compunerea forțelor la fiecare pas

Figura . MPP unipolar, comandă liniară prin ½ pași, compunerea forțelor

Figura . MPP bipolar, comandă liniară prin ½ pași, compunerea forțelor

Pe lângă acestea, mai există si alte tipuri de motoare pas cu pas cum ar fi: motorul cu reluctanță variabilă, motorul hibrid (cu magnet permanent și reluctanță variabilă).

2.3. Comanda si programarea roboților

Funcția de comandă a robotului are rolul de generare al unui set de informații către sistemul de acționare cu scopul de a deplasa cuplele cinematice pentru realizarea unui anumit obiectiv, pe baza propriului program de funcționare și în același timp pe baza informațiilor preluate din mediul de lucru. Așadar această funcție, după cum se poate observa, este necesar sa asigure următoarele acțiuni:

un set de comenzi;

realizarea sarcinilor de lucru (programele);

transmiterea comenzilor sistemului de acționare cu ajutorul unui dispozitiv de legătură și cu ajutorul unui adaptor de semnale;

primirea informațiilor din mediul de lucru (cu ajutorul traductoarelor);

flexibilitate, diagnoză, prognoză.

Sistemul de conducere sau comandă al robotului, fiind un echipament de calcul, este cel care realizează funcția de comandă. Există mai multe tipuri de comandă a robotului cum ar fi:

secvențială (o cuplă la un moment dat);

simultană (mai multe cuple simultan);

manuală;

automată;

în circuit închis;

în buclă cu reacție.

Fizic, sistemul de conducere sau comandă este un modul independent conectat la robot cu ajutorul unui cablu având rolul de a vehicula semnale de comandă de putere redusă, De regulă în interiorul robotului în apropierea sistemului de acționare, este plasată interfața. În articulațiile robotului, de obicei, sunt situate traductoarele exceptând dispozitivele de vedere artificială, acestea fiind plasate în exterior, vizând obiectul ce trebuie manipulat. Prin intermediul unui calculator (de tip PC) se poate realiza programarea și totodată reprogramarea robotului, acțiuni ce asigură flexibilitatea. Cu toate acestea, robotul poate fi și cu comandă manuală folosind o tastatură proprie a acestuia.

Dacă se folosește tipul respectiv de tastatură proprie a robotului, acesta poate fi programat pentru executarea unui program de lucru printr-o metodă numită TEACH-IN. O altă metodă de instruire manuală se face prin deplasarea fiecărei articulații, se memorarează apoi poziția, iar robotul respectiv trebuie să repete mișcările. Această metodă este denumită PLAY-BACK sau programare repetitivă.

Comanda, în cazul roboților care execută mișcări secvențiale simple și care nu au traductori se realizează în circuit deschis. În schimb, în cazul roboților complecși, cu traductoare si senzori, comanda se face in circuit închis.

În mecatronică, din punct de vedere al modului de realizare a comenzii unui robot, există patru nivele ierarhice:

un nivel decizional – realizează planul de acțiune al robotului conform sarcinilor primite de la operator și modelul mediului pe care robotul îl construiește în funcție de informațiile primite din exterior, cu ajutorul senzorilor;

un nivel strategic – repartizează planul de acțiune: anumite elemente, grupe de elemente pe anumite operații sau grupe de operații;

un nivel tactic – descompune pe rând operațiile sau o grupă de operații în mișcări elementare ale cuplelor cinematice;

un nivel de execuție – emite semnale de comandă corespunzătoare fiecărei acționări.

Primele două nivele ( nivel de execuție și nivel tactic) sunt incluse în toți roboții:

roboții de generația I – cu nivel de execuție și nivel tactic;

roboții de generația II – I + nivelul strategic;

roboții de generația III – II + nivelul decizional.

Orice robot, indiferent de nivelul de generație, trebuie neaparat să permită accesul operatorului uman absolut la toate nivelele ierarhice de comandă.

În ceea ce privește programul robotului se folosesc anumite metode de implementare pentru fiecare nivel:

la nivel de execuție este folosită logica cablată sau microprogramarea;

la nivel tactic este folosită programarea în limbaj de asamblare;

la nivel strategic se folosește programarea în limbaj de nivel înalt;

la nivel decizional, este folosită programarea în metalimbaj sau comunicare vocală.

Prin intermediul traductorilor sau senzorilor de control și a sistemului mecanic, se realizează legătura dintre robot și lumea reală aupra căreia acționeză acesta.

Sistemul de acționare, responsabil cu mișcatul cuplelor robotului, se poate comanda la nivel ierarhic N1 prin intermediul butoanelor, care se conectează printr-o interfață direct la sistemul de acționare. Tot o interfață de acționare se va folosi și în cazul conectării la blocul de nivel ierarhic superior N2.

N2 (nivelul ierarhic) efectuează microprogramarea robotului, fiind alcătuit din tastatura de microcomenzi, dintr-o interfață pentru această tastatură și nu în ultimul rând dintr-un bloc de comandă microprogramat, acesta generând semnal de comandă către interfața de acționare.

Generația I conține aceste tipuri de roboți cu cele două nivele N1 și N2, programarea acestora fiind în limbaj de asamblare.

Următorul nivel ierarhic și anume N3, cuprinde blocul de repartizare plan de operații, acesta din urmă fiind conectat printr-o interfață cu un calculator PC, permițând programarea într-un limbaj de înalt nivel pentru mișcările robotului, conform sarcinilor ce trebuiesc realizate.

Acest gen de comenzi se înâlnesc la roboții care fac parte din generația a II-a. Spre deosebire de cei din generația I, roboții apartenenți generației a II-a conțin traductori/senzori de proximitate, forță, poziție, moment și în unele cazuri chiar si senzori tactili iar datorită acestora, roboții respectivi se pot adapta ușor la mediu.

La ultimul nivel ierarhic, N3, roboții dispun în plus de senzori, cum ar fi cei ce realizează vederea artificială cu ajutorul unei camere video, prelucrând informația video și apoi tranformând-o în semnale numerice, pe baza cărora se creează un algoritm de recunoaștere a formelor.

Lucrurile care permit robotului să-și formeze un model al lumii reale, model memorat în memoria RAM a calculatorului PC (updatat periodic în funcție de datele primite de la traductori) sunt senzorii obișnuiți (de proximitate, de forță, de moment sau poziție) sau senzorii tactili, datorită funcției lor și anume cea de a transmite informațiile din jur către robot precum și sistemul de vedere artificială.

Blocul planificator de operații este responsabil cu exploatarea modelului respectiv și astfel, împreună cu informațiile primite din partea operatorului uman, informații primite prin intermediul calculatorului și a interfeței corespunzătoare, se va genera informația de comandă spre nivelul N2. Un lucru important este faptul că la nivelul acesta există posibilitatea să se găsească și o rețea de calculatoare, operatorul comunicând astfel cu robotul, printr-un metalimbaj asemanănător cu dialogul uman.

Fiecare generație cuprinde și structura de comandă a generației anterioare, accesul operatorului uman la fiecare nivel realizându-se prin intermediul tastaturii, butoanelor, a tastaturii PC sau microfon precum și prin intermediul microcomenzilor.

2.3.1. Controlul pe bază de PLC al roboților

Pentru a programa un PLC (Controller Logic Programabil) este necesar să se pornească de la definirea intrărilor ca evoluție și tip. Un PLC poate avea intrări de tip:

analogic – ca nivel de tensiune, gama cea mai frecvent întâlnită fiind cuprinsă între 0V și 10V curent continuu;

digital – „0” sau „1”; nivelul logic „1” este determinat de valoarea tensiunii de alimentare a PLC-ului; așadar în cazul în care tensiunea de alimentare a controllerului logic programabil este de 24V curent continuu, valoarea pentru „1” logic pe intrări va fi de 24V curent continuu. Totodată în cazul în care tensiunea de alimentare a controllerului logic programabil este de 12V curent continuu, valoarea tensiunii pentru activarea intrărilor va fi tot de 12V curent continuu.

Senzorii de proximitate responsabili cu activarea intrărilor unui PLC prezintă o gamă de tensiune de alimentare cuprinsă între 10V și 30V curent continuu.

Un lucru important de precizat este faptul că în anumite aplicații se pot întâlni cazuri în care intrările sunt doar digitale sau cazuri în care intrările sunt doar analogice. Totuși majoritatea aplicațiilor (cele mai frecvent întalnite) se bazează pe combinațiile de intrări, așadar conțin atât intrări analogice cât si digitale. Un controller logic programabil se poate utiliza pentru comanda succesiunilor simple de operații în liniile de producție, acest lucru bazându-se pe informațiile trimise de senzorii de proximitate la PLC. În cazul de mai sus, automatizarea se bazează pe un program scris ca succesiuni de linii scrise sub formă de Diagramă Ladder (sau Ladder diagram) sau Function Block Diagram sau Statement List.

Executarea programului se face începând cu prima linie sus-stânga „Top rung”. Se parcurge de la stânga la dreapta, linie cu linie până în momentul în care se ajunge la „Bottom rung” (ultima linie) unde se va actualiza ieșirea O:2/3. PLC-ul parcurge toate liniile de program într-un anumit timp, timp ce depinde de mai mulți factori: frecvența procesorului, numărul liniilor de program precum și de timpul unui ciclu.

Figura . Parcurgerea liniilor de program

Pentru a se activa intrările cu semnale digitale, la fiecare din acest tip de intrări se va conecta un element de control care poate fi: un buton cu sau fără memorie, un senzor de proximitate, un întrerupător cu contact normal deschis sau normal închis etc. Pe intrările unui PLC pot ajunge chiar si semnalele de la un alt PLC aflat pe poziția „Master”, față de care primul PLC este subordonat, aflat pe poziția „Slave”.

PLC-urile, pe liniile de producție dar și pe cele tehnologice, sunt așezate la diferite nivele ierarhice. Un PLC se află la nivelul unui post de lucru, la nivelul unei mașini de lucru. Legarea intrărilor și ieșirilor acestui PLC la elemtele de proces se numește configurație hardware, proces în urma căruia urmează programarea sistemului. Pentru a se programa PLC-ul, se apelează la platformele de programare recomandate de producătorul acestuia. În figura 31 este reprezentat circuitul de alimentare a unui PLC, în care se activează intrarea I1 prin intermediul unui contact normal deschis spre 24V curent continuu iar Q1 este ieșirea unde se află circuitul de activare al ieșirii L care poate fi un elctromagnet al unui releu intermediar sau al unui contactor sau poate fi o lampă de semnalizare.

Figura . Acționare-comandă

Figura . Legătura între starea unui releu și simbolistica Ladder

PLC-ul funcționează pe baza unor funcții logice. Principalele funcții logice pe care se bazează funcționarea unui controller logic programabil sunt:

funcția logică „SAU” (OR);

funcția logică „ȘI” (AND);

funcția „INVERSOR” NOT.

În figura 33 este reprezentată succesiunea de etape care stă la baza funcționării unui PLC.

Figura . Etapele în funcționarea unui PLC

Configurația hardware a unui PLC

Configurarea hardware constă în alegerea PLC-ului, a sursei de alimentare, a componentelor care activează intrările precum și a componentelor prin care se corectează procesul:

electromagneți;

contactoare;

actuatori electromecanici;

relee;

semnalizatoare luminoase sau acustice;

elemente care semnalizează starea procesului.

Figura . Accesul la intrările și ieșirile unui PLC

Utilizatorul este cel care stabilește numărul de intrări și totodată cel de ieșiri, în funcție de dificultatea aplicației. PLC-ul are un număr de intrări și ieșiri ca dotare de bază, însă dacă o aplicație necesită mai multe intrări si ieșiri, acest număr se poate extinde prin conectarea unor module. Totuși daca numărul acesta de intrări respectiv ieșiri este mai mare, cu siguranță viteza de lucru a sistemului scade și în același timp timpul de scanare al tuturor intrărilor crește. În cazul automatizării deplasărilor (mișcărilor), dacă unitatea de bază are ca timp de ciclu de scanare a intrărilor din modulul de bază 3ms atunci creșterea acestui număr de intrări nu afectează performanțele de ansamblu ale sistemului, în majoritatea cazurilor întâlnite frecvent.

Pentru a se accesa ieșirile unui PLC se pot folosi sisteme cu microrelee interne care, de cele mai multe ori, oferă un contact normal deschis pe fiecare dintre ieșiri. Interfațarea cu procesul, cel mai adesea, se face cu releu intermediar sau cu un contactor. Dacă se folosește unul din aceste două componente, va crește durabilitatea PLC-ului ca ansamblu, acest lucru justificându-se prin faptul că odată cu distrugerea microreleului intern, PLC-ul devine practic inutil. În aplicațiile practice este recomandat să se realizeze controlul elementelor de proces prin intermediul unui contactor sau releu intermediar.

Pentru programarea PLC-ului se folosesc câmpurile care sunt puse la dispoziție și oferite de către platforma în care se lucrează. Toate PLC-urile, indiferent de marcă, au câmpuri pentru intrări și un singur câmp pentru ieșiri.

În câmpul intrărilor pot fi plasate imagini ale intrărilor, ieșirilor, timere-lor, memoriilor, contactoarelor etc., ce au rolul de operanzi.

Controllerul logic programabil analizează starea intrărilor și apoi se ocupă de executarea programului, urmând ca apoi sa prelucreze logic starea logică a intrărilor, a imaginilor celorlalte elemente din programul aplicație și în fine, transferă rezultatul spre ieșirile corespunzătoare programului aplicație. Programul aplicație se definește ca fiind un program realizat de operatorul uman, având la bază o platformă de programare, pentru a rezolva o problemă a procesului automatizat, iar apoi ciclul se reia din nou de la faza scanării intrărilor.

Figura . Fazele executării ciclice a programului în PLC

Procesul de execuție ciclică a programului este specifică doar PLC-urilor. Caracteristica aceasta este considerată o calitate care le-a făcut să devină acele calculatoare de proces care pun pe prim plan starea procesului, spre deosebire de alte calculatoare care pun pe primul loc alte activități pe care procesorul trebuie să le rezolve. Spre deosebire de un PC, la care procesorul primește informația pentru a fi procesată, având la bază priorități care deseori nu țin cont de exteriorul acestuia sau de un posibil proces industrial, la un PLC nu apare niciodată mesajul „Așteaptă”. Pentru un PLC cele mai prioritare sunt intările, starea lor și trecerea acestora de la o stare la alta în așa fel încât orice schimbare a unei intrări duce la execuția întregului program aplicație memorat într-o memorie internă a controllerului, numită memorie de program. PLC-ul este considerat un calculator creat pentru a automatiza procesele industriale, având o structură minimală, fiabilitate și comportament corespunzător și benefic în mediul industrial, având un consum mic de energie.

Figura . Execuția ciclică a programului

2.3.2. Controlul pe bază de uC al roboților

Microcontrolerul este un circuit integrat inteligent în care utilizatorul își „transferă” o parte din inteligența proprie, mai exact în memoria acestuia respectiv în procesul de programare a microcontrollerului. Pentru utilizare este nevoie de anumite unelte de dezvoltare și anume:

editor;

compilator;

simulator;

programator.

Alegerea tipului de microcontroler este unul din cei mai dificili pași deoarece gama actuală de mictrocontrolere este foarte variată. Pentru ca un microcontroler să execute diferite operații, o condiție necesară, însă nu suficientă, o reprezintă scrierea unui program.

Scrierea unui program se poate face într-un anume limbaj de nivel înalt (cu ajutorul compilatoarelor C, Basic, Pascal, etc) sau într-un limbaj de asamblare corespunzător microcontrolerului.

O altă definiție pentru microcontroler consideră ca acesta este un microcircuit care incorporează o unitate centrală (CPU) și o memorie cu resurse care creează practic legătura cu mediul exterior.

Aceste resurse integrate de care dispune microcircuitul includ în cele mai multe cazuri, următoarele componente:

unitatea centrală (CPU) – cu oscilator intern și un „sistem clock” (ceas de sistem);

memoria locală (ROM/PROM/EPROM/FLASH, unele având si o memorie de tip RAM);

sistemul de întreruperi;

porturi I/O ( input/output – intrări/ieșiri) acestea fiind porturi paralele;

portul serial asincron și/sau sincron programabil;

sistemul de timere programabil;

Unele microcontrolere mai costisitoare pot fi dotate cu:

un ADC – convertor analog-digital cu una sau mai multe intrări analogice;

un DAC – convertor digital-analogic cu ieșiri PWM (Pulse Width Modulation);

o memorie de date de tip EEPROM (nevolatilă);

un comparator analogic;

îmbunătățiri ale sistemului de temporizare;

un Watchdog ( ceas de gardă);

îmbunătățiri în privința consumul propriu.

La nivelul CPU, microcontrolerul mai prezintă elemente de prelucrare la nivel de bit, de acces direct și ușor la I/O a informației și un mecanism eficient și rapid de prelucrare a înteruperilor.

Figura . Schema bloc a unui microcontroller

Microcontrolerele au cel mai mare grad de utilizare în domeniul roboticii și mecatronicii.

Un microcontroler poate executa un program dat în felul următor: programul este stocat în memorie iar unitatea aritmetico-logică citește o instrucțiune din memorie, o decodează și în final o execută. După finalizarea procesului respectiv, se transportă o altă instrucțiune din memorie care va fi și ea executată. Tot procedeul se repetă până în momentul în care se găsește sfârșitul programului sau atunci când programul programul intră într-un ciclu infinit.

Înainte de execuția programului trebuie conectat microcontrolerul la o sursă de tensiune pentru ca acesta să realizeze un scurt control asupra sa, identifică apoi începutul programului și abia apoi se ocupa cu executarea programului implementat.

Un domeniu mai aparte în lucrul cu microcontrolerele este așadar, scrierea programului ceea ce se rezumă la programarea microcontrolerelor. Înainte de a se hotărî în ce limbaj se va programa, trebuie ținut cont de anumite cerințe legate de viteza de execuție, de mărimea memoriei și timpul disponibil pentru asamblarea sa. Inițial și uneori chiar și în ziua de astăzi, programarea microcontrolerelor se făcea doar în limbaj de asamblare, acesta fiind un limbaj cu un nivel destul de scăzut, programarea făcându-se greoi și lent. Cu toate acestea, metoda respectivă prezintă avantaje prin faptul că folosește un spațiu mic de memorie și în același timp oferă cele mai bune rezultate atunci când se are în vedere viteza de execuție a programului. În momentul de față există tot mai mult tendința ca programarea microcontrolerelor să se facă în limbaje din ce în ce mai avansate, în limbaj de înalt nivel. Limbajul C este considerat cel mai utilizat limbaj, deoarece deși este un limbaj de nivel înalt, păstrează cel mai bine contactul cu partea hardware a computer-ului, contact care deseori se pierde în limbajele de nivel înalt.

Scopul activității de programare a robotului este acela de a transfera o succesiune de mișcări complexe către controler-ul robotului, folosind instrucțiuni simple și diferite metode, astfel încât sa poată fi automatizat un proces de fabricație. Programarea roboților cu microcontrolere are ca principale avantaje:

se pot dezvolta programe complexe prin folosirea unor structuri de programare (if… then…, for…, while… do…, etc);

sunt ușor de tratat semnale de senzori și de utilizat comenzi pentru ieșiri digitale;

se pot testa cu ușurință programele create (simulare);

încărcare (recuperare) a programelor din microcontrolerul robotului (download, upload sau backup).

Pentru deplasarea roboților, microcontrolerul comandă un anumit tip de motor. Astfel, pentru a permite motorului să ruleze în ambele sensuri (înainte și înapoi), între microcontroler și motor trebuie conectat un circuit electronic numit driver (ridicător de tensiune) ce conține o „punte H” sau „H Bridge”. Rolul acesteia este de a permite aplicarea unei tensiuni pe o sarcină în orice sens. Circuitele respective sunt folosite adesea în robotică și în multe alte aplicații, când este nevoie ca un motor sa se deplaseze în ambele direcții.

O punte H este un circuit alcătuit din patru tranzistoare care acționează asemănător unor întrerupătoare, iar poziția acestora determină sensul de rotire al motorului. În practică se folosesc, cel mai frecvent, tranzistoare bipolare sau MOS-FET.

Numele derivă de la modul obișnuit de desenare a circuitului. Aceasta este singura cale de tip solid state de a comanda motorul în ambele sensuri de rotație.

Figura . Principiul de funționare al punții H

În stânga figurii de mai sus comutatoarele A1 și A2 sunt închise iar curentul va trece prin ele, sensul de parcurgere al acestuia realizându-se prin A1-motor-A2, motorul rotindu-se în acest moment în sensul acelor de ceasornic. În partea stângă a figurii de mai sus, celelalte două comutatoare B1 respectiv B2 sunt închise și curentul va trece prin ele și prin motor, acesta rotindu-se acum, în sens invers acelor de ceasornic.

Figura . Modul de circulație al curentului printr-o punte H realizată cu tranzistoare MOSFET complementare

În total există =16 poziții posibile ale comutatoarelor. În general se folosesc se folosesc doar patru:

toate deschise – motorul se află în stand-by;

A1, A2 deschise iar B1, B2 închise – motorul se va învârti în sensul acelor de ceasornic;

A1, A2 închise iar B1, B2 deschise – motorul se va învârti în sens invers acelor de ceasornic;

A1, B2 sunt închise iar A2, B1 sunt deschise sau invers – motorul este frânat.

De precizat un lucru foarte important este faptul că niciodată comutatoarele de pe o latură a punții (A1+B1 sau A2+B2) nu trebuie să fie închise simultan deoarece se face scurtcircuit astfel curentul va trece direct de la alimentarea Vdd prin tranzistoare spre ground (GND) fapt ce duce la arderea tranzistoarelor. În practică, pentru evitarea acestui risc, tranzistoarele de pe o latură se comută simultan (unul este off iar celălalt on), prin legarea intrărilor celor două tranzistoare între ele. Legând intrările de pe o parte si cealaltă rămân doar doi pini ce trebuie comutați on-off, având doar cele patru combinații descrise mai sus.

Figura . Puntea H L293

În figura de mai sus se poate observa că integratul are patru intrări (input) logice (0V sau 5V) si patru ieșiri (output) de putere (0V sau 12V). Fiecare ieșire corespunde fiecărei intrări, obținându-se practic o translatare a nivelului logic 0.5V în nivelul logic 0.12V, acesta din urmă oferind și tensiune si curent mare ( 12V respectiv 0.6A până la 1A în funcție de capsulă)

Totodată, există doi pini de Enable (EN1 pentru Output 1 și 2, EN2 pentru Output 3 și 4) folosiți pentru validarea celor patru ieșiri. Acești doi pini, împreună cu cei patru pini de Input se conectează la un microcontroler care gestionează acționarea acestora. Această modalitate de conectare la microcontroler oferă avantajul comandării turației motoarelor prin PWM (Pulse Width Modulation). În cele mai frecvente cazuri, microcontrolerul are un număr limitat de ieșiri PWM. Așsadar, factorul de umplere variază între 0% – 100% și astfel apare posibilitatea de a obține orice tensiune între 0 si 12V.

Figura . Factorul de umplere PWM

În graficul prezentat se pot observa trei cazuri:

în care se obține 25% din tensiunea de alimentare ( 0.25*12V=3V);

în care se obține 50% din tensiunea de alimentare (6V);

în care se obține 75% din tensiunea de alimentare (9V), etc.

Pe lăngă factorul de umplere, trebuie folosită o frecvență care să influențeze cât mai puțin modul de lucru al motorului. Valoarea cel mai des întâlnită a frecvenței este de 25KHz, aceasta fiind suficientă pentru un motor.

2.4. Concluzii

În ziua de azi se preconizează creșteri semnificative de implementare a roboților în majoritatea domeniilor.

Dupa o scurtă perioadă de la apariția roboților, în procesele de fabricație s-a pus accentul pe folosirea lor în activități în care sănătatea factorului uman este pusă în pericol sau în situații în care accesul omului este aproape imposibil. Astfel, roboții au început să fie utilizați în medii periculoase (centre nucleare, inspecția canalelor și a țevilor, dezamorsarea bombelor etc.) pentru reducerea factorului de risc asupra omului. Automatizarea lor a progresat încetul cu încetul și astfel s-a ajuns de la simple ghidări până la introducerea unor funcții automate cum ar fi executarea automată a unor operații succesive etc., în medii cu grad de periculozitate ridicat.

În ceea ce privește viitorul, se va pune accent pe următoarele detalii:

scăderea costurilor;

pe nivelul de creștere al calității;

pe nivelul de creștere al productivității;

menținerea pe piața globală a competivității;

modernizarea tot mai avansată a tehnicilor de transfer om-robot în mediile nesigure.

CAPITOLUL 3

PROIECTAREA UNUI ROBOT

Prin prezenta lucrare mi-am propus următoarele obiective:

realizarea unui studiu asupra roboților industriali

implementarea unei aplicații pe bază de uC

Așadar, in cele ce urmează, se va prezenta punctual, o aplicație bazată pe două microcontrolere încorporate pe două plăci de dezvoltare „Arduino UNO” între care există o comunicare serială. Mai exact cu ajutorul acestora dar și al altor componente electrice (motoare de curent continuu, driver de motor, senzor ultrasonic, servomotor etc.) s-a realizat un robot mobil pe roți, ce are ca funcție principală evitarea obstacolelor din jurul lui.

Este cunoscut faptul că pentru roboții mobili, cea mai importantă caracteristică înainte de toate este cea de evitare a obstacolelor din jurul lor pentru a se elimina orice coliziune care poate să apară între aceștia și diferite obiecte. Fără această calitate, roboții ar avea o mișcare mult mai fragilă si în același timp restricționată de imprejurimi.

Robotul mobil trebuie să fie conceput, atât din punctul de vedere al structurii hardware dar și software, ca fiind foarte eficient la fiecare calcul sau acțiune pe care o execută, adică, mai precis, să fie capabil să ia decizia cea mai potrivită în cel mai scurt interval de timp posibil. În cazul de față, robotul trebuie sa detecteze obstacolele din jur într-un mod cât mai eficient și să se oprească sau să își schimbe orientarea într-o direcție liberă.

3.1. Proiectarea structurii mecanice

În cadrul acestui subcapitol se efectuează calcule legate de solicitările si de forțele care apar la nivelul structurii robotului. Tot aici se va proiecta întregul ansamblu (robotul) cu ajutorul programului CATIA v5R20.

Mai întâi, în Tabelul 1 sunt evidențiate principalele specificații ale motoarelor de curent continuu folosite în cadrul aplicației, iar în Figura 42 sunt cotele de gabarit ale acestora.

Tabelul 1. Principalele caracteristici ale motorului

Figura . Cotele de gabarit ale motoarelor

Pentru o trecere cursivă prin toate calculele, acestea au fost introduse in programul MATLAB. În primă fază, va fi prezentat codul cu toate calculele, urmând apoi să se explice fiecare tip de calcul efectuat. În Figura 43 se poate observa întregul set de calcule efectuat pentru proiectarea structurii mecanice a aplicației.

Figura . Calculele specifice ale structurii mecanice realizate în programul MATLAB

După cum a fost specificat mai sus, în continuare se vor explica, pe rând, bucăți din întregul program.

În primă fază s-a calculat valoarea tensiunii pe care o consumă motoarele, în funcție de valoarea factorului de PWM aleasă în codul sursă, valoarea maximă a factorului de PWM, valoarea tensiunii consumate de driver și în funcție de valoarea tensiunii maxime la care pot fi alimentate cele două motoare. Astfel, dupa cum este prezentat și în Figura 44, s-a constatat faptul ca motoarele robotului sunt alimentate cu o tensiune de aproximativ 8 V.

Figura . Calculul tensiunii care alimentează motoarele

În pasul următor, în Figura 45 se calculează turația motoarelor la noua valoare a tensiunii, în funcție de turația maximă a motoarelor, valoare a turației obținută atunci când acestea sunt alimentate la tensiune maximă.

Figura . Calculul turației motoarelor

Pentru a se ințelege logica de calcul a vitezei atinse de robot, s-a efectuat o schiță a modului de gândire, cu ajutorul paginii web www.draw.io, prezentată în Figura 46.

Figura . Modul de gândire pentru calculul vitezei robotului

Astfel, se poate observa că pentru a determina viteza constantă cu care se mișcă robotul, trebuie cunoscuți parametrii cum ar fi raza roții robotului sau distanța d parcursă de robot la o rotație completă a roților. Exact aceste calcule sunt reprezentate în Figura 47, în care se poate observa valoarea finală a vitezei pe care robotul o are în condiții optime de funcționare.

Figura . Calcul vitezei constante a robotului

Se cunoaște faptul că, la orice robot, mașinărie sau obiect folosit cu un scop, într-un anumit domeniu, asupra acestuia, cu trecerea timpului și nu numai, apar anumite forțe și solicitări. În Figura 48 este reprodusă o schemă de calcul de rezistență simplificat, a robotului folosind pagina web www.draw.io. Cele două reazeme sunt de fapt roțile robotului iar bara de susținere reprezintă baza acestuia (plăcuța realizată din plexiglas).

Figura .Schema modului de gândire pentru calculul solicitărilor apărute asupra robotului mobil

Comform regulilor de calcul provenite din domeniul rezistenței materialelor și aplicate asupra robotului în cauză, se constată faptul că pentru a determina reacțiunile veerticale de la nivelul roților, se ține cont de masa întregului ansamblu și de anumite distanțe (lungimi) dintre anumite puncte de pe suprafața lui. În urma calculelor efectuate în Figura 49, se constată faptul că valoarea reacțiunilor verticale de la nivelul roților este aceeași.

Figura . Calculul forțelor de legătură de la nivelul reazemelor structurii

În final, s-a calculat forța tangențială care apare la nivelul roților, în funcție de anumite caracteristici inițiale standard ale motoarelor. Pe site-ul www.draw.io s-a realizat o schemă a metodei de calcul, prezentată în Figura 50.

Figura . Modul de abordare al calcului forței tangențiale

Din datele tehnice ale motorului se poate determina cuplul M1 (cuplul înainte de reductor) pentru ca apoi în funcție de acesta să se determine cuplul final M2 (= cuplul rezultat în urma introducerii reductorului la motorul de curent continuu). În funcție de acesta din urmă și totodată în funcție de dimensiunea roții robotului, s-a aflat valoarea forței tangențiale apărute la nivelul roților, conform Figurii 51.

Figura . Calcul forței tangențiale

Pentru proiectarea robotului, s-a folosit programul CATIA (Computer Aided Three Dimensional Interactive Application) versiunea V5R19. Acesta fiind un program profesionist 3D și extrem de complex din punct de vedere mecanic, electric, etc., oferă oportunitatea de a crea corpuri, obiecte etc., până la cele mai mici detalii ale acestora. Astfel, în figurile care urmează este proiectată întocmai aplicația propusă.

Figura . Imagine de ansamblu a robotului mobil

Figura . Robotul mobil – vedere din spate

Figura . Robotul mobil observat din diferite unghiuri

3.2. Configurația hardware

Robotul este alcătuit din diferite componente electronice, fiecare îndeplinind un rol diferit. Realizându-se o legătură între toate acestea, se obține un sistem mobil, capabil să depisteze și să evite obstacolele care îi ies în cale.

Pentru a se întelege cu exactitate structura robotului, cu ajutorul paginii web www.draw.io.com, s-a realizat o schemă bloc a sistemului reprezentată în Figura 55.

Figura . Schema bloc a unui robot care evită obstacolele cu două microcontrollere

„Creierul” acestui sistem este reprezentat de două microcontrollere ATmega328P integrate pe două plăci Arduino UNO, între care există o comunicație serială prin intermediul căreia se trimite informația de la un microcontroller la celălalt. Mai exact unul din cele două microcontrollere este responsabil cu captarea infromației din jur iar celălalt primește această informație pe care o prelucrează și o execută. După cum se poate observa și in schema bloc, s-au folosit denumiri simbolice de „MASTER” și respectiv „SLAVE” care se referă la ce s-a rolul pe care îl au cele două plăcuțe de dezvoltare în timpul funcționării aplicației:

Master – microcontrollerul care preia, calculează datele și transmite informația;

Slave – microcontrollerul care primește, prelucrează și execută comanda.

În continuare se vor prezenta pe scurt componentele care compun întregul ansamblu.

Arduino UNO

După cum s-a specificat mai sus, microcontroller-ul folosit se numește ATmega328P integrat pe un Arduino UNO. Ca și principale caracteristici pentru Arduino UNO, se menționează următoarele:

are un alt microcontroller intermediar numit ATmega 16U2 prin intermediul căruia se trimit date seriale între placa Arduino și computer;

are 14 pini digitali input/output (intrare sau ieșire), 6 dintre aceștia având si funcție de PWM (Pulse With Modulation) și 6 pini pentru intrări analogice (care pot fi folosiți și ei ca pini digitali) + pini de alimentare;

are un microcontroller ATmega328P pe 8 biți;

deține o interfață de tip USB;

SRAM de 2kB;

are un port serial SPI;

are 2 contacte ICSP ( In-Circuit-Serial-Programming);

este prevăzut cu un buton de reset.

Figura . Arduino UNO – structura hardware

Figura . Arduino UNO – Schema electrică

Motorul de curent continuu

Motorul, în general, reprezintă principalul element care permite deplasarea robotului, putând fi perceput ca una din cele mai importante piese în construcția unui robot. În majoritatea aplicațiilor de acest tip, cel mai utilizat motor este cel de curent continuu atât cu perii cât și fără perii.

Motorul de curent continuu cu perii

comutația pentru învârtirea rotorului se realizează electronic;

mai poartă denumirea de motor fără colector datorită faptului că nu are perii și colector;

se controlează cu ajutorul unui microcontroller ESC (Electronic Speed Controll) care de obicei are două module principale: driver și senzori Hall cu ajutorul cărora se citește poziția rotorului pentru a putea comuta simultan polaritatea magneților poziționați în stator;

este avantajos din punctul de vedere al randamentului, având o valoare a acestuia destul de ridicată;

nu are nevoie de întrețineri speciale.

Motorul de curent continuu fără perii

nu are nevoie de sistem de control al rotorului deoarece perii realizează controlul acestuia, polarizând câte un electromagnet atunci când ajung în dreptul unei borne, iar electromagnetul ajuns în dreptul bornei rămânând nepolarizat, totul relizându-se prin intermediul comutatoarelor în formă de arc de cerc;

dacă nu este controlat corespunzător, intervine fenomenul de frecare, care duce la încalzirea periilor până când aceștia se lipesc de colector sau până în momentul în care nu mai fac contact.

În general, motoarele de curent continuu sunt cel mai utilizat tip de moatoare deoarece sunt foarte simplu de controlat.

Pentru deplasarea robotului respectiv s-au folosit două motoare de curent continuu cu perii cu un raport de reducere al turației de 48:1, datorită controlului relativ ușor al lor, nefiind suprasolicitate sau solicitate pe perioade îndelungate. De obicei, motoarele pot funcționa maxim la o dată și jumătate din tensiunea lor nominală și minim la jumătate din aceasta.

Figura . Motoreductor de curent continuu

Driver-ul L298N

Controlul motoarelor de c.c. se face prin intermediul unui driver L298 cu punte H. Datorită faptului că placa Arduino UNO nu are capacitatea de a scoate pe porturile sale o putere mare necesară pentru a învârti un motor, se folosește acest modul L298. Dacă acesta nu ar fi conectat între Arduino și motoare, motoarele fiind în acest caz legate direct la porturile microcontroller-ului, apare un grad mare de probabilitate de ardere a procesorului de pe placă. Astfel intervine rolul acestui driver care îndeplinește funcția de amplificator de putere, luând putere de la sursa de alimentare (în cazul acesta de la acumulator) și transmițând-o către motoare în funcție de cum îi comandă microcontroller-ul. L298 este un driver de nivel mediu în ceea ce privește cantitatea de putere pe care o poate conduce.

Figura . Driver-ul L298

Figura . Schema bloc a driver-ului L298

Senezorul ultrasonic HC-SR04

Robotul are capacitatea de a depista obstacolele datorită unui senzor ultrasonic. Cu ajutorul acestuia se obține bine-cunoscuta funcție a roboților și anume “vederea artificială”. Principiul de funcționare al acestui tip de senzori este unul simplu. Emite impulsuri sonore scurte, de frecvențe înalte, la intervale regulate de timp, ca apoi să urmeze fenomenul de propagare cu viteza sunetului (de aici și numele de senzor ultrasonic) în aer a acestor unde. În eventualitatea în care undele se lovesc de un obiect în drumul lor, vor fi reflectate înapoi ca semnal de ecou către senzor. Acesta din urmă va calcula distanța și va realiza diferența de timp între semnalul emis de el și ecoul primit. Pentru ca senzorul să poată determina distanțafață de obiectul propriu-zis, măsoară timpul pe care l-a parcurs unda emisă.

Figura . Senzor ultrasonic HC-SR04

Figura . Modul de funcționare al senzorului ultrasonic HC-SR04

Servomotorul SG90

Servomotorul este folosit ca o alternativă. Cu alte cuvinte, în acest caz, reduce numărul senzorilor ultrasonici. Dacă acesta nu se folosea, pentru o funcționare corectă a robotului, trebuiau conectați cel puțin trei senzori ultrasonici, per total. În cadrul acestei aplicații, rolul servomotorului este de a ajuta senzorul sa depisteze obiectele, rotindu-se 180 de grade. Totuși, s-a demonstrat prin teste, că acest tip de servomotor nu își atinge limitele de 0 și respectiv 180 de grade, însă are o funcționare ideală între 5-10 grade și 165-170 grade, îndeajuns pentru robotul respectiv să se descurce într-un mediu în care există obstacole. Dacă se forțează limitele specificate, este posibil ca acest tip de servomotor să se defecteze.

Figura . Micro Servomotor SG90

Figura . Schema electrică a unui servomotor

Întregul sistem este alimentat de către un acumulator de la firma GENS ACE, Li-Po de 11,1 [V] și 1000 [mAh]. Acest tip de acumulatori are una din cele mai mari valori ale densității de energie 120Wh/kg. , Având 1000 [mAh], curentul maxim pe care îl poate oferi în timpul funcționării este de 25A. Tensiunea pe o celulă are o valoare de 2.775 [V] și variază direct proporțional cu procentul de încărcare al bateriei. Astfel, fiind alcătuit din patru celule, facilitează alimentarea motoarelor alese, încadrându-se în plaja acestora de utilizare.

Ca principale dezavantaje ale acestui tip de acumulator Li-Po sunt:

în cazul unei supraîncărcări, poate avea loc o explozie a acumulatorului sau totodată inflamarea lui;

procesul de încărcare nu trebuie sa atingă valoarea de 100% din întregul potențial dar totodată nu trebuie lăsat să se descarce până la valoarea de 0% și astfel se reduce riscul de scădere al performanțelor;

necesită un încărcător special;

există riscuri foarte mari, ca datorită unor fenomene nedorite cum ar fi scurt-circuitul sau anumite șocuri, să explodeze sau să se imflameze.

Figura . Acumulator Li-Po Gens ace

Pentru a descrie în detaliu legăturile între componente și totodată pentru a înțelege relațiile dintre toate acestea, descrise anterior, s-a realizat o schema de legături cu ajutorul platformei www.fritzing.org.

Figura . Legătura între componentele robotului

Notă: După cum se poate observa și în Figura 66, pe lângă componentele menționate, s-au mai folosit și câteva componente adiționale pentru o mai bună funcționare a robotului.

Acestea sunt:

un LED (Light Emitting Diode) – cu rol de semnalizare a existenței tensiunii de alimentare în circuit;

un rezistor – cu rol de protecție împotriva arderii LED-ului;

un buton de start/stop – pentru pornirea, respectiv oprirea motoarelor;

un breadboard (sau plăcuță de test) – pentru multiplicarea pinilor de alimentare, a celor de 5 V și respectiv a celor de masă (GND).

În Figura 67 este prezentată schema electrică a robotului. Aceasta a fost realizată cu ajutorul paginii web www.easyeda.com.

Figura . Schema electrică a aplicației propuse

3.3. Programarea sistemului

Cele mai importante componente din întregul ansamblu al robotului sunt cele două microcontrollere ATmega328P integrate pe plăcile „Arduino UNO”. De ce un controller de la Arduino și nu de alte tipuri de brand-uri cum ar fi cele de la firma Microchip, ATMEL etc.? Răspunsul este simplu. Arduino este o platformă gratuită, accesibilă pentru orice pasionat atât din punctul de vedere al situației financiare cât și din punctul de vedere al experienței în domeniu. Această platformă este considerată atât un produs software cât și un concept open source care se concentrează pe realizările tehnice concrete cum ar fi: cablaje electronice, scheme etc.).

După cum precizam, Arduino are o parte software care este integrată într-o interfață grafică de tip IDE (Integrated Development Environment) bazată pe limbajul de programare Processing. Pentru a programa microcontrollerul existent pe plăcuță, Arduino are propiul său limbaj de programare numit „Arduino language”

Notă: IDE este un mediu de dezvoltare a programelor pe PC, folosind diferite limbaje de programare. Cu alte cuvinte este un software ajutător, astfel că programatorii îl utlizează la crearea unor anumite aplicații software, mai exact la crearea lor în mod pragmatic și eficient. În funcție de cât de vechi sau modern este IDE-ul, acesta poate conține un editor de texte tipic, un compilator, diferite unelte care reduc gradul de dificultate în construcția interfețelor programelor,un debugger, browsere de clase sau diagrame pentru ierarhizarea claselor. În general, fiecare IDE este tipic unui anumit limbaj de programare.

IDE-ul Arduino este creat pentru scrierea programelor care se pot încărca pe platformele fizice. În Java este scrisă interfața, mediul de programare folosind limbaje de programare de tip open source cum ar fi avr-gcc sau Processing. Arduino are așa numita interfață multiplatformă care poate rula în Windows, Linux și Mac OS X.

Așadar cu platforma Arduino se pot realiza procese fizice care pot funcționa de sine stătător sau totodată există posibilitatea ca acestea să interacționeze cu diferite aplicații ce funcționează pe un PC precum Processing, MaxMSP sau Flash.

Realizând un scurt rezumat se pot scoate în evidență, deci, principalele avantaje ale platformei Arduino:

costurile de achiziție sunt reduse;

posibilitatea folosirii pe orice sistem de operare (mare parte din totoalitatea placilor de dezvoltare fiind limitate la sistemul de operare Windows);

este un mediu de programare simplu și ușor;

este open source.

Mai jos se poate observa, în Figura 68, interfața principală programului.

Figura . Interfața platformei Arduino

Pentru realizarea codului sursă care, încărcat pe plăcuțele Arduino, îi oferă posibilitatea robotului să își îndeplinească sarcina și anume cea de detectare si evitare a obstacolelor, s-au realizat bucăți de cod pentru fiecare componentă în parte regasită în aplicație. Este evident faptul că fiecare element din schemă are propriul său rol, deci și propriul său cod de programare.

Proiectul a fost gândit în felul următor: un microcontroller Arduino este folosit ca fiind un “calculator” sau, cum s-a denumit simbolic mai sus, ca un “Master”. Mai exact la acesta este conectat senzorul ultrasonic și servomotorul. Logica din spatele acestei conexiuni se leagă de calculele pe care microcontrollerul trebuie sa le realizeze in timp real. Senzorul folosit este capabil sa depisteze un obstacol la o distanță maximă de 400-500 cm. Astfel, pentru o precizie foarte bună, acesta a fost programat să depisteze obiectele aflate la lungimi mai mici de 30 cm inclusiv. În momentul în care se întamplă ca senzorul sa depisteze un obiect, intervine rolul servomotorului pe care este plasat acesta. Servomotorul are o mișcare de rotație aproximativă de la 0 până la 170 de grade, el fiind setat să staționeze în mod constant la un unghi de 90 de grade. Astfel când se produce depistarea obstacolului, servomotorul se rotește către 0 grade si respectiv 170 de grade, permițandu-i în acest moment senzorului ulstrasonic să calculeze distanțele din jurul său pentru a-i transmite celui de al doilea microcontroller ce să facă în acel moment. Așadar au fost create patru cazuri diferite pe care primul microcontroller trebuie mereu sa le analizeze și apoi să trimită către celalalt microcontroller cel mai potrivit caz dintre acestea și anume:

dacă apare un obstacol în preajma robotului, acesta trebuie sa se oprească;

dacă este îndeplinit primul caz, robotul trebuie să dea cu spatele și apoi să compare dacă valoarea distanței din dreapta este mai mare decât valoarea distanței din stânga; dacă această condiție este adevarată, robotul trebuie să se deplaseze spre dreapta;

dacă este îndeplinit primul caz, robotul trebuie să dea cu spatele și apoi să compare dacă valoarea distanței din stânga este mai mare decât valoarea distanței din dreapta; dacă această condiție este adevarată, robotul trebuie să se deplaseze spre stânga;

dacă nu există niciun obstacol, robotul trebuie să-și continue mereu deplasarea;

După aceste analize și calcule realizate de către primul microcontroller (master), mesajul (informația, datele de exucuție) va fi trimis de acesta celuilalt microcontroller aflat pe celalaltă plăcuță Arduino UNO folosită, după cum a fost precizat și mai devreme, ca “slave” sau mai corect spus ca un executor. Astfel, intervine rolul celui de-al doilea Arduino pe al căror pini sunt conectate cele două motoare de curent continuu cu reductor 48:1. Altfel spus, în funcție de unul din cele patru cazuri pe care îl primește într-un timp real, acesta comandă starea motoarelor și anume:

niciunul din motoare să nu aibe mișcare de rotație – cazul în care robotul trebuie să se oprească;

ambele motoare să aibe mișcare de rotație în sens antiorar iar în funcție de direcția pe care trebuie sa-și continue deplasarea, doar unul din motoare să mai aibă un același tip de rotație (în sens antiorar) – atunci când robotul trebuie să dea cu spatele și apoi să își schimbe direcția de mers;

ambele motoare să aibe mișcare de rotație în sensul acelor de ceasornic (sens orar) – atunci când robotul se deplasează pe direcția înainte.

Anterior, când s-a vorbit despre conexiunea dintre cele două microcontrollere, s-a folosit termenul de “comunicație serială”. Mai exact, Arduino UNO are doi pini, unul denumit Rx (pentru recepție) iar celălalt numit Tx (pentru transmitere) prin intermediul cărora se poate realiza o comincare bidirecțională. O definiție simplă al acestui concept ar suna în felul următor: Comunicarea serială reprezintă o formă de Input/Output în care într-o secvență sincronizată pe un singur fir, sunt transferați unul câte unul, biții dintr-un byte.

O altă definiție, puțin mai complexă, este dezvăluită de către pagina web www.robofun.ro și sună în felul următor: “ Comunicarea serială este o comunicare de tip digital, în sensul că pe fir se transmit biți (la fel cum se întâmplă într-o rețea de calculatoare, doar că aici se folosește un protocol mult mai simplificat). Această comunicare serială se întâmplă de fiecare dată între Arduino și calculator, atunci când Arduino este programat. O comunicare serială se întâmplă întotdeauna la o anumită rată de transfer, care determină viteza cu care se transmit biții pe fir. Rate comune de transfer sunt 9600, 19200, 57600, 115200.

În cazul acestui robot, s-a folosit un singur fir pentru realizarea comunicării seriale între cele două microcontrollere (comunicarea se realizează într-o singură direcție). Primul Arduino fiind Master va folosi pinul pentru transmitere (Tx) iar cel de al doilea Arduino,fiind Slave, va folosi pinul pentru recepție (Rx).

Logica funcționării acestui robot care evită obstacolele din jurul său este reprezentată în Figura 69 cu ajutorul unui “flowchart” realizat prin intermediul paginii web www.draw.io.

Figura . Flowchart-ul robotului care evită obstacole

3.4. Concluzii

În momentul de față, tehnologia capătă noi forme și în același timp evoluează mai mult decât ne putem noi imagina. Ea a ajuns să facă parte din viață noastră, animându-ni-o într-un fel sau altul. Încetul cu încetul, tehnologia nu mai reprezintă doar o știință exactă, ci capătă o anvergură atât de mare încăt se poate ajunge la concluzia că înseamnă de fapt, putere.

Roboții au fost creați pentru a ne face, nouă, viața mai ușoară. Au căpătat fel și fel de întrebuințări odată cu trecerea timpului și ajung ușor, ușor să înlocuiască, în tot mai multe domenii, ființa omenească. Viitorul, din acest punct de vedere, sună puțin sumbru, însă acest lucru nu se va întâmpla în totalitate, robotul ajungând, în viitor, mai degrabă, să îi ușureze enorm viața omului.

Acest robot mobil care evită obstacolele nu are o întrebuințare fixă. Totuși, cu mici îmbunătățiri cum ar fi determinarea exactă a poziției în care se află, instalarea unui braț manipulator de prehensiune, implementarea de comenzi vocale și multe altele, devine extrem de util în industria construcțiilor, în descărcarea mărfurilor. Chiar și fără aceste “update-uri” , principiul de funcționare al lui, poate fi implementat în ambițiosul target setat de constructorii de automobile și anume target-ul ca în viitorul apropiat, automobilul să se ghideze și să circule singur fără a mai fi nevoie de șofer.

CAPITOLUL 4

APLICAȚII ȘI EXPERIMENTE

Simulări în diferite programe

Ca și o aplicație, am decis să modelez în programul MatLab, tipul de motorul pe care l-am folosit în sistemul de deplasare al robotului mobil și anume mototul de curent continuu. Se va prezenta în continuare aplicația propusă în următoarele figuri.

Figura . Simularea curentului inițial

Pentru a determina valoarea curentului inițial, se introduce în circuit un senzor de curent. Semnalul determinat de acest senzor este convertit cu ajutorul unui convertor și astfel se obține valoarea inițială a curentului afișată în Amperi.

Figura . Conversia puterii electrice în putere mecanică

În circuitul inițial se adaugă un convertor de putere ce are rolul de a converti puterea electrică în puetere mecanică. Mai simplu spus, acesta este elementul care realizează legătura între partea electrică și partea mecanică a motorului de curent continuu. Se poate observa, pe grafic, cum valoarea curentului tinde să scadă odată cu creșterea vitezei de rotație a axului.

Figura . Introducerea unui bloc de amortizare al rotației axului

Se poate observa în Figura 72 cum motorul are o valoare diferită a vitezei finale.

Figura . Măsurarea vitezei motorului

Prin introducerea unui senzor al mișcării de rotație se poate determina grafic valoarea vitezei finale în funcție de timp. În Figura 73, se poate observa faptul că motorul își atinge valoarea maximă a vitezei de rotație după aproximativ 6 secunde.

Figura . Obținerea mișcării de translație a motorului de curent continuu

În figura 74 s-a introdus un arc, acesta reprezentând elementul de translație al motorului. Astfel, motorul se va opri în momentul în care sarcina motorului atinge valoarea prin care comprimă arcul în totalitate, lucru care se poate observa și pe graficul de mai sus din Figura 74. Viteza de rotație a motorului tinde să se ”izoleze” în momentul în care motorul acționează împotriva arcului.

Figura . Determinarea unghiului atins de motor

Dacă se micșorează forța de comprimare a arcului, motorul tinde să atingă mai repede valoarea finală a vitezei de rotație, înainte să execute o rotație completă de 360 de grade, lucru care poate fi ușor sesizabil în Figura 75.

Un alt program foarte complex și util este Proteus8, descărcat de pe web-site-ul http://proteus.soft112.com/, varianta demonstrativă. Astfel, cu ajutorul acestuia, s-a simulat modul de funcționare al senzorului ultrasonic HC-SR 04, într-o manieră puțin mai diferită decât varianta clasică, sau mai bine spus într-un mod specific programului Proteus8. Metoda folosită se poate observa în Figura 76.

Figura . Simularea senzorului ultrasonic în Proteus8

Valorile afișate sunt generate în mod individual, în momentul în care unul din cele trei butoane este apăsat, acestea simulând de fapt, obiecte depistate de senzor la o anumită distanță față de acesta. Codul încărcat pe placa de simulare Arduino UNO, se poate crea și apoi prelua din programul Arduino.

Tot în Proteus8, s-a simulat și funcționarea unui motor de curent continuu. Pentru acest lucru este nevoie de o placa Arduino UNO (NANO, MEGA, etc.), un driver de motor și o baterie. În figura 78 este prezentată simularea respectivă.

Figura . Simularea unui motor de curent continuu în Proteus8

Măsurări cu osciloscopul și cu multimetrul

Figura . Măsurarea și interpretarea semnalului generat de motorul din dreapta robotului

Figura . Măsurarea și interpretarea semnalului generat de motorul din stânga al robotului

Figura . Măsurarea valorii curentului consumat de motoare

Figura . Forma semnalului generat de senzorul ultrasonic HC-SR 04

Figura . Duty Cicle-ul semnalului PWM al servomotorului aflat în diferite poziții

Figura . Semnalul generat de clipărirea LED-ului

CAPITOLUL 5

CONCLUZII FINALE ȘI CONTRIBUȚII

Roboții au căpătat o importanță aparte în viața omului și vrem nu vrem, ei trebuie acceptați. Câteodată chiar și noi, oamenii ajungem să ne comportăm ca ei datorită rutinei zilnice care ne înconjoară. Având în vedere motivul pentru care a fost creat robotul, se poate afirma faptul că reprezintă un beneficiu pentru tot ce înseamnă producție și operare de mașinării și nu numai. Ținând cont de faptul că în majoritatea domeniilor, pe lângă cel ingineresc, se folosesc roboți, având fel și fel de atribuții, e ușor să relizezi ce roluri esențiale îndeplinesc aceștia în locul respectiv. Un exemplu concret ar fi roboții exploratori care trebuie să opereze în locuri cu accesibilitate redusă, periculoase fiind sau teleghidați sau parțial autonomi. Un alt exemplu relevant ar fi roboții care au capabilitatea de a depista bombe și chiar de a le dezamorsa. Același tip de roboți, puțin modificat este capabil să caute oameni îngropați în urma cutremurelor. Analizând doar aceste tipuri de roboți din mulțimea deja existentă, se poate observa cât de cruciali au devenit aceștia în viața omului.

Există o vorbă care spune în felul următor ”Nu îți da cu pararea despre un anumit lucru, până nu ajungi să îl experimentezi”. Aplicația s-a dovedit una foarte interesantă, având în vedere dificultatea pe care o afișa inițial. Este adevărat și faptul că odată ce incepi să aprofundezi din ce in ce mai mult un lucru, cu atât ajungi să îl înțelegi mai bine. Lumea electronicii s-a dezvoltat enorm și este foarte interesant cum un număr de componente electronice, având roluri cu totul și cu totul diferite, ajung să ”conviețuiască” împreună și puse cap la cap, să formeze o aplicație cu totul și cu totul specială și benefică.

În fine, se poate concluziona cu un citat enunțat de către  Cheryl Lynn Bruce; „Nu suntem roboți. Viața este mai palpitantă atunci când ai o opinie.” Altfel spus, omul are capabilitatea să devină un robot, în schimb, robotul nu poate deveni niciodată cu adevărat un OM.

ANEXA 1 – LEGENDA CODULUI SURSĂ

Codul principal este împărțit în două calupuri. Primul poartă denumirea de ”Arduino Calcule” și este încărcat pe placa Arduino la care este conectat senzorul ulstrasonic și servomotorul (pe placa denumită simbolic ”Master”. Cel de al doilea calup de linii de cod este denumit ”Arduino Execuție”, acesta fiind încărcat pe placa Arduino la care este conectat driver-ul cu cele două motoare de curent continuu (pe placa, denumită simbolic, ”Slave”).

Arduino calcule – codul pentru placa denumită simbolic ”Master”

#include <Servo.h>

#include <NewPing.h>

#define TRIGGER_PIN 11 // Arduino pin tied to trigger pin on the ultrasonic sensor.

#define ECHO_PIN 12 // Arduino pin tied to echo pin on the ultrasonic sensor.

#define MAX_DISTANCE 300 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

int MOTOR2_PIN1 = 3;

int MOTOR2_PIN2 = 7;

int MOTOR1_PIN1 = 5;

int MOTOR1_PIN2 = 11;

int a, b, c, d;

int value=0;

char start="<";

char stopp=">";

int distanta_stanga;

int distanta_dreapta;

int i=0;

const byte numChars = 32;

char receivedChars[numChars];

boolean newData = false;

int val=0;

int png=0;

Servo servo;

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {

pinMode(MOTOR1_PIN1, OUTPUT);

pinMode(MOTOR1_PIN2, OUTPUT);

pinMode(MOTOR2_PIN1, OUTPUT);

pinMode(MOTOR2_PIN2, OUTPUT);

pinMode(9, OUTPUT);

pinMode(6, OUTPUT);

Serial.begin(115200);

digitalWrite(9, HIGH);

digitalWrite(6, HIGH);

servo.attach(13);

}

void loop()

{

servo.write(90); //180 stanga

Sonar();

if(val<30)

{

Serial.print('<');

Serial.print(1);

Serial.println('>');

go(0, 0);

servo.write(180);

delay(500);

Sonar();

distanta_stanga=val;

servo.write(0);

delay(500);

Sonar();

distanta_dreapta=val;

//Serial.print(distanta_stanga);

//Serial.print(" ");

//Serial.println(distanta_dreapta);

if(distanta_stanga>distanta_dreapta)

{

Serial.print('<');

Serial.print(2);

Serial.println('>');

go(-200, -200);

delay(250);

go(-200, 0);

delay(400);

}

else if(distanta_dreapta>distanta_stanga)

{

Serial.print('<');

Serial.print(3);

Serial.println('>');

go(-200, -200);

delay(250);

go(0, -200);

delay(400);

}

}

else

{

Serial.print('<');

Serial.print(4);

Serial.println('>');

go(200, 200);

}

}

void go(int speedLeft, int speedRight)

{

if (speedLeft > 0)

{

analogWrite(MOTOR1_PIN1, speedLeft);

analogWrite(MOTOR1_PIN2, 0);

}

else

{

analogWrite(MOTOR1_PIN1, 0);

analogWrite(MOTOR1_PIN2, -speedLeft);

}

if (speedRight > 0)

{

analogWrite(MOTOR2_PIN1, speedRight);

analogWrite(MOTOR2_PIN2, 0);

}

else

{

analogWrite(MOTOR2_PIN1, 0);

analogWrite(MOTOR2_PIN2, -speedRight);

}

}

void Sonar()

{

delay(50);

png=sonar.ping_cm();

if(png != 0)

{

val=png;

}

//Serial.println(val);

}

Arduino execuție – codul pentru placa denumită simbolic ”Slave”

//declarare constante si variabile

const byte numChars = 32;

char receivedChars[numChars];

int MOTOR2_PIN1 = 3;

int MOTOR2_PIN2 = 7;

int MOTOR1_PIN1 = 5;

int MOTOR1_PIN2 = 11;

int ct=0;

int buton=10;

int valoare_buton=0;

const int ledPin = 12;

int ledState = LOW;

unsigned long previousMillis = 0;

const long interval = 50;

int v;

boolean newData = false;

void setup()

{

Serial.begin(115200);

pinMode(13, OUTPUT);

Serial.println("<Arduino is ready>");

digitalWrite(13, LOW);

pinMode(ledPin, OUTPUT);

pinMode(buton, INPUT_PULLUP);

pinMode(9, OUTPUT);

pinMode(6, OUTPUT);

digitalWrite(9, HIGH);

digitalWrite(6, HIGH);

}

void loop()

{

licarire();

recvWithStartEndMarkers();

showNewData();

Serial.println(v);

valoare_buton=!digitalRead(buton);

if(valoare_buton == 1)

{

ct++;

delay(100);

}

if(ct % 2 == 1)

{

if(v == 1)

{

go(0, 0);

delay(100);

}

else if(v == 2)

{

go(-200, -200);

delay(250);

go(-200, 0);

delay(400);

}

else if(v == 3)

{

go(-200, -200);

delay(250);

go(0, -200);

delay(400);

}

if(v == 4)

{

go(200, 200);

}

}

else

{

go(0, 0);

}

}

void recvWithStartEndMarkers()

{

static boolean recvInProgress = false;

static byte ndx = 0;

char startMarker = '<';

char endMarker = '>';

char rc;

// if (Serial.available() > 0) {

while (Serial.available() > 0 && newData == false)

{

rc = Serial.read();

if (recvInProgress == true)

{

if (rc != endMarker)

{

receivedChars[ndx] = rc;

ndx++;

if (ndx >= numChars)

{

ndx = numChars – 1;

}

}

else

{

receivedChars[ndx] = '\0'; // terminate the string

recvInProgress = false;

ndx = 0;

newData = true;

}

}

else if (rc == startMarker)

{

recvInProgress = true;

}

}

}

void showNewData()

{

if (newData == true)

{

v=atoi(receivedChars);

//digitalWrite(13, receivedChars);

newData = false;

}

}

void go(int speedLeft, int speedRight)

{

if (speedLeft > 0)

{

analogWrite(MOTOR1_PIN1, speedLeft);

analogWrite(MOTOR1_PIN2, 0);

}

else

{

analogWrite(MOTOR1_PIN1, 0);

analogWrite(MOTOR1_PIN2, -speedLeft);

}

if (speedRight > 0)

{

analogWrite(MOTOR2_PIN1, speedRight);

analogWrite(MOTOR2_PIN2, 0);

}

else {

analogWrite(MOTOR2_PIN1, 0);

analogWrite(MOTOR2_PIN2, -speedRight);

}

}

void licarire()

{

unsigned long currentMillis = millis();

if (currentMillis – previousMillis >= interval)

{

previousMillis = currentMillis;

if (ledState == LOW)

{

ledState = HIGH;

}

else

{

ledState = LOW;

}

digitalWrite(ledPin, ledState);

}

}

ANEXA 2 – LEGENDA FIGURILOR

Figura 1. Roboți șarpe 5

Figura 2. Vehicule conduse automat 5

Figura 3. Roboți chirurgi 6

Figura 4. Schema bloc a unui robot 8

Figura 5. Structura mecanică a unui robot industrial 12

Figura 6. Reprezentare punct caracteristic si dreaptă caracteristică/auxiliară 14

Figura 7. Schema bloc a sistemului de acționare al robotului 16

Figura 8. Schema sistemului de acționare electrică 18

Figura 9. Structura unui sistem de acționare electrică 19

Figura 10. Principiul invertorului tensiune/frecvență 21

Figura 11. Componența unui invertor/frecvență 21

Figura 12. Caracteristica cuplu-alunecare 22

Figura 13. Caracteristica naturală a MAS 23

Figura 14. Caracteristici artificiale a MAS 23

Figura 15. Caracteristici prin modificarea frecvenței 24

Figura 16. Motorul de curent continuu cu excitație derivație 25

Figura 17. Caracteristica naturală a MCC cu excitație derivație 26

Figura 18. Schema conexiunii serie a MCC cu excitație derivație 27

Figura 19. Caracteristica turație – cuplu 27

Figura 20. Pășirea normală, secvență simplă 28

Figura 21. Distribuția impulsurilor pe bobinele motorului pas cu pas 29

Figura 22. Rotirea motorului pas cu pas unipolar în cazul secvenței duble 29

Figura 23. Rotirea motorului pas cu pas în cazul comenzii simple 30

Figura 24. MPP bipolar, curenții prin bobine la secvență simplă 30

Figura 25. MPP bipolar, secvență simplă, compunerea forțelor la fiecare pas 31

Figura 26. MPP bipolar, secvență dublă, compunerea forțelor la fiecare pas 31

Figura 27. MPP bipolar, secvență mixtă, compunerea forțelor la fiecare pas 31

Figura 28. MPP unipolar, comandă liniară prin ½ pași, compunerea forțelor 32

Figura 29. MPP bipolar, comandă liniară prin ½ pași, compunerea forțelor 32

Figura 30. Parcurgerea liniilor de program 36

Figura 31. Acționare-comandă 37

Figura 32. Legătura între starea unui releu și simbolistica Ladder 38

Figura 33. Etapele în funcționarea unui PLC 38

Figura 34. Accesul la intrările și ieșirile unui PLC 39

Figura 35. Fazele executării ciclice a programului în PLC 40

Figura 36. Execuția ciclică a programului 41

Figura 37. Schema bloc a unui microcontroller 43

Figura 38. Principiul de funționare al punții H 45

Figura 39. Modul de circulație al curentului printr-o punte H realizată cu tranzistoare MOSFET complementare 45

Figura 40. Puntea H L293 46

Figura 41. Factorul de umplere PWM 47

Figura 42. Cotele de gabarit ale motoarelor 50

Figura 43. Calculele specifice ale structurii mecanice realizate în programul MATLAB 52

Figura 44. Calculul tensiunii care alimentează motoarele 52

Figura 45. Calculul turației motoarelor 53

Figura 46. Modul de gândire pentru calculul vitezei robotului 53

Figura 47. Calcul vitezei constante a robotului 54

Figura 48.Schema modului de gândire pentru calculul solicitărilor apărute asupra robotului mobil 54

Figura 49. Calculul forțelor de legătură de la nivelul reazemelor structurii 55

Figura 50. Modul de abordare al calcului forței tangențiale 55

Figura 51. Calcul forței tangențiale 56

Figura 52. Imagine de ansamblu a robotului mobil 56

Figura 53. Robotul mobil – vedere din spate 57

Figura 54. Robotul mobil observat din diferite unghiuri 57

Figura 55. Schema bloc a unui robot care evită obstacolele cu două microcontrollere 58

Figura 56. Arduino UNO – structura hardware 59

Figura 57. Arduino UNO – Schema electrică 59

Figura 58. Motoreductor de curent continuu 61

Figura 59. Driver-ul L298 61

Figura 60. Schema bloc a driver-ului L298 62

Figura 61. Senzor ultrasonic HC-SR04 62

Figura 62. Modul de funcționare al senzorului ultrasonic HC-SR04 63

Figura 63. Micro Servomotor SG90 63

Figura 64. Schema electrică a unui servomotor 64

Figura 65. Acumulator Li-Po Gens ace 65

Figura 66. Legătura între componentele robotului 65

Figura 67. Schema electrică a aplicației propuse 67

Figura 68. Interfața platformei Arduino 69

Figura 69. Flowchart-ul robotului care evită obstacole 72

Figura 70. Simularea curentului inițial 73

Figura 71. Conversia puterii electrice în putere mecanică 74

Figura 72. Introducerea unui bloc de amortizare al rotației axului 74

Figura 73. Măsurarea vitezei motorului 75

Figura 74. Obținerea mișcării de translație a motorului de curent continuu 75

Figura 75. Determinarea unghiului atins de motor 76

Figura 76. Simularea senzorului ultrasonic în Proteus8 77

Figura 77. Simularea unui motor de curent continuu în Proteus8 77

Figura 78. Măsurarea și interpretarea semnalului generat de motorul din dreapta robotului 78

Figura 79. Măsurarea și interpretarea semnalului generat de motorul din stânga al robotului 78

Figura 80. Măsurarea valorii curentului consumat de motoare 79

Figura 81. Forma semnalului generat de senzorul ultrasonic HC-SR 04 79

Figura 82. Duty Cicle-ul semnalului PWM al servomotorului aflat în diferite poziții 80

Figura 83. Semnalul generat de clipărirea LED-ului 80

Similar Posts