Sunteți pe pagina 1din 12

Limbajul de programare LabView pentru trusa LegoMindstorms Ev3

Limbajul de programare LabView pentru trusa LegoMindstorms Ev3 este un limbaj de


programare grafic, implementat de firma americană National Instruments, pentru programare
roboților ce pot fi creați cu ajutorul trusei produsă de firma daneză Lego.
Avantajele acestui limbaj de programare sunt:
 Simplitate – programele sunt create ușor, prin utilizarea unui instrument grafic al
limbajului adecvat acțiunii dorite pentru robot.
 Nu necesită scrierea unui cod (cu ajutorul unor cuvinte cheie și de o anumită structură
și sintaxă), ci instrumentele introduse în program sunt setate cu ajutorul unor
proprietăți puse la dispoziție de meniul propriu.
 Este intuitiv, instrumentele grafice și setările lor sunt asemănătoare/identice cu cele
cu care se lucrează în realitate cu aceste obiecte (motoare, senzori, etc.)
Pentru crearea unui program se execută pașii:
 Alegerea instrumentului adecvat acțiunii curente
 ”Tragerea” (drag and drop) lui pe suprafața de lucru și legarea la instrumentul
precedent sau la butonul Start (în cazul primului instrument). Atenție la această
conexiune, în caz contrar programul nu execută pașii respectivi, iar instrumentele apar
estompate (starea disable)
 Setarea instrumentului în funcție de acțiunea ce i se impune a o executa

Interfața aplicației
Fereastra afișată la deschiderea aplicației este o fereastră clasică Windows, dar și cu elemente
specifice.
 Bara de titlu care conține:
o Numele aplicației (a)
o Butoanele standard ale unei ferestre Windows (Minimizare/Maximizare,
Micșorare/Restaurare, Închidere) (b)
 Meniul principal (relativ standard Windows) (c)
 Suprafața de lucru (d) (în care va fi creat programul prin tragerea instrumentelor și
legarea lor de butonul Start) (e)
 Instrumentele de lucru ale programului (f)
 Fereastra de comunicare cu automatul programabil (g)
Instrumentele limbajului
Instrumentele limbajului sunt împărțite în mai multe tab-uri (categorii), aflându-se la partea
inferioară a ferestrei interfeței programului.

1. Grupa actuatorilor (Action)

A. Actuatorii (grupa Action)


Sunt instrumentele care simulează componentele de execuție ale robotului.

a. b. c. d. e. f. g.
a. Motorul de acțiune (Medium Motor)
Este motorul care va fi selectat pentru a se executa mișcări de lucru ale robotului (Ex: un braț
care va efectua anumite mișcări în vederea executării unor operații)
Instrumentul corespunde motorului electric mic al trusei LegoMindstorms.
Setări:
 Portul la care se conectează motorul la automatul programabil
 Modul de lucru:
o Oprit
o Funcționare continuă
o Funcționare un anumit timp (în secunde)
o Funcționare până când arborele motorului se rotește
un anumit număr de grade
o Funcționare până când arborele motorului se rotește
un anumit număr de rotații (1 rotație = 3600 )
 Setarea valorii puterii motorului
 Setarea valorii parametrului ce determină durata funcționării (vezi Modul de lucru)
 Setarea stării motorului după oprire (True – după funcționare rămâne blocat, False –
după funcționare nu rămâne blocat – poate fi rotit arborele manual)

b. Motorul de acțiune (Large Motor)


Are rol identic cu motorul mediu având o putere mai mare decât acesta. Instrumentul
corespunde motorului mare al trusei. Are setările identice cu ale motorului mediu.

c. Motorul de tracțiune (Move Steering)


Instrumentul corespunde unei perechi de motoare mari ale trusei, care lucrează în tandem. În
general rolul lor este de a pune în mișcare robotul. Cele două motoare se comportă ca și roțile
unui automobil (pot avea turații diferite).
Setări:
 Portul la care se conectează motoarele la automatul
programabil
 Modul de lucru – cu aceeași parametri ca motorul mediu
 Sensul de înaintare: parametrul are un cursor de reglaj
