Sistem de Curatat Panourile Solare Bazat pe Platforma Myrio

CUPRINS

Introducere

Hardware

myRIO

Arhitectura

FPGA

Conectori Lego NXT

Servomotoarele NXT

Legăturile

Caracteristicile mecanice ale motorului

PWM

Codificatoare

Punte H

Senzorul Ultrasonic

Legăturile

Caracteristici

Comunicația

Senzorul tactil

Software

Codul FPGA

Controlul motoarelor

Codificatoare

FPGA

Real-Time

Senzorul ultrasonic

Real Time

FPGA

Senzor tactil

Rezultate

Introducere

Status Actual

Preocupați de poluarea mediului și de teama de a epuiza toate tipurile de energii neregenerabile si mai ales, preocupați de epuizarea combustibilului, mulți au recurs la utilizarea energiei regenerabile. Fie că sunt surse fotovoltaice, termosolare, eoliane, geotermale, hidro, biomase sau valuri, ele sunt energii curate si cel mai important, sunt surse gratis de energie.

Una dintre cele mai utilizate surse de energie regenerabilă este energia solară care oferă lumii suficientă energie pentru toată civilizația umană. Singura problema este captarea și stocarea acestei surse de energie nelimitată în ceva ce putem folosi, si anume, energie electric.

Energia solară este o sursă de energie regenerabilă emisă de soare. Se poate folosi pentru a genera electricitate cu ajutorul celulelor solare și al centralelor termice solare și pentru încălzirea clădirilor, fiind o sursă inepuizabilă. Este cea mai curată formă de energie și este gratuită.

Folosirea acestei surse este cea mai eficientă metodă pentru a reduce celelalte surse de energie necesare traiului dintr-o locuință. De asemenea, folosind această sursă, contribuim la protejarea mediului înconjurător, fiind o sursa ecologică.

Suprafața pământului și atmosfera terestră interacționează cu radiația solară producând o serie de transformări.

“Schema interacțiunilor dintre energia solară și atmosfera, respectiv suprafața terestră: Rev.

Tehnica Instalațiilor nr. 5/2003”

Pentru a capta si stoca energia solară, folosim panouri solare fotovoltaice (foto=lumină, voltaic=volt), care sunt compuse din celule solare și realizează conversia directă a luminii în energie electrică la nivel atomic . Panourile solare se folosesc separat sau legate în baterii. Cele mai folosite panouri sunt cele monocristaline si cele policristaline.

Ele sunt considerate generatoare de curent continuu încărcate de lumina solară. Atunci când celulele solare sunt lovite de fotoni(încărcați cu suficientă energie), aceștia eliberează electroni în structura cristalină și îi trimit printr-un circuit extern, electronii revenind la polul opus al celulei solare și întregul proces se repetă.

Mai multe celule solare conectate electric unele cu altele și montate pe un suport sau un cadru, formează un modul fotovoltaic. Aceste module au rolul de a furniza energia electrica la o anumită tensiune, iar curentul produs depinde de modul în care lumina ajunge la modul.

Eficiența de conversie în cazul unui modul este raportul dintre puterea electrică maximă produsă și puterea luminii utilizate în condiții de testare standard.

Construcția

Celula solară este formată din două sau mai multe straturi de material semiconductor. Structura celulei solare este asemănătoare unei diode. Celula solară absoarbe o parte din particulele de lumină ce cad pe aceasta, numite si fotoni. Fiecare foton conține o cantitate mică de energie. Celula produce electricitate ce poate fi folosită imediat sau stocată în acumulatori.

Celulele solare sunt de mai multe tipuri: monocristaline, policristaline, amorfe, film subțire etc. Diferența dintre ele o constituie structura si modul aranjării atomilor, lucru care dă aspect specific fiecărei celule solare.

“Radiația solară este transformată în energie electrică direct, prin utilizarea de materiale semiconductore, care creează tensiune într-un material după ce a fost expus la lumină. Panourile fotovoltaice sunt, în cea mai mare parte, din siliciu cristalin și arseniu de galiu și odată cu creșterea cererii de energie regenerabilă, fabricarea acestor panouri solare a crescut enorm.” [1]

Radiația solară în atmosferă

“Constructia unui panou solar obișnuit:

Un geam (de cele mai multe ori geam securizat monostrat) de protecție pe fața expusă la soare,

Un strat transparent din material plastic (etilen vinil acetat, EVA sau cauciuc siliconic) în care se fixează celulele solare,

Celule solare monocristaline sau policristaline conectate între ele prin benzi de cositor,

