15 srp Senzor za praćenje linije
S donje strane micro:Maqueen robota Lite 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.
Za rješavanje ovog zadatka upotrijebite stazu koju ste dobili u kompletu s robotom ako ste ga posudili u knjižnici ili izradite svoju stazu. Svoju stazu možete kreirati od modularnih dijelova koje možete preuzeti ovdje. Isprintajte dijelove staze u količinama koje vam trebaju na papiru veličine A4 te ih spojite po želji. Stazu možete načiniti i na svjetlijoj kartonskoj podlozi ili podu na koji ćete zalijepiti crnu izolir traku ili crni kolaž papir.
Zadatak
Izradite najprije program kojim će micro:Maqueen Lite robot pratiti crnu liniju staze koju možete pronaći, odabrati i 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.
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 bijeloj i s desnim na crnoj podlozi. Za svaku od ovih situacije morate odrediti kako se robot mora kretati da uspješno prati stazu i ne odluta 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 te u jednom promijenite left u right, a s desne strane operatora nejednakosti 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 right 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.