Realisasi Robot Bipedal Berbasis AVR Yang Mampu Menaiki dan Menuruni Anak Tangga.

(1)

Universitas Kristen Maranatha

REALISASI ROBOT BIPEDAL BERBASIS AVR

YANG MAMPU MENAIKI DAN MENURUNI ANAK TANGGA

Disusun oleh :

Nama

: Yohanes Budi Kurnianto

NRP

: 0422155

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha,

Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.

Email :

yohanesbudikurnianto@yahoo.com

ABSTRAK

Saat ini sudah banyak robot diciptakan dengan kemampuan yang beragam,

diantaranya adalah robot humanoid. Robot humanoid adalah sebuah robot yang

memiliki bentuk dan sejumlah karakteristik yang menyerupai manusia, baik dalam

hal struktur maupun pergerakannya. Karakteristik yang cukup menarik dari robot

humanoid adalah kemampuan berjalan yang seperti manusia. Organ penting

utama yang menopang robot humanoid untuk berjalan adalah kaki, yang pada

umumnya berbentuk bipedal atau berkaki dua. Pembuktian tentang kemampuan

yang baik dari robot humanoid untuk berjalan sudah banyak dideskripsikan dalam

beberapa penelitian lain.

Pada tugas akhir ini, hal yang ingin direalisasikan adalah kemampuan

bergerak robot humanoid untuk menaiki dan menuruni anak tangga. Dalam

penelitian ini, robot dibuat dengan rangka dua kaki yang dibangun sampai

pinggang dan memiliki fungsi berjalan lurus, menaiki dan menuruni anak tangga.

Rangka tersebut dibuat dari alumunium yang bertujuan agar mempunyai berat

yang ringan namun tetap kokoh. Robot bipedal ini dikontrol dengan menggunakan

pengontrol mikro AT Mega 16. Dalam pergerakannya robot bipedal ini

menggunakan delapan motor servo sebagai aktuator. Robot ini juga dilengkapi

dengan dua buah sensor, yaitu sensor ultrasonik dan sensor gaya.

Berdasarkan percobaan-percobaan yang telah dilakukan pada sejumlah

lima buah anak tangga dengan ketinggian tiap anak tangga 2,5 cm, lebar

permukaan anak tangga 10 cm, maka terbukti robot bipedal ini dapat berjalan

lurus, menaiki serta menuruni anak tangga. Kemampuan tersebut dibuktikan

dengan presentasi keberhasilan uji berjalan sebesar 100 %, keberhasilan menaiki

anak tangga sebesar 83,33 %, dan keberhasilan menuruni anak tangga sebesar

73,33%.

Kata Kunci

: Robot Bipedal, Motor Servo, Rangka Alumunium, Pengontrol

Mikro AT Mega 16, Sensor Ultrasonik, Sensor Gaya.


(2)

Universitas Kristen Maranatha

REALIZATION OF BIPEDAL ROBOT BASED ON AVR

WHICH HAVE ABILITY TO STEP UP AND DOWN STAIRS

Composed by :

Name

: Yohanes Budi Kurnianto

NRP

: 0422155

Department of Electrical Engineering, Maranatha Christian University,

Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.

Email :

yohanesbudikurnianto@yahoo.com

ABSTRACT

This moment there so many robots with variance ability have been

developed, including humanoid robot. Humanoid robot is a robot with shape and

characteristic like a human, either the overall structure or the motion itself. The

quite interesting characteristic of humanoid robot is its movement ability as

human. The supporting important organ of the humanoid robot to walk is feet, that

mainly bipedal or having two feet. Experiment toward the ability of humanoid

robot to walk or step forward has been described in some previously research.

In this final project, the thing want to be realized is the movement ability

of humanoid robot in stepping forward, going up and going down the stairs. In

this research, the robot has been made with two waist-high feet frame that

functioned to step forward, go up, and go down the stairs as well. The frame has

been constructed of aluminum in order to have a light weight but still sturdy. This

bipedal robot is controlled by the AT Mega 16 microcontroller. In its movement,

this bipedal robot using eight servo motors as actuator. This robot is also equipped

with two sensors, namely ultrasonic and forced sensor.

Based on the experiments have been done on five stairs with 2.5

centimeters high, and 10 centimeters surface wide, it is proven that this bipedal

robot can step forward, go up, and go down the stairs. The movement ability has

been proven by the successful percentage of walking test by 100%, of going up

the stairs test by 83,33%, and of going down the stairs by 73,33%.

Key words

: Bipedal Robot, Servo Motor, Aluminum Framework,

Microcontroller ATmega16, Ultrasonic Sensor, Forced Sensor.


(3)

Universitas Kristen Maranatha

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... Error! Bookmark not defined.

DAFTAR ISI ... v

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... ix

BAB I PENDAHULUAN ... 1

I.1

Latar Belakang ... 1

I.2

Identifikasi Masalah ... 2

I.3

Perumusan Masalah ... 2

I.4

Tujuan

... 2

I.5

Pembatasan Masalah ... 2

I.6

Spesifikasi Alat ... 2

I.7

Sistematika Penulisan ... 3

BAB II LANDASAN TEORI ... 4

II.1

Bipedalisme ... 4

II.1.1

Evolusi Bipedal ... 4

II.1.2

Bagian Penggerak Kaki ... 7

II.1.3

Konstruksi Robot Bipedal ... 9

II.2

Motor DC Servo ... 12

II.3

Sensor ... 17

II.3.1

Sensor Ultrasonik ... 17

II.3.2

Sensor Gaya ... 20

II.4

Pengontrol Mikro... 21

II.4.1

Pengenalan ATMEL AVR RISC ... 21

II.4.2

Pengontrol Mikro ATmega16 ... 22

II.4.2.1Fitur ATmega16 ... 22

II.4.2.2Konfigurasi Pin ATmega16 ... 23

II.4.2.3Blok Diagram ATmega16 ... 25

II.4.2.4General Purpose Register ATmega16... 27

II.4.2.5Peta Memori ATmega16 ... 27

II.4.2.6PWM (Pulse Width Modulation) ATmega16 ... 29

BAB III PERANCANGAN DAN REALISASI ... 32

III.1

Blok Diagram Sistem Gerak Robot Bipedal ... 32

III.2

Perancangan dan Realisasi Robot Bipedal ... 32

III.3

Perancangan dan Realisasi Rangkaian Sensor dan Pengontrol Mikro .. 41


(4)

Universitas Kristen Maranatha

III.3.2

Sensor Gaya ... 43

III.3.2

Pengontrol Mikro ... 44

III.3.2.1Skematik Rangkaian Pengontrol Mikro ATMEGA 16 ... 44

III.3.2.2PWM ATMEGA16 ... 47

III.4

Algoritma Pemrograman Robot Bipedal ... 48

III.4.1

Sub Program Tegak ... 51

III.4.2

Sub Program Sensor ... 52

III.4.3

Sub Program Jalan ... 54

III.4.4

Sub Program Naik ... 59

III.4.5

Sub Program Turun ... 64

BAB IVDATA PENGAMATAN DAN ANALISA ... 70

IV.1

Pengenalan Area Pengambilan Data Pengamatan ... 70

IV.2

Pengamatan Sensor ... 72

IV.2.1

Pengamatan Sensor Ultrasonik (SRF 04) ... 72

IV.2.2

Pengamatan Sensor Gaya ... 76

IV.2.3

Pengamatan Sensor Pada Pola Gerak Keseluruhan ... 78

IV.3

Pola Gerak Robot Bipedal ... 84

IV.3.1

Pola Gerak Robot Bipedal Berjalan ... 84

