Praćenje linije s unutarnje strane

Za rješavanje ovog zadatka upotrijebite stazu koju ste dobili u kompletu s robotom 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 program kojim će robot samostalno pratiti crnu crtu tako da se kreće ravno po njoj onda kada su mu dva unutarnja senzora za praćenje linije (L1 i M) na crnoj podlozi.

U slučaju da s oba senzora izađe na bijelu površinu neka vožnjom unatrag ponovno pronađe crnu crtu.

Rješenje

Objašnjenje

Robot kreće s vožnjom nakon pritiska na tipku A na micro:bitu.

Zatim slijede 4 if then bloka koji provjeravaju 4 moguća očitanja senzora za praćenje linije te ovisno o njima određuju smjer kretanja robota.

Ako su oba senzora za praćenje linije na tamnoj podlozi (if read line sensor L1 state =1 and read line sensor M state =1) robot se kreće ravno (set all motor direction rotate forward speed 75).

U slučaju lijevog zavoja (kad je L1 senzorom robot na tamnoj, a M senzorom na svijetloj podlozi), senzori očitavaju vrijednosti 1 i 0 (if read line sensor L1 state =1 and read line sensor M state =0) te robot mora skrenuti lijevo. Kod skretanja, oba motora se kreću istom brzinom, u različitim smjerovima (set left motor direction rotate backward speed 150, set right motor direction rotate forward speed 150). Robot skreće u smjeru kotača koji ide unazad.

Kad robot naiđe na desni zavoj (senzor L1 detektira svijetlu površinu, a senzor M je na tamnoj) senzori očitavaju vrijednosti 0 i 1 (if read line sensor L1 state =0 and read line sensor M state =1) te robot mora skrenuti desno. Kod skretanja, oba motora se kreću istom brzinom u različitim smjerovima (set left motor direction rotate forward speed 150, set right motor direction rotate backward speed 150).

U slučaju da su oba senzora izvan linije, oba očitavaju vrijednost 0 (if read line sensor L1 state =0 and read line sensor M state =0), te robot vozi unatrag (set all motor direction rotate backward speed 75).