Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

1. diel - Zoznámenie s NXJ pre LEGO NXT

Vitajte u prvého dielu tutoriálu, kde sa naučíme programovať LEGO NXT v Jave - s pomocou Lejos. Čo to je? Je to virtuálny stroj spracúvajúci Javu, ktorý beží ako alternatívny firmware pre LEGO Mindstorms. V súčasnosti sú k dispozícii 3 verzie - pre LEGO RCX, EV3 a práve NXT.

Ak ste sa rozhodli prečítať si tento článok, určite viete, čo to LEGO NXT je, ale pre istotu si to ujasníme. LEGO NXT je súhrnný názov pre LEGO sadu pozostávajúca zo 4 senzorov (v rôznych verziách sa líši), 3 motorov a 1 inteligentný kocky, ktorá to všetko ovláda. Ak budem používať označenie "NXT", budem myslieť práve ju. Existujú 2 verzie - 1.0 a 2.0. Sú prakticky rovnaké, len v druhej verzii bol zvukový senzor nahradený senzorom dotyku. Mimo to sú súčasťou série LEGO Mindstorms sady RCX (naozaj veľa staré) a EV3 (novšie), tým sa ale v tomto seriáli venovať nebudeme.

sada NXT 1.0 - Lego NXT

Tutoriál predpokladá znalosť základov Javy a OOP, + "počítačovú angličtinu". Tiež predpokladá, že vlastníte LEGO NXT. V prípade, že neviete Javu, nezúfajte a naučte sa ju.

Upozornenie: Nie som akýmkoľvek spôsobom zodpovedný za akúkoľvek škodu spôsobenú týmto návodom (napr. Flashováním NXT), to ale neznamená, že by informácie v tomto článku neboli pravdivé.

Samotný virtuálny stroj by nám nebol k ničomu, pretože chceme s NXT a jeho príslušenstvom nejakým spôsobom pracovať. K tomuto účelu obsahuje NXJ (jazyk postavený na Jave) sadu knižníc ako pre NXT, tak pre PC.

Dnešný diel sa bude venovať inštalácii potrebných programov a prvému Hello world programu. Prvá vec, ktorú budeme potrebovať, sú ovládače pre LEGO.

Inštalácie ovládača

V prípade, že ste na tom istom počítači pracovali s NXT v napr. Východiskovým obrázkovom "IDE", môžete tento krok preskočiť. Ovládače pre zodpovedajúci operačný systém si stiahnete zo stránok RobotC. LEGO má síce na svojich stránkach tiež odkaz na prevzatie, avšak ten je v súčasnosti nefunkčné. Inštaláciu skrátka "vynexťete", nemá zmysel ju nejako rozvádzať. Po inštalácii pripojte NXT k počítaču cez USB, otvorte správcu zariadení (win + x> správcu zariadení) a uistite sa, že pod záložkou "LEGO devices" vidíte svoje NXT.

Lego NXT

Ak nie, nech je vám Google dobrým priateľom. Každopádne bez toho nepostupujte ďalej.

Inštalácia JDK

Ďalšia nepostrádateľná vec je JDK - Java development kit, budete potrebovať 32-bitovú verziu, a to aj v prípade, že máte 64-bitový systém, NXJ totiž nevie pracovať s ničím 64-bitovým. JDK stiahnete zo stránok Oracle.

Lego NXT

Inštalácia NXJ

NXJ nájdete na Sourceforge. Vyberte si najnovšiu verziu, a síce súbor vo formáte leJOS_NXJ_[verze]_win32_setup.exe Opäť relatívne normálny inštalácia- bude vám stačiť nainštalovať základ. Budete požiadaní o cestu k JDK- mala by byť už vybrané, ale pre istotu: C:\Program Files (x86)\Java

Lego NXT

Na konci nechajte zaškrtnuté políčko Launch NXJ flash utility,

Lego NXT

kliknite na "finish". Otvorí sa vám okno podobné tomuto:

Lego NXT

Zapnite a pripojte NXT, uistite sa, že máte dostatočne nabité batérie a kliknutím na Flash Lejos firmware flashněte NXT. Upozornenie - flashováním prídete o všetky dáta na NXT! Už nám zostáva len prostredie, v ktorom budeme písať kód.

Inštalácie Eclipse

Kód budeme písať v Eclipse IDE, bohužiaľ jediným IDE natívne kompatibilným s NXJ. Budeme potrebovať opäť 32-bitovú verziu nezávisle na platforme. Môžete si stiahnuť buď .zip archív a niekam si ho rozbaliť alebo inštalátor z eclipse.org. Ak dáte prednosť inštalátora, vyberte si "eclipse IDE for Java developers". A nechajte inštalátor pracovať.

Lego NXT

Eclipse máme nainštalované a už sa blížime do finále.

