Robot Gerak Otomatis Di Permukaan Air.

(1)

ABSTRAK

Robot otomatis bergerak di atas permukaan air merupakan sebuah robot yang dilengkapi dengan sensor ultrasonik dan sensor push button. Robot otomatis ini menggunakan pendorong tenaga angin untuk bergerak di permukaan air. Dapat digunakan untuk menempatkan posisi ledakan pada saat perang di lautan. Robot ini tidak memerlukan awak kapal dan dapat berbelok secara otomatis jika ada halangan di depan atau halangan di bawah permukaan air.

Robot otomatis sudah berhasil dibuat dan dapat melewati rintangan-rintangan yang ada ketika ada halangan di depan robot maupun halangan di bawah permukaan air. Faktor permukaan air yang bergerak dan arus air dapat mempengaruhi jalannya robot tidak sempurna.


(2)

ABSTRACT

Automated Moving Robot On Water Surface is a robot equipped with ultrasonic and push button sensors. This automated robot using wind force to move the robot on water surface. It can be used to place position of explosion during sea war. This robot do not required a crew and turn automatically if there are obstacle in front of the robot or obstacle below water surface.

Automated robot has been created and can passed the obstacles that exist when there is obstacle in front of robot or obstacle below water surface. Factor of moving water surface and water flow can affect the robot moving not perfect.


(3)

DAFTAR

ISI

ABSTRAK ... i

ABSTRACT ... ii

DAFTAR ISI ... iii

DAFTAR GAMBAR ... v

DAFTAR TABEL... vii

BAB I PENDAHULUAN 1.1 Latar Belakang ... 1

1.2 Identifikasi Masalah ... 2

1.3 Tujuan Masalah ... 2

1.4 Pembatasan Masalah ... 2

1.5 Sistematika Penulisan... 2

BAB II LANDASAN TEORI 2.1 Relay ... 4

2.1.1 Pole dan Throw ... 7

2.1.2 Jenis Relay ... 8

2.1.2.1 Solid State Relay (SSR) ... 8

2.1.2.2 Solid State Contactor Relay ... 8

2.2 Dioda ... 8

2.2.1 Dioda Kontak Titik (Point Contact Diode) ... 8

2.2.2 Dioda Hubungan ... 9

2.3 Motor Servo ... 11

2.4 Motor DC ... 15

2.5 PCB (Printed Circuit Board) ... 16

2.6 Push Button ... 18

2.7 Sensor Ultrasonik ... 19

2.7.1 Sensor Jarak Ultrasonik Ping ... 20

2.8 Arduino ... 23

2.8.1 Kelebihan Arduino ... 23


(4)

2.8.3 Software IDE Arduino... 27

2.8.4 Langkah-Langkah Untuk Mengunggah Program Ke Dalam Arduino ElMarino ... 30

2.8.5 Bahasa Pemrograman Arduino Berbasis C ... 32

BAB III PERANCANGAN 3.1 Blok Diagram ... 41

3.2 Sketsa ... 41

3.3 Flowchart ... 43

3.4 Perancangan Hardware ... 45

3.4.1 Perancangan Sensor Ultrasonik... 45

3.4.2 Perancangan Motor Servo ... 45

3.4.3 Perancangan Sensor Push Button ... 46

3.4.1 Perancangan Relay ... 46

3.5 Perancangan Software ... 47

3.5.1 Pengukuran Sensor Ultrasonik ... 47

3.5.2 Sensor Ultrasonik Membaca Nilai Jarak Kiri dan Jarak Kanan ... 48

3.5.3 Menyalakan dan Mematikan Saklar Relay ... 48

3.5.4 Membaca Nilai Push Button ... 49

3.5.5 Kipas Berbelok Ke Arah Kiri ... 49

3.5.6 Kipas Berbelok Ke Arah Kanan ... 50

BAB IV PENGAMATAN DATA DAN ANALISA 4.1 Data Pengamatan Hardware ... 51

4.2 Analisis Data ... 58

BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 59

5.2 Saran ... 59

DAFTAR PUSTAKA ... 60 LAMPIRAN A ... A-1 LAMPIRAN B ... B-1 LAMPIRAN C ... C-1


(5)

DAFTAR

GAMBAR

Gambar 2.1 Konstruksi Relay Elektromekanik Posisi NC (Normally Close) ... 5

Gambar 2.2 Konstruksi Relay Elektromekanik Posisi NO (Normally Open) ... 5

Gambar 2.3 Solid State Relay... 8

Gambar 2.4 Konstruksi Dioda Kontak Titik ... 9

Gambar 2.5 Simbol Dioda Kontak Titik ... 9

Gambar 2.6 Simbol Dioda Hubungan ... 10

Gambar 2.7 Jenis-jenis Silikon ... 10

Gambar 2.8 Silikon Bridge ... 11

Gambar 2.9 Bentuk Motor Servo ... 12

Gambar 2.10 Motor Servo ... 12

Gambar 2.11 Posisi Sudut Servo ... 13

Gambar 2.12 Motor Servo Dengan Horn Bulat ... 14

Gambar 2.13 Motor Servo Dengan Horn X ... 14

Gambar 2.14 Mekanik Motor DC ... 15

Gambar 2.15 PCB Pertinax, Lapisan Tembaga Yang Hilang Berwarna Coklat ... 16

Gambar 2.16 PCB Bahan Fiber ... 17

Gambar 2.17 PCB Berlubang ... 17

Gambar 2.18 Skematik Push Button ... 18

Gambar 2.19 Prinsip Kerja Sensor Ultrasonik ... 19

Gambar 2.20 Prinsip Pemantulan Sensor Ultrasonik ... 20

Gambar 2.21 Sensor Ultrasonik Ping Parallax ... 20

Gambar 2.22 Cara Kerja Sensor Ultrasonik Ping Parallax ... 22

Gambar 2.23 Board Arduino ElMarino 1 ... 24

Gambar 2.24 Board Arduino ElMarino 2 ... 24

Gambar 2.25 Software IDE Arduino ... 27

Gambar 2.26 Menu Bar Software IDE Arduino... 27

Gambar 2.27 Tool Bar Software IDE Arduino ... 29


(6)

Gambar 2.29 Setting Board Arduino ElMarino ... 30

Gambar 2.30 Setting Serial Port Arduino ElMarino ... 31

Gambar 2.31 Meng-upload Program Arduino ElMarino ... 31

Gambar 3.1 Blok Diagram ... 41

Gambar 3.2 Sketsa Maket ... 41

Gambar 3.3 Flowchart ... 43

Gambar 3.4 Perancangan Sensor Ultrasonik ... 45

Gambar 3.5 Perancangan Motor Servo ... 45

Gambar 3.6 Perancangan Push Button ... 46

Gambar 3.7 Perancangan Relay ... 46

Gambar 4.1 Foto Maket... 51

Gambar 4.2 Sensor Ultrasonik Membaca Jarak Depan dan Sensor Sentuh ... 51

