14.06.2014 Views

4. Senzori aferenti platformei LEGO Mindstorms.pdf

4. Senzori aferenti platformei LEGO Mindstorms.pdf

4. Senzori aferenti platformei LEGO Mindstorms.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Senzori</strong> aferenți <strong>platformei</strong><br />

Platforma are în dotare 4 senzori, și anume: senzorul<br />

tactil, senzorul de sunet, senzorul de lumină și senzorul de<br />

ultrasunete. Cu ajutorul acestor senzori, robotul poate<br />

executa diferite comenzi, cum ar fi să reacționeze la<br />

impactul cu un anumit obstacol, să răspundă la comenzi<br />

vocale, să urmărească un anumit traseu sau să evite<br />

diverse obstacole.<br />

C1 - 22


<strong>Senzori</strong><br />

Controllerul NXT are în componență 4 porturi care<br />

permit conectarea la acesta a diverselor tipuri de senzori.<br />

<strong>Senzori</strong>i sunt folosiți pentru a capta informații despre<br />

mediul înconjurător. Pe lângă senzorii „tipici” ai setului<br />

<strong>Mindstorms</strong> NXT (senzor de culoare, senzor de atingere și<br />

senzor ultrasonic) există o varietate mare de senzori<br />

compatibili dintre care amintim:<br />

<br />

<br />

Optici: senzor de lumină, senzor de culoare<br />

Ambientali: senzor de temperatură, senzor de<br />

sunet<br />

Mecanici: senzor de accelerație, senzor<br />

giroscopic<br />

<br />

Orientare: senzor tip busolă, senzor de distanță<br />

C2 - 38


Senzor atingere<br />

Senzorul tactil este unul dintre cei mai simpli și cel mai<br />

intuitiv dintre toți senzorii NXT. Funcţionează aproximativ ca<br />

un buton de comandă. În momentul în care este acţionat,<br />

circuitul este închis şi curentul electric trece prin el.<br />

Comanda cea mai utilizată a senzorului este de<br />

amortizare. Amortizoarele sunt cele mai simple modalităţi de<br />

a interacţiona cu mediul înconjurător; ele permit robotului să<br />

detecteze obstacolele în momentul în care le ating, aceştia<br />

schimbându-şi orientarea corespunzător.<br />

Senzorul tactil poate avea trei aplicaţii: apăsat, lăsat<br />

sau de amortizare. Aceseta sunt importante deoarece obligă<br />

robotul să reacţioneze diferit, în funcţie de situaţie.<br />

Una din variantele de programare a senzoului este din<br />

softul NXT-G si este următoarea: în tabloul de comandă<br />

există două subdiviziuni şi anume: selectarea portului pe<br />

care este conectat senzorul şi modul de acţionare al<br />

acestuia. În cea de-a doua subdiviziune se pot selecta<br />

funcţiile: apăsat, lăsat şi amortizare. Amortizarea înseamnă<br />

apăsarea rapidă a butonului şi eliberarea acestuia în mai<br />

puţin de 5 secunde.<br />

A doua modalitate de programare este din meniul<br />

controllerului NXT. Această metodă este foarte utilă mai ales<br />

în momentul în care se dorește verificarea funcționării<br />

senzorului. De exemplu, dacă în program există o problemă<br />

în funcționarea senzorului, din meniul controllerului se poate<br />

verifica dacă senzorul are vreo defecțiune sau este o<br />

problemă de programare.<br />

C2 - 39


Senzor tactil<br />

Aplicație:<br />

Să se scrie un program care va afișa o imagine la<br />

apăsarea senzorului de atingere și alta în rest.<br />

În prima fază se alege imaginea care apare inițial pe<br />

ecranul controllerului, dintr-un bloc de tip display (indicația 2).<br />

Se alege din paleta “flow” blocul “wait” (indicația 1)<br />

căruia i se selectează senzorul de atingere (indicația 5) din<br />

panoul de comandă. Tot din panoul de comandă, din tipul<br />

acțiunii la care trebuie sa reacționeze senzorul (indicația 6),<br />

se alege ca acesta să reacționeze în momentul în care este<br />

apăsat.<br />

Următorul bloc din program este tot unul de tip display<br />

(indicația 3) pe care este selectată o altă imagine, cea dorită<br />

în momentul apăsării butonului.<br />

Ultimul bloc este unul de tip wait pe care este selectat<br />

un sensor tactil (indicația 4), astfel încât ultima imagine să fie<br />

reținută pe ecran până în momentul altei comenzi primită de<br />

senzor. Tot programul este pus într-un bloc de tip loop.<br />

Cu ajutorul acestui program se pot testa cele trei faze<br />

ale senzorului.<br />

C2 - 40


Senzor tactil<br />

Aplicație:<br />

Să se scrie un program care va afișa o imagine la<br />

apăsarea senzorului de atingere și alta în rest.<br />

Pentru acest program este nevoie de un bloc de tip<br />

swith care are ca intrare un sensor tactil (indicația 1). Tipul<br />

