Gnandt Janos L.corectare [306526]

[anonimizat]/

LUCRĂRII de DISERTAȚIE

ENUNȚUL TEMEI:

Sistem de comandă și telemetrie a unui robot

CONȚINUTUL proiectului de diplomă/lucrării de disertație

Piese scrise

Piese desenate

Anexe

LOCUL DOCUMENTĂRII: …………………………………………………

CONDUCĂTOR ȘTIINȚIFIC: ………………………………………………

Data emiterii temei: ………………………………………………

Termen de predare: ……………………………………………….

[anonimizat],

([anonimizat], Prenume și NUME) (Prenume și NUME)

(semnătura) (semnătura)

Declarație-angajament: Deoarece acest proiect de diplomă/lucrare de disertație nu ar fi putut fi finalizat(ă) fără ajutorul membrilor departamentului ……………………….… și a [anonimizat].

Data: ………… Semnătura

Declarație: Subsemnatul …………………….……………… declar că am întocmit prezentul proiect de diplomă/[anonimizat], sub îndrumarea conducătorului științific și pe baza bibliografiei indicate de acesta.

Data: ………… Semnătura

Cap.1 Introducere

Prezentul proiect de licență cuprinde realizarea unui sistem de telemetrie și control și achiziție senzorială în robotică.

Principiul de funcționare al dispozitivului constă în comanda robotului prin accelerometrul și prin transmiterea video între camera Ip și laptop. Pentru realizarea robotului este necesar folosirea de parte hardware și parte de software. [anonimizat].

[anonimizat]. [anonimizat] a transmite date și de a realiza comenzi.

[anonimizat] a lucrării de diplomă. [anonimizat] a datelor senzorului accelerometru cu mincrocontrolerul și conexiunile fizice între componentele folosite. Partea finală a capitolul trei face referire la partea software.

În capitolul patru sunt prezentate partea fizică a robotului, [anonimizat]. Prin acest capitol are loc măsurarea parametrilor funcționale ale robotului.

[anonimizat]. [anonimizat], [anonimizat], cum ar fi: [anonimizat], electronic și cel informatic. Totodată prin realizarea practică se pot însuși noi abilități în acele domenii amintite.

Cap.2 Considerații teoretice

2.1 Sisteme de telemetrie și control

Soluțiile de telemetrie oferite au la bază module specializate care permit achiziția datelor de la traductoare/senzori, procesarea locală și transmiterea rezultatelor către sistemul de monitorizare și control. Telemetria este un proces de comunicații prin care se fac măsurători și se colectează date de la puncte distanțate sau inaccesibile și care într-un final sunt transmise echipamentului de recepție.

2.1.1 Rolul și funcționarea unui sistem de telemetrie și control

Un sistem de control este un dispozitiv sau un set de dispozitive , care gestionează comenzile, direcționează sau reglementează comportamentul altor dispozitive sau sisteme . Sistemele de control industriale sunt utilizate în producția industrială pentru echipamente sau mașini de control .

Există două clase comune ale sistemelor de control , sisteme de control în buclă deschisă și sisteme de control în buclă închisă .

Sistemele de control în buclă deschisă: sunt sisteme în care variabila de control de ieșire este independentă de cea de intrare. În general, aceste sisteme necesita operator uman.

Fig.1 Control în buclă deschisă

Sistemele de control în buclă închisă: sunt sisteme în care variabila de control de ieșire depinde (după o funcție oarecare) de variabila de intrare. Funcția dependentă a variabilei de ieșire determină tipul sistemului (proporțional, integrativ, derivativ, etc.). Procesul de reglare a ieșirii față de intrare se face prin compensarea variabilei de intrare cu o valoare de referință.[6]

Fig.2 Control în buclă închisă

2.1.2 Importanța unui sistem de telemetrie și control în robotică

Telemetria și controlul în roboticaă este foarte important, fiind că, prin acestea putem comanda, controla sau monitoriza roboți automați sau semiautomați. În robotică controlul este alcătuit dintr-un senzor sau din mai mulți senzori, o cale de transmisie, precum și un afișaj, înregistrare sau un dispozitiv de control. Dispozitivele electronice sunt utilizate în telemetrie și poate fi cu fir sau fără fir , analog sau digital. Structura unui robot este, un sistem compus din mai multe subsisteme. Sistemul este un ansamblu de părți componente, elemente, și legăturile dintre acestea.

Sistemul unui robot comunică cu mediul și este compus din următoarele: Sistemul mecanic al robotului, care are rolul de a pune în mișcare robotul.

Mișcarea relativă a elementelor mecanismelor din sistemul mecanic, este realizată de sistemul de acționare.

Datorită sistemului de comandă sunt emise comenzi către sistemul de acționare și prelucrează informații preluate de la senzori. Sistemul de conducere este un sistem de rang superior al sistemului mecanic și este compus din sistemul de comandă și cel de acționare. Legăturile dintre componentele robotului și a componentelor care realizează legăturile cu mediu sunt directe.

Structura unui robot este compus din:

sistemul mecanic;

sistemul sensorial;

sistemul de acționare;

sistemul de programare;

sistemul de comandă.

Sistemul mecanic este realizat din mai multe elemente legate între ele prin cuple cinematice. Sistemul mecanic al robotului are rolul să asigure realizarea mișcărilor acestuia și transmiterea energiei mecanice necesare interacțiunii cu mediul. Adică are sarcina de a deplasa un obiect. Partea din sistemul mecanic care realizează această deplasare se numește dispozitiv de ghidare sau manipulator.

Partea de acționare servește la transformarea unei anumite energii în energie mecanică și transmiterea ei la cuplele cinematice conducătoare.

Sistemul de programare și comandă este un ansamblu de programe și echipamente care realizează partea de mișcarea robotului.

Sistemul senzorial reprezintă un ansamblu de elemente specializate, transformarea proprietăților ale diferitelor obiecte în informații. Aceste transformări de mărimi sunt preluate din exteriorul robotului și mărimile fizice se transformă în mărimi electrice.

2.2 Sisteme de comunicații

2.2.1 Generalități

Termenul Wi-fi înseamnă în limba engleză “Wireless” (fără fir), care este construit pe baza standardelor de comunicație din familia IEE 802.11. Aceste standarde de comunicații sunt utilizate pentru realizarea de rețele locale de comunicație LAN, fără fir wireless WLAN la viteze echivalente cu cele ale rețelelor cu fir electric de tip Ethernet. Suportul pentru Wi-fi este furnizat de diferite dispozitive hardware și de aproape toate sistemele de operare moderne pentru calculatoare, telefoane, routere mobile sau roboți etc.[7]

Termenul IEEE 802.11 descrie protocoale de comunicație care sunt realizate la nivelul gazdă-rețea al TCP-IP respectiv la cele două nivele fizice și legătură de date ale modelului OSI. Această relevă faptul că implementările IEEE 802.11 vor primi pachete de protocoalele de la nivelul rețea și se vor ocupa de transmiterea lor, astfel evitând coliziuni cu alte stații care doresc să transmit pachete. Termenul 802.11 face parte dintr-un grup de standarde pentru comunicațiile în rețele locale, elaborate de IEEE, și din care mai fac parte standarde pentru alte feluri de rețele, inclusiv standardul 802.3, pentru Ethernet.[7]

Aceste standarde au limitări care provin din mediul fără fir, face ca rețelele IEEE 802.11 să transmită mai lent decât cele cablate ca și în cazul Ethernetului, dar și din folosirea benzii de frecvență de 2,4 GHz, împărțită în 12 canale care se suprapun parțial două câte două. Consumul de energie are anumite limitări, precum și reglementări privind puterea electromagnetică emisă, de aceea nu permit arii de acoperire mai mari de câteva sute de metri, astfel mobilitatea în cadrul acestor rețele va fii limitată. Se poate remarca faptul că există și unele tehnologii care permit legături fără fir construite pe standardul 802.11 între două puncte fixe aflate la distanțe enorme.[7,2]

Mediul de transmisie aduce probleme de securitate suplimentară spre deosebire de Ethernet. În cazul Ethernetului, accesul la cablu se putea restricționa prin ascunderea sau asigurarea zonelor prin care trece acesta, undele radio sunt mult mai greu de controlat. Există mecanisme de influență negativă, care produce un zgomot electromagnetic ce acoperă frecvențele folosite de rețelele 802.11, însă funcționarea lor este imperfectă, fără a afecta comunicațiile legitime sau fără a lăsa breșe prin care se poate obține acces la rețea. La nivel fizic securitatea este dificil de asigurat, pentru obținerea unui nivel de securitate acceptabil este necesară criptarea datelor și controlul accesului la nivelele superioare celui fizic.[2]

Sunt cazuri în care accesul la rețea se poate controla și prin alte tehnici simple, însă aceastea vor obține un success mai limitat, suficient pentru a înlătura unele intruziuni. O astfel de metodă este configurarea punctului de acces așa încât să nu-și transmită public SSID-ul. Termenul de SSID-ul reprezintă un nume care este transmis periodic de un punct de acces pentru aș face cunoscută prezența stațiilor ce doresc să intre în rețea.[7]

Transmiterea acestui semnal poate fi oprit, ascunde prezența rețelei față de un potențial atacator superficial, care permite stațiilor care cunosc SSID-ul punctului să se conecteze la rețea. Soluția de mai sus nu este benefică în cazul unor pericole mai mari, intruși externi, deoarece cadrele transmise între punctul de acces și stațiile conectate pot oferi informații care sunt esențiale prin accesarea lor. Se poate enumera o altă tehnică la fel de simplă, dar la fel de ineficientă, este filtrarea adreselor MAC.[7]

Ca și în cazul Ethernetului, dispozitivele de acces la rețea pot fi identificate în mod unic de o adresă fizică denumită și adresă MAC. Punctul de acces poate fi configurat să permită accesul în rețea numai stațiilor care au una dintr-o listă finită de adrese MAC. Prin aceeași tehnică de ascultare a traficului legitim din rețea, însă un intrus poate afla adresa MAC a unei stații legitime, falsificând apoi această adresă și obținând accesul, pretinzând că este respectiva stație. Rețelele Wi-Fi oferă rate de transfer mari pe distanțe mici, fiind una dintre cele mai rapide rețele fără fir, dar și cea care oferă cea mai mică mobilitate. Aria de acoperire se poate mări prin utilizarea unei tehnologii WiMAX, pentru rețele metropolitane unde este utilizat sistemul fără fir IEEE 802.16.[7]

Aria de acoperire are o limitare importantă în cazul sistemului fără fir. Ea depinde mult de capabilitățile, proprietățiile antenelor dispozitivelor și de așezarea geografică a zonei pe care urmărește rețeaua să o acopere. Aria de acoperire este limitată în zonele împădurite din cauza plantelor care absorb radiațiile electromagnetice. Pereții de beton reflectă puternic undele radio, instalarea unei rețele într-o clădire aducând astfel limitarea numărului de camere ce poate fi acoperită de o singură celulă.[7]

Wi-fi este un câmp energetic care poate fi transmis sub formă de unde electromagnetice. Undele au o înălțime anume, distanță între ele și se deplasează cu o anumită viteză. Distanța dintre undele wi-fi este mai scurtă decât aceea dintre  undele radio și mai lungă decât în cazul microundelor, conferind wi-fi o bandă de transmisie unică, ce nu poate fi întreruptă de alte semnale. Undele wi-fi au o distanță între valorile trei și cinci inch (7,62 și 12,7 cm) de la o creastă la alta. Aceste creste sunt transformate de un computer la valoarea 1, iar bazele sunt egale cu 0. Lanțurile de 0 și de 1 pot fi transformate în numere, litere și coduri care compun site-uri, mail-uri și alte componente ale internetului. Undele wi-fi tipice descresc în amplitudine pe măsură ce se depărtează de sursă și din acest motiv sunt mai ample în dreapta și mai mici în stânga, presupunând că sursa este undeva aproape de partea dreapta a imaginii. Imaginea rezultantă poate fi un semnal wi-fi idealizat, transmis într-o bandă care este împărțită în două subcanale, redate în galben, roșu, verde  și alte culori.[7]

Fig.3 Reprezentarea propagării undelor electromanetice întru-un mediu extern.[8]

2.2.2 Evoluția

Ethernetul a devenit din ce în ce mai popular în anii 1990, s-au depus eforturi ca noul standard să fie compatibil cu acesta, din punctul de vedere al transmiterii pachetelor. Standardul a fost realizat de IEEE în anii 1990, prima versiune a lui fiind definitivată în 1997. Acea versiune nu mai este folosită de implementatori, versiunile mai noi și îmbunătățite 802.11a/b/g fiind publicate între 1999 și 2001. Din anii 2004 au început să lucreze la o nouă versiune, intitulată 802.11n și care, deși nu a fost definitivată, este deja implementată de unii furnizori de echipamente.[2,7]

Prima specificație IEEE 802.11, elaborată în 1997, permitea trei moduri principale de transmitere fără fir a biților. Prima dintre acestea era o tehnologie optică, cu transmitere în infraroșu, tehnologie similară cu cea folosită de telecomenzile diferitelor aparate electronice. Aceasta înseamnă însă limitarea ariei de acoperire a rețelei la încăperea în care este instalată, însă această limitare oferă un avantaj din punctul de vedere al securității. Viteza oferită de această tehnologie este între 1–2 Mbps.[2]

Se pot prezenta alte două tehnologii de transmisie care sunt tehnologii radio în banda de 2,4 GHz, bandă ce poate fi folosită fără licențe de utilizare. Din cauza libertății de utilizare a acestei benzi, ea este folosită și de alte tehnologii, cum ar fi Bluetooth sau telefoanele fixe cordless, ceea ce poate cauza uneori interferențe, deși în general puterea de transmisie a tuturor acestor dispozitive este redusă. Din 2004, IEEE are în lucru și standardul 802.11, care deja a început să fie implementat de mai mulți producători de echipamente.[7]

2.2.3 Protocoale de comunicație

Modelul OSI permite vizualizarea și parcurgerea traseului de informații sau pachete de date, de la un program de aplicații, la un alt program de aplicații aflat într-un alt computer din rețea, chiar dacă expeditorul și destinatarul fac parte din rețele cu topologii diferite, cu tipuri diferite de medii.[2]

