Carte Cap 5

download Carte Cap 5

of 53

Transcript of Carte Cap 5

ROBOTI RECONFIGURABILI

CAPITOLUL 5.nzestrarea cu senzori a roboilor reconfigurabili5.1 Rolul i tipul senzorilor din dotarea roboilor reconfigurabili Senzorilor le este destinat un rol important n funcionarea roboilor auto-reconfigurabili, att pentru determinarea strilor curente ale unui modul (senzori interni), ct i pentru investigarea mediului nconjurtor (senzori externi). Rolul senzorilor interni const, n primul rnd, n determinarea poziiilor/deplasrilor din cuplele cinematice, dar i a acceleraiilor, care asigur determinarea orientrii modulelor n raport cu gravitaia. Senzorii externi au cteva roluri foarte importante: Determinarea poziiei i orientrii feelor de cuplare ale modulelor n vederea andocrii (docking); Selectarea modului adecvat de deplasare; Declanarea unui anumit comportament ca rspuns la diferite condiii ale terenului; Identificarea obstacolelor din teren, n vederea stabilirii strategiilor adecvate de evitare i ocolire a acestora. n pofida acestor funcii importante, o analiz detaliat a gradului de dotare cu senzori a principalelor tipuri de roboi auto-reconfigurabili [Stoy], a relevat faptul c nivelul de nzestrare este relativ redus, cum rezult din tabelul 5.1.Tabel 5.1 Gradul de nzestrare cu senzori a roboilor reconfigurabili

Robot USC/ISI, CONRO Stanford, PolyPod PARC, PolyBot JHU, Metamorphic Darmouth,

CPU on-board? Senzori pentru: Da Realizarea cuplrii Da For/moment Poziia n cuple Da Poziia n cuple Realizarea cuplrii Da n/a Da Poziia n cuple71

ROBOTI RECONFIGURABILI

Crystalline MEL, fractum MEL, Micro-unit RIKEN, vertical PARC, Telecube MEL, 3D-Unit MEL, MTRAN Darmouth, Molecule CMU, I-Cubes

Da Da Nu N/a Nu Da Da Da

Nu exist Nu exist Nu exist Realizarea cuplrii Poziia n cuple Nu exist Nu sunt raportai Poziia n cuple

Autorul [STO04] acord tuturor tipurilor de roboi enumerai n tabelul 1 calificativul minim din punct de vedere al dotrii cu sisteme senzoriale. ntrebarea logic este: de ce un grad att de redus de sisteme senzoriale, n condiiile n care au roluri att de importante? Rspunsurile ar putea fi cel puin dou: Modulele roboilor auto-reconfigurabili au dimensiuni de ordinul milimetrilor sau centrimetrilor, iar n volumul lor trebuie s se integreze componentele mecanice, sursa de alimentare cu energie, placa cu procesorul de comand, actuatorii, senzorii, modulele de comunicaie etc. Restriciile de spaiu impun renunarea la un numr mai mare de sisteme senzoriale. Pentru diferitele tipuri de senzori trebuie realizat o compatibilitate i o integrare din punct de vedere hardware i software cu procesorul de comand, lucru de multe ori dificil, datorit diversitii mari a senzorilor. De asemenea, nzestrarea unui modul cu anumii senzori, mai compleci, mrete mult timpul de calcul i depete, n multe cazuri, capacitatea de rspuns, n timp real, a procesorului. n contextul unor consideraii preliminare privind nzestrarea cu senzori a modulelor roboilor reconfigurabili, sunt interesante alte cteva constatri [KOT03]: n prezent exist o tendin de deplasare a soluiilor spre un anumit grad de eterogenitate a modulelor, ntruct este ineficient dotarea cu senzori mai72

ROBOTI RECONFIGURABILI

compleci a tuturor modulelor. Astfel modulele pot fi omogene din punct de vedere al acionrilor, dar eterogene din punct de vedere al sistemelor senzoriale. De asemenea, este dificil s se dezvolte algoritmi distribuii pentru toate operaiile planificate pentru un robot autonom i, n consecin, unul sau mai multe module trebuie s realizeze o planificare centralizat. O soluie poate consta n proiectarea i realizarea unui modul coordonator, care s asigure o planificare global a ntregului sistem, n baza evalurii informaiilor de la senzori, n timp ce la nivelul celorlalte module algoritmi distribuii, pentru un nivel de planificare inferior, s evalueze informaiile locale (de al senzorii interni ai modulului i cei externi mai puin compleci). Dimensiunile modulelor unor astfel de tipuri de roboi impun restricii severe nzestrrii mai substaniale cu senzori. Din punct de vedere al dimensiunilor putem distinge: a. Module macro cu dimensiuni ntre 3 cm i 26,5 cm. Acestea corespund tuturor soluiilor actuale de roboi auto-reconfigurabili i sunt realizate utiliznd tehnologiile clasice de fabricaie i asamblare. b. Module microcu dimensiuni sub un centimetru, care trebuie realizate cu tehnologii complet diferite, cum ar fi MEMS, prin integrarea elementelor mecanice, a senzorilor, actuatorilor i electronicii pe un substrat comun de siliciu, prin tehnologii de microfabricaie. n pofida severitii aprecierilor legate de nzestrarea cu senzori a roboilor reconfigurabili [STO04], modulele roboilor PolyBot prezentate n [ZHA02] sunt nzestrate cu un numr suficient de mare de senzori de diferite tipuri (Figura5.1): Poteniometre; Senzori de for;73

ROBOTI RECONFIGURABILI

Senzori de detecie n infrarou; Senzori de acceleraie; Senzori cu efect Hall.

Figura 5.1 Modul PolyBot cu senzorii corespunztori Pentru a asigura premizele unei activiti adecvate de alegere a sistemelor senzoriale necesare i utile roboilor auto-reconfigurabili, care vor fi proiectai i realizai n cadrul proiectului, se vor trece n revist principalele tipuri de senzori din dotarea acestor roboi, cu evidenierea caracteristicilor lor tehnice. 5.1 Senzori interni 5.1.1 Senzori pentru msurarea poziiilor/deplasrilor din cuple Pentru msurarea poziiilor din cuplele cinematice se folosesc n cvasitotalitatea cazurilor poteniometre miniaturale, motiv pentru care se vor trece n revist cteva noiuni importante legate de acestea. 5.2.1.1 Poteniometrul Este un senzor care furnizeaz un semnal analogic, sub forma unei tensiuni electrice. Principiul msurrii analogice a deplasrii este prezentat n figura 5.2.

74

ROBOTI RECONFIGURABILI

a)

b)

