• Tidak ada hasil yang ditemukan

Realisasi Detektor Suara Saron Pada Robot KRSI 2011.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Realisasi Detektor Suara Saron Pada Robot KRSI 2011."

Copied!
72
0
0

Teks penuh

(1)

iii

Universitas Kristen Maranatha

REALISASI DETEKTOR SUARA SARON

PADA ROBOT KRSI 2011

Disusun oleh:

Nama :

Panji Adrianto

NRP :

0722072

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kirsten Maranatha,

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

Email: panewanther@yahoo.com

ABSTRAK

Kemajuan teknologi dalam bidang robotik sudah berkembang sangat

pesat. Indonesia sebagai Negara berkembang tidak ingin ketinggalan. Kontes

Robot Seni Indonesia sebagai salah satu kontes tahunan sudah diadakan tiga kali

dengan tema berbeda. Kontes ini diadakan sebagai salah satu tolak ukur kemajuan

robotik di Indonesia. KRSI 2011 mengusung tema tarian Klono Topeng dari

daerah Yogyakarta. Robot yang dibuat diharapkan dapat menari dengan

jenis-jenis gerakan dasar Tari Klono Topeng dan dapat membedakan suara musik

gamelan Klono Topeng dengan berbagai jenis gangguan.

Pada Tugas Akhir ini, robot dibuat dengan ukuran tinggi 53 cm, lebar 30

cm, dan tebal 12 cm. Robot didesain menyerupai manusia. Robot bergerak

menggunakan servo-servo yang berjumlah 21 buah. Robot dilengkapi dengan dua

jenis sensor yaitu sensor garis LDR dan sensor suara electrets microphone. Sensor

garis digunakan untuk mendeteksi garis pada arena lomba dan sensor suara untuk

mendeteksi suara gamelan Klono Topeng. Robot dikontrol menggunakan

ATMEGA 128 dan program FlowStone. SSC-32 membantu ATMEGA 128 dalam

mengatur pergerakan servo-servo yang ada. FlowStone berfungsi dalam hal

mendeteksi suara bunyi gamelan Klono Topeng dan membedakan suara gamelan

Klono Topeng dengan gangguan suara yang bervariasi.

Berdasarkan percobaan yang dilakukan dapat dikatakan bahwa robot

(2)

iv

Universitas Kristen Maranatha

tanjak kanan, seblak, trecek kiri, ngrai rikmo, klat bahu, berhias, meskipun

gerakan yang dihasilkan masih kurang halus dan cukup lambat. Durasi satu kali

gerakan tari memakan waktu antara 4.7 detik sampai 52,3 detik. Robot juga

sudah dapat dengan baik membedakan suara gamelan Klono Topeng khususnya

alat musik saron dengan suara gangguan yang ditentukan dengan persentase

keberhasilan 100%. Robot juga berhasil masuk ke putaran final KRSI 2011 di

Yogyakarta.

Kata Kunci: Robot humanoid, KRSI, Sensor Suara electrets microphone,

Sensor garis LDR, ATMEGA 128, FlowStone, SSC-32.

(3)

v

Universitas Kristen Maranatha

REALIZATION OF SARON VOICE DETECTOR

FOR ROBOT KRSI 2011

Composed by:

Nama :

Panji Adrianto

NRP :

0722072

Electrical Engineering Department, Maranatha Christian University,

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

Email: panewanther@yahoo.com

ABSTRACT

Nowdays robotic technology development have been increasing very fast.

As a developing country, Indonesia would like to update. Kontes Robot Seni

Indonesia as an annual contest have been held three times with different theme.

This contest is being a reference for the growth of robotic technology here in

Indonesia.

KRSI 2011 contest have Yogyakarta’s Klono Topeng

dance as main

theme. The robot was hoped to be able to dance the basic moves of Klono topeng

dance and to differ sound of Klono topeng gamelan with other sound which would

be considered as noise or disturbance.

In this Final Project, robot was made with 53 cm height, 30 cm length and

12 cm width. Robot is designed like a human. Robot moves using 21 servos. The

robot is equipped with two kind of sensor, LDR as line sensor and electrets

microphone as sound sensor. Line sensor is used to detect the white line in the

field and sound sensor is used to detect the sound of gamelan Klono Topeng. The

robot is controlled using ATMEGA 128 and FlowStone. SSC-32 assists

ATMEGA 128 to manage all servos. FlowStone enables robot to differ sound of

Klono topeng gamelan with other kind of sounds which would be considered as

noise or disturbance.

Based on experiments, it can be said that robot is able to dance the basic

moves of Klono Topeng dance such as Salam Pembuka, Tanjak kanan,

(4)

vi

Universitas Kristen Maranatha

don’t smooth and quite slow.

The shortest duration for a loop of a move are 4.7

seconds and the longest duration for a loop of a move are 52.3 seconds. And

robot also could differ sound of Klono topeng gamelan with other kind of chosen

sounds which is considered as noise or disturbance. Percentage of success in this

case is 100% success. Robot also went to the final stage of KRSI 2011 at

Yogyakarta.

Keywords:

Humanoid Robot, KRSI, Sound Sensor electrets microphone,Line

(5)

vii

Universitas Kristen Maranatha

DAFTAR ISI

Halaman

KATA PENGANTAR ...

i

ABSTRAK ...

iii

ABSTRACT ...

v

DAFTAR ISI ...

vii

DAFTAR TABEL ...

x

DAFTAR GAMBAR ...

xi

DAFTAR RUMUS...

xiii

BAB I PENDAHULUAN ...

1

I.1 Latar Belakang ...

1

I.2

Identifikasi masalah ...

1

I.3

Perumusan Masalah ...

2

I.4 Tujuan ...

2

