void RobotSoccer::calibrate(){
go(0, 0, 25, 100);
mrm_ref_can->calibrate(0);
mrm_ref_can->calibrate(1);
mrm_ref_can->calibrate(2);
mrm_ref_can->calibrate(3);
go(0, 0, 0, 0);
end();
}
Budući da postoje gotove funkcije za kalibraciju svakog senzora linije, iskoristit ćemo ih.
Prva linija, "go()", pokreće robota da se okreće oko svoje vertikalne osi. Robot treba biti pozicioniran nad linijom.
Nakon toga se kalibriraju redom 4 senzora ("calibrate()").
Robot se zaustavi i prekine izvršavanje programa.
Rješenje je jednostavno, ali ima manu da se senzori kalibriraju sekvencijalno, umjesto svi odjednom.
void RobotSoccer::barrierTest(){
print("%i - %s ball\n\r", analogRead(SOCCER_BARRIER_PIN), barrier() ? "" : "no");
}
Iz menija izaberimo "bar", koji će pokrenuti funkciju lijevo.
Pogledajte koje su vrijednosti kad nema lopte i koje su kad je lopta u prostoru za prihvat lopte.
Okrećite loptu na razne načine i ustanovita koja je najveća vrijednost.
Nađite polovicu zbroja gornje najveće vrijednosti i vrijednosti kad lopte nema.
Taj broj će biti vrijednost koju ćete upisati u "BARRIER_MID_VALUE", u mrm-robot-soccer.h.
Ispišite na displej kako napreduje kalibracija linijskih senzora.