Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

17
LAPORAN RESMI KI091341 – Pemrograman Robot MODUL 1 Oleh: Kelas A IlhamRamadhan 5109100009 RizkyIchsanParama Putra 5109100026 Ida Ayu Putu Kristiantari Dosen: YudhiPurwananto, S.Kom.,M.Kom. JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI

Transcript of Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Page 1: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

LAPORAN RESMI

KI091341 – Pemrograman Robot

MODUL 1

Oleh:

Kelas A

IlhamRamadhan 5109100009RizkyIchsanParama Putra 5109100026Ida Ayu Putu Kristiantari 5109100094NyomanJuniarta 5109100129

Dosen:

YudhiPurwananto, S.Kom.,M.Kom.

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INFORMASI

INSTITUT TEKNOLOGI SEPULUH NOPEMBER

2012

Page 2: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Kategori : HardwareTopic : Motor dan sensorMulai : 24 Feb 2012Referensi : http://lejos.sourceforge.net/nxt/nxj/tutorial/

PENDAHULUANDiumumkan : 24 Feb. 2012Demo : 2 Mar 2012

MOTOR LAMPU1 Motor A forward selama 3 detik 6 Lampu A menyala selama 3 detik

(note: karena beberapa NXT display atau sound-nya ada yg rusak. Sehinnga property itu tidak diujikan)

Motor A StopDiam selama 2 detikMotor B backward selama 3 detikMotor B Stop

2 Robot Square 7 Kedip-kedip

Ukuran ubin 40 cm x 40 cm

Robot jalan maju 10 detik, sambil lampu A berkedip-kedip

Program robot untuk bergerak dengan lintasan bujursangkar, syarat tidak keluar jalur track

SENSOR3 Maju sampai touch sensor di port1 ditekan

Kemudian mundur sampai touch sensor ditekan lagiStop

4 Maju sampai light sensor di port 2 mendeteksi garis hitamStop

5 Maju sampai ultrasonic mendeteksi jarak 30 cm stop

Page 3: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

1. Berikut merupakan source code robot untuk nomor 1.

import lejos.nxt.Button;import lejos.nxt.LCD;import lejos.nxt.Motor;import lejos.util.Delay;

public class Nomor1 {public static void main (String[] args) {

LCD.drawString("Program 1", 0, 0);Button.waitForAnyPress();LCD.clear();LCD.drawString("FORWARD",0,0);Motor.A.forward(); // motor A majuDelay.msDelay(3000); // motor A maju selama 3 detikMotor.A.stop(); // kemudian motor A distopDelay.msDelay(2000); // distop selama 2 detikLCD.clear();LCD.drawString("BACKWARD",0,0);Motor.B.backward(); // motor B melakukan backwardDelay.msDelay(3000); // backward selama 3 detikMotor.B.stop();

}}

2. Berikut merupakan source code robot untuk nomor 2.

import lejos.nxt.Button;import lejos.nxt.LCD;import lejos.nxt.Motor;import lejos.util.Delay;

public class Nomor2 {public static void main (String[] args) {

LCD.drawString("Program 2", 0, 0);Button.waitForAnyPress();LCD.clear();LCD.drawString("FORWARD",0,0);Motor.A.forward();Motor.A.setSpeed(305);Motor.B.forward();Motor.B.setSpeed(300);

Page 4: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Delay.msDelay(6000);LCD.clear();LCD.drawString("TURN RIGHT",0,0);for(int i=0; i<3; i++) {

Motor.A.rotate(330);Motor.B.rotate(330);//Delay.msDelay(300);Motor.A.forward();Motor.A.setSpeed(305);Motor.B.forward();Motor.B.setSpeed(300);Delay.msDelay(6000);

}Motor.A.stop();Motor.B.stop();

}}

3. Berikut merupakan source code robot untuk nomor 3.

import lejos.nxt.Button;import lejos.nxt.LCD;import lejos.nxt.Motor;import lejos.nxt.SensorPort;import lejos.nxt.TouchSensor;import lejos.util.Delay;

public class Nomor3 {public static void main (String[] args) {

TouchSensor touch = new TouchSensor(SensorPort.S1);LCD.drawString("Program 3", 0, 0);Button.waitForAnyPress();

while (!touch.isPressed()) {Motor.A.forward();Motor.B.forward();

} Delay.msDelay(500); while (!touch.isPressed()) {

Motor.A.backward();Motor.B.backward();

} LCD.drawString("Finished", 3, 4);

Page 5: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Motor.A.stop(); Motor.B.stop();}

}

4. Berikut merupakan source code robot untuk nomor 4.

import lejos.nxt.Button;

import lejos.nxt.LCD;

import lejos.nxt.LightSensor;

import lejos.nxt.Motor;

import lejos.nxt.SensorPort;

public class Nomor4 {

public static void main(String[] args){

LCD.drawString("nomor4", 0, 0);

LightSensor cahaya1 = new LightSensor(SensorPort.S2);

Button.waitForAnyPress();

int sensor1 = 0;

while(!Button.ENTER.isDown()) {

Motor.A.forward();

Motor.B.forward();

//while(sensor1>46){

sensor1 = cahaya1.readValue();

LCD.clear();

LCD.drawInt(sensor1, 0, 0);

if(sensor1<40) {

Motor.A.stop();

Page 6: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Motor.B.stop();

break;

}

}

//Motor.A.stop();

//Motor.B.stop();

}

}

5. Berikut merupakan source code robot untuk nomor 5.