Acest model este realizat ca conținând șapte nivele, fiecare având anumite funcții specifice, construind împreună comunicarea în rețea. Această separare a funcțiilor într-o rețea se numește stratificare (layering). Fiecare nivel OSI reprezintă un set de funcții, protocoalele stabilind modul în care sistemul furnizează aceste funcții.[2]

Fig.4. Reprezentarea nivelelor OSI.[9]

Nivele OSI

1.Primul nivel fizic are rolul de a transmite pachete de date de la un calculator la altul prin intermediul unui mediu de comunicație. Datele se află în acest nivel ca un șir de biți. Problemele frecvente sunt de natură electrică: nivelele de tensiune corespunzătoare unui bit 1 sau 0, durata impulsurilor de tensiune, cum se inițiază și cum se oprește transmiterea semnalelor electrice, asigurarea păstrării formei semnalului propagat. Mediul de comunicație nu aparține nivelului fizic.[2]

2. Al doilea nivelul prezintă legăturii de date care corectează erorile de transmitere apărute la nivelul fizic, astfel realizănd o comunicare corectă între două noduri ale retelei. Mecanismul utilizat în acest scop este împărțirea biților în cadre, la care sunt adăugate informații de control. Cadrele sunt transmise individual, putând fi verificate și confirmate de către receptor. Alte funcții ale nivelului se referă la fluxul de date și la gestiunea legăturii.[2]

3. Al treilea nivel de rețea asigură dirijarea unităților de date între nodurile sursă-destinație, trecând eventual prin noduri intermediare. Este esențial ca fluxul de date să fie astfel dirijat încât să se evite supraaglomerarea anumitor zone ale rețelei. Interconectarea rețelelor cu arhitecturi diferite este o funcție a nivelului rețea.[2]

4. Al patrulea nivel de transport realizează o legătură între două stații de calculatoare gazda detectând și corectând erorile pe care nivelul rețea nu le utilizează. Este nivelul aflat în mijlocul ierarhiei, oferind nivelelor superioare o interfață care nu este dependentă de tipul rețelei utilizate. Din funcțiile principale fac parte: stabilirea unei conexiuni sigure între doua masini gazdă, controlul fluxului de date și închiderea conexiunii, inițierea transferului.[2]

5. Nivelul cinci reprezintă o sesiune care stabilește și întreține conexiuni între procesele de aplicație, rolul său fiind acela de a permite proceselor să stabilească "împreună" caracteristicile dialogului și să sincronizeze acest dialog.[2]

6. Nivelul șase are rolul de realizare a unor operații de transformare a datelor în formate care sunt înțelese de părțile ce intervin intr-o conexiune. Transferul de date între mașini de tipuri diferite necesită și codificarea datelor în funcție de caracteristicile acestora. La acest nivel prezentare oferă și metode de criptare/decriptare a datelor, pentru asigurarea securității comunicației în rețea.[2]

7. Ultimul nivelul de aplicație reprezintă rolul de "fereastră" de comunicație între utilizatori, aceștia fiind reprezentați de entitațile aplicației. Nivelul aplicație nu comunică cu aplicațiile ci este în stare să controleze mediul în care se execută aplicațiile, astfel punând la dispoziție servicii de comunicație. Printre aceste funcții a nivelului se află: o identificare a partenerilor de comunicație, determinarea disponibilității acestora și autentificarea lor, o sincronizare a aplicațiilor cooperante și selectarea modului de dialog, o stabilire a responsabilităților pentru tratarea erorilor, o identificare a constrângerilor asupra reprezentării datelor, transferul informației.[2]

Primele trei nivele de la baza ierarhiei (fizic, legatură date, rețea) sunt considerate ca formând o subrețea de comunicație . Subrețeaua este răspunzătoare pentru

realizarea transferului efectiv al datelor, pentru verificarea corectitudinii transmisiei și construirea

rețelelor de calculatoare pentru dirijarea fluxului de date prin diversele noduri ale rețelei. Acest termen trebuie înțeles ca desemând "subrețeaua logică", adică mulțimea protocoalelor de la fiecare nivel care realizează funcțiile de mai sus. Termenul de subrețea este utilizat și pentru a desemna liniile de transmisie și echipamentele fizice care realizează dirijarea și controlul transmisiei.

Modelul OSI nu este folosit în intregime de producători, nivelele sesiune și prezentare putând să lipsească (unele din funcțiile atribuite acestora în modelul OSI sunt îndeplinite de alte nivele).[2]

Modelul de referință OSI a fost realizat pentru asigurarea conectării echipamentelor de rețea, modelul TCP/IP a fost implementat pentru a oferi o referință pentru dezvoltarea de protocoale compatibile. TCP care poarte numele de (Tranmission Control Protocol) are rolul de a împărți datele în pachete și asigurea transmiteri corecte a mesajelor între computere. Aceste pachetele sunt numerotate, astfel se poate verifica primirea lor în forma în care au fost transmise și refacerea mesajelor lungi, formate din mai multe pachete.[9]

Fig.5 Modelul arhitectural TCP/IP.[9]

• TCP (Transmission Control Protocol)

• IP (Internet Protocol)

Obiectivul central la proiectarea rețelei a fost acela de a se putea interconecta fără problemă mai multe tipuri de rețele, iar transmisia corectă a datelor să nu fie afectată de distrugerea sau defectarea unei părți a rețelei. În plus, este necesară ca arhitectura rețelei să permită rularea unor aplicații cu cerințe divergente, de la transferul fișierelor și până la transmiterea datelor în timp real.

Cele patru nivele ale TCP/IP sunt:

1. Nivelul gazdă-rețea

Esența acestui nivel fiind un anumit protocol, gazdă care trimite prin intermediul rețelei pachete IP. Acest protocol diferă de la o rețea la alta și subiectul nu este tratat în literatura de specialitate.[9]

2. Nivelul internet

Acest nivel este primordial fiindcă pe acesta se centrează întreaga arhitectură, rolul său fiind acela de a permite gazdelor să emită pachete în rețea și de a asigura transferul lor între sursă și destinație. Este definit formatul de pachet și protocol IP. Acest nivel trebuie să furnizeze pachete IP la destinație, să rezolve problema dirijării pachetelor și să evite congestiile (lucrează asemănător cu nivelui rețea din modelul OSI).[9]

3. Nivelul transport

Este conceput astfel încât să permită dialogul între entitățile pereche din gazdele sursă și destinație. Pentru aceasta fiind definite două protocoale care sunt TCP și UDP. Protocolul de control al transmisiei TCP permite ca un șir de octeți emiși de un sistem să fie recepționat fară erori pe orice alt sistem din rețea. TCP fragmentează șiruri de octeți în mesaje discrete pe care le pasează nivelului internet. La destinație, procesul TCP receptor reasamblează mesajele primite, reconstituind datele inițiale. Prin TCP sunt realizate controlul fluxului de date pentru a evita situația în care un transmițătorul rapid acoperă un receptor lent cu mai multe mesaje decât poate acesta să prelucreze. TCP este un protocol bazat pe conexiune UDP care își poartă numele ( User Datagram Protocol- protocolul datagramelor utilizător) care este un protocol nesigur, fără conexiuni, destinat aplicațiilor care utilizează propria secvențiere și control al șirului de octet și nu mecanismele asigurate de TCP. Este folosită unde este mai importantă rapiditatea decât acuratețea.[9]

4. Nivelul aplicație

Conține protocoalele de nivel înalt, cum ar fi terminalul virtual TELNET, transferul de fișiere FTP și poșta electronică . Protocolul TELNET dă posibilitatea utilizatorului să se conecteze pe o mașină aflată la distanță și să lucreze ca și cum s-ar afla într-adevăr lângă aceasta. Pe parcurs s-au adăugat alte protocoale ca DNS ce reprezintă (serviciul numelor de domenii), pentru stabilirea corespondenței dintre numele gazdelor și adresele rețelelor, NNTP- folosit pentru transferul articolelor , pentru transferul paginiilor web se folosește HTTP.[9]

Protocolul TCP/IP are avantajul că este independent de configurația hardware, de mediile de transmisie, și este suportat de majoritatea sistemelor de operare. Acest protocol fragmentează fluxul de octeți în mesaje discrete și pasează fiecare mesaj nivelului Internet. TCP tratează totodată controlul fluxului pentru a se asigura că un emițător rapid nu acoperă un receptor lent cu mai multe mesaje decât poate acesta să prelucreze.[9]

Protocolul I2C

Acronimul I2C vine de la “Inter-Integrated Circuit”. Acest tip de comunicare a fost definit de Philips în 1970 din dorința de simplificare și standardizare a liniilor de date din produsele lor. Prin această soluție s-a redus numărul de linii la două (SDA – date și SCL – ceas). Această interfață este cunoscută și sub numele de „comunicare pe două fire” sau „two wire interface”. Care se compune din două fire, numite SCL și SDA. SCL este linia de ceas. Acesta este utilizat pentru a sincroniza toate transferurile de date pe magistrala I2C. SDA este linia de date. Liniile SCL și SDA sunt conectate la toate dispozitivele de pe magistrala I2C. Este necesar să existe un al treilea fir, care este pentru GND sau de 0 volți. Poate exista, de asemenea, un fir de 5 volți pentru puterea distribuită la dispozitive.[10]

I2C presupune:

Rata de transfer: 10 Kb/s – 100Kb/;

SDA – Serial Data line;

SCL – Serial Clock line;

128 de adrese posibile;

16 adrese rezervate;

112 dispozitive se pot conecta pe I2C;

Dispozitivele conectate trebuie sa aibă masă comună (GND).

Modul de conectare:

După cum este prezentat și în partea introductivă pentru acest exemplu se vor folosi două placi de dezvoltare Arduino (irelevant modelul) între care se va realiza o comunicare bidirecțională pe I2C. Prima placă v-a fi denumită MASTER iar cea de-a doua SLAVE. Placa MASTER v-a putea interoga oricare port al plăcii SLAVE la intrare cât și la ieșire. Conceptul MASTER SLAVE presupune următoarele lucruri: dispozitivul MASTER este responsabil de controlul semnalului de ceas precum și de generarea semnalului de START și STOP. Masterul este întotdeauna dispozitivul care conduce linia de ceas SCL, dispozitivul SLAVE este responsabil de interpretarea și oferirea răspunsului aferent comenzilor venite de la MASTER. Un slave nu poate iniția un transfer pe magistrala I2C, numai masterul poate face asta. Pot exista mai mulți slave pe I2C, cu toate acestea există în mod normal doar un singur master. Și masterul și Slave-ul pot transfera date pe magistrala I2C, doar că transferul este întotdeauna controlat de către master.[11]

I2C Protocolul fizic

În cazul în care masterul (controlerul) dorește să cominice cu un slave el începe prin emiterea unei secvențe de pornire în protocolul I2C. O secvență de start este una dintre cele două secvențe speciale, definite pentru magistrala I2C, cealaltă fiind secvența de oprire. Secvențele de pornire și de oprire sunt secvențe speciale prin faptul că acestea sunt singurele locuri în care SDA (linia de date), este permisă să se schimbe în timp ce SCL (linia de ceas) este mare. Atunci când se transferă date, SDA trebuie să rămână stabil și să nu se schimbe în timp ce SCL este mare. Secvențele de pornire și de oprire marchează începutul și sfârșitul unei tranzacții cu dispozitivul slave.[11]

Fig.6. Reprezentarea secvenței de start- stop I2C.[11]

Datele sunt transferate în secvențe de 8 biți. Biții sunt plasați pe linia SDA începând cu MSB (Cel mai semnificativ bit). Linia de SCL este transmis în impulsuri înalte, apoi în impulsuri scăzute. Cipul nu poate conduce într-adevăr linia înaltă, ea pur și simplu "dă drumul" și rezistorul este de fapt cel care transmite înalt. Pentru fiecare 8 biți transferați, dispozitivul care primește datele, trimite înapoi un bit , astfel încât există de fapt 9 impulsuri de ceas SCL pentru a transfera fiecare octet 8 biți . În cazul în care dispozitivul de recepție trimite înapoi un bit ACK scăzut, atunci a primit datele și este gata să accepte un alt octet. În cazul în care trimite înapoi un impuls mare, atunci acesta indică faptul că nu poate accepta nici un fel de date suplimentare, iar masterul ar trebui să înceteze transferul prin trimiterea unei secvențe de oprire.[11]

Fig.7 Reprezentarea adresării I2C. [11]

Mai jos se prezintă un exemplu de sistem realizat pe structura I2C împreuna cu următoarele situații :

a). microcontrolerul A dorește să transmită date microcontrolerului B;

b). microcontrolerul A dorește să recepționeze date de la microcontrolerul B. Transferul datelor între cele două microcontrolere are loc după cum urmează.

În cazul a: – microcontrolerul A (coordonator) adresează microcontrolerul B (subordonat); – microcontrolerul A (emițător coordonator) transmite date microcontrolerului B (receptor subordonat); – microcontrolerul A încheie transferul.

În cazul b: – microcontrolerul A (coordonator) adresează microcontrolerul B (subordonat); – microcontrolerul A (receptor coordonator) primește date de la microcontrolerul B (transmițător subordonat); – microcontrolerul A încheie transferul. Se observă că în ambele cazuri microcontrolerul A (coordonatorul) inițiază și încheie transferul. Totodată, el este cel care generează semnalele de tact în ambele cazuri.[11]

Fig.8 Exemplu I2C cu două microcontrollere

Protocolul de la I2C Software

Primul lucru care se întâmplă este faptul că maestrul va trimite o secvență de start. Acest lucru va alerta toate dispozitivele slave și va începe o tranzacție și slave-urile vor trebui să asculte dacă acestă tranzacție este pentru ei. În continuare masterul va trimite adresa dispozitivului. Slave-ul la care se potrivește adresa respectivă va continua tranzacția, celelalte vor ignora restul acestei tranzacții și va aștepta următoarea adresă. După ce slave-ul are adresa respectivă, masterul trebuie să trimită acum afară locația internă sau numărul de registru în interiorul slave-ului care dorește să scrie sau să citească. Acest număr este, evident, dependent de slave-ul respectiv și de registrele interne pe care le are. După ce a trimis adresa I2C și adresa registru intern masterul poate trimite acum octet de date (sau octeți, acesta nu trebuie să fie doar unul). Masterul poate continua să trimită octeți de date la slave și aceste vor fi plasate în mod normal în următoarele registre deoarece slave-ul va incrementa automat adresa de registru intern după fiecare octet. În cazul în care masterul a terminat de scris toate datele pe slave , ea trimite o secvență de oprire pe care se încheie tranzacția. Deci, pentru a scrie un dispozitiv slave este nevoie de:[11]