Figura 5.2 Principiul msurrii analogice a deplasrilor; a) semnale liniare; b) semnale sinusoidale

Senzorul emite un semnal electric dependent de deplasare, materializat printr-o tensiune electric, avnd o variaie liniar (Figura35, a) sau sinusoidal (Figura35, b). Dac se consider amplitudinea semnalului pornind din punctul d0 (Figura35, a) i pn n punctul df, se constat c exist o coresponden biunivoc ntre deplasare i mrimea tensiunii la ieirea senzorului; n mod similar se petrec lucrurile i n cazul sinusoidei din Figura35, b, n condiiile n care se lucreaz cu arcele de sinusoid corespunztoare domeniului -T/4 - T/4, sau T/4 - 3T/4. n fiecare asemenea domeniu, unei anumite mrimi a tensiunii i corespunde un singur punct pe axa deplasrilor i numai unul (metoda analogicabsolut). Ca urmare senzorul funcioneaz ca senzor de poziie. n cazul n care mrimea deplasrii ce trebuie msurat o depete pe cea corespunztoare perioadei T, semnalul la ieirea senzorului va repeta dreapta sau sinusoida din figura 35 de mai multe ori, pn la acoperirea distanei de msurat. Astfel tensiunea U1 determin poziia punctului d1i numai dac se cunoate numrul, i, de perioade pe care le-a furnizat senzorul pn n acel moment (metoda ciclic absolut). n aceste condiii senzorul funcioneaz ca senzor de deplasare. Principiul de funcionare a poteniometrului clasic poate fi explicat cu ajutorul figurii 36 El este constituit dintr-o rezisten fix Rt, de-a lungul creia

75

ROBOTI RECONFIGURABILI

se deplaseaz un cursor, solidar cu elementul a crui deplasare se msoar i izolat electric fa de acesta; cursorul asigur contactul cu rezistena fix. Valoarea rezistenei Rx, msurat ntre cursor i una dintre extremitile rezistenei fixe, depinde de poziia cursorului i, implicit, de deplasarea elementului mobil; presupunnd c rezistena Rt are o configuraie uniform, Rx poate fi exprimat cu relaiile:Rx = Lx Rt Lt

(5.1)

Figura 5.3 Scheme de principiu ale poteniometrului: a) liniar; b) rotativ (fr contact)

pentru un poteniometru liniar (Figura5.3, a), respectiv:Rx =

x . , Rt M

(5.2)

pentru un poteniometru rotativ, pentru care nfurarea este dispus de-a lungul unui arc de cerc, i are o variaie liniar n funcie de deplasare.

76

ROBOTI RECONFIGURABILI

Rezistena Rt poate fi materializat fizic cu ajutorul unui fir bobinat sau printr-un strat conductiv. La poteniometrele bobinate eroarea minim corespunde saltului de la o spir la alta, respectiv limii cursorului. Poteniometrele de precizie permit o rezoluie maxim R/R de ordinul de mrime 10-3. Straturile conductive sunt realizate pe un suport izolator din plastic, pe care se aplic o pulbere conductoare de carbon sau metalic, constituit din granule cu mrimi de ordinul a 10-2 m. i aceast structur granular implic o variaie discontinu a rezistenei msurate, ns rezoluiile acestor poteniometre (valori de circa 0,3 m) sunt net superioare celor ale poteniometrelor cu rezistene bobinate. Dezavantajul principal al poteniometrelor cu contact rezid n uzura mecanic, determinat de frecarea dintre cursor i rezisten, care limiteaz durata de funcionare la maxim 106 - 107 cicluri, insuficient pentru cerinele impuse de servosistemele sistemelor mecatronice, motiv care a mpiedicat implementarea senzorilor de acest tip n construcia unor echipamente de nalt precizie. Dezvoltarea unor senzori poteniometrici performani a contribuit substanial la creterea ponderii lor n diverse domenii, cum ar fi robotica. Astfel, firma Midori Precision (PEWATRON - Elveia), a dezvoltat seria BLUE-POT [PEWATRON], care cuprinde poteniometre fr contact, ce se bazeaz pe interaciunea dintre un magnet permanent i un strat magnetorezistiv aplicat pe o plac de baz (Figura 5.3, b). Caracteristica de ieire este dependent de micarea magnetului. Este un poteniometru ideal pentru o funcionare fr uzur i ntreinere, care asigur durate de funcionare mai mari de 500 milioane de cicluri. Caracteristica termic a acestor poteniometre poate fi corectat prin diferite metode de compensare: montaje cu rezistene de compensare; compensare cu termistor. Rezult o stabilitate de 0,2% FS (Full Scale)n poziia central (50% din valoarea ieirii) i 1..2% n celelalte poziii.77

ROBOTI RECONFIGURABILI

n final se vor prezenta cteva consideraii privind influena diferitelor elemente asupra montajului de msurare. Poteniometrul este alimentat de la o surs de c.c., Es, avnd o rezisten intern Rs. Tensiunea Vm, culeas la ieirea rezistenei variabile Rx i msurat cu un dispozitiv avnd rezistena intern Ri, poate fi exprimat cu relaia:Vm = E s . Rx . Rs + R t 1 R Rx 1 + x .(1 ) Ri Rs + Rt .

(5.3)

Cazul ideal presupune o expresie de forma:Vm = E s . Rx L = E s . x (pot.liniar) = E s . x (pot.rotativ), M Rt Lt

(5.4)

impunnd dou condiii limit: Rs = 0 i Ri = . Schemele de principiu sunt prezentate n figurile 5.4, a i b.

Figura 5.4. Scheme de msurare: a) cu amplificator repetor; cu amplificator inversor.

n cazul n care un cursorul unui poteniometru rotativ execut unghiuri mai mari de 360, la ieirea acestuia sunt generate mai multe semnale ciclice (curbe aproximate cu un segment de dreapt sau bucle de sinusoid Figura5.2, a i b), astfel nct se impun soluii pentru identificarea univoc a semnalului urmrit. n general, cursele elementelor mobile ale roboilor autoreconfigurabili sunt mai mici dect 180, dar poteniometrul poate fi montat pe axul actuatorului, iar elementul mobil poate fi acionat prin intermediul

78

ROBOTI RECONFIGURABILI

unui reductor, pentru amplificarea momentului motor. n aceste situaii se folosesc poteniometre multi-turn (Figura5.5, dreapta), care genereaz un singur semnal pentru unghiuri mai mari de 360.

Figura 5.5 Poteniometru simplu (stnga) i multi-turn (dreapta), cu evidenierea dimensiunilor

