Realisasi Robot Hexapod Pemadam Api Untuk Lomba KRCI 2011 Divisi Berkaki.

(1)

i

REALISASI ROBOT HEXAPOD PEMADAM API UNTUK LOMBA KRCI 2011 DIVISI BERKAKI

Disusun oleh : Petrus T Handoko

0722057

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha, Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,

Email : yokichi@ymail.com ABSTRAK

Dalam merancang dan merealisasikan sebuah robot berkaki, faktor kecepatan dan kestabilan robot dalam bermanuver perlu diperhatikan. Dalam menjalankan misi mencari dan memadamkan api dalam suatu maze pada lomba KRCI ini, dibutuhkan sebuah robot yang dapat bergerak dengan cepat dalam menyusuri maze untuk mencari api serta dibutuhkan sebuah robot yang cukup stabil sehingga dapat menghindari rintangan ketika bernavigasi tanpa masalah. Karena kebutuhan tersebut, maka dirancanglah robot berkaki berjenis hexapod atau berkaki enam. Robot berkaki enam memiliki tingkat kestabilan yang lebih dibandingkan robot berkaki dua atau empat karena terdapat lebih banyak kaki yang menopang badan robot ketika bermanuver. Dengan kestabilan yang lebih terjaga ini, diharapkan ketika robot bergerak lebih cepat robot tidak mengalami gangguan kestabilan.

Selain merancang dan merealisasikan robot berkaki enam secara fisik, juga dirancang suatu algoritma yang memungkinkan robot menjalankan misi mencari dan memadamkan api dalam maze. Pembuatan algoritma robot bertujuan agar robot dapat bernavigasi pada maze tertentu dan melakukan manuver tertentu pada kondisi tertentu. Pada penelusuran maze, robot akan menggunakan metode penelusuran dinding kiri. Robot menggunakan sensor ultrasonik sebagai sensor jarak, sensor Hamamatsu UVtron sebagai sensor api, sensor warna infrared ZX-03 sebagai pendeteksi warna lantai, pengontrol servo SSC32 sebagai pengontrol motor servo, dan pengontrol mikro ATMEGA128 sebagai pengontrol utama.

Dari seluruh percobaan yang dilakukan, persentase keberhasilan dalam bernavigasi dalam ruangan serta mencari dan memadamkan api mencapai antara 60% hingga 100%. Kegagalan dalam bernavigasi terutama disebabkan oleh tersangkutnya bagian dari badan robot pada dinding maze, kesalahan pembacaan sensor, serta kegagalan mendeteksi adanya rintangan.

Kata Kunci : Robot Berkaki Enam, Pengontrol Mikro ATMEGA128, Pengontrol Servo SSC32, Sensor Jarak Ultrasonik, Sensor UVtron, Sensor Foto Reflektor, Motor Servo.


(2)

ii

FIRE FIGHTING HEXAPOD ROBOT REALIZATION FOR KRCI COMPETITION 2011 LEGGED DIVISION

Composed by : Petrus T Handoko

0722057

Electrical Engineering, Maranatha Christian University, Jl. Prof. Drg. Suria Sumantri, MPH no.65, Bandung, Indonesia,

Email : yokichi@ymail.com ABSTRACT

In designing and realizing a legged robot, we must pay attention to the acceleration and stability factor of the robot while doing certain maneuver. In this KRCI competition which the mission is to find and extinguish the fire which located randomly throughout a maze, we need a robot that can move fast in locating fire and also stable enough to maintain it’s stance so that the robot can avoid any obstacles while navigating so that the robot can navigate in the maze smoothly without any problems. Because of that needs, we design a six legged robot or hexapod. The six legged robot was chosen because it has a better stability performance compared to the two legged or four legged robot. With this better stability performance, the robot is hoped to not get stability disturbance when the robot move faster.

Beside designing and realizing a six legged robot physically, we also need to design an algorithm so that the robot can locate and extinguish the fire in the maze. The making of the algorithm of the robot have an objective, that objective is that the robot can be navigated in the certain maze and can do certain maneuver at certain cases. While walking in the maze, the robot uses left wall follower algorithm method. The robot uses an ultrasonic sensor as distance sensor, Hamamatsu UVtron as fire sensor, ZX-03 infrared color sensor as floor color detector, SSC32 servo controller as a servo controller, and ATMEGA128 microcontroller as the main controller.

From the whole experiment which was conducted, percentage of the successful experiment in this case is the robot navigate in the room, locate and extinguish the fire is reaching 60% to 100%. Failure of the navigation is often caused by the body of the robot is stuck in the wall of the maze, sensor’s reading error, and failure to detect the obstacles.

Keywords : Six legged Robot, ATMEGA128 microcontroller, SSC servo controller, Ultrasonic sensor, UVtron sensor, Infrared color sensor, Servo Motor.


(3)

iii DAFTAR ISI

ABSTRAK ... i

ABSTRACT... ii

DAFTAR ISI ... iii

DAFTAR TABEL ... vi

DAFTAR GAMBAR ... viii

BAB I PENDAHULUAN ... 1

I.1 LATAR BELAKANG ... 1

I.2 IDENTIFIKASI MASALAH ... 1

I.3 TUJUAN ... 2

I.4 PEMBATASAN MASALAH ... 2

I.5 SPESIFIKASI ALAT ... 2

I.6 SISTEMATIKA PENULISAN ... 2

BAB II LANDASAN TEORI ... 4

II.1 KONTES ROBOT CERDAS INDONESIA ... 4

II.1.1 PANDUAN PERATURAN KRCI DIVISI SENIOR BERKAKI ... 5

II.1.1.1 LAPANGAN ... 5

II.1.1.2 LILIN ... 6

II.1.1.3 FURNITURE ... 7

II.1.1.4 SOUND DAMPER ... 7

II.1.1.5 CERMIN ... 8

II.1.1.6 UNEVEN FLOOR ... 9

II.2 PENGANTAR ROBOTIKA ... 10

II.2.1 KLASIFIKASI ROBOT BERDASARKAN MOBILITAS ... 10

II.2.2 METODA PERGERAKAN KAKI ... 10

II.3 ATMEGA 128 ... 11

II.4 SSC 32 ... 15

II.5 SENSOR JARAK ... 17

II.6 SENSOR UVTRON ... 20


(4)

iv

BAB III PERANCANGAN DAN REALISASI ... 25

III.1 PERANCANGAN SISTEM ROBOT BERKAKI ENAM ... 25

III.2 STRUKTUR ROBOT BERKAKI ENAM ... 26

III.2.1 SISTEM ELEKTRONIKA ROBOT ... 29

III.3 SENSOR ... 31

III.3.1 SENSOR PING ... 31

III.3.2 SENSOR UVTRON ... 32

III.3.3 SENSOR WARNA INFRARED... 33

III.3.4 SENSOR MERCURY LIMIT SWITCH ... 35

III.4 RANGKAIAN PENGONTROL ... 35

III.4.1 SKEMATIK PENGONTROL MIKRO ATMEGA 128 ... 35

III.4.2 SKEMATIK PENGONTROL SERVO SSC 32 ... 36

III.5 PERANCANGAN ALGORITMA ... 37

III.5.1 ALGORITMA GERAKAN DASAR ... 37

III.5.2 ALGORITMA NAVIGASI UMUM ... 42

BAB IV DATA PENGUJIAN DAN ANALISIS ... 47

IV.1 PENGUJIAN GERAKAN ROBOT ... 47

IV.1.1 PENGUJIAN BERJALAN LURUS ... 47

