Robotka
Knihovna pro obsluhu Robotky.
Funkce
Sledování čáry (!! senzorická lišta !!)

Funkce

void rkLineCalibrate (float motor_time_coef=1.0)
 Kalibrovat senzorickou lištu. ...
 
void rkLineClearCalibration ()
 Vymazat kalibraci. ...
 
uint16_t rkLineGetSensor (uint8_t sensorId)
 Hodnota z jednoho senzoru na čáru. ...
 
float rkLineGetPosition (bool white_line=false, uint8_t line_threshold_pct=25)
 Pozice čáry pod senzorickou lištou. ...
 

Detailní popis

Funkce pro komunikaci se senzorickou lištou na čáru. Tyto funkce jsou pro půlměsícovou desku s 8 senzory, ne pro malé, obdélníkové desky s 1 senzorem!

Dokumentace funkcí

◆ rkLineCalibrate()

void rkLineCalibrate ( float  motor_time_coef = 1.0)

Kalibrovat senzorickou lištu.

Otočí robota doprava a pak doleva a zase zpět tak, aby lišta se senzory prošla celá nad čárou i nad okolím. Trvá to 2.2s, funkce po celou dobu kalibrace čeká a vrátí se až po dokončení.

Předpokládá se, že před zavoláním této metody roboto stojí tak, že prostřední senzory jsou nad čárou.

Kalibrační hodnoty se ukládají do paměti, kalibraci je třeba dělat pouze když je ruka přesunuta na jiný podklad.

Parametry
motor_time_coeftento koeficient změní jak dlouho se roboto otáčí, změňte pokud se vaše ruka neotočí tak, že senzory projedou všechny nad čárou.

◆ rkLineClearCalibration()

void rkLineClearCalibration ( )

Vymazat kalibraci.

Vymazat nastavenou kalibraci a dále používat nezkalibrované hodnoty.

◆ rkLineGetPosition()

float rkLineGetPosition ( bool  white_line = false,
uint8_t  line_threshold_pct = 25 
)

Pozice čáry pod senzorickou lištou.

Tato funkce se pokouší najít černou čáru pod senzorickou lištou.

Parametry
white_linenastavte na true, pokud sledujete bílou čáru na černém podkladu. Výchozí: false
line_threshold_pctJak velký rozdíl v procentech musí mezi hodnotami být, aby byla čára považována za nalezenou. Výchozí: 25%
Návratová hodnota
Desetinná hodnota od -1 do +1. -1 znamená, že čára je úplně vlevo, 0 že je uprostřed a 1 že je úplně vpravo. Vrátí NaN, pokud nenalezne čáru - výsledek otestujte funkcí isnan() - isnan(line_position)

◆ rkLineGetSensor()

uint16_t rkLineGetSensor ( uint8_t  sensorId)

Hodnota z jednoho senzoru na čáru.

Parametry
sensorIdčíslo senzoru od 0 do 7 včetně
Návratová hodnota
naměřená hodnota od 0 do 1023