130 likes | 264 Views
Krátký návod pro prostředí LeJOS-NXJ. Základní srovnání nejpoužívanějších programovacích prostředí pro NXT. Výhody LeJOS-NXJ. Mnoho předpřipravených metod, které usnadňují a urychlují programování. Pohodlné programování v NetBeans Možnost objektového programování v jazyce JAVA Podpora float.
E N D
Základní srovnání nejpoužívanějších programovacích prostředí pro NXT
Výhody LeJOS-NXJ • Mnoho předpřipravených metod, které usnadňují a urychlují programování. • Pohodlné programování v NetBeans • Možnost objektového programování v jazyce JAVA • Podpora float Nevýhody LeJOS-NXJ • Komplikovaná instalace • Nutnost základní znalosti programování
Základní metody I Třída Motor: • void forward() • Spustí motor dopředu • void setSpeed(int speed) • Nastaví rychlost motoru (úhlových stupňů za vteřinu)(0-900) • void stop() • Vypne motor • void rotate(float angle) • Otočí motor o úhel Příklad: Motor.A.setSpeed(200);
Základní metody II Třída Button: • void waitForPress() • Čeká se dokud se nezmáčkne tlačítko Třída LCD: • void drawString(String str, int x, int y) • Vykreslí řetězec na displej Příklad: Motor.A.forward(); LCD.drawString("DOPREDU", 0, 0); Button.waitForPress();
Interface Pilot, třída TachoPilot • Používá se pro robota typu vozidlo. • Umožňuje použít mnohé užitečné metody. Konstruktor: TachoPilot(float wheelDiameter, float trackWidth, Motor leftMotor, Motor rightMotor) • wheelDiameter = průměr kol, trackWidth = rozkol kol • Vše musí být ve stejných jednotkách, ty si volíte sami. Všechny metody pak vrací hodnoty v jednotkách v jakých jste inicializovali tuto třídu. Příklad: Pilot pilot = new TachoPilot(56f, 110f, Motor.A, Motor.C);
Pokročilé metody I Třída Pilot: • void arc(float radius) • Robot pojede po oblouku. • radius = poloměr zatáčky. • void steer(float turnRate) • Robot pojede po zakřivené dráze. • turnRate = 100…levé kolo stojí, pravé se točí dopředu • turnRate = 200 ... levé kolo se točí dozadu, pravé se točí dopředu Příklad: //Robot bude jezdit dokola, dokud se nestikne ESCAPE Pilot pilot = new TachoPilot(56f, 110f, Motor.A, Motor.C); while (Button.ESCAPE.isPressed() == false){ pilot.steer(100);}
Pokročilé metody II Třída Pilot: • float getAngle() • vrátí hodnotu úhlu ve stupních, kterou robot urazil. • float getTravelDistance() • vrátí vzdálenost, kterou robot urazil • void travel(float distance) • Robot pojede, dokud neurazí vzdálenost rovnou distance
Dotykový senzor • Konstruktor • TouchSensor(ADSensorPort port) • boolean isPressed() • Metoda zkontroluje jestli nastal dotyk. Příklad: /*Dokud nesepne dotykový senzor, tak motory na pozicích A a C budou v chodu*/ // Senzor je na vstupu číslo 1 TouchSensor sensor = new TouchSensor (SensorPort.S1); while(sensor.isPressed() == false){ Motor.A.forward(); Motor.C.forward();}
Světelný senzor • Konstruktor • LightSensor(ADSensorPort port, boolean floodlight) • int readValue() • Metoda vrátí hodnotu jasu v procentech podle kalibrace. • void setHigh(int high) • Nakalibruje horní hranici senzoru • void setLow(int low) • Nakalibruje spodní hranici senzoru Příklad: LightSensor sensor = new LightSensor(SensorPort.S1, false); sensor.setHigh(600); sensor.setLow(300); int value = sensor.readValue();
Ultrazvukový senzor • Konstruktor • UltrasonicSensor(I2CPort port) • float getRange() • vrátí vzdálenost v centimetrech k nejbližšímu objektu. Funguje spolehlivě v rozsahu přibližně 5cm až 190cm. Příklad: /*Dokud se nestikne ESCAPE, tak se bude vypisovat vzdalenost k nejblizsimu objektu*/ UltrasonicSensor sensor = new UltrasonicSensor(SensortPort.S1); while(Button.ESCAPE.isPressed() == false){ LCD.drawString(““+sensor.getRange(), 0, 0); }
Zvukový senzor • Konstruktor • SoundSensor(ADSensorPort port) • int readValue() • Vrátí hodnotu naměřenou senzorem v dB. Příklad: //Měřič hluku SoundSensor sensor = new SoundSensor(SensorPort.S1); while(Button.ESCAPE.isPressed() == false){ LCD.drawString(““+sensor.readValue(), 0, 0); }
Zdroje • http://lejos.sourceforge.net/ • http://mindstorms.lego.com/en-us/default.aspx • http://www.nxtprograms.com/