Caserarea feței posterioare a panoului cu o folie stratificată din material plastic rezistent la intemperii fluorura de poliviniliden (Tedlar) și Polyester,

Priză de conectare prevăzută cu diodă de protecție respectiv diodă de scurtcircuitare (vezi mai jos) și racord,

O ramă din profil de aluminiu pentru protejarea geamului la transport, manipulare și montare, pentru fixare și rigidizarea legăturii.” [2]

Există diverse aplicații ce utilizează energia electrică produsă de celulele solare:

ceasul de mână produs de firma japoneză Citizen,

calculatorul de buzunar,

aparate de taxare în parcări,

lampionul,

lampadarul,

balize luminoase,

pompe de apă,

mijloace de transport.

Avantajele folosirii panourilor solare constă în:

consumul redus de energie pentru încălzire și producerea apei calde menajere,

confort interior, grație asigurării unei temperaturi, umidități si ventilații potrivite.

emisii reduse de noxe, asigurând protecția mediului înconjurător,

durata lor de viață poate crește, teoretic, până la circa 25 de ani,

dacă sunt dimensionate corespunzător, amortizarea investiției se face in 8-12 ani.

Dezavantajele și riscurile utilizării panourilor solare:

instalarea de panouri solare induce dificultăți in revânzarea casei care are aceste panouri instalate deoarece viitorul cumpărător ar putea să nu și le doreasca ca să nu plătească în plus pentru ele,

achiziționarea instalației cu panouri solare și a pompelor de căldură este mai costisitoare și poate majora costul unei construcții cu cel puțin 10%,

costurile pentru realizarea izolației termice și a sistemelor de încălzire sunt mai mari decât cele clasice,

amplasarea imobilului pe axe geografice incorecte determină scăderea randamentului instalației și pericolul distrugerii panourilor,

este posibil să crească prima de asigurare a locuinței,

cresc riscurile în caz de calamități.

Principala preocupare a panourilor solare este sa le păstrăm cât mai curate. Curățarea si protecția lor este cea mai importantă deoarece acumularea de mizerie duce la scăderea eficienței acestor. Praful, poluarea, excrementele de păsări și insecte provoacă o scădere a performanțelor sistemului, iar diferența de energie poate ajunge până la 40%. Este recomandată verificarea panourilor mai ales in condiții meteorologice uscate, când depunerea de praf este mai mare. Dacă panourile sunt murdare, nu pot absorbi la fel de eficient razele solare și vor avea o performanță scăzută. Curațarea panourilor este o activitate neglijată de cele mai multe ori, mulți crezând ca se curăță sub acțiunea ploii, ceea ce s-a dovedit a fi total eronat. Ploaia transportă reziduuri și smog, astfel depunerile sunt perpetue si duc la scăderea eficienței panourilor.

Includerea roboților în industrie aduce beneficii precum managementul controlului și al productivității și creșterea calității produselor. Ei pot lucra continuu (zi și noapte) fără să-și reducă performanțele și fără să obosească. Prin reducerea consumurilor de materii prime și al prelucrării automate a acestora, se reduc substanțial prețurile. Se poate observa evoluția roboților către alte modele capabile de a înțelege mediul în care operează. Ei sunt utilizați în foarte multe domenii: construcții, comerț, medicină, transport, agricultură etc. Nu este exclus ca în viitorul apropiat sa folosim roboții pentru a înlocui multe din activitățile realizate de om. Unii ar considera ca aceste reduceri de personal să fie problematice, lăsând oamenii fără un loc de muncă, dar introducerea roboților în industrie și înlocuirea oamenilor cu ei creeaza meserii pentru tehnicienii din industria robotică,pentru ingineri, programatori etc.

Deosebim câteva tipuri principale de roboți concepuți pentru a curăța panourile solare:

Resola este un robot care curăță panourile solare. Pus pe panou, el își calculează singur drumul pe care îl are de urmat. Are o baterie și un recipient de apă cu care acoperă 75m2 până la reumplere.

Gekko Solar este un robot creat de compania elvețiana, Serbot. Acest robot este operat de unul sau doi operatori.

Ecoppia este un robot care este direct integrat în panoul solar și care se mișcă de sus în jos de-a lungul panoului. Acest robot nu folosește apa pentru a curăța panoul, ci folosește doua perii rotative cu aer comprimat pentru a șterge praful. Sistemul este conceput pentru zone secetoase unde nu plouă mai niciodată și unde singurul mod de murdărire este praful.

