1. Vývojové prostředí 2. Dálkové ovládání 3. Nový projekt 4. První program 5. Formátování kódu 6. Komentáře 7. Proměnná 8. Větvení 9. Cyklus 10. Funkce 11. LEDky 12. LED pásek 13. Sériová linka 14. Koncová tlačítka 15. Práce s tlačítky 16. Ultrazvuk 17. IR senzor 18. Motory 19. Monitorování robotky Motivace Jak monitorovat stav Robotky 20. Serva (hloupá) 21. Úpravy dálkového ovládání Dokumentace Příklady

Monitorování robotky

Motivace

U každého robota, který není přímo napájen ze sítě, je důležité sledovat jeho stav baterie a teplotu desky. Důvodem kontroly napětí baterie je, že když včas neodpojíme vybité baterie, tak se mohou poničit. Teplotu následně kontrolujeme, aby se robot nepřehřál a nepoškodil (přehřívání většinou znamená nějaké přetížení nebo závadu).

Jak monitorovat stav Robotky

Následující funkce, které je možné použít pro monitorování Robotky, neočekávají žádný parametr. Jsou jimy funkce:

  • rkBatteryPercent - Získá hodnotu baterek, přepočítá ji na procenta a tuto hodnotu následně vrátí uživateli
  • rkBatteryVoltageMv - Zjistí stav baterky v milivoltech a vrací ji uživateli. Například hodnotu 5V vrací jako 5000 mV
  • rkTemperature - Změři teplotu v robotce a vrací ji uživateli
Ukázka detekce stavu baterie s využitím LED
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "robotka.h"

void setup() {
    rkConfig cfg;
    rkSetup(cfg);
   
    int napeti = 0;

    while(true){
        napeti = rkBatteryPercent();

        // nabita baterie
        if( (napeti <= 100) && (napeti >= 75) ){
            rkLedRed(false); 
            rkLedGreen(true);
            rkLedYellow(false);
        }

        // baterie je nabita napul
        else if( (napeti < 75) && (napeti >= 50) ){
            rkLedRed(false); 
            rkLedGreen(false);
            rkLedYellow(true);
        }

        // baterie je temer vybita
        else{   
            rkLedRed(true); 
            rkLedGreen(false);
            rkLedYellow(false);
        }
    }
}
Ukázka vypisu teploty
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "robotka.h"

void setup() {
    rkConfig cfg;
    rkSetup(cfg);
   
    int teplota = 0;

    while(true){
        teplota = rkTemperature();
        printf("teplota je: %d\n", teplota);
    }
}

Další kapitola: Serva (hloupá)