1. Trimiterea de secvență de pornire de la master;

2. Trimiterea adresei I2C slave-ului cu bitul R / W scăzut (chiar adresa);

3. Trimiterea numărului registru intern pe care dorește să scrie;

4. Trimiterea octeți de date;

5. OPTIONAL, trimite orice data Bytes suplimentară;

6. Trimiterea secvenței de oprire.

Citirea din Slave

Acesta este un pic mai complex. Înainte de a citi de pe dispozitivul slave, trebuie stabilită care dintre adresele sale interne va fi citită. Deci, o citire de pe slave este de fapt, o scriere. Acest lucru este la fel ca la scriere : trimite secvența de pornire, adresa I2C cu R / W bit scăzut (chiar adresa) și numărul de registru intern pe care dorește să scrie. După care trimite o altă secvență de pornire (uneori numită repornire) și adresa I2C din nou, de data aceasta cu un set de biți de citire. Apoi se pot citi mai multe date, depinde cât se dorește și tranzacția se termină cu o secvență de oprire. Deci, pentru a citi o secvență de date din modulele dispozitivului se realizează:

1. Trimiterea secvenței de pornire;

2. Trimiterea 0xC0 (adresa I2C a CMPS03 cu bitul R / W scăzut (chiar adresa);

3. Trimiterea 0x01 (adresa internă a registrului lagărului);

4. Trimiterea din nou a unei secvențe de pornire (pornire repetată);

5. Trimiterea 0xC1 (adresa I2C a CMPS03 cu R biți / W de mare);

6. Citire octet de date de la CMPS03;

7. Trimiterea secvenței de oprire.[10]

Secvența de biți va arăta în felul următor:

Fig.9 Reprezentarea transmiterii complete a datelor I2C.[11]

2.3 Sisteme senzoriale

2.3.1 Generalități

Senzorul numit elementul sensibil, este elementul component al unui sistem automat sau al unui aparat de măsurat care are rolul de a transforma mărimea de măsurat. Având o anumită natură, într-un semnal purtător de informație pentru sistemul automat sau într-o mărime aptă de a fi percepută de operatorul uman pentru aparatul de măsurat. În formă brută nivelul semnalului nu este compatibil cu nivelul semnalelor cu care operează sistemul automat. Din acest motiv se introduce un element auxiliar care se numește adaptor. Senzorul și adaptorul alcătuiesc o unitate numită traductor care este un element de bază pentru orice instalație automatizată.[1]

Traductoarele pot fi definite ca dispozitive care realizează conversia unor mărimi fizice

(deplasare, temperatură, forță, presiune, etc.) în alte mărimi fizice, cel mai adesea electrice, sau a

unor mărimi electrice în alte mărimi electrice, în scopul măsurării parametrilor acelor mărimi și

informării, respectiv luării unor decizii în consecință.[12]

Fig.10 Reprezentarea structurii generale a unui traductor.[12]

La intrarea traductorului aplicăm mărimea de măsurat notat cu x, reprezentând parametrul măsurat de exemplu (debit, temperatură, presiune, turație, nivel, forță, viteză, etc). Mărimea de ieșire notat cu y reprezintă valoarea mărimii măsurate, exprimată sub formă de semnal analogic: rezistență, curent, tensiune.[12]

Componente ale traductorului sunt:

a. Elementul sensibil notat cu ES (senzor, captor, detector) este elementul pentru detectarea mărimii fizice pe care traductorul trebuie să o măsoare. El are capacitatea de a elimina sau reduce la minim influențele exercitate de alte mărimi decât cea care se măsoară și care acționează simultan asupra traductorului. Sub acțiunea mărimii de intrare are loc o modificare de stare a elementului sensibil. Modificarea de stare presupune un consum energetic care poate fi luat:[12,1]

-din proces, în raport cu fenomenul fizic pe care se bazează detecția, și de puterea asociată mărimii de intrare, modificarea de stare se poate manifesta sub forma unui semnal la

ieșirea elementului sensibil de exemplu: tensiunea electromotoare generată la bornele

unui termocuplu în funcție de temperatură;

-de la o sursă auxiliară de energie, când modificarea de stare are ca efect variații ale unor

parametrii de material.

b. Elemente de transmisie notat cu ELT sunt elemente auxiliare care realizează conexiuni mecanice, electrice, optice sau de altă natură în situațiile în care tehnologiile de realizare a

traductorului o impun. Dacă mărimea generată de elementul sensibil este neadecvată pentru transmisie în cazul transmisiilor la mare distanță, atunci elementul de transmisie conține și elemente de conversie potrivit cerințelor impuse de canalele de transmisie.[12,1]

c. Adaptorul notat cu A are rolul de a adapta informația de la ieșirea elementului

sensibil la cerințele impuse de aparatura de automatizare utilizată. Adaptorul asigură conversia variațiilor de stare ale elementului sensibil în semnale calibrate la ieșire, ce reprezintă la o altă scară valoarea mărimii de intrare. Adaptorul realizează operația specifică măsurării, comparația cu unitatea de măsură adoptată.[12,1]

În raport cu forma de variație a semnalelor de ieșire, adaptoarele pot fi: -analogice, numerice.

Semnalele analogice: – variații continue ale unui parametru caracteristic și sunt, de regulă, semnale unificate.

Semnalele numerice, generate la ieșirea traductoarelor numerice s-au impus prin folosirea

pe scară tot mai largă a echipamentelor de reglare numerică și a calculatoarelor de proces.

d. Sursa auxiliară de energie notat cu SAE, necesară în cele mai des întălnite cazuri, pentru a menaja energia semnalului util.[12,1]

Tipuri de traductoare

Elementele sensibile impun și clasificarea traductoarelor care se realizează după mai

multe criterii.

După principiul de conversie a mărimii fizice aplicate la intrare, traductoarele pot fi generatoare și parametrice.

Traductoarele de tip parametric se caracterizează prin aceea că mărimea de intrare care sunt neelectrică determină variația unor parametrii de circuit ca de exemplu, rezistența

electrică, inductanța, capacitatea, preluând energia electrică necesară de la surse auxiliare.

Conversia unor mărimi neelectrice (mecanice, calorice, procese chimice, radiații) se

bazează pe dependența parametrilor respectivi la unele materiale conductoare, semiconductoare

sau dielectrice de aceste mărimi. Pentru a ilustra asemenea posibilități este suficient a se reaminti următoarele relații fundamentale care stau la baza funcționării elementelor sensibile parametrice:

Rezistența electrică a unui conductor omogen sunt:

(1)

- rezistivitatea [·m];

l – lungimea conductorului [m];

s – secțiunea conductorului [m2].

Inductivitatea proprie a unei bobine considerând circuitul magnetic liniar:

(2)

N – numărul de spire al bobinei;

k – permeabilitatea magnetică;

lk – lungimea mediului k care alcătuiește circuitul magnetic al bobinei;

Capacitatea unui condensator plan cu armături paralele:



s – suprafața comună a armăturilor [m2];

- permitivitatea dielectricului [F/m];

d – distanța dintre armături [m].

2.3.2 Sisteme inerțiale

Accelerometrul

Termenul de accelerație în mod uzual, reprezintă variația vitezei unui punct material, raportată la unitatea de timp.

Accelerometrele sunt traductoare care oferă o ieșire proporțională cu accelerațiile, șocurile și vibrațiile. Se pot folosi pentru măsurarea accelerațiilor instantanee pe care le înregistrează un element în mișcare, sau pentru a detecta direcția verticală pe baza accelerației gravitaționale g, care are întotdeauna direcția verticală și pentru a sesiza mișcarea. Conceptual, un accelerometru se comportă ca o masă amortizată pe un arc. Când accelerometrul este supus unei mișcări, masa este deplasată la punctul în care arcul este capabil să accelereze masa în același ritm ca și carcasa. Deplasarea este apoi masurată pentru determinarea accelerației. Măsurarea acestei accelerații ajută la sesizarea caracteristicilor dinamice, care determină comportamentul obiectului.

Fig.11. Reprezentarea principiului de funcționare.

Tipuri de accelerometru:

-piezoelectric;

-piezorezistiv;

-capacitive;

-servoaccelerometru;

-cu fibră optică;

-cu efect Hall;

Accelerometrul piezoelectric

Efectul piezoelectric este pus în evidență prin apariția unei diferențe de potențial electric la capetele unui dielectric sau feroelectric atunci când asupra lui acționează o forță de compresie mecanică.[]13

Diferența de potențial se datorează polarizării electrice a materialului piezoelectric sub acțiunea deformatoare a solicitării mecanice externe. Polarizarea electrică constă în apariția unor sarcini electrice pe suprafața materialelor piezoelectrice supuse acțiunii forțelor de întindere.[13]

Atunci când accelerometrul se deplasează sus-jos, elementul activ dezvoltă forța necesară pentru a muta masa seismică. Masa seismică este fixată pe bază printr-un bolț axial care coboară într-un arc circular. Elementul piezoelectric este comprimat între masa seismică și bază, astfel apare o diferență de potențial.

Conform legii a doua a lui Newton, această forță este proporțională cu accelerația. Forța care acționează asupra cristalului produce semnalul de ieșire, care este, prin urmare, proporțional cu accelerația traductorului.[13]

Avantaje:

Iși păstrează caracteristicile în toate condițiile de funcționare;

Are o bandă largă a frecvențelor în care se pot face măsurări în plus;

Pe întreaga bandă, domeniul său dinamic prezintă o bună liniaritate;

Este rezistent și își păstrează proprietățile în timp;

Este auto-generator, el neavând nevoie de o sursă de energie exterioară;

Nu are elemente în mișcare, deci nu se pune problema uzurii;

Fig.12. Reprezentarea accelerometrului piezoelectric.[3]

Accelerometrul piezorezitiv

Efectul piezorezistiv constă în modificarea rezistenței electrice a unui material când este supus unui efort mecanic cum ar fi o compresiune sau o întindere. El se întâlnește la cristale cu axe nepolare ce caracterizează și semiconductorii.

Un exemplu de accelerometru piezorezistiv este prezentat în figura de mai jos. Cipul senzorului de siliciu are o structură de tip grindă formată dintr-o singură capsulă de siliciu cristalizat.

Cipul accelerometrului este format dintr-un cadru pe care este atașată, o masă seismică, o rezistență si o grindă subțire la care este încorporată o altă rezistență. Cele două rezistențe sunt conectate, astfel formează un braț al unei punți Wheaston, una din cele mai simple și uzuale metode de masură specifică traductoarelor rezistive, care își modifică valoarea rezistenței electrice sub acțiunea efortului mecanic.

Atunci când cadrul structurii se mișcă cu o accelerație perpendiculară pe planul cipului, forța inerțială de pe masă solicită grinda la o încovoiere, astfel cauzându-i o tensiune mecanică. Tensiunea determină o modificare a valorii rezistenței de pe grindă, care este direct proporțională cu accelerația.

Fig.13 Accelerometru piezorezistiv

Avantaje

Față de accelerometrele piezoelectrice, cele piezorezistive prezintă avantajul unei impedanțe echivalent redusă, sunt mai puțin sensibile la influențele exterioare, banda de frecvențe începe de la zero. Prezintă avantajul de a putea fi confecționat de dimensiuni mai mici și de forme mai complicate pentru studiul solicitărilor complexe. Un mare avantaj al accelerometrelor cu traductoare piezorezistive este acela că dau un răspuns corect la frecvențe foarte joase (mergând până la 0 [Hz]), dar și un răspuns relativ bun la frecvențe înalte. Traductoarele cu senzori piezorezistivi au impedanța mică și imunitate la zgomote.

Spre deosebire de accelerometrele clasice, cele de tip servo conțin o masă suspendată liber, constrânsă de un arc mecanic cu o echivalență electrică. Masa este menținută în echilibru, astfel elimină erorile datorate neliniarităților.

Forțele elctromagnetice proporționale cu feedback-ul curentului, mențin masa într-o poziție de nul. Deoarece masa se află în mișcare, un sensor capacitiv detectează mișcarea. Un circuit servo derivează un semnal de eroare de la acest sensor capacitiv și trimite un curent printr-o bobină. Astfel generează un cuplu proporțional cu accelerația, păstrând masa într-un punct nul sau de măsurare.

Fig.14 Accelerometru cu balanță de forță

Efectul Hall apare atunci când o placă conductoare sau semiconductoare, parcursă de un curent electric, se află într-un câmp magnetic având inducția magnetică normală pe suprafața ei.

Atunci când inducția magnetică este prezentă, între două puncte care sunt echipotențiale în lipsa câmpului magnetic se va stabili o diferență de potențial, numită tensiune Hall.

Fig.15 Accelerometru cu efect Hall secționat

Element Hall analogic este prima component;

Elemente 3,4 redau carcasele traductorului;

Cea de-a doua componentă reprezintă elementul elastic.

Traductorul este atașat pe un element mobil. Elementul elastic din componența ansamblului se va deplasa sub acțiunea unor forțe exterioare și, datorită faptului că acesta are în componență un magnet permanent, va genera un câmp magnetic variabil. Variația inducției magnetice normale pe suprafața elementului Hall analogic va atrage după sine modificarea tensiunii Hall, valoarea semnalului de ieșire a traductorului putând fi corelată cu forța de excitație a sistemului.

Avantaje:

Precizie crescută, linearitate foarte bună, timp de răspuns mic, perturbații mici de mod comun.

Utilizări:

-În industria auto, la sistemul de aprindere al motorului și la pomparea combustibilului;

-La controlul motoarelor electrice;

-În sistemul de propulsie la aeronave;

Accelerometre moderne sunt adesea sisteme de tip MEMS (Micro Electrical-Mecanical System), și sunt într-adevăr cele mai simple dispozitive de tip MEMS posibil, constând din mai mult decât un obiect cu o masa cunoscută de asemenea este cunoscut cu masa seismică.

Când apare o influență accelereție externă, masa de probă deviază de la poziția neutrală. Această deformare este măsurată într-o manieră digital sau analogică.

2.3.3 Sisteme video

Aparatul de fotografiat este un aparat optic, cu ajutorul căreia pot fi obținute imagin reale ale obiectului. În urma revoluției digitale, aparatele de fotografiat transformă informația vizuală în informația digitală, cu ajutorul senzorilor de imagine.

Senzorii de imagine CCD (charge coupled device) si CMOS (complementary metal oxide semiconductor) sunt două tehnologii diferite pentru captarea imaginilor digitale. Fiecare are avantajele și slăbiciunile sale și niciuna nu este categoric superioară celeilalte.[26]

Fig.16 Schema bloc a unui sistem de prelucrare a imagini

Ambele tipuri de senzori transformă impulsurile luminoase în încărcătură electrică și îl procesează în semnale electronice. Într-un senzor CCD, încărcătura electrică a fiecarui pixel este transferată printr-un număr limitat de noduri (deseori doar unul) pentru a fi convertită în voltaj, stocată temporar și trimisă în afara senzorului ca semnal analogic. Astfel toată suprafața pixelului poate fi folosită pentru captarea luminii si uniformitatea răspunsului (un factor cheie în calitatea imaginii) este mare.[26]

Fig.17 Senzor CMOS. [14]

Atât senzorii CCD cât și CMOS oferă o calitate a imaginii excelentă atunci când sunt produși la standarde ridicate. În mod tradițional, CCD-urile au fost cele care au stabilit nivelurile de performanță în aplicațiile fotografice, stiințifice și industriale care necesitau imagini de cea mai înaltă calitate fără să țină cont de mărimea totală a sistemului de captare a imaginii. Senzorii CMOS oferă o integrare mai mare (mai multe funcții pe senzor), un consum de energie redus și posibilitatea de a avea siteme de captare a imaginii mai mici.[16]

Un senzor CMOS, în loc să convertească lungimile de undă ale luminii într-un curent de electroni pe un alt cip, acesta convertește fotonii în electroni prin procesarea datelor în mod direct, fără a utiliza un alt cip.  Folosind amplificatoare, acesti senzori sunt mai rapizi decât CCD-urile. Un mare avantaj al senzorului CMOS costului de producție redus, datorită realizării pe liniile technologice în care se fabrică, precum și consumul de energie redusă (nu se încălzesc).[16]

Senzorul CMOS este format tot din fotodiode, la fel ca senzorul CCD, dar fiecare fotodiodă are un amplificator. Structura CCD permite accesul la informație de imagine la nivelul de pixeli și nu numai la nivelul secvențial. Modul în care semnalul este transformat din sarcină electrică, în semnal analog și în final digital este diferit în comparație cu senzorul CCD. La senzorul CMOS transmiterea semnalelor analogice se face în paralel, cu o viteză mare în comparație cu senzorul CCD. Dezavantajul senzorilor CMOS este lipsa de uniformitate a performanțelor milioanelor de fotodiode și amplificatoare, ceea ce duce inevitabil la zgomot în fotografii. Producători au dezvoltat tehnologii care să elimine pe cât posibil acest zgomot.[16]

Fig.18 Reprezentarea funcționării senzorului CMOS.[15]

Cap 3. Implementarea sistemului mobil

3.1 Aspecte generale

Fig.19 Schema bloc a robotului

3.2 Modulele Hardware

3.2.1 Placa de dezvoltare Arduino uno

Arduino este o placă de dezvoltare, care conține un singur microcontroller, ce permite construirea de proiecte multidisciplinare, mult mai acceseibile. Poate fi considerată ca și un mic calculator căreia se poate controla intrările și ieșirile cipului.

Arduino uno r3 este o platformă de procesare open-source care se bazezază pe software și hardware flexibil și simplu de folosit. Este capabilă de a prelua date din mediul înconjurător printr-o serie de senzori (traductori) și de a efectua acțiuni asupra mediului prin intermediul motoarelor, servomotoarelor și alte tipuri de dispozitive mecanice. Procesorul este capabil să ruleze cod scris într-un limbaj de programare care este foarte similar cu C și C++.

Ca și construcție dimensională lungimea și lățimea placii este de 7,5 [cm] respectiv 5.3 [cm], care este extinsă dacă este conectat cablul USB și mufa de alimentare.

Microcontrollerul Arduino are 14 intrări digitale/pini de ieșire, din care 6 pot fi utilizate ca ieșiri PWM, 6 intrări analogice, un oscilator cu cuarț de 16 [MHz], o conexiune USB, o mufă de alimentare, o mufă ICSP și un buton de resetare. Conține tot ceea ce este necesar pentru a sprijini microcontrolerul pentru ca acesta să funcționeze; pur și simplu conectat la un computer cu un cablu de USB.

Fig.20 Reprezentarea unui microcontroller Arduino uno.[24]

Alimentare

Arduino Uno poate fi alimentat prin intermediul conexiunii USB sau cu o sursă de alimentare externă. Sursă de alimentare este selectată de către utilizator. Alimentarea externă (non-USB) poate veni fie de la un adaptor AC-la-DC sau baterie. Adaptorul poate fi conectat printr-un conector de 2.1[mm] cu centru-pozitiv. Conectare de la o baterie poate fi realizată legând la GND și [V]+ în capetele de la conectorii de alimentare. Placa de dezvoltare poate opera pe o sursă externă de 6-20 volți. Dacă este alimentată sub 7[V], există posibilitatea, ca pinul de 5V să furnizeze mai puțin de cinci volți și placa să devină instabilă. Dacă se alimentează cu mai mult de 12[V], regulatorul de tensiune se poate supraîncălzi acest lucru ducând la deteriorarea plăcii. Intervalul de tensiune recomandat de către producător este de 7-12 volți.

Cum este prezentată mai jos, microcontrollerul are 14 pini digitali de intrare / ieșire (I/O – input/output). Ele se operează la o tensiune de 5 volți și pot fi controlați cu una din funcțiile pinMode(), digitalWrite() și digitalRead(). Pinii sunt în stare să primească sau să trimită o intensitate de maxim 40 [mA] și au o rezistență internă între 20-50 [kOhm]. Unii dintre pini mai au și alte funcții specializate, în afară de semnalul standard I/O care sunt prezentate mai jos:[17]

0.RX este un pin serial, care este utilizat pentru recepția (intrare – Rx) datelor seriale asincrone (asyncronous serial communication). Protocolul serial asincron este o soluție benefică în electronică pentru a transmite și recepționa date între dispozitive. Acest protocol este introdus în dispozitiv sub numele de UART (Universal Asynchronous Receiver/Transmitter).

1.TX este un alt pin serial, folosit pentru trimiterea datelor asincrone (ieșire – Tx). Prescurtarea termenului TTL vine de la transistor-transistor logic (asyncronous serial communication).

2.Acest pin poate fi configurat pentru a declanșa o întrerupere la o valoare mică, un front descrescător-crescător sau o schimbare în valoare.

3.(External Interrupts + PWM) întrerupere externă și identic cu pinul 2. Suplimentar, toți pinii marcați cu semnul “~” pot fi folosiți și pentru PWM (Pulse With Modulation).

4.I/O este pinul standard intrare/ieșire.

5.PWM poate furniza control de ieșire pe 8-bit pentru controlul PWM.

6.PWM.

7.I/O pin standard intrare/ieșire.

8.I/O pin standard intrare/ieșire.

9.PWM.

10.(PWM + SPI) , realizează comunicarea prin interfața serială (Serial Peripheral Interface). SPI-ul are patru semnale logice specifice iar acest pin se folosește pentru SS – Slave Select (active low; output din master). Pinii SPI pot fi controlați folosind librăria SPI.

11.(PWM + SPI) acest pini suportă SPI, și se folosește pentru MOSI/SIMO – Master Output, Slave Input (output din master) prin librăria SPI.

12.SPI și acest pini suportă SPI, iar acesta se folosește pentru MISO/SOMI – Master Input, Slave Output (output din slave).

13(LED + SPI) suportă SPI, iar acest pin se folosește pentru SCK/SCLK. Ceas serial (output din master). De asemenea, pe placă este încorporat un LED care este conectat la acest pin. Când pinul este setat pe valoarea HIGH este pornit însă la valoarea LOW este oprit. [17]

Memoria

ATmega328 are 32 KB (cu 0,5 KB utilizate pentru bootloader). Ea are de asemenea, 2 KB SRAM si 1 KB de EEPROM.

Există o serie de 6 pini pentru semnal analogic, care sunt numerotați de la A0 la A5, fiecare din ei poate furniza o rezoluție de 10 biți (maxim 1024 de valori diferite). În mod implicit se măsoară de la 0 la 5 volți, deși este posibil să se schimbe limita superioară a intervalului lor folosind pinul 15 AREF și funcția analogReference( ). De asemenea, și aici anumiți pini au funcții suplimentare descrise mai jos:

0.standard analog pin

1.standard analog pin

2.standard analog pin

3.standard analog pin

4.(SDA) suportă comunicarea prin 2 fire (I2C (I-two-C) sau TWI (Two wire interface)). Acest pin este folosit pentru SDA (Serial Data) la TWI.

5.(SCL) identic cu pinul 4, doar că acest pin este folosit pentru SCL (Serial Clock) [24]

Lângă pinul analogic A0 mai există șase pini numiți Power, care sunt prezentați mai jos:

Vin -(input Voltage), intrarea pentru tensiune din sursă externă GND – negativ. Se folosește pentru piesele și componentele montate la arduino ca și masă/împământare/negativ.

5[V] este un pini de ieșire pentru piesele și componentele montate la arduino. Scoate fix 5[V] dacă placa este alimentată cu tensiune corectă.

3.3[V] alimentare pentru piesele și senzorii care se alimentează la această tensiune. Tensiunea de ieșire este 3.3 volți și are un curent maxim de 50 [mA].

RESET prin acest buton se poate seta acest pin pe LOW pentru a putea reseta controlerul de la Arduino. [17]

Comunicarea cu calculatorul, altă placă arduino sau alte microcontrolere se poate realiza fie prin portul USB (și este văzut ca un port standard serial COMx), fie prin pinii 0 și 1 (RX și TX) care facilitează comunicarea serială UART TTL (5[V]). Folosind librăria SoftwareSerial poate face comunicații seriale folosind oricare din pinii digitali. Pentru comunicarea I2C (TWI) este inclusă o librărie Wire. Pentru comunicarea SPI se poate folosi librăria SPI. Arduino mai are o serie de pini marcați ICSP (In Circuit Serial Programming). Acești pini pot fi folosiți pentru reprogramarea microcontrolerului, sau ca pini de expansiune cu alte microcontrolere compatibile.Sunt conectați standard și se poate folosi un cablu de 6 fire (MOSI, MISO, SCK, VCC, GND, și pinul RESET). [17]

Arduino Pwm control

Termenul de PWM provine din limba engleză de la Pulse Width Modulation ceea ce înseamna Modulația (…….) și este o tehnică de a simula un semnal analogic folosindu-se de un semnal digital.

Semnalul digital poate lua doar 2 stări: ON sau OFF ; „1“ sau „0“ ; 5[V] sau 0[V]. Un semnal

PWM ajuta sa obtii o multime de valori cuprinse intre 5 si 0[V]. De exemplu poti obtine 2.5[V] ceea ce înseamna că se poate modifica viteza de rotație a unui motor.

Semnalele PWM sunt utile în urmatoarele situații: atunci când trebuie create jocuri de lumini

cu o multitudine de LED-uri sau matrici, atunci când trebuie modificată viteza de rotație a unui motor, sau când este nevoie controlul unghiul a unui servomotor.

Semnalele PWM sunt foarte utile în diverse situații, iar placa Arduino nu duce lipsă de această funcție. O placă Arduino UNO poate genera până la 6 semnale PWM prin pinii: 3, 5, 6, 9, 10 și 11 deoarece microcontroller-ul este echipat cu un modul hardware special care se ocupă exclusiv de aceste semnale.[18]

Fig.21 Reprezentarea semnalelor PWM.

3.2.2 Xbee Pro

Rețeua Xbee a fost realizată ca o rețea cu mai multe noduri. Fiecare nod are rolul bine determinat și pot fi de trei categorii:

Coordonator;

Router;

Dispozitiv de capăt.

Rețeaua Xbee este una complexă fiindcă este un singur nod coordonator, pe lângă acesta sunt și alte noduri de tip router. Celelalte componente constau din dispozitive de capăt, senzori, respectiv afișaje. Nodul coordonator are rolul cel mai important fiindcă realizează rețeaua, este în stare să scaneze frecvențele care se află în jurul său, poate rezerva o adresă de rețea. O altă caracteristică este faptul că alocă adrese la celelalte noduri, care vor fi atașate lui. Routerele se pot atașa rețelei folosindu-se de adresa rețelei, iar după aceea se ocupă de rutarea datelor primite, respectiv de atașarea nodurilor tip dispozitiv. Nodurile tip dispozitiv se pot “agăța” de rețea prin conectarea la un router. În starea de fabrică adresele PAN ID sunt 0, adică nodul odată pornit se poate atașa la orice rețea existentă. Aici apare problema începătorului. Chiar cu două module pe masa comunicația nu apare. Pentru că nu există înca rețea, la care aceste două noduri să se agațe. Dacă nu există rețea, nu vor primi adrese proprii și nu vor funcționa. Modulele trebuie configurate astfel, încăt să fie simulată existența unei rețele. XBee are doar două module la îndemana care se procedă la realizarea unei rețele cu două noduri. Orice rețea XBee, are nevoie de o adresă de rețea, iar în momentul în care modulele odată conectate vor avea nevoie de niște adrese de destinație pentru datele transmise, mai precis destinația unui modul va fi adresa celuilalt modul și invers.[19]

Standardul IEEE 802.11 realizează comunicarea pentru LAN(Local area networks) wireless, iar 802.16 definește comunicarea pentru wireless MAN (Metropolitan Area Networks) în bandă largă. Aceste două standarde wireless sunt orientate accesului aplicațiilor la Internet într-o lățime de bandă mai mare, 802.15.4 care este dezvoltat pentru rata joasă de date, având conectivitate simplă și se alimentează de la baterie. Protocolul 802.15.4 specifică faptul că poate avea loc comunicarea în benzile 868 – 868.8MHz, 902-928 MHz sau 2.400 – 2.4835GHz, pentru uz industrial, științific și medical (ISM). În timp ce oricare dintre aceste benzi poate fi folosită sub aspect tehnic de dispozitive ce satisfac standardul 802.15.4, banda 2.4GHz este mai populară, fiindcă aceasta este deschisă.[2]

Xbee este un protocol care utilizează standardul 802.15.4 ca o bază și adaugă rutare (gateway) și funcționalitate de rețea. Xbee este proiectat să se poată adăuga dispozitive în rețea tip plasă (mesh) care au la bază comunicația radio 802.15.4. Rețeaua plasă este folosită în aplicații în care distanța între două puncte poate fi mai mare decât intervalul în care cele două dispozitive radio, situate în acele puncte, pot comunica, dar dispozitive radio intermediare sunt în zonă și ar putea transmite orice mesaje spre sau de la dispozitivele radio solicitate.[19]

Rețea personală

Rețeaua Xbee își poartă numele de rețea personală sau PAN. Fiecare rețea este definită cu un identificator unic PAN (PAN ID). Acest identificator este comun între toate dispozitivele din rețea. Dispozitivele Xbee sunt fie preconfigurate cu un identificator PAN ID. Există cazuri în care mai multe rețele XBee funcționează într-o arie comună în care este acoperit una de cealaltă, fiecare ar trebui să aibă câte un PAN ID. În rețele Xbee, coordonatorul trebuie să selecteze un PAN ID și un canal pentru a da start la o rețea. După aceea, se comportă în esență, ca un router.
Coordonatorul și Routere-le pot permite altor dispozitive să se alăture rețelei și pot ruta date pe traseu.[8]

După ce un dispozitiv final se alătură la un router sau coordonator, acesta trebuie să fie capabil de a transmite sau primi date RF prin acest router sau coordonator. Router-ul sau coordonatorul, care a permis unui dispozitiv final să se alăture devine “părinte” al dispozitivului final. Deoarece dispozitivul final poate dormi, părintele trebuie să fie capabil să preia și să rețină pachetele de date primite, dar destinate dispozitivului final, până când dispozitivul final este capabil să se trezească și să primească date.[19]

Fig.22 Reprezentarea chipului Xbee.[19]

Xbee utilizează modulație de spectru extins în secvență directă și operează pe un canal fix. 802.15.4 PHY definește 16 canale de operare în banda de 2.4 GHz. Modulele Xbee suportă toate cele 16 canale și module Xbee-PRO suportă 14 din 16 canale.
Coordonatorul poate decide autonom ce PAN ID și ce canal să utilizeze. Când un canal este aglomerat, se va schimba la altul.[8]

Topologia rețelei Xbee

Rețeaua Xbee se numește (Personal Area Network) sau PAN. Protocolul Xbee definește trei tipuri de dispozitive: Coordonator, Router și Dispozitive finale.

Fig.23 Reprezentarea topologiei Xbee.[19]

Un Coordonator are următoarele caracteristici:

• Poate ajuta la rutare de date;

• Poate permite ca routere și dispozitive finale să se alăture rețelei
• Selectează un canal și PAN ID-ul, ambele 64-biți și 16-biți pentru a porni o rețea
• Nu poate dormi deci trebuie să fie alimentat de la rețea.[19]

Un Router are următoarele caracteristici:

• Trebuie să se alăture unei rețele Xbee PAN înainte de a putea transmite, primi sau ruta date
• După aderare, poate ajuta în rutarea datelor

• După aderare, poate permite ca routere și dispozitive finale să se alăture rețelei
• Nu poate ‘dormi’ deci trebuie să fie alimentat de la rețea.[19]

Un Dispozitiv Final are următoarele caracteristici:

• Trebuie întotdeauna să transmită și să primească date RF prin părinte. Nu poate ruta date.
• Nu poate permite dispozitivelor să se alăture rețelei
• Trebuie să se alăture unei rețele Xbee PAN înainte de a putea transmite sau primi date.[19]
• Poate intra în moduri de mic consum de putere pentru a conserva energia și poate fi alimentat cu baterie. [19]

Specificații tehnice:

Tensiunea de alimentare : 3.3 [V];

Antena încorporată ;

6 10-bit ADC input pins;

8 digital IO pins;

Criptare 128-bit;

Curent40 [ma];

Puterea 2[mw] ;

Distanta 900[m].

Coordonatorul și routerele în rețea trebuie să fie întotdeauna active, de aceea alimentarea cu energie de la rețea este foarte recomandată.

Pentru configurarea Xbee-urilor se poate folosi programul X-ctu. Instalarea durează câteva minute, pentru ca pe parcursul instalării se vor descărca și fișierele actualizate ale tuturor modulelor Xbee recunoscute de program. Conectarea X-beeurilor cu calculatorul se face cu un adaptor de USB.[19]

Fig. 24 Reprezentarea Xbee Explorer Shield Fig.25 Reprezentarea Shiled de conexiune

Xbee explorator este un convertor USB în serial, și prin acesta se traduc date între calculatorul și Xbee. Are trei indicatori cu led smd: Tx, Rx, Rssi. Pentru activarea și dezactivarea bootloaderului de pe xbee există un pin reset pe explorator, iar acesta se leagă la masa.

Shieldul Xbee permite pentru placa Arduino cominicarea wireless folosind modulul Xbee. Pinii Tx Rx si Rssi pe shieldul de Arduino arată ce funcție are Xbeeul, fie transmițător fie receptor. Indicatorul Rssi ne arată că există sau nu semnal între modulele de Xbee.

Configurare în X-ctu

La deschiderea software-ului X – CTU ar trebui să apară o fereastră cum ar fi cea din figura de mai jos . După selectarea portului adecvat COM se efectuează clic pe butonul Test / interogare.

Fig. 26 Reprezentarea programului X-ctu pentru configurarea Xbee.

După selectarea butonului de test/interogare, ar trebui să apară o casetă de dialog la fel ca cea de mai jos . După aia se înregistrează programul seria Xbeeului.

Fig.27 Reprezentarea testului de conexiune Xbee cu PC.

După înregistrarea numărului de serie clic pe OK. În continuare, este necesar selectat casuța Modem Configuration în partea de sus a ferestrei . După aia trebuie efectuat un click pe butonul de citire. Acest lucru va aduce configurația actuală pentru Xbee conectat. După selectarea setului funcția de emițător sau receptor, va trebui setat ID-ul PAN. Acest lucru poate fi orice număr de patru cifre și permite pentru Xbee să se facă distincția între modulele în rețeaua lor și cele din alte rețele. După ID este necesar selectarea CH, MY și DL după aceea cu butonul “write” se pot actualiza setările.

Fig.28 Reprezentarea configurației Xbee.

Fig.24 Explicațiile termenilor ce intervin la configurarea Xbeeului.

3.2.3 Senzor accelerometru MPU 6050

Senzorul MPU-6050 este primul dispozitiv din lume conceput pentru puterea scazută, costul redus, performanțe ridicate pentru echipamente electronice de consum, smartphonurile și tablete. Senzorul MPU-6050 are în componența lui un accelerometru pe 3 axe și un giroscop pe 3 axe.[20]

Fig.29 Reprezentarea Senzorului accelerometru și giroscop.

MPU-6050 constă dintr-un MEMS ( sistem microelectromechanical ) accelerometru și giroscop cu 16 biți analog-digital convertoare pentru 60 micro g și 0,01 grad/secundă. Dispozitivul a fost lansat pentru prima dată la sfârșitul anului 2010. MPU6050 a fost reproiectat recent pentru a deveni MPU6500 giroscoapelor/accelerometru, scăzut cu 40% în mărime , și este utilizat în cele mai noi MPU9250 senzorul cu 9 axe.[20]

MPU-6050 este disponibil în mai multe soiuri de bord Breakout, care pot fi achiziționate pentru 30 de Lei fiecare. Are o inovație remarcabilă numit Procesor Digital Motion ( DMP ) integrat în cip a cărui programare este proprietatea INVENSENSE . Acesta permite 6 axe, calculele senzorilor de fuziune să fie efectuate de către DMP la o rată fixă de 200 [Hz], iar rezultatele livrate la microcontroler gazdă în formă de Yaw, Pitch și Roll.[20]

Conexiunile de MPU – 6050 la Arduino Uno sunt simple, dar necesită conexiune de 3,3[V] și sol, și SDA și linii I2C SCL ( Arduino pini A4 și respectiv A5 ). Există rezistențe pull-up pe cele mai multe placi Breakout astfel nu sunt necesare cele externe. Unele plăci Breakout au chiar propriul lor regulator de tensiune și se pote lega la tensiune de 5[V]. Dar senzorul nu este tolerant cu 5[V] și este recomandat folosirea unui convertor logic dacă se utilizează un Arduino Uno. Există mai multe schițe de bază Arduino , care pot fi utilizate pentru a obține accelerometrelor și giroscoapelor date redimensionate începând din MPU – 6050. Înainte de a trece la modul în care acest dispozitiv poate fi conectat la un Arduino Uno ar trebui discutat despre orientarea în spațiu. [20]

Fig.30 reprezintă.[20]

Se va lua ca și referință axa z care este axa gravitației. Unghiul Tangaj (Yaw) este unghiul (psi în diagramă), dintre fuselajul avionului din imagine de mai sus și Nordul magnetic al pămăntului care este reprezentat de axa x. Unghiul Elevație (Pitch) este unghiul pe care îl face botul avionului în raport cu planul creat de axele x și y. Unghiul Giratie (Roll) este unghiul phi în diagram, unghiul pe care îl face avionul în raport cu axa lui de simetrie.[20]

Tabelul.1 Conexiunea Arduino cu accelerometru.

Fig.31 Reprezentarea conexiunile MPU-6050 cu Arduino Uno.

Capsula senzorului:

Dispozitivele – MPU 6050 combină un giroscop pe 3 axe și un accelerometru pe 3 axe pe același tipar siliciu, împreună cu un bord digital Motion Procesor ™ ( DMP ™ ), care prelucrează complex cu cele 6 axe în algoritmi de MotionFusion. Dispozitivul poate accesa magnetometre externe sau alți senzori printr-o magistrală auxiliară maestru I2C, permițând dispozitivelor să adune un set complet de date de senzori fără intervenția din procesorul sistemului. Dispozitivele sunt oferite într-un pachet de dimensiune 4 [mm] x 4 [mm] x 0,9.[21,4]

Fig.32 Reprezentarea chipului intern al senzorului MPU6050.[21]

Platforma INVENSENSE MotionApps ™, care este pe bază de mișcare – MPU 6050 , offloads management senzor de sistemul de operare, oferă un set structurat de API-uri pentru dezvoltarea de aplicații. Pentru urmărirea precisă a mișcărilor rapide și lente, părțile dispun de un giroscop programabil de utilizator interval de ± 250 pe scară largă: ± 500, ± 1000 și ± 2000[°/sec] ( DPS ), și un accelerometru full programabil de utilizator, gama de: ± 2, ± 4, ± 8g și ± 16[g]. [21,5]

Fig.33 Reprezentarea axelor accelerometrului.[11]

Fig.34 Reprezentarea serial monitor cu datele accelerometrului.

3.2.4 Acționarea

Pentru dezvoltarea forțelor și momentelor și realizarea mișcarilor în sistemele mecatronice se utilizează sisteme de acționare de cele mai diferite tipuri și forme de energie. Acționarea include două componente de bază, una care furnizează energia necesară, în baza semnalelor primite de la sistemul numeric de comandă, cea a doua care transformă energie primită în energie mecanică, utilizarea pentru dezvoltarea forțe, moment sau efectuarea mișcărilor.

Pentru a controla motoarele de la arduino este nevoie de un driver de motor tip dual H Bridge L298. În primul rând se conectează fiecare motor la conexiunile A și B de pe modulul L298N . Dacă se utilizează două motoare pentru un robot , trebuie verificată dacă polaritatea motoarelor este aceeași pe ambele intrări.[22]

Conectarea sursei de alimentare extrenă, care poate sa fie baterie de tip gel, acid sau litium polymer, pozitiv la pinul VMS de pe modulul și negativul la pinul GND. Dacă aprovizionara este de până la 12[V] se poate lăsa în jumper 12[V] și 5[V] vor fi disponibili pini de 5[V] pe modul. Acesta poate fi alimentat de la Arduino. Arduino GND trebuie legat la pinul GND de pe modul, precum și pentru a finaliza circuitul .

Fig.35 Reprezentarea driverului de motor L298N.

Fig.36 Reprezentarea circuitului intern al driverului de motor L298N.[23]

Tabelul.2 Reprezintă tabelul de adevăr.

Starea Z din tabelul de adevăr, reprezintă starea blocată ale tranzistoarelor. În acest caz ieșirile Out 1 și Out 2 nu sunt conectate. Circuitul intern folosește circuite de ieșire cu tranzistoare bipolare de tip NPN.

Tranzistorul bipolar

Tranzistorul folosit este bipolar, alcătuit din trei zone semiconductoare extrinseci care pot fi în formatul NPN sau PNP, realizată din cristal semiconductor.

Cele trei terminale ale tranzistorului îsi poartă numele, emitor notat cu E, bază B și colector C. Aceste denumiri sugerează funcția care îndeplinește fiecare dintre cele trei zone, colectorul colectează sarcinile electrice, baza controlează cantitatea de sarcină care ajunge la colector, iar emitorul este furnizorul principal de sarcină electrică.[24]

Fig.37 Tranzistor bipolar.

Tranzistorul pe figură se numește bipolar pentru că la conducția electrică participă sarcini electrice de ambele polarități. Tranzistorul poate fi NPN sau PNP în funcție de ordinea zonelor. Tranzistorul amintit are două particularități din punct de vedere technologic:-lărgimea fizică a bazei este mai mică decât lungimea difuziei purtătorilor din emitor, emitorul este mult mai puternic decât baza.[24]

Joncțiunea colectorului trebuie polarizat în sens invers, încat joncțiunea emitorului în sens direct, aceasta determină rolul ca să existe o conducție corectă între emitor și colector. Curentul αIE cu curentul de purtători minorități ICB0 care traversează joncțiunea colectorului polarizat invers formează curentul de colector IC. Astfel se pot scrie următoarele relații:

IE=IC+IB ; IC=αIE + ICB0

(4)

Există un coeficient de multiplicare a curentului de bază, notate cu β, și se numește factorul de amplificare statică.

β

(5)

Regimul de funcționare al tranzistorului bipolar poate să fie de trei feluri:-regim blocat;

– regim în zona activă;

-regim de saturație.

Regimul de funcționare activă este utilizat când tranzistorul se află într-o prelucrare de semnal de amplificare. Atunci când tranzistorul trece printr-o zonă activă foarte repede, lucrând în stare de blocare și cea de saturație sau invers, se spune că lucrează în regimul de comutație. În regimul de saturație tensiunea între colector și emitor devine foarte mică, UCE este egală aproximativ cu 0,1-0,2 [V]. Zona de tranziție dintre regimurile blocat-saturat se numește zona activă, în această zonă curentul de colector și tensiunea de ieșire se poate controla în funcție de tenisunea de intrare. În cazul tranzistorului bipolar cu creșterea temperaturii se determină o creștere semnificativă a curentului reziudal prin joncțiunea bază colector, ICB0. Creșterea temperaturii va determina instabilitatea punctului static de funcționare, care este definit și de IC. [24]

Specificații technice driverului motor:

Dublu punte H Unitate Chip : L298N;

Tensiune logică: de tensiune 5[V] Unitate : 5[V] – 35[V];

Curent logic : curent 0-36mA unitate : 2[A];

Putere max : 25[W];

Dimensiuni : 43 x 43 x 26mm;

Greutate : 26[g].[22]

Explicații pentru pinii de pe driver:

Out 1 : Motor A ieșire;

Out 2 : Motor A ieșire;

Out 1 si 2 reprezintă canalul 1 pentru motorul 1;

Out 3 : Motor B ieșire;

Out 4 : Motor B ieșire;

Out 3 si 4 reprezintă canalul 2 pentru motorul 2;

GND : Ground;

5V : intrare 5V și reprezintă o ieșire de pe placă cu 5 volt cu care se pot alimenta ENB1 SI ENB2;

EnA : Permite semnal PWM pentru motor A;

In1 : Activare Motor A;

In2 : Activare Motor A;

In3 : Activare Motor B;

In4 : Activare Motor B;

ENB : Permite semnal PWM pentru motor B.[22]

Controlul driverului cu ajutorul microcontrolerului se face pe baza unui exemplu cu comanda pentru stingerea si aprindere a ledurilor.

void forward() {

analogWrite(motor_pin1,HIGH);

digitalWrite(motor_pin2,LOW);

analogWrite(motor_pin3,HIGH);

digitalWrite(motor_pin4,LOW);

Această secvență de program dă sensul de rotație al motoarelor în așa fel ca să meargă fiecare în față, deci este mersul înainte al robotului.

DC-DC Converter

Operația de bază a convertorului Buck curent într-o bobină controlată de două comutatoare care este de obicei, un tranzistor și o diodă. În convertorul idealizate, toate componentele sunt considerate a fi perfecte . Mai exact, comutatorul și dioda au cădere de tensiune zero, convertoarele DC-DC (Buck) au eficiența mai mare de 90%.[25]

Regulatoare LM2596 sunt circuite integrate monolitice care oferă toate funcțiile active pentru un pas în jos ( Buck ) regulator de comutare, capabil de a conduce la o sarcină de 3[A] cu linie excelentă și reglarea sarcinii. Aceste dispozitive sunt disponibile în tensiuni de ieșire fixe de 3.3[V], 5[V], 12[V], și o versiune de ieșire reglabilă cu ajutorul unei bobine reglabile.[25]

Spcificații technice

1.Tensiune de intrare : 4-40[V];

2.Tensiune de ieșire :1.25-27[V];

3. Putere de ieșire : maxim 15[W];

4. Frecventa ondulație : 150[KHZ];

5. Curentul de ieșire : 2[A] continuu 3[A] max căteva milisecunde;

6. Dimensiune : 7×4[cm];

7. Greutate : 33[g].

Fig.38 Convertor DC-DC step down. [26]

Bateria litium polymer

Aranjament de celule – descrise utilizând formatul xSyP (în cazul în care X și Y sunt numere întregi), aceasta va spune cum celulele din baterie sunt cu fir în sus. Bateriile sunt formate din celule, a cărui tensiune este determinată de chimia celulei și a cărui capacitate este determinată de densitatea de energie și mărimea fizică a celulei. “S” reprezintă legarea în serie și “P” reprezintă legare în paralel. Conexiunea în seria adaugă tensiunea celulelor și conexiunea în paralel adaugă capacitatea celulelor, astfel încât rezultă o combinație de celule în serie și paralel într-o baterie. Bateria se arată în (Fig.39), are un aranjament de 2S2P2, ceea ce înseamnă că are 4 celule, care sunt două câte două în serie și în paralel.[27]

Fig.39 Conexiunile celulelor.

Prin înmulțirea 2 și 2, se obține numărul total de celule în baterie, care în acest caz este 4. De multe ori aranjamentul paralel este omis atunci când se discută de baterii, pentru că cele mai multe pachete de sunt 1P (Deci, în loc de a spune pe care îl utilizați un pachet 2S2P, s-ar putea la fel de bine spune doar 2S).

Capacitatea este măsurată în [mAh] (miliamperi ore), aceasta este determinată de regimul de celule (paralele), și vă indică durata de funcționare a bateriei. Exemplu: o capacitate de 2500[mAh] înseamnă că bateria poate descărca de la 2,5 amperi timp de o oră (prin urmare, "ore AMP" ) , 1.25 amperi timp de 2 ore , etc. Bateria prezentată are un aranjament 1P , fiecare celulă are o capacitate de 2500[mAh].

Încarcarea: tensiunea unei celule încărcate complet LiPo este 4.20[V]. Nominal – acest lucru poate fi considerat un fel de " jumătate – taxat " de tensiune , așa cum este 3.70[V] , între încărcare și descărcare . Tensiunea nominală este ceea ce producătorii folosesc atunci când descriu tensiunea bateriilor. Descărcarea unei celule LiPo complet descărcate este 3.00[V]. Deoarece bateria prezentată are un aranjament 2S, este marcată cu tensiunea nominală de 7,4[V] ( 3.70[V] * 2 celule ) . Un pachet 2S complet încărcat este 8,4[V] și un pachet complet descărcat 2S este 6 [V] .[27]

Constanta C vă spune cât de mulți amperi pot fi consumați în condiții de siguranță de la baterie în mod constant . "C " într-o rată de xC , unde x este un număr întreg , de fapt reprezintă capacitatea bateriei în Ah . De înmulțirea coeficientului de rată C prin capacitatea bateriei în Ah , se poate determina genul de intensitatea cu care se poate descărca . În cazul acestei baterii , cu o capacitate de 2500[mAh] ( 2.5Ah ) și o rată de 20C care este destul de mare , înmulțind 20 * 2.5 care va da descărcarea maximă a bateriei în Ah , care este 50[A].[27]

Fig.40 Celulă litium polymer.

Rate de încarcare, aceste informații sunt , în general, listat pe partea din spate a bateriei cu toate indicațiile de siguranță. Pentru bateria prezentată, această rată este de 5C, ceea ce înseamnă că poate fi încărcată la 12.5[A]( 2,5 * 5 ), această valoare reprezintă curentul maxim de încarcare al celulei. Pentru protejarea celulei este indicat să încărcăm cu amperaj cât mai mic, de exemplu la o celula de 2.5 [Ah] 5C ar fi indicat să încărcăm cu 10[Ah].

3.2.5 Mecanica

Motoarele de curent continuu sunt din multe puncte de vedere cele mai simple motoare electrice "cu perii". Există un stator (o parte staționară mare) și un rotor (o parte filare mică pe o axă împreună cu statorul). Există magneți pe stator și o bobină pe rotor care este magneticdin cauza trecerii curentului prin aceasta. Periile sunt responsabile pentru transferul curentului de la sursă de tensiune staționară DC la rotor. În funcție de poziția rotorului axa magnetică se va schimba și va produce mișcare în motor. Poza de mai jos explică funcționarea de bază a unui motor de curent continuu. Utilizând o sursă de alimentare de curent continuu, este nevoie de foarte puține controale. Pentru a controla o viteză în linie de rezistență variabilă pot fi utilizate pentru a modifica cantitatea de curent ce ajunge la bobine.[28]

Motorul prezentat este simplificat "bipolar", care utilizează doar doi magneți în stator. În acest caz magneții în stator sunt magneți permanenți, pentru motive de simplitate. Un motor de curent continuu poate ajunge foarte complex atunci când sunt mai mulți poli, dar un standard de "periat" motor de curent continuu de orice configurație funcționează pe aceleași principii ilustrate aici. Periile transmit curent de la o sursă de tensiune de curent continuu care alimentează un câmp magnetic la acel capăt al rotorului. Polaritatea câmpului depinde de fluxul de curent. Pe măsură ce rotorul transformă periile contact cu o parte din sursa de curent continuu, apoi un timp foarte scurt nu fac contact cu nimic, apoi continuă sa facă contact cu cealaltă parte a sursei de curent continuu, schimbă în mod eficient polaritatea rotorului. Momentul acestei schimbări este determinată de setarea geometrică a periilor și duce la sursa de curent continuu. Poza de mai jos ajută pentru a ilustra modul în momentul atracție maximă a curentului va schimba direcția și astfel schimba polaritatea rotorului. În acest moment atracția maximă schimbă brusc la repulsie maximă care pune un cuplu pe arborele rotorului și cauzează motorul să se rotească.

Fig.41 Construcția motor de curent continuu.[ 28]

Componentele unui motor de curent continuu

Stator : Statorul constă din doi magneți permanenți într-o carcasă metalică. Statorul generează un câmp magnetic staționar în jurul rotorului care ocupă partea centrală a motorului.[28]

Rotor : armătura este formată din unul sau mai multe înfășurări electrice. Aceste înfășurări electrice generează un câmp magnetic atunci când este energizat de curent extern. Polii magnetici astfel generați de acest domeniu rotor sunt atrași de poli opuși generați de domeniul stator și respinși de către polii similari, care provoacă armătura să se rotească.[28]

Comutator : Motorul de curent continuu nu utilizează un dispozitiv de comutare curent extern, în schimb folosește un conector mecanic numit colector care este un manșon segmentat de obicei, realizate din cupru, montat pe axul rotativ. Actualul +/- este furnizat la aceste segmente a colectorului cu ajutorul periilor.[28]

Perii: Periile alunecă pe segmentele colectorului, prin urmare, crearea câmpului magnetic variabil în diferite armături prin segmentele colectorului atașate înfășurării. Prin urmare, un câmp magnetic este generat dinamic în motorul atunci când este aplicată o tensiune peste perii.[28]

Fig.42 Motor de curent continuu desfăcut

Parametrii motorului:

-Temperatura de operare : -10 [° C] ~ + 60 [° C];

-Tensiune nominală : 6.0[V]DC;

-Fără sarcină Viteză: 11,500 [rpm];

-Loaded curent: 250 [mA] max;

-Cuplu de pornire : 20 [g * cm];

-Dimensiune corp : 27.5[mm] x 20[mm] x 15[mm];

-Greutate : 17,5 grame.

Reductorul

Reductorul este componenta mecanică cu funcția de reducere a unuia dintre cei doi parametrii ce caracterizează puterea mecanică transmisă arborelui: momentul sau turația. Ca regulă, un reductor reduce viteza de rotație a axului, astfel permițând creșterea momentului, dar nu semnificativ, datorită randamentului. Astfel, un reductor poate fi numit reductor de turatie, deși în același timp este un multiplicator de cuplu.

Reductorul folosit în relizarea proiectului este de tipu TGP01s-A-130 cu urmatoarele scpecificatii:

Eficiență:75 %;

Raportul reducere :01:48;

Viteza de rotație ( RPM ) :20-250[RPM];

Material: plastic ;

Dimensiunile: 64.2 x 22.5 x 18.8 [mm];

Greutate : 35[g];

Diametrul roatei:64[mm];

Fig.43 Reductor.[29]

Servomotor

Servomotorul de obicei se conectează cu trei cabluri conectate la circuit, + 5[V] la roșu, negrul sau maroul la GND, iar al treilea fir care este de culoare portocalie sau galbena este firul conducator. Conducerea servomotoarelor se efectuează cu ajutorul unor șiruri de impuls care au forma unor pătrate. Nu contează mărimea (tensiunea) impulsului, ci contează frecvența. Poziția servomotorului (pozitia unghului) se poate seta cu ajutor lățimii impulsului. Toate servomotoarele datorită impulsului de 1,5ms se încadrează în poziția de mijloc. Lățimea impulsului are limitele între 1-2[ms], impulsul cu lățimea 1ms setează servomotorul în partea stânga, impulsul cu lațimea de 2[ms] îl încadrează în partea dreapta.[30]

1ms-rotație minima;

1.5ms-poziție de mijloc;

2ms-rotație maximă.

Fig.44 Servo motor control.[30]

Există servomotoare care au alt tip de fabricație și alte modele, care sunt diferite față de cele enumerate mai sus. De cele mai multe ori aceste servomotoare au domeniul de mișcare 90 (±45°), dar există și 120°- (±60°) si 180°- (±90°). De obicei pot fi comandate cu impulsul care are lațimea între 1-2ms, dar la unele servomotoare aceste valori pot fi diferite. Acest lucru se poate verifica cu ajutorul unor experimente. Trebuie remarcat faptul că, servomotorul se poate defecta dacă îl comandăm peste limitele mecanice (motorul intră în scurt circuit).

Impulsurile de comandă care sosesc la punctul de intrare în servomotoare, trebuie reîmprospătat din 18-22ms. Poziția servomotorului este realizat cu ajutorul unei potentiometru care are valoarea între 0 si 1024 care definește de la valorile 0 și 180 de grade poziția servomotorului. Potențiometrul este în stare să ofere un feedback la microcontroller cu ajutorul unui pin (galben).[30]

Prin eliminarea răspunsului potentiometrului se poate seta (obliga) motorul la o mișcare centrifugală. În acest caz la semnalul de -90 servomotorul se va roti continuu într-un sens cu viteză maximă. La semnalul de +90 se va roti spre partea cealaltă (acesta se utilizează la comanda roboților).

Servomotorul folosit la realizarea projectului are domeniul de miscare 90 (±45°) și se poate comanda cu o lățime de impuls între 1-2ms.

Fig.45 Servomotor MG995.[31]

3.3 Aplicația Software

Arduino folosește limbaj C/C++. Nu există “main” și, programul executat de Arduino este asemănător cu sistemul de operare a unui calculator, nu se termină niciodată, doar atunci când s-a oprit alimentarea.

Structura unui program este următoarea: o secțiune pentru declararea variabilelor globale, o secțiune de “setup” ce va fi executată o singură dată și o secțiune “loop” ce va fi executată nesfărșit.

Toate platformele de dezvoltare Arduino pot fi programate cu ajutorul Arduino IDE. Pentru fiecare component folosit există biblioteci ce va ușura munca cu echipamentul respectiv.

În cazul în care se dorește introducerea unor noi biblioteci, ele trebuie copiate în directorul libraries de unde unde s-a instalat programul.

Fig.46 Arduino IDLE

Transmițător:

Secvența de mai jos implementează un buton normal deschis și starea lui prin care se modifică logica de program, ceea ce înseamnă trecerea de la comanda motoarelor de curent continuu la comanda celor două servomotoare.

void loop(){

starebuton = digitalRead(button_pin);

if (starebuton != ultimastarebuton) {

if (starebuton == 1) buton = !buton;

}

ultimastarebuton = starebuton;

Următoarea secvența de program stabilește valorile externe, limitele pe care sunt primite de la accelorometru, după care îl transformă într-un interval mai mic, de la 1 pănă la 99 si elimină valorile negative, ca datele să fie transmise fără probleme de la transmițător la receptor. Există o zonă care se numește (zonă moartă) unde placa ardunio nu prelucrează informații de la acclelerometru. Această zonă fiind între -6000 și 6000.

ax = constrain(ax,-16000,16000);

ay = constrain (ay, -16000,16000);

accx = 0;

if (ax < -6000) accx = map(ax, -16000, -6000, 1, 25 );

else if (ax > 6000) accx = map(ax, 6000, 16000, 26, 49 );

accy =-1;

if (ay < -6000) accy = map(ay, -16000, -6000, 50, 75 );

else if (ay > 6000) accy = map(ay, 6000, 16000, 76, 99 );

Ultima secvență pe care o folosește transmițătorul are 2 parți, deoarece receptorul trebue să citească starea butonului, astfel va realiza ce date să prelucreze. accx+101 trimite valorile la servomotor, adăugând 101 la valoarea inițială. În caz contrar rămân valorile normale și motoarele de current continuu vor intra in funcțiune. Datele sunt trimise prin serial.

tempx = accx+101;

tempy = accy+101;

} else {

tempx = accx;

tempy = accy;

}

Serial.println(tempx);

Serial.println(tempy);

Receptor:

Secvența de mai jos definește ieșirile din microcontroller, în acest caz avem 4 ieșiri pentru motoare de curent continuu și 2 pini pentru comanda asupra celor 2 servomotoare (9,10).

pinMode(motor_pin1,OUTPUT);

pinMode(motor_pin2,OUTPUT);

pinMode(motor_pin3,OUTPUT);

pinMode(motor_pin4,OUTPUT);

Xservo.attach(9);

Yservo.attach(10);

}

Următorul program este responsabil pentru comandarea servomotoarelor, atunci când datele sosesc cu +101, transmițătorul stabilește faptul că, dacă valorile sunt mai mari decât 99, servomotoarele vor fi puse în funcțiune. Controlul “map”, care este asupra servomotorului, este comandat cu o funcție, cu cât este mai mare unghiul de înclinație a accelerometrului, cu atât este mai mare sau mai mic unghiul pe care servomotorul îl formează la brațul care se ridică și coboară, și comandă deschiderea închiderea cleștelui.

if (readfinal > 99) {

if (readfinal == 101) ax=0;

if (readfinal == 100) ay=0;

if ((readfinal > 101) && (readfinal <151)) ax = readfinal-101;

if ((readfinal >150) && (readfinal <201)) ay = readfinal-101;

if(ay > 74){

valY = map(ay, 75, 99, 34, 0 );

}

if(ay < 75){

valY = map(ay, 50, 75, 70, 35 );

}

if(ax > 25){

valX = map(ax, 26, 49, 36, 60 );

}

if(ax < 26){

valX = map(ax, 1, 25, 10, 35 );

}

if (ax == 0) valX = 35;

if (ay == 0) valY = 35;

if (valX != prevValX)

{

Xservo.write(valX);

prevValX = valX;

}

if (valY != prevValY)

{

Yservo.write(valY);

prevValY = valY;

Programul de mai jos face o funcție asemânătoare ca și cel de sus, dar aici motoarele de curent continuu sunt comandate, atunci când valorile sosesc fără apasarea butonului, de la transmițător la receptor. În aceasta secvență funcția “map” are rolul de a schimba sensul de rotație a motoarelor de current continuu și are rolul de modificarea vitezei, sau scăderea acesteia, utilizând semnalul PWM.

else {

if (readfinal == 0) ax=0;

if (readfinal == -1) ay=0;

if ((readfinal < 50) && (readfinal >0)) ax = readfinal;

if ((readfinal < 100) && (readfinal >49)) ay = readfinal;

ypwm = map(ay, 75, 99, 50, 255 );

}

if(ay < 75){

ypwm = map(ay, 74, 50, 50, 255 );

}

if(ax > 25){

xpwm = map(ax, 26, 49, 50, 255 );

}

if(ax < 26){

xpwm = map(ax, 25, 1, 50, 255 );

}

if ((ax < 26)&& (ax > 0)){

x=1;

}

if (ax > 27) {

x=2;

}

if ((ay <76)&& (ay > 0)){

x=3;

}

if(ay > 75){

//Serial.print("fata");

x=4;

}

if ((ax==0) && (ay==0))

Următoarea secvență oferă posibilitatile pe care motorul le poate face, dacă se oprește sau dacă se rotește în dreapta, stanga, sau când merge înainte și înapoi.

x=0;

switch (x)

{

case 0:

halt();

delay(2);

break;

case 1:

turnleft();

delay(2);

break;

case 2:

turnright();

delay(2);

break;

case 3:

backward();

delay(2);

break;

case 4:

forward();

delay(2);

break;

}

}

}

Secvența de program prezentă în receptor, comandă în funcție de cazurile enunțate mai sus, driverul motorului și transmite mai departe comanda la motoarele de curent continuu. Driverul motorului funcționează cu comanda low high, respectiv utilizează semnalul pwm în loc de high, care ajută la controlarea vitezei.

void turnleft () {

digitalWrite(motor_pin1,LOW);

analogWrite(motor_pin2,xpwm); Mișcarea robotului spre stânga cu pwm control;

analogWrite(motor_pin3,LOW);

digitalWrite(motor_pin4,LOW);

delay(250);

return;

}

void turnright () {

analogWrite(motor_pin1,LOW);

digitalWrite(motor_pin2,LOW); Mișcarea robotului spre dreapta cu pwm control;

digitalWrite(motor_pin3,LOW);

analogWrite(motor_pin4,xpwm);

delay(250);

return;

}

void forward() {

analogWrite(motor_pin1,ypwm);

digitalWrite(motor_pin2,LOW); Mișcarea robotului în față cu pwm control;

analogWrite(motor_pin3,ypwm);

digitalWrite(motor_pin4,LOW);

delay(250);

return;

}

void backward() {

digitalWrite(motor_pin1,LOW);

analogWrite(motor_pin2,ypwm); Mișcarea robotului în spate cu pwm control;

digitalWrite(motor_pin3,LOW);

analogWrite(motor_pin4,ypwm);

delay(250);

return;

}

void halt () {

digitalWrite(motor_pin1,LOW);

digitalWrite(motor_pin2,LOW); Poziția de stop al robotului;

digitalWrite(motor_pin3,LOW);

digitalWrite(motor_pin4,LOW);

delay(250);

return;

Serial.print(readfinal);

}

Funcția void „setup” este o funcție apelată automat la pornirea programului și este folosită pentru definirea de variabile, încărcarea bibliotecilor etc. Funcția “pinMode” definește pinul. Funcția „loop” este funcția principală ce va fi rulată de controler la infinit. Funcția delay, forțează controlerul să facă o pauză de 250 milisecunde.

Compilarea este procesul prin care mediul de dezvoltare transformă codul C într-un cod pe care Arduino îl poate executa.

Scrierea codului în controler se face prin funcția de upload și presupune urcarea codului compilat din calculator în flash-ul microcontrolerului. Pentru a realiza acești doi pași trebuie să îi spuneți IDE-ului pe ce port serial se află conectata placa și de ce tip este.

Fig.47 Reprezentarea metodei de încărcare unui program pe microcontroller.

3.4 Modul de funcționare

Partea practică a proiectului cuprinde controlul unui robot care poate realiza colectarea unor date prin intermediul unei camere video și care poate executa mobilizarea unor obiecte relativ ușoare cu ajutorul unui braț robotic.

La funcționarea robotului, în primul rând ne ajută un accelerometru de tip MPU6050, care comandă două motoare de curent continuu, care la rândul lor au funcția de a mobiliza robotul. Totodată accelerometrul mai acționează asupra două motoare servo de tip MG995 care pune în funcțiune brațul robotic.

Fig.48 Braț robotic.

Deoarece valorile furnizate de către accelerometru sunt puternic variabile la șocuri și vibrații, astfel a fost necesar să se efectueze multe teste și calibrări în Arduno serial monitor.

Controlul robotului de către operator se efectuează prin intermediul unui ansamblu transmițător, format dintr-o mânușă pe care vine montat un suport desenat în Solid Works și realizat cu o împrimantă 3D, în care vine așezat un microcontroller Arduino Uno R3, la care este atașat un port wireless și un accelerometru.

Partea de recepție în mod normal vine pe robot. Acest ansamblu se compune dintr-o placă Arduino și un port wireless

TRANSMIȚĂTOR RECEPTOR

Fig.49 Ansamblul transmițător Fig.50 Ansamblul receptor

O parte din datele furnizate de către ansamblul transmițător sunt semiprelucrate înainte de a fi transmise spre receptor, iar după sosirea datelor la receptor acestea sunt prelucrate mai departe. Controlul celor două motoare se realizează printr-un semnal PWM. Ca exemplu, cu cât înclinația după o axă sau alta (axa x sau y) este mai mare, cu atât frecvența semnalului PWM este mai mare. Pentru mărirea cuplului și reducerii vitezei la axa roților am recurs la folosirea unor reductoare cu raport de transmisie 48:1.

Tensiunea nominală a motoarelor de curent continuu folosite este de 6[V], iar bateria de 7,8[V]. Așadar a fost nevoie de un stabilizator de tensiune L7806 CV, altfel motorul se supraîncalzește și străpunge izolatia din cauza căldurii mari și din această cauză motorul se va arde.

Fig.51 Stabilizator de tensiune de tip L7860CV.

La pinul 1 se leagă plusul bateriei, la pinul 2 minusul, iar între pinul 2 și 3 vom obține o tensiune stabilizată la 6[V]. La punerea în funcțiune a motoarelor de curent continuu este necesar un driver motor de tip L298N, care amplifică semnalele primite de la arduino și le transmite mai de parte la motor. Are o putere nominală 2 [A].

Motoarele servo MG995 care acționează brațul robotic au constructiv o forță de 13 [Kg/cm]. La alimentarea acestor motoare s-a folosit din nou un stabilizator de tensiune L7806 CV și pe un al treilea pin semnalul de la ansamblul Arduino receptor.

Punerea în funcțiune a motoarelor servo, care reprezintă defapt comutarea comenzii de la motoarelor de curent continuu la cele servo, se realizează prin apăsarea unui buton normal deschis, formând în circuit un pull-up rezistor.

Fig.52 Pull up rezistor.

Baterie de alimentare a robotului este de 2 S de tip Litium Polymer format din patru celule, două câte două legate în serie și apoi în paralel. Bateria furnizează o putere de 6 [A/h] la 7,8 [V], care are o autonomie între 1-2 ore în funcție de solicitare. Cu cât este mai mare solicitarea a motoarelor de curnet continuu și a motoarelor servo cu atât este mai mică autonomia robotului. Ansamblul transmițător este alimentat cu o baterie de 9 [V].

Un alt component important de pe robot reprezintă camera IP, care vine așezată pe mijlocul robotului din două motive: obținerea unui echilibru dinamic mai bun și pentru vizualizarea brațului robotic.

Datele furnizate de către camera IP sunt transmise spre un modem wireless care este conectat printr-un cablu LAN la PC. Camera mai are funcția de vedere în întuneric, care se comută cu ajutorul unei fotodiode.

Cap.4 Rezultate experimentale și observații

Accelerometrul folosit de tip Mpu 6050 are limite de la 17000 până la -17000 ceea ce înseamnă că la valoarea de maxim este 17000 și valoarea de minim este -17000. Valoarea 17000 înseamna înclinație maximă pe axa y în fața sau pe axa x în dreapta, iar valoarea -17000 înseamnă înclinația în spate pe axa y și înclinație pe partea stângă pe axa x. Pentru folosirea corectă și pentru evitarea eroriilor de către accelerometrul la microcontrolerul acest domeniu trebuie redus la un domeniu mai mic, de exemplu 16000 și -16000 cu ajutorul unei funcții (constrain a lui Arduino).

Accelerometrul din cauza sensibilități foare mare la zgomote și la șocuri este foare greu de controlat, sunt necesare teste și gasirea unei zone (moarte) la care să nu dea accelerometrul valoare pentru microcontroller. Zona această în acest caz au limite între -6000 până la 6000 în axa x și pe axa y, axa z nu mai este folosit fiindcă pentru două motoare ajunge folosirea celor două axe x și y.

Valoarea dată maxim al axei y este de -16912 și cea minimă fiind -16312 obțiunute prin teste, ceea ce înseamnă că avem la influențe externe o variație maxim de 600.

Zona moartă -6000 și 6000 este încadrată între 30 de grade în ambele axe, ceea ce înseamnă până ce nu depăsește înclinația accelerometrului 30 de grade mincrocontrolerul nu trimite nicio valoare mai departe la partea de comandă a robotului. Prima coloană de valori pe figura de mai jos reprezintă valorile pe axa x, a doua coloană reprezintă valorile obținute pe axa y, iar a treia coloană reprezintă valorile axei z. Senzorul trimite date către microcontroller cu o rata de transmitere 9600 bit/secunde.

Fig.53 Reprezentarea datelor maxime obținute pe axa y ale accelerometrului.

Motoarele folosite sunt de curent continuu de tipul M-130 cu viteza de 11.500 [rpm], motorul are o turație foarte mare dar putere scăzută și din această cauză se folosește o reducere de viteză de 1:48 pentru a obține un cuplu mare și precizie mai bună. Roata are diametrul de 65[mm] și este realizată din plastic ceea ce duce la un dezavantaj fiindcă robotul alunecă pe suprafețe lucioase, de exemplu (parchet, sticlă). Cuplu maxim obținut prin teste este de 0,8 [kg/cm].

Tabelul.3 Parametrii motorului la diferite tensiuni

Controlul cu pwm (Pulse Width Modulatio ) a fos necesar pentru obținerea preciziei și un control mai bun asupra robotului. Motoarele suportă un PWM minim de 50, iar maximul este de 225. Valoarea de 50 este obținută după teste fiindcă sub pwm de 50, motoarele nu pornesc sub sarcină din cauza lipsei tensiunii necesare.

Tabelul.4 Orientarea și viteza la poziția accelerometrului.

Figura de mai jos reprezintă un semnal PWM masurată cu osciloscop, pe bornele motorului. Semnalul nu este perfect dreptungiular din cauza construcției motoarelor de curent continuu. Zgomotele sunt introduse în circuit din cauza contactului dintre perii-colector. Figura 54.b reprezintă semnalul dreptungiular măsurat pe bornele la ieșire din punte fără motoare.

b)