5.2.1.2 Senzori incrementali n anumite situaii, pe suprafee netede, roboii auto-reconfigurabili aleg configuraii i strategii care s le permit deplasarea pe roi. Se impune, n anumite cazuri msurarea deplasrilor roilor motoare, care faciliteaz calculul deplasrii robotului/modulului de-a lungul diferitelor direcii. Aceste deplasri sunt msurate, de regul, cu senzori incrementali, optoelectronici sau inductivi, care pot fi integrai n roi sau pot fi separai, miniaturali, cuplai cu axul roii. n figura 5.6 este prezentat un astfel de senzor cu dimensiunile lui.

a)

79

ROBOTI RECONFIGURABILI

b) Figura 5.6 Senzor incremental miniatural: a) vederi de ansamblu; b) dimensiuni

Ieirile unui astfel de senzor sunt reprezentate de dou semnale sinusoidale n cuadratur i un impuls de referin (Figura5.7, a), generat pentru o rotaie complecta, care prin electronica integrat n senzor sunt convertite n semnalele dreptunghiulare UA i UB, defazate cu un sfert de perioad i impulsul de referin US (Figura5.7,b).

Figura 5.7 Semnale generate de un senzor incremental

80

ROBOTI RECONFIGURABILI

Semnalele dreptunghiulare UA i UB trebuie s parcurg o succesiune de circuite de prelucrare pentru a fi accesibile sistemului de comand a robotului/modulului: Un circuit pentru filtrarea semnalelor Un circuit pentru detectarea sensului de deplasare orar/antiorar i generarea corespunztoare a impulsurilor pentru numrarea direct/invers; cascad de numrtoarea pentru contorizarea impulsurilor; Un registru de ncrcare i un eventual multiplexor, pentru transmiterea impulsurilor spre magistrala procesorului de comand. Testele au fost efectuate cu ajutorul a dou circuite integrate, care cumuleaz aceste funciuni. Primul, HCTL-2016, aparine familiei de circuite HCTL20XX ale firmei Agilent Technologies, iar schema bloc este prezentat n figura 5.8.

Figura5.8 Schema bloc a familiei de circuite HCTL-20XX [Agilent] 81

ROBOTI RECONFIGURABILI

Cele dou semnale n cuadratur, CH A i CH B, recepionate de la senzorul incremental, sunt adaptate cu ajutorul unor circuite trigger Schmitt i filtrate prin intermediul unui filtru digital, pentru a elimina semnalele de zgomot de joas tensiune i impulsurile de scurt durat, caracteristice acionrilor cu motoare electrice, dup care intr ntr-un bloc de prelucrare (similar ca funciuni cu circuitul din figura 41), care genereaz un semnal de numrare (CNT), pe cele patru fronturi ale impulsurilor CH A i CH B, precum i un semnal de dirijare a numrrii, fie pentru numrarea direct (UP/DN = 1), pentru unul din sensurile de deplasare a senzorului, fie pentru numrarea invers (UP/DN = 0), dac senzorul se deplaseaz n sensul contrar. Numrarea este realizat de un numrtor reversibil de 12 bii (HCTL2000) sau de 16 bii (HCTL-2016/2020), pe frontul cresctor al impulsurilor aplicate pe intrarea CNT. Coninutul numrtorului, accesibil la ieirile O0 O11,15 este transferat ntr-un registru de ncrcare (12/16 BIT LATCH), pe fiecare front pozitiv al impulsului de tact (CK), cu excepia situaiilor n care transferul este blocat de logica de inhibare (INHIBIT LOGIC), pe parcursul citirii celor 2 bytes de ctre procesor. Citirea se realizeaz cu ajutorul celor dou semnale SEL i OE, gestionate de la procesor, conform secvenei din tabelul 5.2:Tabel 5.2 Secvena de semnale pentru citirea celor 2 bytes

Pas 1 2 3

SEL L H X

OE L L H

CLK

Semnal de inhibare 1 1 0

Aciune Activeaz inhibarea; citete byte-ul superior Citete byte-ul inferior Dezactiveaz inhibarea

Interfaarea cu magistrala de date a procesorului este realizat de un multiplexor 16:8 i un buffer three-state de 8 bii. n figura 5.9 este detaliat modul n care se leag la magistrala unui microcontroller un circuit HCTL-20XX, astfel:

82

ROBOTI RECONFIGURABILI

Datele de la circuit se citesc direct pe magistrala de date D0 D7 a microcontrollerului, ntruct ieirile similare, D0 D7, ale circuitului sunt three-state, deci prezint, pe lng cele dou stri logice, 0 i 1, i starea de nalt impedan (HiZ), care permite decuplarea circuitului de la magistrala de date, atunci cnd acesta nu este accesat de procesor. Citirea celor 2 bytes se face cu ajutorul a 2 adrese de porturi. Bitul inferior al adreselor (A8) este legat pe intrarea SEL, pentru selectarea celor 2 bytes, superior i inferior, iar liniile de adrese, A9 A15 activeaz circuitul (OE = 0), printr-o logic de decodificare, implementat cu ajutorul a dou pori I-NU, n care intervine i semnalul RD al procesorului. Procesarea informaiilor de la mai muli senzori se rezolv simplu, prin cuplarea tuturor acestora la magistrala de date i prin apelarea lor, pe baza cte unei adrese, printr-o logic de decodificare a adreselor, realizat cu ajutorul unui decodificator adecvat (de exemplu, 74138). Procesorul dirijeaz, prin intermediul bitului 0 al portului 1 (P1.0), legat la intrarea RST a circuitului, iniializarea coninutului numrtorului i registrului de ncrcare.

Figura5.9 Conectarea unui circuit HCTL 20XX la un microcontroller 8051

83

ROBOTI RECONFIGURABILI

Numrul maxim de impulsuri, care poate fi contorizat de un circuit, este de 212 = 4096 (HCTL-2000), sau 216 = 65.536 (HCTL-2016, HCTL-2020). Circuitul HCTL-2020 are o logic de cascadare (partea din dreapta-sus n figura 8), care permite extinderea domeniului de numrare, prin legarea unui numrtor la ieirile CNTCAS i U/D, care se vor activa cnd numrtorul circuitului HCTL-2020 revine din starea final n cea iniial, la atingerea limitei de numrare, ntr-un mod asemntor celui prezentat n capitolul 4 pentru numrtoarele 74193/74192 i 4029. Legarea adecvat a unui numrtor de 4 bii pe ieirile CNTCAS i U/D ale lui HCTL-2020, extinde domeniul de numrare la 220 impulsuri. Al doilea tip de circuit integrat, care a fost folosit i integrat n schemele de comand este LS7366 al firmei LSI Computer Systems, care are avantajul unei legturi seriale I2C, cu procesorul, fiind montat ntr-o capsul cu numai 14 pini (Figura5.10) i realiznd o economie substanial de linii I/E necesare dinspre procesor.

