Controlul Unui Robot Industrial Prin Smartphone Ul cu Android

PROIECT DE DIPLOMĂ

CONTROLUL UNUI ROBOT INDUSTRIAL PRIN SMARTPHONE-UL CU ANDROID

CUPRINS

Introducere

Capitolul 1. Roboți industriali

1.1. Clasificarea roboților mobili

1.2. Tipuri de roboti

1.3. Structura roboților mobili

1.3.1. Sistemul de locomoție cu șenile

1.3.2. Sistemul de locomoție cu roți

1.4. Acționarea roboților mobili

1.4.1. Elemente constructive ale mașinii de curent continuu

1.4.2. Regimul de motor al mașinii de curent continuu

1.4.3. Comanda motoarelor de curent continuu

1.5. Sistemul senzorial

1.5.1. Clasificarea senzorilor

1.5.2. Fuziunea datelor de la senzori

1.6. Sisteme de comunicare

1.7. Unități centrale de procesare

1.8. Domenii de utilizare

1.8.1. Aplicații ale roboților mobili în medii ostile omului

1.8.2. Aplicații în zone inaccesibile omului

Capitolul 2. Prezentarea robotului mobil

2.1. Structura robotului

2.2. Schema electrica a robotului mobil

2.3. Șasiul robotului mobil

2.4. Farurile

2.5. Minidifuzorul

2.6. Modulul Bluetooth

Capitolul 3. Platforma de dezvoltare Arduino Uno

3.1. Descriere generală a platformei Arduino Uno V3

3.2. Prezentare hardware a platformei Arduino Uno

3.2.1. Alimentarea platformei Arduino

3.2.2. Descrierea pinilor

3.2.3. Semnale PWM

3.3. Programarea platformei

3.4. Microcontrolere

3.4.1. Noțiuni generale privind microcontrolerele

3.4.2. Prezentarea microcontrolerului Atmega328

Capitolul 4. Mediul de programare Arduino

4.1. Prezentarea mediului de programare

4.2. Modul de instalare a mediului de programare și încărcarea unui program

4.3. Instrucțiuni Arduino utilizate pentru programarea robotului

Capitolul 5. Programele realizate pentru robotul mobil

5.1. Programul Arduino al robotului mobil

5.2. Programul pentru platforma Android

Concluzie

Bibliografie

Anexa

INTRODUCERE

Visul de a crea oameni artificiali si ființe artificiale este la fel de vechi ca si umanitatea. Roboti au ajutat la evolutia fiintei umane simplificand munca fizica. Domeniile lor de aplicare se lărgesc mereu, ei putând fi utilizați în medicina, constructii, administratie locala, agricultura, hoteluri si restaurante, in gospodarie, industrie, transporturi, în sfera serviciilor, în cunoașterea oceanului și a spațiului cosmic, în cercetarea științifică etc. Termenul robot (din cehă robota) a fost utilizat de Josef Čapek și Karel Čapek în lucrările lor de science fiction la începutul secolului 20. Cuvântul robot dateaza de peste 4 mii si este de origine slavă și se poate traduce prin: muncă, clacă sau muncă silnică. Karel Čapek a descris în piesa sa R.U.R. din anul 1921 muncitori de asemănare umană, care sunt crescuți în rezervoare. Denumirea de astăzi a creaturilor lui Čapek este de android. Roboții sunt sisteme mecanice, comandate de sisteme de conducere ale acestora, fiind realizați cu scopul de a executa, operații asemănătoare acțiunilor omului și nu numai.

Robotul este in principiu un operator virtual sau mecanic insă companiile constructoare definesc in moduri diferite termenul de robot.Asfel Japan Industrial Robot Association spune că: „Robotul este un dispozitiv versatil și flexibil care oferă funcții de deplasare similare celor ale membrelor umane sau ale cărui funcții de deplasare sunt comandate de senzori și de mijloace proprii de recunoaștere.”. General Motors afirmă că: ”Robotul este un echipament fizic cu funcționare programabilă, capabil să efectueze anumite operații și secvențe de operații orientate spre manipularea de piese, scule, subansamble.” Cei de la Robot Institute of America și anume: „Robotul este un manipulator multifuncțional, reprogramabil, destinat deplasării materialelor, pieselor, sculelor, sau altor dispozitive specializate prin mișcări variabile, programate pentru a îndeplinii anumite sarcini”. Primele modele de mașini pot fi mai degrabă numite automate (provenind din grecescul automatos, care se mișcă singur). Acestea nu puteau executa decât câte un singur obiectiv, fiind constrânse de construcție.Matematicianul grec Archytas a construit, conform unor relatări, unul dintre aceste prime automate: un porumbel propulsat cu vapori, care putea zbura singur. Acest porumbel cavernos din lemn era umplut cu aer sub presiune. Acesta avea un ventil care permitea deschiderea și închiderea printr-o contragreutate. Au urmat multe modele dealungul secolelor. Unele înlesneau munca iar altele deserveau la amuzamentul oamenilor.

Cu descoperirea ceasului mecanic din secolul XIV s-a deschis calea unor posibilități noi și complexe. Nu mult după aceea au apărut primele mașini, care semănau îndepărtat cu roboții de azi. Posibil era însă numai ca mișcările să urmeze una după alta, fără să fie nevoie de intervenția manuală în acel sistem.

Anul 1956 este considerat ca anul nașterii a robotului industrial. George Devol a depus candidatura în acest an în SUA pentru un patent pentru "transferul programat de articole". Câțiva ani după aceea a construit împreună cu Joseph Engelberger UNIMATE. Acest robot de cca. două tone a fost mai întâi introdus în montarea de iconoscoape pentru televizoare, găsindu-și apoi drumul în industria automobilă. Programele pentru acest robot au fost salvate sub formă de comenzi direcționate pentru motoare pe un cilindru magnetic. Din acest moment se introduc roboți industriali ca UNIMATE în multe domenii ale producției fiind permanent dezvoltați mai departe pentru a putea face față cererilor complexe care li se impun.

George Devol a înregistrat în anul 1954 primul patent pentru un robot industrial. Roboții industriali din prezent nu sunt de obicei mobili. După forma și funcția lor, domeniul lor operațional este restrâns. Ei au fost introduși pentru prima oară pe linia de producția a General Motors în1961. Roboții industriali au fost folosiți prima dată în Germania la lucrări de sudură începând din 1970.

Printre roboții industriali se numără și roboții de portale, care sunt introduși în producția de wafere, în instalații de turnat colofoniu sau la măsurări. În prezent roboții industriali execută și probleme de maniabilitate. 

Apariția deasă a roboților în film și literatură a atras atenția științei asupra acestui tip de mașini. Domeniul științific, care se ocupă de construcția roboților se numeșterobotică. Termenul a fost folosit pentru prima dată în 1942 de Isaac Asimov în cartea sa, Runaround. Un domeniu general teoretic științific, care se ocupă de roboți, nu există. Acestea sunt mai ales subdomenii ale informaticii.

In situația folosirii in scopuri pașnice, robotii industriali pot influienta pozitiv calitatea vietii oamenilor prin inlocuirea lor in spatii: periculoase, cu conditii necunoscute de exploatare, conditii de mediu daunatoare omului etc.

Atunci cand vorbim despre roboti trebuie sa aducem in discutie si inteligența artificială care  este un termen tehnic provenit din limba engleză: Artificial Intelligence, prescurtat AI, care desemnează un domeniu de cercetare în cadrul informaticii. În vorbirea curentă este un produs rezultat în urma desfășurării acestei activități.

Definiția cea mai acceptată a inteligenței artificiale a fost dată de John McCarthy în 1955: “o mașină care se comportă într-un mod care ar putea fi considerat inteligent, dacă ar fi vorba de un om”.

În informatică, în general, avem doua tipuri de inteligența artificială:

inteligență artificială puternică (strong AI): prin aceasta se înțelege o inteligență artificială, de obicei bazată pe un computer, care chiar poate "gândi" și este "conștientă de sine".

inteligență artificială slabă (weak AI): o inteligență artificială care nu pretinde că poate gândi, putând însă rezolva o anumită clasă de probleme într-un mod mai mult sau mai puțin "inteligent", de exemplu cu ajutorul unui set de reguli.

O trăsătură des întâlnită a inteligenței artificiale este aceea că sistemul respectiv este capabil să învețe, cu sau chiar fără ajutoare externe, cu scopul de a se îmbunătăți permanent.

Scopul acestei lucrări „CONTROLUL UNUI ROBOT INDUSTRIAL PRIN SMART-PHONE-UL CU ANDROID”, este acela de a descrie modul în care se realizează comanda unui robot industrial, echipat cu microcontroler ATmega328 și a unei interfețe Bluetooth, prin intermediul mediilor de programare Arduino și Eclipse, specific platformei de dezvoltare open-source utilizate pentru robotul respectiv. Lucrarea va contine: structura robotului, componentele robotului și acțiunile pe care acesta le poate efectua.

CAPITOLUL 1. Roboți industriali

Robotul industrial – reprezintă un  sistem electro-pneumo-hidro-mecanic care este dotat cu mai multe grade de libertate, capabil să execute automat și autonom operații de manipulare sub controlul unui sistem de comandă echipat cu memorie programabilă. [1]

Figura 1.1. Roboți industriali FANUC (Japonia) [2]

Clasificarea roboților industriali

Principalele criterii de clasificare și tipologia roboților industriali:

După forma mișcării, roboții industriali pot fi:

Figura 1.2. Robot cartezian [4]

1. Robot cartezian (fig.1.2.)-este robotul al cărui braț operează într-un spațiu definit de coordonate carteziene; optimizarea sistemelor flexibile de producție (SFP) prin robotizare;
2. Robot cilindric – este robotul al cărui braț operează într-un spațiu definit în coordonate cilindrice;

3. Robot sferic (sau polar) – este robotul al cărui braț operează într-un spațiu definit în

coordonate sferice sau polare;

4.”Prosthetic robot” – este un manipulator care are un braț articulat;
5. Roboți în alte tipuri de coordonate – care sunt definiți în mod corespunzător.

După informația de intrare și modul de învățare, criteriu după care roboții se clasifică în:

1. Manipulator manual – este actionat direct de catre om;

2. Robot secvențial – are anumiți pași ce „ascultă” de o procedură predeterminată. Acesta poate fi:

– Robot secvențial fix – la care informația predeterminată nu poate fi schimbată facil.
– Robot secvențial variabil  – la care informația predeterminată poate fi modificată ușor.
3.Robot repetitor (robot playback) (fig. 1.3.). La început omul învață robotul o procedură de lucru, robotul memoreaza procedura, apoi o poate repeta de câte ori se cere;
4.Robot cu control numeric. Robotul execută operațiile cerute în conformitate cu informațiile numerice pe care le primește despre poziții, succesiuni de operații și condiții;
5.Robot inteligent  – este cel care își decide comportamentul pe baza informațiilor primite prin senzorii pe care îi are la dispoziție și prin  posibilitățile sale de recunoaștere.

După numărul gradelor de libertate ale mișcării robotului (2 – 7 grade de libertate plus unele mișcări suplimentare: orientarea dispozitivului de prehensiune, prinderea, desprinderea obiectului manipulat etc.) roboții industriali pot fi:

1.Roboți cu un numar mic (2-3) de grade de libertate;

2.Roboti cu un numar mediu (4-5) de grade de libertate;

3.Roboti cu un numar mare (6-7) de grade de libertate.

Dupa metoda de control roboții industriali pot fi:

1.Manipulatoare simple (manipulator manual si robot secvențial ):dispun in general de 2-3 grade de libertate iar miscarile sunt controlate prin dispozitive si functioneaza dupa principiul „tot sau nimic”,capacitatea si supletea fiind limitate.

2.Roboti programabili (robot repetitor si robot cu control numeric):au un numar mai mare de grade de mobilitate decat 3.De obicei robotul este independent de mediu, fiind lipsit de capacitati senzoriale si lucrand in bucla inchisa;

