Programování pro malé i velké - Lego Robotics Invention System 2.0

Programování bývá činností v začátcích veskrze nudnou. Uspokojivé výsledky přináší teprve po delší době. Vezmete-li si ale na pomoc „robota“ ze stavebnice Lego Robotics Invention System 2.0 (č. 3804, dále jen RIS), můžete sledovat činnost programu prakticky ihned. Třeba na malém vozítku, které dělá přesně to, co mu váš program řekne (a jak už to bývá, častokrát nikoliv to, co byste chtěli, aby dělalo).

Lego – to jsou světoznámé kostičky z Dánska. Chcete-li z nich stavět roboty, potřebujete kostku označovanou RCX (momentálně verze 2.0).



V jejím nitru je skryt jednočipový počítač Hitachi H8/3292 (8bitový s 16bitovým adresovým prostorem, taktovaný na 16 MHz, 8 kB ROM, 32 kB RAM). Další technické podrobnosti naleznete například zde nebo přímo u výrobce. S okolím komunikuje malým monochromatickým LCD displejem, čtyřmi tlačítky, třemi vstupy a třemi výstupy realizovanými systémem Lego kostek.

Programy pro RCX píšete na běžném PC nebo Macu. Kostce je pak předáváte infračerveným rozhraním zabudovaným v tzv. USB věži.

Ke vstupům kostky se připojují senzory. Ve stavebnici RIS najdete jeden světelný (dokáže rozlišit bílou, zelenou a černou barvu) a dva dotykové (spínač sepnutý/uvolněný). Nebudou-li vám tyto tři senzory dostačovat, je k dostání ještě senzor polohový a teplotní, ale i adaptér umožňující připojit senzory DCP LogIT (např. senzor tlaku vzduchu, vlhkosti, pH senzor, zvukový…).



Světelný senzor (v pozadí dotykový)

Výstupy na kostce ovládají zpravidla motory, ty jsou ve stavebnici dva.

Okolo RCX kostky si pak vybudujete z dílů řady Lego Technic (úplný seznam dílů RIS je např. na této adrese) zařízení, které lze řídit programem do ní zavedeným. Celou řadu námětů na „roboty“ najdete ve stostránkové publikaci dodávané s RIS. A jak je u stavebnic Lego běžné, tvořivosti se meze nekladou.

RIS vás potrápí i ve znalostech, které jste si odnesli z hodin fyziky. Záhy totiž zjistíte, že vymyslet robota, který například pojede a nerozpadne se po prvním nárazu do překážky, není tak snadné, jak to na první pohled vypadá.

V závěru manuálu pak najdete návody na takové vychytávky, jako je diferenciál nebo systém zatáčení robota s jediným motorem. Určitě vás ale upoutají i náměty z přebalu celé stavebnice: robot třídící zelené a červené kuličky, robotický pes, různí robo-brouci a další.

Programování

Program pro RCX můžete zapisovat v celé řadě jazyků. Lego dodává a podporuje vizuální RCX Code a ROBOLAB. Mezi jazyky třetích firem najdete grafický „jazyk“ pro paralelní programování – actor-lab, další jsou pak jazyky „textové“ – QuiteC (C a C++), leJOS (Java), Lego.NET, pbFORTH (Forth), Terrapin Logo (Logo) aj.

Stručný zápis programu umožňuje například derivát jazyka C vyvinutý pro potřeby RCX, NQC (Not Quite C). Pro něj existuje i vcelku komfortní (a bezplatné) integrované prostředí Bricx Command Center.

Kompilátor NQC přeloží zdrojový text, např. procedury ověřující, zda robot jede po černé čáře:

task check_sensor()
{
  while (true)
  {
    if (SENSOR_2 > __BLACK)
    {
      stop gogogo;
      start hudba;
      stop hudba;
      OnRev(OUT_A+OUT_C); Wait(10);
      OnFwd(OUT_A); Wait(25);
      start gogogo;
    }
  }
}

do strojového kódu RCX:

000 chk      40 >= Input(1), 31                85 42 09 28 00 01 19
007 stop     1                                 81 01
009 start    3                                 71 03
011 stop     3                                 81 03
013 dir      AC, Rev                           e1 05
015 out      AC, On                            21 85
017 wait     10                                43 02 0a 00
021 dir      A, Fwd                            e1 81
023 out      A, On                             21 81
025 wait     25                                43 02 19 00
029 start    1                                 71 01
031 jmp      0                                 27 a0

Ten potom v BricxCC za pomoci tlačítka se znakem „trychtýře“ (Download program) nahrajete přes USB věž jako jeden z pěti možných programů do kostky (číslo vykonávaného programu se volí šedým tlačítkem na kostce). Kostka pípnutím potvrdí přijetí dat a pak už stačí zeleným tlačítkem na kostce program spustit. Chování robota sledujete, jak jinak, v přímém přenosu.



Kliknutím na obrázek stáhnete video (2,6 MB)

Základní kurz programování v NQC najdete v příštích dílech.

Podzimní novinka

Nástupce stavebnice RIS je připraven na letošní podzim. Od roku 1998, kdy vyšla RIS 1.0, to bude už čtvrtá generace (po 1.0, 1.5 a 2.0), která ponese označení NXT. (obrazová galerie)

Hardwarový upgrade potká procesor (32bitový ARM7), paměť (256 kB Flash + 64 kB RAM), komunikační systém (Bluetooth a USB 2.0) i senzory (přibude ultrazvukový senzor a zvukové senzory, světelný senzor bude rozeznávat více barev, motory dostanou zabudovaný rotační senzor atd.).

Nové bude i základní programátorské prostředí a my se jen můžeme těšit, jaké aplikace nových „udělátek“ vymyslí internetová komunita nadšenců. Cena stavebnice RIS je u nás cca 8500 Kč včetně DPH (v zahraničí cca 220 €).

(Podnětem pro vznik článku byla práce středoškolské odborné činnosti studentů jihlavského gymnázia, Filipa Děchtěrenka, Miroslava Dočekala a Jakuba Sedláka, http://roboti.unas.cz/)

Určitě si přečtěte

Články odjinud