Upload
dewitt
View
39
Download
4
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Krátký návod pro prostředí Krátký návod pro prostředí LeJOS-NXJLeJOS-NXJ
Základní srovnání nejpoužívanějších Základní srovnání nejpoužívanějších programovacích prostředí pro programovacích prostředí pro NXTNXT
NXT-GNXT-G NXCNXC LeJOS NXJLeJOS NXJ
JazykJazyk Grafický NotExactly C JAVA
PlatformaPlatforma Win., Mac Win., Linux, Mac
Win., Linux, Mac
IDEIDE Ano Ano Plugin do Eclipse a Netbeans
Podpora Podpora floatfloat
Ne Ne Ano
Obsluha Obsluha událostíudálostí
Ne Ne Ano
Výhody LeJOS-NXJVý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-NXJNevýhody LeJOS-NXJ• Komplikovaná instalace• Nutnost základní znalosti programování
Základní metody IZá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 IIZákladní metody IITří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 TachoPilotInterface 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 IPokročilé metody ITří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 ESCAPEPilot pilot = new TachoPilot(56f, 110f, Motor.A, Motor.C);while (Button.ESCAPE.isPressed() == false){pilot.steer(100);}
Pokročilé metody Pokročilé metody IIIITří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ý senzorDotykový 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 1TouchSensor sensor = new TouchSensor (SensorPort.S1);while(sensor.isPressed() == false){Motor.A.forward();Motor.C.forward();}
Světelný senzorSvě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 senzoruPříklad:LightSensor sensor = new LightSensor(SensorPort.S1, false);sensor.setHigh(600);sensor.setLow(300);int value = sensor.readValue();
Ultrazvukový senzorUltrazvukový 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);}
ZZvukový senzorvukový 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);}
ZdrojeZdroje
• http://lejos.sourceforge.net/
• http://mindstorms.lego.com/en-us/default.aspx
• http://www.nxtprograms.com/