o Valoarea 0 (cursor în poziția de mijloc) – mers înainte
o Valoare pozitivă (cursor în partea dreaptă a domeniului) – curbă dreapta.
Observație: valoare extremă determnă întoarcerea robotului.
o Valoare negativă (cursor în partea stângă a domeniului) – curbă stânga.
Observație: valoare extremă determnă întoarcerea robotului.
 Setarea valorii puterii motorului. Valorile negative determină mersul înapoi al
robotului.
 Setarea valorii parametrului ce determină durata funcționării (identic motorul mediu).
 Setarea stării motorului după oprire (identic motorul mediu)

d. Motorul de tracțiune (Move Tank)


Instrumentul corespunde unei perechi de motoare mari ale trusei, care lucrează în tandem. În
general rolul lor este de a pune în mișcare robotul. Cele două motoare se comportă ca și roțile
unui tanc șenilat.
Setări:
Sunt aceleași setări ca cele ale motorului mediu cu excepțiile:
 Puterea este setată pentru fiecare motor în parte (motor
stânga, respectiv motor dreapta).
 Setarea diferită a puterii motoarelor determină robotul
tanc să facă un viraj (motorul setat cu putere mai mică determină viraj în direcția
poziției lui). Observație: dacă un motor este setat cu o putere, iar celălalt cu o putere
cu aceeași valoare absolută dar de semn contrar, determină un viraj pe loc al robotului
tanc.

e. Ecranul automatului programabil (Display)


Permite afișarea pe ecranul automatului programabil a unor
elemente diferite (text, imagini, etc.)
Setări:
 Tipul elementului afișat:
o Text (Text) - (mărimea și poziția lui sunt
setate fie în pixelli, fie în caroiaj x-y)
o Forme geometrice (Shapes)
 pof fi cercuri, dreptunghiuri, puncte,
linii)
 se setează:
poziția lor pe ecran
mărime elementelor caracteristice
umplerea
culoare
o Imagine
o Resetarea afișajului – este reafișat mesajul standard al ecranului automatului
programabil (în general numele programului rulat)
 Ștergerea ecranului înainte de afișarea elementului setat
 Poziția setării elementului
 În afara afișărilor standard, mai pot fi afișate și elemente diferite, cum ar fi:
o Valori aflate în biblioteca programului Lego
o Valori aflate în biblioteca proiectului
o Valori ale altor elemente ale programului (de exemplu semnale ale senzorilor)
f. Difuzorul (Sound)
Permite emiterea de robot a unor semnale acustice (sunete).
Setări:
 Modul de lucru:
o Stop – oprește emiterea oricărui sunet în
momentul respectiv
o Play File – produce un sunet înregistrat într-un
fișier aflat în biblioteca programului,
proiectului sau primit printr-un fir de legătură
cu un alt element al programului
o Play Tone – produce un sunet de o anumită
frecvență. În acest caz se vor seta frecvența și
durata sunetului.
o Play Note - produce un sunet corespunzător
unei anumite note produsă de unpian standard. În acest caz se vor seta numele
notei (ex: B2 – nota SI din octava a doua) și durata sunetului.
 Volumul sunetului
 Tipul sunetului
o Modul de producere al sunetului
o Valorile pot fi:
 0 - Sunetul se redă o singură dată, iar programul așteaptă terminarea
sunetului înainte de a continua
 1 - Sunetul se redă o singură dată, iar programul continuă imediat.
 2 - Sunetul se va repeta continuu până când se execută un alt bloc de
sunet, iar programul continuă imediat.

g. Luminile/led-urile automatului programabil (Brick Status Light)


Permite aprinderea led-urilor automatului programabil
Setări:
 Modul de lucru:
o Oprit (Off) – luminile sunt închise
o Pornit (On) – lumnile sunt activate
o Restabilire (reset) – readuce luminile în starea standard
(verde clipitor)
 Culoarea luminii led-urilor
 Modul de aprindere:
o True – lumina este clipitoare (intermitentă)
o False – lumina este continuă

B. Instrumentele de programare (Flow Control)


Sunt instrumentele prin care sunt implementate în program structurile de programare ale
limbajelor standard de programare.