Fig.54 Tensiunii măsurate cu osciloscopul

Pentru transmiterea datelor prin modulul Xbee care folosește transmitere prin wireless are o rată de transfer maxim 9600 bit/secundă. Ca să transmită corect valoarea accelerației și poziția mâinii, este necesar să se reducă viteza de transmisie și să se introducă o pauză între două date transmise succesiv. Poza de mai jos reprezintă transmisia și receptarea datelor trimise prin wireless, datele trimise și recepționate trebuie să fie aceiasi cu o mică întarziere între ele, în cazul nostru este de 200 de milisecunde. Datele se transmit maxim la o distanță de 900[m] în cale liberă. Dacă apar factori care bruieaza unda wireless atunci această distanță scade. Ca exemplu, niște factori care pot duce la scăderea distanței de transmitere sunt: interacțiunea altor unde electromagnetice, pereți, structuri metalice, păduri etc.

Fig.55 Transmitere și recepționare.

Fig.56 Valorile accelerometrului în format grafic.

Transmiterea datelor video este realizată tot pe calea de wireless prin TCP IP, camera are modulul de wireless încorporat care trimite la un alt router de wireless datele care este legata de un PC cu ajutorui unei cablu de ethernet.Transmiterea datelor este bidirecțională, de pe PC cu ajutorul unei interfețe se poate roti camera și se pot colecta detele video, care este inregistrată pe o frecvență de 30 [Hz].

