Instructions
Programování robota
Mozek robota
Na desce s tištěnými spoji má robot miniaturní počítač, který se nazývá mikrokontrolér.
Tento mikrokontrolér je integrovaný obvod (IC). Jedná se o komponent s 28 piny, které se připojují
do celého systému robota jako jsou LED kontrolky v očích, do reproduktoru, do IR komunikačního
systému a servomotorů, kterými se ovládají všechny pohyby robota.
Servomotory
Tyto speciální motory ukryté ve speciálním pouzdře mají svou vlastní převodovku a různé elektronické
komponenty. Požadovaný úhel mechanických částí se pak provádí pomocí jednotlivých koleček
převodovky. Ve skutečnosti převodovka zpomaluje počet otáček v závislosti na dosažení
požadovaného úhlu. Tento motor dokáže zajistit otáčení mechanických částí až do úhlu 220°.
Nižší rychlost přitom vyvíjí značkou sílu nebo točivý moment na výstupní pozici a požadovaný úhel
určité mechanické části.
Mikrokontrolér
Tento mikrokontrolér dokáže přijímat sadu 120 základních instrukcí a velké množství kombinací
těchto instrukcí. Série instrukcí se nazývá program. Pro spuštění programu je nezbytné, aby počítač
načetl program do své interní paměti. Mikrokontrolér poté čte zadané instrukce z paměti a vykonává
příslušné operace. Po splnění jedné instrukce přejde systém k plnění další. Tento proces se pak
opakuje v trvalé smyčce až do ukončení programu.
Paměť Flash
V každém počítači musíte nejprve „odstartovat“ program, například hru. Po spuštění programu
pak dochází ke kopírování programu z pevného disku do operační paměti. Po vypnutí počítače
dojde k odstranění programu z paměti. Mikrokontrolér je vybaven zvláštním druhem paměti zvaným
„Flash“, ve které je program uložen trvale. K odstranění programu z flash paměti proto nedochází
ani po vypnutí počítače. Mikrokontroléry používají flash paměti coby permanentní operační paměť
pro ukládání programů do doby, než samotný program neodstraníte.
Načtení programu
Pro načtení programu do flash paměti mikrokontroléru je zpravidla zapotřebí speciálního
programovacího zařízení, které je součástí integrovaného obvodu. Programovací zařízení umožňuje
přenos programu přímo do flash paměti. Toto programovací zařízení se nazývá „programátor“.
Pro zjednodušení tohoto procesu byl vyvinutý software „Bootloader“, který zajišťuje vyhledávání
programu ve flash paměti ihned po připojení zdroje napájení. Pakliže se ve flash paměti nachází
program, bootloader zajistí jeho okamžité spuštění.
Tvorba programu a kompilace
Program se píše v textovém editoru za použití speciální „jazyka“. Po zapsání textu programu
je pak zapotřebí data „přeložit“ do dalších instrukcí, kterým mikrokontrolér bude rozumět.
Tyto instrukce jsou pak uložené do hex-souborů. Pro přenos hex-souborů do robota se pak používá
„flash“ program. Pro zápis programu se používá speciálního textového editoru například Programmers
Notepad2 (PN2). Použít však můžete i jiný textový editor (například MS Word), avšak přesto
doporučujeme použití standardních programovacích editorů, které jsou vybaveny velkým množstvím
speciálních funkcí. Vzhledem k tomu, že mikrokontrolér nerozumí programovacímu jazyku „C“,
je zapotřebí provést jeho přeložení (kompilace) do jemu srozumitelného jazyka. Pro naprogramování
robota proto bude nezbytné použití programu „C“ pro kompilaci a přeložení programovacího jazyka.
Pro tyto účely může dobře sloužit program například Gcc.exe.
Načtení programu (Programm upload)
Poté, co kompilační program dokončil překlad „C“ programu „test.c“ do srozumitelných instrukcí
pro mikrokontrolér (soubor „test.hex“), můžete přenést a načíst „hex“ soubor do paměti robota.
Základní struktura „C“ programu
Základní a minimální požadavky na strukturu „C“ programu:
int main(void){
return 0;
}
‘int’ je typ pro hlavní funkci
‘main’ je název pro hlavní funkci
‘void’ indikace ‘no entry’
‘return 0’ je hodnota pro návrat funkce „main“
Jako základní pravidlo pro každou „C“ instrukci platí, že musí být ukončeno středníkem, vyjma
zakončovaní závorkou. V editoru Programmers Notepad2 se automaticky zobrazují zdrojové kódy
v předdefinovaných barvách v závislosti na zvláštních kategoriích. Syntaxe nebo specifická „C“
klíčová slova (keyword) budou podbarvena zeleně, číslice červeně a komentáře modře.
# Můžete vložit virtuální komentář na libovolné místo, následovaný „//“ nebo mezi ´/*´ a ´*/´.
int main/*střední část textu*/(bez textu){ /*jakýkoliv text*/
//jeden řádek textu
/* řádky textu
*/
return 0; //libovolný text
/*
Další textové řádky
*/
}
V následujícím zdrojovém programu dojde k vygenerování chybového hlášení „compiler error“,
pakliže napíšeme „Main“ s velkým písmenem na začátku slova. Jazyk „C“ nepodporuje psaní
klíčových slov (například „main“) s velkými písmeny.
int Main(void){
return 0;
}
Na druhou stranu compiler umožňuje vytvoření řetězce pro všechny instrukce do jedné řádky,
přestože tím nedochází k výraznému zlepšení čitelnosti programu:
int main(void){ //main function entry
return 0; //terminating the main function and
returning a value 0
} //end of the main function
#Comments can also be inserted above the program lines:
// main function entry
int main(void){
// terminating the main function and returning a value 0
return 0;
// end of the main function
}
V tomto návodu jste získali pouze základní náhled do programování a vysvětlení různých
funkcí u programovacího jazyka „C“. Přesto však obsažení všech funkcí a principů programování
je nad rámec tohoto návodu.
Důležité upozornění! Písmeno „v“ na začátku názvu funkce slouží jako doporučení při programování
a označení funkce, která nezajistí návrat hodnoty!