IV.3.2

Pola Gerak Robot Bipedal Naik Anak Tangga ... 86

IV.3.3

Pola Gerak Robot Bipedal Turun Anak Tangga ... 89

IV.3.4

Pengujian Pola Gerak Keseluruhan Robot Bipedal ... 91

BAB V SIMPULAN DAN SARAN ... 92

V.1

Simpulan ... 92

V.2

Saran ... 93

DAFTAR PUSTAKA ... 94

LAMPIRAN A PROGRAM CODE VISION AVR

LAMPIRAN B FOTO ROBOT BIPEDAL

LAMPIRAN C SKEMATIK PENGONTROL MIKRO


(5)

Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar 2. 1 Perkembangan bipedalisme ... 5

Gambar 2. 2 Anggota Gerak Manusia ... 8

Gambar 2. 3 Gambar kaki robot... 9

Gambar 2. 4 Pergerakan Jalan Tampak Samping ... 10

Gambar 2. 5 Pergerakan Jalan Tampak Depan ... 10

Gambar 2. 6 Pola Penyesuaian Pergerakan Jalan Tipe Bipedal. ... 11

Gambar 2. 7 Konstruksi Robot Bipedal ... 12

Gambar 2. 8 Bentuk Motor Servo ... 13

Gambar 2. 9 Sistem Mekanik Motor Servo ... 13

Gambar 2. 10 Blok Diagram Motor DC Servo dengan Kontrol Kecepatan ... 14

Gambar 2. 11 Rangkaian Motor DC Servo dengan Kontrol Kecepatan ... 15

Gambar 2. 12 Pensinyalan Motor Servo ... 16

Gambar 2. 13 Contoh Posisi dan Waktu Pemberian Pulsa ... 17

Gambar 2. 14 Gambar Cara Kerja SRF 04 ... 17

Gambar 2. 15 Sensor Ultrasonik SRF 04 ... 18

Gambar 2. 16 Koneksi Pin SRF04 ... 19

Gambar 2. 17 Dimensi SRF 04 ... 19

Gambar 2. 18 Konstruksi Dan Koneksi FSR ... 20

Gambar 2. 19 Konfigurasi Pin ATmega16 ... 23

Gambar 2. 20 Blok Diagram ATmega16 ... 26

Gambar 2. 21 General Purpose Register ATmega16 ... 27

Gambar 2. 22 Peta Memori Program ATmega16 ... 28

Gambar 2. 23 Peta Memori Data ATmega16 ... 29

Gambar 2. 24 Pulse Width Modulation ... 30

Gambar 2. 25 Modulasi Lebar Pulsa dengan Gelombang Kotak ... 30


(6)

Universitas Kristen Maranatha

Gambar 3. 1 Blok Diagram Sistem Gerak Robot Bipedal ... 32

Gambar 3. 2 Koneksi Pin pada Motor Servo ... 33

Gambar 3. 3a Struktur Kaki Robot Bipedal Tampak Depan ... 35

Gambar 3. 3b Struktur Kaki Robot Bipedal Tampak Samping Kanan ... 36

Gambar 3. 3c Struktur Kaki Robot Bipedal Tampak Samping Kiri ... 37

Gambar 3. 3d Struktur Kaki Robot Bipedal Tampak Atas ... 38

Gambar 3. 3e Struktur Kaki Robot Bipedal Tampak Bawah ... 38

Gambar 3. 4 Penomoran Motor Servo ... 39

Gambar 3. 5 Ilustrasi Keseimbangan Tumpuan Kaki Kanan... 40

Gambar 3. 6 Ilustrasi Keseimbangan Tumpuan Kaki Kiri... 41

Gambar 3. 7 Pengalokasian Pin Pada Sensor Ultrasonik ... 42

Gambar 3. 8 Rangkaian Pembagi Tegangan ... 43

Gambar 3. 9 Skematik Rangkaian Pengontrol Mikro ... 46

Gambar 3. 10 Digram Alir Program Secara Keseluruhan ... 49

Gambar 3. 11 Diagram Alir Sub Program Tegak ... 51

Gambar 3. 12 Diagram Alir Sub Program Sensor ... 53

Gambar 3. 13 Diagram Alir Sub Program Jalan ... 55

Gambar 3. 14 Diagram Alir Sub Program Naik ... 60

Gambar 3. 15 Diagram Alir Sub Program Turun ... 65

Gambar 4. 1 Ukuran Anak Tangga. ... 70

Gambar 4. 2 Pengenalan Area Pengambilan Data ... 71

Gambar 4. 3 Tampilan Keluaran Pada LCD ... 71

Gambar 4. 4 Pemasangan Sensor Tekanan. ... 75

Gambar 4. 5 Pengamatan Keadaan Kaki. ... 75

Gambar 4. 6 Pola Gerak Robot Bipedal Jalan Langkah Kanan ... 85

Gambar 4. 7 Pola Gerak Robot Bipedal Jalan Langkah Kiri ... 86

Gambar 4. 8 Pola Gerak Robot Bipedal Naik Anak Tangga ... 88

Gambar 4. 9 Pola Gerak Robot Bipedal Turun Anak Tangga ... 90

Gambar 4. 10 Pola Gerak Keseluruhan Robot Bipedal ... 91


(7)

Universitas Kristen Maranatha

DAFTAR TABEL

Tabel 2. 1 Spesifikasi SRF 04 ... 18

Tabel 2. 2 Koneksi Pin SRF 04 Untuk Pengontrol Mikro ... 19

Tabel 2. 3 Fungsi Khusus Port B ... 24

Tabel 2. 4 Fungsi Khusus Port C ... 24

Tabel 2. 5 Fungsi Khusus Port D ... 25

Tabel 3. 1 Kawasan Kerja Motor Servo ... 39

Tabel 3. 2 Konektor Pin Sensor Pada Pengontrol Mikro ... 42

Tabel 3. 3 Konektor Pin Pada Pengontrol Mikro ... 44

Tabel 3. 4 Rentang Nilai Duty Cycle ... 48

Tabel 3. 5 Konektor Motor Servo Pada Port Pengotrol Mikro ... 52

Tabel 4. 1 Pengamatan Sensor Ultrasonik Saat Berjalan ... 72

Tabel 4. 2 Tabel Pengamatan Sensor Gaya Pada Saat Berjalan ... 76

Tabel 4. 3 Pengamatan Robot Pada Saat Berjalan ... 78

Tabel 4. 4 Pengamatan Robot Pada Saat Naik Anak Tangga ... 80


(8)

LAMPIRAN A


(9)

/***************************************************** 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 : Robot Biped Version :

Date : 7/1/2010 Author : Yohanes Budi Company : Maranatha Comments:

Chip type : ATmega16 Program type : Application Clock frequency : 11.095200 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 256

*****************************************************/ #include <mega16.h>

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

unsigned int i,t,ta,s,si,a,b,c,z; unsigned char text[32];

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

#include <lcd.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; }

// Declare your global variables here void tegak(void)

{

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;


(10)

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;

delay_us(100); //1500 PORTB.0=0;

PORTB.4=1; delay_us(1); //1500 PORTB.4=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 PORTA.6=0;

delay_us(8400); }