Camion cu două brațe robotice: pe fiecare dintre aceste brațe există câte patru perii, iar apa este pulverizată pe panou cu ajutorul duzelor.

Toate aceste sisteme, deja existente, fie au nevoie de un utilizator, fie sunt folosite doar in anumite zone. Sistemul pe care încerc să-l fac poate să funcționeze independent și în orice zonă. Acest concept se bazează pe un robot al cărui braț reușește să curețe panourile cu o perie rotativă. Se poate deplasa de la un panou la altul cu ajutorul unei camere video care-l ajută să identifice obstacolele și să le ocolească și de asemenea să găsească panourile și să le curețe. Brațul, de asemenea, conține o cameră video care ghidează peria de-a lungul panoului. Robotul este programat să efectueze aceste operații dimineața, înainte de răsărit. Folosește un recipient pentru stocarea apei, iar când aceasta se termină, robotul se întoarce pentru reumplere. Va avea costuri mai mari decât sistemele deja existente, dar compensează prin faptul că nu are nevoie de un utilizator.

Pentru îmbunătățirea captării și stocării energiei, pe timp de noapte sau cand cerul este înnorat, se folosesc heliostatele.

Un heliostat este un dispozitiv ce folosește o oglindă pentru a redirecționa lumina soarelui spre panourile solare pentru captare și stocare. În general, heliostatele sunt controlate de niște calculatoare care calculează poziția soarelui pe cer si ajustează poziția oglinzii în așa fel încât lumina soarelui să cadă pe oglindă și imediat trimisă pe panoul solar.

Cel mai mare beneficiu oferit de heliostat este acela că heliostatele pot fi așezate in așa fel încât toate să țintească spre un singur panou, oferindu-I foarte multă energie de stocat. În timp ce un panou normal primește ceva lumină, un aranjament de heliostate poate amplifica drastic cantitatea de lumina primită.

Curățarea heliostatelor este mai dificilă, deoarece ele sunt distanțate între ele, iar sistemul de curățare trebuie să se mute de la unul la altul.

Heliostatul construit de Johann Michael Ekling

„ Dacă am putea acoperi 1% din suprafața terestră cu celule fotovoltaice am putea înlocui toate sursele poluante și consumatoare de energie, cu una curată și regenerabilă” – Ted Sargent, profesor la Toronto University

Pentru controlul sistemului, se va folosi platforma myRIO, iar ca mediu de dezvoltare se va folosi limbajul de programare LabVIEW ( Laboratory Virtual Instrumentation Engineering Workbench). De asemenea se vor folosi un controler PID (proportional-integral-derivative) pentru controlul motoarelor și kit-ul Lego Mindstorms NXT V2

LabVIEW este un limbaj grafic de programare care permite dezvoltarea de aplicații utilizând pictograme. Spre deosebire de limbajele de programare textuale, în cadrul cărora instrucțiunile sunt cele care determină execuția programului, LabVIEW-ul folosește, în locul acestora, fluxul de date evidențiat printr-o prezentare grafică adecvată.

Pe de altă parte, în mod asemănător cu celelalte limbaje de programare, LabVIEW-ul conține biblioteci extinse de funcții și subrutine care pot fi utilizate în numeroase aplicații, precum achiziția, prelucrarea, analiza, prezentarea și stocarea datelor. Cu ajutorul unor echipamente de achiziție de semnale de la diverse tipuri de traductoare, LabVIEW-ul permite utilizarea performantă a calculatorului pentru măsurarea diverselor mărimi fizice, precum și controlul anumitor procese.

Numele utilitarului provine din faptul că National Instruments, corporația care a introdus programele LabVIEW, a denumit generic aplicațiile Instrumente Virtuale, prescurtat VI (din limba engleză Virtual Instruments). LabVIEW-ul a avut în vedere, în primele sale versiuni, realizarea de programe care să substituie prin intermediul calculatorului o serie de instrumente și aparate electronice, adesea imitând imaginile și modurile de operare ale acestora. De altfel, LabVIEW reprezintă prescurtarea denumirii din limba engleză Laboratory Virtual Instrument Engineering Workbench.

Termenul de Instrument Virtual se folosește cu referire la un instrument de măsură sau de automatizare simulat printr-un program și se realizează pe baza unui software, un program de simulare și a unui element hardware, compus din module de prelucrare a semnalelor și placi de achiziție de date

În mediul de programare grafică oferit de LabVIEW, instrumentul virtual definește un modul software, un program ce constă dintr-o interfață cu utilizatorul, panoul frontal (ce simulează intuitiv partea din față a instrumentului clasic) și un program de tip schemă-bloc (o diagramă, accesibilă numai programatorului).