Figura5.10 Configuraia pinilor circuitului LS7366

Schema bloc a circuitului este prezentat n figura 5.11, avnd blocuri cu funciuni similare cu HCTL2016.

84

ROBOTI RECONFIGURABILI

Figura 5.11 Schema bloc a circuitului LS7366

n figura 5.12 este prezentat modul de conectare la un microcontroller PIC18CXXX.

Figura 5.12 Legtura dintre LS7366 i microcontrollerul PIC18

85

ROBOTI RECONFIGURABILI

n finalul seciunii destinate senzorilor incrementali se vor detalia civa parametri importani ai acestora. Turaia maxim admis este condiionat att de partea mecanic, ct i de partea electronic a unui senzor. Este, din punct de vedere mecanic, pe de o parte, o caracteristic a senzorului, fiind indicat n tabelul de parametri ai acestuia, dar i o caracteristic a cuplajului utilizat. Din punct de vedere al prii electrice i electronice, turaia maxim este limitat att de frecvena maxim de comutaie a fotodetectorilor, fmax [KHz], indicat n catalogul senzorului, dar i de frecvena maxim, fFmax [KHz], a circuitelor electronice de prelucrare (numrtoare, bistabili, pori logice etc.):f [KHz] 10 3 60 [rot/ min ], = max NF

n

F max

(5.5)

n care:

nFmax

este turaia maxim admisibil din punct de vedere al

fotodetectorilor; fFmax - frecvena maxim admisibil a fotodetectorilor; N numrul de diviziuni ale discului divizor, respectiv:nP max P

f [KHz] 10 3 60 [rot/ min ], = max i.n.N

(5.6)

unde: nPmax este turaia maxim admisibil din punct de vedere al prii electronice de prelucrare; fPmax - frecvena maxim admisibil a prii electronice de prelucrare; i - factor de interpolare; n - factor de valorificare a fronturilor. Se alege turaia cea mai redus, care satisface toate restriciile mecanice i electrice. Rezoluia este determinat n primul rnd de numrul, N, de diviziuni ale elementului (rigla/disc) divizor. Ea poate fi mrit de i ori prin interpolarea semnalelor furnizate de traductoare i de n ori prin valorificarea mai multor fronturi ale semnalelor. De exemplu, pentru rigla incremental LIP 101R86

ROBOTI RECONFIGURABILI

[Heidenhain], perioada semnalelor obinute de la fotodetectori este de 4 m. Valorificnd toate cele 4 fronturi ale semnalelor (n=4), se obine o rezoluie de 1 m. Pentru un factor de interpolare i = 10 se obine o rezoluie de 0,1 m, iar pentru interpolri de 50 i 100 de ori, rezoluiile vor fi de 0,02 m (20 nm) i, respectiv, de 0,01 m (10 nm). n care acesta msoar direct micarea elementului mobil al unei cuple, are expresia:360 o R= [grade]. in N

(5.7)

n cazurile n care micarea, msurat la nivelul axului motorului de acionare, se transmite prin diferite tipuri de mecanisme, trebuie inut cont de specificul mecanismului respectiv. De exemplu, un mecanism urub-piuli cu pasul p [mm], care trebuie sa asigure o rezoluie mai mare dect R [mm], va impune alegerea unui senzor rotativ, avnd numrul de diviziuni, N, dat de relaia:1 1 p N= , i n R

(5.8)

Precizia este determinat de: erori ale diviziunilor discului (riglei) incremental; erori de interpolare; excentricitatea discului divizor fa de axa de rotaie etc. 5.2.2 Senzori de acceleraie Pot avea roluri importante n funcionarea roboilor mobili pentru: Msurarea nclinrii/pantei diferitelor module; Msurarea unghiului de rotaie pentru a anumit ax: Identificarea strii de micare sau repaus; Sesizarea ocurilor/ciocnirilor;

87

ROBOTI RECONFIGURABILI

Principiu de funcionare; caracteristici Senzorii de acceleraie permit msurarea acceleraiilor dinamice (datorate vibraiilor) sau statice (determinate de gravitaie) ale unui solid dup una sau mai multe direcii. Sunt multe principii de funcionare ale acestora, dar va fi detaliat principiul senzorului MEMSIC 2125 [Parallax], realizat n tehnologia MEMS, care a fost utilizat pentru teste mpreun cu modulele BASIC Stamp, n vederea aprecierii posibilitilor de integrare a lui n configuraia roboilor mobili proiectai. Acesta conine un mic nclzitor inclus n interiorul unui recipient, care nclzete un balon de aer din interiorul recipientului. Cnd asupra senzorului acioneaz fore externe, balonul de aer se deplaseaz, iar deplasarea este sesizat cu ajutorul a patru senzori de temperatur foarte sensibili, plasai pe patru laturi ale recipientului, prin modificarea temperaturii, n funcie de distana fa de aerul nclzit (Figura45). Electronica integrat n senzor convertete poziia balonului n impulsuri transmise la ieirile pentru axele X i Y. Configuraia conectorilor senzorului Memsic 2125 este compatibil cu cea a multor altor senzori de acceleraie accesibili pe pia, asigurnd o integrare i interschimbabilitate facil n cadrul diferitelor aplicaii. Se constat c senzorul ocup numai dou linii I/E ale procesorului numeric (X-out i Y-out), dac este utilizat pentru dou axe i o singur linie, n cazul unei singure axe (pentru unghiuri de nclinare mai mici de 60). Compatibilitatea semnalelor va fi exemplificat cu ajutorul unui senzor de acceleraie, ADXL202E [Analog], care funcioneaz pe un principiu complet diferit. Principalele caracteristici ale acestui senzor sunt: Domeniul de msurare cuprins ntre 0 i g pentru fiecare ax; Rezoluia mai mic de 1 mg; Semnale simple, sub form de impulsuri pentru axele X i Y (fig. 5.13);

88

ROBOTI RECONFIGURABILI

Figura 5.13. Principiul de funcionare a senzorului MEMSIC 2125

Ieire analogic pentru temperatur (conectorul Tout); Consum de curent mai mic de 4 mA pentru tensiunea de alimentare de 5 V.

Figura 5.14. Conectorii externi ai senzorului Memsic 2125

