EV3 Classroom līnijsekošanas meistarklase
Sensora kalibrēšana
Sensora kalibrēšana precizitātei
Lai robots spētu precīzi sekot līnijai, tam ir nepieciešams skaidri atšķirt melno līniju no baltās virsmas. Taču dažādi apgaismojuma apstākļi var ietekmēt to, kā sensors "redz" šīs krāsas. Vienkārši nolasīt vērtības reāllaikā nav pietiekami uzticami. Tā vietā mēs iemācīsim sensoram atpazīt konkrētās trases melno un balto krāsu, izveidojot automātisku kalibrēšanas procesu.
Mērķis ir aprēķināt vidējo vērtību starp melnās un baltās virsmas nolasījumiem. Šī vērtība, ko sauc par slieksni (threshold), būs mūsu atskaites punkts. Viss, kas ir tumšāks par šo slieksni, tiks uzskatīts par melnu, un viss, kas gaišāks – par baltu. Mēs izmantosim režīmu, kas mēra, cik daudz gaismas atstarojas no virsmas. Baltas virsmas atstaro daudz gaismas (augsta vērtība), bet melnas – ļoti maz (zema vērtība).
Datu saglabāšana mainīgajos
Lai veiktu aprēķinus, mums ir nepieciešams kaut kur saglabāt sensora nolasītās vērtības. Šim nolūkam programmēšanā izmanto (Variables). Mainīgais ir kā marķēta kastīte atmiņā, kurā mēs varam ievietot un vēlāk izmantot kādu vērtību, piemēram, skaitli. Mums būs nepieciešami divi mainīgie, lai saglabātu melnās un baltās krāsas nolasījumus, un vēl viens, lai saglabātu aprēķināto slieksni.
Sāksim ar kalibrēšanas loģikas izveidi EV3 Classroom vidē. Mēs liksim robotam nolasīt vērtību virs baltas virsmas, pagaidīt pogas nospiešanu, un tad nolasīt vērtību virs melnās līnijas.
# Sākumā izveidojam trīs mainīgos:
# BlackValue, WhiteValue, Threshold
when program starts
# 1. posms: nolasa balto vērtību
display text "Place on white"
wait until center button pressed
set WhiteValue to color sensor reflected light intensity
# 2. posms: nolasa melno vērtību
display text "Place on black"
wait until center button pressed
set BlackValue to color sensor reflected light intensity
Sliekšņa aprēķināšana
Kad esam ieguvuši un saglabājuši abas vērtības, ir laiks veikt matemātisku darbību. Lai atrastu viduspunktu starp abām vērtībām, mums tās jāsaskaita un rezultāts jādala ar divi. Šis aprēķins dos mums sliekšņa vērtību, kas ir ideāli piemērota, lai noteiktu robežu starp līniju un fonu.
EV3 Classroom vidē mēs varam viegli realizēt šo formulu, izmantojot matemātiskos blokus. Mēs paņemsim saskaitīšanas un dalīšanas operatorus, lai apvienotu mūsu BlackValue un WhiteValue mainīgos un saglabātu rezultātu jaunā mainīgajā Threshold.
# 3. posms: aprēķina slieksni
set Threshold to ( (BlackValue + WhiteValue) / 2 )
# Noslēgumā parādām rezultātu uz ekrāna
display text join "Threshold: " and Threshold
Šis automātiskais kalibrēšanas cikls nodrošina, ka jūsu robots būs gatavs darbam jebkurā vidē. Katru reizi pirms starta palaižot šo īso programmu, jūs garantējat, ka sliekšņa vērtība ir perfekti pielāgota konkrētajam apgaismojumam un trases virsmai. Tas ir daudz uzticamāk, nekā manuāli ievadīt fiksētas vērtības kodā.
Kāpēc ir svarīgi kalibrēt krāsu sensoru pirms līnijas sekošanas uzdevuma uzsākšanas?
Kurš mainīgo lielumu veids programmēšanā vislabāk atbilstu sensora nolasījumu (piemēram, 15 vai 88) un aprēķinātā sliekšņa glabāšanai?
Tagad, kad esat apguvis, kā dinamiski aprēķināt slieksni, nākamajā solī varat izmantot šo vērtību, lai izveidotu lēmumu pieņemšanas loģiku līnijas sekošanas algoritmam.