Konfigurácia Eclipse

Eclipse v základe netuší, že ho chceme použiť na programovanie LEGA, k tomu nám bude slúžiť NXJ plugin. Otvorte Eclipse. Pri spustení budete opýtaný na umiestnenie, kde bude mať Eclipse uložené svoje dáta. Môžem vám odporučiť, aby ste si vytvorili špeciálnu zložku napr. V Dropboxu.

Lego NXT

Otvorte help> install new softvér. Vyskočí na vás nové okno, kde do textového poľa Work with vložte nasledujúci URL: http://www.lejos.org/tools/eclipse/plugin/nxj/ a potvrďte klávesou Enter. Vyberte plugin, ktorý našlo a nainštalujte.

Lego NXT

Pokiaľ máte ako ja slovenskú klávesnicu, bude vám najskôr pri písaní kódu vadiť niekoľko klávesových skratiek. Odporúčam je odstrániť v nastavení. Otvorte window> preferences. Pod záložkou General> Keys. Skratky, ktoré vám budú vadiť:

skratka znak názov
ctrl + alt + G ] find text in workspace
ctrl + alt + N } Next memory monitor
ctrl + alt + B { Skip all brakpoints
Názov zadajte do vyhľadávacieho poľa, vyberte príslušnú položku a kliknutím na unbind command skratku odstránite. Na zahodenie nie je ani trochu agresívnejší našepkávač. Ten aktivujete (v nastavení) java> editor> content assist. Neexistuje natívne cesta, ale ide to veľmi ľahko obísť: obsah poľa auto activation triggers zmeníte na: abcdefghijklmnopqrstuvwxyzABSDEFGHIJKLMNOPQRSTVWXYZ._# Zmenu nastavenia potvrďte tlačidlom OK.

Prvý program

Nemôžeme začať ničím iným ako Hello world. Projekt v Eclipse vytvoríte pomocou file> new> Lejos NXT project. Všimnite si, že existuje aj typ Lejos PC project, ku ktorému sa vrátim v jednom z nasledujúcich dielov. Projekt si pomenujte "Hello world", všade môžete nechať predvolenú konfiguráciu, a môžete projekt vytvoriť tlačidlom finish.

Lego NXT

Projekt je prázdny, preto si musíme manuálne pridať hlavnú triedu. V package exploreru kliknite pravým na váš projekt new> class. Triedu si pomenujte Main. Zároveň zaškrtnite checkbox pri položke public static void main (String [] args), to spôsobí vygenerovanie entry pointu, tj. Statické metódy main(String[] args).

Lego NXT

V prostrednom, najväčšom okne Eclipse máte otvorený samotný kód. Obsah triedy Main upravte na nasledujúce:

import lejos.nxt.Button;

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello world!");
        Button.waitForAnyPress();
    }
}

Poďme si rozobrať, čo kód robí. Prvý riadok je viacmenej jasný - zobrazí "Hello world!" A síce na LCD displeji, ktorým NXT disponuje. Ďalší riadok tiež nie je nič zložité - bez neho by sa jednoducho program ukončil ihneď po zobrazení textu. Takto sa program zastaví a čaká na stlačenie akéhokoľvek tlačidla na NXT, ktoré vráti ako jeho číselnej id typu int. Kód máme napísaný, ale čo s ním? Musíme nejako oznámiť Eclipse, že ho má skompilovať pre NXT a nahrať ho tam. Zapnite NXT. Keď program spustíte pomocou tlačidla run v nástrojovej lište (alebo skratkou Ctrl + F11), spýta sa, ako ho spustiť. Vyberte možnosť Lejos NXT program.

Lego NXT

Preklikajte sa zvyškom okien a vo výstupnej konzole Eclipse by ste mali vidieť niečo ako

Linking ...
Program has been linked successfully
Uploading ...
Found NXT: LEGO 00165306ADB8
leJOS NXJ> Upload successful in 1123 milliseconds
program has been uploaded
Lego NXT

Keď sa program nahrá do NXT, spustí sa a uvidíte hlášku "Hello world!", Ktorú môžete zavrieť stlačením ľubovoľného tlačidla. Potom sa program ukončí a NXT sa reštartuje späť do hlavného menu, ktorého popisom sa nebudeme zdržiavať. Jednak pre nás nie je dôležité, druhak je veľmi intuitívne. To je pre dnešok všetko, nabudúce sa budeme zaoberať niečím zaujímavejším.

PS: Je to môj prvý článok, zaujímalo by ma, ako sa vám páči / nepáči.


 

Všetky články v sekcii
Lego NXT
Preskočiť článok
(neodporúčame)
NXJ - základy API a prvý užitočný program
Článok pre vás napísal Petr Čech
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje především desktopovým aplikacím v C#, okrajově Javě na Legu NXT.
Aktivity