În figurile 57.58 s-a reprezentat configurarea routerului cu camera web în care s-a stabilit adresa mask dintre cele două, fiind o rețea privată (Mask address 255.255.255.0), după care s-a stabilit comunicarea dintre emitor și receptor. Adresa ip diferă la camera web și router deoarece s-a creat identități diferite între cele două.

Fig.57 Configurarea routerului.

Fig.58 Configurarea camerei.

Pentru determinarea autonomiei robotului au fost necesare teste, robotul dacă este trimis la o distanță oarecare, trebuia știut dacă mai are energie necesară pentru întoarcere către utilizator.

Totodată trebuie determinată sarcina maximă pe care o poate duce robotul și sarcina maximă pe care o poate să ridice brațul.

Tabelul.5 Consumul servomotorului la diferite greutăți.

Tableul.6 timpii de ridicare al servomotorul la diferite greutăti.

Fig.59 Caracteristică greutate-curent.

Fig.60 Caracteristică timp-greutate.

Caracteristicile de mai sus ne ajută pentru determinarea sarcinii maxime ridicate de către brațul robotului și timpii necesari pentru ridicarea acestora.

Brațul poate ridica greutate până la 450 de grame, la greutate de 500 de grame servomotorul este suprasolicitat și se încalzește brusc pentru că intră în scurtcircuit motorul din cauza că rotorul rămăne blocat. Când servomotorul este suprasolicitat consumul din baterie este de 1,2[A] (la greutate de 500 grame). Consumurile la fiecare greutate au fost măsurate cu ajutorul unui multimetru legat în serie la plusul servomotorului. Servomotorul ridică brațul între 0 si 70 de grade, 0 înseamna poziția de jos, iar 70 poziția maxim (poziția de sus). Timpii au fost masurați la diferite greutăți într-un interval (20-500g).