void jalan(void) {

// LANGKAH KIRI if(a==1)

{

if(b>400 && c>400) {

//LANGKAH KIRI for(i=0;i<200;i++) //1 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;

delay_us(100); //1500 PORTB.0=0;

PORTB.4=1; delay_us(1); //1500 PORTB.4=0; PORTB.5=1; delay_us(50); //1550


(11)

PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //2 {

PORTA=255; PORTB=255; PORTB.0=1;

delay_us(1100); //1500 //1400 //1300 //1200 //1100 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1350 //1300 //1250 //1200 //1150 PORTB.7=0;

PORTB.3=1; delay_us(150); //1300 PORTB.3=0; PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;

delay_us(100); //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //3 {

PORTA=255; PORTB=255; PORTB.7=1;

delay_us(1150); //1350 //1300 //1250 //1200 //1150 PORTB.7=0;

PORTB.3=1;

delay_us(50); //1300 //1200 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1300 PORTB.1=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;


(12)

delay_us(150); //1500 PORTB.4=0;

PORTB.0=1;

delay_us(1); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //4 {

PORTA=255; PORTB=255; PORTB.7=1;

delay_us(1150); //1350 //1300 //1250 //1200 //1150 PORTB.7=0;

PORTB.3=1;

delay_us(50); //1300 //1200 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1300 PORTB.1=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.4=1;

delay_us(50); //1500 //1400 PORTB.4=0;

PORTB.0=1;

delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(1); //1650 //1550 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //5 {

PORTA=255; PORTB=255; PORTB.7=1;

delay_us(1200); //1350 //1300 //1250 //1200 //1150 //1200 PORTB.7=0;

PORTB.3=1;

delay_us(1); //1300 //1200 PORTB.3=0;

PORTB.1=1;


(13)

PORTB.1=0; PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.4=1;

delay_us(50); //1500 //1400 PORTB.4=0;

PORTB.0=1;

delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(1); //1650 //1550 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //6 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1200); //1300 //1200 PORTB.3=0;

PORTB.7=1;

delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 PORTB.7=0;

PORTB.1=1;

delay_us(50); //1400 //1300 PORTB.1=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.4=1;

delay_us(50); //1500 //1400 PORTB.4=0;

PORTB.0=1;

delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(1); //1650 //1550 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //7 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1200); //1300 //1200 PORTB.3=0;


(14)

PORTB.7=1;

delay_us(100); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 PORTB.7=0;

PORTB.1=1;

delay_us(1); //1400 //1300 PORTB.1=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.4=1;

delay_us(50); //1500 //1400 PORTB.4=0;

PORTB.0=1;

delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(1); //1650 //1550 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //8 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1200); //1300 //1200 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1300 PORTB.1=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 PORTB.7=0;

PORTB.4=1;

delay_us(50); //1500 //1400 PORTB.4=0;

PORTB.0=1;

delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(1); //1650 //1550 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //9 {


(15)

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1200); //1300 //1200 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1300 PORTB.1=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.4=1;

delay_us(50); //1500 //1400 PORTB.4=0;

PORTB.5=1;

delay_us(150); //1550 PORTB.5=0;

PORTA.6=1;

delay_us(1); //1650 //1550 PORTA.6=0;

PORTB.0=1;

delay_us(150); //1500 //1400 //1300 //1200 //1100 //1500 //1700 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 PORTB.7=0;

delay_us(9000); };

for(i=0;i<200;i++) //10 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 //1200 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.4=1;

delay_us(50); //1500 //1400 PORTB.4=0;

PORTB.1=1;

delay_us(1); //1400 //1300 //1400 PORTB.1=0;

PORTB.5=1;

delay_us(150); //1550 PORTB.5=0;

PORTA.6=1;

delay_us(1); //1650 //1550 PORTA.6=0;

PORTB.0=1;

delay_us(150); //1500 //1400 //1300 //1200 //1100 //1500 //1700 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 PORTB.7=0;


(16)

delay_us(9000); };

for(i=0;i<200;i++) //11 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 //1200 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1;

delay_us(1); //1400 //1300 //1400 PORTB.1=0;

PORTB.4=1;

delay_us(100); //1500 //1400 //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 //1550 //1650 PORTA.6=0;

PORTB.0=1;

delay_us(50); //1500 //1400 //1300 //1200 //1100 //1500 //1700 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 PORTB.7=0;

delay_us(9000); };

for(i=0;i<200;i++) //12 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 //1200 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1;

delay_us(1); //1400 //1300 //1400 PORTB.1=0;

PORTB.4=1;

delay_us(100); //1500 //1400 //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 //1550 //1650 PORTA.6=0;


(17)

delay_us(1); //1500 //1400 //1300 //1200 //1100 //1500 //1700 //1650 PORTB.0=0;

PORTB.7=1;

delay_us(1); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 //1650 PORTB.7=0;

delay_us(9000); };

for(i=0;i<200;i++) //13 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 //1200 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1;

delay_us(1); //1400 //1300 //1400 PORTB.1=0;

PORTB.4=1;

delay_us(100); //1500 //1400 //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.7=1;

delay_us(1); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 //1650 //1550 PORTB.7=0;

PORTB.0=1;

delay_us(50); //1500 //1400 //1300 //1200 //1100 //1500 //1700 //1650 //1600 PORTB.0=0;

PORTA.6=1;

delay_us(50); //1650 //1550 //1650 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //14 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 //1200 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1;

delay_us(1); //1400 //1300 //1400 PORTB.1=0;

PORTB.7=1;

delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 //1650 //1550 //1450 PORTB.7=0;

PORTB.4=1;


(18)

PORTB.4=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.0=1;

delay_us(1); //1500 //1400 //1300 //1200 //1100 //1500 //1700 //1650 //1600 //1550 PORTB.0=0;

PORTA.6=1;

delay_us(100); //1650 //1550 //1650 PORTA.6=0;

delay_us(9000); };

for(i=0;i<200;i++) //15 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 //1200 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 //1650 //1550 //1450 //1350

PORTB.7=0; PORTB.1=1;

delay_us(50); //1400 //1300 //1400 PORTB.1=0;

PORTB.4=1;

delay_us(50); //1500 //1400 //1500 PORTB.4=0;

PORTB.0=1;

delay_us(1); //1500 //1400 //1300 //1200 //1100 //1500 //1700 //1650 //1600 //1550 //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 //1550 //1650 PORTA.6=0;

