Sunteți pe pagina 1din 38

Proiect cofinanat din Fondul Social European prin Programul Operaional Sectorial pentru Dezvoltarea

Resurselor Umane 2007 2013


Axa prioritar: 1 - Educaia i formarea profesional n sprijinul creterii economice i dezvoltrii societii
bazate pe cunoatere
Domeniul major de intervenie: 1.3 - Dezvoltarea resurselor umane din educaie i formare
Titlul proiectului: FLEXFORM - Program de formare profesional flexibil pe platforme mecatronice
Contract POSDRU/87/1.3/S/64069
Beneficiar: Universitatea Tehnic din Cluj-Napoca

LUCRARE FINAL

UNIVERSITATEA DIN CRAIOVA


CENTRUL REGIONAL DE EDUCAIE I FORMARE PROFESIONAL
FLEXIBIL - CRAIOVA

Program de formare continu: Platforme mecatronice pentru educaie i


formare flexibil
Titlul lucrrii: Aplicaii n limbajul grafic Lego Mindstorms NXT 2.0
Cursant: Ing. Bistriceanu Constana
Data sustinerii publice: Decembrie 2011
Aceast lucrare a beneficiat de suport financiar prin proiectul FLEXFORM - Program de formare
profesional flexibil pe platforme mecatronice, contract nr. POSDRU/87/1.3/S/64069, proiect cofinanat
din Fondul Social European prin Programul Operaional Sectorial Dezvoltarea Resurselor Umane 2007-
2013.

CUPRINS

CAPITOLUL 1 INTRODUCERE
1.1 ISTORIA LEGO
1.2 LEGO MINDSTORMS
CAPITOLUL 2 CONINUT TEHNIC
2.1 BLOCURILE FUNCIONALE ALE LIMBAJULUI GRAFIC LEGO
MINDSTORMS NXT 2.0
2.2 APLICAII N LIMBAJUL GRAFIC LEGO MINDSTORMS NXT 2.0
CAPITOLUL 3 CONCLUZII
CAPITOLUL 4 BIBLIOGRAFIE
CAPITOLUL 1 INTRODUCERE

1.1 ISTORIA LEGO

In 1932 Ole Kirk Christiansen, un tamplar din satul Billund, Danemarca a