a. b. c. d. e.
a. Butonul Start
Este elementul de unde se declanșează rularea programului. Inițial programul are un buton
Start predefinit, dar dacă se dorește rularea în paralel a mai multor secvențe, atunci se adaugă
programului unul sau mai multe butoane Start. La rulare se pornește execuția simultană a
tuturor ramurilor care pornesc dintr-un buton Start.

b. Wait (Așteptarea necondiționată)


Permite suspendarea rulării programului pe o anumită perioadă de
timp.
Setări:
 Time – oprirea este necondiționată o anumită durată în
secunde care este setată.
 Un anumit senzor – oprirea durează până când valoarea
semnalului senzorului selectat atinge sau depășește o
anumită valoare setată

c. Loop (Structura repetitivă)


Introduce în program o repetiție a unui bloc de instrucțiuni/acțiuni. Încheierea repetiției este
determinată de setarea unui anumit element.
Setări:
 Valoarea setată a unui anumit senzor (selectat din listă)
 Unlimited - repetiția durează la infinit – oprirea programului
este realizată prin apăsarea tastei Esc a automatului
programabil
 Count – instrucțiunile se repetă de un anumit număr de ori
(număr care este setat)
 Logic – repetiția durează cât timp condiția logică impusă
structurii este falsă. Varianta este utilizată când programul
impune o condiție nedeterminată de senzori (ex. –
atingerea/depășirea unei anumite valori a unei variabile)
sau condiția este dată de semnalul a minim doi senzori (în
acest caz condițiile separate ale senzorilor se leagă prin operatorii logici ȘI/AND sau
SAU/OR)
 Time – depășirea unui timp a cărui durată este setată

d. Switch (Structura de decizie/alternativă)


Introduce în program ramurile ADEVĂRAT/TRUE sau FALS/FALSE a
unei structuri alternative. Structura are o condiție. În situația în care
condiția este adevărată se executa instrucțiunile din ramura
superioară, iar dacă condiția este falsă se executa instrucțiunile din
ramura inferioară.
Setări:
 Valoarea setată a unui anumit senzor (selectat din listă)
 Text – dacă mesajul/cuvântul coincide cu textul setat se
consideră condiția adevărată, în caz contrar ea este falsă
 Logic – dacă condiția impusă structurii are valoarea adevărat
se executa instrucțiunile din ramura superioară, iar dacă
condiția este falsă se executa instrucțiunile din ramura inferioară.adevărat. Varianta
este utilizată când programul impune o condiție nedeterminată de senzori (ex. –
atingerea/depășirea unei anumite valori a unei variabile) sau condiția este dată de
semnalul a minim doi senzori (în acest caz condițiile separate ale senzorilor se leagă
prin operatorii logici ȘI/AND sau SAU/OR)
 Numeric - dacă numărul de ntrare coincide cu cel setat se consideră condiția
adevărată, în caz contrar ea este falsă.

e. Întreruperea forțată a repetiției (Loop Interrupt)


Face ca un bloc Loop să se încheie forțat (înainte de îndeplinirea condiției impuse). Nu se vor
mai executa blocuri în secvența buclă, iar programul va continua cu orice blocuri care sunt după
buclă. Se poate specifica ce bloc Loop trebuie întrerupt utilizând numele lui/numărul său de
ordine.

Se poate întrerupe o buclă din interiorul buclei în sine sau dintr-o altă secvență de bloc care
rulează în același timp cu condiția să aibă un număr de ordine diferit.
Exemplu: Bucla 02 din cadrul buclei 01 se va repeta până când se va apăsa senzorul de
atingere 1. La atingerea lui bucla 02 se încheie (deși este setată unlimited) și se va trece la bucla
03.

C. Senzorii (Sensor)
Este grupa care permite simularea senzorilor sistemului.

a. b. c. d. e. f.
a. Bricks Buttons (Butoanele automatului programabil)

Blocul primește date de la butoanele automatului programabil, care sunt cele șase butoane
(Left/stânga, Enter/centru, Right/dreapta, Up/sus Down/jos și Esc/Ieșire) pe fața cărămizii EV3.

