Cunoaște Intuit, curs, stări și evenimente

Comportamentul Robot - este o serie de stări succesive (stare de mișcare, condiția de căutare, etc ...). Schimbarea condițiilor are loc, în funcție de evenimente externe. Robot înregistrează evenimente folosind diverși senzori. Toate comportamentul robotului poate fi reprezentat schematic ca o diagramă de tranziție a stării între state.

Exemplul 3.1. Diagrama de tranziție „Stare 1 → Eveniment 2 → Status“ care corespunde deplasării robotului la linia neagră (Figura 3.1.):

Cunoaște Intuit, curs, stări și evenimente


mareste imaginea
Fig. 3.1. Diagrama de tranziție: mișcarea robotului la linia neagră

  1. Robotul este în mișcare.
  2. Senzorul de lumină detectează scăderea luminozității la un anumit prag - acesta este un eveniment nou, care ar putea fi numit „robotul a atins linia neagră.“
  3. Ca rezultat, robotul de înregistrare eveniment își schimbă starea de inactivitate (oprire).

Astfel, putem spune că robotul trebuie să aștepte tot timpul de apariție a evenimentelor. În acest scop, există o unitate Așteptați specială în mediul NXT-G (așteptați):


Fig. 3.2. Unitate de Intrupari Așteptați o paletă totală

Sursele de evenimente pot fi:

  • diverși senzori (senzori) de culoare, lumina, atingere, etc.;
  • un contor de timp;
  • Unitate de buton NXT;
  • mesaje de la alte roboți expediate prin conexiunea Bluetooth.

Mai departe în acest subiect vom lucra cu unele dintre senzorii cel mai frecvent utilizate.

senzor de culoare (senzor de culoare)

Cunoaște Intuit, curs, stări și evenimente

senzor de culoare (RGB-senzor) combină trei funcții:

  1. Acesta permite robotului să se facă distincția între culori.
  2. Acesta permite robotului să se facă distincția între nivelurile de lumină prin măsurarea luminozității luminii reflectate.
  3. Colorarea.

Lucrând într-un mod de definire de culoare

Exemplul 3.2. În așteptare pentru evenimente de la senzorul de culoare.

Robotul se mișcă câmpul de testare înainte, atâta timp cât registrul nu este albastru.

Cunoaște Intuit, curs, stări și evenimente

Mai devreme în tema „Programarea motorului: mutați comanda“, am observat că nelimitat (fără limită) parametru la configurația bloc Mutare permite robotului să se deplaseze fără restricții până la următorul eveniment. Apoi, puteți schimba starea robotului. schimbare de stare nu se întâmplă în mod automat: trebuie să fie programat! În exemplul nostru, după eveniment (albastru senzor de înregistrare), programat pentru a opri motoarele B și C.

  • Până la câmpul de culoare este setat cu ajutorul a două cursoare.
  • Sarcina 3.1. Testați senzorul de culoare:

    • Adăugați structura robotului Cinci minute senzor de culoare bot situat în față și în jos, la o înălțime de aproximativ 1-1.5 cm deasupra podelei (secțiunea).
    • Adăugați pe blocul de program Așteptați senzor de culoare și testați-l pentru diferite culori:
      1. Conectați NXT la computer printr-o conexiune USB.
      2. Evidențiați bloc Așteptați și faceți clic pe Descărcați și rulați selectat controler NXT (fig. 3.4).
      3. Fără a deconecta-cablu USB, țineți obiecte de diferite culori ale senzorului la o distanță de aproximativ 1 cm.
      4. Urmați rezultatul din setările panoului senzor de câmp de feedback (inferior colțul din stânga panoul de setare).
      5. Efectuați aceleași teste folosind meniul View NXT. dacă rezultatele testelor sunt la fel?


    Fig. 3.4. Compilarea și executarea selecției

    Sarcina 3.2. Scrieți un program pentru a muta robotul de pe banda de testare a 1 bandă de test - un tabel de culori diferite, care rulează de-a lungul marginii câmpului de încercare. Conține negru, albastru, verde, roșu de culoare, galben și gradație. pentru a detecta rosu (albastru, verde, etc) culori. După o culoare predeterminată este detectată, robotul trebuie să spun că de culoare.

    Sarcina 3.3. Scrieți un program pentru mișcarea robotului pe banda de testare înainte de descoperirea de albastru sau verde. Verificați funcționarea programului prin rularea robot pe diferite părți ale benzii de testare.

    Lucrul în modul de măsurare a iluminării

    Senzorul de culoare al setului nostru poate funcționa în două moduri: senzor de culoare real și un senzor de lumină care măsoară iluminarea. Întrerupător Așteptați configurat senzor de culoare senzor de culoare în modul senzor de lumină. În acest scop, câmpul de acțiune, selectați Senzor de lumină (Fig. 3.5). Vă rugăm să rețineți că apariția blocului Așteptați sa schimbat.

    Cunoaște Intuit, curs, stări și evenimente


    Fig. 3.5. Setări Așteptați Unitate de senzor de culoare în modul de măsurare a iluminării

    Pentru a imagina mai bine că „vede“ senzorul de lumină, imaginați-vă că se mișcă pe fotografia alb-negru. la 100 (alb), în timp ce valorile extreme nu este posibilă în practică pentru a fixa rezultatul măsurătorii este luminozitatea variind de la 0 (culoare neagră).

    • Până la nivelul luminii în domeniu este dată prin intermediul unui cursor sau prin introducerea unei valori numerice;
    • semneze în caz de așteptat este pornit, făcând clic pe luminos sau întunecat „soarele“ (implicit este semnul „>“);
    • Până în câmpul citește: „până când iluminarea nu va fi.“. De exemplu, în Fig. 3.5 eveniment este de așteptat „nivel de lumină> 50“, ceea ce înseamnă că acțiunile blocului anterior să aștepte până când iluminarea nu va fi> 50;
    • câmp Funcția permite utilizarea senzorului de culoare ca lămpi de lumină roșie, verde sau albastru (caseta gratuit de lumină). Prin măsurarea intensității luminii reflectate de suprafața este posibil să se estimeze luminozitatea de suprafețe luminoase reflectă mai multă lumină decât întuneric. În general vorbind, în cazul în care măsurătorile de iluminare au loc cu lumină naturală bună, lumina de fundal poate fi dezactivată (debifați Light). Cu toate acestea, producătorul recomandă ca modul de măsurare folosind iluminarea lumina roșie. De asemenea, cu lumina stinsa, puteți măsura expunerea totală a luminii în mediul înconjurător.

    Sarcina 3.4. Testați activitatea senzorului de culoare în modul de măsurare a iluminării pe obiecte de diferite culori în același fel cum am făcut-o în sarcina anterioară:

    • Notați valorile de iluminare, senzor care indică culorile negru, albastru, cyan, galben, verde, roșu și negru pe câmpul de testare.
    • Utilizați ca lumina de fundal în culori diferite. Cum se schimbă citirile senzorilor?
    • Opriți lumina de fundal și comparați senzorul cu iluminare din spate și fără ea.
    • Experiment cu obiectele din jur.

    Sarcina 3.5. Folosind senzorul RGB-lumină în modul de măsurare, a scrie programul pentru robotul pe un câmp alb-negru pentru a detecta. Pentru a face acest lucru, selectați câmpul necesar Până la negru de prag. După oprirea robotului trebuie să afișeze informațiile corespunzătoare (de exemplu, „de culoare neagră găsit!“).

    articole similare