Senzor za praćenje linije

Senzor za praćenje linije nalazi se ispod robota. Sastoji se od 5 senzora, tri unutarnja (R1, M, L1) i  dva vanjska (R2 i L2), od kojih svaki ima infracrveni odašiljač i infracrveni prijemnik. Infracrveni odašiljač neprekidno emitira infracrvenu svjetlost tijekom kretanja robota. Infracrveno svjetlo se reflektira kada se robot susreće s bijelom ili nekom drugom svijetlom površinom i tada prijemnik prima infracrveni signal i upravljačkoj pločici šalje vrijednost 0. Ako se infracrveno svjetlo apsorbira ili se ne može odraziti (na tamnim površinama), prijemnik neće primiti infracrveni signal pa šalje vrijednost 1.

Kada je barem jedan od 5 senzora za praćenje linije na crnoj (tamnoj) površini, s gornje strane robota uključit će se plavi indikator. Inače je indikator isključen.

Raspon detekcije je 1 do 2 cm. Ako je robot predaleko od površine (udaljeniji od 2 centimetara), infracrveno svjetlo se ne može reflektirati pa senzor šalje vrijednost 1 kao u slučaju kad se robot nalazi na tamnoj površini

Kalibracija senzora

Senzor za praćenje linije kalibriran je prije nego vam je robot dostavljen i ne trebate ga sami kalibrirati, no ako primijetite da senzor za praćenje linije ne prepoznaje crnu liniju, možete ga kalibrirati.

Tipkalo za kalibraciju nalazi se s prednje lijeve strane robota.

Upute za kalibraciju:

 

1. Postavite robot na stazu po kojoj želite da prati liniju tako da je sa svih 5 senzora na crnoj površini. Uključit će se plavi indikator koji se nalazi pokraj tipkala za kalibraciju.

2. Držite pritisnutu tipku za kalibraciju oko 1 sekunde. Kada dvije gornje svjetleće diode zatrepere nekoliko puta, kalibracija je gotova.

3. Testirajte rade li senzori za praćenje linije ispravno.

Naredbe za senzor za praćenje linije

Naredbe za senzor za praćenje linije nalaze se u Mind+ programu pod kategorijom Expansion Board.

Naredba

Objašnjenje

Vraća vrijednost (0 ili 1) odabranog senzora za praćenje linije (L1, L2, M, R1, R2), ovisno o tome je li senzor na svijetloj ili tamnoj podlozi.

Vraća analognu vrijednost koju očitava odabrani senzor za praćenje linije (L1, L2, M, R1, R2).

Primjer programa za senzor za praćenje linije

Za rješavanje ovog primjera 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.

Ovisno o stanju baterija i željenoj duljini puta koju robot treba prijeći, vrijednosti brzine skretanja su relativne te ih je potrebno prilagoditi.

Praćenje linije s unutarnje strane

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).