senzorului se alege din panoul de comandă (indicația 2).<br />

Se selectează acțiunea dorită, în acest caz se doreste<br />

ca butonul senzorului să fie apasat. În momentul în care<br />

senzorul este apăsat, se afișează o anumită imagine.<br />

Imaginea este selectată dintr-un bloc de tip display.<br />

Blocul este amplasat pe ramura “true” a blocului, după<br />

cum se vede în indicația 3. În caz contrar, se afișează o<br />

imagine diferită tot cu ajutorul unui bloc display care este<br />

amplasat pe ramura de „false” a blocului, după cum se poate<br />

observa în indicația <strong>4.</strong><br />

C2 - 41


Senzor ultrasonic<br />

Senzorul ultrasonic permite robotului să detecteze<br />

obiecte. El mai poate fi folosit pentru a evita obstacole, să<br />

măsoare distanţe şi să detecteze mişcarea.<br />

Senzorul ultrasonic măsoară distanţa în centimetri sau<br />

inchi. Este capabil să măsoare distanţe de la 0 la 255<br />

centimetrii cu o precizie de +/- 3 cm.<br />

Principiul detectării ultrasonice este faptul că senzorul<br />

eminte ultrasunete de înaltă frecvență (peste limita auzului<br />

uman), care ricoșează de pe obiecte și este citită de senzor.<br />

Timpul necesar întoarcerii undei sonore determină<br />

distanța la care se află obiectul. Cu cât intervalul de timp<br />

este mai mare, cu atât distanța față de obiect este mai mare.<br />

Liliecii folosesc același principiu pentru a se deplasa și a<br />

localiza prada.<br />

Un mod comun de a programa senzorul este de a-l<br />

seta să verifice constant mediul înconjurător iar apoi să<br />

folosească valorile citite pentru a comanda robotul să<br />

reacționeze. (ex. Să ocoleasacă sau să dea înapoi) Citirile<br />

sunt normalizate, primind valori de la 0 la 100.<br />

C2 - 42


Senzor ultrasonic<br />

Aplicație:<br />

Să se scrie un program care va genera un sunet în<br />

momentul în care un obiect se apropie la mai puțin de 20 cm<br />

de senzorul ultrasonic.<br />

Pentru rezolvarea aplicației, se va folosi un bloc wait.<br />

Acesta se alege din paleta „flow”, după cum se vede în<br />

indicația 1 din figura alăturată.<br />

Din panoul de comandă se alege funcția dorită pentru<br />

blocul wait, adică senzorul ultrasonic căruia i se setează<br />

parametri doriți, adică pentru ce distanță să funcționeze<br />

(indicația 5) și portul pe care este pus senzorul (indicația 6).<br />

Următoul bloc din program este blocul de sunet<br />

(indicația 2), deoarece robotul, în momentul în care ajunge la<br />

o distanță mai mică sau egală cu cea selectată la blocul<br />

anterior, să genereze un sunet selectat din meniul blocului.<br />

Ultimul bloc este tot unul de tip wait căruia i se<br />

selectează tot un senzor ultrasonic (indicația 6). Toate trei<br />

blocurile sunt puse într-un bloc loop.<br />

C2 - 43


Senzor ultrasonic<br />

Aplicație<br />

Să se scrie un program care va afișa o imagine în<br />

momentul în care un obiect se găsește la mai puțin de 20 cm<br />

de senzorul ultrasonic.<br />

Pentru această aplicație se va folosi un bloc de tip<br />

switch (indicația 1), căruia i se alege un senzor ultrasonic din<br />

panoul de comandă (indicația 6).<br />

Cu cursorul din indicația 7 se alege distanța pe care să<br />

o „vadă” senzorul, adică dacă este selectat 20 de centimetri,<br />

în momentul în care distanța e mai mică se execută blocurile<br />

din partea de „true” a blocului (ndicația 2), iar dacă valoarea<br />

e mai mare, programul din partea de „false” a blocului switch<br />

(indicația 3).<br />

Când senzorul detectează un obiect la mai puțin de 20<br />

de centimetri, va afișa o imagine (indicația 4), iar dacă<br />

obiectul este la o distanță mai mare, pe ecranul controllerului<br />

va fi afișată o altățț imagine (indicația 5). Senzorul este<br />

conectat la portul 4 al controlerului (indicația 8).<br />

C2 - 44


Senzor ultrasonic<br />

Senzorul ultrasonic are o rază mare de acțiune și nu<br />

depinde de intensitatea luminoasă din cameră (pentru că<br />

folosește sunetul). Pe de altă parte, emite și receptionează<br />

unde la unghi aproximativ 30° , chiar și un obiect punctiform<br />

apare detaliat după o scanare.<br />

Senzorul are probleme cu detectarea anumitor<br />

materiale, de exemplu nu poate percepe materiale moi<br />

deoarece acestea absorb ultrasunetele, în timp ce o oglindă<br />

poate să reflecte ultrasunetele.<br />

C2 - 45

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!