No history yet

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

Lesson image

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.

Threshold=(BlackValue+WhiteValue)2\text{Threshold} = \frac{(\text{BlackValue} + \text{WhiteValue})}{2}

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

Quiz Questions 1/5

Kāpēc ir svarīgi kalibrēt krāsu sensoru pirms līnijas sekošanas uzdevuma uzsākšanas?

Quiz Questions 2/5

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.