Interfața programului e formată din două ferestre:

Front Panel este interfața dinspre utilizator a instrumentului virtual și elementul de bază al programelor elaborate în LabVIEW deoarece cu ajutorul său se realizează introducerea sau extragerea datelor în/din mediul de programare. În panoul frontal, comenzile care implică intervenția utilizatorului sunt în foarte mare măsură simplificate, fiind preferate elementele de comandă și afișare grafice, denumite controale sau indicatoare. Controalele reprezintă intrările în instrumentul virtual, cele care introduc datele, iar ieșirile, cele care comunică operatorului datele rezultate din proces, poartă numele de indicatoare (elemente de afișare)

Controalele au diferite aspecte, precum: butoane, întrerupatoare, comutatoarea, cursoare, cadrane etc.

În Lab View pot fi tratate structuri de date de la simple până la foarte complexe, valori numerice, șiruri de texte, grafice etc. La indicatoare, aceste structuri de date gestionate de program își stabilesc singure forma optimă a reprezentării datelor pe care le primesc.

Intrările și ieșirile de date sunt duble, fiind destinate atât operatorului, cât și programului, iar distincția între controale și indicatoare nu este rigidă, deși unele sunt exclusiv elemente de afișare, iar altele de comandă

Diagrama bloc cuprinde, în spațiul de lucru, reprezentarea grafică a funcțiilor corespunzătoare obiectelor de pe panoul frontal și ilustrează modul în care circulă fluxul de date și operațiile de prelucrare ale acestora. Astfel, diagrama bloc conține codurile sursă ale programului VI-ului. În cadrul diagramei bloc obiectele de pe panoul frontal apar sub formă de terminale, care constituie porturi de intrare și de ieșire prin care se efectuează schimburile de informații cu panoul frontal. Obiectele din diagrama bloc, care evidențiază operațiile efectuate de către programul VI-ului, se numesc noduri (sunt asemănătoare cu operatorii/subrutinele din programele textuale). Transferul datelor între obiectele din diagrama bloc este asigurat prin legături de conexiune între acestea (wires) având culori, stiluri și grosimi diferite, în funcție de tipurile de date pe care le vehiculează. Orice legătură pornește de la o singură sursă de date, dar poate fi conectată la unul sau mai mulți receptori. În diagrama bloc se mai întâlnesc și așa-numitele structuri (structures), care sunt reprezentări grafice ale buclelor și instrucțiunilor de control de la limbajele de programe textuale.

Exemplu de diagramă bloc

Principalele mijloace pentru construirea unei aplicații LabVIEW sunt: meniurile, butoanele și paletele.

Meniurile: Pe bara de meniuri sunt listate șapte tipuri, aceleași pentru ambele ferestre, având atât opțiuni comune tuturor aplicațiilor din alte medii de programare, cât și opțiuni specifice LabVIEW.

File – este meniul care servește pentru deschiderea, închiderea, salvarea unei noi aplicații sau a uneia existente, setarea imprimantei și lansarea comenzii de tipărire, descrierea proprietăților VI, listarea fișierelor recent deschise, lansarea comenzii de ieșire

Edit – este mendiul destinat efectuării operațiilor curente de editare, precum: anulează/reface ultima comandă, șterge/copiază obiectul selectat în clipboard, plasează conținutul clipboard-ului în fereastră, șterge definitv obiectul selectat, lansează comanda, găsește și afișeaza rezultatele, particularizează controalele, scalează dimensiunile obiectului cu cele ale panoului, importă figuri dintr-un anumit fișier, șterge conexiunile intrerupte, crează subVI-uri, modifică timpul de execuție.

Operate – este meniul prin care se exercită acțiuni asupra derulării programului cum sunt execuția/oprirea rulării VI-ului curent, întreruperea rulării când este apelat VI-ul, tipărirea panoului în completare, trecerea datelor într-un fișier în aceeași situație, afișarea opțiunilor de trecere a datelor în fișier, transformarea valorilor curente în valori prestabilite, aducerea tuturor controalelor și indicatoarelor la valorile prestabilite, comutarea între regimurile de execuție și editare, descărcarea aplicației, motorul de timp real, comutarea execuției obiectivului, conectarea la panoul de acces la distanță.