import lejos.nxt.*;import lejos.robotics.objectdetection.*;import lejos.util.Delay;public class nomor5 {

public static void main(String[] args){LCD.drawString("nomor5", 0, 0);Button.waitForAnyPress();UltrasonicSensor us = new UltrasonicSensor(SensorPort.S4);Motor.A.forward();Motor.B.forward();LCD.clear();

LCD.drawInt(us.getDistance(), 0, 3);Delay.msDelay(5000);while(!Button.ENTER.isDown()){

LCD.clear();

LCD.drawInt(us.getDistance(), 0, 3);if(us.getDistance()<=30){

Motor.A.stop();Motor.B.stop();break;

}

Page 7: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

//}//Motor.A.stop();//Motor.B.stop();//break;

}}

}

6. Berikut merupakan source code robot untuk nomor 6.

import lejos.nxt.*;import lejos.util.Delay;publicclass Nomor6 {

publicstaticvoid main(String[] args){LCD.drawString("nomor6", 0, 0);Motor.C.forward();Delay.msDelay(3000);Motor.C.stop();

}}

7. Berikut merupakan source code robot untuk nomor 7.

import lejos.nxt.*;import lejos.util.Delay;publicclass Nomor7 {

publicstaticvoid main(String[] args){LCD.drawString("nomor7", 0, 0);Motor.A.forward();Motor.B.forward();

for(int i=0;i<10;i++){Motor.C.forward();Delay.msDelay(50);Motor.C.stop();Delay.msDelay(50);

}Motor.A.stop();Motor.B.stop();Motor.C.stop();

}}

Page 8: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

PRAKTIKUM1a. Line follower denganmenggunakanjarakdankecepatan motor

importlejos.nxt.*;

importlejos.util.Delay;

public class praktikum1 {

public static void main (String[] args) {

LCD.drawString("Line tracer 1", 0, 0);

Button.waitForAnyPress();

LCD.clear();

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.forward();

Motor.B.setSpeed(300);

Delay.msDelay(2400);

//belokkiri

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.stop();

Delay.msDelay(1000 );

Motor.A.forward();

Motor.A.setSpeed(300);

Motor.B.forward();

Motor.B.setSpeed(295);

Delay.msDelay(3400);

//belokkanan

Motor.A.stop();

Motor.B.forward();

Motor.B.setSpeed(300);

Page 9: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Delay.msDelay(950);

//lurusketiga

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.forward();

Motor.B.setSpeed(300);

Delay.msDelay(1900);

//belokkanan

Motor.A.rotate(300);

Motor.B.rotate(300);

//lurus ke4

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.forward();

Motor.B.setSpeed(300);

Delay.msDelay(300);

//belokkanan

Motor.A.rotate(150);

Motor.B.rotate(150);

//lurus ke5 kecil

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.forward();

Motor.B.setSpeed(300);

Delay.msDelay(540);

//belokkiri

Page 10: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.stop();

Delay.msDelay(950);

//lurus 6 kecil

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.forward();

Motor.B.setSpeed(300);

Delay.msDelay(420);

//belokkanan

Motor.A.rotate(300);

Motor.B.rotate(300);

//lurus 7 kecil

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.forward();

Motor.B.setSpeed(300);

Delay.msDelay(540);

//belokkiri

Motor.A.forward();

Motor.A.setSpeed(305);

Motor.B.stop();

Delay.msDelay(450);

//lurus 8 kecil

Motor.A.forward();

Motor.A.setSpeed(305);

Page 11: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Motor.B.forward();

Motor.B.setSpeed(300);

Delay.msDelay(2500);

Motor.A.stop();

Motor.B.stop();

}

}

1b.Line follower denganmenggunakan sensor

importlejos.nxt.*;

importlejos.robotics.navigation.DifferentialPilot;

public class prakSensor {

public static void main(String[] args){

//kebaliksensornnya

Button.waitForAnyPress();

LightSensor LS1 = new LightSensor(SensorPort.S1);

LightSensor LS2 = new LightSensor(SensorPort.S2);

DifferentialPilot pilot = new DifferentialPilot(56.0f, 105.0f, Motor.A, Motor.B);

while(true)

{

pilot.setTravelSpeed(100);

//pilot.setRotateSpeed(30);

//Motor.A.setSpeed(300);

Page 12: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

//Motor.B.setSpeed(300);

if(LS1.readValue() >= 20 && LS1.readValue() <= 45 && LS2.readValue() >=20 &&

LS2.readValue() <= 45)

{

pilot.forward();

}

else if(LS1.readValue() >= 25 && LS1.readValue() <= 42)

{

pilot.rotateRight();

}

else if(LS2.readValue() >=25 && LS2.readValue() <= 42)

{

pilot.rotateLeft();

}

else

{pilot.forward();

}

}

}

}

2. Praktikumkeep distance

importlejos.nxt.*;

Page 13: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

importlejos.util.Delay;

public class prakKeepDist {

public static void main (String[] args){

LCD.drawString("Keep Distance", 0, 0);

Button.waitForAnyPress();

UltrasonicSensor us = new UltrasonicSensor(SensorPort.S4);

Motor.A.forward();

Motor.B.forward();

LCD.clear();

LCD.drawInt(us.getDistance(), 0, 3);

Delay.msDelay(5000);

while(!Button.ENTER.isDown())

{

LCD.clear();

LCD.drawInt(us.getDistance(), 0, 3);

if(us.getDistance()<=30)

{

Motor.A.backward();

Motor.B.backward();

while(us.getDistance()<=30)

{

LCD.clear();

LCD.drawInt(us.getDistance(), 0, 3);

Page 14: Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A

Motor.A.backward();

Motor.B.backward();

}

}

if(us.getDistance()>30)

{

Motor.A.forward();

Motor.B.forward();

while(us.getDistance()>30)

{

LCD.clear();

LCD.drawInt(us.getDistance(), 0, 3);

Motor.A.forward();

Motor.B.forward();

}

}

}

}

}