delay_us(9000); };

} } else {

if(b>200 && c>200) {

//LANGKAH KANAN for(i=0;i<200;i++) //1 {

PORTA=255; PORTB=255;


(19)

PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;

delay_us(100); //1500 PORTB.0=0;

PORTB.4=1; delay_us(1); //1500 PORTB.4=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //2 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;

delay_us(100); //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 PORTA.6=0;

PORTB.0=1;

delay_us(50); //1500 //1550 //1600 //1650 //1700 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1350 //1750 PORTB.7=0;


(20)

};

for(i=0;i<200;i++) //3 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 PORTB.7=0;

PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.5=1;

delay_us(150); //1550 PORTB.5=0;

PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTB.0=1;

delay_us(100); //1500 //1550 //1600 //1650 //1700 PORTB.0=0;

PORTA.6=1;

delay_us(1); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //4 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 PORTB.7=0;

PORTB.1=1;

delay_us(100); //1400 //1450 PORTB.1=0;

PORTB.5=1;

delay_us(100); //1550 PORTB.5=0;

PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTB.0=1;


(21)

PORTB.0=0; PORTA.6=1;

delay_us(1); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //5 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 PORTB.7=0;

PORTB.1=1;

delay_us(150); //1400 //1450 //1500 PORTB.1=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTB.0=1;

delay_us(100); //1500 //1550 //1600 //1650 //1700 PORTB.0=0;

PORTA.6=1;

delay_us(1); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //6 {

PORTA=255; PORTB=255; PORTB.2=1;

delay_us(1350); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 PORTB.7=0;

PORTB.3=1;

delay_us(50); //1300 //1400 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1500 PORTB.1=0;


(22)

delay_us(50); //1550 PORTB.5=0; PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTB.0=1;

delay_us(100); //1500 //1550 //1600 //1650 //1700 PORTB.0=0;

PORTA.6=1;

delay_us(1); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //7 {

PORTA=255; PORTB=255; PORTB.2=1;

delay_us(1350); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 PORTB.7=0;

PORTB.3=1;

delay_us(50); //1300 //1400 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1500 PORTB.1=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTB.0=1;

delay_us(50); //1500 //1550 //1600 //1650 //1700 //1650 PORTB.0=0;

PORTA.6=1;

delay_us(50); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //8 {

PORTA=255; PORTB=255; PORTB.2=1;

delay_us(1350); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 PORTB.7=0;

PORTB.3=1;


(23)

PORTB.3=0; PORTB.1=1;

delay_us(100); //1400 //1500 PORTB.1=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTB.0=1;

delay_us(1); //1500 //1550 //1600 //1650 //1700 //1650 //1600 PORTB.0=0;

PORTA.6=1;

delay_us(100); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //9 {

PORTA=255; PORTB=255; PORTB.2=1;

delay_us(1350); //1350 PORTB.2=0;

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 PORTB.7=0;

PORTB.3=1;

delay_us(50); //1300 //1400 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1500 PORTB.1=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.0=1;

delay_us(1); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 PORTB.0=0;

PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTA.6=1;

delay_us(100); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //10 {

PORTA=255; PORTB=255; PORTB.2=1;

delay_us(1350); //1350 PORTB.2=0;


(24)

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 PORTB.7=0;

PORTB.3=1;

delay_us(50); //1300 //1400 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1500 PORTB.1=0;

PORTB.0=1;

delay_us(1); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTA.6=1;

delay_us(100); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //11 {

PORTA=255; PORTB=255; PORTB.0=1;

delay_us(1100); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1350 //1750 //1350 //1150 PORTB.7=0;

PORTB.2=1;

delay_us(200); //1350 PORTB.2=0;

PORTB.3=1;

delay_us(50); //1300 //1400 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1500 PORTB.1=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;

delay_us(50); //1500 //1600 PORTB.4=0;

PORTA.6=1;

delay_us(100); //1650 //1700 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //12 {


(25)

PORTA=255; PORTB=255; PORTB.0=1;

delay_us(1100); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1350 //1750 //1350 //1150 PORTB.7=0;

PORTB.2=1;

delay_us(200); //1350 PORTB.2=0;

PORTB.3=1;

delay_us(50); //1300 //1400 PORTB.3=0;

PORTB.1=1;

delay_us(100); //1400 //1500 PORTB.1=0;

PORTB.4=1;

delay_us(1); //1500 //1600 //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 //1750 //1650 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //13 {

PORTA=255; PORTB=255; PORTB.0=1;

delay_us(1100); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1350 //1750 //1350 //1150 PORTB.7=0;

PORTB.3=1;

delay_us(150); //1300 //1400 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1;

delay_us(50); //1400 //1500 //1400 PORTB.1=0;

PORTB.4=1;

delay_us(100); //1500 //1600 //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 //1750 //1650 PORTA.6=0;


(26)

delay_us(8400); };

for(i=0;i<200;i++) //14 {

PORTA=255; PORTB=255; PORTB.0=1;

delay_us(1200); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 //1200 PORTB.0=0;

PORTB.7=1;

delay_us(1); //1350 //1750 //1350 //1150 //1200 PORTB.7=0;

PORTB.3=1;

delay_us(100); //1300 //1400 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1;

delay_us(50); //1400 //1500 //1400 PORTB.1=0;

PORTB.4=1;

delay_us(100); //1500 //1600 //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 //1750 //1650 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //15 {

PORTA=255; PORTB=255; PORTB.7=1;

delay_us(1300); //1350 //1750 //1350 //1150 //1200 //1250 //1300 PORTB.7=0;

PORTB.3=1;

delay_us(1); //1300 //1400 //1300 PORTB.3=0;

PORTB.2=1;

delay_us(50); //1350 PORTB.2=0;

PORTB.1=1;

delay_us(50); //1400 //1500 //1400 PORTB.1=0;

PORTB.0=1;

delay_us(1); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 //1200 //1300 //1400 PORTB.0=0;

PORTB.4=1;

delay_us(100); //1500 //1600 //1500 PORTB.4=0;


(27)

delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 //1750 //1650 PORTA.6=0;

delay_us(8400); };

for(i=0;i<200;i++) //16 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 //1400 //1300 PORTB.3=0;

PORTB.7=1;

delay_us(50); //1350 //1750 //1350 //1150 //1200 //1250 //1300 //1350 PORTB.7=0;

PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1;

delay_us(50); //1400 //1500 //1400 PORTB.1=0;

PORTB.0=1;

delay_us(100); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 //1200 //1300 //1400 //1500

PORTB.0=0; PORTB.4=1;

delay_us(1); //1500 //1600 //1500 PORTB.4=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1650 //1750 //1650 PORTA.6=0;

delay_us(8400); };

} } }

void tangga(void) {

for(i=0;i<300;i++) //1 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.7=1; delay_us(50); //1350


(28)

PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;

delay_us(100); //1500 PORTB.4=0;

PORTB.0=1; delay_us(1); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; delay_us(8450); };

for(i=0;i<300;i++) //2 {

PORTA=255; PORTB=255; PORTB.0=1;

delay_us(1050); //1050 PORTB.0=0;

PORTB.7=1;

delay_us(50); //1150 //1100 PORTB.7=0;

PORTB.3=1; delay_us(200); //1300 PORTB.3=0; PORTB.2=1; delay_us(50); //1350 PORTB.2=0; PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.5=1; delay_us(100); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; delay_us(9100); };

for(i=0;i<300;i++) //3 {

PORTA=255; PORTB=255;


(29)

PORTB.2=1; delay_us(750); //750 PORTB.2=0; PORTB.7=1; delay_us(350); //1100 PORTB.7=0; PORTB.3=1;

delay_us(200); //600 //1300 PORTB.3=0;

PORTB.4=1;

delay_us(150); //1450 PORTB.4=0;

PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; PORTB.1=1;

delay_us(50); //1400 //1700 PORTB.1=0;

delay_us(8950); };

for(i=0;i<300;i++) //4 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;

delay_us(250); //750 //650 //750 PORTB.2=0;

PORTB.7=1;

delay_us(350); //1150 //1100 PORTB.7=0;

PORTB.4=1;

delay_us(350); //1450 PORTB.4=0;

PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;

delay_us(150); //1400 //1700 PORTB.1=0;


(30)

PORTA.6=1; delay_us(50); //1750 PORTA.6=0; delay_us(9650); };

for(i=0;i<300;i++) //5 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;

delay_us(250); //750 //650 //750 PORTB.2=0;

PORTB.7=1; delay_us(400); //1150 PORTB.7=0; PORTB.1=1;

delay_us(250); //1400 //1700 //1400 PORTB.1=0;

PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(200); //1750 PORTA.6=0; delay_us(9950); };

for(i=0;i<300;i++) //6 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;

delay_us(250); //750 //650 //750 PORTB.2=0;

PORTB.7=1; delay_us(400); //1150 PORTB.7=0; PORTB.1=1;

delay_us(250); //1400 //1700 //1400 PORTB.1=0;


(31)

delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(150); //1750 //1700 PORTA.6=0;

delay_us(10000); };

for(i=0;i<300;i++) //7 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;

delay_us(150); //750 //650 PORTB.2=0;

PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.1=1; delay_us(250); //1400 PORTB.1=0; PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //1750 //1700 //1650 PORTA.6=0;

delay_us(10150); };

for(i=0;i<300;i++) //8 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;


(32)

PORTB.2=0; PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.1=1; delay_us(250); //1400 PORTB.1=0; PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(50); //1750 //1650 //1600 PORTA.6=0;

delay_us(10200); };

for(i=0;i<300;i++) //9 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;

delay_us(150); //750 //650 PORTB.2=0;

PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.1=1; delay_us(250); //1400 PORTB.1=0; PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(1); //1750 //1650 //1550 PORTA.6=0;

delay_us(10250); };

for(i=0;i<300;i++) //10 {

PORTA=255; PORTB=255;


(33)

PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;

delay_us(150); //750 //650 PORTB.2=0;

PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;

delay_us(200); //1450 //1350 PORTB.4=0;

PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.0=1; delay_us(100); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;

delay_us(1); //1750 //1650 //1550 PORTA.6=0;

delay_us(10350); };

for(i=0;i<300;i++) //11 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(600); //500 //600 PORTB.3=0;

PORTB.2=1;

delay_us(50); //750 //650 PORTB.2=0;

PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;

delay_us(200); //1450 //1350 PORTB.4=0;

PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.0=1; delay_us(100); //1500 PORTB.0=0; PORTA.6=1;

delay_us(1); //1750 //1650 //1550 //1500 PORTA.6=0;

PORTB.5=1; delay_us(49); //1550 PORTB.5=0;


(34)

delay_us(10300); };

for(i=0;i<200;i++) //12 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(600); //500 //600 PORTB.3=0;

PORTB.2=1;

delay_us(50); //750 //650 PORTB.2=0;

PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;

delay_us(200); //1450 //1350 PORTB.4=0;

PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTA.6=1;

delay_us(50); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;

PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; delay_us(10350); };

for(i=0;i<300;i++) //13 eng ing eng {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(600); //500 //600 PORTB.3=0;

PORTB.2=1;

delay_us(50); //750 //650 PORTB.2=0;

PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;

delay_us(100); //1450 //1350 //1250 PORTB.4=0;

PORTB.1=1; delay_us(150); //1400 PORTB.1=0; PORTA.6=1;

delay_us(50); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;


(35)

delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; delay_us(10450); };

for(i=0;i<200;i++) //14 *awal {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(600); //500 //600 PORTB.3=0;

PORTB.2=1;

delay_us(50); //750 //650 PORTB.2=0;

PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;

delay_us(100); //1450 //1350 //1250 PORTB.4=0;

PORTA.6=1;

delay_us(200); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;

PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;

delay_us(50); //1400 //1600 PORTB.1=0;

delay_us(10250); };

for(i=0;i<200;i++) //15 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(600); //500 //600 PORTB.3=0;

PORTB.2=1;

delay_us(50); //750 //650 PORTB.2=0;

PORTB.7=1;

delay_us(550); //1150 //1200 PORTB.7=0;

PORTB.4=1;

delay_us(50); //1450 //1350 //1250 PORTB.4=0;

PORTA.6=1;


(36)

PORTA.6=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;

delay_us(50); //1400 //1600 PORTB.1=0;

delay_us(10250); };

for(i=0;i<200;i++) //16 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(600); //500 //600 PORTB.3=0;

PORTB.2=1;

delay_us(50); //750 //650 PORTB.2=0;

PORTB.7=1;

delay_us(600); //1150 //1200 //1250 PORTB.7=0;

PORTB.4=1;

delay_us(1); //1450 //1350 //1250 PORTB.4=0;

PORTA.6=1;

delay_us(200); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;

PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;

delay_us(50); //1400 //1600 PORTB.1=0;

delay_us(10250); };

for(i=0;i<200;i++) //17 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(600); //500 //600 PORTB.3=0;

PORTB.2=1;

delay_us(50); //750 //650 PORTB.2=0;

PORTB.4=1;

delay_us(600); //1450 //1350 //1250 PORTB.4=0;


(37)

PORTB.7=1;

delay_us(50); //1150 //1200 //1250 //1300 PORTB.7=0;

PORTA.6=1;

delay_us(150); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;

PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;

delay_us(50); //1400 //1600 PORTB.1=0;

delay_us(10250); };

for(i=0;i<200;i++) //18 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(600); //500 //600 PORTB.3=0;

PORTB.2=1;

delay_us(50); //750 //650 PORTB.2=0;

PORTB.4=1;

delay_us(600); //1450 //1350 //1250 PORTB.4=0;

PORTB.7=1;

delay_us(100); //1150 //1200 //1250 //1300 //1350 PORTB.7=0;

PORTA.6=1;

delay_us(100); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;

PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;

delay_us(50); //1400 //1600 PORTB.1=0;

delay_us(10250); };

for(i=0;i<300;i++) //19 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;


(38)

delay_us(1); //400 PORTB.2=0; PORTB.7=1;

delay_us(949); //1350 PORTB.7=0;

PORTB.4=1;

delay_us(100); //1450 PORTB.4=0;

PORTB.5=1; delay_us(100); //1550 PORTB.5=0; PORTB.0=1;

delay_us(150); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(200); //1600 //1900 PORTB.1=0;

PORTA.6=1; delay_us(100); //2000 PORTA.6=0; delay_us(9250); };

for(i=0;i<300;i++) //20 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.7=1;

delay_us(950); //1350 PORTB.7=0;

PORTB.0=1;

delay_us(350); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(300); //1600 // 1900 //2000 PORTB.1=0;

PORTA.6=1; delay_us(1); //2000 PORTA.6=0; PORTB.5=1;

delay_us(400); //1550 //1800 //2000 //2400 PORTB.5=0;

PORTB.4=1;

delay_us(1); //1450 //2400 PORTB.4=0;

delay_us(7350); };

for(i=0;i<300;i++) //21 {


(39)

PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(100); //400 //500 PORTB.2=0;

PORTB.7=1;

delay_us(850); //1350 PORTB.7=0;

PORTB.0=1;

delay_us(350); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(200); //1600 // 1900 //2000 //1900 PORTB.1=0;

PORTA.6=1; delay_us(100); //2000 PORTA.6=0; PORTB.5=1;

delay_us(400); //1550 //1800 //2000 //2400 PORTB.5=0;

PORTB.4=1;

delay_us(1); //1450 //2400 PORTB.4=0;

delay_us(7350); };

for(i=0;i<300;i++) //22 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(200); //400 //500 //600 PORTB.2=0;

PORTB.7=1;

delay_us(750); //1350 PORTB.7=0;

PORTB.0=1;

delay_us(350); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(100); //1600 // 1900 //2000 //1900 //1800 PORTB.1=0;

PORTA.6=1; delay_us(200); //2000 PORTA.6=0; PORTB.5=1;

delay_us(400); //1550 //1800 //2000 //2400 PORTB.5=0;

PORTB.4=1;

delay_us(1); //1450 //2400 PORTB.4=0;


(40)

};

for(i=0;i<200;i++) //23 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(300); //400 //500 //600 //700 PORTB.2=0;

PORTB.7=1;

delay_us(650); //1350 PORTB.7=0;

PORTB.0=1;

delay_us(350); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(1); //1600 // 1900 //2000 //1900 //1800 //1700 PORTB.1=0;

PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.5=1;

delay_us(400); //1550 //1800 //2000 //2400 PORTB.5=0;

PORTB.4=1;

delay_us(1); //1450 //2400 PORTB.4=0;

delay_us(7350); };

for(i=0;i<300;i++) //24 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(500); //400 //500 //600 //700 //800 //900 PORTB.2=0;