Impulsul de ieire al senzorului este fixat la o lime de 50% pentru 0 g, iar variaiile limii sunt proporionale cu acceleraia i pot fi determinate direct de BASIC Stamp, cu ajutorul formulei prezentate n figura 5.15. Perioada T2 este calibrat la 10 milisecunde pentru o temperatur ambiant de 25C.

Figura 5.15. Configuraia semnalelor de la ieirile senzorului 89

ROBOTI RECONFIGURABILI

Un alt senzor de acceleraie care a fost analizat este ADXL202E (Fig. 5.16), care este realizat, de asemenea n tehnologie MEMS i este disponibil sub forma unui circuit integrat cu 8 pini (Fig. 5.16, b). Senzorul conine o structur de poli-silicon, suspendat prin arcuri din acelai material pe plcua de siliciu a circuitului integrat, care opun o rezisten la forele de acceleraie. Deplasrile structurii sunt msurate cu ajutorul unui condensator diferenial, care are plci fixe independente i plci centrale ataate masei n micare, iar semnalele de ieire sunt semnale dreptunghiulare, similare cu cele prezentate n figura 16 pentru Memsic 2125, iar acceleraia se calculeaz cu aceeai formul.

a)

b)

Figura 5.16. Senzorul de acceleraie ADXL202E: a) schem bloc; b) configuraie pini

Principalele performane tehnice ale acestui senzor sunt: Dimensiuni: 5 mm x 5 mm x 2mm; Plaja de msurare: 2g; Rezoluie: 2 mg pentru frecvena de 60 Hz; Consum de curent: < 0,6 mA; Tensiune de alimentare: 3 V 5,25 V; ocuri maxime suportate: 1000 g.90

ROBOTI RECONFIGURABILI Tabel 5.3 Selectarea condensatorilor de filtrare, Cx i Cy

Lime de band 10 Hz 50 Hz 100 Hz 200 Hz 500 Hz 5 KHz

Capacitate 0,47 F 0,10 F 0,05 F 0,027 F 0,01 F 0,001 F

O alt facilitate suplimentar oferit de ADXL202E fa de Memsic 2125 const n posibilitatea seleciei perioadei T2 a semnalului de sarcin. Pentru Memsic 2125 acesta are o durat de fix, de 10 ms, n schimb pentru ADXL perioada T2 poate fi modificat, prin legarea unui rezistor de valoare adecvat, RSET, pe linia T2 a circuitului (tabelul 5.4).Tabel 5.4 Valorile rezistorului pentru fixarea lui T2

T2 1 ms 2 ms 5 ms 10 ms

RSET 125 k 250 k 625 k 1.25 M

Trebuie remarcat i faptul c, n familia lui ADXL202E pot fi regsii un numr semnificativ de senzori de acceleraie, pentru 13 axe, pentru diferite limite ale acceleraiilor msurate i cu semnale de ieire analogice sau PWM (tabel 5.5.):Senzor ADXL103 ADXL203 ADXL204 ADXL213 ADXL330 Tabel 5.5. Gama senzorilor de acceleraie ADXL Nr.a Domeniu Sensibilitate Precizie Semnal Tensiune Curent xe (%) ieire (V) (mA) 1 1000 mV/g 4 analogic 5 0,7 1,7g (3 la 6) 2 1000 mV/g 4 analogic 5 0,7 1,7g (3 la 6) 2 620 mV/g analogic 3.3 0,5 1,7g 4 (3 la 6) 2 30 %/g PWM 5 0,7 1,2g 10 (3 la 6) 3 300 mV/g analogic 1,8 3.6 0,18 3g 10 91

ROBOTI RECONFIGURABILI @1,8 V 0,5 0,5 0,5 0,18 @1,8 V 0,4 0,6 0,6

ADXL320 ADXL321 ADXL322 ADXL323 ADXL311 ADXL202 ADXL210

2 2 2 2 2 2 2

5g 18g 2g 3g 2g 2g 10g

174 mV/g 57 mV/g 420 mV/g 300 mV/g 174 mV/g 12.5%/g 4.0 %/g

10 10 10 10 15 16 20

analogic analogic analogic analogic analogic PWM PWM

2,4 6 2,4 6 2,4 6 1,8 5.25 2,4 5.25 3 5,25 3 5,25

Interesani sunt , n principiu, senzorii care au ieiri PWM, respectiv ADXL 202, care a fost discutat n detaliu i ADXL 210, care permite extinderea limitelor de acceleraie la 10g. Senzorul de acceleraie SMB300 (Bosch) Este un senzor capabil s msoare acceleraii mici, dup 3 axe perpendiculare, cu ieire numeric de la un CNA de 10 bii. Realizat n tehnologie MEMS, funcioneaz pe principiul condensatorului diferenia, ca i ADXL202. Are dimensiunile de 3 mm x 3 mm x 0.9 mm i consum un curent de 0,2 mA, la tensiuni de alimentare de 2,43,6 V. Cei 10 pini ai capsulei n care este integrat senzorul au urmtoarele funcii (tabel 5.6.):Tabel 5.6. Denumirile i funciile pinilor senzorului SMB300

Nr.pin 1 2 3 4 5 6 7 8 9 10

Denumire DNC VDD GND INT VDDIO SCK GND SDA VDDIO DNC

Funcie Neconectat Tensiune alimentare Mas Interrupt Tensiune de alimentare a interfeei numerice Semnal de tact Mas Intrare/ieire date seriale Tensiune de alimentare a interfeei numerice Neconectat

Principalele date tehnice ale senzorului sunt:92

ROBOTI RECONFIGURABILI

x/y/z 2g, 4g, 8g 2g:256LSB/g; 4g:128LSB/g; 8g: 64 LSB/g Rezoluie 10 bit 4 mg ( 2g) Neliniaritate 0,5% FS Offset-0g (calibrat) 40 mg Offset drift temperatur 2 mg/K Lime band 25 Hz 1500 Hz Intrri/ieiri numerice SPI/I2C, pin de ntreruperi 2,4 3,6 V/ 1,8 3,6 V Tensiune de alimentare VDD/VDDIO Curent consumat 200 A Domeniu de temperatur -4080 Cele mai interesante aspecte care trebuie evideniate n cazul acestui senzor sunt: Are integrat un convertor analog numeric (CAN) de 10 bii, care convertete semnalele analogice furnizate de traductoarele de acceleraie, cu o frecven maxim de conversie de 3 KHz. Datele de la ieirea CAN sunt citite serial pe o interfa SPI/I2C. Pe aceeai interfaa serial se pot transmite comenzile pentru selectarea domeniului de msura a acceleraiilor: 2g, 4g, 8g. n afara operaiilor normale de transmitere a valorilor acceleraiilor ctre un registru de ieire, circuitul SMB380 este capabil s efectueze i calcule i evaluri interne ale rezultatelor. Utilizatorul poate defini anumite criterii, cm ar fi praguri minime i maxime ale acceleraiilor dup diferitele axe, sau criterii legate de recunoaterea unor profiluri de micare. Senzorul va informa procesorul de comand asupra realizrii criteriilor stabilite, prin activarea liniei de ntreruperi. Pot fi semnalizate condiii de ocuri, cdere liber etc. Senzorul este capabil i de auto-diagnosticare. Declanat printr-o comand adecvat pe interfaa serial, aceasta determin o deplasare a masei ineriale cu ajutorul unei fore electrostatice, permind testarea ntregului lan de prelucrare a semnalelor.93