Puteți afla ce buton este apăsat și obțineți o ieșire numerică. De asemenea, puteți testa unul
sau mai multe butoane pentru a verifica dacă unul este Pressed (apăsat), Released (eliberat) sau
Bumped (apăsat și eliberat) și să obțineți o ieșire logică (adevărată sau falsă).
Setări:
 Mode selector (Modul de lucru):
o Measure – la ieșire se află numărul butonului
apăsat/eliberat/ambele
o Compare – la ieșire se testează starea
(apăsat/eliberat/ambele/fără acțiune) butonului selectat
 Inputs (Setări buton) :
o Selectarea din listă a butonului a cărui stare se dorește testa (pot fi selectate și
mai multe butoane)
o Starea butonului ce se dorește testată
 Outputs – răspunsul testării. Numărul butonului acționat (modul Measure: 0 = None, 1
= Left, 2 = Center, 3 = Right, 4 = Up, 5 = Down) sau a butonului testat (modul Compare:
True/False în funcție de acțiunea setată pentru butonul respectiv are/nu are loc)

b. Color Sensor (Senzorul de culoare)


Permite măsurarea/verificarea culorii unui obiect, a reflexiei
luminii de un obiect sau a luminozității mediului.
Setări:
 Port - Portul la care este conectat senzorul la
automatul programabil
 Mode selector (Modul de lucru):
o Measure:
 Color - Are ca rezultat un număr corespunzător culorii detectate (0 = No
Color, 1 = Black, 2 = Blue, 3 = Green, 4 = Yellow, 5 = Red, 6 = White, 7 =
Brown)
 Reflected Light Intensity –
Are ca rezultat un număr cuprins între 0-100,
corespunzător intensității luminii reflectate de un obiect
 Ambient Light Intensity - Are ca rezultat un număr cuprins între 0-100,
corespunzător luminozității mediului ambient
o Compare – Are ca rezultat valoarea True/False, în funcție de rezultatul
comparării valorii măsurate (a culorii/intensității luminoase) și o
culoare/valoare de referință.
o Calibrare – Permite calibrarea manuală la programare a domeniului intensității
luminoase. Se setează:
 Valoarea minimă – aceasta va deveni valoarea 0 a domeniului
 Valoarea maximă - aceasta va deveni valoarea 100 a domeniului
 Se resetează domeniul la valorile predefinite de aplicație

c. Infrared Senzor (Senzorul infraroșu)


Senzorul detectează în special existența/depărtarea/aproprierea unui obiect.
Setări:
 Port Selector – portul la care este conectat senzorul cu
automatul programabil
 Mode selector – Modul de lucru al senzorului:
o Measure (Măsurare) – are ca rezultat un număr:
 Proximity – returnează distanța (0-100)
față de care se află senzorul față de un
obiect
 Beacon – În acest caz se setează ca dată de intrare canalul (1-4) pe care
este setată transmisia telecomenzii și returnează distanța (0-100) în
câmpul de ieșire Proximity și poziția (-25,25) în cîmpul de ieșire Heading
față de care se află senzorul față de telecomanda trusei. În cazul
Heading valoarea:
 =0 reprezintă poziția direct în fața senzorului
 <0 reprezintă poziția în stânga senzorului
 >0 reprezintă poziția în dreapta senzorului
 Remote - În acest caz se setează ca dată de intrare canalul (1-4) pe care
este setată transmisia telecomenzii și returnează numărul
butonului/combinației de butoane al/a telecomenzii apăsat/e. Valorile
au următoarea corespondență: 0 = telecomanda este închisă, 1 = Button
1, 2 = Button 2, 3 = Button 3, 4 = Button 4, 5 = Button 1 și Button 3, 6 =
Button 1 și Button 4, 7 = Button 2 și Button 3, 8 = Button 2 and Button 4, 9
= telecomanda este deschisă, 10 = Button 1 and Button 2, 11 = Button 3 și
Button 4
o Compare (Comparare) – în toate cazurile listei opțiunilor acestui mod de lucru
(Proximity, Beacon Heading, Beacon Proximity sau Remote) se compară în
funcție de operatorul de comparație setat (în câmpul Compare Type)
semnalul/răspunsul senzorului cu o valoare de referință introdusă de utilizator
în câmpul Threshold Value. Răspunsul este True/False în câmpul de ieșire
Compare Result și valoarea măsurată în câmpul Proximity, Beacon Heading,
Beacon Proximity sau Remote, în funcție de opțiunea aleasă din listă, inițial
(rezultat identic cu cel returnat în modul Measure).