IV.1.1.1 PENGUJIAN JEDA ANTAR GERAKAN ... 47

IV.1.1.2 PENGUJIAN METODA BERJALAN ... 48

IV.1.2 PENGUJIAN GERAKAN BELOK ... 48

IV.1.3 PENGUJIAN MELEWATI UNEVEN FLOOR ... 49

IV.2 PENGUJIAN MENJELAJAHI RUANG ... 53

IV.2.1 PENGUJIAN DALAM RUANG 1 ... 53

IV.2.1.1 PENGUJIAN DENGAN KONFIGURASI FURNITURE ... 53

IV.2.1.2 PENGUJIAN DENGAN KONFIGURASI FURNITURE DAN HOME ... 55

IV.2.1.3 PENGUJIAN DENGAN KONFIGURASI FURNITURE DAN LILIN ... 59

IV.2.2 PENGUJIAN DALAM RUANG 2 ... 62

IV.2.2.1 PENGUJIAN DENGAN KONFIGURASI FURNITURE ... 62 IV.2.2.2 PENGUJIAN DENGAN KONFIGURASI FURNITURE DAN


(5)

v

HOME ... 65

IV.2.2.3 PENGUJIAN DENGAN KONFIGURASI FURNITURE DAN LILIN ... 67

IV.2.3 PENGUJIAN DALAM RUANG 3 ... 70

IV.2.3.1 PENGUJIAN DENGAN KONFIGURASI FURNITURE ... 71

IV.2.3.2 PENGUJIAN DENGAN KONFIGURASI FURNITURE DAN HOME ... 73

IV.2.3.3 PENGUJIAN DENGAN KONFIGURASI FURNITURE DAN LILIN ... 76

IV.2.4 PENGUJIAN DALAM RUANG 4 ... 79

IV.2.4.1 PENGUJIAN DENGAN KONFIGURASI FURNITURE ... 80

IV.2.4.2 PENGUJIAN DENGAN KONFIGURASI FURNITURE DAN HOME ... 81

IV.2.4.3 PENGUJIAN DENGAN KONFIGURASI FURNITURE DAN LILIN ... 83

IV.3 PENGUJIAN SELURUH MAZE ... 85

IV.4 KEGAGALAN NAVIGASI ... 86

BAB V SARAN DAN KESIMPULAN... 89

V.1 KESIMPULAN ... 89

V.2 SARAN ... 90 DAFTAR PUSTAKA

LAMPIRAN A FOTO ROBOT HEXAPOD

LAMPIRAN B PROGRAM PENGONTROL MIKRO ATMEGA128 LAMPIRAN C DATASHEET


(6)

vi

DAFTAR TABEL

Tabel 3.1 Tabel Pendeteksian Warna Lantai oleh Sensor Warna Infrared ... 34

Tabel 4.1 Tabel Hasil Pengujian Gerakan Maju ... 47

Tabel 4.2 Tabel Hasil Pengujian Metoda Gerakan Maju ... 48

Tabel 4.3 Hasil Pengujian Gerakan Belok Kiri ... 49

Tabel 4.4 Hasil Pengujian Gerakan Belok Kanan ... 49

Tabel 4.5 Hasil Pengujian Konfigurasi Single Kiri ... 50

Tabel 4.6 Hasil Pengujian Konfigurasi Single Kanan ... 50

Tabel 4.7 Hasil Pengujian Konfigurasi Double Kiri ... 51

Tabel 4.8 Hasil Pengujian Konfigurasi Double Kanan ... 51

Tabel 4.9 Hasil Pengujian Konfigurasi Double Kiri Kanan ... 52

Tabel 4.10 Hasil Pengujian Konfigurasi Double Kanan Kiri ... 52

Tabel 4.11 Hasil Pengujian Konfigurasi Ruang 1 Furniture 1 ... 54

Tabel 4.12 Hasil Pengujian Konfigurasi Ruang 1 Furniture 2 ... 54

Tabel 4.13 Hasil Pengujian Konfigurasi Ruang 1 Furniture 3 ... 55

Tabel 4.14 Hasil Pengujian Konfigurasi Ruang 1 Home 1 ... 56

Tabel 4.15 Hasil Pengujian Konfigurasi Ruang 1 Home 2 ... 56

Tabel 4.16 Hasil Pengujian Konfigurasi Ruang 1 Home 3 ... 57

Tabel 4.17 Hasil Pengujian Konfigurasi Ruang 1 Home 4 ... 58

Tabel 4.18 Hasil Pengujian Konfigurasi Ruang 1 Home 5 ... 58

Tabel 4.19 Hasil Pengujian Konfigurasi Ruang 1 Api 1 ... 59

Tabel 4.20 Hasil Pengujian Konfigurasi Ruang 1 Api 2 ... 60

Tabel 4.21 Hasil Pengujian Konfigurasi Ruang 1 Api 3 ... 60

Tabel 4.22 Hasil Pengujian Konfigurasi Ruang 1 Api 4 ... 61

Tabel 4.23 Hasil Pengujian Konfigurasi Ruang 1 Api 5 ... 61

Tabel 4.24 Hasil Pengujian Konfigurasi Ruang 2 Furniture 1 ... 63

Tabel 4.25 Hasil Pengujian Konfigurasi Ruang 2 Furniture 2 ... 64

Tabel 4.26 Hasil Pengujian Konfigurasi Ruang 2 Furniture 3 ... 64

Tabel 4.27 Hasil Pengujian Konfigurasi Ruang 2 Home 1 ... 65

Tabel 4.28 Hasil Pengujian Konfigurasi Ruang 2 Home 2 ... 66


(7)

vii

Tabel 4.30 Hasil Pengujian Konfigurasi Ruang 2 Home 4 ... 67

Tabel 4.31 Hasil Pengujian Konfigurasi Ruang 2 Api 1 ... 68

Tabel 4.32 Hasil Pengujian Konfigurasi Ruang 2 Api 2 ... 69

Tabel 4.33 Hasil Pengujian Konfigurasi Ruang 2 Api 3 ... 69

Tabel 4.34 Hasil Pengujian Konfigurasi Ruang 2 Api 4 ... 70

Tabel 4.35 Hasil Pengujian Konfigurasi Ruang 3 Furniture 1 ... 71

Tabel 4.36 Hasil Pengujian Konfigurasi Ruang 3 Furniture 2 ... 72

Tabel 4.37 Hasil Pengujian Konfigurasi Ruang 3 Furniture 3 ... 73

Tabel 4.38 Hasil Pengujian Konfigurasi Ruang 3 Home 1 ... 74

Tabel 4.39 Hasil Pengujian Konfigurasi Ruang 3 Home 2 ... 74

Tabel 4.40 Hasil Pengujian Konfigurasi Ruang 3 Home 3 ... 75

Tabel 4.41 Hasil Pengujian Konfigurasi Ruang 3 Home 4 ... 75

Tabel 4.42 Hasil Pengujian Konfigurasi Ruang 3 Api 1 ... 76

Tabel 4.43 Hasil Pengujian Konfigurasi Ruang 3 Api 2 ... 77

Tabel 4.44 Hasil Pengujian Konfigurasi Ruang 3 Api 3 ... 78

Tabel 4.45 Hasil Pengujian Konfigurasi Ruang 3 Api 4 ... 78

Tabel 4.46 Hasil Pengujian Konfigurasi Ruang 3 Api 5 ... 79

Tabel 4.47 Hasil Pengujian Konfigurasi Ruang 4 Furniture 1 ... 80

