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:
V každém motoru NXT je zabudovaný tachometr, ten můžeme vynulovat nebo číst jeho stav:
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:
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);