d. Motor Rotation (Senzorul de rotație)


Transmite date de la senzorul de rotație al motorului care este încorporat în motoarele de tip
motor mediu, motor mare și NXT. Se poate măsura cât de mult s-a rotit arborele unui motor în
grade sau rotații. Se poate obține, de asemenea, nivelul de putere al curentului absorbit de
motor.
Setări:
 Port Selector – portul la care este conectat motorul de
analizat la automatul programabil (A, B, C sau D).
 Mode Selector:
o Measure: returnează un număr corespunzător
mișcării arborelui motorului în:
 Grade
 Număr de rotații ( 1 rotație = 3600)
 Puterea absorbită de motor (valori între -100 și 100)
o Compare: returnează True/False în câmpul de ieșire Compare Result, în funcție
de comparație dintre semnalul senzorului și o valoarea setată în câmpul
Threshold Value, după operatorul de comparație setat în câmpul de intrare
Compare Type (valorile acestuia sunt 0-5 cu semnificația: 0: =, 1: ≠, 2: >, 3: ≥, 4:
<, 5: ≤). În plus în câmpul de ieșire Degrees/Rotations/Current Power se
transmite valoarea parametrului respectiv (identică cu ieșirea din modul de
lucru Measure)
 Reset – readuce la 0 valoarea rotației arborelui motorului măsurată în grade sau
număr rotații, fără a afecta puterea curentă absorbită de motor. O măsurare
ulterioară a mișcării pornește de la 0, fără a se mai ține cont de mișcarea anterioară.
e. Timer (Cronometrul)
Acest instrument primește date de la cronometrul intern al automatului programabil.
Setări:
 Mode Selector - permite selectarea modului de lucru al
cronometrului selectat în câmpul de intrare Timer ID:
o Measure – măsoară timpul în secunde, care a trecut de
la ultima resetare a cronometrului și până în momentul
curent. Dacă nu a avut loc nici o resetare, se măsoară
timpul scurs de la începutul rulării programului până în momentul curent.
o Compare – în acest mod, senzorul pe lângă câmpul de ieșire Elapsed Time (în
care transmite timpul scurs în secunde ca în modul Measure) mai are câmpul
de ieșire Compare Result în care transmite valoarea True/False, în funcție de
valoarea măsurată de cronometru și o valoare de referință setată în câmpul de
intrare Threshold Value, comparate în funcție de operatorul de comparație
selectat în câmpul de intrare Compare Type.
o Reset – resetează cronometrul, readucându-l la valoarea de pornire 0 din
momentul resetării.

f. Touch Sensor (Senzorul de atingere)


Instumentul Touch Sensor primește date de la senzorul de atingere. Stările senzorului de
atingere sunt: apăsat, eliberat, apăsat și eliberat sau neacționat.
Setări:
 Port Selector - portul la care este conectat senzorul de
atingere la automatul programabil
 Mode Selector – selectează modul de lucru al senzorului:
o Measure – are ca semnal de ieșire în câmpul State,
valoare True/False dacă butonul senzorului este
apăsat sau nu.
o Compare – În câmpul de intrare State se setează starea (Pressed-1, Released-0,
Bumped-2) dorită pentru butonul senzorului. În câmpul de ieșire Compare
Result senzorul transmite valoarea True/False în funcție de rezultatul
comparației dintre starea reală a butonului și valoarea setată în câmpul State,
iar în câmpul de ieșire Measured Value este transmis un număr (0-2) în funcție
de starea reală a butonului.

D. Datele/variabilele (Data Operations)

E. Instrumentele avansate (Advanced)


F. Instrumentele personalizate (My Blocks)

S-ar putea să vă placă și