Axe sensibile Domeniu de msurare Sensibilitate (calibrat)

ROBOTI RECONFIGURABILI

Figura 5.17. Schema bloc a senzorului de acceleraie H48C

Senzorul de acceleraie H48C (Hitachi) Un ultim senzor care a fost analizat, comparativ cu cei trei prezentai anterior i cu posibilitile de utilizare la echiparea roboilor mobili reconfigurabili este H48C. Este un senzor pentru msurarea a 3 componente tri-ortogonale ale acceleraiei, realizat, de asemenea, n tehnologie MEMS i avnd dimensiuni de 4,8 x 4,8 x 1,5 mm. n figura 5.16 este prezentat diagrama bloc, iar n figura 5.17 semnificaia pinilor acestui senzor. Ce este relevant, n raport cu senzorii detaliai anterior. Ieirile senzorului sunt analogice i este necesar complectarea acestuia cu faciliti de conversie analog-numeric pentru cele 3 semnale i cu interfaa numeric necesar conectrii la un procesor numeric. Firma Parallax ofer un asemenea bloc, dar acesta are dimensiuni mult mai mari dect un simplu senzor (o,7 x o,8 inch 17,5 x 20 mm, fa de 4,8 x 4,8 mm) i pune probleme pentru montarea lui n spaiul limitat al modulului unui robot. Sensibilitatea senzorului este de 333 mV/g la o tensiune de alimentare de 3 V.94

ROBOTI RECONFIGURABILI

Figura 5.18. Semnificaia pinilor senzorului de acceleraie H48C

Senzorul are o ieire (ZeroG) capabil s semnalizeze situaia n care senzorul (mpreun cu corpul pe care este montat) este n stare de cdere liber, fapt care presupune c suma celor 3 semnale, care msoar

95

ROBOTI RECONFIGURABILI

acceleraiile dup 3 axe perpendiculare este situat ntr-un domeniu apropiat lui zero (cu luarea n considerare a unei valori de prag) Figura 5.19.

Figura 5.19 Sesizarea strii de cdere liber, prin generarea unui semnal la ieirea ZeroG

Studiul acesta, efectuat asupra unei game largi de senzori de acceleraie consacrai i disponibili pe pia, a condus la urmtoarele concluzii: Senzorii de acceleraie sunt adecvai pentru echiparea modulelor roboilor mobili reconfigurabili, atunci cnd aplicaiile impun acest lucru, ntruct: - Au dimensiuni mici i sunt compaci; - Furnizeaz multe informaii utile despre starea robotului. Datorit unor capaciti limitate ale procesorului numeric de comand a modulului, n ceea ce privete puterea de calcul i interfeele, cei mai favorabili sunt senzorii cu semnale de ieire PWM (Figura3), respectiv Memsic 2125 i ADXL202. 5.2.3. Fundamentarea teoretic a experimentelor cu senzori Memsic 2125 Experimentele efectuate pentru msurarea unor stri ale unor corpuri, de dimensiunile modulelor proiectate i realizate, au presupus utilizarea de senzori Memsic 2125, capabili s msare acceleraii dup 2 axe perpendiculare n gama de 2g.

96

ROBOTI RECONFIGURABILI

Module utilizate pentru experimente

a)

b)

Figura 5.20 Module echipate cu doi senzori de acceleraie pentru cte 2 axe

Modulul care a fost utilizat pentru experimente este un cub, cu latura de 70 mm, pe care s-au lipit, pe 2 fee adiacente, 2 senzori de acceleraie Memsic 2125, fiecare cu cte 2 axe (fig. 5.20). Nu s-a nzestrat cubul, ntr-o prim instan, cu faciliti de micare, ci s-au studiat diferite poziii statice ale acestuia. Fiecare senzor poate msura ntre 0 to 2g on dup fiecare ax, cu o rezoluie mai mic dect 1 mg. Impulsul furnizat la ieirile, X out i Y out, sunt etalonate la 50% din ciclul de sarcin n cazul acceleraiei de 0 g. Ciclul de sarcin se modific proporional cu acceleraia i permite calcularea acesteia cu o formul adecvat. ntruct sunt doi senzori, S1 and S2, i fiecare dintre acetia poate msura acceleraii de-a lungul a dou axe, semnalele sa2 and sa4 vor fi redundante. Aceast redundan poate fi util n anumite situaii, dar n cadrul experimentelor s-au luat n considerare numai acceleraiile msurate de sa1, sa2 and sa3, care sunt paralele cu axele sistemului de coordonate O1x1y1z1, ataat cubului. Iniial acest system este suprapus peste sistemul de referin, O0x0y0z0, cu axa z0 axis coliniar cu vectorul acceleraiei gravitaionale g (fig. 5.20,a). Astfel, matricea iniial de orientare pentru sa1, sa2 and sa3 is the 3x3 este matricea unitate. Singurul efect sesizat de ambii senzori este acceleraia i ultima linie a matricei unitate, cu elementele proporionale cu proieciile lui sa1,sa2 and sa3 pe axa z0 (g), indic faptul c numai sa3 este influenat de gravitaie n aceast poziie.97

ROBOTI RECONFIGURABILI

Matrici de rotaie; Unghiuri de nclinare Cubul este rotit cu un anumit unghi: , n raport cu x0, , fa de y0 sau n raport cu z0. Matricele de rotaie corespunztoare au configuraiile:0 1 0 c 0 s 0 c s ; Rot ( y , ) = 0 Rot ( x0 , ) = 1 0 ; Rot ( z 0 , ) = 0 0 s c s 0 c c s 0 s c 0. 0 0 1

(1)

