Sistem de Comanda cu Microcontroler a Unui Robot Mobil
1. INTRODUCERE
1.1 Definiții ale Roboților
Robotul este întruparea noțiunii de “automatizare și control”, este un produs mecatronic. Termenul de "robot" a fost utilizat în 1917 pentru prima oară într-o nuvelă a scriitorului ceh Karel Capek. Cuvântul "robota" este cuvânt slav și înseamnă muncă manuală dificilă sau grea.
Roboții adevărați, așa cum îi cunoaștem astăzi, au apărut în 1954 când un inginer american, Joseph Engelberger, a depus la oficiul de invenții un patent numit "programmed article transport".
Este deosebit de dificilă formularea unei definiții care să cuprindă toate caracteristicile unui robot în câteva rânduri. Din acest motiv, există mai multe definiții ale aceluiași termen, date de unele dintre companiile constructoare sau asociațiile naționale din domeniu. Fiecare dintre acestea încearcă să definească în moduri diferite, același produs al inteligenței umane.
RIA (Robot Institute of America): „Robotul este un manipulator multifuncțional, reprogramabil, destinat deplasării materialelor, pieselor, sculelor sau altor dispozitive specializate prin mișcări variabile, programate pentru a îndeplini anumite sarcini”.
JIRA (Japan Industrial Robot Association): „Robotul este un dispozitiv versatil și flexibil care oferă funcții de deplasare similare celor ale membrelor umane sau ale cărui funcții de deplasare sunt comandate de senzori și de mijloace proprii de recunoaștere”.
BRA (British Robot Association): „Robotul este un dispozitiv reprogramabil realizat pentru manipularea și transportul pieselor, sculelor sau altor mijloace de producție prin mișcări variabile programate pentru a îndeplini sarcini specifice de fabricație”.
General Motors: „Robotul este un echipament fizic cu funcționare programabilă capabil să efectueze anumite operații și secvențe de operații orientate spre manipularea de piese, scule, subansamble”.
În domeniul roboticii, cei mai interesanți roboți sunt numiți "roboți inteligenți". Ei ar trebui să fie capabili să manipuleze obiecte în lumea reală și să reacționeze la evenimente externe. În plus, ei trebuie să fie flexibili, de exemplu să-și modifice comportamentul. Forma și mărimea robotului nu are importanță în stabilirea faptului dacă este sau nu inteligent. Cel mai important criteriu este multitudinea de senzori folosiți de robot.
1.2 Structura robotului
Structura unui robot este de fapt, un sistem compus din mai multe subsisteme. Sistemul este un ansamblu de părți componente, elemente și legăturile dintre acestea. Elementele care compun acest sistem se numesc subsisteme. La rândul lor subsistemele pot avea și ele subsisteme, din acest motiv există o ierarhizare și anume sistemul principal se numește sistem de rangul 1, subsistemele se numesc sisteme de rangul 2, etc.
Modul cum se compune un sistem din subsisteme și legăturile dintre aceste subsisteme definesc structura unui sistem. Această compunere a sistemelor din subsisteme se evidențiază prin scheme bloc, iar legăturile dintre subsisteme, prin matrici de cuplare (care definesc legăturile dintre "intrările" și "ieșirile") și matrici de structură (care ne arată care subsisteme sunt în legătură).
Robotul este un sistem de rangul 1 și se aseamănă constructiv cu sistemul unui om, la fel si subsistemele robotului.
Schema bloc a structurii unui robot este:
1.3 Clasificarea roboților
Din punctul de vedere al gradului de mobilitate se cunosc roboți ficși și roboți mobili.
După domeniul de aplicare: a) sector primar (agricultură, minerit); b) sector secundar, producție materială (procese continue și procese discontinue); c) sector terțiar (medicină, domeniul nuclear); d) sectoare speciale (explorări spațiale, subacvatice, etc.
Din punct de vedere al sistemului de coordonate roboții funcționează în sistem de coordonate carteziene (18%), cilindrice (33%), sferice (40%) și structura robotului antropomorf.
Din punct de vedere al sistemului de comandă: comanda punct cu punct (unde nu interesează traiectoria propriu-zisă); comanda multipunct (implică coordonarea mișcării axelor); comanda pe traiectorie continuă (implică toți parametrii de mișcare).
Din punct de vedere al sarcinii manipulate.
Din punct de vedere al sistemului de acționare: hidraulică (40%), electrică (30%), pneumatică (21%), mixtă.
Din punct de vedere al preciziei de poziționare.
Din punctul de vedere al sistemului de comandă (generație): a) roboți din generația I-a – acești roboți sunt practic manipulatoare și roboți programabili (neadaptivi); b) roboți din generația a II-a – roboți adaptivi; c) roboți din generația a-III-a – roboți inteligenți.
Pe baza celor de mai sus, se observă că principalul criteriu de clasificare se referă la sistemul de comandă (sistemul de conducere).
1.4 Aplicații ale robotilor
Robotul poate înlocui munca umană, deoarece roboții pot efectua sarcini mai repede decât oamenii. Roboții nu trebuiesc să bea, să fie plătiți sau să se odihnească, în comparație cu oamenii. Ei pot face munca repetitiv și cu mare precizie și nu se vor opri până când sarcina nu este terminată, în timp ce oamenii se plictisesc.
Robotul poate fi utilizați în domeniul militar pentru reducerea numărului de victime care apar în timpul acțiunilor militare fiind deja o prioritate. Armata folosește deasemenea roboți pentru localizarea și distrugerea minelor pe uscat cât și în apă, spionaj de dușmani și intrarea în bazele inamice pentru colectarea de informații.
În zilele noastre un medic poate utiliza roboții în timp ce efectuează intervenții chirurgicale. Un om nu ar fi în măsură să facă o gaură identică de 100 de ori de un inchi lățime și lungime. Atunci când se produc medicamente, roboții pot efectua munca oamenilor mult mai repede și mult mai precis și delicat în comparație cu aceștia. Medicii si inginerii uneori pot construi membre protezice prin utilizarea mecanismelor robotizate.
Senzorii staționari individuali au intervale și aplicații limitate. Câinii de pază și oamenii pot pierde nivelul de vigilenta în timpul schimburilor și să fie răniți de intruși. Sistemele de robot autonome sunt instrumentele care combină precizia senzorilor cu mobilitatea și inteligența oamenilor. Sistemele robotizate autonome de securitate sunt capabili să lucreze multe ore la nivel maxim de vigilență și precizie. Oamenii sunt interesați de locuri pline de pericol cum ar fi spațiul cosmic sau subacvatic. Ei nu pot ajunge acolo așa că se folosesc de roboți pentru explorare. Roboții pot transporta aparate foto și alte instrumente prin care se pot colecta informații și trimite înapoi pentru prelucrare la operatorii lor umani. Dezvoltarea continuă a robotilor autonomi mărește capacitatea noastra de a explora universul.
1.5 Roboții mobili
Roboții mobili au un rol foarte important în crearea sistemelor de fabricație automatizate și robotizate. Principala funcție a roboților mobili este cea de transport între posturile de lucru ale sistemului sau între posturile de lucru și diverse componente auxiliare ale sistemului tehnologic. Acest transport se poate referi la piese, scule, dispozitive sau la scule tehnologice (polizoare, capete de sudură, pistoale de vopsit).
Roboții mobili se clasifică în trei grupe principale așa cum reiese din clasificarea facută în figura 2.
Roboți mobili cu deplasare pe o bază situată pe sol sau cu deplasare directă pe sol (pneuri);
Roboți mobili cu deplasare pe verticală sau cu deplasare în coordonate (pe verticală și orizontală);
Roboți mobili pe o cale suspendată.
Roboții cu deplasare la sol se pot deplasa pe ghidaje sau se amplasează pe carucioare automate prevazute cu roți, cu deplasare pe o traiectorie materializată prin șine direct pe sol, în acest caz traiectoria este materializată pe un fir inductiv sau pe o bandă luminoscentă. Acestea din urmă sunt mijloace de transport și manipulare cu un înalt grad de flexibilitate putându-se deplasa pe cele mai înalte traiectorii.
Cărucioarele automate cu deplasare pe cale suspendată monoșină au instalate pe ele un robot cu un număr mai mare sau mai mic de module de rotație în special și de translație.
Un număr mai mic de grade de libertate au de obicei roboții cu deplasare pe un portal sau roboții instalați pe o punte, aceștia din urmă deplasându-se pe portal.
2. STRUCTURA DE COMANDĂ ALE ROBOȚILOR
2.1 Puntea H
Datorită tensiunii și curentului de valori foarte mici furnizate la ieșirea microcontrolerului este nevoie de un circuit de amplificare pentru acționarea motoarelor de curent continuu.
O schemă simplă și eficientă pentru comanda acestor motoare este reprezentată de puntea H (în engleză H bridge).
Puntea H are în componența electrică întrerupătoare de tip tranzistor cum ar fi:
tranzistoare bipolare (PNP,NPN);
tranzistoare cu efect de câmp cu grila izolată (TEC-MOS canal N, TEC-MOS canal P).
Atunci când întrerupatoarele S1 si S4 sunt închise iar întrerupatoare S2 si S3 sunt deschise o tensiune pozitivă va fi aplicată motorului de curent continuu care se va roti în sens direct acelor ceasornic.
Prin deschiderea întrerupătoarelor S1 si S4 și închiderea întrerupătoarelor S2 și S3, această tensiune este inversată, făcand posibilă rotirea motorului în sens opus.
Puntea H este în general folosită pentru a inversa polaritatea tensiunii de alimentare a motorului. Însă se poate folosi și pentru frânarea motorului (în acest caz motorul se oprește brusc datorită faptului că terminalele acestuia sunt scurtcircuitate), sau pentru a lăsa motorul să se rotească liber pană la oprire.
2.2 Generatorul de semnal PWM
Modulația în durată a impulsurilor reprezintă o soluție foarte convenabilă de control a circuitelor și sistemelor analogice, utilizând ieșirile digitale ale microcontrolerului.
Pentru a defini termenul, putem spune că PWM-ul este o cale de a controla un semnal digital simulând unul analogic. Valoarea medie a tensiunii de ieșire poate fi reglată prin variația duratelor de conducție, , și de durată, , ale semnalului digital.
Pentru ilustrarea acestui principiu se consideră figura 5.
Valoarea medie a tensiunii de ieșire poate fi determinată cu ajutorul relației:
U = ,
unde T reprezinta perioada uni ciclu PWM.
Se definește astfel factorul de umplere:
α = , α[0,1]
Se observă că prin reglajul factorului de umplere se poate regla tensiunea medie la ieșire (considerând constanta perioada T a unui ciclu PWM).
Pentru a controla turația motoarelor de curent continuu există mai multe metode: cea mai simplă ar fi înserierea unei rezistențe variabile în circuitul de alimentare al motorului. Prin modificarea valorii rezistenței se modifică tensiunea aplicată motorului.
Variația tensiunii nu este proportională cu variația rezistenței și depinde de curentul absorbit de motor. Această metodă nu este eficientă având în vedere faptul că se pierde foarte multă energie prin disipare de caldură.
Cea mai eficientă metoda de control a energiei este comanda cu impulsuri modulate in lățime PWM (în engleză Pulse Width Modulation).
Variația turației motorului se face prin creșterea sau micșorarea timpului în care semnalul de comanda are valoarea 1 logic (ON). Astfel la un factor de umplere de 100% motorul are turația maximă, este maxim și este zero.
La un factor de umplere de 50% motorul are jumătate din turația nominală deci += +, iar la un factor de umplere de 0% motorul este oprit deci este maxim, iar este zero.
Multe circuite numerice pot genera semnale PWM. Majoritatea microcontrolerelor dispun de această facilitate, conținând număratoare care se încrementează periodic (conectate direct sau indirect la o unitate de ceas) și care sunt resetate la sfârșitul fiecărei perioade a PWM-ului.
Valoarea numărătorului (TCN – Timer / Counter Register n) este comparată permanent cu o valoare de prag (OC – Output Compare Register n) și când devine mai mare atunci ieșirea PWM – ului (Output Compare n) trece din valoarea 1 logic în 0 logic (sau invers) figura 7.
Fiecare unitate de temporizare/numărare este capabilă să genereze semnale PWM, astfel că n poate fi 0, 1 sau 2, în funcție de temporizatorul utilizat (figura 8). Configurarea temporizatoarelor/numărătoarelor pe 8 biți (Timer 0 si Timer 2), pentru funcționarea în regim de PWM, se realizează prin intermediul registrului TCC (Timer/Counter Control Register), unde n poate fi 0 sau 2 în funcție de temporizatorul setat.
Prin intermediul biților C0, C1 si C2 se va stabili frecvența generatorului de tact al temporizatorului/numaratorului n, variabile posibile fiind prezentate în tabelul 1.
Tab. 1
În tabelul 2 sunt prezentați biții WG0 si WG1, care oferă posibilitatea de a seta modurile de generare ale semnalelor PWM.
Tab. 2
În funcție de valorile biților CO0 si CO1 din registrul TCC, este posibil să se programeze modificarea nivelului logic al pinului O, când registrul TCN atinge valoarea registrului de prag OC, din tabelul 3. În acest caz pinul trebuie configurat ca ieșire.
Tab. 3
Semnalul PWM corectat în fază
În acest mod de funcționare registrul de numărare TCN este incrementat până la atingerea valorii 0xFF. În acest moment registrul de numărare TCNîncepe să fie decreementat până ajunge la 0 după care se reia ciclul.
Valoarea logică a pinului (Output Compare n) se modifică numai când registrul TCN devine egal cu valoare de prag (Output Compare Register n) atât la creștere cât și la descreștere, după cum se poate vedea în figura 9.
În acest mod de funcționare utilizatorul poate modifica oricând valoarea de prag deoarece ea nu va fi transferată modulului de temporizare decât dupa registrul TCN a realizat un ciclu complet de numarare.
Modul de funcționare cu reinitializare la atingerea valorii de prag
În modul de funcționare cu reinițializare la atingerea valorii de prag (CTC – Clear Timer on Compare Match) valoarea registrului de numărare TCN este incrementată la fiecare tact până devine egală cu valoarea registrului de comparare OC.
În acest moment, registrul TCN se reinițializează cu 0 și se reia numărătoarea.
Valoarea logică a pinului O se modifică numai când valoarea registrului TCN devine egală cu valoarea de prag OC și va ramâne în această stare până la o nouă resetare a numărătorului, așa cum se poate vedea în figura 11.
Numărarea se realizează în registrul (TCN – Timer / Counter Register n), registru pe 8 biți.
Valoarea de prag cu care se compară registrul de numărare, se va înscrie în registrul OC (Output Compare Register n).
Activarea uneia dintre întreruperile la atingerea valorii de prag aferente temporizatoarelor/numărătoarelor se realizeaza prin intermediul biților OCIE0, OCIE1A, OCIE1B si OCIE2, din registrul TIMSK (Timer/Counter Interrupt Mask).
În cele din urma se va activa sistemul general de întreruperi prin activarea bitului aferent din registrul de stare SREG (Status Register) al microcontrolerului.
2.3 Microcontrolerul ATmega 16
ATmega 16 fiind realizat de firma Atmel este un microcontroler RISC pe 8 biți, a cărui AVR combină un set amplu de instrucțiuni, care au scopul principal lucrul cu regiștrii, aceștia fiind conectați direct la unitatea Aritimetico – Logica, permițând ca o singură instrucțiune executată într-un tact să acceseze 2 regiștri independenți.
Caracteristicile principale ale acestuia sunt:
512B de memorie EEPROM;
16KB de memorie Flash reinscriptibilă pentu stocarea codului;
1KB de memorie RAM;
un numărător/temporizator de 16 biți;
două numărătoare/temporizatoare de 8 biți;
conține un comparator analogic;
conține un convertor analog/digital cu multiple intrări;
oferă 32 de linii intrare/ieșire organizate în 4 porturi de 8 biți denumite cu literele A,B,C,D;
conține un modul USART pentru comunicații seriale;
dispune de oscilator intern.
Astfel Atmega 16 este un microcontroler puternic care oferă o flexibilitate mărită fiind compatibil cu o gama largă de medii de programare, dintre care enumerăm:
compilator C compilers;
macro ansambler;
programe de debugging și simulare.
Structura internă generală a microcontrolerului este prezentată în figura 12.
În această structură generală se observă existența unei magistrale generale de date la care sunt conectate mai multe module:
memoria RAM și memoria EEPROM;
unitatea aritimetica și logică (ALU);
liniile de intrare (I/O) și celelalte blocuri de intrare/ieșire care sunt controlate de un set special de registre, fiecare modul având asociat un număr de registre specifice.
Memoria Flash de program împreună cu blocul de extragere a instrucțiunilor, decodare și execuție comunică printr-o magistrală proprie, separată de magistrala de date având principiile unei arhitecturi Harvad care permite microcontrolerului să execute instrucțiunile într-un timp foarte scurt.
Cele 32 de registre de uz general și 64 de registre speciale organizate în 4 porturi sunt mapate de adrese din memoria RAM cuprinse între 0000h și 005Fh.
Sistemul de întreruperi ale microcontrolerului Atmega 16 are un rol foarte important. O întrerupere reprezintă un semnal generat de un modul extern unității centrale de procesare (CPU) pentru a anunța apariția unui eveniment care trebuie tratat. Utilizarea unui astfel de sistem permite implementarea de module specializate care să execute operații în paralel cu CPU și să solicite intervenția acestuia numai la terminarea operațiilor sau în alte cazuri definite.
Atunci când una dintre întreruperi devine activă, cursul normal de execuție al programului se suspendă și se face salt automat la o adresă prestabilită din memoria program.
Setul de instrucțiuni
Atmega 16 dispune de un registru special de stare ai cărui biți oferă informații despre rezultatul ultimei instrucțiuni aritimetice sau logice executate. Componenta registrului de stare este prezentată în figura 13.
Registrul de stare SREG are în componență urmatorii biți:
bitul 1 – indicator de zero;
bitul 2 – indicator de rezultat negativ;
bitul 3 – indicator de depășire în cazul operațiilor în complement față de doi;
bitul 4 – indicator de semn;
bitul 5 – indicator de transport la jumătate;
bitul 6 – bit de copiere;
bitul 7 – activare/dezactivare globală întreruperi (valoarea 1 activare execuție întreruperi, valoare 2 dezactivare sursă de întrerupere).
Atmega 16 dispune de un set de 131 de instrucțiuni grupate în mai multe categorii:
instrucțiuni aritimetice si logice (ADD Rd,Rr; ADC Rd,Rr; SUB Rd,Rr; ADN Rd,Rr; INC Rd; DEC Rd);
instrucțiuni de salt (JMP k; RCALL subrutină; RETI; CPSE Rd, Rr; CP Rd, Rr; SBRC RD, b; SBRS Rd, b; SBIC, b; SBIS P,b; BREQ etichetă);
instrucțiuni de transfer (MOV Rd,Rr; LDI Rd, k; IN Rd, P; OUT P,Rr);
instrucțiuni care lucrează la nivel de bit (SBI P, b; CBI P, b; LSL Rd; RORD Rd);
instrucțiuni speciale (NOP; SLEEP; WDR).
Porturile Atmega 16
Cele 4 porturi pe 8 biți sunt denumite cu literele A, B, C, D. Fiecare pin al oricărui port se poate seta individual ca intrare sau ieșire fără să afecteze ceilalți pini. Anumiți pini se pot utiliza pentru funcții speciale ale microcontrolerului. În figura 14 este prezentată structura generala a unui pin.
Toți cei 32 de pini au fiecare câte o rezistență de “pull-up” care poate fi activată sau dezactivată.
Operațiile cu porturile se fac prin intermediul unui set de patru regiștri alocați fiecărui port: PORT Tx, PINx si DDRx; x poate fi A, B, C, D. Acești regiștri fac parte din categoria regiștrilor de intrare/ieșire de aceea instrucțiunile care pot lucra direct cu ei sunt CBI, SBI, IN, OUT.
Regiștrii PORTx sunt utilizați pentru a scrie o valoare în portul corespunzator, iar regiștrii PINx se folosesc pentru a citi valoarea prezentată pe pinii unui port. Regiștrii DDRx stabilesc dacă un pin este intrare sau ieșire. Bitul cu valoare “1” în registrul DDRx face ca pinul corexpunzător să fie considerat ieșire; astfel pinul va fi intrare.
2.4 Senzori
IR Sensor-Single este un senzor de proximitate de uz general. Modulul constă dintr-un emițător IR și receptor IR pereche. Receptorul IR de mare precizie întotdeauna detectează un semnal IR.
Modulul este format dintr-un comparator IC. Ieșirea senzorului rămâne ridicată în cazul în care este de frecvență IR și joasă viceversa. Indicatorul LED integrat ajută utilizatorul pentru a putea verifica starea senzorului fără a folosi nici un hardware suplimentar. Consumul de energie în acest modul este scăzut. Ieșirea este in format digital.
Sensibilitatea senzorului IR este ajustată cu ajutorul potențiometrului. Potențiometru este ajustabil în ambele direcții. Inițial ajustăm potențiometrul în sensul acelor de ceasornic, astfel încât LED-ul indicator să se apridă. Odată ce acest stadiu este atins, rotiți potențiometrul suficient în sensul invers acelor de ceasornic pentru a opri LED-ul indicator. În acest moment, sensibilitatea receptorului este maximă. Astfel, acesta va avea maximum de sensibilitate la distanța din acel punct. Dacă distanța de detecție (sensibilitatea) a receptorului este necesar a fi la minim, rotim potențiometru în sensul invers acelor de ceasornic față de acest punct.
Mai mult, dacă orientarea TX cât și RX LED-ul este paralelă unul față de celălalt, astfel încât ambele să fie îndreptate către exterior, atunci sensibilitatea lor este nivelul maxim. În cazul în care sunt mutate departe unul de altul, astfel încât acestea sunt înclinați reciproc sudați la capete, atunci sensibilitatea lor scade.
Ajustarea sensibilității senzorilor este limitată de mediul ambiant. Pentru un anumit mediu, odată senzorii ajustați, ei vor lucra perfect atâta timp cât condițiile de iluminare IR din acea regiune rămân constante.
De exemplu, dacă potențiometrul este ajustat în interiorul unei camere / clădiri pentru sensibilitate maximă și apoi scos direct la lumina soarelui, va fi nevoie de reajustare, deoarece razele soarelui conțin, de asemenea, frecvențe infraroșu (IR), acționând astfel ca o sursă IR. Acest fapt deranjează capacitatea de detectare a receptorului. Prin urmare, trebuie să fie reajustat pentru a lucra perfect în noile condiții.
Ieșirea receptor IR devine minină atunci când primește semnalul IR. Acest lucru face scăderea ieșirii PIN, deși LED IR continuă să transmită, lipsa obstacolelor făcând ca nimic să nu fie reflectat înapoi la receptorul IR. LED-ul indicator este stins.
Atunci când întâlnește un obstacol, intensitatea semnalului scade, suprafața obstacolului reflectă semnal IR, scăzând semnalul din comparator. Ieșirea conectată la catodul LED-lui se aprinde .
3. STRUCTURA MECANICĂ A UNUI ROBOT MOBIL
3.1 Transmisia prin curele
Transmisiile prin curele fac parte din categoria transmisiilor prin fricțiune și servesc la transmiterea mișcării de rotație și a momentului de torsiune de la arborele condus la cel conducător, într-un anumit raport și la o anumită distanță, prin intermediul uneia sau mai multor curele.
Datorită specificului constructiv în comparație cu transmisiile prin roți cu fricțiune suprafața de frecare crește mult. Din această cauză forța de întindere a curelei necesare pentru transmiterea unui anumit moment, va fi mai mică decât forța de apăsare reciprocă în cazul transmisiei cu roți de fricțiune.
O transmisie prin curele se compune din roțile de curea – conducătoare 1 și condusă 2 – elementul de legătură (cureaua) 3 (figura 19), sistemul de întindere și apărători de protecție. Forța necesară de apăsare a curelei pe roțile de curea se realizează la montaj, prin întinderea(deformarea elastică) curelei.
Acest lucru duce la simplificarea construcție lagărelor de susținere și reducerea uzurii pe suprafețele de contact.
Utililarea largă a transmisiei prin curele derivă din urmatoarele avantaje:
construcție simplă;
se poate transmite o gamă largă de puteri (de la 0,08 kw până la 2000 kw);
posibilitatea transmiterii mișcării până la o distanță de până la 12 m;
mișcarea se poate transmite de la o roată motoare la mai multe roți conduse;
este o transmisie silențioasă ;
constituie elementul elastic dintr-un lanț cinematic și contribuie la preluarea sarcinilor șocurilor și vibrațiilor (la șocuri sau suprasarcini, cureaua alunecă pe roata de curea);
funcționează la turații mari;
uzură redusă a elementelor;
întreținere ușoară;
posibilitatea transmiterii mișcării de rotație între arbori concurenți sau cu poziții oarecare în spațiu.
Printre dezavantaje pot fi enumerate:
din cauza alunecărilor, raportul de transmitere nu este riguros constant;
gabarit mai mare decât la alte transmisii;
necesitatea prevederii unor dispozitive de întindere a curelei.
În cazul transmisiilor prin curele, curelele late sunt utilizate la puteri N ≤1200 kw; la viteze v ≤ 30 m/s și distanța între axe a ≤ 12 m și raport de transmitere i ≤ 6. Curelele trapezoidale se utilizează la puteri N ≤ 1200 kw, v ≤ 40 m/s și i ≤ 10. În cazul că trebuie menținut un raport de transmitere strict constant, se utilizează curele late dințate. Aceste curele au o capacitate mare de tracțiune, funcționare silențioasă și mențin raportul de transmitere constant. Se pot utiliza la transmiterea de puteri N ≤ 1800 kw cu viteze v = 25÷45 m/s și i = 1÷8.
Sunt utilizate în construcția de automobile, mașini unelte, mecanică fină, etc.
Transmisiile prin curele rotunde sunt utilizate doar ca transmisii cinematice.
3.1.1 Clasificare
Putem clasifica curele astfel:
Dupa forma secțiunii:
Constantă:
lată (figura 20 a);
patrată;
hexagonală;
rotundă (figura 20 c);
trapezoidală (figura 20 b).
Variabilă
profilată (figura 20 d).
După material;
piele;
cauciuc;
textile;
materiale plastice;
fibre sintetice;
oțel arc.
După felul transmisiei:
axe:
paralele (figura 21 a);
neparalele (figura 21 b).
ramurile:
neincrucișate (figura 21 a);
incrucișate (figura 21 b).
întindere:
cu role de întindere;
cu deplasarea roții conducătoare.
numărul roților conduse:
una (figura 21 a);
mai multe.
raport de transmitere:
aproximativ constant;
variabil discontinuu prin trepte de
transmisii (figura 22);
constant.
3.1.2 Materiale și tehnologii de execuție
Materialul folosit la confecționarea curelelor de transmisie trebuie să îndeplinească urmatoarele condiții:
să prezinte rezistență suficientă la uzură, la tracțiune și presiune de contact;
să aibă un coeficient de frecare cât mai mare ;
să aibă rezistență ridicată la flexiuni repetate;
să nu prezinte urmări ale fenomenelor de îmbătrânire, pentru o perioadă de funcționare impusă;
Materialele utilizate la confecționarea curelelor sunt:
piele bovine – primele curele au fost confecționate din piele; pielea îndeplinește majoritatea condițiilor cerute curelelor, dar este scumpă și insuficientă la actuala dezvoltare a tehnicii; din piele se pot confectiona curelele:
– patrate – snur;
– pe muchii;
– late simple sau duble;
Lipirea panglicilor pentru confecționarea curelelor duble se face pe fețele exterioare pentru ca suprafața de lucru să aibă coeficientul de frecare cel mai mare.
bumbac – se folosește sub forma de șnur, pamblici țesute sau cusute, pentru transmisii de putere mică.
benzi metalice sau din otel arc – au rezistență mecanică foarte bună dar flexibilitate limitată; funcționarea lor este zgomotoasă.
cauciuc – este materialul cel mai folosit și care îndeplinește în bune condiții cerințele pentru a fi utilizate la confecționarea curelelor de transmisie; curelele de cauciuc sunt armate cu inserție textilă, fire sintetice sau metalice pentru asigurarea rezistenței sporită. (figura 23)
mase plastice – utilizarea maselor plastice la fabricarea curelelor a dus la înlocuirea materialelor naturale deficitare cât și apariția unor curele de formă și secțiune noi.
Performanțele deosebite pe care le realizează v≤125 m/s; n≤600000 rot/min; N≤6000 KW a mărit posibilitatea transmisiei prin curele. Deoarece un singur material nu poate satisface toate condițiile de funcționare perfectă, se impune alegerea în mod judicios atât a tipului de curea cât și a materialului din care este confecționată, ținând cont de toți parametrii care influențează transmisia.
La alegerea materialelor pentru roțile de curea, trebuie să se țină cont că materialele curelelor sunt în general cu duritate foarte scazută. De aceea roțile de curea se execută din fonta sau oțeluri turnate sau laminate, fără pretenții de duritate. De obicei se folosesc fonte cenușii, oțeluri carbon turnate sau oțeluri laminate de tip OL 37 – OL 42. Acestea sunt suficiente chiar și pentru curelele metalice care sunt executate din otol arc, deci dure, deoarece uzura se dirijeaza spre spre piesa mai ieftină – in acest caz roata de curea.
3.1.3 Calculul transmisiilor prin curele late
Calculul geometric
Transmisia prin curele (figura 24) este caracterizată prin urmatoarele elemente geometrice:
Raportul de transmitere i;
Diametrele celor doua roți de curea D1 ,D2;
Distanța dintre axe a;
Unghiul dintre ramurile curelei γ;
Lungimea curelei L.
Raportul de transmitere i:
i = n1/n2=ω1/ω2 = D1/D2
În – STAS 1163-71 valoarea raportului de transmisie este limitată la i≤10.
Diametrul roții mici D1 se alege funcție de tipul curelei, cât mai mic și respectând restricțiile constructive și prescripțiile standardului – STAS 6011-73.
În figura 25 sunt indicate valorile recomandate .
Diametrul roții mari:
D2=iD1 [mm]
Valorile acestor diametre se rotunjesc la valoarea cea mai apropiată din standard.
Distanța dintre axe a rezulta în general din considerente constructive și de gabarit. Prin – STAS 1163-71 valorile distanței axiale sunt limitate
0,7 ( D2+D1 ) ≤ a ≤ 2 (D2+D4 ) [mm]
Unghiul dintre ramurile curelei γ este egal cu:
γ= 2arcsin (D2-D1)/2a
unde: D1 ,D2, a se masoara in mm.
Unghiurile de înfășurare pe roțile de curea:
La transmisii prin curele late 90º≤ β1 ≤180º
Lungimea curelei L este data de relația :
L=L1 + L2 + Lβ1 + Lβ2 [mm]
3.2 Lagăre
Lagărele sunt organe de mașini care împreună cu fusurile arborilor sau ale osiilor formează cuple cinematice de rotație sau de oscilație.
Cu toată varietatea domeniilor de utilizare, ale dimensiunilor și formelor pe care le pot avea ,lagărele utilizate în construcția de mașini se pot grupa după unele criterii caracteristice și anume:
după criteriul forțelor de frecare ce apar în timpul funcționării, lagarele pot fi:
cu alunecare – forțele de frecare vor fi de alunecare;
cu rostogolire – forțele de frecare vor fi de rostogolire;
după criteriul directiei forțelor principale care acționează în cuplele cinematice, lagarele pot fi:
radiale – rezultanta forțelor din cupla cinematica este perpendiculară pe axa geometrica a lagărului;
axiale – rezultanta forțelor din cupla cinematică are aceeași direcție cu axa geometrică a lagărului;
radial – axiale – rezultanta forțelor din cupla cinematică acționează pe o direcție înclinată față de axa geometrica a lagarului.
Lagăre cu rostogolire (cu rulmenți)
La aceste lagăre între fusul arborelui (osiei) și piesa de reazăm (carcasa-corpul lagărului) se interpune rulmentul (figura 26 a și b). Ca o consecință frecarea principală din lagăr va fi cea de rostogolire.
Principalele avantaje și dezavantaje ale lagărelor cu rostogolire față de cele cu alunecare sunt:
Avantaje:
prin frecare au loc pierderi mai mici, mai ales la pornire și oprire, când nu este asigurată ungerea fluidă;
coeficientul de frecare și cuplul de pornire sunt foarte apropiate de cele din momentul funcționării;
este eliminată uzarea fusului;
eliminarea consumului de materiale antifricțiune deficitare;
portanță mai mare pe unitatea de lungime a fusului;
este redus jocul radial;
interscimbalitatea ușoară;
au un consum foarte mic de lubrifiant;
se pot fabrica în serie mare-deci producția poate fi automatizată;
rodajul nu este necesar;
Dezavantaje:
sunt mult mai sensibile la supraîncărcări și șocuri;
aproape brusc se produce defectarea;
datorită inelelor care sunt dintr-o bucată apar dificultați de montaj;
rigiditate mai mare (proprietățile filmului de ulei de a amotiza șocurile sunt foarte mici);
la același diametru de fus un gabarit diametral mai mare;
zgomotul este mult mai mare;
cerințe mai severe de montaj și execuție;
Randamentul rulmenților
Pierderile prin frecare în lagărele cu rostogolire se datoresc:
frecărilor de rostogolire dintre corpurile de rulare și inele, la care se adaugă frecările suplimentare de alunecare (la rulmenții cu role conice, o frecare considerabilă de alunecare are loc între fața frontală a rolei și gulerul inelului interior);
frecările datorate apariției mișcării giroscopice și a forțelor de inerție;
frecările dintre colivie și corpurile de rulare;
frecarea coliviei de inelele rulmentului (mai rar);
frecarea internă a uleiului.
Preponderentă este frecarea dintre corpurile de rulare și colivie la sarcini mici, iar la sarcini mari, preponderentă este frecarea de pe suprafața de contact, între corpurile de rulare și inele.
Frecarea este foarte mare în lipsa uleiului și durata de funcționare scade simtitor atunci când uleiul este prezent, care nu trebuie să depașească axa bilei, se asigură ungerea optimă, frecarea crește cu creșterea nivelului lubrifiantului.
Când se alege sistemul de ungere a lubrifiantului și a perioadei de ungere, se ține seama de îndeosebi de urmatorii factori: tipul și mărimea rulmentului, turația de regim, sarcina și temperatura de regim. În cataloagele de rulmenți se fac recomandari în acest sens. Se recomandă pentru calcule urmatoarele randamente atunci când nu se cunosc valorile indicate de producator.
3.3 Calculul motoarelor de acționare a robocarului
M – motor de acționare;
1 – 2 – transmisie melc-roată melcată;
3 – 4 – transmisie roți dințate
5 – 6 – transmisie curea lată dințată;
7 – roată motoare.
Momentul (cuplul) motorului de acționare necesar punerii în mișcare a robotului mobil poate fi dedus plecând de la roata motoare către motorul de acționare sintetizat în figura 28.
– cuplul arborelui motor;
– cuplul arborelui 1;
– cuplul arborelui 2;
– cuplul arborelui roții motoare;
= R;
= + ; (3.1)
forța axială totală;
– forța axială disponibilă;
– forța rezistentă;
R – raza roții motoare;
= 2,5 N – necesară punerii în mișcare a robotului mobil;
R = 0,035 mm;
m = 4,9 kg;
m – masa robotului mobil;
= G; (3.2)
G = m g; (3.3)
G – greutatea robotului mobil;
M – masa robotului mobil;
G – accelerația gravitațională;
– coeficient de frecare la rostogolire (lăgaruire cu rulmenți);
= 0,003 4,9 kg 9,8 = 0,14406 N;
= 2,5 N + 0,144 N = 2,644 N;
= 2,644 N 0,035 = 0,0925 Nm;
= ; (3.3)
= = 0,187 – raportul de transmisie între cele doua roți ale curelei late dințate;
Η;
= 0,92 – randamentul transmisiei cu curea lată dințată;
= 0,98 – randamentul lagărelor cu rostogolire (rulmenți);
= = 0,019 Nm;
= ; (3.4)
= = 0,567 – raportul de transmisie al roților dințate;
= 0,92 – randamentul transmisiei cu roți dințate;
= = 0,011 Nm;
= ; (3.5)
= = 0,055 – raportul de transmisie melc – roată melcată;
= 0,055 = 0,000864 Nm;
Vom alege din catalog un motor având urmatoarele caracteristici:
= 12 V;
= 2,5 A – curentul nominal;
= 25 W – puterea nominală;
= 50 – turația nominală;
= 1,5 KN – forța nominală.
4. REALIZAREA PRACTICĂ A ROBOTULUI MOBIL
4.1 Schema bloc
4.2 Schema electronică
4.2.1. Listă componente utilizate în schema electronică cu valori ale acestora:
IC1 – L7805C, (5V,1,5A)
IC2 – ATMega 16-16 PU
IC3, IC4 – PC817C
T1, T2, T3, T4, T5, T6, T7, T8 – IR RX, (QRT-1RC, senzor reflectant IR)
T9, T11, T13, T15 – FQP 27PO6, (MOSFET, P, -60V, -27A,TO-220)
T10, T12, T14, T16 – FQP 30N06, (MOSFET, N-CH, 60V, 30A, TO-220AB-3)
C1 – 1000μF
C2 – 100μF
C3, C4, C5, C6, C7, C8, C9, C10 – 10nf
C11, C12, C15 – 100nF
C13, C14 – 15pf
R1 – 1KΩ
R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R20, R21 – 220Ω
R18, R19 – 100Ω
R22, R24, R26, R28 – 1KΩ
R23, R25, R27, R29 – 10KΩ
R30 – 2,2KΩ
MOTOR “A”, = 12[V], = 50[], = 1,5 [Nm].
MOTOR “B”, = 12[V], = 50[], = 1,5 [Nm].
4.2.2. Dispunere pini și simboluri componente active utilizate în schema electronică:
4.3 Funcționarea
Sistemul de comandă cu microcontroler al unui robot mobil are în componența sa mai multe blocuri funcționale enumerate mai jos:
blocul de alimentare;
blocul microcontroler și driver punte H;
bloc senzori optici IR;
bloc punte H și motoare c.c.;
interfața serială de programare.
4.3.1 Blocul de alimentare
Acesta este format dintr-un acumulator cu tensiunea de 12 V și o capacitate de 7,2 Ah, un întrerupător basculant ON/OFF de tipul TPS 101 AA1 având o sarcină admisibilă pe contact de 10A / 220V, o rezistență maximă pe contact de 50 mΩ și o durabilitate electrică de 20000 cicluri, o siguranță fuzibilă calibrată să întrerupă circuitul la depașirea pragului de 10A și un regulator de tensiune de tipul L7805CV reprezentate în figura 35.
Acumulatorul oferă o autonomie mare de funcționare a robotului mobil, fiind conectat cu polul negativ (-) la masa comună a etajelor electronice, iar polul pozitiv (+) este conectat la întrerupatorul basculant K1. Prin intermediul acestuia se conectează / deconectează tensiunea pozitivă (+) a blocurilor electronice și deci implicit se face comanda de pornire / oprire a robotului mobil.
Sursa de alimentare este concepută pentru a furniza la ieșire două bare principale de tensiune:
o bară de tensiune nestabilizată de 12V necesară alimentării etajelor de forță a robotului mobil;
o bară de tensiune stabilizată de 5V cu ajutorul regulatorului de tensiune de tipul L7805CV care oferă un curent maxim de 1000mA necesară alimentării microcontrolerul ATMega 16 și a modulului de senzori optici formată din 8 senzori IR cu ieșire de semnal digital de tipul QRT-1RC fabricați de firma Polulu (aceste două blocuri funcționale absorb un curent maxim de 500mA).
Capsula regulatorului de tensiune L7805CV este montată pe un dispozitiv metalic numit radiator din aluminiu cu 6 aripioare dispuse pe o lungime totală de 25mm care ajunge la o rezistență termică . de aproximativ 20/W. Prezența tensiunii este monitorizată optic cu ajutorul unui led de culoare roșie care este conectat cu anodul la bara de 12V și catodul prin intermediul unei rezistențe de limitare a curentului la masa montajului electronic (ledul absoarbe un curent maxim de 20 mA).
4.3.2 Blocul microcontroler și driver puntea H
Blocul microcontroler și driver puntea H este format din IC2 de tipul ATMega 16-16PU fabricat de firma ATMEL și de optocuploarele IC3, IC4 de tipul PC817 fabricate de firma Sharp, reprezentate în figura 36.
Microcontrolerul IC1este alimentat la pinul 10 (VCC) și pinul30 (AVCC) din bara de 5V cu tensiune pozitivă, iar la pinul 11 (GND) și pinul 31 (AGND) din bara de masă comuă cu tensiune negativă AVCC este pin de alimentare pentru Port-ul A și Convertorul A/D, care trebuie conectat la VCC chiar dacă ADC nu este folosit (daca ADC este folosit, ar trebui conectat la VCC printr-un filtru trece – jos),iar AGND este pinul de alimentare cu tensiune negativă pentru Port-ul A și Convertorul A/D.
Circuitul de reset format din microcontactul S1 care are patru pini și două contacte NO (normal deschis) acționate de un buton de 4 mm cu revenire și condensatorul de decuplare C2 este conectat la pinul 9 (RESET) al microcontrolerului. În momentul în care butonul microcontrolerului este apăsat complet vom avea un nivel scăzut la pinul 9, microcontoler mai mare ca durată decât o valoare prestabilită, care va genera o inițializare.
Oscilatorul extern al microcontrolerului este alcătuit dintr-un circuit amplificator inversor format din doi condensatori ceramici C13 și C14 care au o armătură legată la masă și câte una legată la pinul 12 (XTAL1) respectiv 13(XTAL2) și cristalul de cuarț XT care se află în interiorul unei carcase metalice cu doi pini pe care este înscrisă frecvența la care cristalul oscilează (16 MHz) montat în paralel cu pinii 12 și 13 al IC2. Funcția de oscilator în acest circuit este aceea de a oferi un semnal periodic de ceas stabil și precis care determină viteza de execuție a instrucțiunilor.
Prin alegerea valorilor condensatoarelor C13=15pFsi C14=15pF și a cristalului de cuarț XT = 16 MHz se determină frecvența de oscilație a semnalului de ceas a microcontrolerului (programele sau instrucțiunile program se execută la frecvența generată de circuitul oscilator, în cazul de față la frecvența de 16 MHz).
Din cele 32 de linii de intrare / ieșire pe 8 biți organizate pe 4 porturi (port A, port B, port C, port D) am utilizat portul A care cuprinde pinii de la 33 la 40, ca port de intrare. Fiecare pin din portul A are câte o rezistență trage-sus (pull-up) care poate fi activată sau dezactivată. La acest port am conectat ieșirile cu semnal digital a celor 8 senzori de tipul QRT-1RC fabricați de firma Polulu care au ca praguri de tensiune cuprinse între 0V care corespunde nivelului logic “0” și 5V care corespunde nivelului logic “1”. Datorită faptului că în cazul de față pinii sunt configurați ca intrare, atunci și rezistențele de trage-sus (pull-up) să fie activate, acestea conectându-se automat la tensiunea de alimentare a microcontrolerului (5 V în acest caz), deci intrările vor avea starea “1” logic.
Microcontrolerul ATMega 16 are patru pini (pinul 4 AIN1/OC0 de pe portul D, pinul 18 OC1B, pinul 19 OC1A și pinul 21 OC2, acestea din urma aparținând portului D), care pot fi configurați ca ieșire de semnal PWM (Pulse Width Modulation). Datorită faptului că aplicația de față necesită doua semnale PWM (având 2 motoare de acționare, deci câte un semnal PWM pentru comanda fiecărui circuit driver motor), am ales pinul 4 AIN1/OC0 și pinul 21 OC2.
Cu ajutorul semnalului PWM se controlează tensiunea de alimentare a celor două motoare (Motor A și Motor B) în domeniul 0 V (corespondent unui factor de umplere de 0% al semnalului PWM) 10,31 V (corespondent unui factor de umplere de 86% al semnalului PWM) și implicit a turației motoarelor, vitezei de deplasare a robotului mobil și nu în ultimul rând a direcției de deplasare a acestuia. Viteza de deplasare a robotului mobil a fost limitată din program la o valoare de 86% (ieșirea semnalului PWM fiind pe 8 biți rezulta că =256, deci avem posibilitatea de a stabili un număr de 256 de valori ale vitezei de deplasare a robotului mobil, în program stabilind valoare vitezei de deplasare ca fiind “220”, această valoare corespunde unui factor de umplere de 86% și implicit a unei viteze de deplasare de 86%).
Interfața dintre microcontroler IC3 și modulele punte H se face prin intermediul unor dispozitive specializate numite optocuplor IC2 și IC3 de tipul PC 817 C care au în structura sa câte o diodă fotoelectrică dispusă cu anodul la pinul 1 și catodul la pinul 2 cu funcția de a emite un semnal luminos cu frecvența circuitului de polarizare și un fototranzistor dispus cu emițătorul la pinul 3 și colectorul la pinul 4 care este saturat în prezența semnalului luminos în circuitul de bază și blocat în lipsa semnalului luminos în circuitul de bază.
Acest etaj electronic funcționiază astfel:
la apariția unui semnal electric cu nivelul logic “1” și factor de umplere variabil între valorile 1% și 86% provenit din generatorul intern de semnal al CI 1 PWM / A, respectiv pinul 4 AIN1/OC0 și PWM /B pinul 21 OC2 adică a unei tensiuni pozitive cu valoare maximă de 4,3V (factor de umplere maxim de 86%) și a unui curent maxim de 20 mA (fotodioda suportă un curent maxim =20 mA) limitat de rezisțentele R20, pentru IC3 și R21 pentru IC4 fiecare având valoarea de 220Ω inseriate pe circuitul de polarizare dioda fotoelectrica la pinul 1 (IC2,IC3), pinul 2 (IC2,IC3) fiind legat la masă, dioda fotoelectică este polarizată direct, aceasta emite un semnal luminos proporțional cu nivelul tensiunii și de curent care se va regăsi în baza fototranzistorului provocând trecerea acestuia în regim de saturație, =0 V, pinul 3 (IC2,IC3) fiind conectat la masă iar la pinul 4 (IC2,IC3) vom avea o diferență de potențial față de masa de 0 V
la apariția unui semnal electric cu nivelul logic “0” și factor de umplere variabil între valorile 1% și 86% provenit din generatorul intern de semnal PWM de la CI 1, pinii 4 AIN1/OC0 și 21 OC2 adică a unei tensiuni de 0 V, dioda fotoelectroca va fi blocată, nu va emite semnal luminos, fototranzistorul nu va primi semnal luminos în bază, acesta fiind blocat =10,9 V tensiune provenită din divizorul de tensiune format din rezistențele R22=10KΩ; R23= 1KΩ modul punte H circuit A corespondent optocuplorului IC2 și divizorul de tensiune format din rezistențele R26=10KΩ; R27=1KΩ modul punte H circuit B corespondent optocuplorului IC3 și în final pinul 3 (IC2,IC3) fiind conectat la masă, iar la pinul 4 (IC2,IC3) vom avea o diferență de potențial față de masă cu valoarea de 10,9 V.
4.3.3 Bloc senzori optici IR
Blocul de senzori optici IR este un bloc funcțional format din 8 module de senzori fotoelectrici în infraroșu de tipul QRT-1RC fabricate de firma Polulu și prezentate în figura 37.
Aceste module de senzori sunt amplasate pe o placă test în plan orizontal pe o lungime de 80 mm cu distanța dintre senzori de 3 mm cu fața spre calea de rulare și la o distanță față de aceasta de 6 mm (datele de catalog limitează distanța modul senzor – cale de rulare ca fiind de maxim 8 mm), situat în fața robotului mobil la o distanțp față de calea de rulare de 6 mm, distanța fiind ajustată cu ajutorul a doi suporți metalici de formă cilindrica având o grosime de 8 mm și o lungime de 45 mm filetați la ambele capete cu filet metric de 3mm și piulițe de relaj. Acești suporți sunt atașați la un capăt de o placă metalică aparținând șasiului robotului mobil .
Calea de rulare este concepută dintr-o bandă neagră având lățimea de 80 mm dispusă pe un fundal de culoare albă.
Senzorii optici sunt capabili să furnizeze la ieșire semnale digitale cu valoarea de 0V aparținând nivelului logic “0” atunci când sunt situați deasupra fondului alb (semnalul IR furnizat de TX IR este reflectat în totalitate de culoarea albă și reflectat către senzorului RX IR acesta lucrând în regim de saturație =0V).
Senzorii optici sunt capabili să furnizeze la ieșire semnale digitale cu valoarea de 5 V aparținând nivelului logic “1” atunci când aceștia sunt situați cu fața și în plan paralel cu banda de culoare neagră (semnalul IR furnizat de TX IR nu mai este reflectat către senzorul RX IR banda de culoare neagră absoarbe toată lumina emisă în IR, acesta din urmă fiind blocat =5V.
Bloc punte H și motoare c.c.
Blocul punte H este conceput din două punți H în engleză (full bridge) câte una pentru fiecare motor prezentate în figura 38.
Punțile H sunt identice având în structura sa aceleași componente electronice configurate după aceeași schemă electronică realizate în oglindă pe o placă test. Fiecare punte H este de fapt un convertor de C.C. – C.C.comandat cu semnal PWM formată din două brațe de punte A și B, fiecare braț fiind constituit din câte două tranzistoare MOS FET de putere legate în serie, fiecare tranzistor fiind dotat din fabrică cu câte o diodă de descărcare (supresoare) în antiparalel cu circuitul sursă – drenă.
Tranzistoarele T9, T11, T13, T15 de tipul FQP 27P06 (MOSFET P channel), complementare cu tranzistoarele T10, T12, T14, T16 de tipul FQP 30N06 (MOSFET N channel) sunt fabricate de firma Fairchild Semiconductor dedicate pentru aplicații cu motoare de curent continuu în regim de comutație, comutând curenți de 27 A la tensiuni de 60V.
Cele patru tranzistoare care formează o punte H sunt amlasate pe un dispozitiv metalic numit radiator de aluminiu cu 8 aripioare dispuse pe o lungime de 75 mm care ajunge la o rezistență termică . de aproximativ 5/W, tranzistoarele T9, T10, T13, T14 fiind izolate electric față de radiator cu ajutorul unor izolatori de silicon pentru capsula TO-220. La toți tranzistorii am amlasat între capsulă și raditorul de aluminiu câte o peliculă de pastă termoconductoare care mărește considerabil transferul termic.
Modul de funcționare a punții H este urmatorul:
Tranzistoarele T11, T12 si T15, T16 sunt polarizate în grilă cu ajutorul divizoarelor rezistive formate din grupul R24, R25 respectiv grupul R28, R29 cu o tensiune de 10,9V (=10,9 V), blocând tranzistoarele MOSFET canal P (T11, T15) și saturând tranzistoarele MOSFET canal N (T12, T16), motoarele A și B având la unul din cele două capete masa circuitului electronic.
În cazul în care microcontrolerul generează semnalele PWM /A și PWM /B cu nivel logic “0”, pe circuitul de grilă a tranzistoarelor T9, T10, T13, T14, datorită divizoarelor rezistive formate din grupul R22, R23 respectiv grupul R26, R27 vom regăsi o tensiune de 10,9 V raportată față de masa ( = + 10,9 V), blocând tranzistoarele MOSFET canal P (T6, T13) și saturând tranzistoarele MOSFET canal N (T10, T14), motoarele A și B având la polul opus tot masa circuitului electronic, fapt ce duce la concluzia că motoarele nu funcționează.
În cazul în care microcontrolerul genereazaă semnale PWM /A și PWM /B cu nivel logic “1” și un factor de umplere de 86%, pe circuitul de grilă a tranzistoarelor T9, T10, T13, T14 vom regăsi masa circuitului electronic ( = – 10,9 V) blocând tranzistoarele MOSFET canal N (T10, T14) și saturând tranzistoarele MOSFET canal P (T6, T13), motoarele A și B având la polul opus tensiunea pozitivă de 10,9 V, motoarele funcționează cu turația maximă.
În funcție de valoarea factorului de umplere a celor două semnale PWM /A și PWM /B (de la 1% până la 86 %) condiționate de poziția robotului mobil în timpul rulării (senzor IR pe banda de culoare albă sau senzori IR pe banda de culoare neagră) și de instrucțiunile de programare a microcontrolerului vom putea comanda cele două motoare de curent continuu cu o tensiune electrică generată de un acumulator (12 V /7,2 Ah) care poate varia în plaja (de la 1 V până la aproximativ 10,9 V) prin aceasta putându-se modifica viteza și direcția de deplasare a robotului mobil.
4.3.5 Interfața serială de programare
Interfața serială este cel mai facil mod de a comunica cu microcontrolerul pentru citirea de date și trimiterea de comenzi și este ilustrată în figura 39.
Liniile de date si ale portului USB (Universal Serial Buss) se conectează la USB prin rezistențele de limitare a curentului R19 si R20 care au valoarea de 100Ω. Limitarea tensiunii liniilor de date se face cu ajutorul celor doua diode zener 3V3, iar semnalizarea prezenței dispozitivului pe magistrală se face cu ajutorul rezistenței R20.
Linia (pin 3 USB) se conectează la pinul16 (INT0) port D microcontroler , linia (pin 2 USB) se conectează la pinul 17 (INT1) port D microcontroler, prin intermediul cărora se face comunicarea cu microcontrolerul, în vederea citirii sau scrierii programului de execuție, pinul 4 USB fiind conectat la masă iar pinul 5 USB fiind conectat la bara de +5Vcc a sursei de alimentare.
Pentru programarea clasică a controlerului se utilizează un program dedicat sau prin intermediul interfaței ICSP (In Circuit Serial Programing), de pe placa de bază, acesta având posibilitatea de comunicare cu toate microcontroalerele din familia AVR de la Atmega conectat la pinii: MOSI (Master Output, Slave Input), MISO (Master Input, Slave Output), SCK (Serial Clock) și RESET.
O variantă foarte comodă și ieftină este aceea de a scrie un mic program (bootloader) care se plasează într-o zonă specială a memoriei microcontrolerului, la sfârșitul flash-ului, permițând datelor de cod să fie transmise printr-un cablu serial și scrise în microcontroler. Acest bootloader trebuie scris în memoria flash o singură dată, prin intermediul unui programator convențional, acesta având o dimensiune mică ,cea mai mare parte a memorie flash ramâne disponibilă pentru aplicație.
Bootloaderul este practic un sistem minimal de operare cu rolul de încarcare
Implementarea software
Pentru scrierea programului, compilarea programului și transferul acestuia din cod hexazecimal în memoria ROM (memoria de program) a microcontrolerului am utilizat placa de dezvoltare STK-500 și mediul de dezvoltare pentu programare Atmel Studio 5.1.
După ce am instalat în calculatorul personal AVR Studio 5.1 și m-am familiarizat și documentat cu ajutorul manualului de utilizare am urmat urmatorii pași:
pasul 1 – se deschide AVR Studio 5.1 și se dă click pe “New Project” (figura 40);
pasul 2 – se denumește proiectul și se alege un director în care se va salva proiectul și se dă click pe “OK” (figura 41);
pasul 3 – în meniul “Device Selection” selectăm “ATmega16” și se dă click pe “OK” (figura 42);
pasul 4 – se scrie programul de baza cu extensia “c” (figura 43);
pasul 5 – în meniul “Build” alegem opțiunea “Build Solution” (figura 44);
pasul 6 – se conectează placa de dezvoltare STK500 prin intermediul unui cablu serial la COM 6 calculator și se alimentează placa la o sursa de 12 Vcc (figura 45);
pasul 7 – în meniu selectăm “Tools / Add STK 500” (figura 46);
pasul 8 – din meniul “Bord Setings” se stabilesc valorile de tensiune și de frecvență ale microcontrolerului ATmega 16 (figura 47);
pasul 9 – din meniul “Memories” se dă click pe “Open” și se deschide codul hexazecimal, codul mașină (figura 48);
pasul 10 – din meniul “Memories”se dă click pe “Program” (figura 49).
Programul implementat în memoria microcontrolerului ATmega 16 este urmatorul:
/*
* AVRGCC8.c
*
* Created: 23.06.2015 19:51:16
* Author: Grosu Nicolae
*/
#include <avr\io.h>
#include <avr\interrupt.h>
#define F_CPU 16000000
#include <util/delay.h>
#include <stdlib.h>
#define LEFT_MOTOR_SPEED OCR2
#define RIGHT_MOTOR_SPEED OCR0
#define MAX_SPEED 220
#define DIR_FW_FW 0x12340000
#define DIR_FW_BW 0x12341000
#define DIR_BW_FW 0x12342000
#define DIR_BW_BW 0x12343000
#define GO_LEFT 0x12344000
#define GO_RIGHT 0x12345000
#define DEFAULT_PANIC_ACTION GO_RIGHT
void PWM_init()
{
/* Setare pin prestabilit de output al PWM_1 ca output */
DDRB |= (1 << PB3);
/* Fast PWM */
TCCR0=0x6B;
OCR0=0;
/* Setare pin prestabilit de output al PWM_2 ca output */
DDRD |= (1 << PD7);
/* Fast PWM */
TCCR2=0x6B;
OCR2=0;
}
void set_speeds(int left_speed, int right_speed)
{
LEFT_MOTOR_SPEED = left_speed;
RIGHT_MOTOR_SPEED = right_speed;
}
void set_directions(int dir)
{
switch (dir) {
case DIR_FW_FW:
PORTC = (1 << PC7) | (1 << PC5);
PORTC &= ~((1 << PC6) | (1 << PC4));
break;
case DIR_FW_BW:
break;
case DIR_BW_FW:
break;
case DIR_BW_BW:
break;
}
}
int main()
{
//TIMSK = 0;
int panic_action = DEFAULT_PANIC_ACTION;
PWM_init();
sei();
/* Activarea celor 8 rezistente de pull-up */
PORTA = 0xFF;
/* Toti cei 8 pini (PINA7->PINA0) sunt pentru citirea valorilor senzorilor */
DDRA = 0x00;
DDRC |= (1 << PC7) | (1 << PC6) | (1 << PC5) | (1 << PC4);
set_speeds(MAX_SPEED, 0);
set_directions(DIR_FW_FW);
while (1) {
switch (PINA) {
case 0b10000000:
set_speeds(0, MAX_SPEED);
panic_action = GO_LEFT;
break;
case 0b11000000:
set_speeds(0, MAX_SPEED);
panic_action = GO_LEFT;
break;
case 0b01000000:
set_speeds(MAX_SPEED, MAX_SPEED * 0.4);
panic_action = GO_LEFT;
break;
case 0b11100000:
set_speeds(MAX_SPEED, MAX_SPEED * 0.4);
panic_action = GO_LEFT;
break;
case 0b01100000:
set_speeds(MAX_SPEED, MAX_SPEED * 0.5);
panic_action = GO_LEFT;
break;
case 0b00100000:
set_speeds(MAX_SPEED, MAX_SPEED * 0.7);
panic_action = GO_LEFT;
break;
case 0b01110000:
set_speeds(MAX_SPEED, MAX_SPEED * 0.7);
panic_action = GO_LEFT;
break;
case 0b00110000:
set_speeds(MAX_SPEED, MAX_SPEED * 0.8);
panic_action = GO_LEFT;
break;
case 0b00010000:
set_speeds(MAX_SPEED, MAX_SPEED * 0.9);
panic_action = GO_LEFT;
break;
case 0b00111000:
set_speeds(MAX_SPEED, MAX_SPEED * 0.9);
panic_action = GO_LEFT;
break;
/* STRAIGHT ON LINE */
case 0b00011000:
set_speeds(MAX_SPEED, MAX_SPEED);
break;
case 0b00001000:
set_speeds(MAX_SPEED * 0.9, MAX_SPEED);
panic_action = GO_RIGHT;
break;
case 0b00011100:
set_speeds(MAX_SPEED * 0.9, MAX_SPEED);
panic_action = GO_RIGHT;
break;
case 0b00001100:
set_speeds(MAX_SPEED * 0.8, MAX_SPEED);
panic_action = GO_RIGHT;
break;
case 0b00000100:
set_speeds(MAX_SPEED * 0.7, MAX_SPEED);
panic_action = GO_RIGHT;
break;
case 0b00001110:
set_speeds(MAX_SPEED * 0.7, MAX_SPEED);
panic_action = GO_RIGHT;
break;
case 0b00000110:
set_speeds(MAX_SPEED * 0.5, MAX_SPEED);
panic_action = GO_RIGHT;
break;
case 0b00000010:
set_speeds(MAX_SPEED * 0.4, MAX_SPEED);
panic_action = GO_RIGHT;
break;
case 0b00000111:
set_speeds(MAX_SPEED * 0.4, MAX_SPEED);
panic_action = GO_LEFT;
break;
case 0b00000011:
set_speeds(MAX_SPEED, 0);
panic_action = GO_RIGHT;
break;
case 0b00000001:
set_speeds(MAX_SPEED, 0);
panic_action = GO_RIGHT;
break;
default:
if (panic_action == GO_LEFT) {
set_speeds(0, MAX_SPEED);
} else if (panic_action == GO_RIGHT) {
set_speeds(MAX_SPEED, 0);
}
break;
}
_delay_ms(10);
}
return 0;
}
V. CONCLUZII
Acest proiect considerat de multe persoane la prima vedere simlu, este după părerea mea destul de complex, acesta cuprinzând blocuri funcționale care aparțin din marea majoritate a materiilor de specialitate studiate în decursul celor patru ani de facultate, necesitând studierea îndeaproape a celor trei ramuri principale din care este alcătuită mecatronica și anume:
Mecanica;
Electronica;
Informatica.
În final am reușit să duc la bun sfârșit realizarea proiecului atât din punct de vedere practic cât și teoretic.
Realizarea practică a robotului mobil s-a desfașurat în mai multe etape atât la partea mecanică cât și la partea electronică și de programare, făcându-se pas cu pas pe blocuri funcționalale. Fiecare bloc funcțional a fost verificat si testat individual necesitând foarte mult timp și o bună dotare din punct de vedere tehnic cum ar fi:
aparat de masură și control de precizie pentru verificarea continuității circuitului și a diferitelor valori ale tensiunii electrice și a curentului electric, generator de semnal PWM pentru comanda circuitelor prefinale și finale ale motoarelor de curent continuu;
osciloscop digital pentru vizualizarea, măsurarea și calibrarea cât mai precisă a semnalului dreptunghiular cu factor de umplere variabil provenit de la generatorul de semnal PWM;
sursa de lipit termostatată cu ajutorul careia se pot efectua operații de lipire a componentelor electronice cu o precizie foarte mare, fără a distruge componentele din punct de vedere termic;
sursa stabilizată de tensiune și limitare de curent, care îți ofera posibilitatea alimentarii etajelor electronice fără a depași valorile limită de tensiune și de curent;
scule mecanice, bormasină electrică cu diferite burghie, șubler, cât și foarte multe cataloage și documentații tehnice de la bibliotecă sau de pe internet;
iar la final am efectuat interconectarea blocurilor functionale, implementarea softwer și nu in ultimul rând verificarea și testarea.finală a echipamentului.
După câteva teste efectuate am fost nevoit să reprogramez microcontolerul de mai multe ori necesitând scoaterea acestuia din soclul placii de bază și introducerea în placa de dezvoltare care fusese conectată la calculator prin intermediul unui cablu serial și alimentată de la o sursă externă de 12Vcc, riscând deteriorarea atât a pinilor cât și a soclului microcontrolerului, (recomand efecuarea programarii sau a reprogramarii direct de pe placa de bază prin instalarea unui bootloader în memoria flash a microcontrolerului, câștigând astfel foarte mult timp), dar la final am obținut un rezultat destul de bun, fiind la prima experiența de acest gen.
Cel mai mare adversar în realizarea acestui proiect a fost timpul, având la dispoziție aproximativ o lună și jumătate de la terminarea sesiunii, din care o mare parte a fost ocupată cu probleme personale (servici, e.t.c), de aceea recomand din propria mea experiență ca la un proiect asemănător trebuie să te apuci serios chiar din primul semestru al anului patru pentru a lucra în voie și degajat, eliminând astfel o mare parte din stresul și emoția care apare inevitabil.
Acest echipament este capabil să răspundă mult mai multor cerințe, (partea hardware fiind dotată cu componente de ultimă generație cu o stabilitate foarte bună în funcționare) fiind necesar doar o îmbunătățire a programului implementat în memoria microcontrolerului.
La finalul acestui proiect am rămas cu satisfacția ca pe lângă realizarea practică și teoretică, am însușit foarte multe cunoștințe teoretice și practice care cu siguranță îmi vor prinde bine pe viitor în plan profesional.
BIBLIOGRAFIE
[1] Florea R. – Organe de mașini, Editura Tehnică, București, pp. 772-778, 2007.
[2] Ghenadi A. – Sisteme mecanice pentru mecatronică, Editura Alma Mater, Bacău, 2007.
[3] Livinți P. – Micromașini electrice și acționarea lor, Editura Alma Mater, Bacău, pp.21-31, 2007
[4] Livinți P. – Sisteme de conducere în robotică: note de curs și îndrumar de laborator, Editura Alma Mater, Bacău, 2007
[5] Pancu C. – Echipamente cu logică programabilă: îndrumar de laborator, Editura Politehnium Iași, pp. 47-53, 2013.
[6] Paizi Ghe. – Organe de mașini și mecanisme, Editura Didactică și Pedagogică, București, pp. 274, 348, 1977.
[7] Rotar D. – Electronică digitală: note de curs și îndrumar de laborator, Editura Alma Mater, Bacău, 2007.
[8] Stan Ghe. – Proiectarea sistemelor mecatronice: note de curs, Editura Alma Mater, Bacău, pp. 38,39.
[9] Stan Ghe. – Roboți industriali, Editura Didactică și Pedagogică,București, pp. 254, 257, 2004.
[10] Microcontroler ATmega 16 datascheet, [Online], Adresa: http://www.atmel.com/images/doc2466.pdf, iunie 2015.
[11] Optocuplor PC 817C datascheet, [Online], Adresa: http://pdf.datasheetcatalog.com/datasheet/Sharp/mXruvuu.pdf, iunie 2015
[12] Tranzistor FQP27P06 datascheet, [Online], Adresa:
https://www.fairchildsemi.com/datasheets/FQ/FQP27P06.pdf, iunie 2015
[13] Tranzistor FQP30P06 datascheet, [Online], Adresa: https://www.fairchildsemi.com/datasheets/FQ/FQP30N06.pdf, iunie 2015
[14] Regulator de tensiune L7805CV datascheet, [Online], Adresa: http://www.st.com/web/en/resource/technical/document/datasheet/CD00000444.pdf, iunie 2015
[15] I. Gavriluț, T. Barabás, A. Gacsádi – Bazele Roboticii, îndrumător de laborator, Editura Universității din Oradea, 2006, pag. 5 – 7.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sistem de Comanda cu Microcontroler a Unui Robot Mobil (ID: 163492)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