I.5 Pembatasan Masalah ...

2

I.6 Sistematika Penulisan ...

3

BAB II LANDASAN TEORI ...

4

II.1 Penjelasan Kontes Robot Seni Indonesia (KRSI) ...

4

II.1.1Tema ...

4

II.1.2 Sistem Perlombaan ...

5

II.1.3 Spesifikasi Robot ...

6

II.1.4 Arena Lomba ...

7

II.2

Teori Robot Humanoid ...

8

II.3

Teori Gelombang Bunyi ...

9

II.3.1 Frekuensi dan Panjang Gelombang ...

9

II.3.2 Amplitudo ...

10

II.3.3 Warna Nada ...

10

II.4

Pengontrol Mikro ...

11

II.4.1 Pengenalan ATMEL AVR RISC ...

11

(6)

viii

Universitas Kristen Maranatha

II.4.3 Fitur-fitur ATMEGA 128 ...

12

II.4.4 Input / Output ...

13

II.4.4 Diagram Blok ATMEGA128 ...

14

II.5

Pengontrol Servo SSC-32 ...

15

II.5.1 Komponen-komponen SSC-32 ...

15

II.5.2 Cara Komunikasi SSC-32 dengan ATMEGA 128 ...

17

II.5.3 Spesifikasi SSC-32 ...

17

II.6

Sensor Garis (LDR) ...

18

II.7

Sensor Suara ...

19

II.8

FlowBoard dan FlowStone ...

21

II.9

Fast Fourier Transform ...

24

II.9.1 Discrete Fourier Transform (DFT) ...

24

II.9.2 Perhitungan DFT ...

25

II.9.3 Kelebihan FFT ...

25

II.10 Filter ...

26

II.11 Analog to Digital Conversion ...

26

BAB III PERANCANGAN DAN REALISASI ...

28

III.1 Perancangan Sistem Robot Humanoid Klono Topeng...

28

III.2

Struktur Robot Humanoid Klono Topeng ...

29

III.2.1 Bentuk Robot ...

30

III.2.2 Sistem Gerak ...

31

III.2.3 Peletakan Sensor-Sensor ...

31

III.3

Perancangan dan Realisasi Rangkaian Sensor dan Pengontrol ...

32

III.3.1Sensor ...

32

III.3.1.1 Sensor Garis ...

33

III.3.1.2 Sensor Suara ...

34

III.3.2Pengontrol ...

37

III.3.2.1 ATMEGA 128 ...

38

III.3.2.2 FlowStone ...

39

(7)

ix

Universitas Kristen Maranatha

BAB IV DATA PENGAMATAN DAN ANALISIS DATA ...

54

IV.1 Frekuensi-frekuensi dari Nada Saron ...

54

IV.2 Pengujian Sensor Garis LDR ...

55

IV.3

Respon Robot Terhadap Musik Gamelan Klono Topeng dan

Gangguan-gangguannya ...

56

IV.4 Jenis Gerakan dan Durasi...

57

IV.5

Spektrum Frekuensi dari Masing-masing Musik ...

58

IV.6 Respon Program FlowStone untuk Amplitudo Normalisasi

Berbeda ...

61

IV.7

Respon Program FlowStone ...

63

BAB V SIMPULAN DAN SARAN ...

64

V.1 Simpulan ...

64

V.2

Saran ...

64

(8)

x

Universitas Kristen Maranatha

DAFTAR TABEL

Halaman

Tabel 3.1 Koneksi SSC-32 dengan Servo-servo ...

42

Tabel 4.1 Frekuensi Dari Nada-nada Saron ...

55

Tabel 4.2 Tegangan Output Rangkaian Pembagi Tegangan ...

56

Tabel 4.3 Respon Robot Terhadap Musik Gamelan dan Gangguannya

57

Tabel 4.4 Keberhasilan Gerakan dan Durasi Gerakan ...

58

Tabel 4.5

Respon Program FlowStone ketika Diberi Input Suara

(9)

xi

Universitas Kristen Maranatha

DAFTAR GAMBAR

Halaman

Gambar 2.1 Arena Lomba KRSI 2011 ...

8

Gambar 2.2 Bentuk Support Polygon ...

9

Gambar 2.3 Amplitudo Gelombang ...

10

Gambar 2.4 Konfigurasi Pin ATMEGA 128 ...

13

Gambar 2.5 Struktur Pengontrol Mikro ATMEGA 128 ...

15

Gambar 2.6 Bentuk dan Letak Komponen-komponen SSC-32 ...

16

Gambar 2.7 Pin SSC-32 untuk Komunikasi Dengan ATMEGA 128 ...

17

Gambar 2.8 Jalur Dari Cadmium Sulphid ...

18

Gambar 2.9 Karakteristik LDR ...

19

Gambar 2.10 Bagian-bagian Microphone ...

20

Gambar 2.11 Electret microphone ...

21

Gambar 2.12 FlowBoard ...

21

Gambar 2.13 Tampilan Awal Program FlowStone ...

22

Gambar 2.14 Direct Sound In ...

22

Gambar 2.15 Filter Digital ...

23

Gambar 2.16 Mono FFT ...

23

Gambar 2.17 Mono to Graph ...

23

Gambar 2.18 Graph FFT ...

23

Gambar 2.19 Float Array Section ...

23

Gambar 2.20 Max Float Array ...

24

Gambar 3.1 Diagram Blok Sistem Kontrol Robot ...

29

Gambar 3.2 Peletakan Komponen-komponen ...

29

Gambar 3.3 Peletakan Komponen LDR di Telapak Kaki Robot ...

30

Gambar 3.4 Dimensi Robot Tampak Depan ...

30

Gambar 3.5 Arah Gerak dan Letak Servo-servo ...

31