Gambar 4.3 Sensor Ultrasonik Membaca Jarak Kiri ... 52

Gambar 4.4 Sensor Ultrasonik Membaca Jarak Kanan ... 52

Gambar 4.5 Kipas Menghadap Lurus ... 53

Gambar 4.6 Kipas Menghadap Kiri ... 53


(7)

DAFTAR

TABEL

Tabel 2.1 Pin Header 2x3 ... 25

Tabel 2.2 Menu File ... 28

Tabel 2.3 Menu Edit ... 28

Tabel 2.4 Menu Sketch ... 28

Tabel 2.5 Menu Tools ... 29

Tabel 2.6 Konten dan Penjelasan Tool Bar ... 29

Tabel 4.1 Percobaan Motor Servo 1 ... 54

Tabel 4.2 Percobaan Motor Servo 2 ... 55

Tabel 4.3 Data Pengamatan Alat Di Atas Permukaan Air ... 55


(8)

LAMPIRAN A

PROGRAM ARDUINO

#define kanan 0 #define kiri 180 #define depan 85 #include <Servo.h> Servo servo1; Servo servo2; int jaki, jaka, balik; int sw = 0;

const int pingPin = 7; const int relay = 8; const int wow = 2; void setup() {

digitalWrite(2,HIGH); // pull up

Serial.begin(9600); // initialize serial communication: servo1.attach(3); // SERVO DEPAN ( ULTRASONIC ) servo2.attach(5); // SERVO BELAKANG (KIPAS ANGIN) servo1.write(depan);

servo2.write(depan);

pinMode(relay,OUTPUT); // PIN 8 SEBAGAI OUTPUT KE RELAY balik = 0;

}

long ukur(){

long duration, cm;

pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); pinMode(pingPin, INPUT);

duration = pulseIn(pingPin, HIGH);

cm = microsecondsToCentimeters(duration); return (cm);

}

void henti(){ if ( sw == 1 ) {


(9)

} }

void jalan(){ if ( sw == 0 ) {

digitalWrite(relay,HIGH); sw = 1;

} }

void loop() {

delay(500); long hasil; hasil=ukur(); Serial.print(hasil); Serial.print("cm"); Serial.println(); delay(500);

Serial.println("awal");

// **************************************************// //***************************************************// // JIKA HASIL < 100 ( DEPAN )

if (hasil < 100 && balik == 0) { servo1.write(kiri);

delay(1000); jaki = ukur();

servo1.write(kanan); delay(2000);

jaka = ukur(); delay(500); Serial.print(jaki); Serial.print(" "); Serial.print(jaka); Serial.println(); servo1.write(depan);


(10)

// BAGIAN KANAN // jaka = jarak kanan // jaki = jarak kiri

if (( jaka > jaki ) && (jaka >= 50) && (balik == 0)){ servo2.write(20); //kiri dari depan

Serial.println("kanan"); delay(4000);

servo2.write(85); servo1.write(kiri); delay(5000); balik = 1; }

if (jaka >= 50 && balik == 1) { delay(500);

long hasil; hasil=ukur(); Serial.print(hasil);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

if (hasil >= 50 && balik == 1){ servo2.write(150);

delay(4000); servo2.write(85); servo1.write(depan); Serial.println("kiriwakaka"); delay(3000);

balik =0; }

while (hasil < 50 && balik == 1) { Serial.println("masukwhile"); servo1.write(kiri);

delay(500); long hasilkiri; hasilkiri=ukur(); Serial.print(hasilkiri);

Serial.print("cmmmmmmmm"); Serial.println();


(11)

// baca depan

servo1.write(depan); delay(500);

long hasildepan; hasildepan=ukur(); Serial.print(hasildepan);

Serial.print("cmmmmmmmmdepan"); Serial.println();

delay(500);

if (hasilkiri >= 50 && balik == 1){ servo2.write(150);

delay(4000); servo2.write(85); servo1.write(depan); Serial.println("kiriwhile"); delay(3000);

balik =0; }

if (hasilkiri < 50 && hasildepan < 50 ) { henti();

servo1.write(depan); servo2.write(85);

Serial.println("hentiwhile"); balik =0;

}

if ( digitalRead(wow) == 0 && balik == 1) { henti();

Serial.println("wowhenti"); servo1.write(depan); servo2.write(85); balik = 0;

} } }

// BAGIAN KIRI // jaka = jarak kanan // jaki = jarak kiri

if ((jaki > jaka ) && ( jaki >= 50) && (balik == 0)){ servo2.write(150); //kanan dari depan


(12)

Serial.println("kiri"); delay(4000);

servo2.write(85); servo1.write(kanan); delay(5000); balik = 2;

}

if (jaki >= 50 && balik == 2) { delay(500);

long hasil; hasil=ukur(); Serial.print(hasil);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

if (hasil >= 50 && balik == 2){ servo2.write(20);

delay(4000); servo2.write(85); servo1.write(depan);

Serial.println("kananwakaka"); delay(3000);

balik =0; }

while (hasil < 50 && balik == 2){ Serial.println("masukwhile"); servo1.write(kanan);

delay(500); long hasilkanan; hasilkanan=ukur(); Serial.print(hasilkanan);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500); // baca depan

servo1.write(depan); delay(500);

long hasildepan; hasildepan=ukur(); Serial.print(hasildepan);


(13)

Serial.println(); delay(500);

if (hasilkanan >= 50 && balik == 2){ servo2.write(20);

delay(4000); servo2.write(85); servo1.write(depan);

Serial.println("kananwhile"); delay(3000);

balik =0; }

if (hasilkanan < 50 && hasildepan < 50 ) { henti();

servo1.write(depan); servo2.write(85);

Serial.println("hentiwhile"); balik =0;

}

if ( digitalRead(wow) == 0 && balik == 2){ henti();

Serial.println("wowhenti"); servo1.write(depan); servo2.write(85); balik = 0;

} } }

// JIKA KIRI DAN KANAN SAMA // MAKA KE KANAN

if (( jaki == jaka ) && (jaki >= 50) && (jaka >= 50 && (balik == 0))) { // kiri dan kanan sama

Serial.println("kiri dan kanan sama"); servo2.write(20); //kiri dari depan Serial.println("kanan");

delay(4000); servo2.write(85); servo1.write(kiri); delay(5000);


(14)

balik = 1; }

if (jaka >= 50 && balik == 1) { delay(500);

long hasil; hasil=ukur(); Serial.print(hasil);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

if (hasil >= 50 && balik == 1){ servo2.write(150);

delay(4000); servo2.write(85); servo1.write(depan); Serial.println("kiriwakaka"); delay(3000);

balik =0; }

while (hasil < 50 && balik == 1) { Serial.println("masukwhile"); servo1.write(kiri);

delay(500); long hasilkiri; hasilkiri=ukur(); Serial.print(hasilkiri);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

// baca depan

servo1.write(depan); delay(500);

long hasildepan; hasildepan=ukur(); Serial.print(hasildepan);

Serial.print("cmmmmmmmmdepan"); Serial.println();


(15)

if (hasilkiri >= 50 && balik == 1){ servo2.write(150);

delay(4000); servo2.write(85); servo1.write(depan); Serial.println("kiriwhile"); delay(3000);

balik =0; }

if (hasilkiri < 50 && hasildepan < 50 ) { henti();

servo1.write(depan); servo2.write(85);

Serial.println("hentiwhile"); balik =0;

}

if ( digitalRead(wow) == 0 && balik == 1) { henti();

Serial.println("wowhenti"); servo1.write(depan); servo2.write(85); balik = 0;

} } }

if (jaki < 50 && jaka < 50 && (balik == 0)) { henti();

} }