3.Roboti „inteligenti”, sunt dotati cu capacitatii senzoriale , lucreaza in bucla inchisa, au sisteme de coordonare intreorganele de executie si „simturi”.

Dupa caracteristicile de comanda – exista patru tipuri de bază pentru roboți industriali:

1.Robot cu servocomandă si conturare;

2.Robot cu servocomanda punct cu punct;

3.Robot fara servocomanda, programabil;

4.Robot neprogramabil, cu dispozitive de transfer „pick and place”.

Dupa tipul de comanda si performanta intelingentei artificiale, robotii industriali se clasifica in:

1.Roboții industre operații și condiții;
5.Robot inteligent  – este cel care își decide comportamentul pe baza informațiilor primite prin senzorii pe care îi are la dispoziție și prin  posibilitățile sale de recunoaștere.

După numărul gradelor de libertate ale mișcării robotului (2 – 7 grade de libertate plus unele mișcări suplimentare: orientarea dispozitivului de prehensiune, prinderea, desprinderea obiectului manipulat etc.) roboții industriali pot fi:

1.Roboți cu un numar mic (2-3) de grade de libertate;

2.Roboti cu un numar mediu (4-5) de grade de libertate;

3.Roboti cu un numar mare (6-7) de grade de libertate.

Dupa metoda de control roboții industriali pot fi:

1.Manipulatoare simple (manipulator manual si robot secvențial ):dispun in general de 2-3 grade de libertate iar miscarile sunt controlate prin dispozitive si functioneaza dupa principiul „tot sau nimic”,capacitatea si supletea fiind limitate.

2.Roboti programabili (robot repetitor si robot cu control numeric):au un numar mai mare de grade de mobilitate decat 3.De obicei robotul este independent de mediu, fiind lipsit de capacitati senzoriale si lucrand in bucla inchisa;

3.Roboti „inteligenti”, sunt dotati cu capacitatii senzoriale , lucreaza in bucla inchisa, au sisteme de coordonare intreorganele de executie si „simturi”.

Dupa caracteristicile de comanda – exista patru tipuri de bază pentru roboți industriali:

1.Robot cu servocomandă si conturare;

2.Robot cu servocomanda punct cu punct;

3.Robot fara servocomanda, programabil;

4.Robot neprogramabil, cu dispozitive de transfer „pick and place”.

Dupa tipul de comanda si performanta intelingentei artificiale, robotii industriali se clasifica in:

1.Roboții industriali de generația 1 – acționează pe baza unui program flexibil, dar prestabilit de programator și care nu se poate schimba in timpul executiei operatiilor;

2. Roboții industriali de generația a 2-a – se caracterizeaza prin faptul ca programul flexibil prestabilit de programator poate fi modificat in masura restransa, in urma unor reactii specifice ale mediului;

3. Roboții industriali de generația a 3-a – au insusirea de a-si adapta singuri folosindu-se de niste dispozitive logice, in masura restransa propriul program la conditiile concrete ale mediului ambiant, vederea optimizarii operatiilor pe care le executa. [1]

Dupa modul de construcție se clasifica în: [3]

1.Roboți de constructive standard neputându-se interveni pentru modificarea substantial a structurii lor; exemple: roboții japonezi ROBITUS RA și ROBITUS RB ,robotii din familia UNIMATE-S.U.A.

2.Roboți “articulți” în structura cărora intră elementele artificiale între ele de unde rezultă lanțuri cinematice spatiale deschise (Type 80 vertical – Franța) și lanțuri cinematice spațiale închise (TRALLFA – Norvegia-fig.1.4).

3.Roboți de construcție modulară, de obicei constituiți din module de rotație,module de orientare, module de transmisie, elemente de legatura etc. Exemple: robotii din familia KAUFELDT).

Caracteristici ale roboților industriali [3]

Caracteristicile tehnice ale roboților industriali cuprind: precizia, valorile deplasărilor realizabile, dimensiuni, numărul gradelor de libertate, timpul de acționare, spațiul de lucru, masa robotului, viteza, capacitatea sistemului de control și comandă,condițiile de lucru, sarcina transportabilă etc.

1.2.1. Capacitatea de ridicare

Este marimea masei maxime pe care o poate prinde si menține în orice poziție robotul industrial; cele mai uzuale modele de manipulatoare și roboti industriali au capacitatea de ridicare cuprinsă intre 10 – 160kg.

1.2.2. Gradul de mobilitate

Acesta se determină ca fiind capacitatea robotului de a executa deplasări regionale, globale și locale. Deplasarea regional a brațului se realizează în limitele pozitiei de lucru a robotului fiind determinate de raza maxiă de deservire. Deplasarea globală se realizează pe distanțe care depășesc raza maxima de deservire atunci când e necesară deplasarea robotului de la o mașină-unealtă la alta. Deplasarea locală este aceea prin care se realizează aducerea piesei manipulate în poziția necesară.

1.2.3. Zona de lucru

Zona de lucru – spatial în care în timpul funcționării se regăsesc mecanismele de execuție ale robotului, fiind caracterizată de:

-volumul de lucru, de fapt volumul maxim în care se poate găsi brațul robotului industrial în timpul funcționării;

-volumul de lucru util reprezentând volumul corespunzător spațiului în care brațul realizează lucru mecanic util în concordanță cu programul robotului;