Gambar 3.6 Letak Sensor Garis ...

32

Gambar 3.7 Letak Sensor Suara ...

32

Gambar 3.8 Skematik Rangkaian Sensor Garis untuk Satu Kaki ...

33

(10)

xii

Universitas Kristen Maranatha

Gambar 3.10 Diagram Blok FlowStone ...

34

Gambar 3.11a Program Pendeteksi Suara Saron 1...

35

Gambar 3.11b Program Pendeteksi Suara Saron 2 ...

35

Gambar 3.11c Program Pendeteksi Suara Saron 3...

36

Gambar 3.12 Sistem Elektronika Robot...

37

Gambar 3.13 Skematik ATMEGA 128 ...

38

Gambar 3.14 Modul Self Holding ...

39

Gambar 3.15 Rangkaian Dalam Self Holding...

39

Gambar 3.16 Tampilan Utama Program FlowStone ...

40

Gambar 3.17a Flowchart Utama 1 ...

43

Gambar 3.17b Flowchart Utama 2...

44

Gambar 3.18 Subroutine Gerakan Salam Pembuka ...

45

Gambar 3.19 Subroutine Gerakan Tanjak Kanan ...

46

Gambar 3.20 Subroutine Gerakan Seblak ...

47

Gambar 3.21 Subroutine Gerakan Trecek Kiri ...

48

Gambar 3.22 Subroutine Gerakan Belok Kanan ...

49

Gambar 3.23 Subroutine Gerakan Belok Kiri ...

50

Gambar 3.24a Subroutine Gerakan Zona Tengah 1 ...

51

Gambar 3.24b Subroutine Gerakan Zona Tengah 2...

52

Gambar 3.23c Subroutine Gerakan Zona Tengah 3 ...

53

Gambar 4.1a Respon FlowStone 1 ...

59

Gambar 4.1b Respon FlowStone 2...

59

Gambar 4.1c Respon FlowStone 3 ...

59

Gambar 4.1d Respon FlowStone 4...

60

Gambar 4.1e Respon FlowStone 5 ...

60

Gambar 4.1f Respon FlowStone 6 ...

60

Gambar 4.1g Respon FlowStone 7...

61

Gambar 4.2 Amplitudo Normalisasi Suara Musik Saron ...

62

Gambar 4.3a Respon Program FlowStone Mendeteksi Suara Saron ...

63

(11)

xiii

Universitas Kristen Maranatha

DAFTAR RUMUS

Halaman

(12)

LAMPIRAN A

(13)

A-1

Tampak Depan

(14)

A-2

Tampak Samping Kiri

(15)
(16)

LAMPIRAN B

(17)

B-1

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 : 4/22/2011

Author : Panji,Rezaly, Christian Company : Chrenji

Comments:

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

External SRAM size : 0 Data Stack size : 1024

*****************************************************/ #include <mega128.h> #include <delay.h> #include <stdio.h> #include <stdlib.h> #include <i2c.h> #include <lcd.h>

#define PIN_SOUND 0

#define ADC_VREF_TYPE 0x00 #define BANYAK_SAMPLE 128 #define FREKUENSI_SAMPLING 8000 #define AMBIL_FREKUENSI 500 #define SOUND_VALUE 250

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

// I2C Bus functions #asm

.equ __i2c_port=0x12 ;PORTD .equ __sda_bit=1

.equ __scl_bit=0 #endasm

// 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);

(18)

B-2

char LCD[40],Text[32];

eeprom unsigned int Compass_Value = 0; unsigned char LineSensorValue = 0;

#include "LineSensor.c" #include "SSC32.c"

// Declare your global variables here #define PushButton ((~PINA)>>4)