//******************************************* //******************************************* //*******************************************

// push button

if (digitalRead(wow) == 0 && balik == 0) { Serial.println("masukwowawal");

servo1.write(kiri); delay(1000); jaki = ukur();


(16)

servo1.write(kanan); delay(2000);

jaka = ukur(); delay(500); Serial.print(jaki); Serial.print(" "); Serial.print(jaka); Serial.println(); servo1.write(depan); // BAGIAN KANAN // jaka = jarak kanan // jaki = jarak kiri // dalam push button

if (( jaka > jaki ) && (jaka >= 50) && (balik == 0)){ servo2.write(20); //kiri dari depan

Serial.println("kanan"); delay(4000);

servo2.write(85); servo1.write(kiri); delay(5000); balik = 1; }

if (jaka >= 50 && balik == 1) { delay(500);

long hasil; hasil=ukur(); Serial.print(hasil);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

if (hasil >= 50 && balik == 1){ servo2.write(150);

delay(4000); servo2.write(85); servo1.write(depan); Serial.println("kiriwakaka");


(17)

delay(3000); balik =0; }

while (hasil < 50 && balik == 1) { Serial.println("masukwhile"); servo1.write(kiri);

delay(500); long hasilkiri; hasilkiri=ukur(); Serial.print(hasilkiri);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

// baca depan

servo1.write(depan); delay(500);

long hasildepan; hasildepan=ukur(); Serial.print(hasildepan);

Serial.print("cmmmmmmmmdepan"); Serial.println();

delay(500);

if (hasilkiri >= 50 && balik == 1){ servo2.write(150);

delay(4000); servo2.write(85); servo1.write(depan); Serial.println("kiriwhile"); delay(3000);

balik =0; }

if (hasilkiri < 50 && hasildepan < 50 ) { henti();

servo1.write(depan); servo2.write(85);

Serial.println("hentiwhile"); balik =0;


(18)

if ( digitalRead(wow) == 0 && balik == 1) { henti();

Serial.println("wowhenti"); servo1.write(depan); servo2.write(85); balik = 0;

} } }

// BAGIAN KIRI // jaka = jarak kanan // jaki = jarak kiri // dalam push button

if ((jaki > jaka ) && ( jaki >= 50) && (balik == 0)){ servo2.write(150); //kanan dari depan

Serial.println("kiri"); delay(4000);

servo2.write(85); servo1.write(kanan); delay(5000); balik = 2;

}

if (jaki >= 50 && balik == 2) { delay(500);

long hasil; hasil=ukur(); Serial.print(hasil);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

if (hasil >= 50 && balik == 2){ servo2.write(20);

delay(4000); servo2.write(85); servo1.write(depan);

Serial.println("kananwakaka"); delay(3000);

balik =0; }


(19)

while (hasil < 50 && balik == 2){ Serial.println("masukwhile"); servo1.write(kanan);

delay(500); long hasilkanan; hasilkanan=ukur(); Serial.print(hasilkanan);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

// baca depan

servo1.write(depan); delay(500);

long hasildepan; hasildepan=ukur(); Serial.print(hasildepan);

Serial.print("cmmmmmmmmdepan"); Serial.println();

delay(500);

if (hasilkanan >= 50 && balik == 2){ servo2.write(20);

delay(4000); servo2.write(85); servo1.write(depan);

Serial.println("kananwhile"); delay(3000);

balik =0; }

if (hasilkanan < 50 && hasildepan < 50 ) { henti();

servo1.write(depan); servo2.write(85);

Serial.println("hentiwhile"); balik =0;

}

if ( digitalRead(wow) == 0 && balik == 2){ henti();

Serial.println("wowhenti"); servo1.write(depan);


(20)

servo2.write(85); balik = 0;

} } }

// JIKA KIRI DAN KANAN SAMA // MAKA KE KANAN

// dalam push button

if (( jaki == jaka ) && (jaki >= 50) && (jaka >= 50 && (balik == 0))) { // kiri dan kanan sama

Serial.println("kiri dan kanan sama"); servo2.write(20); //kiri dari depan Serial.println("kanan");

delay(4000); servo2.write(85); servo1.write(kiri); delay(5000); balik = 1; }

if (jaka >= 50 && balik == 1) { delay(500);

long hasil; hasil=ukur(); Serial.print(hasil);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

if (hasil >= 50 && balik == 1){ servo2.write(150);

delay(4000); servo2.write(85); servo1.write(depan); Serial.println("kiriwakaka"); delay(3000);

balik =0; }

while (hasil < 50 && balik == 1) { Serial.println("masukwhile"); servo1.write(kiri);


(21)

delay(500); long hasilkiri; hasilkiri=ukur(); Serial.print(hasilkiri);

Serial.print("cmmmmmmmm"); Serial.println();

delay(500);

// baca depan

servo1.write(depan); delay(500);

long hasildepan; hasildepan=ukur(); Serial.print(hasildepan);

Serial.print("cmmmmmmmmdepan"); Serial.println();

delay(500);

if (hasilkiri >= 50 && balik == 1){ servo2.write(150);

delay(4000); servo2.write(85); servo1.write(depan); Serial.println("kiriwhile"); delay(3000);

balik =0; }

if (hasilkiri < 50 && hasildepan < 50 ) { henti();

servo1.write(depan); servo2.write(85);

Serial.println("hentiwhile"); balik =0;

}

if ( digitalRead(wow) == 0 && balik == 1) { henti();

Serial.println("wowhenti"); servo1.write(depan);


(22)

servo2.write(85); balik = 0;

} } }

if (jaki < 50 && jaka < 50 && (balik == 0)) { henti();

} }

else{

servo1.write(depan); servo2.write(85); jalan();

} }

