LeJos - Ovládáme motory

Jak řídít chod motorů
Motory se nemusejí definovat, protože jsou na kostce NXT pevně dány. Jsou to motory označené písmeny A, B a C. Takže stačí využít metody třídy Motor pro jednoduché ovládání. Potřebné metody:
// Nastavení výkonu motoru A:
Motor.A.setPower(100); 
// Chod motoru A dopředu na neomezenou dobu:
Motor.A.forward();
// Zastavení motoru A:
Motor.A.stop();
// Otočení o přesně daný úhel (znaménko udává směr):
Motor.A.rotate(-90);
// Otočení o přesně daný úhel, ale nečekat na dokončení úkolu:
Motor.A.rotate(90,true);
Čtení tachometrů
V každém motoru NXT je zabudovaný tachometr, ten můžeme vynulovat nebo číst jeho stav:
// // Vynuluj tachometr v motoru A:
Motor.B.resetTachoCount();  
// Přečti stav tachometru v motoru A:
// (Hodnota je ve stupních)
stav = Motor.A.getTachoCount();
Řízení jízdy robota
Pro přesné řízení robota, můžeme použít dva sdružené motory, které zatáčí změnou výkonu jednotlivých motorů. Narozdíl od grafického programovacího prostředí NXT-G zde můžeme jízdu řídit přesně. Použijeme na to třídu Pilot, které ale musíme nejdříve oznámit průměr kol a jejich vzdálenost. Abychom nemuseli pracovat v palcích, ale v centimetrech, nadefinujeme si pomocnou metodu cm_na_palce:
public static float cm_na_palce (float delka_v_cm)  {  
 return delka_v_cm * 0.394f;  
}  
Ukázka použití třídy pilot:
// Vytvoříme novou instanci třídy Tachopilot a nastavíme parametry robota     
// (průměr kola v palcích, vzdálenost kol v palcích, levý motor, pravý motor, reverze otáček)  
Pilot pilot = new TachoPilot(cm_na_palce(5.6f), cm_na_palce(11.3f), Motor.B, Motor.C, true); 
// Nastav rychlost jízdy robota:
pilot.setSpeed(500);  
// Nastav rychlost otáčení robota:
pilot.setTurnSpeed(500);  
// Jeď dopředu 1 metr:
pilot.travel(cm_na_palce(100))
// Otoč robota o 90 stupňů:
pilot.rotate(90);