void main(void) {

unsigned int Compass_PV=0, counter = 0; unsigned int ADC[10];

unsigned char i=0,a=0,b=0; int k;

// 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=0xFF;

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=0x00;

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;

DDRF=0x00;

// 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=0x00;

(19)

B-3

// 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.

(20)

B-4

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=0x00; EIMSK=0x00;

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

ETIMSK=0x00;

// USART0 initialization

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

// USART0 Transmitter: On // USART0 Mode: Asynchronous // USART0 Baud rate: 115200 UCSR0A=0x00;

UCSR0B=0x18; UCSR0C=0x06; UBRR0H=0x00; UBRR0L=0x08;

// USART1 initialization

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

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

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

// Analog Comparator initialization // Analog Comparator: Off

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

SFIOR=0x00;

// ADC initialization

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

// LCD module initialization lcd_init(16);

(21)

B-5

while (1) {

if(PushButton == 0) // CEK ADC { GoHome(); while(1) { lcd_clear(); sprintf(LCD,"%d ",read_adc(1)); lcd_puts(LCD); delay_ms(500); } }

else if(PushButton == 2) //program utama {

while(1)

{ GoHomeBaru(); lcd_clear();

sprintf(LCD,"%d",read_adc(1),); lcd_puts(LCD);

delay_ms(100);

if(read_adc(1)== 120 && k==0) {

GoSalamPembuka(); delay_ms(100); k=1; }

if(read_adc(1)== 120 && k==1) {

GoTanjakKanan(); delay_ms(100); k=2; }

if(read_adc(1)== 120 && k==2) {

GoPrepareTrecekKiri(); GoTrecekKiri(); GoTrecekKiri(); GoHomeBaru(); delay_ms(100); k=3; }

if(read_adc(1)== 120 && k==3) {

GoJalanJongkok();

GoJalanJongkok();GoJalanJongkok(); delay_ms(100); k=4;

}

if(read_adc(1)== 120 && k==4) {

GoZonaTengah(); GoHomeBaru(); delay_ms(100); k=5; }

if(read_adc(1)== 120 && k==5) {

GoJalanJongkok();

GoJalanJongkok();GoJalanJongkok(); delay_ms(100); k=6;

}

if(read_adc(1)== 120 && k==6) {

(22)

B-6

}

if(read_adc(1)== 120 && k==7) {

GoJalanJongkok();

GoJalanJongkok();GoJalanJongkok(); delay_ms(100); k=8;

}

if(read_adc(1)== 120 && k==8) {

GoBelokKiri(); GoBelokKiri(); GoBelokKiri(); delay_ms(100); k=9; }

if(read_adc(1)== 120 && k==9) {

GoJalanJongkok();

GoJalanJongkok();GoJalanJongkok(); delay_ms(100); k=10;

}

if(read_adc(1)== 120 && k==9) {

GoSalamPenutup(); delay_ms(100); k=0; }

else if(read_adc(1)==! 120) { GoHomeBaru(); delay_ms(100); } //else; } }

else if(PushButton == 5) // Coba Tanjak Kanan { while(1) { GoTanjakKanan(); delay_ms(100); } }

else if(PushButton == 6) //Coba belok Kanan { while(1) { GoHome(); delay_ms(1000); while(1) { GoBelokKanan(); delay_ms(100); } } }

else if(PushButton == 7) //Coba belok kiri {

while(1) {

(23)

B-7

delay_ms(1000); while(1) { for(i=0;i<4;i++) { GoBelokKiri(); delay_ms(100); } } } }

else if(PushButton == 8) //Coba Trecek Kiri { while(1) { GoHome(); delay_ms(1000); while(1) { GoPrepareTrecekKiri(); GoTrecekKiri(); GoTrecekKiri(); GoTrecekKiri(); GoTrecekKiri(); delay_ms(500); } } }

else if(PushButton == 9) //Coba Trecek Kanan { while(1) { GoHome(); delay_ms(1000); GoPrepareTrecekKanan(); GoTrecekKanan(); GoTrecekKanan(); GoTrecekKanan(); GoTrecekKanan(); delay_ms(500); GoHomeBaru(); } }

else if(PushButton == 10) //Coba Jalan Jongkok { while(1) { GoHome(); delay_ms(1000); GoJalanJongkok(); } }

else if(PushButton == 11) //Coba Trecek Kiri {

}

(24)

B-8

{ while(1) { GoSeblak(); } }

else if(PushButton == 14) // read Line Sensor Result {

GoHome(); while(1) {

if(LineSensor() == 1) {

lcd_clear(); lcd_putsf("KIRI"); delay_ms(100); }

else if(LineSensor() == 2) {

lcd_clear();

lcd_putsf("KANAN"); delay_ms(100); }

else if(LineSensor() == 3) { lcd_clear(); lcd_putsf("BOTH"); delay_ms(100); } } }

else if(PushButton == 15) // read Line Sensor value {

GoHome(); while(1) {

lcd_clear();

sprintf(LCD,"%d %d %d %d\n%d %d %d %d", PINB.0, PINB.1, PINB.2, PINB.3, PINB.4, PINB.5, PINB.6, PINB.7);

lcd_puts(LCD); delay_ms(100); } } }; }

SUB PROGRAM UNTUK SSC-32

#include <string.h> #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)

(25)

B-9

#define RX_COMPLETE (1<<RXC)

flash int HomePosition[1][64] = { {2550,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,950,1500, 2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,600,600,600,600,600,600,600,600,600,600, 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600} };

(26)

B-10

{2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1747,2189,1539,1516,1461,1500,1373,1062,1 500,1470,1391,1550,1950,730,1491,1519,1461,1070,2339,1450,1509,600,600,600,600,600,600,600,600,600, 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,950,1500, 2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,600,600,600,600,600,600,600,600,600,600, 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600} };

flash int SalamPenutup[6][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,950,1500, 2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,600,600,600,600,600,600,600,600,600,600, 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1290,2189,1539,761,1461,1500,1261,1570,15 00,2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,600,600,600,600,600,600,600,600,600,6 00,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1880,1402,1539,761,1461,1500,1739,1021,15 00,2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,600,600,600,600,600,600,600,600,600,6 00,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1747,2189,1539,1516,1461,1500,1373,1062,1 500,1470,1391,1550,1950,730,1491,1519,1461,1070,2339,1450,1509,600,600,600,600,600,600,600,600,600, 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1958,2189,1539,1516,1461,1500,1164,1063,1 500,1470,1391,1550,1719,1181,1241,1519,1461,1300,1889,1700,1509,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1747,2189,1539,1516,1461,1500,1373,1062,1 500,1470,1391,1550,1950,730,1491,1519,1461,1070,2339,1450,1509,600,600,600,600,600,600,600,600,600, 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600} };

flash int BelokKiri[5][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1960,700,1491,1519,1430,1070,2370,1450,1461,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,838,2143,1539,761,1461,1500,1948,1043,150 0,2239,1391,1491,1980,700,1509,1639,1931,1029,2310,1481,1509,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,844,2080,1539,761,1461,1500,1878,1043,150 0,2239,1391,1491,1980,700,1509,1633,1683,1194,2310,1481,1573,700,700,700,700,700,700,700,700,700,70 0,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1063,2007,1539,761,1461,1500,2218,1043,15 00,2239,1391,1491,1980,700,1509,1633,1461,1131,2310,1481,1573,600,600,600,600,600,600,600,600,600,6 00,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1960,700,1491,1519,1430,1070,2370,1450,1461,900,900,900,900,900,900,900,900,900,90 0,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900} };

(27)

B-11