inceput o afacere. El confectiona scarite, mese de calcat si jucarii din lemn. Din 1934
firma si produsele sale au luat numele de LEGO, un cuvant combinat care isi are
originea in expresia daneza Leggodt (adica joaca bine). In 1947 LEGO e prima
companie daneza care achizitioneaza o masina de injectat mase plastice pentru
producerea jucariilor. In 1949 firma producea deja peste 200 de modele de jucarii de
lemn si de plastic. Printre acestea erau si caramizile ce se puteau imbina impreuna;
acestea au fost predecesoarele caramizilor LEGO de astazi. In acea vreme jucariile
erau comercializate doar in Danemarca. In 1955 dupa proiectarea caramizilor
LEGO, firma lanseaza linia ce a revolutionat piata jucariilor Sistemul LEGO: 28
de modele si 8 vehicule. De asemenea vindea si separat piese LEGO. In 1958 este
inventat si brevetat sistemul de imbinare LEGO care se foloseste si astazi. Noul
sistem de imbinare a determinat o stabilitate mai mare a modelelor construite
din caramizi LEGO. Modelele ce puteau fi
construite acum erau nenumarate.
In 1962 caramizile LEGO sunt
introduse pe piata Statelor Unite si pentru
prima data LEGO are pierderi din vanzarea
de seturi de caramizi. Totusi prin 1966
seturile LEGO ajung tot mai apreciate de
copiii americani care incep sa construiasca cladiri, camioane, avioane si vapoare din
LEGO.
Prin adaugarea, in 1969, a liniei DUPLO pentru prescolari (cu caramizi mai
mari) grupul LEGO isi mareste aria de suporteri, iar in 1977 prin linia TECHNIC
pentru proiecte mai complexe LEGO reuseste sa atraga copiii mai mari si
adolescenti.
In ultimul deceniu prin Internet comunitatea suporterilor LEGO a dezvoltat
proiectre si programe noi prin care modele noi pot fi inregistrate. In 1998 LEGO a
lansat LEGO SCALA Planet, un set destinat fetelor; acesta continea
atat caramizile LEGO traditionale cat si papusi si accesorii de imbracaminte, o
revista si un site interactiv.
LEGO a ajuns in Statele Unite in perioada cea mai grea a razboiului rece, o
perioada in care exista un interes major in educatie si in dezvoltarea jocurilor
educative. Conducatorii americani doreau ca sistemului educational sa produca
oameni de stiinta, oameni care erau esentiali in proiectarea armelor si cucerirea
spatiului in detrimentul Uniunii Sovietice. Mulandu-se pe aceste cerinte LEGO a
promis ca sistemul sau de caramizi va dezvolta imaginatia, indemanarea manuala
si abilitatea copilului de a gandi si crea singur. Faptul ca termenii LEGO si
imaginatie sunt de multe ori legati impreuna nu este deloc accidental.
Caramizile multicolore din plastic pot fi imbinate pentru a crea nenumarate
modele si au ajuns sa fie apreciate de copii, parinti si educatori inca de la aparitia lor
in 1958. Caramizile LEGO sunt apreciate de constructorii de toate varstele, chiar si
de copiii care sunt mai interesati de distrugere decat de construire.
Candva (prin anii '40) LEGO era doar o firma daneza care producea niste
caramizi din plastic. Niste caramizi foarte populare, dar cu care nu puteai face
nimic cu adevarat interesant.
Azi LEGO inseamna mult mai mult decat niste castele si masini. Intai a
fost LEGO Technic (introdus in 1997), cu care se puteau construi masinarii mai
complicate (inclusiv cu motoare electrice).

1.2 LEGO MINDSTORMS


Fratele lui mai mare este seria Mindstorms (lansata in 1998), care combina
piesele Technic cu niste noi caramizi, programabile, cu procesor si memorie RAM
proprii.
Ce inseamna asta? Ca numai cei care invata limbajele de programare compatibile
se pot juca la potential maxim. LEGO ofera 2 limbaje de programare, dar exista si
mai multe scrise de terte parti. Programele se downloadeaza prin intermediul
calculatorului in RAM-ul caramizii (prin infrarosu), si... the sky's the limit!
Masinariile Mindstorms pot actiona independent, reactionand la stimuli, sau
chiar intre ele - adica se pot construi robotei care sa colaboreze sau, dimpotriva, sa
concureze unii cu altii.
Seria LEGO Mindstorm de kituri conin software i hardware pentru a crea
roboti mici, personalizabili i programabili. Acestea includ un computer programabil
"Brick", care controleaz sistemul, un set de senzori i de motoare, piese LEGO de la
linia Technics pentru a crea sistemele mecanice.
Rdcinile hardware i software ale kit-ului Mindstorms Robotics Invention
System vin de la caramida programabil creat la MIT Media Lab. Aceasta
caramid a fost programat n Brick Logo.Primul mediu de programare vizual numit
LEGOsheets, fost creat de ctre Universitatea din Colorado n 1994 pe baza Agent
Sheets.
Originalul kit Mindstorms Robotics Invention System coninea dou motoare,
doi senzori de atingere, i un senzor de lumin. Versiunea NXT are trei motoare servo
i un senzor de lumin de sunet de distan, precum i un senzor de atingere.
Versiunea 2.0 NXT are 2 senzori de atingere, precum i un senzor de lumin i de la
distan, precum i suport pentru patru fr a utiliza un senzor multiplexor. Lego
Mindstorms pot fi folosite pentru a construi un model al unui sistem integrat cu piese
electromecanice controlate de computer. Multe sisteme integrate din viaa real, de la
controlul ascensorului la roboti industriali, pot fi modelate cu ajutorul Mindstorms.
Kituri Mindstorms sunt, de asemenea, vndute i utilizate ca un instrument
educaional, iniial printr-un parteneriat ntre Lego i MIT Media Laboratory.
Versiunea de educaional a produselor se numete Lego Mindstorms for Schools, i
vine cu ROBOLAB software-ul de programare dezvoltat la Universitatea Tufts pe
baza LabVIEV de la National Instruments. n plus, software-ul livrat poate fi inlocuit
cu firmware-ul ter i/sau alte limbaje de programare, inclusiv unele dintre cele mai
populare i folosite de ctre profesionitii din industria sistemelor integrate, cum ar fi
Java i C. Singura diferen dintre seriile de educativ, cunoscut sub numele de "Set
Challenge" i seria de consum, cunoscut sub numele de "Set Inventor", este c
acesta include un alt senzor de lumin i mai multe opiuni, mai multe angrenaje.
Mindstorms este numit dup cartea Furtuni ale minii: Calculatoare, copii i idei
extraordinare de Seymour Papert.

Prima generaie de crmid programabil


RCX.
Prima generatie de Lego Mindstorms a fost
construit n jurul componentei cunoscut sub
numele de RCX (Robotic Comandamentul
Explorer). Acesta conine microcontrolerul pe 8 bii
Renesas H8/300 ca CPU intern. Acesta conine, de
asemenea, 32K de RAM care stocheaza programele
de firmware i de utilizare. Caramida este
programat prin ncrcarea unui program (scris ntr-
unul din mai multe limbaje de programare disponibile), pentruWindows sau MAC
prin intermediul unei interfee n RAM. Dup ce utilizatorul a scris un program, RCX
permite Mindstorms s funcioneze n totalitate pe cont propriu, acionnd n stimuli
interni i externi n conformitate cu instruciunile programate. De asemenea, dou sau
mai multe caramizi mai multe RCX-uri pot comunica uniele cu altele prin interfaa
IR, care s permit cooperarea inter-caramida sau competiia. n plus fa de portul
IR, exist trei porturi de intrare senzor i trei porturi de ieire motor (de asemenea,
utilizabile pentru lmpi, etc.) Exist, de asemenea, un LCD care poate afia nivelul
bateriei, starea porturilor de intrare/ieire, care program este selectat pentru
funcionare, precum i alte informaii.
Versiunea 1.0 crmizi RCX dispune de un jack pentru adaptor de putere care
permite funcionarea continu, n loc de un timp de funcionare limitat de utilizarea
bateriilor. n versiunea 2.0 jack-ul adaptor a fost eliminat. Crmizile RCX sunt
populare pentru proiecte de roboi staionari (cum ar fi arme robot) sau pentru
controlul trenurilor LEGO. n contextul din urm, RCX trebuie s fie programate cu
software-ul Digital Comand Control (DCC), care s comande mai multe fire de
trenuri.
Interfata IR de la RCX este capabil s comunice cu Spybots, Scout Bricks,
Lego Train, i NXT (folosind un senzor cu infrarou ter). RCX 1.0 recepioneaz pe
o frecven purttoare IR de 38.5 kHz, n timp ce 2.0 RCX IR frecvena purttoare
este de 76 kHz. Ambele versiuni pot transmite pe oricare frecven. semnalul purttor
este generat de ctre unul dintre cronometrele interne ale RCX-lui. RCX comunic cu
un computer utiliznd un port IR serial sau USB. Portul este acceptat de Windows 98,
Windows Me i Windows XP (32-bit). Nu exist nici un suport oficial pentru
Windows Vista (32-bit), dar exist rapoarte de funcionalitate corect. Portul USB nu
funcioneaz pe un sistem de operare pe 64 de bii cu excepia cazului n care un
sistem de operare pe 32 de bii este folosit n combinaie cu o main virtual. Portul
serial lucrez cu Windows 7 pe 64-bii cu ajutorul unui adaptor USB-la-serial.
Toate versiunile de RCX au un numr unic de imprimat pe el, necesar pentru
suport tehnic i utilizate ca numrul de identificare pentru Lego Mindstorms.
Primul RCX produs este marcat cu "000001", i a fost expus la evenimentul aniversar
a 10 ani Mindstorms.

Lego Mindstorms NXT


Lego Mindstorms NXT este un kit de robotic programabil lansat de Lego, n
iulie 2006, nlocuind prima generaie LEGO Mindstorms kit. Setul este format din
577 piese, inclusiv: 3 servo motoare, 4 senzori (cu ultrasunete, de sunet, de atingere i
de lumin), 7 cabluri de conectare, un cablu de interfa USB, i NXT Intelligent
Brick. Intelligent Brick este "creierul" unei maini Mindstorms. Acesta permite
robotului autonom s efectueze operaiuni diferite. Kit-ul include, de asemenea, NXT-
G, un mediu de programare grafic care permite crearea i descrcarea de programe
n NXT. Software-ul are, de asemenea, instruciuni pentru 4 roboti; Alpha-Rex (un
humanoid), Tri-Bot (o main), Robo-Arm T-56 (un brat robotic), i Spike (un
scorpion)

Lego Mindstorms NXT Educational Version


Acesta este versiunea educaional setului LEGO Education NXT, care se
produce pentru uz colar. Acesta include un senzor de lumin, un senzor cu
ultrasunete, un senzor de sunet, trei lmpi i o pereche de senzori de atingere. Primul
set este format din aproximativ 400 de buci, i setul suplimentar este format din
aproximativ 600 de piese. Versiunea educaiaonal este cea mai potrivit pentru cei
care au versiuni mai vechi de MINDSTORMS, n mare parte datorit celor 3 cabluri
de conversie.

Lego Mindstorms NXT 2.0


Lego Mindstorms NXT 2.0 a fost lansat la data de 5 august 2009. Acesta conine 619 de
piese (inclusiv senzori i motoare), un senzor de culoare noua, doi senzori de atingere i un
senzor cu ultrasunete.2.0 NXT folosete operaii n virgul mobil fa de versiunile anterioare
care utilizeaz operaii cu numere ntregi.

CAPITOLUL 2 CONINUT TEHNIC

2.1 BLOCURILE FUNCIONALE ALE LIMBAJULUI GRAFIC LEGO


MINDSTORMS NXT 2.0

Kit-ul de instalare al aplicaiei limbajului grafic LEGO MINDSTORMS NXT


2.0 se gsete la adresa: http://mindstorms.lego.com/en-
us/News/ReadMore/Default.aspx?id=351333. Fiierul se numete MINDSTORMS
NXT 2_0.iso. Avnd extensia .iso se deschide cu programul WINRAR.
Blocul funcional reprezint elementul de baz al limbajului grafic LEGO
Mindstorms NXT. Este derivat din conceptul de bloc avansat al limbajului Labview.
Fiecare bloc este echivalent cu o instruciune (subrutin) a limbajelor bazate pe
text (C++, basic, pascal etc.).
Sunt mprite n grupuri cu funcionaliti asemntoare: Comune, Aciuni,
Sensori, Control, Date, Avansai. n plus fa de acestea, utilizatorul are posibilitatea
de a crea noi blocuri (user-defined).
Blocurile pot fi depuse pe schema aplicaiei printr-o operaiune de tip Drag-
and-Drop, de-a lungul firului de execuie a programului (indcaia 1).
n momentul n care un bloc este selectat, n partea de jos a ferestrei apar
proprietile acestuia, care pot fi configurate pe cale grafic (indcaia 3). Parametrii
de configurare difer in funcie de tipul blocului selectat.
Parametrii unui bloc pot fi setai i on-line n timpul execuiei programului cu
ajutorul conexiunilor acestuia. Pentru a avea acces la grila de conexiuni a blocului, se
va efectua un click la baza acestuia (indcaia 2).
Modul de operare a blocurilor se bazeaz pe principiul IN-> Process -> OUT. Se
ateapt apariia tuturor datelor de intrare necesare (IN); Se efectueaz operaiile
necesare, n funcie de tipul blocului i valorile de intrare (Process); Se valideaz
datele de ieire, dac este cazul (OUT).
n funcie de tipul aciunii Process, blocurile pot s suspende execuia
programului (blocking type) sau s se execute instantaneu (non-blocking).
Blocuri Senzor
Se utilizeaz pentru a citi diverse informaii. Acestea pot fi:
- informaii provenite de la diversele tipuri de senzori (atingere, ultrasonic,
culoare etc.)
- informaii interne (butoanele interfeei utilizator, timere etc.)
- informaii referitoare la comunicaie (mesaje bluetooth)
Pot fi utilizate pentru a afla valoarea curent a unui senzor direct pe ecranul PC-
ului.
Blocuri aciune
Sunt blocurile utilizate pentru a efectua diverse aciuni. Acestea includ:
- Acionarea unui motor
- Afiarea unei informaii pe ecran
- Generarea unui sunet
- Trimiterea unui mesaj BlueTooth
- Aprinderea unui LED al senzorului Color
Sunt grupate n cadrul Action (sgeata n figur)
Blocuri DATA
Opereaz asupra datelor. Se folosesc ntotdeauna cu ajutorul conexiunilor de
date.
Se mpart n mai multe categorii:
- operaii aritmetice i logice se pot efectua operaii aritmetice simple
(adunri, scderi, nmuliri i mpriri) asupra variabilelor numerice sau operaii
logice (i, sau, sau exclusiv, negare logic) asupra variabilelor logice
- verificri de depasire ale unor valori se pot compara dou valori (mai mic,
mai mare, egal) sau se poate facetestul de apartenen (inclus, neinclus) a unei valori
ntr-un interval definit. Rezultatul acestor operaiuni este ntotdeauna de tip logic
- generare de numere aleatoare se genereaz un numr aleator ntr-un interval
definit.
- manipulare de constante i variabile (mai multe detalii n seciunea Variabile)
Blocuri Advanced
Sunt diverse tipuri de blocuri care nu se ncadreaz n categoriile de mai sus, i
care probabil nu vor fi folosite dect n anumite situaii particulare.
Putem aminti blocurile pentru operaii asupra variabilelor (i datelor n general)
de tip text. Acestea sunt folosite pentru a converti o valoare numeric ntr-una de tip
text (Number to Text) i pentru a alipi dou sau mai multe texte (Text). Acesta din
urm este echivalent cu instruciunea Concat a limbajelor de programare uzuale.
Tot din acest grup mai face parte blocul care nu permite controller-ului NXT s
intre n Stand-By (blocul Keep Alive), blocul de calibrare a senzorilor, de resetare a
senzorilor rotativi ai motoarelor sau blocul de setare a conexiunii bluetooth.
Mai trebuie s menionam blocul File Access care permite accesul la sistemul
de fiiere a controlerului. Cu ajutorul acestuia se pot crea, terge, citi sau edita fiiere.
Este predominant utilizat pentru operaii de tip data-log, n care se citesc valori de la
diveri senzori pe intervale diferite de timp i se salveaz n memoria nevolatil a
controlerului sub form de fiiere text. Aceste fiiere sunt apoi descrcate pe
calculator pentru a fi procesate, filtrate sau afiate sub form de grafice, tabele etc.
Blocuri control(flow)
Sunt blocuri cu ajutorul crora se poate controla execuia programului. Sunt
similare cu structurile de control din limbajele de programare clasice.
Cu ajutorul acestora, structura programului scris nu mai este una liniar (de la
primul pn la ultimul bloc), ci se pot crea bifurcaii (Switch) ale execuiei, dintre
care doar una dintre ramuri se vor executa, sau repetiii (loop) ale unor secvene de
cod.
O particularizare a structurii repetitive este blocul Wait, care determin
programul s atepte pn cnd valoarea citit de la un senzor (sau timer) se
incadreaz intrun
interval prestabilit.
Pe lng cele dou tipuri de structuri clasice, mai exist posibilitatea utilizrii
blocului de tip Stop, care va determina terminarea necondiionat a programului i
oprirea actuatorilor structurii controlate.
Blocuri speciale SWITCH
Sunt blocurile echivalente ale structurilor IF i CASE. Se gsesc n cadrul
blocurilor de tip FLOW. n forma cea mai simpl, blocul Switch arat ca n figur,
indcaia 1. n funcie de valoarea de adevr a firului de intrare, se vor executa fie
blocurile de sus (marcate prin semnul ), fie blocurile de jos (marcate cu X).
Dac se dorete o afiare compact a acestei structuri, se poate debifa opiunea
Flat view (indcaia 3), caz n care aspectul blocului va fi ca cel din figur, indcaia
2.
n acest moment, se afieaz ramura selectat ( sau X).
Decizia de execuie a uneia cau celeilalte ramuri se face n funcie de selecia
fcut la control (indcaia 5), unde se poate selecta value sau senzor. Dac se
selecteaz value, n cadrul type (indcaia 4) se poate selecta tipul variabilei de
selecie: logic, number sau text. La selectarea unei variabile de intrare de tip Number,
structura switch permite selecii multiple, care se pot seta cu ajutorul tabelului de
adevr conditions (indcaia 6 ).
Selectarea la parametrul control (indcaia 5) atrage dup sine execuia unei
ramuri sau a celeilalte, n funcie de tipul senzorului selectat la type. n acest caz,
proprietile structurii switch vor fi asemntoare cu proprietile senzorului
selectat. Este permis alegera portului de conexiune i a aciunii care va avea ca efect
execuia ramurii
.
Blocuri speciale LOOP
Blocurile loop (bucl inchis) se folosesc pentru a repeta o secven de cod, i
arat ca n indicaia 1. Pentru a opri rularea secvenei de cod, este nevoie de o
condiie de ieire din bucl: un semnal de la sensor, un semnal logic sau un numr de
repetri a buclei. De asemenea, ciclul poate rula i la infinit, dac este necesar.
Setrile pentru aceste condiii se pot observa in indicaia 5. Cnd blocul loop
este setat pe bucl infinit, simbolul infinit () este afipat n colul din dreapta jos a
blocului. n cazul n care este selectat csua Counter, va aprea o intrare care
permite utilizarea unui numr finit i cunoscut de bucle (indicaia 3).
O alt opiune pentru folosirea blocului loop este citirea direct de la senzori.
Cnd aceast opiune este selectat, senzorul ales va aprea pe bloc. Ieirea din bucl
se va face n funcie de valoarea citit de la senzor i condiia dat.
Dup cum se poate observa n indicaia 4, se poate selecta opiunea counter.
Cad aceast opiune este selectat, la nceputul blocului apare o intrare (indicaia 2),
care permite legarea conectorilor cu alte blocuri folosite n program.
Import blocuri
Deoarece nu toate blocurile necesare programrii se gsesc in program, exist
opiunea de importare a blocurilor.
Din meniul programului, din blocul tools se alege opiunea de block import
and export wizard. Se deschide fereastra de importare a blocurilor, dup cum se vede
n figura alaturat.
Se selecteaz butonul browse (indicaia 1) pentru a cuta blocurile ce se doresc a
fi importate. n indicaia 2 se poate observa fereastra n care sunt adugate blocurile
gsite.
Se selecteaz un bloc. Se selecteaz paleta n care va fi adugat blocul (indicaia
3), dup care se apas butonul import (indicaia 4). Blocul va fi automat adugat n
paleta selectat.
Blocuri My Blocks
Cu ajutorul blocurilor My blocks se pot personaliza grupe de blocuri. De
exemplu se creeaz un My block format dintr-un bloc de micare i un bloc de
sunet. Acest bloc se poate utiliza mai apoi n diferite aplicaii.
Crearea unui My block:
1. se selecteaz un numr de blocuri care se potrivesc din punct de vedere logic
(indicaia 1)
2. se selecteaz toate blocurile de mai sus 3. din meniu se alege comanda
choose a new my block; se deschide o fereastr pentru crearea unui nou my block
4. se denumete acest nou bloc i i se scrie o scurt descriere; se apas next
5. se alege icoana pentru noul bloc; se apas finish Noul my block va aprea n
paleta denumit Custom palette (indicaia 2).
Help on-line
Pentru mai multe detalii despre program i blocurile aferente, n colul dreapta
jos al programului apare fereastra de ajutor.
n aceast fereastr exist dou opiuni:
o scurt descriere a blocului selectat (indcaia 1)
posibilitatea de a vedea mai multe detalii (indcaia 2), aceasta facnd
trimitere la suportul on-line
Fire de date
Firele de date transfer informaii ntre blocurile de programare. Anumite blocuri
necesit fire de date pentru ca acestea sa funcioneze.
n funcie de tipul datelor, firele de date au diferite culori:
galben pentru date numerice
verde pentru date logice (true/false)
portocaliu pentru date text
Dac firul de date are culoarea gri, nseamn c firul nu este complet sau este
legat la o intrare greit.
Pentru a crea un fir de date, se selecteaz ieirea blocului a crui informaie
vrem s o folosim i se trage firul de date pn la intrarea blocului de execuie dorit.
Pentru a terge un fir pus greit sau pe care nu mai vrem s-l folosim, se apas
pe locul de intrare a firului n blocul de execuie.
2.2 APLICAII N LIMBAJUL GRAFIC LEGO MINDSTORMS NXT 2.0

APLICAIA 1 - Asteptare la obstacol

Acest cod menine n funciune motoarele B i C pn la oprirea acestora din


diverse condiii. Codul preia doua citiri ale senzorului de rotaie, citiri care se fac cu o
foarte mic ntrziere ntre ele. Ieirea din bucl se face cnd cele dou citiri sunt mai
mici dect un anumit prag. Deci, dac un motor ncetinete deoarece ntmpin un
obstacol, codul va opri ambele motoare. O scurt ntrziere la nceput este necesar
pentru ca motorul s poat reporni nainte ca senzorii de rotaie s fie citii.
AP
LICAIA 2 - Asteptare aleatorie

Acest cod creeaz o bucl wait for (de ateptare), care va dura un timp aleator.
Codul utilizeaz generatorul de numere aleatorii i o bucl care ateapt contorul de
timp s ajung la o valoare egal cu valoarea generat. Numrul aleatoriu este ntre
500 i 5000, ceea ce face ca bucla s atepte pentru 500 i 5000 de milisecunde.
APLICAIA 3 - Ateptare pentru apsare
Acest cod face ca atunci cnd un senzor de atingere de pe Port 1 este apsat,
motorul A se va opri.
APLICAIA 4 - Comutator cu senzor de atingere
Acest cod folosete dou comenzi, Switches (ntreruptor) i Loops
(bucl).Senzorul tactil Switch face ca motorul A s mearg n sens normal dac
senzorul tactil nu este apsat, iar dac acesta este apsat motorul merge n sens invers.
Loop-ul face ca Switch-ul s mearg la infinit.
APLICAIA 5 - Mers erpuitor
Acest cod va face ca o main s erpuiasc nainte sub forma unui arc de cerc
larg. Lungimea curbelor se poate modifica schimbnd fie variabila de timp, fie puterea
motorului.
APLICAIA 6 - Micare aleatorie
Acest cod va porni motorul A ntr-o direcie aleatorie (printr-o combinaie a
blocului Aleatoriu-Comparaie), la o vitez aleatoare, pentru un timp ales aleator.
Vitezele motorului sunt cuprinse intre 0-100 iar valorile de timp ntre 0-3 secunde.
APLICAIA 7 - Control de poziie proporional
Dac o main este programat s se deplaseze 12 cm, cum tim ca acea distan
a fost parcurs cu adevrat? De multe ori, impulsul mainii o va duce mai departe de
locaia dorit, chiar dac motoarele s-au oprit. Soluia la aceast problem este o bucl
de control proporional. Prin monitorizarea continu a distanei de locaia dorit,
viteza motorului poate fi ncetinit pe msur ce maina se apropie de destinaie.
Formula principal este Px(destinaielocaia curent) unde P este o constant
arbitrar.
n acest program, locaia dorit este stabilit la 50 de grade fa de senzorul de
rotaie. Din aceast valoare se scade n permanen rotaia actual. Diferena este
nmulit cu doi iar aceasta devine valoarea variabilei putere. Blocul de comparaie
va determina direcia pe care motorul C se va deplasa: nainte daca variabila "putere"
este pozitiv, napoi n cazul n care variabila "putere" este negativ. Astfel, atunci
cnd maina pornete, poziia sa iniial este zero i poziia dorit este de 50. Prin
urmare, valoarea variabilei putere este 100, care nseamn cu toat puterea nainte.
Dac maina depete inta, valoarea variabilei putere va deveni negativ, iar
maina se va deplasa n sens invers. Scopul controlului proporional este de a gsi o
constant care duce sistemul la echilibru n cel mai scurt timp, cu cea mai mic
depire i cea mai mare acuratee.
APLICAIA 8 - Note muzicale
Mindstorms NXT poate fi folosit pentru a asculta muzic. Introducnd manual
note se pot crea melodii particularizate.
APLICAIA 9 - Accelerri rapide
Acest cod folosete o bucl pentru a porni i opri motorul A de trei ori. Dac se
folosete un singur motor de main, acest program va accelera vehiculul nainte n
trei rafale scurte. Numrul de bucle poate fi schimbat prin modificarea variabilei
Count din "3". Alternativ, dac se dorete un program infinit, se poate seta controlul
buclei cu Forever.
APLICAIA 10 - Accelerri rapide cu beep
Acest cod emite beep-uri de fiecare data cnd se execut codul de la Accelerri
rapide.
CAPITOLUL 3 CONCLUZII
n lucrarea de fa, am prezentat cteva momente din istoria jucriilor LEGO
precum i etape din evoluia Lego Mindstorms. De asemenea am prezentat
blocurile funcionale ale limbajului grafic Lego Mindstorms NXT 2.0 precum i un
numr de 10 aplicaii realizate utiliznd acest limbaj.
Parcurgerea Modulului 2 Platforme mecatronice pentru educaie i formare
flexibil mi-a fost de un real ajutor n realizarea lucrrii deoarece partea teoretic a
cursului a fost bine structurat, explicaiile au fost clare i interesante, orele de
laborator s-au desfurat n laboratorul Multimedia, lucrrile de laborator constnd n
folosirea platformei LEGO Mindstorms cu care am construit mai multe structuri, le-
am programat i le-am testat.
Lego Mindstorms NXT 2.0 combina posibilitati nelimitate ale sistemului clasic
de constructie, cu un microcalculator inteligent si un sistem de programare de tip
drag and drop. Kitul Mindstorms NXT reprezint cea de-a doua generatie de
componente LEGO didactice. Fa de prima versiune, ofer un nou design al
componentelor mecanice, un controler programabil cu putere sporit de calcul i un
set extins de senzori. Platforma este de tip opensource astfel pot fi creai noi tipuri de
senzori i actuatori compatibili.

CAPITOLUL 4 BIBLIOGRAFIE

1. Tehnologie i educaie mecatronic dezvoltare durabil - curs susinut n


cadrul programului de formare profesional flexibil pe platforme mecatronice,
FLEXFORM, Universitatea din Craiova, Facultatea de automatic, calculatoare
i electronic, Catedra de Mecatronic;
2. Tehnologie i educaie mecatronic dezvoltare durabil - laborator susinut n
cadrul programului de formare profesional flexibil pe platforme mecatronice,
FLEXFORM, Universitatea din Craiova, Facultatea de automatic, calculatoare
i electronic, Catedra de Mecatronic;
3. Metode si tehnici de inovare si creativitate - curs susinut n cadrul
programului de formare profesional flexibil pe platforme mecatronice,
FLEXFORM, Universitatea din Craiova, Facultatea de automatic, calculatoare
i electronic, Catedra de Mecatronic;
4. Metode si tehnici de inovare si creativitate - laborator susinut n cadrul
programului de formare profesional flexibil pe platforme mecatronice,
FLEXFORM, Universitatea din Craiova, Facultatea de automatic, calculatoare
i electronic, Catedra de Mecatronic;
5. Bagnall, Brian. "Maximum LEGO NXT: Building Robots with Java Brains". Variant Press. 2007;
6. Bagnall, Brian. "Core LEGO Mindstorms". Prentice-Hall PTR. 2002;
7. Bedford, Allan. The Unofficial LEGO Builder's Guide. San Francisco: No Starch Press, 2005;
8. McKee, Jacob H. Getting Started with LEGO Trains. San Francisco: No Starch Press, 2003;
9. Ferrari, Mario, Giulio Ferrari, and Ralph Hempel. Building Robots With LEGO Mindstorms: The
Ultimate Tool for Mindstorms Maniacs. 2001;
10. Pilegaard, Ulrik, and Dooley, Mike. "Forbidden LEGO". San Francisco: No Starch Press, 2007;
11. Willicense, Fransisco. "The LEGO Incorporation: How LEGO Started" ISBN 0-18361-46372
12. LEGO.com MINDSTORMS : Home, http://mindstorms.lego.com/;
13. The NXT STEP - LEGO MINDSTORMS NXT Blog, http:
//www.thenxtstep.blogspot.com/;
14. Programming LEGO MINDSTORMS NXT, http://www.active-
robots.comlproducts/robot-magazine/nxtbooks;
15. Unofficial LEGO MINDSTORMS NXT 2.0 Inventor's Guide,
http://www.nxtguide.davidjperdue.com/;
16. Fun Projects for your LEGO MINDSTORMS NXT! , http://www.nxtprograms.com/;
17. http://nxtprograms.com/explorer/steps.html;
18. http://www.automation.ucv.ro/FlexFORM/C4/;
19. http://mindstorms.lego.com/en-us/News/ReadMore/Default.aspx?id=351333;
20. http://www.legoengineering.com/home-mainmenu-36.html;
21. http://en.wikipedia.org/wiki/Lego_Mindstorms.

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