Fig.61 Testarea brațului cu greutati.

Defecțiuni apărute

Oricâte măsuri de prevenire se iau, defecțiunile vor apărea într-un final. După cum se poate observa mai jos, cauzele erorilor sunt diverse și nu pot fi prevăzute și eliminate în totalitate. Cauzele apariției erorii în sisteme de telemetrie și control pot proveni din hard sau din soft (în cazul nostru).

-Poziționarea incorectă a accelerometrului în timpul calibrării;

-Factorii care bruiează semnalul de wireless;

-Contacte imperfecte între componente electrice și electronice folosite;

-Din cauza software-ului (ineficiența software-ului);

-Din cauza zgomotelor (spike-urilor) provenite din motorul de curent continuu;

-Din cauza erorii umane.;

-Din cauza mediului.

Trebuie înțeles faptul că raza de acoperire a unei rețele fără fir depinde de o mulțime de factori, putem înșira doar câțiva dintre aceștia.

Factori care depind de echipamentele folosite:

– puterea de ieșire (este specificată de către producător),

– atenuarea pe cablu (depinde de tipul și lungimea cablului),

– câștigul antenelor (specificat de către producător),

-sensibilitatea dispozitivelor (specificată de către producător).

Factori externi:

-atenuarea dintre antene

-interferența cu alte dispozitive

