Programovací jazyk KemoPro

Robota Kamila lze programováním v Pythonu naučit mnohému, ale takové programování nemusí zvládnout každý, nehledě k tomu, že ho tímto způsobem dotyčná osoba třeba ani ovládat nechce, nebo ji to nezajímá, ona by Kamila chtěla za kámoše, kterému může dávat "lidské" pokyny.  
Tak vznikl nápad vytvořit jednoduchý programovací jazyk, se kterým by, zvláště dětští uživatelé, mohli robota postupně ovládat, od jednoduchých pokynů ke složitějším. 
Kód programu KemoPro je uložen v textovém souboru s příponou TXT. Vytvořit ho můžeme na PC v NotePadu nebo jiném jednoduchém editoru, který k obsahu nic nepřidává (tedy ne v programu typu MS Word apod.). Můžeme ho připravit i na Kamilovi v programu číslo 101. Vzhledem k omezenému počtu kláves na klávesnici 4x4, i když chybějící znaky lze vložit jako ASCII kódy, nebo nemožnosti zápisu poznámek od 21. pozice, je ale editace v tomto režimu (my mu říkáme režim "on-robot") použitelná spíše pro drobné opravy kódu nebo pro vložení pár řádků, na které jsme ve spěchu zapomněli, a diváci i hodnotící komise už netrpělivě čekají angry

Řádek kódu má tuto strukturu:
RRR|   |OPK*parametry                  od pozice 21 jde o poznámku
RRR|   |;   středník na první pozici znamená, že jde o poznámkový řádek
RRR|   |    neaktivní, prázdný řádek pro optické oddělení v kódu nebo pro budoucí OPK - žádná akce

Zde je  RRR číslo řádkuOPK je operační kód.

Číslo řádku slouží při běhu programu k orientaci, který řádek se právě provádí, což je dobré např. při hledání chyby. Číslování řádků je rovněž důležité pro editaci programového kódu v režimu on-robot.

Operační kód říká Kamilovi, co má dělat. Jde většinou o třímístný číselný kód.
U několika málo příkazů nam to bude stačit: 
003            motory STOP
022            udělej vpravo vbok
205            smazání LCD displeje


U většiny operačních kódů však následují parametry, které jsou odděleny znakem *, a které Kamilovi říkají, jak to má udělat:
001*1*1.5          jeď vpřed, vyrovnávej** na azimut, čas pohybu jedna a půl vteřiny
002*11*0*40      jeď vpřed, nevyrovnávej na azimut, délka dráhy 40cm
041*315            otoč se na azimut 315

** Při jízdě robota v přímém směru dochází ke stranovým odchylkám, které jsou způsobeny ne zcela shodnou prací motorů (byť shodného typu, deklarovaných vlastností i požadavků na výkon). Tyto odchylky mohou být vyrovnávány za pomoci kompasu nebo změnou otáček motorů. 

Pro uložení mezivýsledků a jednoduché matematické operace jsou k dispozici registry B01 až B20:
043*B04            urči azimut a hodnotu zapiš do registru B04
041*B04            otoč se na azimut uložený v registru B04


Jinými kódy můžete zobrazit na displeji text, pípat nebo pracovat se zvukovým souborem nebo s videem.
204*text            zobraz text ve čtvrtém řádku LCD displeje (max. 20 zn.)
082*01              pípni 1x dlouze
071*A1408       přehraj soubor A1408.ogg/mp3, čekej na dokončení


Skoky v programu jsou povoleny! Na rozdíl od dnešních programovacích jazyků jsou skoky v programu nejen povoleny, ale jsou nutností.
300*N003            označení návěstí - sem mohu v programu skočit kódem 301
301*N003            bezpodmínečný skok na návěstí Nxxx
312*B02*B03*N003    podmíněný skok - jestliže je obsah B02 > B03, skoč na návěstí N003


Kompletní aktuální seznam operačních kódů je uveden v příloze, v čase stále přibývají kódy nové.