Sunteți pe pagina 1din 9

STRUCTURI ROBOTICE COMANDATE CU

MICROCONTROLER PIC16F84 (16C621)

Ing. IONEL ZAHARIA – INSPECTORATUL DE PROTECTIE CIVILA


JUDETEAN GORJ
S.l. Dr.Ing. NICU BÎZDOACA – UNIVERSITATEA DIN CRAIOVA
Conf. Dr.Ing. ILIE DIACONU – UNIVERSITATEA DIN CRAIOVA
Conf. Dr.Ing. VIOREL STOIAN – UNIVERSITATEA DIN CRAIOVA

Prezenta lucrare îsi propune explorarea solutiilor constructive si de control a


structurilor robotice ce se preteaza în cadrul constructiei unor roboti telecomandati
ce pot fi folositi în cazul interventiei în zone periculoase pentru operatorul uman.
În cadrul acestei cercetari au fost verificate câteva variante constructive de structuri
robot cu microcontroller, fiind aleasa cea mai convenabila sub raport pret/siguranta
în functionare/simplitate constructiva.
Explorarea structurilor clasice de controllere destinate controlului robotilor
industriali se cuvine a fi facuta pe baza unor precizari care sa stabileasca clar locul
acestei probleme - problema controlului structurilor robotice - în cadrul larg al
abordarii sistemice a structurilor robotice.
Definirea task-urilor pe care structura proiectata trebuie sa le îndeplineasca
creeaza numai cadrul abordarii problematicii controlului. Concentrarea efortului
proiectantului asupra realizarii dezideratelor referitoare la modul de deservire a
unei sarcini de lucru din partea robotului va trebui sa realizeze o balanta între
utilizarea unui model cât mai exact al structurii robotice, care sa înglobeze
majoritatea fenomenelor fizico-chimice ce au loc în cadrul sistemului robot, alaturi
de viteza de decizie si prelucrare a datelor obtinute în urma interactiunii robotului
cu mediul
Sintetizând afirmatiile anterioare problema controlului consta în
determinarea evolutiei temporale a end-effector-ului astfel încât acesta sa execute
miscarea sau ansamblul miscarilor comandate în cadrul task-ului.
Pe de alta parte structura mecanica, la rândul sau, impune o anumita
influenta asupra structurilor de control alese, fara a mai specifica influenta
complexa pe care o are alegerea tipului de miscare a robotului între sursa si tinta.
Aceste elemente impun un balans între structura hard si structura soft
(hardware/software trade-off), care sa corespunda cel mai bine cerintelor
beneficiarului.
Un alt aspect care influenteaza în mare masura tipul arhitecturii de control
alese este tipul actionarii. Astfel un motor de curent continuu considerat cu
mecanism reductor poate fi considerat ca un element de actionare linear, din punct
de vedere dinamic, cu constante fizic determinabile. Dar apar problemele datorate
alunecarii, frecarii si compliantei datorate sistemului de angrenaje care realizeaza
reductorul. Daca se apeleaza la o structura de actionare cu motor de curent
continuu, fara reductor, aceste probleme sunt eliminate, aparând în schimb
probleme datorate puternicei neliniaritati structurale a actuatorului.
Microcontrolerul PIC16F84 poate fi inclus perfect în aplicatii de comanda
a robotilor mobili, industria automobilelor, controlul motoarelor, senzori de
consum redus, chei electronice, controlul frecventei receptoarelor e.t.c.
Acesta este un tip de procesor de înalta performanta, CMOS, full static, pe 8
biti .Toate microcontrolerele din aceasta serie (16Fx) sunt construite pe o
arhitectura RISC avansata si prezinta facilitati avantajoase ale hardware-ului, stiva
de 8 nivele si multiple surse interne si externe de întrerupere . Magistrala separata
de date si de instructiuni a arhitecturii Harvard permite conlucrarea cuvântului
instructiune de 14 biti cu magistrala de date de 8 biti.
Microcontrolerul PIC16F84 realizeaza în mod tipic o compresie a codului de
2:1 si astfel o sporire a viezei de pâna la 2:1 (la 10MHz) fata de alte
microcontrolere de 8 biti din aceasta clasa . PIC16F84 are 68 de octeti de RAM, 64
de octeti de memorie EPROM de date si 13 pini I/O . Este disponibil si un
numarator/temporizator. Familia PIC16F84 aduce avantaje speciale prin reducerea
numarului componentelor externe si reducerea consumului de energie. Exista patru
optiuni ale oscilatorului, dintre care cel RC realizat cu un singur pin, ofera solutia
cea mai ieftina . Cel LP (low power) ofera consumul cel mai mic, XT (cristale cu
taieturXT) ofera posibilitatea lucrului cu cristal de cuart standard, iar HS (hig
speed) cu cristale de mare frecventa. Modul SLEEP (power down) ofera
economisirea de energie. Utilizatorul poate trezi chip-ul din starea SLEEP prin
câteva tipuri de întreruperi externe sau interne, precum si prin reset.
Organizarea memoriei
Exista doua blocuri de memorie în PIC16F84 respectiv memoria de program
si memoria de date. Memoria de date poate fi divizata la rândul ei în RAM
(registre) de uz general si în registre cu functiuni speciale (SFR). Memoria de date
contine pe lânga cele prezentate mai sus si memoria EPROM de date . Aceasta
memorie nu este accesibila în mod direct ci doar prin adresare indirecta cu ajutorul
unui pointer care indica adresa din memoria de date EPROM la care se va opera o
citire sau o scriere. Cei 64 de octeti ai acestei memorii au adresele 0Fh…3Fh.
Organizarea memoriei de program . PIC16F84 are un numarator de adrese
pe 13 biti capabil sa adreseze un spatiu de 8K x 16 biti memorie de program .
pentru PIC16F84A doar primii 1K x 14 biti sunt implementati fizic conform
figurii de mai jos.
Organizarea memoriei de date. Aceasta este împartita în doua arii. Prima
este aria registrelor cu functiuni speciale (SFR) iar cea de-a doua este aria
registrelor de uz general (GPR). SFR-urile controleaza operatiile
microcontrolerului. Unele portiuni ale memoriei de date se situeaza în bank-uri
separate, aceasta separare fiind valabila atât pentru SFR cât si pentru GPR. Aria
GPR este separata în bank-uri pentru a permite un acces mai bun la cei 116 octeti
ai sai. Aria din SFR separata în bank-uri se restrânge la registrele care controleaza
portiunile periferice. Selectia bank-urilor necesita utilizarea unor biti ai controlului
selectiei de bank-uri . Acesti biti de control sunt situati în registrul STATUS.
Întreaga memorie de date poate fi accesata în mod direct utilizând adresele
absolute ale fiecarui registru sau indirect prin File Select Register (SFR).
Adresarea directa utilizeaza valoarea actuala a bitilor RP1 si RP0 care gestioneaza
selectia bank-urilor de memorie . Memoria RAM de date este împartita în doua : o
parte ce contine registrele cu functiuni speciale (SFR) si alta care contine registrele
de uz general (GPR). Bankul 0 se selecteaza prin stergerea bitului RP0 (STATUS
<5>). Setând bitul RP0 "1" se selecteaza bankul 1. Fiecare bank se extinde pâna la
adresa 7Fh (128 biti). Primele 12 locatii ale fiecarui bank sunt rezervate pentru
registrele cu functiuni speciale (SFR). Restul sunt registre de uz general (GPR),
implementate ca RAM static.
Tipuri de oscilator folosite. PIC16F84 poate opera cu patru tipuri de
oscilator: LP-Low Power Crystal; XT-Crystal /Resonator; HS-High Speed
Crystal/Resonator; RC-Resistor/Capacitor.
În modurile LP, XT, si HS cristalul sau rezonatorul ceramic este conectat la pinii
OSC1/CLKOUT pentru a stabili oscilatia(figura de mai jos).