{2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1960,700,1491,1519,1430,1070,2370,1450,1461,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1488,1951,700,1548,1646,1427,1141,2310,1467,1552,300,300,300,300,300,300,300,300,300,30 0,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1205,1895,700,1567,1681,1427,1107,2310,1470,1552,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1205,1895,700,1589,1499,1427,1107,2310,1473,1552,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1205,1848,700,1509,1461,1427,1107,2310,1462,1333,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1504,1941,700,1509,1425,1427,1107,2310,1524,1391,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1960,700,1491,1519,1430,1070,2370,1433,1461,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600} };

flash int HomeBaru[1][64] = { {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1488,1951,700,1487,1519,1427,1065,2370,1452,1461,1000,1000,1000,1000,1000,1000,1000,10 00,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000, 1000,1000,1000,1000,1000} };

(28)

B-12

2239,1391,1550,1910,730,1491,1601,1461,1111,2349,1450,1603,600,600,600,600,600,600,600,600,600,600, 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,950,1500, 2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000} }; flash int Seblak[5][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1339,1461,1281,1519,1430,1665,1509,1742,1485,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1880,2500,1513,1459,1461,1739,1177,1298,1 500,2239,1391,1491,1307,1461,1281,1418,1430,1663,1509,1680,1300,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1307,1461,1281,1406,1430,1663,2108,1232,1379,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1852,1654,1539,761,1461,866,1177,1062,151 3,1487,1391,1491,1307,1461,1281,1515,1430,1663,2108,1232,1472,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1322,1518,1180,1854,1430,1693,1688,1609,1615,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000} }; flash int Prepare[3][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1951,700,1582,1672,1430,1065,2285,1503,1598,600,600,600,600,600,600,600,600,600,60 0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1710,1992,1539,698,1461,1627,1373,1062,15 41,1768,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,2000,2000,2000,2000,2000,2000,2000,2 000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,200 0,2000,2000,2000,2000,2000} };
(29)

B-13

};

flash int NguraiRikmo[2][64] = { {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1373,1992,1539,1459,1461,1627,500,1062,15 41,1992,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1200,1200,1200,1200,1200,1200,1200,1 200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,120 0,1200,1200,1200,1200,1200}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,2500,2218,1459,1346,1461,1373,1823,1062,1 541,1992,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1200,1200,1200,1200,1200,1200,1200, 1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,12 00,1200,1200,1200,1200,1200} }; flash int Berhias[6][64] = { {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1373,1992,1539,1459,1461,1823,838,1107,15 41,1768,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1373,1992,1539,1459,1461,1570,922,937,154 1,1768,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1000,1000,1000,1000,1000,1000,1000,10 00,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000, 1000,1000,1000,1000,1000}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1373,1992,1539,1459,1461,1852,500,1021,15 41,1768,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1373,1992,1539,1459,1461,1852,838,1277,15 41,1964,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1373,1992,1539,1459,1461,1739,1148,1000,1 541,1739,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1000,1000,1000,1000,1000,1000,1000, 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,10 00,1000,1000,1000,1000,1000}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1373,1992,1539,1459,1461,1739,980,1043,15 41,1654,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000} };

flash int Gaya[64] =

{2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1937,1290,1710,1 541,2302,1391,877,1439,985,1788,1548,1430,1692,1402,1795,1524,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000};

(30)

B-14

{2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1327,1851,730,1491,1410,1461,1064,2462,1411,1266,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1327,1851,730,1533,1700,1461,1064,2462,1411,1595,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1518,1877,730,1491,1519,1461,1064,2462,1411,1509,700,700,700,700,700,700,700,700,700,700, 700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700} };

flash int GeserKanan[6][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1518,1877,730,1491,1519,1461,1064,2397,1411,1509,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1518,1877,730,1491,1689,1461,1087,2372,1411,1609,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1518,1911,730,1560,1689,1636,1165,2368,1411,1609,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1518,1959,730,1442,1554,1636,1108,2397,1411,1503,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1518,2011,730,1442,1409,1636,1060,2414,1400,1310,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,952,1500, 2239,1391,1518,1877,730,1491,1519,1461,1064,2397,1411,1509,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000} };

(31)

B-15

{2550,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,950,1500, 2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,500,500,500,500,500,500,500,500,500,500, 500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500} };

flash int TrecekKiri[3][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1756,1261,1104,1408,2091,1294,2077,1421,1509,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1795,1261,1104,1603,2091,1557,2128,1248,1509,2000,2000,2000,2000,2000,2000,200 0,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2 000,2000,2000,2000,2000,2000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1795,1261,1104,1730,2091,1557,1600,1788,1509,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000} };

flash int TrecekKanan[3][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1795,1261,1104,1603,2091,1557,2128,1248,1509,2000,2000,2000,2000,2000,2000,200 0,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2 000,2000,2000,2000,2000,2000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1795,1261,1104,1730,2091,1557,1600,1788,1509,2000,2000,2000,2000,2000,2000,200 0,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2 000,2000,2000,2000,2000,2000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1795,1261,1104,1408,2091,1294,2077,1421,1509,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000} };

(32)

B-16

};

flash int PrepareKanan[4][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,950,1500, 2239,1391,1550,1910,730,1491,1519,1461,1111,2300,1450,1509,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1866,730,1516,1408,1461,1111,2339,1450,1294,1000,1000,1000,1000,1000,1000,1000, 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,10 00,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1853,730,1516,1397,2091,1183,2233,1450,1509,1000,1000,1000,1000,1000,1000,1000, 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,10 00,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1816,2164,1539,1380,1461,1500,1290,1710,1 541,2302,1391,1550,1795,1261,1104,1408,2091,1294,2077,1421,1509,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000} };

(33)
(34)

B-18