-raza maxim[ de deservire, represent\nd distanța cea mai mare dintre axa de simetrie a corpului robotului până la axa brațului în poziția în care este încă posibilă prinderea și menținerea piesei de masă maximă.

1.2.4. Numărul gradelor de libertate

Reprezintă numărul posibilitaților de mișcare a brațului robotului industrial fără a lua în considerare gripperul. Acesta trabuie stabilit asfel încât să aibă minumul necesar pentu a corespunde destinației robotului.

1.2.5. Schema cinematică structurală

Aceasta determină posibilitățile funcționale și cinematice ale roboților industriali.

Cinematica manipulatoarelor și roboților industriali influiențează construcția și posibilitățile funcționale. Analiza cinematicii roboților industriali se face după tipul mișcarilor (rotație sau translație), numărul gradelor de libertatesi succesiunea acestora. Numărul gradelor de libertate ale unui robot determină o varietate mare de variante posibile de scheme cinematice structurale acest lucru îngreunând alegere schemei cinematice structurale optime.

Pentru a ușura analiza alegerii corecte a cinematicii, robotii se pot împărti după rolul funcțional: cinematica baitului, cinematica brațului, cinematica articulațiilor.

1.2.6. Cinematica baitului

Luând în considerare destinația funcțională și exemplele de construcții de roboți existenți, se consideră că este de ajuns dacă baitul are un singur grad de libertate caracteristic sistemului de deplasare sau zonei de lucru.

1.2.7. Cinematica brațului

Gradele de libertate ale mișcărilor care asigură deplasarea spațială a mâinii mecanice pentru un batiu nedeplasabil caracterizează cinematica brațului robotului. Dualitatea permite brațului robotului să se deplaseze în “zona umbrită” a obstacolelor și obiectelor, aceste proprietăți sunt prezente la laturile cinematice compuse din două cuple cinematice de rotație cu axe paralele sau cuple cinematice de translație și de rotație cu axe perpendiculare penrtu că cupla de transmisie o percede pe cea de rotație.

1.2.8. Cinematica articulației

Aceasta e caracterizată de gradele de libertate ale mișcărilor care asigură orientarea pieselor transportate, deplasarea piesei din articulație având un character local. Alegerea cinematicii articulației depinde de cinematica brațului adică de caracterul deplasărilor piesei din poziția finală. Articulația brațului trebuie să asigure menținerea orientării inițiale a piesei si deasemenea să permit realizarea unor rotiri ale piesei.

Aplicații ale roboților industriali în construcția de automobile

În prezent în lume, cu scopul de a contribuii la îmbunătățirea productivitații și a calității, reducerii costurilor, îmbunătății condițiilor de muncă se utilizează roboții industriali care au capacitatea de a se adapta mai bine în anumite condiții, chiar extreme, asfel avem:

Figura 1.5. Exemplu mod utilizare roboți în domeniul auto [8]

1.3.1 Roboții industriali utilizați în sectoarele de sudare [7]

În ultima vreme una din principalele utilizării a roboților industriali pe plan mondial a fost în domeniul sudării prin puncte a caroseriilor de automobile. În prezent există o mare varietate de piese care se sudează. Piesele alcătuite din tablă subțire și semigroasă se pretează bine la sudarea robotizată. Sudarea prin puncte se aplică în multe domenii dar a câștigat un vast teren de aplicații și în domeniul auto la sudarea caroseriilor. Sudarea cu arc electric se utilizează de obicei la produsele realizate în serie mare, dar se regăsește și în aplicațiile la serii mici de fabricație. La ora actuală activitatea se concretizează prin linii și chiar fabrici de montaj complet robotizate care sunt coordonate de un calculator de proces central și câțiva operatori care au rolul de a supraveghea și de a intervenii atunci când e cazul.

În cazul sudării cu arc electric, este necesar ca roboții să asigure o deplasare continuă cu o viteză variabilă în limite largi și o precizie bună de poziționare a capului de sudare față de axa îmbinării. Există mai multe tipuri de asfel de roboți: robot de sudare în CO2, tip braț articulat care este deservit de un manipulator care are două posturi de lucru. Sistemul de avans al sârmei fiind fixat într-o consolă pe sursa de sudare; robot de sudare de tip coloană unde pistolul de sudare este fixat pe antebraț existând posibilitatea poziționării prin rotire; robot pentru sudare MIG – MAG este cel cu braț articulat, acesta este cuplat cu panoul de comandă, sursa de curent și butelia de gaz având și posibilitatea deplasării pe o cale de rulare protejată printr-un burduf; robotul de sudare tip turelă, acesta putând deservi un manipulator

cu două posturi de lucru, prin pivotare și rotație. Cele mai utilizate metode în instalațiile industriale de sudare utilizate pentru fabricație în cadrul liniilor de producție în prezent sunt tehnica Metalului cu Gaz Inert (MIG) sau sudura Metal cu Gaz Activ (MAG). Procedeul Metalului cu Gaz Inert (MIG) utilizează efectul de protecție al gazelor inerte care este combinat cu alimentarea continuă cu electrod metalic. [7]

Figura 1.6. Roboți industriali UNIMATE – SUA [9]

Deasemenea procesul de sudare electrică prin presiune în puncte este foarte răspândit în industria auto și nu numai în special la îmbinarea nedemontabilă a tablelor de grosimi reduse. Cei mai frecvent utilizați roboți utilizați în acest proces sunt roboții dezvoltați de firma UNIMATION INC. – S.U.A. din seria 4000 (fig. 1.6.). Aceștia având sistemul lor propriu de coordonate de tip sferic. Datorită capacității portante ridicate și a volumului de lucru util mare acești roboți au fost utilizați pe scară largă la automatizarea flexibilă utilizându-se seriile specializate UNIMATE 6000. Aceștia având posibilitatea de a fi montați și vertical efectul fiind necesitatea unui spațiu de instalare mult mai redus fiind dotați cu instalația de sudare prin presiune înglobată în braț, această soluție foarte eficientă fiind preluată și de alte firme inclusiv din România. Roboții cartezieni cuprind și mecanisme de orientare deosebit de eficiente și evoluate. Ei combind avantajul unui spațiu de lucru mare, furnizat de sistemul cartezian, cu cel al flexibilității ,accesibilității și vitezei ridicate care sunt specifice roboților în coordonate polare. O altă categorie de roboți frecvent întâlnită în acest tip tip de aplicații este reprezintă de roboții în coordonate polare.

1.3.2. Roboții industriali utilizați în sectoare de turnare sub presiune [7]

În ceea ce privește introducerea utilizării roboților domeniul industrial al turnării sub presiune a fost un pionier. O dată cu trecerea timpului tot mai multe firme se ocupă cu turnarea în piese a metalelor, utilizeazând roboți atât pentru a scoate muncitorii din locurile de muncă periculoase dar și pentru a putea face față competiției pe piață prin introducerea procedeelor moderne de turnare, asfel numărul roboților Unimate aflați în lucru în domeniul turnării sub presiune este de departe superior numărului de roboți care lucrează cu alte procedee de turnare. O dată cu utilizarea roboților în acest domeniu industrial s-a înțeles și faptul că trebuiesc dezvoltate sisteme de turnare în forme mai durabile și mai fiabile, dacă se dorește ca robotul să fie utilizat la nivelul cel mai ridicat al performanțelor sale. Într-un atelier practica standard de turnare sub presiune constă din a urma următoarea succesiune de operații: turnare, evacuare, răcire, debavurare.

1.3.3. Roboții industriali utilizați în sectoarele de presare la rece și forjare [7]

Robotul își poate folosi capacitatea de a manipula metalul incandescent, trecerea de la un program de fabricație la altul realizându-se destul de ușor prin schimbarea dispozitivului de prehensiune și a programului. De obicei se utilizeaz[ robo’i industriali simpli cei cu 3 – 4 grade de libertate cunoscându-se că manipularea se poate executa, frecvent, într-un plan. Datorită specificului operației de forjare se impun condiții speciale dispozitivului de prehensiune al robotului, acesta trebuie executat din materiale speciale, având în vedere faptul că manipulează obiecte la temperaturi mari, ce pot ajunge până la 1 200 OC, uneori este neaparată răcirea dispozitivelor de prehensiune și, de mare importanță, izolarea lor eficientă de restul structurii robotului, deoarece de cele mai multe ori, dimensiunea piesei forjate diferă mult de dimensiunea inițială a piesei fiind recomandă utilizarea de dispozitive de prehensiune duble.

1.3.4. Roboții industriali utilizați în sectoarele de tratamente termice [7]

După cum s-a prezentat în pararafele anterioare la turnarea sub presiune, forjare, presare robotul a demonstrat că își poate plasa “mâna mecanică” într-un cuptor, într-o matriță sau în spațiul de lucru al oricărei alte mașini, cu o precizie înaltă pentru a apuca/depune o piesă, acestea sunt mișcările utilizate și în cazul tratamentelor termice, fiind evident faptul că roboții nu simt căldura materialului pe care îl apucă pentru a-l transfera din cuptor sau baia de

tratament termic într-o baie de răcire sau într-o nișă.

1.3.5. Roboții industriali utilizați în sectoarele de vopsire [7]

Dacă suprafețele de vopsit sunt simple, atunci se utilizează manipulatoare industriale secvențiale cu 2 sau 3 grade de libertate, dar pentru forme mai complexe și de serie mare, se impune adesea soluția robotizării. Chiar și în cazul folosirii roboților, locul de muncă se plasează în cabină de protecție care este dotată cu instalație de aspirare pentru a împiedică răspândirea gazelor nocive. Roboții și-au găsit

aplicația în diverse domenii ale protejării suprafețelor din care se menționează: aplicarea peliculei de vopsea pe elementele caroseriei, în special pe partea de jos a caroseriei automobilelor; aplicarea vopselei pe diferite componente (ale automobilelor, aparatelor electronice etc.) înaintea asamblării;aplicarea de email lichid pe căzi de baie;aplicarea peliculei de glazură pe instalații sanitare;înmuierea pieselor în email lichid;aplicarea materialului fotosensibil pe peretele ecranului de televizor.

1.3.6. Roboții industriali utilizați în deservirea mașinilor-unelte și paletizare [7]

Manipulatoarele secvențiale sunt utilizate de mult timp pentru acest tip de operație și în special atunci când mișcările de efectuat sunt simple și seriile de fabricație importante, datorită reducerii semnificative a timpilor ajutători. Un braț motorizat folosit pentru încărcarea/descărcarea cu semifabricate/piese prelucrate sau pentru schimbarea sculelor așchietoare este în multe cazuri integrat construcției mașinilor unelte cu comandă numerică, mișcările brațului fiind programate în același timp cu operațiile mașinii. Mașinile-unelte combinate în procesele de producție cu roboți industriali formează sisteme flexibile de producție. Principalul avantaj al utilizării robotului este micșorarea timpului necesar pentru

înlocuirea piesei sau sculei.Roboții pot realiza și alte funcțiuni, asociate posturilor de prelucrare prin așchiere, cum ar fi: scoaterea pieselor defecte cu ajutorul senzorilor vizuali, așezarea pe palete de transport, așezarea pieselor în dispozitive de control, încărcarea și descărcarea de mici mașini.

Unitățile centrale de procesare [11]

Un robot industrial poate avea de îndeplinit sarcini variate, începând cu cele mai ușoare și terminând cu cele mai complexe. În funcție de tipul de sarcini atribuite unui robot industrial, descompunerea și procesarea sarcinilor în acțiuni simple pe care robotul le poate executa necesită prezența unei unități centrale de procesare, care se poate afla pe robot (engl. onboard) sau la distanță conectată de acesta prin diverse metode (engl. offboard). Un dezavantaj major, în cazul în care necesitățile computaționale ar fi mari, s-ar putea ca o unitate centrală de procesare să nu existe astfel încât să se încadreze în limitele fizice și geometrice dorite ale robotului, caz în care aceasta nu poate fi instalată. Bineînțeles că o unitate de procesare onboard are și aventaje printre care: în cazul unor probleme de comunicare, robotul poate acționa în continuare autonom; dispar întârzierile asociate comunicației între o unitate de procesare off-board și componentele electronice ale robotului; unitățile de procesare onboard au acces direct la hardware-ul robotului, în timp ce unitățile offboard trebuie să apeleze la un anumit protocol care să interfațeze între componente și unitate.

Desigur că soluția cea mai bună este ca robotul să poate funcționa atât în regim de comunicare cu alte unități de procesare mai performante, care pot asigura necesitățile computaționale pentru sarcini mai complexe cât și autonom prin intermediul unei unități de procesare onboard.

În practică unitățile de comunicare onboard se aleg în așa fel încât să aibă suficientă putere de calcul pentru a îndeplini majoritatea sarcinilor simple. Unitățile offboard sunt de obicei reprezentate de calculatoare personale (PC).

Sistemul de acționare al roboților industriali

În sistemul de acționare al unui robot industrial sunt cuprinse totalitatea surselor energetice ale robotului și deasemenea elementele de control direct ale acestora. Asfel prin sistem de acționare se înțelege ansamblul motoarelor și convertoarelor prin care se obține energia mecanică necesară deplasării robotului și dispozitivele suplimentare ce controlează acest transfer energetic.

Sistemul de acționare e alcătuit din:

*sursă primară de energie;

*sistem de conversie al energiei primare în energie mechanică;

*sistem pentru transmisia energiei mecanice la articulația corespunzătoare;

*control al parametrilor caracteristici ale acestor sisteme.

Structura generală a unui sistem de acționare (fig. 1.8.).

Figura 1.8. Structura uniu sistem de acționare

Cele mai uzuale sisteme de acționare folosesc următoarele surse primare de energie:

*energie pneumatică;

*energie hidraulică;

*energie electrică;

1.5.1. Acționarea pneumatică [12]

Principala caracteristică la aceste dispozitive este utilizarea aerului ca fluid compresibil al sistemului de acționare.

Avantajele utilizării sistemelor pneumatice:

*simplitatea echipamentului de acționare;

*robustețea dispozitivelor utilizate;

*raportul putere/greutate relative ridicat;

*rezistența la suprasarcini de valori mari;

*nepoluarea mediului de lucru;

*sisteme de control simple.

Compresibilitatea aerului face ca aceste sisteme de control să fie utilizate de obicei la elementele care lucrează pe principiul “binar” fără a fi neaparat un reglaj intermediar.

Pentru controlul poziției unui element mecanic aceste sisteme pneumatice sunt rar utilizate datorită performanțelor slabe rezultate în comparație cu cele electrice sau hidraulice, aceste rezultate slabesunt datorate compresibilității aerului care introduce un timp de propagare, de întârziere, în dinamica dispozitivului.O deficiența ete constituită și de faptul că acest tip de sisteme folosește controlul după debit, acest parametru nefiind indicat întotdeana pentru controlul pneumatic al unei mișcări, de aceea, este recomandată utilizarea unui control al presiunii care duce la o îmbunătățire importantă a performanțelor dar este mult mai costisitor și complex.

Motoarele pneumatice sunt: liniare și rotative (cu membrană sau cu piston). Motoarele liniare (cilindrii) au o gamă largă de aplicații și se construiesc într-o gamă tipo-dimensională extrem de diversificată.

Clasificare generală a cilindrilor după tipul constructiv:

*cilindri cu simplă acțiune (simplu efect):

* cu revenire cu arc;

*cu revenire sub acțiunea unei forte rezistente.

*cilindri cu dublă acțiune (dublu efect):

*cu tijă unilaterală;

*cu tijă bilaterală.

*cilindri în tandem:

*cu amplificare de forță;

*având cursa în două trepte.

Figura 1.9. Cilindru cu simplă acțiune [12] 

Cilindrii cu simplă acțiune (cilindrii cu simplu efect) (fig.1.9.) aceștia se utilizează doar acolo unde pe cursa de avans (sau cea de retragere) este necesară dezvoltarea forței motoare: dispozitive de fixare și de prindere, împingerea pieselor, opritoare, ștanțe, etc.În acest mod, doar o cameră a cilindrului este alimentată cu aer comprimat, revenirea în poziția inițială se realiză sub acțiunea resortului. Forța teoretică de avans (neglijând frecările interne) este dată de presiunea ce acționează pe suprafața pistonului din care se substrage forța de reacțiune a arcului. Forța arcului este calibrată în așa fel încât aduce înapoi pistonul fără sarcină până la poziția sa inițială. De regulă se utilizează de pentru curse de pana la 100 mm.

Figura 1.10. Cilindru cu dublă acțiune [12] 

Cilindrii cu dublă acțiune (cilindrii cu dublu efect) (fig. 1.10.) aceștia se utilizează cu precădere acolo unde ambele curse trebuie să dezvolte forță motoare. Din punct de vedere constructiv prezintă două orificii pentru aer comprimat, prevăzute în capacele cilindrului.

Cilindrii în tandem (fig. 1.11.) alcătuiesc un ansamblu (tandem) compus din doi cilindri cu dublă acțiune într-o singură unitate cu scopul amplificării forței exercitate de cilindru (până la dublu). Acest cilindru este utilizat acolo unde este nevoie de putere mărită și gabarit diametral relative redus impus de condițiile de instalare.

Figura 1.11. Cilindru în tandem [12] 

1.5.2.Acționarea hidraulică [13]

Acest tip de acționare se poate utiliza la acționări simple pentru roboți industriali mijlocii și greii, utilizați manipulării sarcinilor în sectoare calde, în minerit, în turnătorii etc.

Motoarele hidraulice sunt utilizate pe post de elemente de execuție în cadrul sistemelor electrohidraulice și hidraulice de acționare formând partea finală, de putere cu rol dublu, informațional și de vehicule a unor puteri importante de la sursa de energie hidraulică la sarcină.

Acționarea hidraulică se bazează pe transformarea energiei potențiale a fluidului aflat sub presiune în energie mecanică de deplasare rectilinie alternativă sau de mișcare de rotație a elementului acționat.

Caracteristici de bază în cadrul sistemelor automate electro-hidraulice:

*să aibă o amplificare în presiune ridicată;

*să asigure un raport putere-greutate foarte mare;

*să aibă caracterisitci de accelerare și decelerare cât mai apropiate și constante pe tot domeniul de funcționare;

*să dezvolte forțe sau cupluri și viteze de acționare, compatibile cu cerințele sarcinii.

Elementele de execuție rotative asigură o mare stabilitate a mișcării, într-un larg domeniu de varietate a mărimilor de ieșire (0.1 rot/min – 3000 rot/min) deasemenea un raport cuplu activ-moment de inerție, superior acționărilor electrice de aceeași putere. Elementele de execuție hidraulice funcționează pentru presiuni cuprinse între 210 – 800bar, debite până la 800 l/min și puteri până la 3500 kW și asigură cupluri active până la 8000 – 9000 Nm. Elementele de execuție se numesc motoare volumice liniare și asigură o mișcare de translație cu o viteză constantă a sarcinii. În (fig. 1.12.) apare o reprezentare axonometrică a acestor motoare.

Figura 1.12. Secțiunea unui cilindru hidraulic (motor volumic liniar)

Acestea transformă energia de presiune a lichidului, furnizat de o pompă volumică, în energie mecanică care este asociată unei mișcari de translație necesară pentru acționarea sarcinii. Frânarea cilindrilor la capăt de cursă apare atunci când viteza pistoanelor este mai mare de 20 mm/sec și la acționarea unor sarcini mari, aceasta ducând la uzură prin lovirea repetată a capacelor. Pentru a evita asfel de procese se folosește frânarea pistoanelor la cap de cursă prin mijloace hidraulice sau mecanice.

Performanțe dinamice și statice a motoarelor hidraulice rotative:

*gabarit mic pe unitatea de putere (cuplu motor ridicat la un gabarit mic);

*rigiditate hidraulică superioară motoarelor liniare;

*randament hidraulic ridicat, datorită pierderilor volumice foarte mici.

Figura 1.13. Secțiune printr-un motor hidraulic rotativ cu pistoane

Clasificarea motoarelor rotative după mecanismul care creează camerele de volum variabil:

*motoare rotative cu pistoane radiale;

*motoare rotative cu pistoane axiale;

*motoare rotative cu palate culisante;

*motoare orbitale;

*motoare rotative cu roți dințate.

Cele mai răspândite elemente de execuție hidraulice cu mișcare de rotație sunt motoarele hidraulice cu pistoane axiale, prezentând performanțe energetice și dinamice superioare în comparatie cu alte variante constructive datorită distribuției simetrice a elementelor mobile față de axa de rotație. Schema de principiu a unui motor hidraulic rotativ cu pistoane axiale și bloc înclinat este reprezentată în (fig. 1.13.).

1.5.3. Acționarea electrică [14]

Principalele avantaje ale acționărilor electrice:

*sistemele de control sunt precise, sigure și relativ ușor de conectat la o conducere numerică de nivel înalt;

*sursa de energie electrică primară este ușor de găsit;

*pote fi asigurată funcționarea cu baterii;

*nu poluează.

Motoare de curent continuu

Avantajul important al acționării cu motoare de curent continuu este că momentul creat este practic independent de viteza și poziția motorului el depinzând doar de câmpul înfășurărilor și curentul din armături. Atunci când înfășurările de câmp sunt înlocuite de un magnet permanent, momentul dezvoltat va fi proporțional cu valoarea curentului din armături și deasemenea cu tensiunea aplicată.

Pentru mișorarea greutații motoarelor s-au folosit procedee cum ar fi: eliminarea înfășurărilor de excitație prin utilizarea motoarelor cu magnet sau mișorarea greutății rotorului prin motoarele disc. Utilizarea prepoderentă a motoarelor de curent continuu este datorată existenței sistemelor performante de control timp în care motoarele pas cu pas oferă beneficii în controlul în buclă deschisă în cadrul operațiilor de poziționare.

Principalul dezavantaj al acestor acționări este reprezentat de greutatea componentelor, raportul putere – greutatesau moment – greutate fiind mai mic decât în cazul acționărilor hidraulice.

Pentru utilizarea motoarelor de curent continuu în acționarea roboților trebuie ‚inut cont de următoarele aspecte:

*un sistem mecanic care să realizeze conversia mișcării de rotație în mișcare de translație;

*un sistem mecanic pentru blocarea sistemului

*un sistem de control utilizând tahogeneratoare de poziție.

Motoarele de current continuu sunt alcătuite din două părți: sistem de excitație și înfășurare dispusă într-o armature rotorică.

În (fig. 1.14.) este reprezentată schema echivalentă simplificată a motorului de curent continuu cu excitație separată.

Figura 1.14. Schema echivalentă simplificată a motorului de curent continuu cu excitație separată [14]

În acționarea roboților controlul în tensiune al turației se poate realiza prin două metode: redresoare comandate și convertoare cc – cc. Ambele metode sunt utilizate frecvent în controlul roboților deoarece au o literature foarte bogată care abordează această problematică.

Redresoare monofazate în punte, se utilizează de obicei la tensiuni și puteri mici, controlul redresării este obținut printr-o punte aflată în circuitul exterior al redersorului fiind montat motorul de cc.

Convertoarele de tensiune continua, asigură o tensiune continuă care este aplicată la intrare, în impulsuri dreptunghiulare de tensiune și la ieșire în așa fel încât valoarea medie a tensiunii de ieșire se poate modifica în funcție de factorul de umplere al impulsurilor.

Motoare pas cu pas

Aceste motoare sunt sisteme sincrone care realizează o corelație directă între mărimea comandată și poziția obținută, ele asigură conversia directă a semnalului de intrare care este dat sub formă numerică într-o mișcare de poziționare unghiulară prin cumulări incrementale, datorită acestei proprietăți motoarele pas cu pas au o largă utilizare în toate sistemele de poziționare în buclă deschisă. Printre dezavantajele motoarelor pas cu pas se numără: variția cuplului cu poziția rotorului, randament scăzut, accelerații și decelerații discontinue, puteri mici etc.

Principiul de funcționare al unui motor pas cu pas (fig. 1.15.)

Statorul este alcătuit din patru poli iar rotorul este alcătuit dintr-un magnet bipolar. Atunci când se alimentează înfășurările 1 – 3, rotorul se va deplasa într-o poziție în care fluxul magnetic prin aceste înfășurări este maxim, asfel acesta se va alini pe axa înfășurărilor 1 – 3. Atunci când se alimentează înfășurările 2 – 4, rotorul se va roti cu ±90 iar sensul de rotație va depinde de polaritatea aplicată, până se va alinia cu noua înfășurare. În cazul în care nu avem niciun semnal de alimentare a înfășurărilor, rotorul va ocupa o poziție bine determinată și se va alinia cu unii din polii statorului fără să mai conteze polaritatea.

Cuplul dezvoltat în acest tip de motor va de- Figura 1.15. Principiul de funcționare

pinde bineînțeles de poziția rotorului iar valorile de al unui motor pas cu pas [14]

cuplu obținute sunt relativ mici.

Motoarele pas cu pas cu reluctanță variabilă constituie o soluție tehnologică superioară.

Aceste motoare se împart, după soluțiile constructive utilizate în:

*motoare cu structură monostatorică (o singură unitate stator – rotor);

*motoare cu structură polistatorică.

Structura monostatorică reprezintă o soluție mai avantajoasă datorită simplității construcției, acest tip de motoare pot fi realizate în două moduri: cu număr de dinți în rotor mai mare decât în stator și cu număr de dinți egal pe stator și rotor.

Motoarele pas cu pas polistatorice sunt realizate sub forma unor structuri statoric – rotorice sunt fixate mecanic în aceeași carcasă dar sunt independente din punct de vedere magnetic și electri, la acest tip rotorul și statorul au același număr de dinți. Pentru realizarea rotației este necesară decalarea subsistemelor statorice sau rotorice, radial unele față de celelalte. Subsistemele rotorice sunt montate pe același ax, dar separate din punct de vedere magnetic.

Sistemul senzorial al roboților [14]

Sistemul senzorial al unui robot reprezintă ansamblul tuturor senzorilor amplasați pe structura mecanică și ale căror semnale fuzionate servesc controlului adaptiv al robotului.

Senzorul este un dispozitiv ce convertește o mărime fizică într-o mărime electrică (semnal electric). Conversia marimi fizice cu ajutorul senzorilor se realizează cu scopul de a obține informații despre mărimea aplicată la intrare reprezentată sub formă electrică, acești senzori, din punct de vedere constructiv, au la bază componentele sistemelor de achiziții și distribuții a datelor.

Structura de principiu a unui sistem de achiziții de date pentru utilizări generale este reprezentată în (fig. 1.16.).

Figura 1.16. Structura de principiu a unui sistem de achiziții de date [14]

Sistemul este organizat pe două niveluri: unul pentru achiziția datelor și unul pentru distribuția datelor. Semnalele care urmează să fie achiziționate sunt furnizate de către mai mulți senzori (S1,S2,S3), care interacționează cu procesul deservit. Prima oară semnalele sunt condiționate și apoi convertite sub formă numerică, condiționarea cuprinde operații cum ar fi: filtrare, amplificare, modificarea nivelului componentei continue etc, în așa fel încât semnalul condiționat să corespundă domeniului de intrare al convrtorului analog numeric (A/N).Conversia A/N presupune întâi eșantionarea semnalului urmată de conversia A/N propriu-zisă, aceste operații fiind efectuate de circuitele cuprinse în blocul Convertor A/N.

Filtrul antialias, așezat înaintea convertorului A/N are un comportament de filtru trece-jos, având rolul de a limita spectrul semnalului aplicat la intrarea convertorului A/N.

Nivelul inferior din această arhitectură are rolul de a furniza la ieșire semnalele necesare pentru comanda actuatorilor (A1, A2, A3) pornindu-se de la informații numerice furnizate de blocul procesor, cu acest scop se utilizează un bloc convertor numeric analogic (N/A), apoi un filtru de reconstituire și circuite de condiționare. O serie de intrări/ieșiri digitale completează funcționalitatea sistemului.

Funcțiile multiple pe care le asigură blocul procesor: guvernează funcționarea întregului sistem, realizează o preprocesare locală a datelor achiziționate, asigură interfațarea cu calculatorul central de pe nivelul ierarhic superior.

Prin dezvoltarea sistemului senzorial al robotului se urmărește modelarea mediului de lucru, acesta fiind un aspect foarte important în interacțiunea dintr robot și mediu.

Clasificarea senzorilor după criteriul naturii informațiilor

*senzori vizuali; de regulă sistemul de vedere artificială este alcătuit dintr-un echipament de sine stătător analiză și prelucrare a imaginii;

*senzori de gabarit;

*senzori de proximitate;

* senzori tactili;

*senzori forță-moment;

*senzori de rost, etc.

Pentru utilizarea industrială, senzorii utilizați în roboticătrebuie să cuprindă următoarele caracteristici:

*histerezis redus pentru caracteristica de transfer;

*să fie robust, fiabil șicompact;

*liniaritate caracteristicii de transfer suficient de bună;

*preț redus de cost.

Informațiile de la sistemul senzorial al robotului se obțin prin: monitorizare, adică urmărirea stărilor senzorilor prin bucle de program rulate în permanent într-un mod invizibil pentru programul principal, fiind incluse instrucțiuni specifice de acțiune în funcție de o anumită valoare sau stare al unei mărimi furnizate de către un senzor și prin metoda întreruperilor care oferă posibilitatea unei utilizări mult mai eficiente a resurselor de calcul.

Senzorii de gabarit – oferă informații despre ordinal de mărime al obiectelor din mediu și în funcție de acestea se vor putea lua decizii cu privire la modalitățile de apucare și la evitarea coliziunilor.

Senzorii de proximitate – furnizează informații cu privire la pozițiile relative ale obiectelor, asfel se poate verifica dacă o operație a fost sau nu executată corect, dacă o poziție este sau nu corectă, se poate evita coliziunile cu alte obiecte.

Senzorii tactili – aceste dispositive transformă acțiunea fizică de contact în semnale electrice care conțin informații cum ar fi: existența și poziția obiectului în dispozitivul de prehensiune, mărimea forței de strângere, unii senzori tactili scot în evidență tendința de alunecare a obiectului.

Senzorii forță-moment, informațiile furnizate de acest tip de senzori pot ajuta la comanda acțiunii robotului prin dezvoltarea unei anumită forțe după o anumită direcție, sau pot fi luate decizii de efectuarea unor anumite acțiuni în funcție de o valoare de prag a unei forțe monitorizate de un senzor cu scopul de a lua decizii de efectuare a unor anumite acțiuni în funcție de o valoare de prag sau de a limita această stare de solicitare.

1.7. Sisteme de comunicare [15]

Roboții industriali trebuie să aibe abilități de comunicare fie cu alți roboți din mediu fie cu un operator uman, pentru a raporta dacă o anumită sarcină dată a fost îndeplinită sau nu cu succes.

Sistemele de comunicare ale roboților industriali pot fi de 2 tipuri: cu fir și fără fir.

Comunicația cu fir este modalitatea cea mai simplă de transfer de date între robot și operator. Prin această metodă dispar o serie de probleme asociate transmisiei fără fir, cu dezavantajul îngrădirii mobilității robotului. Avantajul principal al sistemelor de comunicare cu fir este acela că, pe lângă datele transmise între robot și operatorul uman, se mai poate transmite și curent electric, eliminând astfel necesitatea unei baterii onboard pe robot și mărind asfel autonomia robotului.

Un dezavantaj major al folosirii unui sistem de comunicare cu fir, ar fi faptul că spațiul de lucru al robotului va fi limitat de lungimea maximă admisibilă a cablului, mai mult cablul ar putea interfera cu senzorii, aceștia putând raporta valori eronate. Din aceste motive, nu se recomandă folosirea sistemelor de comunicare cu fir decât în cazurile în care folosirea tehnologiilor fără fir ar fi o problemă (de exemplu pentru vehicule robot din mediul acvatic).

Sistemele de comunicare fără fir se folosesc de o serie de tehnologii de transmitere a datelor prin aer (engl. wireless), printre care se regăsesc: transmisia prin unde în spectrul bluetooth, infraroșu, WiFi, NFC etc.

Mecanismele de transmitere a datelor prin unde infraroșu se pot utiliza doar la distanțe relativ mici și funcționează doar în linie dreaptă în câmp deschis, orice obstacol aflat între dispozitivele de transmisie-recepție obturând semnalul. Un alt factor dăunător al tehnologiilor de transmitere în infraroșu este lumina solară.

Tehnologiile WiFi sunt deja răspândite în domeniul calculatoarelor personale (PC), și oferă un suport complet de integrare al roboților în rețele de calculatoare. Un dezavantaj al acestor tehnologii ar fi faptul că sunt consumatoare de energie.

Tehnologiile Bluetooth oferă servicii similare cu dispozitivele WiFi doar că distanța maximă admisibilă între emițător – receptor este mult mai mică decât în cazul WiFi. La ora actuală, tehnologiile Bluetooth se folosesc, de obicei, în interiorul clădirilor, unde distanța maximă fără repetor este de maxim 20m.

CAPITOLUL 2. Robotul industrial “TOSHIBA” – Prezentare

2.1. Structura robotului industrial “TOSHIBA”

Scopul acestei lucrari după cum reiese din titul și după s-a mentionat în introducere este acela de a realiza controlul unui robot industrial prin intermediul smartphone-ului cu Android dotat cu tehnologia bluetooth.

Datorită faptului că motoarele robotului sunt alimentate cu baterii “TOSHIBA” am ales ca și robotul să poarte același nume.

Figura 2.1. Robotul industrial ”TOSHIBA”

Robotul industrial “TOSHIBA” (fig. 2.1.) are patru cuple de mișcare și un gripper, aceste patru cuple sunt de rotație. Brațele robotului sunt acționate de cinci motoare, care sunt alimentate de patru baterii (TOSHIBA LR20C) de 1.5 V (toatal 6 V). Robotul are o greutate de 660g el putând ridica o greutate maximă de 100g la înălțimea maximă de 38cm, dintre specificațiile acestuia mai amintim: deschiderea maxima a gripper-ului (4.50cm), unghiul maxim de rotație stânga/dreapta (270o), unghiul maxim de rotație din încheietura de jos (180o), unghiul maxim de rotație din încheietura de mijloc (300o), unghiul maxim de rotație din încheietura de sus (120o). Controlul, din punct de vedere software, se realizeaza după cum am mai amintit, prin intermediul unui smartphone cu Android (SAMSUNG Galaxy SIII mini) sau cu orice alt dispozitiv Android dotat cu bluetooth. Pentru a evita eventuale pagube, când se ating limitele fizice, am utilizat patru limite bazate, în program pe “0 logic-microaționat”, asfel înainte de a se atinge o anumită limită fizică va avea loc un contact pe brațul respectiv al robotului care nu va mai permite mișcarea în aceea directive.

Robotul este format dintr-un braț robotic KSR10 (fig. 2.3.) fără consola manuală cu joistick, o placă de bază (fig. 2.2.) pe care se gasește partea de acționare (fig. 2.4.) a robotului care funcționează pe post de driver, acesta avand rolul de a comanda cele cinci motoare de curent continuu situate în corpul robotului, o parte de comandă și control (fig. 2.5.), construită în totalitate de către mine, pe care se găsesc platforma de dezvoltare open-source Arduino Uno V3 (fig. 4.1.) și un modul bluetoooth RN-42 (fig. 2.8.).

Figura 2.2. Placa de bază a robotului industrial ”TOSHIBA”

După cum se observă în (fig. 2.1.) conexiunea fizică între brațul robotic și placa de bază se realizează prin fire, tot pe placa de baza (fig. 2.2.) observăm, lipită prin bandă dubul-adezivă placuța Arduino Uno V3 care este conectată la partea de acționare (fig. 2.4.) a robotului, modulul bluetooth RN-42 care este conectat la placuța Arduino Uno V3 și un întrerupător care oprește alimentarea plăcii de bază atunci când robotul nu este utilizat.

2.2 Corpul robotului industrial ”TOSHIBA”

În realizarea proiectului am plecat de la un braț robotic KSR10 (fig. 2.3.) căruia i-a fost eliminată consola manuală cu joistick.

Figura 2.3. Braț robotic KSR10 [16]

Având în vedere faptul că telefoanele cu Android sunt în trend la ora actuala și sunt aproape la îndemâna orcui m-am gândit să folosesc un smartphone pe post de telecomandă care să comunice cu robotul propriu-zis prin bluetooth, eliminînd asfel firul și consola manuală cu joistick pe care robotul le avea din fabrică, în acest mod am obținut o serie de avantaje dintre care cele mai importante ar fi: mărirea distanței de operare (până la 10m), libertatea de mișcare a operatorului, controlul realizându-se bineînțeles prin intermediul interfeței bluetooth nemaifiind incomodat de fire. Un alt avantaj notabil ar fi faptul că aplicația concepută de mine pentru Android, functionează de la cea mai veche și pâna la cea mai noua versiune de Android asfel avem posibilitatea de a o instala pe orice dispozitiv cu Android.

La o privire asupra robotului (fig. 2.3.) se observă cele patru cuple de rotație ale acestuia și gripperul toate fiind acționate de cinci motoare de curent continuu fiecare având două sensuri de rotație asfel, unul este responsabil de mișcarea de rotație stanga/dreapta de la baza robotului, trei motoare responsabile cu ridicarea/coborârea brațelor din trei încheieturi și unul care închide/deschide gripper-ul.

Robotul a avut, de la o lucrare anterioară, o placa de bază pe care se regăsea doar partea de acționare (fig. 2.4.) a motoarelor de current continuu, cu relee, tranzistorare cu rezistențe care sunt legate la ieșirile Arduino Uno V3 și microîntrerupătoare pentru încercarea manuală a funcționării robotului.

releu tranzistor

microîntrerupător rezistență

Figura 2.4. Partea de acționare a robotului industrial ”TOSHIBA”

Pentru a reuși să realizez proiectul pe care mi-am propus am utilizat partea de acționare (fig. 2.4.), a motoarelor de current continuu, provenită după cum am mai specificat de la o altă lucrare la care am adăugat pe placa de bază și o partea de comandă și control (fig. 2.5.), compusă din platform de dezvoltare Arduino Uno V3 și modulul bluetooth RN-42.

Figura 2.5. Partea de comandă și control a robotului

2.3. Schema electrică a robotului industrial ”TOSHIBA”

Figura 2.6. Schema electrică a robotului industrial ”TOSHIBA”

Arduino Uno V3 este “creierul” acestui robot și reprezintă partea de commandă și control al sistemului electric.

Conexiuni:

Arduino Pin GND – masa motoarelor M1, M2, M3, M4, M5 ( GND)

Arduino Pin GND – Pin GND al modulului bluetooth

Arduino Pin 5V – Pin 5V al molulului bluetooth

Arduino Pin 0 RX – Pin TX al molulului bluetooth

Arduino Pin 1 TX – Pin RX al molulului bluetooth

Arduino Pin 2 – Motor M5+ (pentru rotire la stânga)

Arduino Pin 3 – Motor M5- (pentru rotire la dreapta)

Arduino Pin 4 – Motor M2+ (pentru ridicare din articulația de sus)

Arduino Pin 5 – Motor M2- (pentru coborâre din articulația de sus)

Arduino Pin 6 – Motor M3+ (pentru ridicare din articulația de mijloc)

Arduino Pin 7 – Motor M3- (pentru coborâre din articulația de mijloc)

Arduino Pin 8 – Motor M4- (pentru ridicare din articulația de jos)

Arduino Pin 9 – Motor M4+ (pentru coborâre din articulația de jos)

Arduino Pin 10 – Motor M1+ (pentru închidere gripper)

Arduino Pin 11 – Motor M1- (pentru deschidere gripper)

Deoarece mi-au mai rămas doar doi pini (Pin 12 și Pin 13) digitali liberi și eu aveam nevoie de patru pentru cele patru limite (S2, S3, S4, S5) am ales să utilizez patru intrări analogice (ANALOG IN) ale Arduino și anume: A0, A1, A2, A3, asfel:

Arduino A0 – Limită S5

Arduino A1 – Limită S4

Arduino A2 – Limită S3

Arduino A3 – Limită S2

Logica de programare a limitelor (S2, S3, S4, S5):

0V(0)……………………….0.8V(200) – 0 logic – microacționat

3.2V(800)……………………5V(1024) – 1 logic

Aceste limite utilizează valori ale curenților cuprinse între 0 și respectiv 5V în programul “Arduino” 0-1024, asfel pentru o valoare mai mare de 0.8V sau 200 în programul “Arduino” se va permite mișcarea în caz contrar nu se va permite mișcarea.

După cum observăm în (fig. 2.6.) pe placa de bază avem și 4 leduri care au roulul de a ne informa atunci când o anumită limită este atinsă, asfel, de exemplu, atunci când este atinsă limita S2 se va aprinde ledul corespunzător acesteia.

2.4. Modulul Bluetooth RN-42 [17]

Modulul Bluetooth achiziționat de mine era la fel ca cel din (fig. 2.7.) fără pini iar eu i-am lipit pini (cu ajutorul pistolului de lipit) pentru a-l face “plug and play” (fig. 2.8.) asfel fiind mult mai facil și fiabil.

Figura 2.7. Modul Bluetooth Figura 2.8. Modul Bluetooth

fără pini [17] “plug and play”

Exemplu de cod program:

Acest program trimite un mesaj la calculator!

int cnt=0; //counter

void setup() {

serial.begin(9600); //initializare

}

void loop() {

cnt++;

serial.print(“Arduino te salute!”); //printare mesaj

serial.println(cnt); //printare counter

delay(1000); //asteapta o secunda

}

Pentru acest modul Bluetooth avem două posibilitați de configurare și anume:

Metoda folosită de mine

1.Auto-configurare “Baud Rate”-folosind conexiunea serial clasică:

Modulul Bluetooth vine din fabrică cu rata de transfer configurată la 115 200. În acest caz dacă dorim să-l folosim la un baud mai scazut folosim codul de mai jos, acesta utilizează o conexiune serială clasică între Arduino și Bluetooth. Un avantaj al acestei conexiuni fată de cea Software Serial este acela că în acest mod comunicarea dispune de un buffer hardware iar un dezavantaj ar fi faptul că placa Arduino nu poate fi programată atunci când Bluetooth-ul este conectat.

void setup() {

Serial.begin(115200);

Serial.print("$$$");

delay(100);

Serial.println("U,9600,N");

Serial.begin(9600);

}

void loop() {

}

Conexiuni Hardware

Bluetooth CTS-I  – nu se conectează

Bluetooth VCC  – Arduino 5V

Bluetooth GND  – Arduino GND

Bluetooth TX-O  – Arduino RX

Bluetooth RX-I  – Arduino TX

Bluetooth RTS-O  – nu se conectează

2. Auto-configurare “Baud Rate” – folosind Software Serial

La fel ca și în cazul precedent vine configurat din fabrică la rata de transfer 115 200.Dacă dorim sa îl utilizăm la un baud rate mai scăzut putem folosi codul următor:

#include "SoftwareSerial.h";

int bluetoothTx = 2;

int bluetoothRx = 3;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()

{

Serial.begin(9600);

bluetooth.begin(115200);

bluetooth.print("$$$");

delay(100);

bluetooth.println("U,9600,N");

bluetooth.begin(9600);

}

void loop()

{

if(bluetooth.available()) {

char toSend = (char)bluetooth.read();

Serial.print(toSend);

}

if(Serial.available()) {

char toSend = (char)Serial.read();

bluetooth.print(toSend);

}

}

Conexiuni Hardware

Bluetooth CTS-I  – nu se conectează

Bluetooth VCC  – Arduino 5V

Bluetooth GND  – Arduino GND

Bluetooth TX-O  – Arduino Digital 2

Bluetooth RX-I  – Arduino Digital 3

Bluetooth RTS-O  – nu se conectează

Specificatii ale modulului Bluetooth:

– modem Bluetooth clasa 2

– atinge 10 metri ca distantă de transmisie

– consumă în medie 25 mA

– conexiune criptată

– frecvența 2.4~2.524 GHz

– tensiune de alimentare 3.3 – 6 V

– capabil de rate de transfer între 2400-115200 bps (configurată la 115200 bps)

– temperatura de operare – 40 ~ + 70 C

– antena inclusă pe placă.

Figura 2.9. Structura modulului Bluetooth RN-42

2.5. Prezentarea smartphone-ului – SAMSUNG Galaxy SIII mini

Smartphone-ul utilizat de mine și anume SAMSUNG Galaxy SIII mini (fig. 2.10.) este practic telecomanda robotului industrial “TOSHIBA” comunicând cu acesta prin intermediul interfeței Bluetooth.

Acesta mai este cunoscut sub numele de SAMSUNG I8190.

Figura 2.10. SAMSUNG Galaxy SIII mini [18]

Specificații tehnice importante: [19]

*bluetooth – v4.0 cu A2DP, LE, EDR;

*Java emulator MIDP;

*baterie: Li-Ion 1500 mAh;

*versiune soft: Android OS v4.1.2. (Jelly Bean);

*tip display: Super AMOLED, 16M culori;

*dimensiune display: 480×800 pixeli, 4.0 inchi (~233 ppi densitatea pixelilor);

*GPRS, EDGE, HSDPA 14.4 Mb/sec, HSUPA 5.76 Mb/sec, GPS, NFC, USB v2.0, Wi-Fi;

*senzori: de proximitate, giro, accelerometru, compas;

*browser – HTML5;

CAPITOLUL 3. Software-ul Arduino Uno V3

3.1. Instalarea mediului de programare Arduino și încărcarea unui program

Etape care tebuiesc urmate pentru instalarea programului pe un calculator și conexiunea acestuia cu o placă Arduino Uno:

*achiziționarea unei platforme Arduino și a unui cablu USB;

*descărcarea mediului de dezoltare Arduino;

*conectarea platformei Arduino la calculator;

*instalarea driverelor;

*lansarea programului Arduino;

*deschiderea exemplului de program blink;

*selectarea modelului de placă utilizat;

*selectarea portului serial;

*verificarea erorilor (opțional);

*încărcarea programului.

Descrierea etapelor care trebuiesc urmate.

Dacă avem o placă Arduino Uno V3 și un cablu USB prin care se realizează conexiunea unei imprimante cu un calculator, descărcăm software-ul Arduino de pe Internet de pe siteul oficial Arduino, după care dezarhivăm fișierele descărcate și păstrăm structura folderelor. La fel ca și modelele Mega, Duemilanove și modelul de placă Arduino Uno se alimentează automat prin conexiunea USB, sursa de alimentare fiind selectată printr-un jumper, o piesă de plastic mică care este potrivită pe doi din cei trei pini ai portului USB și a mufei de alimentare jack. Trebuie să facem o verificare pentru acest jumper pentru a ne asigura că acesta este potrivit pe cei pini apropiați de portul USB. [20]

Conectăm placa Arduino la calculator prin cablul USB, moment din care led-ul verde de pe placă (denumit PWR) ar trebui să se aprindă intermitent și așteaptăm ca Windows să înceapă procesul de instalare și să il finalizeze.

Intrăm în programul Arduino, iar pentru exemplu deschidem un sketch cu denumirea blink prin accesarea meniului File – Examples – 1.Basics – Blink, program ce comandă aprinderea intermitentă a led-urilor Rx și Tx de pe placă, în condițiile stabilite de acesta. Pentru a selecta modelul de placă pe care îl utilizăm trebuie să accesăm meniul Tools – Board așa cum apare în (fig. 3.1.). Aici vedem mai multe modele de placă Arduino din care alegem doar una, în cazul nostru – Arduino Uno.

Figura 3.1. Selectarea modelului de placă Arduino utilizat

Următorul pas pe care trebuie să îl urmăm constă în alegerea portului serial al calculatorului la care este conectată placa Arduino. Accesăm opțiunea Serial Port din meniul Tools (instrumente) selectând portul corespunzător. De obicei selectăm portul COM3 pentru că, COM1 și COM2 sunt utilizate de obicei pentru alte aplicații hardware.[20] Pentru a afla care port corespunde plăcii deconectăm placa de la PC, accesăm locația menționată în rândurile de mai sus pentru selectarea portului și observăm că portul care corespunde plăcii respective nu mai figurează printre celelalte porturi care erau afișate când placa era conectată. Conectăm din nou placa la calculator și portul corespunzător acestuia va fi afișat, astfel se poate determina portul potrivit.

Atunci când suntem în acest punct verificăm existența erorilor din fereastra cu butoane pentru a nu stopa etapa următoare și anume cea de „Upload” (încărcare) care se realizează tot din fereastra cu butoane, pentru a încărca programul Blink. Atunci când totul este în regulă se va afișa în fereastra de mesaje „Done uploading” iar după câteva secunde led-urile Rx și Tx se vor aprinde intermitent și deasemenea led-ul portocaliu de la pinul 13 de pe placă se va aprinde o dată.

3.2. Mediul de programare Arduino

Mediul de programare Arduino, poate rula cu sisteme de operare cum ar fi Windows, Mac OS X și Linux fiind construit în mediul Java bazat pe procesarea avr-gcc și pe alte software-e open-source (disponibile orcărui utilizator gratuite), acest mediu de programare facilitează scrierea programului și încărcarea acestuia prin interfața I/O.

Figura 3.2 Interfața mediului de dezvoltare Arduino

Platforma Arduino necesită, pentru a fi utilizată, implementarea unui program în memoria sa, program care să-i comunice exact ce anume să facă și cum să facă. Implementarea programului se realizează prin intermediul mediului de programare Arduino, în cazul plăcii utilizate pentru robotul industrial varianta este Arduino 1.0.5 .

Interfața mediului de dezvoltare Arduino (fig. 3.2.) conține un editor de texte pentru scrierea programelor (cod), o consolă de text, o zonă pentru mesaje, o bară de instrumente cu butoane pentru funcții comune și o serie de meniuri. [20]

Programele create în mediul de dezvoltare Arduino se numesc „sketch-uri” acestea fiind scrise în editorul de texte și salvate ca fișiere cu extensia „ .ino” . În acest editor de texte sunt valabile funcțiile binecunoscute copy/paste/cut și funcțiile de căutare și înlocuire a textelor.

Utilizatroul primește un feed-back în zona de mesaje în timp ce acesta utilizează funcții ca și save, export și deasemenea afișează și erorile care pot să apară în timpul încărcării programelor, iar consola de text afișează texte caracteristice plăcii Arduino, care pot include erori complete și alte informații. De exemplu în partea dreaptă jos a ferestrei este afișat la ce model de placă este conectat la momentul respectiv și prin care port serial, în cazul nostru așa cum se vede și în fig. 3.2. fiind vorba de placa Arduino Uno conectat prin portul COM8. Butoanele din bara de instrumente permit încărcarea și verificarea programelor, crearea, deschiderea și salvarea programelor (sketch-urilor).

3.3. Lista instrucțiunilor Arduino utilizate pentru programarea robotului industrial

Programele Arduino se pot împărți după tipul instrucțiunilor în trei grupe: instrucțiuni de structură, de valori (constante sau variabile) și instrucțiuni pentru funcții. Există numeroase instrucțiuni destinate mediului de programare Arduino, datorită acestui fapt în continuare se vor prezenta doar câteva dintre acestea și mai ales cele utilizate în programul creat pentru funcționarea robotului industrial.

Instrucțiuea „void” face parte din categoria instrucțiunilor de valori și este utilizat numai în declarații de funcții. Indică faptul că funcția nu așteaptă nici o returnare de informație de la funcția care s-a făcut apelarea. [21]

Exemplu 1. sintaxă (pin, mode) echivalent cu (2, input).

În acest exemplu s-a configurat pinul 2 care se va comporta ca o ieșire. Instrucțiunea „while” determină ca secvența de program să se repete la nesfârșit atâta timp cât valoarea dintre paranteze o să fie true (adevărată). „DigitalWrite” este o instrucțiune care atribuie unui pin configurat ca intrare sau ieșire starea de HIGH sau LOW. De exemplu dacă pinul este configurat ca ieșire (output), pentru starea HIGH va avea tensiune de 5V sau 3.3V pe placă iar pentru starea LOW 0V (masă). „if” (condiționare) este în conjuncție cu un operator de comparație, adică testează dacă o anumită condiție a fost atinsă. [21]

Exemplu 2. if ( variabilă > 15)

{

// execută comandă

}

În exemplul de mai sus programul verifică dacă variabila are o valoare mai mare de 15, dacă răspunsul este „true” atunci programul îndeplinește sarcina aflată între cele două acolade.

Instrucțiunea „analogWrite” atribuie o valoare analogică (semnal PWM) unui pin și poate fi utilizat pentru a controla viteza unui motor. După o apelare a instrucțiunii „analogWrite” pinul respectiv va genera constant un semnal dreptunghiular specificat, până în momentul în care se face o altă apelare a instrucțiunii. Frecvența semnalului PWM este de aproximitv 490 Hz.

„delay” este instrucțiunea care stopează programul pentru perioada de timp care este specificată de programator în milisecunde.

Sintaxa: delay (ms)

„attachInterrupt” , așa cum și numele acestei instrucțiuni sugerează, apelează o funcție specificată atunci când apare o întrerupere externă, și înlocuiește fucția anterioară care a fost atașată la întrerupere.

„detachInterrupt” dezactivează întreruperea specificată.

Exemplu 3: // acțiunile sunt efectuate în cadrul funcțiilor „setup” și „loop” (buclă)

// nici o informație nu o să fie raportată la programul principal

void setup ()

{

//…

}

void loop

{

//…

}

O altă instrucțiune comună este „setup” care este apelată la începutul unui sketch (program) și se utilizează pentru a inițializa variabile, configura pini, etc. Funcția „setup” rulează o singură dată după fiecare pornire sau resetare a plăcii Arduino. După ce se realizează o configurație care stabilește valorile inițiale prin intermediul funcției „setup” , instrucțiunea „loop()” (buclă) face exact cea a ce se poate deduce și din numele acesteia, și anume bucle consecutive permițând programului să facă schimbări sau să răspundă dacă e cazul.

Instrucțiunea „boolean” face parte tot din categoria instrucțiunilor de valori, aceasta poate avea două valori: true (adevărat) sau false (fals). Fiecare variabilă boolean ocupă memorie de 1 octet. Instrucțiunea „PinMode” configurează un pin oarecare astfel încât acesta să se comporte ca o ieșire sau ca o intrare.

CAPITOLUL 4. Arduino Uno V3

Figura 4.1. Platforma de dezvoltare Arduino Uno V3 [22]

4.1. Prezentarea platformei de dezvoltare Arduino Uno V3

Specificațiile tehnice ale platformei sunt:

*microcontroler Atmega328;

*tensiune de lucru 5V;

* tensiune de intrare (recomandat) 7-12V;

*tensiune de intrare (limită) 6-20V;

*pini digitali: 14 (6 PWM output);

*pini analogici: 6;

*intensitate per pin de intrare/ieșire: 40mA;

*intensitate de ieșire pentru pinul 3.3V: 50mA;

*Flash Memory: 32KB (Atmega328) din care 0.5 KB utilizează bootloader-ul;

*SRAM: 2KB (Atmega328);

*EEPROM: 1KB (Atmega328);

*frecvența: 16MHz. [23]

Arduino Uno este una dintre componentele principale ale robotului industrial, aceasta fiind o platforma de dezvoltare open-source și este ușor de folosit atât din punct de vedere hardware cât și software. Dimensiunile acestei platforme sunt mici (6.8cm / 5.3cm) ea fiind construită în jurul unui procesor de semnal și este capabilă să preia date din mediul înconjurător printr-o serie de senzori și să efectueze anumite acțiuni asupra mediului cu ajutorul mai multor tipuri de dispozitive mecanice cum ar fi: motoare, servomotoare, luminilor etc.

Mediul de programare în care rulează procesorul, cod scris, se aseamănă foarte mult cu limbajul C++. [23]

Arduino Uno V3 este destinat persoanelor interesate de crearea unor obiectelor sau a unor medii interactive, acesta interceptând semnale de intrare de la o varietate de senzori sau swich-uri apoi controlând diverse motoare,lumini și alte ieșiri fizice.

Există proiecte Arduino care pot comunica cu software-ul care se execută pe calculatorul utilizat (de exemplu Flash, MaxMSP, Processing) sau pot fi de sine-stătătoare iar plăcile Arduino pot fi achiziționate preasamblate sau pot fi realizate manual, mediul de programare poatându-se descărca gratuit de pe Internet.

Limbajul de programare Arduino este o platformă de calcul fizic, deasemenea o implementare de cablaj, care se bazează pe mediul de programare de procesare multimedia. Microprocesoare și microcontrolere disponibile pentru platforme de calcul fizic care oferă o funcționalitate similară sunt: Parallax Basic Stamp, Netmedia BX-24, Phidgets, HandyBoardMit etc, toate aceste instrumente iau detaliile dezordonate de programare și le încadrează într-un pachet ușor de folosit.

4.2. Programarea platformei de dezvoltare Arduino Uno V3

Platforma poate fi programată utilizând un software Arduino, destinat special pentru această placă și pentru celelalte modele de plăci din familia Arduino. Pentru ca mediul de programare să fie compatibil cu modelul de placă conectat la calculator (în cazul de acesta Arduino Uno), din meniul Tools (instrucțiuni) se accesează Board iar apoi Arduino Uno.

Microcontrolerul Atmega328 care comunică utilizând un protocol original STK500, are prestabilit prin fabricație în memoria sa un bootloader (încarcă un program la pornire), fapt care permite încărcarea unor secvențe noi de program, fără să fie nevoie de un programator hardware extern. Se poate ignora bootloader-ul programând microcontrolerul printr-un protocol numit ICSP (In-Circuit Serial Programming), în cazul programării cu un programator extern, caz în care se poate utiliza spațiul întreg pentru programare de pe memoria microcontroler-ului.

Codul sursă al circuitului de interfațare cu USB-ul, ATmega16U2 (sau 8U2 ale modelelor precedente de plăci) rev1 și rev2 este valabil și se încarcă prin modul DFU, care poate fi activat în felul următor: conectând un jumper pe spatele plăcii și resetând circuitul de interfațare 8U2, aceasta în cazul plăcilor rev1, iar în cazul plăcilor mai noi rev2 printr-o rezistență care leagă magistrala 8U2/16U2 HWB, favorizând punerea în modul DFU (Device Firmware Update).

Se mai poate utiliza un soft Atmel’s Flip software (pentru Windows) sau programarea cu modul DFU (pentru sistemul de operare Linux) pentru a încărca un program rezident nou, sau o altă variantă fiind folosirea protocolului ISP printr-un programator extern (transcriind programul de încărcare DFU).

Această platformă de programare este proiectată în așa fel încât acesta să se poată reseta înainte de o încărcare a unui program nou, mai repede prin software-ul care rulează pe calculatorul la care este conectat decât prin apăsarea fizică a butonului de resetare. Unul dintre firele de conexiune hardware (DTR) ale circuitului de interfațare cu USB-ul ATmega16U2 este conectat la linia de resetare a microcontrolerului ATmega328, printr-un condensator cu o capacitate de 100 de nanofarazi. Când acest fir de conexiune are nivel de tensiune low, pe linia de resetare tensiunea scade destul de mult, astfel să poată reseta microcontrolerul. [25]

Software-ul Arduino folosește această aptitudine pentru a permite încărcarea unui program prin simpla apăsare a iconiței upload din meniul mediului de dezvoltare Arduino. Când Arduino este conectat la un calculator care operează în Linux, aceasta se resetează de fiecare dată când se face o conexiune prin USB la software-ul instalat pe calculatorul respectiv, iar în următoarea secundă bootloader-ul rulează pe placă.

Trebuie să ne asigurăm că software-ul cu care comunică placa, așteaptă o secundă după ce a început conexiunea, dar încă nu a transmis date, în cazul în care se rulează o aplicație pentru prima dată și necesită un timp de configurare sau alte tipuri de date.

Arduino are o magistrală care poate fi întreruptă (tăiată) pentru a dezactiva opțiunea de auto-resetare, dar poate fi reconectată (prin lipire) pentru a reactiva această opțiune, operația poartă numele de „RESET-EN”, mai există o metodă de dezactivare a opțiunii auto-reset, și anume prin conectarea unei rezistențe de 110 ohmi la 5V și la linia de resetare.

4.3. Schema electrică a platformei de dezvoltare Arduino Uno V3

Figura 4.2. Schema electrică a platformei de dezvoltare Arduino Uno V3 [24]

Arduino Uno face parte din familia largită Arduino, majoritatea plăcilor (Uno, Leonardo, Mega2560 etc) sunt fabricate de SmartProjects în Italia, iar modelele Pro, Pro Mini și LyliPad de compania americană SparkFun Electronics.

Figura 4.2. ne prezintă schema electrică a platformei Arduino Uno V3, aici observăm principalele componente: microcontroler-ul Atmega328 ce comunică cu conectorul USB prin intermediul circuitului de interfațare Atmega16U2-MU, conectorul pentru mufa jack, circuitul stabilizator de tensiune U1 la 5V și circuitul stabilizator de tensiune U2 la 3,3V. Pentru protecția portului USB al calculatorului în cazul apariției unui supracurent sau scurtcircuit, pe placă se găsește o siguranță resetabilă, aceasta oferind o doză suplimentară de protecție, unele calculatoare având protecție proprie internă. Atunci când la portul USB este aplicată o intensitate mai mare de 500mA, această siguranță va întrerupe în mod automat conexiunea pâna când scurcircuitul sau supracurentul este eliminat.

4.4. Arduino Uno – prezentare hardware

Arduino provine din interconectarea mai multor componente simple, elementul de bază al plăcii fiind microcontrolerul Atmega328, a cărui funcționare se realizează cu ajutorul celorlalte componente existente.

Microcontrolerul Atmega328 este programat cu ajutorul limbajului de programare Arduino (bazat pe cablaj) și a mediului de dezvoltare Arduino (bazat pe procesare). Plăcuța Arduino prezintă 14 intrări/ieșiri digitale (dintre care 6 pot fi utilizate ca ieșiri PWM), 6 intrări analogice (fig.4.1.), un oscilator cu cristal de 16 MHz, circuit de interfațare cu USB, alimentare jack, un conector ICSP și un buton de resetare. [25]

Arduino Uno diferă de predecesorii săi datorită faptului că nu utilizează driver-ul FTDI USB-serial, dar dispune de circuitul Atmega16U2, programat ca un convertor USB-serial.

Îmbunătățiri ale plăcii (față de predecesori):

– deține un circuit de resetare mai puternic;

– s-au adăugat pinii SDA și SCL situați lângă pinul AREF, și alți doi pini noi localizați lângă pinul RESET, unul fiind denumit IOREF care permite circuitelor atașate plăcuței Arduino (în cazul de față driver-ului de motoare) să se adapteze la tensiunea furnizată de aceasta; al doilea pin neconectat este rezervat pentru alte scopuri ce pot apărea pe parcursul utilizării plăcii;

– rezistorul care leagă linia 8U2 HWB de masă, fapt ce ușurează punerea în modul DFU (Device Firmware Update), acest modul fiind un protocol cu ajutorul căruia se face update-ul programului instalat în memoria microcontrolerului [25]

4.4.1 Descrierea pinilor

Platforma de dezvolatare Arduino oferă o serie de facilități pentru comunicarea cu o altă placă, cu un calculator sau alte microcontrolere. Microcontroler-ul Atmega328 oferă comunicare serială UART TTL (5V), care este disponibilă pe pinii digitali 0 (RX) și 1. UART (Universal Asynchronous Receiver/Transmitter) este o componentă a plăcii Arduino fiind un emițător/receptor asincron care decodifică date de tip paralel sau serie, utilizat de obicei pentru comunicarea serială cu un calculator sau portul serial al unui dispozitiv periferic. Există librării software care permit comunicarea serială pe oricare dintre pinii digitali ai platformei.

Prin intermediul funcțiilor pinMode(), digitalWrite() și digitalRead(), fiecare pin ale celor 14 intrări/ieșiri digitale poate fi utilizat ca intrare sau ieșire, funcționând la o tensiune de 5V. Fiecare pin poate furniza sau recepționa un maxim de 40 mA având o rezistență internă de 20-50 kOhmi.

Platforma Arduino Uno are 6 intrări analogice corespunzătoare pinilor A0, A1, A2, A3, A4, A5, fiecare dintre ele asigurând o rezoluție de 10 biți. Prin setările prestabilite, pinilor le corespund valori ale tensiunii începând de la masa până la 5V, dar se poate inversa valorile tensiunii folosind pinul AREF și funcția analogReference(). La fel ca și la pinii digitali, unii pini analogici au funcții speciale, cum ar fi funcția de comunicare TWI care o au pinii A4 (SDA) și A5 (SCL). Dintr-o altă grupă de pini fac parte AREF și RESET. Pinul AREF configurează tensiunea de referință utilizată pentru intrările analogice prin intermediul funcției analogReference(), iar pinul RESET este folosit de obicei pentru butonul de resetare, care poate reseta microcontrolerul dacă este necesar.

Pini cu funcții speciale:

*external interrupts: acestei funcții corespund pinii 2 și 3 care pot fi configurați să declanșeze întreruperea unei execuții când are loc trecerea dintr-un nivel logic de tensiune în altul.

*serial: 0 (Rx) și 1 (Tx) acești pini sunt utilizați pentru a recepționa (Rx) și transmite (Tx) date seriale TTL, fiind conectați la pinii corespunzători ai Atmega USB-TTL.

*SPI (interfață serială periferică) corespunde pinilor 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK); acești pini suportă comunicare SPI folosind biblioteca Serial Peripheral Interface; SPI este un protocol utilizat de microcontroler în comunicarea cu un alt dispozitiv periferic sau cu un alt microcontroler; într-o conexiune de tip SPI întotdeauna există un dispozitiv master (de obicei un microcontroler) care controlează celelalte dispozitive periferice.

*funcția PWM (modulația în lățime a impulsului) este atribuită pinilor 3, 5, 6, 9, 10 și 11 și generează 8 biți de ieșire PWM împreună cu funcția analogWrite(), este utilizată, de obicei, la modificarea intensității de luminozitate a unui led sau modificarea valorii vitezei unui motor.

*prin intermediul pinului 13 se controlează un led integrat pe placa Arduino; când pinul recepționează un semnal de nivel logic 1 atunci led-ul se aprinde, iar când trece în nivel logic 0 led-ul se stinge.[25]

4.4.2. Modalități de alimentare a platformei Arduino Uno V3

Platforma Arduino poate fi alimentată prin mai multe moduri:

*printr-o sursă de alimentare externă sau cu baterii;

*conexiune USB (cablu USB A-B) (fig. 4.3.).

Figura 4.3. Cablu USB A-B

Dacă dorim să alimentăm de la o sursă de alimentare externă (de la priză) avem nevoie de un adaptor AC-DC a cărui ieșire o conectăm la mufa jack a plăcii iar atunci când dorim alimentarea cu tensiune de la baterii, firele care vin de la acestea le conectăm la pinii GND și VIN ai conectorului de pe placa de bază. În cazul în care folosim conexiunea USB avem nevoie de un cablu USB A-B (fig. 4.3.) (utilizat și la imprimante) pe care îl conectăm la portul USB al calculatorului.

Pentru siguranță, ar fi de aminitit că placa Arduino poate suporta valori de tensiuni cuprinse între 6 și 20 de volți, dar pentru buna funcționare a plăcii se recomandă o tensiune între 7 și 12 volți. Dacă placa se alimentează cu mai puțin de 7 volți pinul 5V s-ar putea să furnizeze o tensiune mai mică de 5 volți în acest caz placa are șanse mari să devină instabilă, iar dacă se alimentează cu mai mult de 12 volți, regulatorul de tensiune se poate supraîncălzi deteriorând placa.

Dintre pinii de alimentare amintim următorii: VIN, 3V3, 5V, și pinul GND (masa). Pinul 3V3 are o tensiune de 3,3V generată de regulatorul de tensiune de pe placă, având o intensitate maximă de 50 mA. Atunci când alimentarea se face printr-o sursă de alimentare externă (diferită de cea de 5V prin conexiunea USB sau alte surse de tensiune reglate) prin pinul VIN placa Arduino este aprovizionată cu tensiune de intrare sau dacă alimentarea se face prin mufa jack acest pin permite accesul tensiunii în placă. Pinul 5V furnizează plăcii o tensiune de ieșire care este reglată la 5 volți, în urma alimentării fie prin intermediul adaptorului AC-DC la mufa jack (7-12 V), fie prin intermediul pinului VIN (7-12V) sau prin conexiune USB (5V). Nu este recomandată furnizarea tensiunii prin pinii 5V și 3V3 deoarece astfel tensiunea nu trece prin regulator existând riscul ca placa Arduino să se defecteze.

CAPITOLUL 5. Microcontrolere

Figura 5.1. Microcontroler ATmega328 PU [26]

5.1. Arhitectura microcontrolerelor [27]

Atributele sistemului așa cum sunt văzute ele de către un programator în limbaj de asamblare sunt definite de către arhitectura unui microcontroler. Un microcontroler este un caz particular de calculator (calculator sepcializat în operații I/O, realizat pe un singur chip) și este alcătuit din cinci elemente de bază: unitate de intrare, unitate arithmetică și logică, unitate de memorie, unitate de ieșire și unitate de control.

În figura 5.2. este reprezentată schema bloc generală a unui microcontroler.

Unitatea de control la un loc cu unitatea aritmetică și cea logică compun împreună unitatea centrală de prelucrare. Blocurile componente ale microcontrolerului sunt legate între ele prin intermediul unei magistrale internă (bus), aceasta vehiculează semnale de date, de adresă și semnale de control, iar mărimea acestor magistrale constituind una dintre cele mai importante caracteristici ale unui microcontroler. Unitatea centrală de prelucrare (UCL) selectează, prin magistrala de adrese, o locație de memorie sau un dispozitiv I/O, iar pe magistrala de date se face schimbul de informație între UCP și memorie sau dispozitivele I/O. Intre unitatea centrală de prelucrare și memorie se transferă atât instrucțiuni cât și date, acestea se pot transfera pe magistrale de date diferite sau pe o singură magistrală.

Figura 5.2. Schema bloc a unui microcontroler [27]

Arhitectura Harvard necesită un bus separat pentru date și instrucțiuni, atunci când codul instrucțiunii se găsește pe bus-ul de instrucțiuni, pe bus-ul de date se găsește datele instrucțiunii anterioare. Performanțele de viteză sunt bune, dar structura microcontrolerului este complexă.

Arhitectura von Neumann necesită prezența unui singur bus utilizat pentru circulația instrucțiunilor și a datelor atunci când un controler cu acest tip de arhitectură adresează memoria, bus-ul de date este utilizat pentru a transfera prima oară codul instrucțiunii, iar apoi pentru a transfera date. Accesul este destul de lent și se realizează în doi pași.

Magistralele interne, după cum le spune și numele nu sunt accesibile în exterior la nivel de pin, acastă stare caracterizează regimul normal de funcționare. La anumite tipuri de microcontrolere, semnalele magistralelor de adrese și de date sunt accesibile la nivel de pinfiind sacrificate funcțiile inițiale ale pin-ilor respectivi. O altă condiție este aceea de a fi necesar să fie livrate în exterior și semnalele de comandă (ce puțin comandă de scriere – WR și comandă de citire – RD). Această caracteristică este folositoare pentru a atașa sistemului interfețe suplimentare sau extensii de memorie.

Magistralele de date și de adrese pot fi aduse la pin multiplexat sau nemultiplexat. Spre exemplu, familia MCS-51 are acces multiplexat la magistrale. Accesul se realizează în doi pași, în primul se conectează liniile de adresă la pinii portului “sacrificat”, iar în al doilea pas se conectează datele la aceiași pini. Microcontrolerele mai puțin performante (MC ieftine) nu posedă magistralele interne accesibile la nivel de pin.

Performanța unui microcontroller din punct de vedere al magistralei interne poate fi apreciată după următoarele criterii:

*dimensiunea magistralei de adrese;

*dimensiunea magistralei de date;

*magistrale accesibile multiplexat sau nemultiplexat;

*accesibilitatea în exterior la magistrale.

5.1.1. Memoria microcontrolerelor

Microcontrolerele utilizează diferite tipuri de informații, stocate în diferite tipuri de memorii.

MC folosesc diferite tipuri de informații, care sunt stocate în diferite tipuri

de memorii. Instrucțiunile care controlează funcționarea MC trebuie stocate într-o

memorie nevolatilă, unde informațiile se păstrează și după oprirea și repornirea

sursei de alimentare. Rezultatele intermediare și variabilele pot fi înscrise într-o

memorie volatilă, la acestea este important să se poată face scrierea /citirea rapid și

simplu în timpul funcționării.

Memoria RAM (Random Access Memory) este o memorie volatilă care

poate fi citită sau scrisă de unitatea centrală. Locațiile din RAM sunt accesibile în

orice ordine. Pe chip, memoria RAM ocupă mult loc și implicit costurile de

implementare sunt mari. De aceea un MC include de obicei puțin RAM. Memorie

RAM static alimentată de la baterie se folosește pentru stocarea nevolatilă a

cantităților mari de date, la o viteză de acces mare și cu un număr nelimitat de

ștergeri și reînscrieri.

Memoria ROM (Read Only Memory) este cea mai ieftină și cea mai simplă

memorie și se folosește la stocarea programelor în faza de fabricație. Unitatea

centrală poate citi informațiile, dar nu le poate modifica.

Memoria PROM (Programmable Read Only Memory) este similară cu

memoria ROM, dar ea poate fi programată de către utilizator. După posibilitățile de

ștergere, această memorie poate fi de mai multe feluri:

Memoria EPROM (Erasable PROM) care se poate șterge prin expunere la

raze ultraviolete. MC cu EPROM au un mic geam de cuarț care permite ca chip-ul

să fie expus la radiația ultravioletă. Ștergerea este neselectivă, adică se poate șterge

doar întreaga informație și nu numai fragmente. Memoria poate fi ștearsă și

reînscrisă de un număr finit de ori. Programarea EPROM-ului necesită o procedură

specială, iar MC cu EPROM au nevoie de regulă pentru înscrierea EPROM-ului de

o tensiune auxiliară, de 12 V de exemplu. Unele MC au incluse circuite de

programare a memoriei EPROM, cu ajutorul cărora unitatea centrală poate

programa memoria EPROM. În timpul programării memoria EPROM nu este

conectată la magistrala de date și adrese. Unele MC sunt prevăzute cu mod special

de lucru, în care sunt văzute din exterior ca niște memorii EPROM obișnuite și pot

fi astfel programate cu orice programator.

OTP (One Time Programmable PROM) se folosește pentru multe serii de

MC. Memoria OTP este de fapt o memorie EPROM, dar chip-ul a fost capsulat

într-o capsulă de material plastic fără fereastră, care este mult mai ieftină. Memoria

nu se poate șterge sau reprograma. Prețul unui MC cu OTP este mic, viteza este

bună, dar aplicațiile sunt lipsite de flexibilitate.

Memoria EEPROM (Electrically Erasable Programmable Read Only

Memory) poate fi ștearsă electric de către unitatea centrală, în timpul funcționării.

Ștergerea este selectivă, iar pentru reînscriere trebuie parcurși mai mulți pași.

Memoria EEPROM echipează multe MC, fiind ieftină. În memoria EEPROM se

memorează un mic număr de parametri care se schimbă din timp în timp. Memoria

este lentă și numărul de ștergeri/scrieri este limitat (tipic 10 000).

Memoria FLASH este o memorie asemănătoare EPROM și EEPROM în

sensul că poate fi ștearsă și reprogramată în sistemul în care este folosită (fără a fi

necesar un sistem dedicat). Are capacitatea unui EPROM, dar nu necesită fereastră

pentru ștergere. Ca și EEPROM, memoria FLASH poate fi ștearsă și programată

electric. Memoria FLASH nu permite ștergerea individuală de locații, utilizatorul

poate să șteargă doar întregul conținut.

Din punct de vedere al locului și modului de programare a memoriilor de

tip PROM există două concepte:

• ICP (In Circuit Programming) – programarea memoriei când MC se

află pe placa de cablaj imprimat a aplicației;

• ISP (In System Programming) – presupune posibilitatea de

reprogramare în funcționare a sistemului. De exemplu la

autovehiculele comandate de MC, schimbarea tipului benzinei sau

schimbarea unei legi privitoare la poluare pot fi actualizate în

programul MC fără ca acesta să fie scos din autovehicul.

În funcție de numărul aplicațiilor în care urmează să fie folosit MC se

recomandă folosirea MC cu ROM pentru volum mare de producție (ROM se

înscrie cu mască la fabricant), OTP pentru volum mic de producție și EPROM

pentru prototipuri.

Tipul de memorie și capacitatea memoriei din echiparea unui MC sunt

caracteristici particulare fiecărui tip de circuit. Printre alte diferențe, acești

parametri sunt diferiți pentru membrii unei aceleiași familii de MC. Se vor

prezenta date concrete pentru exemplificare într-un tabel recapitulativ la sfârșitul

capitolului (tabelul 1.6).

Pentru a aprecia un MC sub aspectul componentei memorie este necesar să

se considere următoarele caracteristici:

• varietatea tipurilor de memorie pe chip: RAM, ROM /OTP /EPROM

/EEPROM /FLASH;

• capacitatea memoriei aflată pe chip;

• ușurința cu care se poate programa (programare în circuit sau nu,

necesitatea unor tensiuni de programare suplimentare).

Similar Posts