Oscilatorul RC- Pentru aplicatia prezentata sa folosit acest tip de oscilator


nepretentios din punct de vedere al timpului acesta oferind si o reducere de cost .
Frecventa oscilatorului este functie de tensiunea de alimentare, valoarea Rext si Cext
cât si de temperatura. Mai intervine si capacitatea diferitelor tipuri de capsula care
poate fi semnificativa mai ales la valori mici ale Cext . De asemenea sa trebuie sa se
tina cont si de toleranta componentelor folosite . În figura urmatoare este prezentat
modul de conectare si valorile limita ale elementelor RC folosite.
Programarea microcontrolerului PIC16F84
Microcontrolerul PIC16F84 este introdus în modul de programare prin
fortarea în zero logic a pinilor RB7 (pinul13) si RB6 (pinul12) în timp ce /MCLR
(pinul 4)este mai întâi trecut în zero pentru a reseta dispozitivul si apoi adus la
tensiunea de 12-14V pentru programare/verificare. Dupa intrarea în modul de
programare la pinul RB7 se introduce serial codul care urmeaza a fi "ars" în
microcontroler . O tranzitie din unu logic în zero logic la pinul RB6, intrarea de
ceas, marcheaza preluarea bitului corespunzator nivelului logic aplicat la pinul
RB7. Formatul transmisiei seriale este destul de simplu : mai întâi un cuvânt de
comanda de 6 biti si apoi cuvântul de "date" pe 16 biti care contine un bit de zero
de start, 14 biti cuvântul de cod ce urmeaza a fi înscris în memoria de program a
PIC-ului si un bit de zero de stop. Comanda incrementarii adresei locatiei de
programat se realizeaza cu ajutorul cuvântului de comanda de 6 biti .
Sa remarcat existenta posibilitatii stergerii rapide a întregii memorii de program
sau de date (bulk erase). Modul de citire din memoria microcontrolerului este
similar cu programarea cu singura exceptie ca în acest caz pinul RB7 devine pin de
iesire si furnizeaza cei 16 biti ai cuvântului de date dupa ce receptioneaza cei 16
biti ai cuvântului /MCLR este adus la 0 logic pentru a reseta microcontrolerul si
apoi este deconectat din circuit.

