Senzor za praćenje linije

S donje strane micro:Maqueen robota nalaze se dva senzora za praćenje linije. Pomoću tih senzora robot raspoznaje nalazi li se na crnoj ili bijeloj podlozi. Kad je robot na bijeloj podlozi dva plava indikatora s gornje strane robota će svijetliti, a kad je na crnoj podlozi, onda indikatori ne svijetle.

Zadatak

Izradite najprije program kojim će micro:Maqueen robot pratiti crnu liniju staze koju možete preuzeti ovdje. Sami možete izraditi svoje staze i programirati robota da po njima prati crnu liniju. U ovom zadatku neka robot prati liniju tako da vozi ravno onda kada je s oba senzora na crnoj površini linije.

Rješenje

Objašnjenje

Kad postavite robot na stazu možete primijetiti da se on može naći u 4 moguće situacije: s oba senzora na crnoj podlozi, s oba senzora na bijeloj podlozi, s lijevim na crnoj i s desnim na bijeloj te s lijevim na crnoj i s desnim na bijeloj podlozi. Za svaku od ovih situacije morate odrediti kako se robot mora kretati kako bi ne bi uspješno pratio stazu i ne odlutao s nje.

Zato ćete iz kategorije naredbi Logic upotrijebiti 4 if then naredbe  te ih postaviti unutar naredbe forever. U svakoj od tih 4 naredbe potrebno je definirati jednu od situacija u kojoj se robot može naći dok se kreće stazom prema postavljenoj logici praćenja linije:

  • Ako su oba senzora na crnoj podlozi, robot neka ide ravno.
  • Ako je desni senzor na crnoj liniji, a lijevi na bijeloj, neka se robot zakrene udesno kako bi s oba senzora ponovno bio na crnoj podlozi.
  • Ako je lijevi senzor na crnoj liniji, a desni na bijeloj, neka se robot zakrene ulijevo kako bi s oba senzora ponovno bio na crnoj podlozi.
  • Ako su oba senzora na bijeloj podlozi, robot neka ide unatrag.

 

U prvom if then bloku provjerite je li robot s oba senzora na crnoj crti. Iz kategorije naredbi Logic odaberite naredbu and te u desni i u lijevi argument postavite operator jednakosti. U svaki od argumenata unutar operatora jednakosti postavite s lijeve strane naredbu read left line tracking sensor iz kategorije Maqueen, a s desne strane upišite vrijednost 0. Time ste ispitali nalaze li se oba senzora na crnoj crti. Ako je provjera tog uvjeta istinita, robot mora voziti ravno, pa iskoristite naredbu motor all move Forward 100 i postavite je u then dio.

U drugom if then bloku provjerite je li robot s lijevim senzorom izašao na bijelu podlogu, a pritom s desnim ostao na crnoj crti. U tom slučaju je read left line tracking sensor = 1, a read left line tracking sensor = 0.Tada robot mora skrenuti desno. Za skretanje desno postavite da se robotu lijevi kotač okreće unaprijed, a desni unatrag (motor left move Forward at speed 50 i motor right move Backward at speed 50).

U trećem if then bloku definirajte uvjet i kretanje robota kada je s lijevim senzorom na crnoj, a s desnim na bijeloj podlozi. Tada robot treba skrenuti lijevo pa iskoristite naredbe motor left move Backward at speed 50 i motor right move Forward at speed 50.

Na kraju dodajte, u posljednjem if then bloku, postavite da se robot vozi unatrag naredbom motor all move Backward at speed 50, ako se s oba senzora za praćenje linije nađe na bijeloj površini.