Tabel 4.48 Hasil Pengujian Konfigurasi Ruang 4 Furniture 2 ... 81

Tabel 4.49 Hasil Pengujian Konfigurasi Ruang 4 Home 1 ... 82

Tabel 4.50 Hasil Pengujian Konfigurasi Ruang 4 Home 2 ... 82

Tabel 4.51 Hasil Pengujian Konfigurasi Ruang 4 Home 3 ... 83

Tabel 4.52 Hasil Pengujian Konfigurasi Ruang 4 Api 1 ... 83

Tabel 4.53 Hasil Pengujian Konfigurasi Ruang 4 Api 2 ... 84

Tabel 4.54 Hasil Pengujian Konfigurasi Ruang 4 Api 3 ... 84


(8)

viii

DAFTAR GAMBAR

Gambar 2.1 Bentuk dan Ukuran Lapangan Dilihat dari Atas ... 5

Gambar 2.2 Bentuk dan Ukuran Lapangan Dilihat dari Samping ... 6

Gambar 2.3 Bentuk dan Ukuran Lilin ... 6

Gambar 2.4 Bentuk dan Ukuran Furniture ... 7

Gambar 2.5 Bentuk dan Ukuran Sound Damper... 8

Gambar 2.6 Bentuk dan Ukuran Cermin ... 9

Gambar 2.7 Bentuk dan Ukuran Uneven Floor ... 10

Gambar 2.8 Ilustrasi Pergerakan Kaki Hexapod dalam Berbagai Metode ... 11

Gambar 2.9 Konfigurasi Kaki ATMEGA 8 ... 14

Gambar 2.10 Diagram Blok ATMEGA 8 ... 15

Gambar 2.11 Rangkaian Pengontrol Servo SSC32 ... 16

Gambar 2.12 Dimensi Sensor PING ... 18

Gambar 2.13 Ilustrasi Cara Kerja Sensor PING ... 18

Gambar 2.14 Diagram Waktu Sensor PING ... 19

Gambar 2.15 Posisi Objek terhadap Sensor PING ... 20

Gambar 2.16 UVtron Bulb ... 20

Gambar 2.17 Dimensi Sensor UVtron ... 21

Gambar 2.18 Skematik Rangkaian Sensor UVtron ... 22

Gambar 2.19 Bentuk Sensor TCRT5000 ... 23

Gambar 2.20 Contoh Penggunaan Sensor TCRT5000 ... 24

Gambar 2.21 Rangkaian Sensor Warna Infrared ... 24

Gambar 3.1 Diagram Blok Pergerakan Robot Hexapod ... 26

Gambar 3.2 Tampak Depan ... 27

Gambar 3.3 Tampak Samping... 28

Gambar 3.4 Tampak Atas ... 28

Gambar 3.5 Blok Sistem Elektronika Robot ... 30

Gambar 3.6 Alokasi Kaki Sensor PING ... 31

Gambar 3.7 Diagram Alir Penggunaan Sensor PING ... 32

Gambar 3.8 Alokasi Kaki Sensor UVtron ... 33


(9)

ix

Gambar 3.10 Alokasi Kaki Sensor Mercury Limit Switch ... 35

Gambar 3.11 Skematik Pengontrol Mikro 128 ... 36

Gambar 3.12 Diagram Alir Algoritma Gerakan Maju ... 38

Gambar 3.13 Ilustrasi Algoritma Gerakan Maju... 39

Gambar 3.14 Diagram Alir Algoritma Gerakan Belok Kiri ... 39

Gambar 3.15 Ilustrasi Algoritma Gerakan Belok Kiri ... 40

Gambar 3.16 Diagram Alir Algoritma Gerakan Belok Kanan ... 40

Gambar 3.17 Ilustrasi Algoritma Gerakan Belok Kanan ... 41

Gambar 3.18 Diagram Alir Algoritma Gerakan Melewati Uneven Floor ... 42

Gambar 3.19 Diagram Alir Algoritma Navigasi Secara Umum ... 43

Gambar 3.20 Diagram Alir Algoritma Subrutin Steady ... 43

Gambar 3.21 Diagram Alir Algoritma Subrutin Cari Kiri ... 44

Gambar 3.22 Diagram Alir Algoritma Subrutin Jalan ... 44

Gambar 3.23 Diagram Alir Algoritma Subrutin Cek Lantai ... 45

Gambar 3.24 Diagram Alir Algoritma Subrutin PING ... 45

Gambar 3.25 Diagram Alir Algoritma Subrutin Setelah Kiri ... 46

Gambar 3.26 Diagram Alir Algoritma Subrutin Matikan Api ... 46

Gambar 4.1 Ilustrasi Konfigurasi Single Kiri ... 50

Gambar 4.2 Ilustrasi Konfigurasi Single Kanan ... 50

Gambar 4.3 Ilustrasi Konfigurasi Double Kiri ... 51

Gambar 4.4 Ilustrasi Konfigurasi Double Kanan ... 51

Gambar 4.5 Ilustrasi Konfigurasi Double Kiri Kanan ... 52

Gambar 4.6 Ilustrasi Konfigurasi Double Kanan Kiri ... 52

Gambar 4.7 Contoh Konfigurasi Ruang 1 ... 53

Gambar 4.8 Konfigurasi Ruang 1 Furniture 1 ... 54

Gambar 4.9 Konfigurasi Ruang 1 Furniture 2 ... 54

Gambar 4.10 Konfigurasi Ruang 1 Furniture 3 ... 55

Gambar 4.11 Konfigurasi Ruang 1 Home 1 ... 56

Gambar 4.12 Konfigurasi Ruang 1 Home 2 ... 56

Gambar 4.13 Konfigurasi Ruang 1 Home 3 ... 57

Gambar 4.14 Konfigurasi Ruang 1 Home 4 ... 57


(10)

x

Gambar 4.16 Konfigurasi Ruang 1 Api 1 ... 59

Gambar 4.17 Konfigurasi Ruang 1 Api 2 ... 59

Gambar 4.18 Konfigurasi Ruang 1 Api 3 ... 60

Gambar 4.19 Konfigurasi Ruang 1 Api 4 ... 61

Gambar 4.20 Konfigurasi Ruang 1 Api 5 ... 61

Gambar 4.21 Contoh Konfigurasi Ruang 2 ... 62

Gambar 4.22 Konfigurasi Ruang 2 Furniture 1 ... 63

Gambar 4.23 Konfigurasi Ruang 2 Furniture 2 ... 63

Gambar 4.24 Konfigurasi Ruang 2 Furniture 3 ... 64

Gambar 4.25 Konfigurasi Ruang 2 Home 1 ... 65

Gambar 4.26 Konfigurasi Ruang 2 Home 2 ... 65

Gambar 4.27 Konfigurasi Ruang 2 Home 3 ... 66

Gambar 4.28 Konfigurasi Ruang 2 Home 4 ... 67

Gambar 4.29 Konfigurasi Ruang 2 Api 1 ... 68

Gambar 4.30 Konfigurasi Ruang 2 Api 2 ... 68

Gambar 4.31 Konfigurasi Ruang 2 Api 3 ... 69

Gambar 4.32 Konfigurasi Ruang 2 Api 4 ... 70

Gambar 4.33 Contoh Konfigurasi Ruang 3 ... 71

Gambar 4.34 Konfigurasi Ruang 3 Furniture 1 ... 71

Gambar 4.35 Konfigurasi Ruang 3 Furniture 2 ... 72