Notaiile s and c au fost utilizate pentru sinus i cosinus de . Matricele (1) indic faptul c o rotaie n raport cu axa z0 nu modific semnalele senzorului, dar o rotaiefa de axele x0 sau y0 transfer o parte a gravitaiei de la sa3 la sa2, respectiv, la sa1. Examinnd matricele (1) pot fi deduse cteva concluzii: Dac dou dintre semnalele sa1, sa2, sa3 sunt zero sau foarte apropiate de zero (sub un anumit prag), atunci cubul este aezat orizontal, pe acea fa a crei normal este coliniar cu sa1, sa2, respectiv sa3. Dac unul dintre semnalele sa1, sa2, sa3 este zero sau foarte apropiate de zero (sub un anumit prag), iar celelalte dou semnale sunt mai mari dect zero (peste un anumit prag), atunci cubul este rotit, cu un anumit unghi, n raport cu axa fa de care semnalul este zero. Acest unghi poate fi calculat din matricele (1) cu ajutorul unei simple funcii arctg. Dac se rotete cubul, succesiv, de-a lungul a dou dintre axele x0, y0, z0, configuraia matricei de rotaie va fi mai complex i va depinde de ordinea n care se realizeaz rotaiile, ntruct produsul a dou matrici nu este comutativ. Dac se efectueaz nti o rotaie cu unghiul fa de axa x0, urmat de o rotaie cu unghiul n raport cu axa y0, matricea corespunztoare de rotaie va fi:0 c s.s s.c c 0 s 1 0 0 0 c s = 0 Rot ( x 0 , ; y 0 , ) = c s , 1 0 s 0 c 0 s c s c.s c.c

(2)

98

ROBOTI RECONFIGURABILI

diferit de matricea de rotaie aferent cazului n care se efectueaz prima dat rotaia fa de axa y0. Dac se supune cubul, successiv, la rotaii n raport cu toate cele trei axe, pot fi luate n considerare ase posibiliti pentru ordinea acestor rotaii i ase matrici de rotaie corespunztoare. De exemplu, matricea de rotaie pentru o rotaie cu unghiul de-a lungul lui x0, urmat de una cu unghiul fa de y0 i, apoi , de o rotaie cu fa de z0, are configuraia:c.c s.s.c c.s c.s.c + s.s c.s s.s.s + c.c c.s.s s.c . s s.c c.c

(3)

Fr ndoial c ecuaiile (2) i (3) pot servi la calculul unghiurilor i . In [3] equaiile (3) sunt utilizate pentru calculul unghiurilor de nclinare ale modulelor roboilor PolyBot, cu: = tan-1 (sa2/sa3) and = sin-1 (sa1) (4)

n aceast situaie trebuie cunoscut ordinea de realizare a rotaiilor successive dup diferitele axe, care trebuie memorat de procesorul de comand a modulului. n multe cazuri acest deziderat nu poate fi satisfcut, mai ales atunci cnd modulul suport diferite nclinaii n timpul deplasrii pe un teren accidentat. Avnd n vedere aceste consideraii se propun cteva praguri pentru valorile msurate de senzorii de acceleraie, care s stea la baza urmtorului raionament: Dac dou semnale sunt sub nivelul pragului zero, cubul este aezat orizontal i poate fi identificat faa de sprijin;

99

ROBOTI RECONFIGURABILI

Dac un singur semnal este sub pragul zero, cubul este rotit cu un anumit unghi n raport cu una din axele ne-verticale, unghi care poate fi calculat cu ajutorul ecuaiei (3). Dac se depete un prag superior pentru unul din semnale, sistemul trebuie s reacioneze pentru a pstra modulul ntro poziie stabil. Dac toate trei semnalele sunt superioare pragului zero, atunci cubul este rotit n raport cu dou sau trei axe. Dac este cunoscut i memorat secvena acestor rotaii, unghiul de nclinare poate fi calculat cu o ecuaie similar cu ecuaia (3). Dac se depete un prag superior pentru oricare din semnale, sistemul trebuie s reacioneze pentru a pstra modulul ntr-o poziie stabil. 5.2.4. Achiziia i prelucrarea informaiilor de la senzorii Memsic 2125 Se vor detalia principalele aspecte privind achiziia i evaluarea informaiei de la senzorii de acceleraie Memsic 2125 n mediul de programare Basic Stamp, care au fost avute n vedere i utilizate la testarea i utilizarea acestor senzori. Perioada T2 este calibrat la 10 ms pentru temperatura ambiant de 25 C, astfel nct determinarea acceleraiei dup o anumit ax, X, poate fi realizat cu urmtoarea secven de instruciuni PBasic: Read_X_Force: PULSIN Xin, HiPulse, xRaw xRaw = xRaw */ Scale xGForce = ((xRaw / 10) 500) * 8 RETURN Durata, T1, a impulsului achiziionat de la ieirea senzorului de acceleraie, este determinat de instruciunea PULSIN i memorat n variabila xRaw. Este ajustat cu factorul Scale, ntruct procesoarele utilizate pot avea frecvene de tact diferite. A treia instruciune din grup100

ROBOTI RECONFIGURABILI

implementeaz formula din figura 1, cu observaia c mprirea la 0,125 (12%) este realizat prin nmulirea cu 8, iar rezultatul este exprimat n mili-g (1/1000 din g). Un aspect deosebit de important care trebuie luat n considerare la calculul funciilor trigonometrice, directe i inverse, implicate n exprimarea unghiurilor de nclinare determinate pe baza informaiilor de la senzorii de acceleraie, const n reducerea efortului computaional. n acest scop n PBASIC funcia Sinus (SIN) returneaz, n cod binar complementar pe 16 bii, sinusul unui unghi exprimat n radiani binari, pe 8 bii (0 255).

Figura 5.21 Funciile sinus i cosinus exprimate pentru unghiuri n BRADS (Binary RADians)

n acest sens, cercul trigonometric nu este mprit n cele 360 consacrate, ci n 256 de uniti, denumite binary radian sau brad (FiguraIII.9). Fiecare brad este echivalent cu 1,406 grade. n locul unei uniti pe cercul trigonometric, pentru care rezult valori ale sinusului unui unghi cuprinse ntre 0 i 1, SIN n BASIC Stamp ia n considerare un cerc de 127 de uniti. Astfel, pentru 0, SIN este 0, pentru 45 (32 brads), SIN este 90, la 90 (64 brads) SIN este 127, iar la 270 (192 brads) sinusul este 127. n ceea ce privete funcia COS (cosinus), lucrurile sunt similare, cu excepia faptului c funcia returneaz distana dup axa x, n locul celei dup axa y.101

ROBOTI RECONFIGURABILI