long microsecondsToCentimeters(long microseconds) {

// The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the

// object we take half of the distance travelled. return microseconds / 29 / 2;


(23)

LAMPIRAN B

RANGKAIAN SKEMATIK ARDUINO

ELMARINO


(24)

LAMPIRAN C


(25)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Robot adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, ataupun menggunakan program yang telah didefinisikan terlebih dahulu (kecerdasan buatan). Perkembangan teknologi robot berkembang semakin pesat mulai dari sederhana seperti mengeksekusi satu perintah saja sampai yang rumit sehingga dapat melakukan berbagai perintah. Robot telah banyak dibuat untuk membantu manusia melakukan tugas yang berat, berbahaya, pekerjaan yang berulang dan kotor. Salah satu jenis robot yang digunakan untuk membantu manusia adalah robot otomatisasi bergerak di permukaan air.

Robot otomatis di atas permukaan air dapat digunakan untuk menempatkan posisi ledakan pada saat perang di lautan. Robot ini diperlukan agar menimbulkan banyak korban pada pihak musuh ketika melakukan peledakan karena robot ini tidak membutuhkan awak. Robot ini dapat berbelok ketika adanya halangan di depan atau mengenai karang bawah laut untuk mencari arah lain.

Robot otomatis di atas permukaan air dibuat dengan menggunakan mikrokontroler, sensor ultrasonik, dan motor sebagai penggerak. Mikrokontroler merupakan suatu komponen elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus. Perkembangan teknologi mengakibatkan semakin banyaknya penggunaan mikrokontroler. Salah satu mikrokontroler yang banyak beredar di pasaran adalah mikrokontroler Arduino.


(26)

Arduino merupakan kit elektronik atau papan rangkaian elektronik open source yang mudah digunakan karena menggunakan bahasa pemrograman berbasis C.

1.2

Identifikasi Masalah

Bagaimana membuat sebuah robot otomatis bergerak di atas permukaan air ?

1.3 Tujuan Masalah

Untuk membuat sebuah robot otomatis bergerak di atas permukaan air.

1.4 Pembatasan Masalah

1. Jarak yang dideteksi sensor ultrasonik 1 Meter. 2. Jarak deteksi untuk dalam laut 30 cm ke depan. 3. Jarak yang dapat ditempuh maksimal 50 Meter. 4. Robot tidak bisa kembali ke posisi awal.

5. Dilakukan percobaan pada kolam ruangan tertutup.

1.5 Sistematika Penulisan

Rancangan sistematika makalah ini terdiri atas beberapa bab yang akan dirinci sebagai berikut:

Bab I Pendahuluan

Berisi tentang latar belakang, identifikasi masalah, tujuan masalah, pembatasan masalah dan sistematika penulisan. Bab II Landasan Teori

Berisi tentang penjelasan umum mengenai alat-alat yang dipakai.

Bab III Perancangan

Berisi tentang perancangan software dan hardware dalam pembuatan alat.


(27)

Bab IV Pengamatan Data dan Analisa

Berisi tentang pengamatan dan analisa pada alat yang telah dibuat.

Bab V Kesimpulan dan Saran


(28)

BAB V

KESIMPULAN DAN SARAN

5.1Kesimpulan

1. Pembuatan robot otomatis yang dapat bergerak di permukaan air dilengkapi dengan sensor Ultrasonik dan Push Button telah direalisasikan.

2. Faktor keadaan lingkungan seperti, pergerakan permukaan air, arus air sangat mempengaruhi.

5.2Saran

1. Menggunakan motor yang lebih besar dan kuat.

2. Perancangan untuk medan yang lebih berat seperti di laut.

3. Penelitian lebih lanjut penyebab gerak yang tidak diinginkan di atas air.


(29)

ROBOT GERAK OTOMATIS DI PERMUKAAN AIR

Rinto Susanto

Jurusan S1 Sistem Komputer

Fakultas Teknik Universitas Kristen Maranatha Jl. Prof. drg. Surya Sumantri No. 65, Bandung 40164

Email: [email protected]

Abstract

Automated Moving Robot On Water Surface is a robot equipped with ultrasonic and push button sensors. This automated robot using wind force to move the robot on water surface. It can be used to place position of explosion during sea war. This robot do not required a crew and turn automatically if there are obstacle in front of the robot or obstacle below water surface.

Automated robot has been created and can passed the obstacles that exist when there is obstacle in front of robot or obstacle below water surface. Factor of moving water surface and water flow can affect the robot moving not perfect.

I. PENDAHULUAN

Robot adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, ataupun menggunakan program yang telah didefinisikan terlebih dahulu (kecerdasan buatan). Perkembangan teknologi robot berkembang semakin pesat mulai dari sederhana seperti mengeksekusi satu perintah saja sampai yang rumit sehingga dapat melakukan berbagai perintah. Robot telah banyak dibuat untuk membantu manusia melakukan tugas yang berat, berbahaya, pekerjaan yang berulang dan kotor. Salah satu jenis robot yang digunakan untuk membantu manusia adalah robot otomatisasi bergerak di permukaan air.

Robot otomatis di atas permukaan air dapat digunakan untuk menempatkan posisi ledakan pada saat perang di lautan. Robot ini diperlukan agar menimbulkan banyak korban pada pihak musuh ketika melakukan peledakan karena robot ini tidak membutuhkan awak. Robot ini dapat berbelok ketika adanya halangan di depan atau mengenai karang bawah laut untuk mencari arah lain.

Robot otomatis di atas permukaan air dibuat dengan menggunakan mikrokontroler, sensor ultrasonik, dan motor sebagai penggerak. Mikrokontroler merupakan suatu komponen elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus. Perkembangan teknologi mengakibatkan semakin banyaknya penggunaan mikrokontroler. Salah satu mikrokontroler yang banyak beredar di pasaran adalah mikrokontroler Arduino.

Arduino merupakan kit elektronik atau papan rangkaian elektronik open source yang mudah digunakan karena menggunakan bahasa pemrograman berbasis C.

II. Landasan Teori

Relay

Relay adalah sebuah saklar yang beroperasi secara elektrikal dengan elektromagnet untuk mengatur hubungan buka atau tutup dari rangkaian elektronika luar.

Sensor Ultrasonik

Sensor ultrasonik adalah sensor yang bekerja berdasarkan prinsip pantulan gelombang suara dan digunakan untuk mendeteksi keberadaan suatu objek tertentu di depan.


(30)

Sensor Sentuh

Sensor sentuh adalah saklar tekan yang berfungsi untuk menghubungkan atau memisahkan bagian-bagian dari suatu instalasi listrik satu sama lain.

Motor Servo

Motor servo adalah sebuah motor dengan sistem umpan balik tertutup (closed feedback) yang posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam servo.

Motor DC

Motor listrik merupakan perangkat elektromagnetik yang mengubah energi listrik menjadi energi mekanik.

Arduino

Arduino adalah kit elektronik atau papan rangkaian elektronik bersifat open source, di rancang untuk memudahkan penggunaan elektronik dalam berbagai bidang sehingga mudah diakses.

III. PERANCANGAN

Gambar 1 Blok Diagram

Pada gambar 1 Arduino mambaca signal input dari sensor ultrasonik dan sensor push button. Arduino memproses data input dan mengeluarkan output menggerakkan motor servo 1, servo 2 dan relay untuk menyalakan kipas.

Gambar 2 Sketsa Maket ULTRASONIK

PUSH BUTTON

ARDUINO

SERVO 1 Mengarahkan Ultrasonik

KIPAS RELAY

SERVO 2 Mengarahkan Kipas


(31)

Skenario :

1. Apabila sensor ultrasonik mendeteksi ada halangan < 100 cm di depan atau

sensor sentuh dalam air menyentuh halangan, maka sensor ultrasonik akan membaca jarak kiri, lalu jarak kanan yang diarahkan oleh servo 1.

2. Jarak kiri dan kanan dibandingkan, jika jarak kiri lebih besar dari jarak kanan,

maka kipas akan berputar ke arah kiri yang diarahkan oleh servo 2 dan sebaliknya jika jarak kanan lebih besar dari jarak kanan atau jarak kiri sama dengan jarak kanan dan besar sama dengan 50 cm, maka kipas akan berputar ke arah kanan yang diarahkan oleh servo 2. Kipas akan berhenti jika jarak kiri dan kanan kecil dari 50 cm.

3. Bila servo 2 belok ke arah kiri, sensor ultrasonik membaca jarak sebelah kanan

dan kipas berposisi lurus. Jika jarak kanan besar sama dengan 50 cm, maka kipas akan berbelok ke arah kanan. Apabila jarak kanan kecil dari 50 cm maka sensor ultrasonik membaca jarak depan dan kanan hingga jarak kanan besar sama dengan 50 cm. Kipas akan berhenti jika mendapat halangan pada sensor sentuh dalam air atau jarak depan kecil dari 50 cm.

4. Bila servo 2 belok ke arah kanan, sensor ultrasonik membaca jarak sebelah kiri

dan kipas berposisi lurus. Jika jarak kiri besar sama dengan 50 cm, maka kipas akan berbelok ke arah kiri. Apabila jarak kiri kecil dari 50 cm maka sensor ultrasonik membaca jarak depan dan kiri hingga jarak kiri besar sama dengan 50 cm. Kipas akan berhenti jika mendapat halangan pada sensor sentuh dalam air atau jarak depan kecil dari 50 cm.

Gambar 3 Rangkaian Skematik Alat

Pada gambar 3 merupakan rangkaian skematik alat yang terdiri 1 buah sensor ultrasonik, 1 buah sensor sentuh, 1 buah relay, 1 buah motor DC dan 2 buah motor servo. Pada sensor ultrasonik terdapat 3 buah pin, yaitu pin gnd, pin vcc 5V, dan pin signal yang dihubungkan pada pin 7 Arduino. Sensor sentuh dihubungkan pada pin 2 Arduino dan saklar relay dihubungkan pada pin 8 Arduino untuk mengaktifkan motor DC . Untuk motor servo 1 dihubungkan pada pin 3 Arduino dan motor servo 2 dihubungkan pada pin 5 Arduino.


(32)

Gambar 4 Flowchart


(33)

Gambar 4 menunjukkan cara kerja keseluruhan program. Saat program dijalankan akan melakukan proses ‘sw=0’. Sensor ultrasonik sebagai input membaca jarak depan, jika nilai jarak depan > 100 cm dan tidak mendapatkan signal dari sensor sentuh, maka kipas akan menyala jika ‘sw=0’. Kipas tidak akan nyala jika ‘sw’ tidak sama dengan 0. Apabila nilai jarak sensor ultrasonik < 100 cm atau mendapatkan signal dari sensor sentuh maka sensor ultrasonik akan membaca nilai jarak kiri dan jarak kanan yang diarahkan oleh servo 1. Nilai jarak kiri dan kanan akan dibandingkan.

Bila nilai jarak kiri ≥ 50 cm dan lebih besar dari jarak kanan, maka kipas belok ke arah kiri diarahkan servo 2 kemudian ke posisi lurus. Selanjutnya sensor ultrasonik akan membaca nilai jarak kanan. Apabila nilai jarak kanan ≥ 50 cm maka kipas berbelok ke arah kanan diarahkan servo 2 kemudian ke posisi lurus dan program akan mengulang dari awal. Jika nilai jarak kanan < 50 cm, maka sensor akan membaca nilai jarak kanan dan depan. Jika nilai jarak kanan ≥ 50 cm, maka kipas belok ke arah kanan diarahkan servo 2 kemudian program akan mengulang dari awal. Kipas akan henti ketika nilai jarak depan < 50 cm atau mendapat signal dari sensor sentuh. Apabila ketiga kondisi tidak tercapai maka program akan terus mengulang membaca nilai jarak kanan dan depan.

Bila nilai jarak kanan ≥ 50 cm dan lebih besar dari jarak kiri, maka kipas belok ke arah kanan diarahkan servo 2 kemudian ke posisi lurus. Selanjutnya sensor ultrasonik akan membaca nilai jarak kiri. Apabila nilai jarak kiri ≥ 50 cm maka kipas berbelok ke arah kiri diarahkan servo 2 kemudian ke posisi lurus dan program akan mengulang dari awal. Jika nilai jarak kiri < 50 cm, maka sensor akan membaca nilai jarak kiri dan depan. Jika nilai jarak kiri ≥ 50 cm, maka kipas belok ke arah kiri diarahkan servo 2 kemudian program akan mengulang dari awal. Kipas akan henti ketika nilai jarak depan < 50 cm atau mendapat signal dari sensor sentuh. Apabila ketiga kondisi tidak tercapai maka program akan terus mengulang membaca nilai jarak kiri dan depan.

IV. PENGAMATAN DATA DAN ANALISIS Pengamatan Data Hardware

Gambar 5 Foto Keseluruhan Maket

Gambar 5 merupakan foto maket keseluruhan dari robot otomatis yang dapat bergerak di permukaan air yang dilengkapi dengan sensor ultrasonik, sensor sentuh, 2 buah servo, 1 buah relay, 1 buah kipas serta sumber tegangan 12V dan 5V.


(34)

Gambar 6 Sensor Ultrasonik Membaca Jarak Depan dan Sensor Sentuh

Gambar 6 merupakan foto posisi awal robot dijalankan. Sensor ultrasonik membaca jarak depan dan sensor sentuh berada di bawah permukaan air.

Gambar 7 Sensor Ultrasonik Membaca Jarak Kiri

Gambar 7 merupakan foto saat sensor ultrasonik membaca jarak kiri yang diarahkan oleh motor servo 1.

Gambar 8 Sensor Ultrasonik Membaca Jarak Kanan

Gambar 8 merupakan foto saat sensor ultrasonik membaca jarak kanan yang diarahkan oleh motor servo 1.


(35)

Gambar 9 Kipas Menghadap Lurus

Gambar 9 merupakan posisi kipas saat bergerak lurus yang diarahkan oleh motor servo 2.

Gambar 10 Kipas Menghadap Kiri

Gambar 10 merupakan posisi kipas saat bergerak kiri yang diarahkan oleh motor servo 2.

Gambar 11 Kipas Menghadap Kanan

Gambar 11 merupakan posisi kipas saat bergerak kanan yang diarahkan oleh motor servo 2.


(36)

Tabel 1 Percobaan Motor Servo 1

NO PEMBACAAN SERVO 1

1 ULTRASONIK < 100 cm KIRI & KANAN

2 ULTRASONIK < 100 cm KIRI & KANAN

3 ULTRASONIK < 100 cm KIRI & KANAN

4 SENTUH KIRI & KANAN

5 SENTUH KIRI & KANAN

6 SENTUH KIRI & KANAN

Note :Motor Servo 1  Bagian Depan Penggerak Sensor Ultrasonik

Tabel 1 merupakan data pengamatan percobaan motor servo 1. Jika sensor ultrasonik membaca jarak < 100 cm atau mendapat sinyal sensor sentuh maka servo 1 akan berputar ke kiri dan kanan.

Tabel 2 Percobaan Motor Servo 2

Note : Motor Servo 2 Bagian Belakang Penggerak Kipas

Kiri > Kanan Jarak Kiri ≥ 50 cm

Kanan > Kiri Jarak Kanan ≥ 50 cm

Kanan = Kiri Jarak Kanan ≥ 50 cm &Jarak Kiri ≥ 50 cm

Tabel 2 merupakan data pengamatan percobaan motor servo 2. Servo 2 terletak pada bagian belakang sebagai penggerak kipas. Servo 2 berputar ke arah kiri jika sensor ultrasonik

membaca nilai jarak kiri besar dari jarak kanan dengan syarat nilai jarak kiri harus ≥ 50 cm.

Tabel 3 Data Pengamatan Alat Di Atas Permukaan Air

NO

Pembacaan - 1 Pembacaan – 2 Pembacaan - 3

ULTRASONIK < 100 m SENTUH *KIRI > KANAN *KANAN > KIRI *kiri < 50 cm & kanan < 50 cm *KIRI = KANAN *KIRI < 50 m *KIRI 50 m *KANAN < 50 m *KANAN 50 m *DEPAN < 50 m SENTUH

1  − − **KANAN − − **LURUS **KIRI − −

2  − **KIRI

(GAGAL) − − − **LURUS **KANAN − −

3 −  **KIRI − − − **LURUS (GAGAL) −

KIPAS HENTI −

4  − **KIRI − − − **LURUS − − HENTI KIPAS

Note : * adalah sensor ultrasonik diarahkan oleh motor servo 1 ** adalah kipas diarahkan oleh motor servo 2

- adalah proses yang sedang tidak dikerjakan x adalah tidak ada proses

NO PEMBACAAN

ULTRASONIK SERVO 2

1 KIRI > KANAN KIRI

2 KIRI > KANAN KIRI

3 KANAN > KIRI KANAN

4 KANAN > KIRI KANAN


(37)

Tabel 3 merupakan hasil data pengamatan yang dilakukan di atas permukaan air. Pada percobaan pertama sensor ultrasonik membaca jarak depan, jika nilai jarak depan < 100 cm maka sensor ultrasonik membaca jarak kiri dan jarak kanan. Nilai jarak kanan > jarak kiri maka kipas bergerak ke arah kanan diarahkan servo 2. Selanjutnya sensor ultrasonik membaca jarak kiri, nilai jarak kiri < 50 cm maka kipas menghadap lurus dan sensor ultrasonik membaca jarak kiri dan depan, hingga jarak kiri ≥ 50 cm kipas belok ke arah kiri.

Pada percobaan ke-dua sensor ultrasonik membaca jarak depan, jika nilai jarak depan < 100 cm maka sensor ultrasonik membaca jarak kiri dan jarak kanan. Nilai jarak kiri > jarak kanan maka kipas bergerak ke arah kiri diarahkan servo 2. Servo 2 berhasil belok kiri, tetapi posisi arah robot masih lurus. Selanjutnya sensor ultrasonik membaca jarak kanan, Nilai jarak kanan < 50 cm maka kipas menghadap lurus dan sensor ultrasonik membaca jarak kanan dan depan, hingga jarak kanan ≥ 50 cm kipas belok ke arah kanan.

Pada percobaan ke-tiga sensor sentuh mendapat sentuhan, maka sensor ultrasonik membaca jarak kiri dan jarak kanan. Nilai jarak kiri > jarak kanan maka kipas bergerak ke arah kiri diarahkan servo 2. Selanjutnya sensor ultrasonik membaca jarak kanan, nilai jarak kanan < 50 cm maka kipas menghadap lurus dan sensor ultrasonik membaca jarak kiri dan depan. Servo 2 berhasil menghadap lurus, tetapi posisi robot tidak lurus melainkan ke arah kiri. Nilai jarak depan < 50 cm maka kipas henti.

Pada percobaan ke-empat sensor ultrasonik membaca jarak depan, jika nilai jarak depan < 100 cm maka sensor ultrasonik membaca jarak kiri dan jarak kanan. Nilai jarak kiri > jarak kanan maka kipas bergerak ke arah kiri diarahkan servo 2. Selanjutnya sensor ultrasonik membaca jarak kanan, nilai jarak kanan < 50 cm maka kipas menghadap lurus dan sensor ultrasonik membaca jarak kiri dan depan. Kipas berhenti karena mendapat sentuhan pada sensor sentuh.

Analisis Data

Dari hasil data pengamatan, dapat dianalisa bahwa semua percobaan di darat berhasil bergerak sesuai diinginkan. Pada data pengamatan di atas permukaan air terdapat beberapa kegagalan yang tidak diinginkan. Pada saat robot bergerak lurus, hasil yang diinginkan tidak sempurna karena pengaruh angin dan ombak mengakibatkan robot tidak bergerak lurus sesuai keinginan. Begitu juga saat robot belok ke arah kiri, hasil yang diinginkan tidak sesuai karena pengaruh angin yang kuat mengakibatkan robot tidak berputar ke arah kiri dengan sempurna.

V. KESIMPULAN DAN SARAN Kesimpulan

1. Pembuatan robot otomatis yang dapat bergerak di permukaan air dilengkapi dengan

sensor Ultrasonik dan PushButton telah direalisasikan.

2. Faktor keadaan lingkungan seperti, pergerakan permukaan air, arus air sangat

mempengaruhi.

Saran

1. Menggunakan motor yang lebih besar dan kuat.

2. Perancangan untuk medan yang lebih berat seperti di laut.


(38)

VI. REFERENSI

Artanto, Dian. 2012. Interaksi Arduino dan LabVIEW. Jakarta : PT. Elex Media Komputindo, Anggota IKAPI.

Darmawan, Aan. 2012. Modul Workshop Arduino. Bandung : Universitas Kristen Maranatha.

Daryanto. 2011. Dasar-Dasar Kelistrikan Otomotif. Jakarta : PT. Prestasi Pustakarya. McRoberts, Mike. 2010. Arduino Starter Kit Manual. Jakarta : Earthshine Design. Petruzella, Frank D. 1996. Elektronik Industri. Diterjemahkan oleh: Sunanto.

Yogyakarta : Andi

R.A, Penfold. 2002. Dasar-Dasar Elektronik Untuk Pemula. Bandung : CV. Pionir Jaya.

http://akbarulhuda.wordpress.com/2010/04/01/mengenal-motor-servo,1 April 2013 http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor, 3 Maret 2013. http://electronic-schema.blogspot.sg/2009/12/pushbutton.html, 3 Maret 2013.

http://elektronika-dasar.web.id/teori-elektronika/teori-relay-elektro-mekanik, 5 Maret 2013.

http://elib.unikom.ac.id/files/disk1/535/jbptunikompp-gdl-iipirmansy-26712-5-unikom_i-i.pdf,5 Maret 2013.

http://spyagent-elektronika.blogspot.sg/2012/03/bab-ii.html, 1 April 2013. http://thesis.binus.ac.id/Asli/Bab2/2008-1-00418-SK-Bab%202.pdf, 8 April 2013.

http://thesis.binus.ac.id/Doc/Bab2NoPass/2007-2-00527-SK_Bab%202.pdf, 8 April


(39)

DAFTAR PUSTAKA

Artanto, Dian. 2012. Interaksi Arduino dan LabVIEW. Jakarta : PT. Elex Media Komputindo, Anggota IKAPI.

Darmawan, Aan. 2012. Modul Workshop Arduino. Bandung : Universitas Kristen Maranatha.

Daryanto. 2011. Dasar-Dasar Kelistrikan Otomotif. Jakarta : PT. Prestasi Pustakarya.

McRoberts, Mike. 2010. Arduino Starter Kit Manual. Jakarta : Earthshine Design.

Petruzella, Frank D. 1996. Elektronik Industri. Diterjemahkan oleh: Sunanto. Yogyakarta : Andi

R.A, Penfold. 2002. Dasar-Dasar Elektronik Untuk Pemula. Bandung : CV. Pionir Jaya.

http://akbarulhuda.wordpress.com/2010/04/01/mengenal-motor-servo, 1 April 2013

http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor, 3 Maret 2013.

http://electronic-schema.blogspot.sg/2009/12/pushbutton.html, 3 Maret 2013.

http://elektronika-dasar.web.id/teori-elektronika/teori-relay-elektro-mekanik, 5 Maret 2013.

http://elib.unikom.ac.id/files/disk1/535/jbptunikompp-gdl-iipirmansy-26712-5-unikom_i-i.pdf, 5 Maret 2013.

http://spyagent-elektronika.blogspot.sg/2012/03/bab-ii.html, 1 April 2013.

http://thesis.binus.ac.id/Asli/Bab2/2008-1-00418-SK-Bab%202.pdf, 8 April 2013.

http://thesis.binus.ac.id/Doc/Bab2NoPass/2007-2-00527-SK_Bab%202.pdf, 8 April 2013.


(1)

Gambar 6 Sensor Ultrasonik Membaca Jarak Depan dan Sensor Sentuh

Gambar 6 merupakan foto posisi awal robot dijalankan. Sensor ultrasonik membaca jarak depan dan sensor sentuh berada di bawah permukaan air.

Gambar 7 Sensor Ultrasonik Membaca Jarak Kiri

Gambar 7 merupakan foto saat sensor ultrasonik membaca jarak kiri yang diarahkan oleh motor servo 1.

Gambar 8 Sensor Ultrasonik Membaca Jarak Kanan

Gambar 8 merupakan foto saat sensor ultrasonik membaca jarak kanan yang diarahkan oleh motor servo 1.


(2)

Gambar 9 Kipas Menghadap Lurus

Gambar 9 merupakan posisi kipas saat bergerak lurus yang diarahkan oleh motor

servo 2.

Gambar 10 Kipas Menghadap Kiri

Gambar 10 merupakan posisi kipas saat bergerak kiri yang diarahkan oleh motor

servo 2.

Gambar 11 Kipas Menghadap Kanan

Gambar 11 merupakan posisi kipas saat bergerak kanan yang diarahkan oleh motor


(3)

Tabel 1 Percobaan Motor Servo 1

NO PEMBACAAN SERVO 1

1 ULTRASONIK < 100 cm KIRI & KANAN

2 ULTRASONIK < 100 cm KIRI & KANAN

3 ULTRASONIK < 100 cm KIRI & KANAN

4 SENTUH KIRI & KANAN

5 SENTUH KIRI & KANAN

6 SENTUH KIRI & KANAN

Note :Motor Servo 1  Bagian Depan Penggerak Sensor Ultrasonik

Tabel 1 merupakan data pengamatan percobaan motor servo 1. Jika sensor ultrasonik membaca jarak < 100 cm atau mendapat sinyal sensor sentuh maka servo 1 akan berputar ke kiri dan kanan.

Tabel 2 Percobaan Motor Servo 2

Note : Motor Servo 2 Bagian Belakang Penggerak Kipas

Kiri > Kanan  Jarak Kiri ≥ 50 cm

Kanan > Kiri  Jarak Kanan ≥ 50 cm

Kanan = Kiri  Jarak Kanan ≥ 50 cm &Jarak Kiri ≥ 50 cm

Tabel 2 merupakan data pengamatan percobaan motor servo 2. Servo 2 terletak pada bagian belakang sebagai penggerak kipas. Servo 2 berputar ke arah kiri jika sensor ultrasonik membaca nilai jarak kiri besar dari jarak kanan dengan syarat nilai jarak kiri harus ≥ 50 cm.

Tabel 3 Data Pengamatan Alat Di Atas Permukaan Air

NO

Pembacaan - 1 Pembacaan – 2 Pembacaan - 3

ULTRASONIK < 100 m SENTUH *KIRI > KANAN *KANAN > KIRI *kiri < 50 cm & kanan < 50 cm *KIRI = KANAN *KIRI < 50 m *KIRI 50 m *KANAN < 50 m *KANAN 50 m *DEPAN < 50 m SENTUH

1  − − **KANAN − − **LURUS **KIRI − −

2  − **KIRI

(GAGAL) − − − **LURUS **KANAN − −

3 −  **KIRI − − − **LURUS

(GAGAL) −

KIPAS

HENTI −

4  − **KIRI − − − **LURUS − − HENTI KIPAS

Note : * adalah sensor ultrasonik diarahkan oleh motor servo 1

** adalah kipas diarahkan oleh motor servo 2 - adalah proses yang sedang tidak dikerjakan x adalah tidak ada proses

NO PEMBACAAN

ULTRASONIK SERVO 2

1 KIRI > KANAN KIRI

2 KIRI > KANAN KIRI

3 KANAN > KIRI KANAN

4 KANAN > KIRI KANAN


(4)

Tabel 3 merupakan hasil data pengamatan yang dilakukan di atas permukaan air. Pada percobaan pertama sensor ultrasonik membaca jarak depan, jika nilai jarak depan < 100 cm maka sensor ultrasonik membaca jarak kiri dan jarak kanan. Nilai jarak kanan > jarak kiri maka kipas bergerak ke arah kanan diarahkan servo 2. Selanjutnya sensor ultrasonik membaca jarak kiri, nilai jarak kiri < 50 cm maka kipas menghadap lurus dan sensor

ultrasonik membaca jarak kiri dan depan, hingga jarak kiri ≥ 50 cm kipas belok ke arah kiri.

Pada percobaan ke-dua sensor ultrasonik membaca jarak depan, jika nilai jarak depan < 100 cm maka sensor ultrasonik membaca jarak kiri dan jarak kanan. Nilai jarak kiri > jarak kanan maka kipas bergerak ke arah kiri diarahkan servo 2. Servo 2 berhasil belok kiri, tetapi posisi arah robot masih lurus. Selanjutnya sensor ultrasonik membaca jarak kanan, Nilai jarak kanan < 50 cm maka kipas menghadap lurus dan sensor ultrasonik membaca jarak

kanan dan depan, hingga jarak kanan ≥ 50 cm kipas belok ke arah kanan.

Pada percobaan ke-tiga sensor sentuh mendapat sentuhan, maka sensor ultrasonik membaca jarak kiri dan jarak kanan. Nilai jarak kiri > jarak kanan maka kipas bergerak ke arah kiri diarahkan servo 2. Selanjutnya sensor ultrasonik membaca jarak kanan, nilai jarak kanan < 50 cm maka kipas menghadap lurus dan sensor ultrasonik membaca jarak kiri dan depan. Servo 2 berhasil menghadap lurus, tetapi posisi robot tidak lurus melainkan ke arah kiri. Nilai jarak depan < 50 cm maka kipas henti.

Pada percobaan ke-empat sensor ultrasonik membaca jarak depan, jika nilai jarak depan < 100 cm maka sensor ultrasonik membaca jarak kiri dan jarak kanan. Nilai jarak kiri > jarak kanan maka kipas bergerak ke arah kiri diarahkan servo 2. Selanjutnya sensor ultrasonik membaca jarak kanan, nilai jarak kanan < 50 cm maka kipas menghadap lurus dan sensor ultrasonik membaca jarak kiri dan depan. Kipas berhenti karena mendapat sentuhan pada sensor sentuh.

Analisis Data

Dari hasil data pengamatan, dapat dianalisa bahwa semua percobaan di darat berhasil bergerak sesuai diinginkan. Pada data pengamatan di atas permukaan air terdapat beberapa kegagalan yang tidak diinginkan. Pada saat robot bergerak lurus, hasil yang diinginkan tidak sempurna karena pengaruh angin dan ombak mengakibatkan robot tidak bergerak lurus sesuai keinginan. Begitu juga saat robot belok ke arah kiri, hasil yang diinginkan tidak sesuai karena pengaruh angin yang kuat mengakibatkan robot tidak berputar ke arah kiri dengan sempurna.

V. KESIMPULAN DAN SARAN Kesimpulan

1. Pembuatan robot otomatis yang dapat bergerak di permukaan air dilengkapi dengan sensor Ultrasonik dan PushButton telah direalisasikan.

2. Faktor keadaan lingkungan seperti, pergerakan permukaan air, arus air sangat mempengaruhi.

Saran

1. Menggunakan motor yang lebih besar dan kuat.

2. Perancangan untuk medan yang lebih berat seperti di laut.


(5)

VI. REFERENSI

Artanto, Dian. 2012. Interaksi Arduino dan LabVIEW. Jakarta : PT. Elex Media Komputindo, Anggota IKAPI.

Darmawan, Aan. 2012. Modul Workshop Arduino. Bandung : Universitas Kristen Maranatha.

Daryanto. 2011. Dasar-Dasar Kelistrikan Otomotif. Jakarta : PT. Prestasi Pustakarya. McRoberts, Mike. 2010. Arduino Starter Kit Manual. Jakarta : Earthshine Design. Petruzella, Frank D. 1996. Elektronik Industri. Diterjemahkan oleh: Sunanto.

Yogyakarta : Andi

R.A, Penfold. 2002. Dasar-Dasar Elektronik Untuk Pemula. Bandung : CV. Pionir Jaya.

http://akbarulhuda.wordpress.com/2010/04/01/mengenal-motor-servo,1 April 2013 http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor, 3 Maret 2013. http://electronic-schema.blogspot.sg/2009/12/pushbutton.html, 3 Maret 2013.

http://elektronika-dasar.web.id/teori-elektronika/teori-relay-elektro-mekanik, 5 Maret 2013.

http://elib.unikom.ac.id/files/disk1/535/jbptunikompp-gdl-iipirmansy-26712-5-unikom_i-i.pdf,5 Maret 2013.

http://spyagent-elektronika.blogspot.sg/2012/03/bab-ii.html, 1 April 2013. http://thesis.binus.ac.id/Asli/Bab2/2008-1-00418-SK-Bab%202.pdf, 8 April 2013. http://thesis.binus.ac.id/Doc/Bab2NoPass/2007-2-00527-SK_Bab%202.pdf, 8 April


(6)

DAFTAR PUSTAKA

Artanto, Dian. 2012. Interaksi Arduino dan LabVIEW. Jakarta : PT. Elex

Media Komputindo, Anggota IKAPI.

Darmawan, Aan. 2012. Modul Workshop Arduino. Bandung : Universitas

Kristen Maranatha.

Daryanto. 2011. Dasar-Dasar Kelistrikan Otomotif. Jakarta : PT. Prestasi

Pustakarya.

McRoberts, Mike. 2010. Arduino Starter Kit Manual. Jakarta :

Earthshine Design.

Petruzella, Frank D. 1996. Elektronik Industri. Diterjemahkan oleh:

Sunanto. Yogyakarta : Andi

R.A, Penfold. 2002. Dasar-Dasar Elektronik Untuk Pemula. Bandung :

CV. Pionir Jaya.

http://akbarulhuda.wordpress.com/2010/04/01/mengenal-motor-servo,

1 April 2013

http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor,

3 Maret 2013.

http://electronic-schema.blogspot.sg/2009/12/pushbutton.html,

3 Maret 2013.

http://elektronika-dasar.web.id/teori-elektronika/teori-relay-elektro-mekanik, 5 Maret 2013.

http://elib.unikom.ac.id/files/disk1/535/jbptunikompp-gdl-iipirmansy-26712-5-unikom_i-i.pdf, 5 Maret 2013.

http://spyagent-elektronika.blogspot.sg/2012/03/bab-ii.html,

1 April 2013.

http://thesis.binus.ac.id/Asli/Bab2/2008-1-00418-SK-Bab%202.pdf,

8 April 2013.

http://thesis.binus.ac.id/Doc/Bab2NoPass/2007-2-00527-SK_Bab%202.pdf, 8 April 2013.