Gambar 4.36 Konfigurasi Ruang 3 Furniture 3 ... 72

Gambar 4.37 Konfigurasi Ruang 3 Home 1 ... 73

Gambar 4.38 Konfigurasi Ruang 3 Home 2 ... 74

Gambar 4.39 Konfigurasi Ruang 3 Home 3 ... 75

Gambar 4.40 Konfigurasi Ruang 3 Home 4 ... 75

Gambar 4.41 Konfigurasi Ruang 3 Api 1 ... 76

Gambar 4.42 Konfigurasi Ruang 3 Api 2 ... 77

Gambar 4.43 Konfigurasi Ruang 3 Api 3 ... 77

Gambar 4.44 Konfigurasi Ruang 3 Api 4 ... 78

Gambar 4.45 Konfigurasi Ruang 3 Api 5 ... 79

Gambar 4.46 Contoh Konfigurasi Ruang 4 ... 80


(11)

xi

Gambar 4.48 Konfigurasi Ruang 4 Furniture 2 ... 81

Gambar 4.49 Konfigurasi Ruang 4 Home 1 ... 81

Gambar 4.50 Konfigurasi Ruang 4 Home 2 ... 82

Gambar 4.51 Konfigurasi Ruang 4 Home 3 ... 82

Gambar 4.52 Konfigurasi Ruang 4 Api 1 ... 83

Gambar 4.53 Konfigurasi Ruang 4 Api 2 ... 84

Gambar 4.54 Konfigurasi Ruang 4 Api 3 ... 84

Gambar 4.55 Konfigurasi Pengujian Seluruh Maze ... 85

Gambar 4.56 Kegagalan Navigasi 1 ... 86

Gambar 4.57 Kegagalan Navigasi 2 ... 87

Gambar 4.58 Kegagalan Navigasi 3 ... 87


(12)

A-1

LAMPIRAN A


(13)

A-2

TAMPAK DEPAN

TAMPAK BELAKANG


(14)

A-3 TAMPAK KIRI

TAMPAK KANAN


(15)

A-4

LAMPIRAN B


(16)

A-5

PROGRAM UTAMA

/***************************************************** This program was produced by the

CodeWizardAVR V1.25.3 Standard Automatic Program Generator

© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Version : Date : 3/30/2011

Author : F4CG Company : F4CG Comments:

Chip type : ATmega128 Program type : Application Clock frequency : 11.059200 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 1024

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

#include <mega128.h> #include <delay.h> #include <stdio.h>

#define ADC_VREF_TYPE 0x40

// Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Start the AD conversion

ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x1B ;PORTA #endasm

#include <lcd.h>

// Declare your global variables here int x0,x1,x2,x3,x4,t;

int c,a,k,z,adc1,adc2,n,m,p,b,q; // daftar variable :

// c = while utama // a = pembatas ping // k = sensor mercury // z =

// adc1 = nilai adc sensor tengah // adc2 = nilai adc sensor depan // n =

// m =


(17)

A-6 // b = pembatas loop kiri kosong

unsigned char jrk[16]; unsigned char jrk1[16];

char text[32];

// External Interrupt 4 service routine interrupt [EXT_INT4] void ext_int4_isr(void) {

// Place your code here p=1;

}

// External Interrupt 7 service routine interrupt [EXT_INT7] void ext_int7_isr(void) {

// Place your code here k=1;

}

#include "arraycoy.c"

void main(void) {

// Declare your local variables here

// Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;

DDRB=0x00;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;

DDRD=0x00;

// Port E initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTE=0x90;

DDRE=0x00;

// Port F initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTF=0x00;


(18)

A-7 // Port G initialization

// Func4=In Func3=In Func2=In Func1=In Func0=In // State4=T State3=T State2=T State1=T State0=T PORTG=0x00;

DDRG=0x1F;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected ASSR=0x00;

TCCR0=0x00; TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // OC1C output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off // Compare C Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; OCR1CH=0x00; OCR1CL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected TCCR2=0x00;

TCNT2=0x00; OCR2=0x00;

// Timer/Counter 3 initialization // Clock source: System Clock // Clock value: Timer 3 Stopped // Mode: Normal top=FFFFh // Noise Canceler: Off

// Input Capture on Falling Edge // OC3A output: Discon. // OC3B output: Discon. // OC3C output: Discon.

// Timer 3 Overflow Interrupt: Off // Input Capture Interrupt: Off


(19)

A-8 // Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off // Compare C Match Interrupt: Off TCCR3A=0x00; TCCR3B=0x00; TCNT3H=0x00; TCNT3L=0x00; ICR3H=0x00; ICR3L=0x00; OCR3AH=0x00; OCR3AL=0x00; OCR3BH=0x00; OCR3BL=0x00; OCR3CH=0x00; OCR3CL=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off // INT3: Off // INT4: Off // INT5: Off // INT6: Off // INT7: Off EICRA=0x00; EICRB=0xC0; EIMSK=0x90; EIFR=0x90;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

ETIMSK=0x00;

// USART1 initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART1 Receiver: On

// USART1 Transmitter: On // USART1 Mode: Asynchronous // USART1 Baud rate: 115200 UCSR1A=0x00;

UCSR1B=0x18; UCSR1C=0x06; UBRR1H=0x00; UBRR1L=0x05;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AREF pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;

// LCD module initialization lcd_init(16);

sprintf(text,"#31 P600 T1000 \r"); usart1Send(text);


(20)

A-9 b=0; aktif(); #asm ("sei") while (1) { while (c==0) { z=0;p=0; maju(); if (k==1) { manjat(); manjat(); } pingdisp(); while ((d1==1)||(d3==1)&&(PINC.5==0)) { steady(); extinguisher(); } while (x0<=5) { muterkanan(); muterkanan(); pingdisp(); if (x1<5)

{ muterkanan(); } } if (x2>4) { if (x2>9) { maju(); muterkiri(); muterkiri(); c=1; } rapatkiri(); }

if (x3<9) //coba r4 { z=1; } if (z==1) { if (x0>17) { if (x3>=9) { muterkanan(); muterkanan(); do

{ maju(); } while (x2>=9); c=3; } } } } while (c==1)


(21)

A-10 {

maju(); if (k==1) { manjat(); manjat(); } pingdisp(); if (x2<=9) { c=0; //z=0; } } }; } SUBPROGRAM

#include <string.h> /*important coyyy !!!*/

#define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7

#define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR)

#define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)

// Get a character from the USART1 Receiver #pragma used+ char getchar1(void) { char status,data; while (1) {

while (((status=UCSR1A) & RX_COMPLETE)==0); data=UDR1;

if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) return data;

}; }

#pragma used-

// Write a character to the USART1 Transmitter #pragma used+

void putchar1(char c) {

while ((UCSR1A & DATA_REGISTER_EMPTY)==0); UDR1=c;

}

#pragma used-

int j,d1,d2,d3; // j = buat servo

// d1,d2,d3 = sensor putih (ADC)


(22)

A-11 {

int i = 0;

for(i = 0; i < strlen(text);i++) {

putchar1(text[i]); }

}

void kirim_tes(flash int * posisi) //kirim lama {

int i = 0; char text[32]; for (i=0;i<18;i++) {

sprintf(text,"#%d P%d T1000 \r",i,posisi[i]); usart1Send(text);

}

delay_ms(1000); }

void kirim(flash int * posisi) {

int i = 0; char text[32]; for (i=0;i<18;i++) {

sprintf(text,"#%d P%d T100 \r",i,posisi[i]); usart1Send(text);

}

delay_ms(100); }

