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živatelirkBatteryVoltageMv
- Zjistí stav baterky v milivoltech a vrací ji uživateli. Například hodnotu 5V vrací jako 5000 mVrkTemperature
- 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);
}
}