{2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,2020,2189,1539,1459,1461,1710,866,923,154 1,2106,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1000,1000,1000,1000,1000,1000,1000,10 00,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000, 1000,1000,1000,1000,1000}, {2420,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,2020,2189,1539,1063,1461,1710,866,923,154 1,1739,1391,877,1318,1063,1788,1603,1430,1764,1337,1795,1541,1000,1000,1000,1000,1000,1000,1000,10 00,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000, 1000,1000,1000,1000,1000} };

flash int JalanJongkok[5][64] = { {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1339,1461,1281,1519,1430,1665,1509,1742,1485,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1307,1461,1281,1418,1430,1663,1509,1680,1300,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1307,1461,1281,1406,1430,1663,2108,1232,1379,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1307,1461,1281,1515,1430,1663,2108,1232,1472,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000}, {2500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,981,2189,1539,761,1461,1500,2069,1062,150 0,2239,1391,1491,1322,1518,1180,1854,1430,1693,1688,1609,1615,1000,1000,1000,1000,1000,1000,1000,1 000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,100 0,1000,1000,1000,1000,1000} };

// 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;

}

(35)

B-19

void SendUSART1(char text[]){ int i=0;

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

putchar1(text[i]); }

}

void Movement(flash int position[]) {

unsigned char i,Pin; unsigned int Time; int LastValue = 0; char text[32]; for(i=0; i<32; i++) {

Pin = i;

Time = position[i+32];

sprintf(text,"#%d P%d T%d \r", Pin, position[i], Time); SendUSART1(text);

if(Time > LastValue){ LastValue = Time; } } delay_ms(LastValue); } void GoHome() { lcd_clear(); sprintf(LCD,"Home Position\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); Movement(HomePosition[0]); } void GoHomeBaru() { lcd_clear();

sprintf(LCD,"I'm CHRENJI\n From MCU%d",LineSensor()); lcd_puts(LCD); delay_ms(100); Movement(HomeBaru[0]); } void GoJalanJongkok() {

(36)

B-20

void GoBelokKiri() {

unsigned char i; lcd_clear(); sprintf(LCD,"Belok Kiri\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<5;i++) { Movement(BelokKiri[i]); } } void GoBelokKanan() {

unsigned char i; lcd_clear(); sprintf(LCD,"Belok Kanan\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<6;i++) { Movement(BelokKanan[i]); } } void GoLeft() {

unsigned char i; lcd_clear(); sprintf(LCD,"Turn Left\n%d",LineSensor()); lcd_puts(LCD); delay_ms(20); for(i=0;i<7;i++) { Movement(TurnLeft[i]); }

LineSensorValue = LineSensor(); }

// void GoRight() // {

// unsigned char i; //

// lcd_clear();

// sprintf(LCD,"Turn Right\n%d",LineSensor()); // lcd_puts(LCD);

// delay_ms(20); //

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

// Movement(TurnRight[i]); // }

(37)

B-21

void GoPrepare() {

unsigned char i; lcd_clear(); sprintf(LCD,"Kuda-Kuda\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<3;i++) { Movement(Prepare[i]); } } void GoTrecekEnd() {

unsigned char i; lcd_clear(); sprintf(LCD,"Selesai Trecek\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<4;i++) { Movement(TrecekEnd[i]); } } void GoSalamPembuka() {

unsigned char i;

lcd_clear();

sprintf(LCD,"hi I'm CHRENJI\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<7;i++) { Movement(SalamPembuka[i]); } } void GoSalamPenutup() {

unsigned char i;

lcd_clear();

sprintf(LCD,"see you soon\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<6;i++) { Movement(SalamPenutup[i]); } } void GoTanjakKanan() {

(38)

B-22

lcd_clear(); sprintf(LCD,"Tanjak Kanan\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<7;i++) { Movement(TanjakKanan[i]); } } void GoSeblak() {

unsigned char i; lcd_clear(); sprintf(LCD,"Seblak\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<10;i++) { Movement(Seblak[i]); if(i == 2 || i == 6) {

delay_ms(800); if(i == 6) {

LineSensorValue = LineSensor(); } } } } void GoTrecekKanan() {

unsigned char i; lcd_clear(); sprintf(LCD,"Trecek Kanan\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<3;i++) { Movement(TrecekKanan[i]); if(i == 3)

{ delay_ms(500); } } } void GoPrepareTrecekKanan() {

(39)

B-23

{ Movement(PrepareKanan[i]); } } void GoTrecekKiri() {

unsigned char i; lcd_clear(); sprintf(LCD,"Trecek Kiri\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<3;i++) { Movement(TrecekKiri[i]); if(i == 3)

{ delay_ms(500); } } } void GoPrepareTrecekKiri() {

unsigned char i;

lcd_clear();

sprintf(LCD," prepare Trecek Kiri\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<4;i++) { Movement(PrepareTrecekKiri[i]); } } void GoKlatBahu() {

unsigned char i,j; lcd_clear(); sprintf(LCD,"Klat Bahu\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(j=0;j<5;j++) { for(i=0;i<2;i++) { Movement(KlatBahu[i]); } } } void GoNguraiRikmo() {

unsigned char i,j;

lcd_clear();

(40)

B-24

delay_ms(100); for(j=0;j<3;j++) { for(i=0;i<2;i++) { Movement(NguraiRikmo[i]); } } } void GoBerhias() {

unsigned char i; lcd_clear(); sprintf(LCD,"Berhias\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<6;i++) { Movement(Berhias[i]); delay_ms(1000); } } void GoZonaTengah() {

unsigned char i; lcd_clear(); sprintf(LCD,"Zona Tengah\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<25;i++) { Movement(ZonaTengah[i]); delay_ms(1000); } } void GoGaya() { lcd_clear(); sprintf(LCD,"CHRENJI V1.1"); lcd_puts(LCD); delay_ms(100); Movement(Gaya); } void GoGeserKiri() {

(41)

B-25

Movement(GeserKiri[i]);

}

LineSensorValue = LineSensor(); }

void GoGeserKanan() {

unsigned char i; lcd_clear(); sprintf(LCD,"GeserKanan\n%d",LineSensor()); lcd_puts(LCD); delay_ms(100); for(i=0;i<6;i++) { Movement(GeserKanan[i]); }

LineSensorValue = LineSensor(); }

void End() {

lcd_clear();

lcd_putsf("It is the end of the move"); delay_ms(100);

}

SUB PROGRAM UNTUK LINE SENSOR #define RIGHT_SENSOR (PINB & 0x07)

#define LEFT_SENSOR (PINB & 0xF0)

unsigned char LineSensor() {

char data; delay_ms(500);

if (LEFT_SENSOR != 0x00) {

data = 1; }

if (RIGHT_SENSOR != 0x00) {

data = 2; }

if ((LEFT_SENSOR != 0x00) && (RIGHT_SENSOR != 0x00)) {

data = 0; }

(42)

LAMPIRAN C

DATASHEET

ATMEGA 128 SMD………

C-1

FLOWSTONE

………

..

C-6

FLOWBOARD

……….

C-8

(43)

C-1

(44)
(45)
(46)
(47)
(48)
(49)
(50)
(51)
(52)
(53)
(54)
(55)
(56)

C-14

(57)

C-15

(58)
(59)
(60)
(61)
(62)
(63)
(64)
(65)
(66)
(67)

1

Universitas Kristen Maranatha

BAB I

PENDAHULUAN

Bab ini membahas tentang latar belakang masalah, identifikasi masalah,

perumusan masalah, tujuan, pembatasan masalah, serta sistematika penulisan laporan

Tugas Akhir.

I.1

Latar Belakang Masalah

Akhir-akhir ini banyak diselenggarakan kompetisi robot yang bertujuan untuk

menumbuhkembangkan ilmu pengetahuan dan teknologi. Kontes Robot Seni

Indonesia (KRSI) merupakan sebuah kompetisi robot yang diadakan setiap tahun oleh

Direktorat Jenderal Pendidikan Tinggi (dikti). KRSI sudah terselenggara 3 kali yaitu

pada Tahun 2009, Tahun 2010, dan Tahun 2011. Tahun ini KRSI diadakan dengan

peraturan yang lebih menantang.

Dengan memilih tari Klono Topeng dari daerah Yogyakarta, KRSI tahun ini

mewajibkan robot dapat berjalan dengan kedua kaki seperti layaknya manusia.

Tahun-tahun sebelumnya, robot penari diperbolehkan bergerak maju dengan roda

mengikuti garis.

Robot pada kompetisi KRSI ini didesain agar dapat menari berbagai jenis

gerakan dasar tari Klono Topeng dengan mengikuti lintasan yang ada dan mulai

menari dan berjalan ketika gamelan pengiring dimainkan.

I.2

Identifikasi Masalah

Tugas Akhir ini memerlukan robot humanoid yang dapat membedakan jenis

suara instrumen gamelan Klono Topeng dengan suara lainnya untuk dapat menari tari

(68)

2

Universitas Kristen Maranatha

I.3

Perumusan Masalah

Perumusan yang akan dibahas pada Tugas Akhir ini adalah:

1.

Bagaimana membuat robot yang dapat menari tari Klono Topeng?

2.

Bagaimana robot dapat mendeteksi suara gamelan Klono Topeng walaupun

diberi gangguan suara lain?

I.4

Tujuan

Tugas Akhir ini bertujuan untuk merealisasikan sebuah robot humanoid dengan

kemampuan menari tari Klono Topeng dan membedakan suara instrumen gamelan

Klono Topeng dengan suara lainnya.

I.5

Pembatasan Masalah

Pada Tugas Akhir ini pembatasan masalah yang ditentukan adalah:

1.

Perancangan dan realisasi robot tidak mengikuti semua aturan lomba KRSI

2011 yang dicantumkan pada sistem perlombaan dan spesifikasi robot.

Beberapa aturan yang tidak diikuti pada Tugas Akhir ini adalah :

a.

Robot harus dirancang untuk dapat mendengarkan alunan musik melalui

“telinga” atau sensor suara tanpa melalui kabel.

b.

Robot harus menari mengikuti garis dari zona awal sampai zona akhir

dengan waktu tempuh 3 menit.

2.

Pemrosesan sinyal suara dilakukan oleh aplikasi FlowStone yang ada di PC.

3.

Terdapat pengiriman informasi deteksi suara berupa tegangan melalui kabel

dari PC ke ATMEGA 128 SMD.

4.

Robot hanya mendeteksi suara nada saron pada gamelan Klono topeng dan

(69)

3

Universitas Kristen Maranatha

I.6

Sistematika Penulisan

Sistematika penulisan untuk Tugas Akhir ini adalah sebagai berikut:

BAB I. PENDAHULUAN

Bab ini berisi tentang latar belakang masalah, identifikasi masalah, perumusan

masalah, tujuan, pembatasan masalah, dan sistematika penulisan laporan Tugas

Akhir.

BAB II. LANDASAN TEORI

Pada bab ini dijelaskan mengenai Kontes Robot Seni Indonesia (KRSI) 2011,

teori-teori penunjang yang diperlukan dalam merancang dan merealisasikan robot

humanoid yaitu berupa teori tentang robot humanoid, sensor-sensor, dan pengontrol

mikro.

BAB III. PERANCANGAN DAN REALISASI

Pada bab ini dijelaskan tentang perancangan dan realisasi sistem robot humanoid

penari Klono Topeng, perancangan dan realisasi rangkaian sensor dan pengontrol,

serta algoritma pemrograman robot penari Klono Topeng.

BAB IV. DATA PENGAMATAN DAN ANALISI DATA

Pada bab ini ditampilkan data-data hasil pengamatan kinerja robot, pengujian

kemampuan robot membedakan suara gamelan Klono Topeng dengan gangguan lain,

dan analisis mengenai data pengamatan yang sudah didapat.

BAB V. SIMPULAN DAN SARAN

Bab ini berisi tentang simpulan-simpulan yang didapat dari keseluruhan perancangan

dan realisasi robot penari Klono Topeng dari awal sampai akhir. Lalu bab ini juga

(70)

64

Universitas Kristen Maranatha

BAB V

SIMPULAN DAN SARAN

Bab ini berisi tentang simpulan-simpulan yang didapat dari keseluruhan perancangan dan

realisasi robot penari Klono Topeng dari awal sampai akhir. Lalu bab ini juga berisi saran yang

diberikan untuk penelitian lebih lanjut oleh pihak lain.

V.1

Simpulan

Dalam merancang dan merealisasikan robot penari Klono Topeng ini, dapat disimpulkan

beberapa hal seperti berikut:

1.

Robot dapat menari gerakan dasar tarian Klono Topeng dengan cara menggerakan

servo-servo yang ada dengan SSC-32 sebagai pengontrol servo yang mendapat input

data serial dari ATMEGA 128. Persentase keberhasilan robot melakukan gerakan

dasar tarian rata-rata 100% untuk gerakan Salam Pembuka, Seblak, Zona Tengah,

Belok Kiri, dan Belok Kanan. Gerakan Trecek Kiri dan dan Tanjak Kanan memiliki

persentase keberhasilan 80%.

2.

Robot dapat mendeteksi suara gamelan Klono Topeng (saron) meskipun diberi

gangguan. Persentase keberhasilan untuk deteksi suara saron ketika musik gamelan

dimainkan, dihentikan sejenak, dan diberi beberapa jenis gangguan adalah 100%.

Deteksi suara gamelan Klono Topeng yaitu saron menggunakan Program FlowStone

dengan cara mengidentifikasi frekuensi fundamental bukan dengan cara membedakan

warna suaranya. Kelemahan dari metoda ini adalah jika robot mendengar suara lain

yang sama dengan frekuensi nada saron maka robot akan menganggap suara itu

adalah suara saron.

V.2

Saran

Saran-saran yang dapat diberikan untuk hasil yang lebih baik dan pengembangan dari

Tugas Akhir ini di masa mendatang adalah:

1.

Membuat program pada FlowStone yang dapat membedakan suara alat musik secara

(71)

65

Universitas Kristen Maranatha

2.

Membuat robot tidak perlu terhubung dengan PC melalui kabel. Hal ini dapat

(72)

66

Universitas Kristen Maranatha

DAFTAR PUSTAKA

1.

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

2008.

2.

Chandra, F dan Deni. Jago Elektronika. Jakarta: PT Kawan Pustaka, 2011.

3.

Erick V. Cuevas, Daniel Zaldivar, Raul Rojas, Bipedal Robot Description, 2005.

4.

Kenji Kaneko, et.al, Design of Prototye Humanoid Robotics Platform for

HRP

”Proceedings of the 2002 IEEE/RSJ, Intl. Conference on Intelligent Robots and

Systems EPFL, Lausanne, Switzerland, 2002.

5.

Olson, Harry. Musical Engineering. New Jersey: McGraw-Hill Book Company, Inc,

1952.

6.

Shiavi, Richard. Introduction To Applied Statistical Signal Analysis: Guide To

Biomedical Andelectrical Engineering Applications.London: Elsevier, 2007.

7.

Sinclair, Ian R. dan John Dunton. Practical Electronic Handbook. Oxford: Elsevier, 2007

8.

http://pdf1.alldatasheet.com/datasheet-pdf/view/56260/ATMEL/ATMEGA128.html

diakses tanggal 21 Juni 2011

9.

http://www.dikti.go.id/files/dp2m/Kontes%20Robot%20Seni%20Indonesia%202011.pdf

diakses 31 Mei 2011

Referensi

Dokumen terkait

Menjadi sangat mungkin apa yang dilakukan Thailand adalah manifastasi dalam bentuk tindakan untuk menjawab “tantangan” dari Singapura yang selama ini maju berkat posisi

Also, because individuals in a negative mood are less likely to help others compared with individuals in a neutral mood but a distant helping event may draw more altruistic

27 Jika dikonversi, apakah mandatory atau optional N/A 28 Jika dikonversi, sebutkan jenis instrumen konversinya N/A 29 Jika dikonversi, sebutkan issuer of instrument it converts

Pada prinsipnya suatu alat ukur dikatakan reliabel jika alat ukur tersebut mampu menunjukkan sejauhmana pengukurannya memberi hasil yang relatif sama bila dilakukan pengukuran

Dalam peneliian tindakan kelas ini, untuk melihat hasil kerja siswa secara kelompok digunakan LKS. LKS ini dimaksudkan untuk memberikan kesempatan kepada siswa

kemudian dibawa ke seluruh jaringan tubuh untuk dipakai sebagai bahan bakar serta membawa CO2 dari jaringan tubuh hasil metabolisme ke paru- paru untuk dibuang. HUBUNGAN

Telkom Indonesia DIVRE V JATIM (Divisi Regional V Jawa Timur), hal ini dilakukan untuk mencari pengaruh advertising, personal selling, sales promotion dan

Adapun tujuan yang ingin dicapai dalam penelitian ini adalah untuk mengetahui karakteristik tindakan, konteks, historis, kekuasaan dan ideologi dalam novel /wa nasītu annī