NXT - JAVA - úlohy
Z MediaWiki SPŠ a VOŠ Písek
(Rozdíly mezi verzemi)
JA (diskuse | příspěvky)
(Založena nová stránka: HW: NXT realizace: David Langmaier Martin Mach Karel Mírka Kód v Javě spouštíme na flashnutém robotovi NXT (leJOS FW). Napsaný kód v Javě (např. Hell...)
(Založena nová stránka: HW: NXT realizace: David Langmaier Martin Mach Karel Mírka Kód v Javě spouštíme na flashnutém robotovi NXT (leJOS FW). Napsaný kód v Javě (např. Hell...)
Aktuální verze z 30. 12. 2012, 17:32
HW: NXT realizace: David Langmaier Martin Mach Karel Mírka
Kód v Javě spouštíme na flashnutém robotovi NXT (leJOS FW). Napsaný kód v Javě (např. HelloWorld.java) zkompilujeme příkazem "nxjc HelloWorld.java" a poté nahrajeme do připojeného NXT příkazem "nxj -r -o HelloWorld.nxj HelloWorld". Pokud nechceme program spustit hned po uploadu, odebereme přepínač "-r" a spustíme ručně přes ovládání NXT.
Úkoly:
- Sestavte robota, napište program a vyzkoušejte proto, aby robot:
se pohyboval vpřed
import lejos.nxt.Button; import lejos.nxt.Motor; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { public static void main(String[] args) { DifferentialPilot pilot = new DifferentialPilot(2.25f, 5.5f, Motor.B, Motor.C); pilot.travel(100, true); Button.waitForAnyPress(); } }
se pohyboval vpřed do vzdálenosti 1m
import lejos.nxt.Button; import lejos.nxt.Motor; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { public static void main(String[] args) { DifferentialPilot pilot; = new DifferentialPilot(2.25f, 5.5f, Motor.B, Motor.C); pilot.travel(43, true); Button.waitForAnyPress(); } }
se pohyboval vpřed ve čtyřúhelníku o straně cca 0,5m
import lejos.nxt.Button; import lejos.nxt.Motor; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { DifferentialPilot both; /* oba motory */ public static void main(String[] args) { DifferentialPilot both = new DifferentialPilot(2.25f, 5.5f, Motor.B, Motor.C); while(true){ both.travel(20, false); Motor.B.rotate(400, false); if(Button.ESCAPE.isDown()) break; } } }
jel rovně a zastavil na 60 cm vzdáleném místě označeném černou lepící páskou
import lejos.nxt.*; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { public static void main(String[] args) throws Exception { LightSensor light = new LightSensor(SensorPort.S3); DifferentialPilot both = new DifferentialPilot(2.25f, 5.5f, Motor.B, Motor.C); while(true){ both.travel(1, true); if(light.getLightValue() < 30) break; } Button.waitForAnyPress(); } }
se pohyboval dokud nebude stisknutý dotykový senzor
import lejos.nxt.*; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { public static void main(String[] args) throws Exception { TouchSensor touch = new TouchSensor(SensorPort.S1); DifferentialPilot both = new DifferentialPilot(2.25f, 5.5f, Motor.B, Motor.C); while(!touch.isPressed()) { both.travel(10, true); } Button.waitForAnyPress(); } }
se rozjel na zvukový povel
import lejos.nxt.*; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { public static void main(String[] args) throws Exception { SoundSensor sound = new SoundSensor(SensorPort.S2); DifferentialPilot both = new DifferentialPilot(2.25f, 5.5f, Motor.B, Motor.C); Thread.sleep(500); /* jinak se rozjede, díky zapípání NXT */ while(true){ if((sound.readValue() - 80) > 0){ both.travel(10, false); } if(Button.ESCAPE.isDown()) break; } Button.waitForAnyPress(); } }
jel ve čtyřúhelníku a zastavil se u počátečního bodu
import lejos.nxt.Button; import lejos.nxt.Motor; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { public static void main(String[] args) { DifferentialPilot both = new DifferentialPilot(2.25f, 5.5f, Motor.B, Motor.C); for(int i=0; i < 4; i++){ both.travel(20, false); Motor.B.rotate(400, false); } Button.waitForAnyPress(); } }
jel v před a pokud čidlo ultrazvuku zjistí překážku se zastavil, kousek zacouval, otočil se o 160° a celý cyklus pokračoval
import lejos.nxt.*; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { public static void main(String[] args) throws Exception { UltrasonicSensor sonic = new UltrasonicSensor(SensorPort.S4); DifferentialPilot both = new DifferentialPilot(2.25f, 5.5f, Motor.B, Motor.C); while(true) { both.travel(1, true); if(sonic.getDistance() < 30) { both.travel(-10, false); Motor.B.rotate(600, false); } if(Button.ESCAPE.isDown()) break; } Button.waitForAnyPress(); } }
s pomocí čidla světla pohyboval po čáře
import lejos.nxt.*; import lejos.robotics.navigation.DifferentialPilot; public class HelloWorld { public static void main(String[] args) throws Exception { LightSensor light = new LightSensor(SensorPort.S3); while (true) { LCD.drawInt(light.getNormalizedLightValue(), 4, 0, 1); if (light.getNormalizedLightValue() < 400) { Motor.C.rotate(10, true); } else { Motor.B.rotate(10, true); } if (Button.ESCAPE.isDown()) break; } Button.waitForAnyPress(); } }