Tools – este meniul prin care se pot utiliza diverse facilități ale LAbVIEW precum: bowser-ul intrumentelor National Instruments, accesarea drivere-lor respectivelor instrumente, afișarea canalelor și expertului pentru achiziția datelor, înregistrarea datelor și gestionarea supervizării, compararea atributelor și ferestrelor, controlul codurilor sursă, istoria VI-ului, numele utilizatorului, construcția aplicației/partajarea bibliotecilor, gestionarea și editarea bibliotecii VI-ului, controlul și gestionarea conexiunilor, instrumente WEB, operații avansate, opțiuni privind rutele de stocare și obiectivele de timp real.

Browse – este meniul de cautare pentru ierarhizarea VI-urilor, apelarea subVI-urilor și punctelor de întrerupere.

Window – este meniul care permite schimbarea ferestrelor, adică vizualizarea ferestrei diagramei bloc atunci când se lucrează cu panoul frontal și invers, afișarea paletei controalelor, respectiv a paletei funcțiilor, afișarea conținutului memoriei clipboard și a listei erorilor, dispunerea ferestrelor alăturat sau una deasupra celeilalte, ocuparea întregului ecran, prezentarea ferestrelor VI-ului deschis în sesiunea curentă.

Help – este un meniu cu rol de ajutor ca și în cazul altor medii de programare, care conține multiple opțiuni precum: afișarea/blocarea Help-ului contextual care oferă ajutor cu privire la obiectele și operațiile de lucru din ferestre, informații privind pachetul de documentații LabVIEW, afișarea adreselor de WEB din domeniu, explicarea erorilor de programare a VI-ului curent, informații despre înregistrarea datelor și controlul supervisor, Help pentru VI-uri cu mobilitate flexibilă, informații cu privire la procesarea imaginilor cu VI-uri și exemple, ajutor privind drivere-le pentru anumite instrumente avansate, informații cu privire la versiunea LabVIEW.

Butoanele: Pe bara de butoane din fereastra panoului frontal se pot vedea opt butoane și casete ale căror denumiri se vizualizează poziționând mouse-ul deasupra lor.

Run

Run Continuously

Abort Execution

Pause

Text Settings

Align Objects

Distribute Objects

Reorder

Highlight Execution

Step Into

Step Over

Step Out

Paletele: LabVIEW dispune de trei palete grafice care servesc la crearea și operarea cu VI-uri.

Paleta Tools – Uneltele permit executarea de operații necesare pentru crearea, modificare și corectare VI-urilor. În momentul în care se execută click pe una dintre unelte, pointerul mouse-ului ia forma acesteia.

Paleta Controls – se poate afișa numai atât timp cât este deschisă fereastra panoului frontal. Această paletă conține un număr de 15 butoane principale, care de fapt reprezintă subpalete în cadrul cărora se asigură accesul la obiectele din categoria respectivă, ce pot fi de doua feluri: controale și indicatoare. Subpaletele se accesează executând click pe butonul corespunzător categoriei dorite și la partea superioară a paletei apare numele subpaletei deasupra căreia s-a aflat pointerul mouse-ului.

Paleta Controls poate fi accesată și executând click pe tasta dreapta a mouse-ului pe suprafața de lucru a panoului.

Paleta Functions – se poate afișa numai atât timp cât este deschisă fereastra diagramei bloc. Conține 23 de butoane care, de fapt, reprezintă subpalete în cadrul cărora se asigură accesul la funcțiile și aplicațiile din categoria respectivă și 3 butoane de navigație. Subpaletele se accesează executând click pe butonul corespunzător categoriei dorite si la partea superioară a paletei apare numele subpaletei deasupra căreia s-a aflat pointerul mouse-ului

LabVIEW a devenit un limbaj de programare foarte utilizat continuând să revoluționeze dezvoltarea aplicațiilor de testare, măsurare și control si având un impact puternic în cercetare și predare conceptuală. Laboratoarele bazate pe LabVIEW cresc productivitatea cercetătorilor si, de asemenea, imbunătățește modul de învățare al studenților, prin reorientarea atenției de la metodele dificile de colectare a datelor, către interpretarea rezultatelor și analiza conceptelor predate.

MyRIO este un dispozitiv creat de National Instruments și este destinat, mai mult, studenților si elevilor în scopuri educaționale. Dispozitivul poate comunica cu un calculator sau cu alte dispozitive NI prin Usb sau prin Wi-fi. Bazat pe aceeași tehnologie ca și populara platformă NI CompactRIO, NI myRIO este mai mic și mai ușor de utilizat decât versiunea industrială. NI myRIO include cel mai nou sistem programabil Zynq pe un chip (SoC), tehnologia de la Xilinx, care îmbină procesorul dual core ARM Cortex – A9 și un FPGA (Field Programmable Gate Array) cu 28000 de celule logice programabile. Utilizând puterea noului mediu grafic de programare NI LabVIEW, se pot programa FPGA-uri și se pot dezvolta sisteme ce rulează în timp real, oferind flexibilitatea pentru dezvoltarea unui prototip și posibilitatea de integrare rapidă in design-uri.