void kirim_tgh(flash int * posisi) {

int i = 0; char text[32]; for (i=0;i<18;i++) {

sprintf(text,"#%d P%d T75 \r",i,posisi[i]); usart1Send(text);

}

delay_ms(75); }

void kirim_dolphin(flash int * posisi) //bisa 300 seh tp biar ga cpt rusak aja {

int i = 0; char text[32]; for (i=0;i<18;i++) {

sprintf(text,"#%d P%d T500 \r",i,posisi[i]); usart1Send(text); } delay_ms(500); } void pingdisp() {

// lcd_clear();

a=0; t=0; DDRC.0=1; PORTC.0=1;


(23)

A-12 delay_us(5); PORTC.0=0; DDRC.0=0; PORTC.0=1; delay_us(750);

while((PINC.0==0) && (a<5000)) {

a++; delay_us(1); }

while((PINC.0==1) && (t<5000)) { t++; delay_us(1); } x0=(t/29.034); delay_ms(1); t=0; a=0; DDRC.1=1; PORTC.1=1; delay_us(5); PORTC.1=0; DDRC.1=0; PORTC.1=1; delay_us(750);

while((PINC.1==0) && (a<5000)) {

a++; delay_us(1); }

while((PINC.1==1) && (t<5000)) { t++; delay_us(1); } x1=(t/29.034); delay_ms(1); t=0; a=0; DDRC.2=1; PORTC.2=1; delay_us(5); PORTC.2=0; DDRC.2=0; PORTC.2=1; delay_us(750);

while((PINC.2==0) && (a<5000)) {

a++; delay_us(1); }

while((PINC.2==1) && (t<5000)) { t++; delay_us(1); } x2=(t/29.034); delay_ms(1); a=0; t=0;


(24)

A-13 DDRC.3=1; PORTC.3=1; delay_us(5); PORTC.3=0; DDRC.3=0; PORTC.3=1; delay_us(750);

while((PINC.3==0) && (a<5000)) {

a++; delay_us(1); }

while((PINC.3==1) && (t<5000)) { t++; delay_us(1); } x3=(t/29.034); delay_ms(1);

adc1=read_adc(2); //warna karpet abu 300-400 adc, putih 900-1000, item 0-200 adc2=read_adc(3);

if (adc1>800) { d1=1; } if (adc1<=800) { d1=0; } if (adc2>800) { d3=1; } if (adc2<=800) { d3=0; }

sprintf(jrk,"dpn %3d mrg %3d",x0,x1); sprintf(jrk1,"kr %3d kn %3d",x2,x3); lcd_gotoxy(0,0);lcd_puts(jrk); lcd_gotoxy(0,1);lcd_puts(jrk1);

}

flash int

std[18]={1560,1519,2071,1351,1545,1361,1549,1590,1088,1274,1350,1787,1390,1530,1678,1446,1361,103 6};

void steady() { kirim(std); }

flash int

stdx[18]={1560,1519,1738,1032,1365,1361,1549,1590,755,1474,1350,1454,1390,1530,1678,1646,1361,703 };

void steadyx() { kirim(stdx); }

//langkah 30 angkat 45 (BERES !!!!! YIHAAAAAAAAAA) flash int mj[6][18]=

{ {1560,1519,1738,732,865,1361,1549,1590,755,1774,1850,1454,1390,1530,1678,1946,1861,703}, {1360,1519,2404,732,865,1361,1349,1590,1421,1774,1850,2120,1590,1530,1678,1946,1861,1369}, {1360,1519,2404,1232,1365,1361,1349,1590,1421,1274,1350,2120,1590,1530,1678,1446,1361,1369}, {1060,1019,2404,1232,1365,1361,1049,1090,1421,1274,1350,2120,1890,2030,1678,1446,1361,1369}, {1060,1019,1738,1032,1365,1361,1049,1090,755,1474,1350,1454,1890,2030,1678,1646,1361,703}, {1560,1519,1738,1032,1365,1361,1549,1590,755,1474,1350,1454,1390,1530,1678,1646,1361,703} }; void maju() { for(j=0;j<6;j++)


(25)

A-14 {

kirim_tgh(mj[j]); }

}

flash int mdr[6][18]= { {1060,1019,1738,1032,1365,1361,1049,1090,755,1474,1350,1454,1890,2030,1678,1646,1361,703}, {1060,1019,2404,1232,1365,1361,1049,1090,1421,1274,1350,2120,1890,2030,1678,1446,1361,1369}, {1360,1519,2404,1232,1365,1361,1349,1590,1421,1274,1350,2120,1590,1530,1678,1446,1361,1369}, {1360,1519,2404,732,865,1361,1349,1590,1421,1774,1850,2120,1590,1530,1678,1946,1861,1369}, {1560,1519,1738,732,865,1361,1549,1590,755,1774,1850,1454,1390,1530,1678,1946,1861,703}, {1560,1519,1738,1032,1365,1361,1549,1590,755,1474,1350,1454,1390,1530,1678,1646,1361,703} }; void mundur() { for(j=0;j<6;j++) { kirim_tgh(mdr[j]); } } void majutest() { for(j=0;j<6;j++) { kirim_tes(mj[j]); } }

flash int rptkr[6][18]= { {1560,1519,1738,732,865,1361,1549,1590,755,1774,1850,1454,1390,1530,1678,1946,1861,703}, {1360,1519,2404,732,865,1361,1349,1590,1421,1774,1850,2120,1190,1530,1678,1946,1861,1369}, {1360,1519,2404,1232,1365,1361,1349,1590,1421,1274,1350,2120,1190,1530,1678,1446,1361,1369}, {1060,1019,2404,1232,1365,1361,1049,1090,1421,1274,1350,2120,1890,2030,1678,1446,1361,1369}, {1060,1019,1738,1032,1365,1361,1049,1090,755,1074,1350,1454,1890,2030,1678,1246,1361,703}, {1560,1519,1738,1032,1365,1361,1549,1590,755,1074,1350,1454,1390,1530,1678,1246,1361,703} }; void rapatkiri() { for (j=0;j<6;j++) { kirim_tgh(rptkr[j]); } }

//muter kanan angkat 30 flash int mtrkn[10][18]= { {1560,1519,1572,1351,1545,1361,1549,1590,1467,1274,1350,1289,1390,1530,1678,1446,1361,1487}, {1227,1186,1572,1351,1545,1361,1216,1257,1467,1274,1350,1289,1723,1863,1678,1446,1361,1487}, {1227,1186,1150,1351,1545,1361,1216,1257,1096,1274,1350,1787,1723,1863,1678,1446,1361,1966}, {1560,1519,1150,1351,1545,1361,1549,1590,1096,1274,1350,1787,1390,1530,1678,1446,1361,1966}, {1560,1519,1150,1018,1212,1361,1549,1590,1096,1607,1683,1787,1390,1530,1678,1779,1694,1966}, {1560,1519,2096,1018,1212,1361,1549,1590,2061,1607,1683,901,1390,1530,1678,1779,1694,1061}, {1560,1519,2096,1351,1545,1361,1549,1590,2061,1274,1350,901,1390,1530,1678,1446,1361,1061}, {1227,1186,2096,1351,1545,1361,1216,1257,2061,1274,1350,901,1723,1863,1678,1446,1361,1061}, {1227,1186,1572,1351,1545,1361,1216,1257,1467,1274,1350,1289,1723,1863,1678,1446,1361,1487}, {1560,1519,1572,1351,1545,1361,1549,1590,1467,1274,1350,1289,1390,1530,1678,1446,1361,1487} }; void muterkanan() { for(j=0;j<10;j++)