PORTB.7=1;

delay_us(450); //1350 PORTB.7=0;

PORTB.1=1;

delay_us(250); //1600 // 1900 //2000 //1900 //1800 //1700 //1600 PORTB.1=0;

PORTB.0=1;

delay_us(100); //1700 PORTB.0=0;

PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.5=1;


(41)

PORTB.5=0; PORTB.4=1;

delay_us(1); //1450 //2400 PORTB.4=0;

delay_us(7250); };

for(i=0;i<300;i++) //25 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(950); //400 //900 //1350 PORTB.2=0;

PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;

delay_us(49); //1600 //1400 PORTB.1=0;

PORTB.0=1;

delay_us(300); //1700 PORTB.0=0;

PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.5=1; delay_us(400); //2400 PORTB.5=0; PORTB.4=1; delay_us(1); //2400 PORTB.4=0; delay_us(7000); };

for(i=0;i<300;i++) //26 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(450); //450 PORTB.3=0; PORTB.2=1;

delay_us(900); //400 //900 //1350 PORTB.2=0;

PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;

delay_us(49); //1600 //1400 PORTB.1=0;

PORTB.0=1;


(42)

PORTB.0=0; PORTA.6=1;

delay_us(1); //2000 //1700 PORTA.6=0;

PORTB.5=1; delay_us(699); //2400 PORTB.5=0; PORTB.4=1; delay_us(1); //2400 PORTB.4=0; delay_us(7250); };

for(i=0;i<300;i++) //27 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(450); //400 //450 PORTB.3=0;

PORTB.2=1;

delay_us(900); //400 //900 //1350 PORTB.2=0;

PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;

delay_us(49); //1600 //1400 PORTB.1=0;

PORTB.5=1;

delay_us(150); //2400 //1550 PORTB.5=0;

PORTB.0=1;

delay_us(150); //1700 PORTB.0=0;

PORTA.6=1;

delay_us(1); //2000 //1700 PORTA.6=0;

PORTB.4=1;

delay_us(699); //2400 PORTB.4=0;

delay_us(8100); };

for(i=0;i<300;i++) //28 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(450); //400 //450 PORTB.3=0;

PORTB.2=1;

delay_us(900); //400 //900 //1350 PORTB.2=0;


(43)

PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;

delay_us(49); //1600 //1400 PORTB.1=0;

PORTB.5=1;

delay_us(150); //2400 //1550 PORTB.5=0;

PORTB.0=1;

delay_us(100); //1700 //1650 PORTB.0=0;

PORTA.6=1;

delay_us(50); //2000 //1700 PORTA.6=0;

PORTB.4=1;

delay_us(699); //2400 PORTB.4=0;

delay_us(8100); };

for(i=0;i<300;i++) //29 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(450); //400 //450 PORTB.3=0;

PORTB.2=1;

delay_us(900); //400 //900 //1350 PORTB.2=0;

PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;

delay_us(49); //1600 //1400 PORTB.1=0;

PORTB.5=1;

delay_us(150); //2400 //1550 PORTB.5=0;

PORTB.0=1;

delay_us(50); //1700 //1650 //1600 PORTB.0=0;

PORTA.6=1;

delay_us(100); //2000 //1700 PORTA.6=0;

PORTB.4=1;

delay_us(699); //2400 PORTB.4=0;

delay_us(8100); };

for(i=0;i<300;i++) //30 {

PORTA=255; PORTB=255; PORTB.3=1;


(44)

delay_us(450); //400 //450 PORTB.3=0;

PORTB.2=1;

delay_us(900); //400 //900 //1350 PORTB.2=0;

PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;

delay_us(49); //1600 //1400 PORTB.1=0;

PORTB.5=1;

delay_us(150); //2400 //1550 PORTB.5=0;

PORTB.0=1;

delay_us(1); //1700 //1650 //1600 //1550 PORTB.0=0;

PORTA.6=1;

delay_us(150); //2000 //1700 PORTA.6=0;

PORTB.4=1;

delay_us(699); //2400 PORTB.4=0;

delay_us(8100); };

for(i=0;i<300;i++) //31 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(450); //1300 //400 //450 PORTB.3=0;

PORTB.7=1;

delay_us(900); //1350 PORTB.7=0;

PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;

delay_us(100); //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; PORTB.4=1;

delay_us(750); //1450 //2400 PORTB.4=0;

delay_us(8350); };


(45)

for(i=0;i<300;i++) //32 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;

delay_us(100); //1500 PORTB.4=0;

PORTB.0=1; delay_us(1); //1500 PORTB.0=0; PORTB.5=1; delay_us(49); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; delay_us(8400); };

}

void turun(void) {

for(i=0;i<300;i++) //1 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(1300); //1300 PORTB.3=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;

delay_us(100); //1500 PORTB.4=0;


(46)

delay_us(1); //1500 PORTB.0=0; PORTB.5=1; delay_us(49); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; delay_us(8400); };

for(i=0;i<300;i++) //2 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(450); //1300 //400 //450 PORTB.3=0;

PORTB.7=1;

delay_us(900); //1350 PORTB.7=0;

PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;

delay_us(100); //1500 PORTB.0=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; PORTB.4=1;

delay_us(650); //1450 //2300 PORTB.4=0;

delay_us(8350); };

for(i=0;i<300;i++) //3 {

PORTA=255; PORTB=255; PORTB.3=1;

delay_us(450); //400 //450 PORTB.3=0;

PORTB.2=1;

delay_us(900); //400 //900 //1350 PORTB.2=0;

PORTB.1=1;

delay_us(50); //1600 //1400 PORTB.1=0;

PORTB.5=1;


(47)

PORTB.5=0; PORTB.0=1;

delay_us(150); //1700 PORTB.0=0;

PORTA.6=1;

delay_us(1); //2000 //1700 PORTA.6=0;

PORTB.7=1;

delay_us(49); //1350 //1750 PORTB.7=0;

PORTB.4=1;

delay_us(550); //2300 PORTB.4=0;

delay_us(8100); };

for(i=0;i<300;i++) //4 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(450); //450 PORTB.3=0; PORTB.2=1;

delay_us(900); //400 //900 //1350 PORTB.2=0;

PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;

delay_us(49); //1600 //1400 PORTB.1=0;

PORTB.0=1;

delay_us(300); //1700 PORTB.0=0;

PORTA.6=1;

delay_us(1); //2000 //1700 PORTA.6=0;

PORTB.4=1;

delay_us(600); //2300 PORTB.4=0;

PORTB.5=1; delay_us(100); //2400 PORTB.5=0; delay_us(7250); };

for(i=0;i<300;i++) //5 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(950); //400 //900 //1350 PORTB.2=0;


(48)

PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;

delay_us(49); //1600 //1400 PORTB.1=0;

PORTB.0=1;

delay_us(300); //1700 PORTB.0=0;

PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.4=1;

delay_us(300); //2300 PORTB.4=0;

PORTB.5=1; delay_us(100); //2400 PORTB.5=0; delay_us(7000); };

for(i=0;i<300;i++) //6 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(500); //400 //500 //600 //700 //800 //900 PORTB.2=0;

PORTB.7=1;

delay_us(450); //1350 PORTB.7=0;

PORTB.1=1;

delay_us(250); //1600 // 1900 //2000 //1900 //1800 //1700 //1600 PORTB.1=0;

PORTB.0=1;

delay_us(100); //1700 PORTB.0=0;

PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.4=1;

delay_us(300); //1450 //2300 PORTB.4=0;

PORTB.5=1;

delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;

delay_us(7250); };

