14#include <fmt/printf.h>
20#include "SmartServoBus.hpp"
24#include "rbprotocol.h"
26using namespace gridui;
48 , ir_adc_chan_left(ADC1_CHANNEL_0)
49 , ir_adc_chan_right(ADC1_CHANNEL_3) {
59 adc1_channel_t ir_adc_chan_left;
60 adc1_channel_t ir_adc_chan_right;
63#define RK_DEFAULT_WIFI_AP_PASSWORD "flusflus"
242void rkMotorsDrive(
float mmLeft,
float mmRight, uint8_t speed);
292void rkMotorsDriveAsync(
float mmLeft,
float mmRight, uint8_t speed, std::function<
void()> callback =
nullptr);
347void rkMotorsDriveByIdAsync(uint8_t
id,
float mm, uint8_t speed, std::function<
void()> callback =
nullptr);
459void rkControllerSend(
const char* cmd, rbjson::Object* data =
nullptr);
460void rkControllerSendMustArrive(
const char* cmd, rbjson::Object* data =
nullptr);
501void rkLedById(uint8_t
id,
bool on =
true);
523#define EXTRA_BUTTON1 27
524#define EXTRA_BUTTON2 14
684float rkLineGetPosition(
bool white_line =
false, uint8_t line_threshold_pct = 25);
787void rkSmartLedsRGB(uint16_t idx, uint8_t r, uint8_t g, uint8_t b);
799void rkSmartLedsHSV(uint16_t idx, uint8_t h, uint8_t s, uint8_t v);
807SmartLed& rkSmartLedsGetController();
int16_t rkTemperature()
Teplota desky v Robotce.
Definition: robotka.cpp:68
uint32_t rkBatteryPercent()
Úroveň baterie v procentech.
Definition: robotka.cpp:60
uint32_t rkBatteryVoltageMv()
Úroveň baterie v mV.
Definition: robotka.cpp:64
void rkBuzzerSet(bool on)
Zapnout/vypnout bzučák.
Definition: robotka.cpp:382
#define RK_DEFAULT_WIFI_AP_PASSWORD
Výchozí heslo pro WiFi AP.
Definition: robotka.h:63
void rkSetup(const rkConfig &cfg=rkConfig())
Inicializační funkce Robotky.
Definition: robotka.cpp:20
uint16_t rkIrLeft()
Hodnota z levého IR senzoru.
Definition: robotka.cpp:348
uint16_t rkIrRight()
Hodnota z pravého IR senzoru.
Definition: robotka.cpp:352
void rkLedAll(bool on=true)
Zapnout/vypnout všechny LED zaráz.
Definition: robotka.cpp:235
void rkLedRed(bool on=true)
Zapnout/vypnout červenou LED.
Definition: robotka.cpp:219
void rkLedBlue(bool on=true)
Zapnout/vypnout modrou LED.
Definition: robotka.cpp:231
void rkLedGreen(bool on=true)
Zapnout/vypnout zelenou LED.
Definition: robotka.cpp:227
void rkLedYellow(bool on=true)
Zapnout/vypnout žlutou LED.
Definition: robotka.cpp:223
void rkLedById(uint8_t id, bool on=true)
Zapnout/vypnout LED podle jejich čísla na desce, od 1 do 4 včetně.
Definition: robotka.cpp:243
uint16_t rkLineGetSensor(uint8_t sensorId)
Hodnota z jednoho senzoru na čáru.
Definition: robotka.cpp:340
void rkLineClearCalibration()
Vymazat kalibraci.
Definition: robotka.cpp:330
void rkLineCalibrate(float motor_time_coef=1.0)
Kalibrovat senzorickou lištu.
Definition: robotka.cpp:292
float rkLineGetPosition(bool white_line=false, uint8_t line_threshold_pct=25)
Pozice čáry pod senzorickou lištou.
Definition: robotka.cpp:344
void rkMotorsDrive(float mmLeft, float mmRight, uint8_t speed)
Popojetí oběma motory o vzdálenost v mm (blokující).
Definition: robotka.cpp:114
void rkMotorsJoystick(int32_t x, int32_t y)
Nastavení rychlosti motorů podle joysticku.
Definition: robotka.cpp:215
float rkMotorsGetPositionById(uint8_t id, bool fetch=false)
Vrátí absolutní najetou vzálenost na motoru podle ID.
Definition: robotka.cpp:177
float rkMotorsGetPositionRight(bool fetch=false)
Vrátí absolutní najetou vzálenost na pravém motoru v mm.
Definition: robotka.cpp:173
void rkMotorsDriveLeftAsync(float mm, uint8_t speed, std::function< void()> callback=nullptr)
Popojetí levým motorem o vzdálenost v mm (asynchroní).
Definition: robotka.cpp:152
float rkMotorsGetPositionLeft(bool fetch=false)
Vrátí absolutní najetou vzálenost na levém motoru v mm.
Definition: robotka.cpp:169
void rkMotorsSetPositionById(uint8_t id, float positionMm=0.f)
Nastaví absolutní počítadlo vzdálenosti na motoru podle ID na hodnotu v mm.
Definition: robotka.cpp:205
void rkMotorsSetPowerLeft(int8_t power)
Nastavení výkonu levého motoru.
Definition: robotka.cpp:76
void rkMotorsSetPowerRight(int8_t power)
Nastavení výkonu pravého motoru.
Definition: robotka.cpp:80
void rkMotorsSetSpeedRight(int8_t speed)
Nastavení rychlosti pravého motoru.
Definition: robotka.cpp:101
void rkMotorsDriveRight(float mm, uint8_t speed)
Popojetí pravým motorem o vzdálenost v mm (blokující).
Definition: robotka.cpp:128
void rkMotorsDriveAsync(float mmLeft, float mmRight, uint8_t speed, std::function< void()> callback=nullptr)
Popojetí oběma motory o vzdálenost v mm (asynchroní).
Definition: robotka.cpp:148
void rkMotorsSetPositionLeft(float positionMm=0.f)
Nastaví absolutní počítadlo vzdálenosti na levém motoru na hodnotu v mm.
Definition: robotka.cpp:197
void rkMotorsSetSpeedById(uint8_t id, int8_t speed)
Nastavení rychlosti motoru podle jeho čísla (M1...M4) na desce.
Definition: robotka.cpp:105
void rkMotorsSetPositionRight(float positionMm=0.f)
Nastaví absolutní počítadlo vzdálenosti na pravém motoru na hodnotu v mm.
Definition: robotka.cpp:201
void rkMotorsSetPower(int8_t left, int8_t right)
Nastavení výkonu motorů.
Definition: robotka.cpp:72
void rkMotorsSetSpeed(int8_t left, int8_t right)
Nastavení rychlosti motorů.
Definition: robotka.cpp:93
void rkMotorsDriveByIdAsync(uint8_t id, float mm, uint8_t speed, std::function< void()> callback=nullptr)
Popojetí motorem podle ID o vzdálenost v mm (asynchroní).
Definition: robotka.cpp:160
void rkMotorsDriveById(uint8_t id, float mm, uint8_t speed)
Popojetí motorem podle ID o vzdálenost v mm (blokující).
Definition: robotka.cpp:132
void rkMotorsDriveLeft(float mm, uint8_t speed)
Popojetí levým motorem o vzdálenost v mm (blokující).
Definition: robotka.cpp:124
void rkMotorsSetPowerById(uint8_t id, int8_t power)
Nastavení výkonu motoru podle jeho čísla (M1...M4) na desce.
Definition: robotka.cpp:84
void rkMotorsSetSpeedLeft(int8_t speed)
Nastavení rychlosti levého motoru.
Definition: robotka.cpp:97
void rkMotorsDriveRightAsync(float mm, uint8_t speed, std::function< void()> callback=nullptr)
Popojetí pravým motorem o vzdálenost v mm (asynchroní).
Definition: robotka.cpp:156
void rkControllerSendLog(const char *format,...)
Odeslat text do aplikace.
Definition: robotka.cpp:24
void rkSmartLedsHSV(uint16_t idx, uint8_t h, uint8_t s, uint8_t v)
Nastavit barvu chytré led ve formátu HSV (Hue, Saturation, Value).
Definition: robotka.cpp:395
void rkSmartLedsHEX(uint16_t idx, uint32_t hexCode)
Nastavit barvu chytré led podle RGB HEX kódu.
Definition: robotka.cpp:404
void rkSmartLedsRGB(uint16_t idx, uint8_t r, uint8_t g, uint8_t b)
Nastavit barvu chytré led ve formátu RGB (Red, Green, Blue).
Definition: robotka.cpp:386
lx16a::SmartServoBus & rkSmartServoBus(uint8_t servo_count)
Vrátí instanci SmartServoBus pro ovládání chytrých serv.
Definition: robotka.cpp:444
void rkServosSetPosition(uint8_t id, float angleDegrees)
Nastaví pozici hloupého serva na zadaný úhel.
Definition: robotka.cpp:417
void rkServosDisable(uint8_t id)
Vypne hloupé servo.
Definition: robotka.cpp:435
float rkServosGetPosition(uint8_t id)
Vrátí naposledy nastavenou pozici hloupého serva.
Definition: robotka.cpp:426
uint32_t rkUltraMeasure(uint8_t id)
Změřit vzálenost (blokující)
Definition: robotka.cpp:356
void rkUltraMeasureAsync(uint8_t id, std::function< bool(uint32_t)> callback)
Změřit vzálenost (asynchroní)
Definition: robotka.cpp:368
Nastavení SW pro Robotky.
Definition: robotka.h:72
const char * wifi_password
Heslo k WiFi, na kterou se připojit. Výchozí: ""
Definition: robotka.h:116
float stupid_servo_max
Horní hranice signálu pro hloupá serva, která se rovná 90 stupňům. Výchozí: 1.65
Definition: robotka.h:150
uint8_t motor_id_left
Které M číslo motoru patří levému, podle čísla na desce. Výchozí: 2
Definition: robotka.h:122
bool rbcontroller_app_enable
povolit komunikaci s aplikací RBController. Výchozí: false
Definition: robotka.h:98
uint8_t motor_max_power_pct
Limit výkonu motoru v procentech od 0 do 100. Ovlivňuje všechny režimy motorů. Výchozí: 60
Definition: robotka.h:124
uint16_t smart_leds_count
Nastavení počtu připojených chytrých LED. Výchozí: 8.
Definition: robotka.h:152
uint16_t motor_wheel_diameter
Průměr kol robota v mm, použito na počítání ujeté vzdálenosti. Výchozí: 67 mm.
Definition: robotka.h:128
const char * name
Jméno robota. Výchozí: "".
Definition: robotka.h:113
bool rbcontroller_enable_webocket
Definition: robotka.h:104
const char * wifi_ap_password
Heslo k vytvořené síti. Výchozí: "flusflus"
Definition: robotka.h:119
uint32_t motor_max_acceleration
Maximální zrychlení motorů v ticích enkodéru za vteřinu. Výchozí: 50000
Definition: robotka.h:147
uint8_t wifi_ap_channel
Kanál WiFi vytvořené sítě. Výchozí: 1
Definition: robotka.h:120
bool motor_polarity_switch_left
Prohození polarity levého motoru. Výchozí: false
Definition: robotka.h:125
float stupid_servo_min
Spodní hranice signálu pro hloupá serva, která se robvná -90 stupňům. Výchozí: -1....
Definition: robotka.h:149
rkPinsConfig pins
Konfigurace pinů pro periferie, viz rkPinsConfig.
Definition: robotka.h:154
bool rbcontroller_enable_udp
Definition: robotka.h:110
bool wifi_default_ap
Vytvářet WiFi síť místo toho, aby se připojovalo k wifi_name. Výchozí: false
Definition: robotka.h:118
uint8_t motor_id_right
Které M číslo motoru patří pravému, podle čísla na desce. Výchozí: 1
Definition: robotka.h:123
const char * wifi_name
Jméno WiFi sítě, na kterou se připojovat. Výchozí: ""
Definition: robotka.h:115
bool motor_enable_failsafe
Zastaví motory po 500ms, pokud není zavoláno rkSetMotorPower nebo rkSetMotorSpeed....
Definition: robotka.h:127
bool motor_polarity_switch_right
Prohození polarity pravého motoru. Výchozí: true
Definition: robotka.h:126
const char * owner
Jméno vlastníka robota. Podle tohoto jména filtruje RBController roboty. Výchozí: ""
Definition: robotka.h:112
uint32_t motor_max_ticks_per_second
Maximální rychlost motorů v ticích enkodéru za vteřinu. Výchozí: 2000
Definition: robotka.h:138
Nastavení čísel pinů různých periferií.
Definition: robotka.h:41