NI myRIO include de asemenea 10 intrări analogice, 6 ieșiri analogice, canale audio I/O și până la 40 de linii digitale I/O. Include WiFi, un accelerometru pe trei axe și mai multe LED-uri programabile, montate într-o structură robustă și compactă.

Cu ajutorul plăcii myRIO se pot crea diverse aplicații;

O aplicație destul de simplă este aprinderea unui led la apăsarea unui buton al plăcii (BUTTON0)

Codul aplicației în LabVIEW:

LEGO Mindstorms NXT este un kit de robotică programabilă lansat de LEGO în 2006. Acesta este dotat cu software-ul de programare NXT-G sau,opțional, LabVIEW pentru MINDSTORMS LEGO. O nouă versiune a setului, noul Lego Mindstorms NXT 2.0, a fost lansată în 2009, oferind un senzor de culoare și alte capabilități îmbunătățite.

Principala componentă din kit este un calculator în formă de caramidă numit NXT Intelligent Brick (Ciara). Această componentă poate controla până la trei motoare. Folosind NXT Intelligent Brick, se pot crea programe destul de simple.

Kit-ul NXT are în dotare cărămida(care este formata dintr-un microprocesor pe 32 de biți, 7 porturi de intrare și ieșire, comunicație prin Bluetooth și USB), trei servomotoare, iar pe parte de senzoristică are un senzor ultrasonic(care detectează obiectele de la distanță), doi senzori tactili și un senzor de culoare(ce poate fi folosit și ca senzor de lumină). Softul folosit este ușor de utilizat fiind pe bază pe bază de drag&drop. Mai are 612 piese de LEGO care pot fi folosite pentru construirea unor roboți destul de interesanți și, de asemenea, instrucțiuni de construire pentru patru roboți.

Controler-ul PID( proportional-integral-derivative) este cel mai utilizat algoritm de control folosit în industrie. Ideea de bază din spatele unui controler PID este de a citi un senzor, apoi calculează o valoare de eroare ca diferența dintre o variabilă de proces măsurată și o valoare de referință dorită. Controlerul încearcă să minimizeze eroarea prin ajustarea procesului prin utilizarea unei variabile manipulate.

Un controler PID se bazează numai pe variabila de proces măsurată, nu pe cunoașterea procesului de bază, facându-l un controler util. Prin reglarea celor trei parametri în algoritmul PID, controlerul poate oferi acțiuni de control concepute pentru cerințe specifice de proces.

Unele aplicații pot necesita folosind numai una sau două acțiuni pentru a asigura controlul unui sistem adecvat. Aceasta se realizează prin stabilirea celorlalți parametri la zero. Un controler PID va fi numit un PI, PD, P sau controlor I în absența acțiunilor de control respective.

Controlere-le PID au supraviețuit multe schimbări în tehnologie, de la mecanică și pneumatică la microprocesoarelor prin tuburi electronice, tranzistori, circuite integrate. Microprocesorul a avut o influență dramatică asupra controlerul-ui PID. Practic, toate controlere-le PID făcute astăzi se bazează pe microprocesoare.

Hardware

myRIO

Este un dispozitiv creat de National Instruments. A fost conceput, în mare parte, pentru a fi folosit în educație. Se conecteaza la calculator prin USB sau Wi-fi

Mai multe detalii se pot gasi aici.

Arhitectura

NI myRIO are 10 intrări analogice, 6 ieșiri analogice, canale audio I/O și până la 40 de linii digitale I/O. Include WiFi, un accelerometru pe trei axe și mai multe LED-uri programabile, montate într-o structură robustă și compactă.

FPGA

myRIO are încorporat un FPGA (field programmable gate array) care imită porțile logice pentru a procesa codul. Diferența între FPGA-ul de pe myRIO și cel real o constituie viteza execuției care este mai mare la myRIO si posibilitate de a rula coduri reale în paralel Cu toate acestea, programul tot are nevoie sa compileze codul.

Conectori Lego NXT

Kit-ul NXT folosește niște jack-uri asemănătoare cu cele de telefon, RJ12. Pentru a-l face să se potrivească kit-ulu NXT, trebuie sa mutăm încuietoarea pe partea dreapta a conectorului și să-l mai micșorăm în lățime.