(26)

A-15 {

kirim(mtrkn[j]); }

}

//muter kiri angkat 30 flash int mtrkr[10][18]= { {1560,1519,1572,1351,1545,1361,1549,1590,1467,1274,1350,1289,1390,1530,1678,1446,1361,1487}, {1560,1519,1572,1018,1212,1361,1549,1590,1467,1607,1683,1289,1390,1530,1678,1779,1694,1487}, {1560,1519,1150,1018,1212,1361,1549,1590,1096,1607,1683,1787,1390,1530,1678,1779,1694,1966}, {1560,1519,1150,1351,1545,1361,1549,1590,1096,1274,1350,1787,1390,1530,1678,1446,1361,1966}, {1227,1186,1150,1351,1545,1361,1216,1257,1096,1274,1350,1787,1723,1863,1678,1446,1361,1966}, {1227,1186,2096,1351,1545,1361,1216,1257,2061,1274,1350,901,1723,1863,1678,1446,1361,1061}, {1560,1519,2096,1351,1545,1361,1549,1590,2061,1274,1350,901,1390,1530,1678,1446,1361,1061}, {1560,1519,2096,1018,1212,1361,1549,1590,2061,1607,1683,901,1390,1530,1678,1779,1694,1061}, {1560,1519,1572,1018,1212,1361,1549,1590,1467,1607,1683,1289,1390,1530,1678,1779,1694,1487}, {1560,1519,1572,1351,1545,1361,1549,1590,1467,1274,1350,1289,1390,1530,1678,1446,1361,1487} }; void muterkiri() { for(j=0;j<10;j++) { kirim(mtrkr[j]); } } ////manjat

flash int mjt[7][18]= { {1560,1519,1150,1351,1545,1028,1549,1590,2061,1274,1350,901,1390,1530,2011,1446,1361,1966}, {727,686,1150,1851,2045,1028,1049,1090,2061,1774,1850,901,890,1030,2011,2279,2194,1966}, {2060,1519,1150,1351,1545,1694,2049,1590,2061,774,1350,901,1390,1530,1345,946,1361,1966}, {1560,1519,1150,1851,2045,1694,1049,1090,2061,1774,1850,901,890,1030,1345,1446,1361,1966}, {1560,1519,1150,851,1045,1694,1049,1590,2061,1774,1350,901,1890,2030,1345,1446,1361,1966}, {2060,2019,1150,851,1045,1694,2049,1590,2061,774,1350,901,1890,2030,1345,946,861,1966}, {2060,2019,1150,851,1045,1028,2049,1590,2061,774,1350,901,1890,2030,2011,946,861,1966} }; void manjat() { for(j=0;j<7;j++) { kirim_dolphin(mjt[j]); } k=0; }

flash int gsrkr[6][18]= { {1560,1519,2071,732,865,1361,1549,1590,1088,1774,1850,1787,1390,1530,1678,1946,1861,1036}, {1360,1519,2071,732,865,1361,1349,1590,1088,1774,1850,1787,1190,1530,1678,1946,1861,1036}, {1360,1519,2071,1232,1365,1361,1349,1590,1088,1274,1350,1787,1190,1530,1678,1446,1361,1036}, {1060,1019,2071,1232,1365,1361,1049,1090,1088,1274,1350,1787,1890,2030,1678,1446,1361,1036}, {1060,1019,2071,1032,1365,1361,1049,1090,1088,1074,1350,1787,1890,2030,1678,1246,1361,1036}, {1560,1519,2071,1032,1365,1361,1549,1590,1088,1074,1350,1787,1390,1530,1678,1246,1361,1036} }; void geserkiri() { for (j=0;j<6;j++) { kirim_tgh(gsrkr[j]); } }


(27)

A-16 flash int gsrkn[6][18]=

{ {1560,1519,2071,732,865,1361,1549,1590,1088,1774,1850,1787,1390,1530,1678,1946,1861,1036}, {1760,1519,2071,732,865,1361,1749,1590,1088,1774,1850,1787,1590,1530,1678,1946,1861,1036}, {1760,1519,2071,1232,1365,1361,1749,1590,1088,1274,1350,1787,1590,1530,1678,1446,1361,1036}, {1060,1019,2071,1232,1365,1361,1049,1090,1088,1274,1350,1787,1890,2030,1678,1446,1361,1036}, {1060,1019,2071,1432,1365,1361,1049,1090,1088,1474,1350,1787,1890,2030,1678,1646,1361,1036}, {1560,1519,2071,1432,1365,1361,1549,1590,1088,1474,1350,1787,1390,1530,1678,1646,1361,1036} }; void geserkanan() { for (j=0;j<6;j++) { kirim_tgh(gsrkn[j]); } } void extinguisher() {

sprintf(text,"#31 P1379 T500 \r"); usart1Send(text);

delay_ms(600); PORTG=0x11;

sprintf(text,"#31 P782 T2000 \r"); usart1Send(text);

delay_ms(2000);

sprintf(text,"#31 P1907 T3000 \r"); usart1Send(text);

delay_ms(3000);

sprintf(text,"#31 P1379 T2000 \r"); usart1Send(text);

delay_ms(2000); PORTG=0x10; delay_ms(100);

sprintf(text,"#31 P600 T1000 \r"); usart1Send(text); delay_ms(1000); } void aktif() { ulang:

if(PINF.7==1 & PINF.6==0 & PINF.5==0) {

while(PINF.7==1 & PINF.6==0 & PINF.5==0){delay_us(2);} }

else {

goto ulang; }

if(PINF.7==0 & PINF.6==1 & PINF.5==0) {

while(PINF.7==0 & PINF.6==1 & PINF.5==0) {delay_us(2);} if(PINF.7==1 & PINF.6==1 & PINF.5==0)

{

while(PINF.7==1 & PINF.6==1 & PINF.5==0) {delay_us(2);} if(PINF.7==0 & PINF.6==0 & PINF.5==1)

{

while(PINF.7==0 & PINF.6==0 & PINF.5==1) {delay_us(2);} goto lanjut;

} else {


(28)

A-17 goto ulang; } } else { goto ulang; } } else { goto ulang; } lanjut: pingdisp(); while (x2>5) { muterkiri(); pingdisp(); } c=0; } void scankanan() { if (x2<9) { if (x3<9) { if((300<=adc1<=400)&&(300<=adc2<=400)) { n=1; }

} } maju(); maju(); if (x2<9) { if (x3<9) { if((300<=adc1<=400)&&(300<=adc2<=400)) { if (n==1) { n=2; } } } } if ((n==2)&&(x3>=9)) { muterkanan(); muterkanan(); do

{ maju(); } while (x2>=9); c=3; } }


(29)

A-18

LAMPIRAN C

DATASHEET

SENSOR JARAK ULTRASONIK PING ... C-1

SENSOR API HAMAMATSU UVTRON ... C-7

SENSOR WARNA INFRARED TCRT5000 ... C-11


(30)

A-19


(31)

(32)

(33)

(34)

(35)

(36)

A-25


(37)

(38)

(39)

(40)

A-29


(41)

(42)

(43)

(44)

(45)

(46)

(47)

1

BAB I PENDAHULUAN

Bab ini akan membahas mengenai latar belakang beserta masalah dan tujuan dari pembuatan robot. Bab ini juga berisi mengenai spesifikasi dari robot, serta keseluruhan isi laporan.

