Robotka
Knihovna pro obsluhu Robotky.
Funkce
Ultrazvuky

Funkce

uint32_t rkUltraMeasure (uint8_t id)
 Změřit vzálenost (blokující) ...
 
void rkUltraMeasureAsync (uint8_t id, std::function< bool(uint32_t)> callback)
 Změřit vzálenost (asynchroní) ...
 

Detailní popis

Funkce pro meření vzálenosti pomocí ultrazvuků.

Dokumentace funkcí

◆ rkUltraMeasure()

uint32_t rkUltraMeasure ( uint8_t  id)

Změřit vzálenost (blokující)

Změří vzálenost ultrazvukem a vrátí výsledek v milimetrech. Může blokovat program až 30ms, podle toho, co ultrazvuk naměří.

Parametry
idId ultrazvuku, od 1 do 4 včetně, podle popisků na desce.
Návratová hodnota
Naměřená vzdálenost v mm, 0 pokud se měření nepodaří.

◆ rkUltraMeasureAsync()

void rkUltraMeasureAsync ( uint8_t  id,
std::function< bool(uint32_t)>  callback 
)

Změřit vzálenost (asynchroní)

Přidá požadavek na měření vzdálenosti do fronty a okamžitě vrátí. Jakmile je změřeno, je zavolána funkce předaná jako callback, jako parametr bude mít naměřenou vzálenost v mm.

Příklad použití:

rkUltraMeasureAsync(1, [](uint32_t distance_mm) -> bool {
printf("Namereno: %u mm\n", distance_mm);
return true;
});
rkLedBlue(true); // provede se ještě před tím, než se stihne změřit vzdálenost.
void rkLedBlue(bool on)
Zapnout/vypnout modrou LED.
Definition: robotka.cpp:219
void rkUltraMeasureAsync(uint8_t id, std::function< bool(uint32_t)> callback)
Změřit vzálenost (asynchroní)
Definition: robotka.cpp:356
Parametry
idId ultrazvuku, od 1 do 4 včetně, podle popisků na desce.
callbackfunkce, která bude zavolána po naměření. Do jejího parametru bude předána naměřená vzdálenost v mm. 0 znamená chybu v měření. Pokud chcete měřit jen jednou, vraťe z callbacku false, pokud opakovaně, pak vracejte true.