Un conector RJ12 în partea stângă, iar în partea dreapta cel modificat pentru kit-ul NXT

Specificațiile pinilor jack-ului:

Pin1 – semnalul de ieșire PWM 1;

Pin2 – semnalul de ieșire PWM 2;

Pin3 – masă;

Pin 4 – sursă de alimentare (4.3V);

Pin5 – valoarea de intrare (digitală sau analogică);

Pin6 – valoarea de intrare (digitală sau analogică).

Servomotoarele NXT

Legăturile

Se folosesc motoarele din kit-ul Lego NXT Mindstorms care au în componență jack-urile modificate RJ12 care sunt compuse din 6 fire:

Firul Alb – alimentarea motorului 1;

Firul Negru – alimentarea motorului 2;

Firul Roșu – masa;

Firul Verde – alimentarea codificatorului (4.3V);

Firul Galben – Valoarea codificatorului (1);

Firul Albastru – Valoarea codificatorului (2).

Puterea necesară pentru alimentarea motorului este de 9v. Aplicarea acestei tensiuni oricărui motor, face posibilă controlarea direcției.

Caracteristicile mecanice ale motorului

PWM

Pentru controlarea vitezei motorului se va folosi semnalul PWM (pulse width modulation). Este o metodă care generează un semnal analog folosind o sursă digital. Semnalul PWM este definit de două component care-i descriu comportamentul: perioada și frecvența.

Codificatoare

Puntea H

Puntea H este un circuit care permite aplicarea unei tensiuni pe o sarcină în orice direcție. Circuitele se folosesc în robotică și alte aplicații care permit motoarelor de curent continuu să ruleze înainte și înapoi. Punțile se pot gasi ca circuite integrate sau se pot construe din component discrete, tranzistoare polare sau MOS. Numele punții este derivate de la modul normal de desenare a circuitului, fiind singura cale de tip solid state de a comanda motorul în ambele direcții.

Ca sa funcționeze trebuiesc ca două întrerupatoare să fie închise, iar celelalte deschise. Când întrerupătoarele S1 și S4 sunt închise, iar S2 și S3 deschise, se aplică o tensiune pozitivă la nivelul motorului. Prin inversare, S1 și S4 deschise, iar S2 și S3 închise, tensiunea se inverseaza, permițând motorului să funcționeze invers. Dacă S1 și S2 sunt închise în același timp, se va produce scurt – circuit la sursa de tensiune.

O singură punte H poate controla până la doua motoare.

Puntea folosită pentru acest sistem este L298

Conectarea pinilor

Pinul Enable permite motorului să se întoarcă, iar cei doi pini, Output, îi permite să controleze direcția.

Controlul motorului în funcție de pinii punții

Aplicând un semnal PWM la una din intrări (input) și încărcând enable-ul și cealaltă intrare (input), putem controla viteza motorului. Pentru a inversa direcția, trebuie să dezactivăm celălalt input. Dacă semnalul PWM este aplicat pe enable are un efect nesemnificativ, lăsând motorul să funcționeze cu jumătate din puterea totală.

Senzorul de distanta cu ultrasunete

Acest senzor este folosit pentru detecția obiectelor de la distanță prin ultrasunete. Un val ultrasonic va fi emis de senzol și se va ciocni de fiecare obiect aflat în cale, permițând senzorului sa determine distanța până la obiecte prin reîntoarcerea valului ultrasonic înapoi la senzor.

Legături

Firul Alb – sursă de alimentare (+9V);

Firul Negru – masă;

Firul Roșu – masă;

Firul Verde – sursă de alimentare (+4.3V);

Firul Galben – I2C clock line(scl);

Firul Albastru – I2C data line (sda).

Caracteristici

Raza de acțiune : de la 0 la 255 cm (raza teoretică, practic bate de la 4 la 255 cm datorită zonei moarte);

Acuratețe : +/-3cm;

Directivitate : un unghi de aproximativ 30o.

Pentru eficiență maximă, senzorul trebuie să aibă în față obiecte drepte și mari, deoarece cele curbate dau o citire eronată. Senzorul poate fi programat să facă măsurări doar atunci când i se cere asta, el fiind setat se ruleze continuu. Pentru acest sistem s-a ales să ruleze continuu, nu să i se ceară.

Comunicația

Senzorul folosește protocolul I2C pentru a comunica.

Senzorul tactil