for(i=0;i<200;i++) //7 {

PORTA=255; PORTB=255; PORTB.3=1;


(49)

delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(300); //400 //500 //600 //700 PORTB.2=0;

PORTB.7=1;

delay_us(650); //1350 PORTB.7=0;

PORTB.0=1;

delay_us(350); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(1); //1600 // 1900 //2000 //1900 //1800 //1700 PORTB.1=0;

PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.4=1;

delay_us(300); //1450 //2300 PORTB.4=0;

PORTB.5=1;

delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;

delay_us(7350); };

for(i=0;i<300;i++) //8 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(200); //400 //500 //600 PORTB.2=0;

PORTB.7=1;

delay_us(750); //1350 PORTB.7=0;

PORTB.0=1;

delay_us(350); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(100); //1600 // 1900 //2000 //1900 //1800 PORTB.1=0;

PORTA.6=1; delay_us(200); //2000 PORTA.6=0; PORTB.4=1;

delay_us(300); //1450 //2400 PORTB.4=0;

PORTB.5=1;

delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;

delay_us(7350); };


(50)

for(i=0;i<300;i++) //9 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;

delay_us(100); //400 //500 PORTB.2=0;

PORTB.7=1;

delay_us(850); //1350 PORTB.7=0;

PORTB.0=1;

delay_us(350); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(200); //1600 // 1900 //2000 //1900 PORTB.1=0;

PORTA.6=1; delay_us(100); //2000 PORTA.6=0; PORTB.4=1;

delay_us(300); //1450 //2300 PORTB.4=0;

PORTB.5=1;

delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;

delay_us(7350); };

for(i=0;i<300;i++) //10 {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.7=1;

delay_us(950); //1350 PORTB.7=0;

PORTB.0=1;

delay_us(350); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(300); //1600 // 1900 //2000 PORTB.1=0;

PORTA.6=1; delay_us(1); //2000 PORTA.6=0; PORTB.4=1;

delay_us(300); //1450 //2300 PORTB.4=0;


(51)

delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;

delay_us(7350); };

for(i=0;i<300;i++) //11 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.7=1;

delay_us(949); //1350 PORTB.7=0;

PORTB.4=1;

delay_us(100); //1450 PORTB.4=0;

PORTB.5=1; delay_us(100); //1550 PORTB.5=0; PORTB.0=1;

delay_us(150); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(200); //1600 //1900 PORTB.1=0;

PORTA.6=1; delay_us(100); //2000 PORTA.6=0; delay_us(9250); };

for(i=0;i<300;i++) //12 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(899); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTA.6=1;


(52)

PORTA.6=0; PORTB.0=1; delay_us(50); //1700 PORTB.0=0; PORTB.1=1;

delay_us(200); //1600 //1900 PORTB.1=0;

delay_us(9250); };

for(i=0;i<300;i++) //13 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(899); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //2000 //1650 PORTA.6=0;

PORTB.0=1; delay_us(50); //1700 PORTB.0=0; PORTB.1=1;

delay_us(150); //1600 //1900 //1850 PORTB.1=0;

delay_us(9250); };

for(i=0;i<300;i++) //14 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(899); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0;


(53)

PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //2000 //1650 PORTA.6=0;

PORTB.0=1; delay_us(50); //1700 PORTB.0=0; PORTB.1=1;

delay_us(100); //1600 //1900 //1850//1800 PORTB.1=0;

delay_us(9250); };

for(i=0;i<300;i++) //15 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(899); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //2000 //1650 PORTA.6=0;

PORTB.0=1; delay_us(50); //1700 PORTB.0=0; PORTB.1=1;

delay_us(50); //1600 //1900 //1850//1800 //1750 PORTB.1=0;

delay_us(9250); };

for(i=0;i<300;i++) //16 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;


(54)

delay_us(899); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTA.6=1;

delay_us(100); //2000 //1650 PORTA.6=0;

PORTB.0=1; delay_us(50); //1700 PORTB.0=0; PORTB.1=1;

delay_us(1); //1600 //1900 //1850//1800 //1750 //1700 PORTB.1=0;

delay_us(9250); };

for(i=0;i<300;i++) //17 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(900); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTA.6=1;

delay_us(1); //2000 //1650 //1450 //1350 PORTA.6=0;

PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTB.0=1;

delay_us(150); //1700 PORTB.0=0;

PORTB.1=1;

delay_us(1); //1600 //1900 //1850//1800 //1750 //1700 PORTB.1=0;

delay_us(9250); };

for(i=0;i<300;i++) //18 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1;


(55)

delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(900); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTA.6=1;

delay_us(1); //2000 //1650 //1450 //1350 PORTA.6=0;

PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTB.1=1;

delay_us(100); //1600 //1900 //1850//1800 //1750 //1700 //1650 PORTB.1=0;

PORTB.0=1; delay_us(50); //1700 PORTB.0=0; delay_us(9250); };

for(i=0;i<300;i++) //19 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(900); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTA.6=1;

delay_us(1); //2000 //1650 //1450 //1350 PORTA.6=0;

PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTB.1=1;

delay_us(50); //1600 //1900 //1850//1800 //1750 //1700 //1650 //1600 PORTB.1=0;

PORTB.0=1;

delay_us(100); //1700 PORTB.0=0;

delay_us(9250); };


(56)

for(i=0;i<300;i++) //20 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(900); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTA.6=1;

delay_us(1); //2000 //1650 //1450 //1350 PORTA.6=0;

PORTB.1=1;

delay_us(150); //1600 //1900 //1850//1800 //1750 //1700 //1650 //1600 //1550 //1500 PORTB.1=0;

PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.0=1;

delay_us(150); //1700 PORTB.0=0;

delay_us(9250); };

for(i=0;i<300;i++) //21 -- miring di tangga ... {

PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;

delay_us(900); //1450 //1250 //1300 PORTB.4=0;

PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTA.6=1;

delay_us(1); //2000 //1650 //1450 //1350 PORTA.6=0;

PORTB.1=1;

delay_us(150); //1600 //1900 //1850//1800 //1750 //1700 //1650 //1600 //1550 //1500 PORTB.1=0;

PORTB.0=1;

delay_us(1); //1700 //1500 PORTB.0=0;


(1)

Universitas Kristen Maranatha

BAB I PENDAHULUAN

Bab ini berisikan tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan laporan tugas akhir.

I.1 Latar Belakang

Kata robot berasal bahasa Ceko yang berarti pekerja. Saat ini, secara sadar atau tidak, robot memang telah hadir di dalam kehidupan manusia dalam bentuk yang bermacam-macam. Terdapat bentuk desain robot yang sederhana untuk mengerjakan kegiatan yang mudah atau berulang-ulang. Ada pula robot yang dirancang untuk berperilaku sangat kompleks dan sampai batas tertentu dapat mengontrol dirinya sendiri. Di kalangan umum pengertian robot selalu dikaitkan dengan makhluk hidup berbentuk orang maupun binatang yang terbuat dari logam dan bertenaga listrik. Sementara itu dalam arti luas robot berarti sistem yang dalam batas-batas tertentu dapat bekerja sendiri (otomatis) sesuai dengan perintah yang sudah diberikan oleh perancangnya. Dengan pengertian ini sangat erat hubungan antara robot dan otomatisasi sehingga dapat dipahami bahwa hampir setiap aktivitas kehidupan modern makin tergantung pada robot dan otomatisasi.