-influența unor bariere fizice de exemplu (copaci, podele, pereți, etc.)

Piese desenate solidworks 2014:

Fig.62 Placa de jos a robotului.

Fig.63 Suport Arduino, Driver motor si component robot

Fig.64 Suport pentru componente din transmițător.

Fig.65 Suport accelerometru MPU6050.

Aceste accesorii au fost realizate cu ajutorul unei împrimantă 3d, împrimanta fosolește material plastic care are avantajul că este ușor de utilizat. Un alt avantaj este obținerea unei greutăți mai reduse care ajută la reducerea masei totale a robotului.

Fig.66 Schema de legătură a ansamblului receptor.

Fig.67 Ansamblul transmițător.

Cap.5 Concluzii

Proiectul prezent care poartă numele Telemetrie și Control are ca și scop controlarea funcționării unui robot, colectarea datelor video de la o nanumită distanță limitată.

Am parcurs mai multe etape, începând cu alegerea componentelor electrice respectiv electronice și am ținut cont de componentele mecanice la care am analizat și caracteristicile acestora.

Prima etapă a fost realizarea comandei respective transmiterea datelor, și după ce s-a creat cominicația între transmițător și receptor se putea perfecționa controlul robotului prin celelalte componente. Până când s-a creat o comandă echilibrată al robotului.