Comanda radio
În cadrul acestui studiu a fost realizata practic telecomanda la distanta a unui
robot mobil utilizând ca suport de comunicatie între calculator si
microcontroler/robot linia radio.
Este cunoscut faptul ca prima întrebare pe care o punem în legatura cu un
aparat emisie-receptie se refera la sensibilitatea acestuia caracteristica ce
garanteaza posibilitatea receptionarii unor semnale cu puteri modeste. Fara a
enumera calitatile electrice pe care trebuie sa le îndeplineasca un receptor este
suficient sa amintim ca receptorul realizat este construit cu elemente moderne
(circuitul MC 3362P –Motorola) prezenta acestora atestând calitatile superioare.
Acest circuit este un receptor complet pentru modulatia în frecventa (FM)
banda îngusta, cu dubla schimbare de frecventa, recomandat în radiocomunicatiile
digitale, foarte potrivit pentru comanda la distanta a robotilor mobili. În aplicatia
tipica, primul mixer amplifica semnalul si converteste intrarea de radiofrecventa la
10,7 MHz. Acest semnal RF este filtrat extern si trimis la al doilea mixer care
amplifica mai departe semnalul si îl converteste la 455KHz . Dupa filtrarea externa
trece banda semnalul de RF este transmis la limitator si la circuitul de detectie.
Semnalul este recuperat folosind detectorul conventional de cuadratura . Dubla
filtrare RF se realizeaza intern, nivelul semnalului de intrare este monitorizat de un
circuit de conducere care detecteaza marimea de limitare din amplificatorul de
limitare. Tensiunea de pe pinul circuitului de conducere determina starea
circuitului de detectie a iesirii care este pe nivelul de jos.

Primul oscilator local poate fi pus în functiune folosind LC ca un VCO


folosind sintetizatorul PLL sau provenit dintr-un oscilator extern de cristal. A fost
pus în functiune la 190MHz . Iesirea de tranzit este dispensabila la pinul 20. Al
doilea oscilator local este pus în functiune în mod normal la 10,245MHz.
Câstigul mixerului este stabil în raport cu respectarea tensiunii disponibile.
Folosind primul mixer este recomandat un filtru ceramic de 10,7 MHz . Semnalul
filtrat de 10,7MHz este apoi transmis în pinul de intrare al celui de-al doilea
mixer, celalalt pin de intrare fiind conectat la Vcc (6V c.c.) este tratat ca un punct
comun pentru semnalele emitatorului. RF de 455 KHz este în mod normal filtrata
folosind un filtru ceramic trece-banda apoi transmis pinului de limitare a intrarii.
Limitatorul are o sensibilitate de 10µV – pentru 3dB limita. Iesirea limitatorului
este conectata intern la detectorul de cuadratura încluzând un capacitor de
cuadratura. Un circuit LC paralel este necesar extern pentru pinul 12 spre Vcc . Un
circuit de formare de date FSK este disponibil si poate fi cuplat la iesirea audio
(pinul 13). Acest circuit este un comparator si este creat sa detecteze modulatia
FSK. Rata de transmisie a datelor este limitata la 1200 baud pentru a asigura
integritatea acestora si pentru a avita dispersia lor în canalul alaturat. Ciclul
histerezis este disponibil prin conectarea unzui rezistor de rezistenta mare de la
pinul 15 la pinul 14. Circuitul de detectare detecteaza nivelul semnalului
semnalului de intrare prin monitorizarea stadiilor amplificatorului de limitare.
Pentru a face aceasta se ia un nivel de trecere RF în dBm, se citeste curentul
corespunzator si se alege un rezistor potrivit.
Vdc
R10 ≅ 0,64
10
Histerezisul este disponibil prin conectarea unui rezistor de valoare mare RH între
pinii 10 si 11. Formula este:
VCC
Hysteresis = dB
RH ⋅ 10 − 7