Saat ini sudah banyak robot diciptakan dengan kemampuan yang beragam, diantaranya adalah robot humanoid. Robot humanoid adalah sebuah robot yang memiliki bentuk dan sejumlah karakteristik yang menyerupai manusia, baik dalam hal struktur maupun pergerakannya. Karakteristik yang cukup menarik dari robot humanoid adalah kemampuan berjalan yang seperti manusia. Organ penting utama yang menopang robot humanoid untuk berjalan adalah kaki, yang pada umumnya berbentuk bipedal atau berkaki dua. Kebutuhan kemampuan untuk menaiki dan menuruni anak tangga juga diperlukan, ditujukan untuk penyempurnaan kegunaan dari kaki robot.


(2)

BAB I PENDAHULUAN 2

Universitas Kristen Maranatha

I.2 Identifikasi Masalah

Identifikasi masalah pada tugas akhir ini adalah kebutuhan robot yang dapat melewati rintangan, yaitu anak tangga dengan berbagai tujuan aplikasi.

I.3 Perumusan Masalah

Perumusan masalah yang dibahas dalam tugas akhir ini adalah bagaimana merealisasikan robot bipedal yang dapat menaiki dan menuruni anak tangga?

I.4 Tujuan

Tujuan yang ingin dicapai dalam pengerjaan tugas akhir ini adalah merealisasikan robot bipedal yang dapat menaiki dan menuruni anak tangga.

I.5 Pembatasan Masalah

Pembatasan masalah diperlukan agar masalah yang diamati tidak terlalu luas dan penelitian menjadi lebih fokus. Pembatasan masalah pada pengerjaan tugas akhir ini adalah :

1. Robot Bipedal dapat menaiki anak tangga dengan syarat  Tinggi anak tangga : ± 2.5 cm;

 Lebar permukaan anak tangga : ± 10 cm.

2. Robot Bipedal dirancang untuk menaiki dan menuruni anak tangga yang lurus dan tidak berkelok-kelok ataupun memutar.

I.6 Spesifikasi Alat

Spesifikasi alat adalah sebagai berikut :

1. Mampu bergerak menaiki dan menuruni anak tangga dengan ketinggian tertentu.

2. Berbentuk kaki robot bipedal saja.

3. Robot dapat secara otomatis mendeteksi anak tangga. 4. Menggunakan 8 buah motor servo.

5. Menggunakan pengontrol mikro AT Mega 16 untuk mengontrol robot bipedal.


(3)

BAB I PENDAHULUAN 3

Universitas Kristen Maranatha 6. Menggunakan sensor ultrasonik yang berfungsi untuk mendeteksi jarak anak

tangga yang ada di depan robot dan sensor gaya yang berfungsi untuk mendeteksi besar gaya sentuhan yang berada di telapak kaki robot.

I.7 Sistematika Penulisan

Laporan terdiri dari beberapa bab dengan garis besar sebagai berikut: BAB I PENDAHULUAN

Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan laporan tugas akhir.

BAB II LANDASAN TEORI

Pada bab ini dijelaskan mengenai teori-teori penunjang yang diperlukan dalam merancang dan membangun robot bipedal yang mampu menaiki serta menuruni anak tangga.

BAB III PERANCANGAN DAN REALISASI

Pada bab ini membahas perancangan dan realisasi robot bipedal, dimensi robot, peletakan sensor-sensor robot, pengontrol mikro ATmega16, dan algoritma pemrograman pada ATmega16.

BAB IV ANALISA DAN DATA PENGAMATAN

Pada bab ini dijelaskan tentang proses pengambilan data pengamatan, pengujian kemampuan robot bipedal berjalan, menaiki dan menuruni anak tangga, serta analisisnya.

BAB V SIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dari tugas akhir dan saran yang diperlukan untuk perbaikan dimasa mendatang.


(4)

Universitas Kristen Maranatha

BAB V

SIMPULAN DAN SARAN

Pada bab ini berisi simpulan dari tugas akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.

V.1 Simpulan

Dengan memperhatikan data pengamatan dan analisis pada bab sebelumnya, dapat disimpulkan bahwa:

1. Realisasi robot bipedal yang mampu menaiki dan menuruni anak tangga telah berhasil direalisasikan dengan tingkat keberhasilan berjalan 100 %, menaiki anak tangga 83.333 % serta menuruni anak tangga 73.333 %.

2. Dalam pengerjaan tugas akhir ini, cara yang digunakan adalah uji coba robot dengan program dengan melakukan penyesuaian alogaritma pemograman dan bentuk anak tangga pada mekanik robot.

3. Dengan menggunakan cara pengujian uji coba (penyesuaian algoritma pemrograman dan mekanik robot), hanya algoritma pemrograman berjalan yang berhasil 100 % dan belum berhasil dengan baik untuk membuat robot yang mampu menaiki dan menuruni anak tangga dikarenakan kekurangan keseimbangan robot serta kesalahan pembacaan sensor.

4. Proses gerak awal untuk memperoleh keseimbangan pada robot harus dimulai dari pergerakan motor servo pada telapak kaki miring ke samping kanan atau kiri sebesar 200 (minimal) sampai 300 (maksimal) dari posisi tegak.


(5)

BAB V SIMPULAN DAN SARAN 93

Universitas Kristen Maranatha

V.2 Saran

Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan dari Tugas Akhir ini adalah sebagai berikut:

1. Penambahan pengontrol servo yang lebih baik yang dapat mengoptimalkan kerja dari motor servo agar dapat bergerak lebih halus. (SSC-32)

2. Mengganti sensor ultrasonik yang dapat membaca jarak minimal 1cm.

3. Dokumentasi data pengamatan penentuan delay motor servo tidak dapat terangkum secara detail. Ini diperlukan untuk menjadikan cara penentuan motor servo yang harus ditentukan terlebih dahulu, manakah yang baik apakah menentukan motor servo yang berada tingkat atas ataukah motor servo yang berada pada tingkat bawah.


(6)

Universitas Kristen Maranatha

DAFTAR PUSTAKA

1. Andrianto, Heri. 2008. Pemrograman Mikrokontroler AVR ATMEGA16 Menggunakan Bahasa C (Code Vision AVR). Bandung : Informatika.

2. Darmawan, Aan. 2005. Diktat Kuliah Dasar Komputer dan Pemrograman. Bandung : Jurusan Teknik Elektro, Universitas Kristen Maranatha.

3. K, Gandjar., RK, Filipus., TT Yohannes., S. Galih ., F, Akthur. Perancangan Bentuk Geometri dan Derajat Kebebasan dan Analisa Kestabilan Robot Humanoid “Makara 1”. Jakarta : Departemen Teknik Mesin, Universitas Indonesia.

4. Ogata, Katsuhiko.1996. Teknik Kontrol Automatik. Jilid 1 Edisi Kedua. Jakarta : Erlangga.

5. Sigit, Riyanto. Robotika, Sensor, Dan Akutuator, Edisi ke-1, Yogyakarta : Graha Ilmu 2007.

6. http://digitallaboratory.wordpress.com/2010/01/22/sensor-ultrasonic-srf04/ 7. http://digilib.petra.ac.id/viewer.php?page=1&submit.x=0&submit.y=0&qual=hig

h&fname=/jiunkpe/s1/elkt/2004/jiunkpe-ns-s1-2004-23498034-5155-robot-chapter2.pdf

8. http://nugroho.staff.uii.ac.id/2008/12/15/program-mikrokontroler-avr-untuk-sensor-srf04-menggunakan-cvavr/

9. http://www.britannica.com/EBchecked/topic-art/275376/45433/Comparison-of-the-pelvis-and-lower-limbs-of-a-chimpanzee

10.http://www.lynxmotion.com/images/html/build129.htm 11.http://www.lynxmotion.com/images/data/fsrguide.pdf