Comparativ cu ceilalți senzori din kit-ul NXT, senzorul tactil este cel mai simplu și cel mai intuitiv. El funcționează ca un buton de comandă, iar în momentul în care este acționat, circuitul este închis și curentul trece prin el. Cea mai folosită comandă a acestui senzor este cea de amortizare. Amortizoarele sunt cele mai simple modalități de a interacționa cu mediul înconjurător, ele permițând robotului să detecteze obstacolele în momentul în care le atinge, schimbându-și orientarea corespunzător

Senzorul poate să aibă trei funcțiuni: apăsat, lăsat sau amortizat. Ele sunt importante deoarece obligă robotul să reacționeze diferit, în funcție de situație. Una din metodele de programare este din softul NXT – G: în tabloul de comandă există două subdiviziuni – selectarea portului pe care este conectat senzorul și modul de acționare al acestuia. În cea de-a doua se selectează funcșiile apăsat, lăsat și amortizare. Amortizarea se referă la apăsarea rapidă a butonului și eliberarea acestuia în mai puțin de 5 secunde. A doua metodă de programare se găsește în meniul controllerului NXT. Aceasta este cea mai utilizată metodă, mai ales în momentul în care se dorește verificarea funcționării senzorului.

Software

Robotul este controlat de dispozitivul myRIO, iar codul este scris cu ajutorul limbajului grafic de programare LabVIEW. Programul (codul) este împărțit în două: o parte a codului rulează pe FPGA, iar cealaltă rulează în controllerul Real – Time.

Codul FPGA

Codul pe FPGA este constitui din bucle while pentru fiecare senzor

Controlul motorului

PWM

Motoarele sunt controlate cu ajutorul semnalului PWM. Toate motoarele sunt controlate în aceeași buclă pentru a reduce spațiul pe FPGA.

Motoarele NXT: Primele trei motoare au același cod și pentru viteză și pentru direcție.

Valoarea Enable este conectată direct la pinul Enable. Pentru direcție, o structură Case schimbă valoarea pinului de ieșire pe low sau high. Polaritatea celuilalt pin de ieșire este introdusă într-o structură sequence.

În primul cadru este inițializat un timer global pentru buclă care se va desfășura pe perioada cerută.

În al doilea cadru se dezactivează cealaltă ieșire a motorului și se calculează durata întregii bucle.

În cel de-al treilea cadru funția wait folosește rezultatul calculului din cadrul 2 în timp ce ieșirea este inactivă.

În ultimul cadru, ieșirea este activată; acest cadru rulează până la sfârșitul timer-ului global.

Al patrulea motor nu este un motor aparținând kit-ului NXT, este un simplu motor în curent continuu ( curentul continuu este o mișcare de sarcini electrice într-un singur sens printr-un mediu oarecare. Este produs de baterii electrice, termocuple, celule electrice solare, generatoare electrice cu colector – comutator) folosit pentru a pune în mișcare peria robotului. Acest motor necesită o alimentare de 6 V în timp ce doar 9V sunt disponibili pentru acest robot. Pentru a reduce din tensiunea necesară, se va folosi un semnal PWM fix.

PID

Valoare trimisă pe FPGA pentru bucla de control a motorului, este calculată într-un sub-vi în Real – Time. Pentru aceasta, se folosește un PID(proportional integral derivative).

Codificatoare

Senzorul Ultrasonic

Ca și pentru celelalte componente, controlul senzorului ultrasonic este împărțit în FPGA și Real – Time.

Real – Time

În primul cadru se va citi valoarea anterioară trimisă de codul FPGA apoi va fi convertită într-un numar;

În al doilea cadru se așteaptă 10ms;

În al treilea cadru se va trimite o valoarea la senzor prin protocolul I2C.

FPGA

Senzorul comunică cu I2C, dar protocolul I2C folosit de kit-ul Lego NXT diferă de protocolul standard:

Frecvența comunicației nu este la fel ca cea standard a protocolului I2C, în datasheet este aproximată la 9600Hz. După ce s-a făcut o analiză a semnalului dintre senzor si cărămidă, valoarea reală este de 11kHz, această valoare fiind folosită în cod.

Citirea unei valori de la senzor trebuie realizată în mod repetat. Deși acest start repetat se găsește în I2C, acesta nu este identic cu cel standard.

După fiecare start repetat este necesară adăugarea unui puls(fără date).

Comunicația este realizată printr-o structură sequence. Scopul structurii este de a cere ca primul registru să fie citit, registrul care conține valoarea modului de citire continuue, dar valoarea trimisă se poate modifica.

Codul pentru citirea distanței, conform foii de calcul a senzorului, este:

Similar Posts