Pentru conversia din brads n grade, un unghi trebuie nmulit cu 180 i mprit la 128, sau, mai simplu, el trebuie nmulit cu */360. Operatorul */ este denumit operator Multiply Middle. El servete la nmulirea variabilelor i/sau constantelor, returnnd cei 16 bii din centrul unui rezultat de 32 de bii i are efectul nmulirii cu un numr ntreg i o fracie. Asigur un instrument extrem de eficace pentru aritmetica n numere ntregi din BASIC Stamp. De exemplu, dac se dorete nmulirea unui numr cu 1.5, partea ntreag a nmulitorului va fi 1 i, n consecin, byte-ul superior va fi 1, iar cel inferior (corespunztor prii fracionare) va fi 128, ntruct 128/256 = 0.5. Totul se va reduce la nmulirea de tip */ cu $0180. Se prezint, mai jos, instruciunile unui mic program, care demonstreaz utilizarea funciilor SIN i COS: degr VAR Word brads VAR Byte DEBUG 2, 4, 0, UNGHI, TAB, COS, TAB, SIN, CR DEBUG GRADE, TAB, BRADS, TAB, (X), TAB, (X), CR FOR degr = 0 TO 359 STEP 45; Incrementeaz unghi brads = degr */ $00B6 Convertete n brads DEBUG CR, DEC3 degr, TAB, DEC3 brads, TAB Afieaz unghiul DEBUG SDEC COS brads, TAB, SDEC SIN brads Afieaz SIN&COS NEXT Pentru calculul unghiurilor de nclinare a modulelor se utilizeaz, n majoritatea cazurilor, funcia arctg (ATN). Sintaxa lui ATN este: xCoord ATN yCoord Valorile coordonatelor, xCoord i yCoord, sunt limitate la 127 127 (Figura9). Iat cteva instruciuni de program edificatoare: degr VAR Word brads VAR Byte brads = 4 ATN 4 degr = brads */ $0168102

Unghi corespunztor Convertete n grade

ROBOTI RECONFIGURABILI

DEBUG SDEC ? brads DEBUG SDEC ? degr

Afieaz n brads (32) Afieaz n grade (45)

Se red, n continuare un program preluat de pe pagina WEB a firmei Parallax, care a fost utilizat i adaptat, n mod corespunztor, pentru calculul unghiurilor de nclinare ale modulelor din figura III.8: ' ======================================================= ' ' File...... MEMSIC2125-Dual.BS2 ' Purpose... Memsic 2125 Accelerometer Dual-Axis Demo ' Author.... (C) 2003-2004 Parallax, Inc -- All Rights Reserved ' E-mail.... [email protected] ' Started... ' Updated... 07 SEP 2004 ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ' ======================================================= ' -----[Descrierea programului ]--------------------------------------------' ' Citete ieirile PWM de la senzorul de acceleraie Memsic 2125 i le convertete n fraciuni ale lui g i n unghi de nclinare. ' ' g = ((t1 / 10 ms) - 0.5) / 12.5% ' ' Tilt = ARCSIN(g) ' -----[ Definiii I/E ]------------------------------------------------Xin Yin PIN PIN 8 9 ' intrarea X de la Memsic 2125 ' intrarea Y de la Memsic 2125

' -----[ Constante ]------------------------------------------------------' Setare factorului de scalare pentru PULSIN #SELECT $STAMP #CASE BS2, BS2E Scale CON $200

' 2.0 s pe unitate103

ROBOTI RECONFIGURABILI

#CASE BS2SX Scale CON #CASE BS2P Scale CON #CASE BS2PE Scale CON #ENDSELECT HiPulse LoPulse DegSym CON

$0CC $0C0 $1E1 CON CON 176 1 0

' 0.8 s pe unitate ' 0.75 s pe unitate ' 1.88 s pe unitate ' identific valoare logic 1 ' simbol pentru grade

' -----[ Variabile ]------------------------------------------------------xRaw xmG xTilt yRaw ymG yTilt disp angle VAR Word VAR Word VAR Word VAR VAR VAR VAR VAR Word Word Word Byte Byte ' deplasament (0.0 - 0.99) ' unghi de nclinare ' impuls de la Memsic 2125 ' acceleraie x (n miimi) ' unghi de nclinare dup x

' -----[ Date EEPROM ]----------------------------------------------------' -----[ Iniializare ]-------------------------------------------------Setup: PAUSE 250 DEBUG "Memsic 2125 Accelerometer", CR, "-------------------------" ' -----[ Instruciunile programului ]---------------------------------------------------Main: DO GOSUB Read_Tilt ' citete acceleraia i nclinarea ' afieaz rezultatele DEBUG CRSRXY, 0, 3 DEBUG "X Input... ", DEC (xRaw / 1000), ".", DEC3 xRaw, " ms",104

ROBOTI RECONFIGURABILI

CLREOL, CR, "G Force... ", (xmG.BIT15 * 13 + " "), DEC (ABS xmG / 1000), ".", DEC3 (ABS xmG), " g", CLREOL, CR, "X Tilt.... ", (xTilt.BIT15 * 13 + " "), DEC ABS xTilt, DegSym, CLREOL DEBUG CRSRXY, 0, 7 DEBUG "Y Input... ", DEC (yRaw / 1000), ".", DEC3 yRaw, " ms", CLREOL, CR, "G Force... ", (ymG.BIT15 * 13 + " "), DEC (ABS ymG / 1000), ".", DEC3 (ABS ymG), " g", CLREOL, CR, "Y Tilt.... ", (yTilt.BIT15 * 13 + " "), DEC ABS yTilt, DegSym, CLREOL PAUSE 200 ' repet de 5x/secund LOOP END ' -----[ Subrutine ]----------------------------------------------------Read_G_Force: PULSIN Xin, HiPulse, xRaw ' citete impulsul de ieire xRaw = xRaw */ Scale ' convertete n secunde xmG = ((xRaw / 10) - 500) * 8 ' calculeaz 1/1000 g PULSIN Yin, HiPulse, yRaw yRaw = yRaw */ Scale ymG = ((yRaw / 10) - 500) * 8 RETURN Read_Tilt: GOSUB Read_G_Force disp = ABS xmG / 10 MAX 99 'deplasament x GOSUB Arcsine xTilt = angle * (-2 * xmG.BIT15 + 1) 'stabilete semnul disp = ABS ymG / 10 MAX 99 'deplasament y GOSUB Arcsine yTilt = angle * (-2 * ymG.BIT15 + 1) 'stabilete semnul RETURN ' Rutine elaborate de Tracy Allen, PhD. (www.emesystems.com) Arccosine: disp = disp */ 983 / 3 ' normalizeaz intrarea la 127 angle = 63 - (disp / 2) ' aproximeaz unghiul DO ' determin unghiul105

ROBOTI RECONFIGURABILI

IF (COS angle