I.1 LATAR BELAKANG

Dengan makin maraknya serta ketatnya kompetisi robot yang diadakan oleh dirjen pendidikan dari tahun ke tahun khususnya pada kategori KRCI divisi berkaki, maka diperlukan adanya peningkatan daya saing robot agar dapat mampu bersaing dalam kompetisi tersebut. Langkah nyata dalam peningkatan daya saing robot tersebut ialah dengan membuat robot dengan jenis hexapod atau robot berkaki enam.

Perancangan robot berjenis hexapod pada kompetisi lomba KRCI divisi berkaki ini bertujuan agar robot yang dirancang dapat bergerak lebih cepat dan memiliki derajat pergerakkan yang lebih banyak dibandingkan dengan penggunaan robot berjenis biped dan robot berkaki empat.

Dengan perancangan robot berjenis hexapod tersebut, maka diharapkan robot dapat menyelesaikan lomba dengan mengitari maze, mencari api, memadamkan api, dan kembali ke home dengan waktu yang lebih singkat. Dengan demikian maka nilai yang diperoleh pun akan semakin besar, dan memperbesar peluang memenangkan kompetisi tersebut.

I.2 PERUMUSAN MASALAH

Dalam Tugas Akhir ini terdapat beberapa rumusan masalah yaitu:

1. Bagaimana menghasilkan gerakan manuver dasar pada robot hexapod menggunakan kombinasi motor servo ?

2. Bagaimana robot hexapod dapat menghindari rintangan ? 3. Bagaimana robot hexapod dapat melewati uneven floor ?

4. Bagaimana robot dapat memadamkan api dengan waktu kurang dari 5 menit dan kembali ke home dalam waktu kurang dari 2 menit ?


(48)

2

I.3 TUJUAN

Tujuan dari Tugas Akhir ini adalah membuat robot berkaki enam untuk KRCI 2011 bagian struktur, cara bergerak, mencari dan memadamkan api.

I.4 PEMBATASAN MASALAH

Mengingat luasnya masalah yang dapat dilakukan mengenai perancangan robot berkaki enam, maka untuk menyederhanakan permasalahan, laporan Tugas Akhir ini dibatasi dengan batasan sebagai berikut:

1. Aturan dan kelengkapan maze mengacu pada ketentuan lomba KRCI 2011 divisi berkaki.

2. Pengujian dilakukan secara terpisah di setiap ruangan.

3. Seluruh konfigurasi di setiap ruangan selalu terdapat furniture.

4. Pengujian keseluruhan maze dengan konfigurasi lengkap dilakukan dalam satu macam konfigurasi.

I.5 SPESIFIKASI ALAT

Robot yang dirancang merupakan robot berjenis hexapod dengan spesifikasi:

1. Berjalan dengan 6 kaki yang masing-masing tersusun atas 6 buah motor servo.

2. Menelusuri maze dengan algoritma left wall follower dan mencari keberadaan api.

3. Dapat mengukur jarak antara 3 cm sampai 260 cm.

4. Dapat mendeteksi keberadaan api pada jarak 1 meter dengan menggunakan sensor hamamatsu UVtron.

5. Dapat melewati uneven floor.

I.6 SISTEMATIKA PENULISAN


(49)

3

Bab I PENDAHULAN

Bab ini membahas mengenai latar belakang, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan.

Bab II LANDASAN TEORI

Bab ini membahas mengenai teori yang akan digunakan dalam pembuatan robot berkaki enam dengan menggunakan rangkaian pengontrol ATmega128 dan peripheral interface berupa sensor dan motor servo.

Bab III PERANCANGAN DAN REALISASI

Bab ini membahas mengenai perancangan struktur robot, posisi sensor dan motor servo, serta algoritma.

Bab IV DATA PENGAMATAN DAN ANALISIS Bab ini membahas mengenai kinerja dari robot. Bab V KESIMPULAN DAN SARAN

Bab ini membahas mengenai kesimpulan dari pembuatan robot berkaki enam dan saran yang diperlukan untuk perkembangan lebih lanjut.


(50)

89 BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari tugas akhir dan saran yang diperlukan untuk pengembangan robot selanjutnya.

V.1 KESIMPULAN

Dari pengujian yang dilakukan terhadap robot, dapat diambil kesimpulan sebagai berikut:

1. Untuk menghasilkan gerakan navigasi dasar pada robot, robot berjalan dengan metoda tripod gait. Dengan metoda ini, robot dapat berjalan lurus dengan kecepatan 12,28 cm/s dan dapat berbelok 90° dalam waktu 2 – 3 detik.

2. Robot dapat menghindari rintangan dalam hal ini furniture dengan memasang sensor jarak PING di bagian depan robot. Secara umum keberhasilan robot menghindari rintangan dan dapat keluar dari ruang untuk berbagi konfigurasi ruang sebesar 77,15%, kegagalan menghindari rintangan disebabkan oleh kegagalan deteksi oleh sensor PING.

3. Robot dapat melewati uneven floor dengan memasang limit switch dengan bahan air raksa yang berfungsi sebagai pendeteksi kemiringan. Secara umum keberhasilan robot melewati uneven floor dengan berbagai konfigurasi sebesar 80%.

4. Robot dapat mencari dan memadamkan api dengan waktu kurang dari 5 menit dengan menggunakan algoritma left wall follower dalam menjelajahi seluruh maze, menggunakan sensor api UVtron untuk mendeteksi adanya api, dan menggunakan sensor warna infrared untuk mendeteksi lantai berwarna putih di sekitar api. Secara umum keberhasilan memadamkan api untuk tiap-tiap ruang sebesar 89,58%, sedangkan keberhasilan memadamkan api dengan konfigurasi maze lengkap sebesar 60%.


(51)

90 V.2 SARAN

Kemampuan robot masih banyak kekurangan, untuk itu diperlukan pengembangan lebih lanjut. Saran-saran yang dapat digunakan untuk pengembangan lebih lanjut diantaranya:

1. Diperlukan adanya penggunaan motor servo dengan torsi yang lebih besar agar ketahanan motor servo dapat lebih lama namun tetap menjaga ukuran motor servo relatif kecil agar ukuran robot tidak menjadi besar dan mempersulit navigasi.

2. Algoritma pergerakan kaki robot perlu diperhalus dengan lebih melibatkan gerakan servo-servo di bagian ujung kaki.

3. Menambahkan pengontrol mikro untuk mengolah masukan dari sensor secara terpisah dari pengontrol utama agar kecepatan pengolahan data dari masukan sensor lebih cepat dan diharapkan dapat mengurangi kesalahan pembacaan sensor sehingga navigasi robot menjadi lebih baik.


(52)

DAFTAR PUSTAKA

1. Andrianto, H., Buku Panduan : Pelatihan Mikrokontroler AVR ATmega16, 2008.

2. Budiharto, W., Membuat Robot Cerdas, Jakarta : Gramedia, 2006.

3. Koren, Yoram. Robotics for Engineers. Singapore: McGRAW-HILL, 1987. 4. http://www.atmel.com

5. http://www.parallax.com 6. http://www.lynxmotion.com 7. http://www.alldatasheet.com

8. http://ocw.gunadarma.ac.id/course/computer-science-andinformation/computer-system-s1/pengantar-robotika 9. http://www.indorobotika.com

10. http://www.dikti.go.id/files/dp2m/Panduan%20KRCI%202011%20Beroda-Berkaki-Battle%20_Final.pdf