Transmisia semnalelor de comanda în linia radio.


Sub influenta semnalului modulator frecventa instantanee a impulsurilor

variaza conform relatiei : ω i = ω 0 + k m (t ), T=
ωi
si unde ω 0 este pulsatia semnalului purtator în absenta semnalului modulator.
Modulatorul contine : un registru de date cu încarcare paralela 495; un
comparator de egalitate CE; un numarator binar 493; un oscilator ce genereaza
frecventa de tact f0.

Semnalul modulator este convertit sub forma unui cuvânt binar pe n-biti
obtinându-se Ni . Aceste date (Ni) sunt memorate în registrul cu încarcare paralela
495 si se aplica la una din intrarile comparatorului CE. Pe de alta parte numaratorul
binar 493 evolueaza liber sub influenta semnalului de tact fo în sens crescator.
Iesirile sale se aplica pe cealalta intrare a comparatorului CE. În momentul în care
continutul numaratorului (No) este egal cu continutul registrului (Ni), CE
furnizeaza un impuls ce reprezinta semnalul modulat, impuls ce actioneaza în
acelasi timp si pe intrarea de Reset a numaratorului, stergându-l si pregatindu-l
pentru un nou ciclu.
Perioada T a impulsurilor modulate este variabila si valoarea ei se determina
N
din relatia: f 0T = N i ⇒ T = i
f0
Demodulatorul are schema din figura figura de mai jos

Semnalul modulat SMII se aplica pe intrarea de tact a unui CBB de tip JK


Master-Slave ce functioneaza în regim T. La iesire se obtine semnalul Q0 a carui
durata este egala cu T . Pe aceasta durata poarta NAND este predeschisa si
numaratorul 493 evolueaza în sens crescator sub influenta semnalului de tact cu
frecventa f0 (aceeasi cu cea de la emitator). La sfârsitul perioadei T numaratorul
este blocat iar frontul descrescator al lui Q0 declanseaza primul monostabil 4121 ce
genereaza un impuls Q2. Acesta se aplica pe intrarea de Load a registrului 495 si
transfera continutul numaratorului în registru.
Frontul descrescator al lui Q2 declanseaza cel de-al doilea monostabil care, la
rândul sau, genereaza impulsul Q3 ce sterge numaratorul 493, pregatindu-l pentru
un nou ciclu. Numarul continut în registru este:
Ni
N 0 = Tf 0 = f0 = Ni
f0

Emitator radio Receptor radio


Robot telecomandat Servocontroller

Servocontroller-ul este construit pe baza unui microcontroller PIC 16F84


(16C621), care este programat sa comande servomotoarele ín functie de semnalele
primite din linia radio.

Bibliografie
[1]. Spong, M.W., Modeling and control of elastic joint robots, J. Dyn. Syst. Meas. Control, vol
109, pag.310-319,dec. 1987Luh, J.Z.S.,M.W.Walker, R.P.C. Paul, Resolved-acceleration
control of mechanical manipulators, IEEE Trans. Autom. Control, vol. AC-25,nr.3,pag.195-
200,iun.1980
[2]. Shin, K. G., N.D. McKaz, Minimum-time control of robotic manipulators with geometric
path constraints, IEEE Trans. Autom. Control, vol. AC-30,nr.6,pag.531-541,iun.1985
[3]. Kim, B.K., K.G. Shin, Suboptimal control of industrial manipulators with a weighted
minimum time-fuel criterion, IEEE Trans. Autom. Control, vol. AC-30,nr.1,pag.1-
10,ian.1985
[4]. E. Iancu , Transmisia datelor, Editura Reduta , Craiova 1998
[5]. N. Bizdoaca – Arhitecturi de conducere neconventionale destinate robotilor industriali -
referat de doctorat