Pemrograman Robot_Laporan Akhir Hardware_Modul 1_Kelompok 2_Kelas A
-
Upload
cahya-perdana -
Category
Documents
-
view
105 -
download
1
Transcript of 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
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
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);
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);
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();
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;
}
//}//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();
}}
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);
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
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);
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);
//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.*;
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);
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();
}
}
}
}
}