Pe parcursul dezvoltării acestui proiect au apărut mai mulți factori care au condus la multe dificultăți ca exemplu factorii care bruiează datele transmise fără fir. Pe lângă acesta am întâmpinat probleme și la partea de programare.

Comanda prin accelerometrul are anumite avantaje, se poate efectua comenzi prin mișcarea articulației (ca exemplu articulația mâinii inferioare). Utilizatorul în acest caz se poate deplasa, se poate mișca, cu ajutorul unei mâini poate efectua mai multe comenzii, în cazul nostru deplasarea unui robot și comanda unui brat robotic.

Dezavantajele robotului au fost acceptate după anumite teste. Motoarele de current continuu la suprafețe mai dificile (ca și de exemplu nisip, iarbă), nu au putere suficientă pentru mobilizarea robotului, care este un dezavantaj major, astfel robotul se poate utiliza doar pe suprafețe mai drepte.

După realizarea unui astfel de robot se poate realiza transportarea unor substanțe explozibile fiindcă utilizatorul comandă motorul de la distanță, fără să fie în pericol.

Am costatat faptul că din cauza părții de acționare, robotul servește doar pentru experimente demonstrative. Pentru viitor aș putea să dezvolt partea de acționare, și am putea ajunge la performanțe mult mai mari.

Realizarea proiectului a necesitat multă documentare, cercetare în domeniul tehnic, electronic, informatic astfel am reușit să acumulez noi cunoștințe.

Bibiografie

[1] Dragomir,N și Munteanu, R și Crisan,T și Crisan,S. Măsurarea Electrica a Marimilor Neelectrice vol.4. Mediamira Cluj-Napoca, 2006.

[2] Drăgan, F. Prpopcoale de comunicații, Editura U.T Press, Cluj Napoca, 2008.

[3] Heller A. Înregistrarea unor vibrații mecanice cu ajutorul traductorului Hall realizat cu material semiconductor indigen. Electrotehnică, București, nr.3, 1971.

[4] Ripka, P și Tipek, A. Modern Sensors Handbook, Editură ISTE, London, 2007.

[5] Wilson, J. Sensors Technology Handbook, Editură Elsevier, SUA, 2005.

[6]*** http://www.rasfoiesc.com/inginerie/electronica/Sisteme-de-control-in-bucla-de19.php (control bucla)

[7]*** https://ro.wikipedia.org/wiki/Wi-Fi wifii

[8]***http://www.vice.com/ro/read/asa-ar-arata-undele-wi-fi-daca-le-am-putea-vedea(poze propagare wifi)

[9]***https://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0ahUKEwir3ou7rMDNAhWG6RQKHYvzABsQFgglMAE&url=http%3A%2F%2Fcndiptfsetic.tvet.ro%2Fmateriale%2FMateriale_de_predare%2FGS%2FMP2%2FMP2_Modele%2520de%2520referin%25C5%25A3%25C4%2583%2520OSI_TCPIP%2520STANICA%2520GIOVANNA.doc&usg=AFQjCNGO-AhRGmnhTC5wLRg8o-m6Kwsh2w&cad=rja

[10]***https://learn.sparkfun.com/tutorials/i2c i2c

[11]*** http://www.robot-electronics.co.uk/i2c-tutorial i2c

[12]*** http://www.scritub.com/tehnica-mecanica/MASURAREA-MARIMILOR-NEELECTRIC1552201118.php traductor generalitati plus bibliografie 1.

[13]*** http://azimadli.com/vibman/theaccelerometer.htm (accel piezo electric)

[14]*** http://videoregistratori.ru/wp-content/uploads/2009/12/CMOS-Chip1.jpg (poza cemos)

[15]*** http://www.digitalbolex.com/wp-content/uploads/2013/06/CCD-VS-CMOS.jpg (cmose)

[16]*** http://www.photomaniacs.ro/senzorul-camerei-foto-ccd-vs.-cmos-29-1-articole-foto.php cmos teorie

[17]*** http://www.tutorialeonline.net/ro/article/descrierea-pinilor-la-arduino-si-un-mic-glosar-de-termeni (ARDUINO)

[18]***http://www.robofun.ro/docs/curs/64_600f0173-a7ca-47d0-a7e8-7244f6f95991/Arduino-SoftwarePWM.pdf (pwm control)

[19]***http://electronica-azi.ro/2013/10/04/standardul-ieee-802-15-4-si-protocolul-zigbee-a-folosi-zigbee-sau-a-nu-folosi-zigbee/ (xbee)

[20] ***https://github.com/kriswiner/MPU-6050/wiki/Affordable-9-DoF-Sensor-Fusion (accel)

[21]***https://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/ (chip invense)

[22]***http://www.instructables.com/id/Arduino-Modules-L298N-Dual-H-Bridge-Motor-Controll/ (driver motor)

[23]*** https://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf (POZE DRIVER EL)

[24]***http://www.phys.ubbcluj.ro/~anghels/teaching/Electronics/capitole%20electronica%20pdf/Tranzistorul%20bipolar.pdf (transistor bipolar)

[25]*** https://en.wikipedia.org/wiki/Buck_converter (DC DC BUCK)

[26]***https://www.google.ro/search?q=DC+DC+BUCK&biw=1024&bih=463&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjvoJnzjMPNAhXC7RQKHWeMDLkQ_AUIBigB#imgdii=m6HbqJ2XvsxiUM%3A%3Bm6HbqJ2XvsxiUM%3A%3BJUYI41vX9xWAZM%3A&imgrc=m6HbqJ2XvsxiUM%3A (POZA BUCK)

[27]***http://www.instructables.com/id/Lithium-Polymer-Etiquette/ (baterie litium polymer)

[28]***http://www.cvel.clemson.edu/auto/actuators/motors-dc-brushed.html (dc motors)

[29]***https://www.google.ro/search?q=REDUCTOR+F130&biw=1024&bih=463&source=lnms&tbm=isch&sa=X&ved=0ahUKEwih9aH_mK3NAhVCVBQKHe51BMkQ_AUIBigB#tbm=isch&q=DC+MOTOR+REDUCTOR+1+48&imgrc=TuSIuASkwRIC6M%3A

(reductorul)

[30]http://www.hobbielektronika.hu/cikkek/will-i_v20_robotika_es_avr_kezdoknek.html?pg=7

(servomotor)

[31]***https://www.google.ro/search?q=servomotor+mg995&biw=1024&bih=463&source=lnms&tbm=isch&sa=X&ved=0ahUKEwip1YO7mq3NAhULbxQKHWJ5C4MQ_AUIBigB#imgrc=iZb0JZajcMCa0M%3A(poze servo)

Similar Posts