(1)

BAB I PENDAHULUAN

Bab ini akan membahas mengenai latar belakang beserta masalah dan tujuan dari pembuatan robot. Bab ini juga berisi mengenai spesifikasi dari robot, serta keseluruhan isi laporan.

I.1 LATAR BELAKANG

Dengan makin maraknya serta ketatnya kompetisi robot yang diadakan oleh dirjen pendidikan dari tahun ke tahun khususnya pada kategori KRCI divisi berkaki, maka diperlukan adanya peningkatan daya saing robot agar dapat mampu bersaing dalam kompetisi tersebut. Langkah nyata dalam peningkatan daya saing robot tersebut ialah dengan membuat robot dengan jenis hexapod atau robot berkaki enam.

Perancangan robot berjenis hexapod pada kompetisi lomba KRCI divisi berkaki ini bertujuan agar robot yang dirancang dapat bergerak lebih cepat dan memiliki derajat pergerakkan yang lebih banyak dibandingkan dengan penggunaan robot berjenis biped dan robot berkaki empat.

Dengan perancangan robot berjenis hexapod tersebut, maka diharapkan robot dapat menyelesaikan lomba dengan mengitari maze, mencari api, memadamkan api, dan kembali ke home dengan waktu yang lebih singkat. Dengan demikian maka nilai yang diperoleh pun akan semakin besar, dan memperbesar peluang memenangkan kompetisi tersebut.

I.2 PERUMUSAN MASALAH

Dalam Tugas Akhir ini terdapat beberapa rumusan masalah yaitu:

1. Bagaimana menghasilkan gerakan manuver dasar pada robot hexapod menggunakan kombinasi motor servo ?

2. Bagaimana robot hexapod dapat menghindari rintangan ? 3. Bagaimana robot hexapod dapat melewati uneven floor ?


(2)

2 I.3 TUJUAN

Tujuan dari Tugas Akhir ini adalah membuat robot berkaki enam untuk KRCI 2011 bagian struktur, cara bergerak, mencari dan memadamkan api.

I.4 PEMBATASAN MASALAH

Mengingat luasnya masalah yang dapat dilakukan mengenai perancangan robot berkaki enam, maka untuk menyederhanakan permasalahan, laporan Tugas Akhir ini dibatasi dengan batasan sebagai berikut:

1. Aturan dan kelengkapan maze mengacu pada ketentuan lomba KRCI 2011 divisi berkaki.

2. Pengujian dilakukan secara terpisah di setiap ruangan.

3. Seluruh konfigurasi di setiap ruangan selalu terdapat furniture.

4. Pengujian keseluruhan maze dengan konfigurasi lengkap dilakukan dalam satu macam konfigurasi.

I.5 SPESIFIKASI ALAT

Robot yang dirancang merupakan robot berjenis hexapod dengan spesifikasi:

1. Berjalan dengan 6 kaki yang masing-masing tersusun atas 6 buah motor servo.

2. Menelusuri maze dengan algoritma left wall follower dan mencari keberadaan api.

3. Dapat mengukur jarak antara 3 cm sampai 260 cm.

4. Dapat mendeteksi keberadaan api pada jarak 1 meter dengan menggunakan sensor hamamatsu UVtron.

5. Dapat melewati uneven floor.

I.6 SISTEMATIKA PENULISAN


(3)

Bab I PENDAHULAN

Bab ini membahas mengenai latar belakang, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan.

Bab II LANDASAN TEORI

Bab ini membahas mengenai teori yang akan digunakan dalam pembuatan robot berkaki enam dengan menggunakan rangkaian pengontrol ATmega128 dan peripheral interface berupa sensor dan motor servo.

Bab III PERANCANGAN DAN REALISASI

Bab ini membahas mengenai perancangan struktur robot, posisi sensor dan motor servo, serta algoritma.

Bab IV DATA PENGAMATAN DAN ANALISIS Bab ini membahas mengenai kinerja dari robot. Bab V KESIMPULAN DAN SARAN

Bab ini membahas mengenai kesimpulan dari pembuatan robot berkaki enam dan saran yang diperlukan untuk perkembangan lebih lanjut.


(4)

89 BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari tugas akhir dan saran yang diperlukan untuk pengembangan robot selanjutnya.

V.1 KESIMPULAN

Dari pengujian yang dilakukan terhadap robot, dapat diambil kesimpulan sebagai berikut:

1. Untuk menghasilkan gerakan navigasi dasar pada robot, robot berjalan dengan metoda tripod gait. Dengan metoda ini, robot dapat berjalan lurus dengan kecepatan 12,28 cm/s dan dapat berbelok 90° dalam waktu 2 – 3 detik.

2. Robot dapat menghindari rintangan dalam hal ini furniture dengan memasang sensor jarak PING di bagian depan robot. Secara umum keberhasilan robot menghindari rintangan dan dapat keluar dari ruang untuk berbagi konfigurasi ruang sebesar 77,15%, kegagalan menghindari rintangan disebabkan oleh kegagalan deteksi oleh sensor PING.

3. Robot dapat melewati uneven floor dengan memasang limit switch dengan bahan air raksa yang berfungsi sebagai pendeteksi kemiringan. Secara umum keberhasilan robot melewati uneven floor dengan berbagai konfigurasi sebesar 80%.

4. Robot dapat mencari dan memadamkan api dengan waktu kurang dari 5 menit dengan menggunakan algoritma left wall follower dalam menjelajahi seluruh maze, menggunakan sensor api UVtron untuk mendeteksi adanya api, dan menggunakan sensor warna infrared untuk mendeteksi lantai berwarna putih di sekitar api. Secara umum keberhasilan memadamkan api untuk tiap-tiap ruang sebesar 89,58%, sedangkan keberhasilan memadamkan api dengan konfigurasi maze lengkap sebesar 60%.


(5)

V.2 SARAN

Kemampuan robot masih banyak kekurangan, untuk itu diperlukan pengembangan lebih lanjut. Saran-saran yang dapat digunakan untuk pengembangan lebih lanjut diantaranya:

1. Diperlukan adanya penggunaan motor servo dengan torsi yang lebih besar agar ketahanan motor servo dapat lebih lama namun tetap menjaga ukuran motor servo relatif kecil agar ukuran robot tidak menjadi besar dan mempersulit navigasi.

2. Algoritma pergerakan kaki robot perlu diperhalus dengan lebih melibatkan gerakan servo-servo di bagian ujung kaki.

3. Menambahkan pengontrol mikro untuk mengolah masukan dari sensor secara terpisah dari pengontrol utama agar kecepatan pengolahan data dari masukan sensor lebih cepat dan diharapkan dapat mengurangi kesalahan pembacaan sensor sehingga navigasi robot menjadi lebih baik.


(6)

1. Andrianto, H., Buku Panduan : Pelatihan Mikrokontroler AVR ATmega16, 2008.

2. Budiharto, W., Membuat Robot Cerdas, Jakarta : Gramedia, 2006.

3. Koren, Yoram. Robotics for Engineers. Singapore: McGRAW-HILL, 1987. 4. http://www.atmel.com

5. http://www.parallax.com 6. http://www.lynxmotion.com 7. http://www.alldatasheet.com

8. http://ocw.gunadarma.ac.id/course/computer-science-andinformation/computer-system-s1/pengantar-robotika 9. http://www.indorobotika.com

10. http://www.dikti.go.id/files/dp2m/Panduan%20KRCI%202011%20Beroda-Berkaki-Battle%20_Final.pdf