Aplikasi Perintah Suara Untuk Menggerakan Robot.

(1)

APLIKASI PERINTAH SUARA UNTUK MENGGERAKKAN ROBOT

Disusun Oleh :

Nama : Astron Adrian

Nrp : 0422014

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

Email : tron_lennon@yahoo.com

ABSTRAK

Semakin berkembangnya suatu negara, maka semakin banyak aplikasi teknologi yang diterapkan dalam kehidupan sehari-hari. Salah satu bentuk teknologi yang banyak digunakan adalah bidang robotika. Kendali untuk robot dapat berupa remote, sensor cahaya, sensor suara, dan lain sebagainya.

Pada Tugas Akhir ini, robot mobil beroda dibentuk menggunakan bahan akrilik serta menggunakan motor dc sebagai penggerak. Robot dikontrol menggunakan pengontrol mikro ATmega16. Filter digunakan sebagai perangkat keras untuk memperoleh ciri dari tiap sinyal suara.

Sistem yang digunakan pada robot beroda ini adalah menggunakan masing-masing perintah suara untuk menggerakkan robot untuk bergerak sesuai dengan perintah yang diucapkan. Perintah suara berupa rekaman yang telah disimpan di MP3 player. Sinyal masuk ke amplifier terlebih dahulu untuk dikuatkan, lalu masuk ke filter. Sinyal tersebut dicuplik untuk memperoleh besar tegangan pada masing-masing frekuensi, agar bisa mendapatkan informasi yang berbeda pada tiap perintah. Informasi tiap perintah suara akan diprogram pada mikro untuk bergerak sesuai dengan perintah tersebut.

Berdasarkan percobaan yang dilakukan, aplikasi perintah suara untuk menggerakkan robot menggunakan perintah suara “maju”, “mundur”, “kiri”, “kanan”, dan “berhenti” belum berhasil dengan baik dengan tingkat keberhasilan rata-rata hanya mencapai 58%. Sedangkan aplikasi perintah suara untuk menggerakkan robot menggunakan perintah suara “a”, “e”, dan “o” berhasil dengan tingkat keberhasilan rata-rata mencapai 86,67%.

Kata Kunci : Robot Beroda, Suara Manusia, Pengontrol Mikro ATmega16,

Filter.

Universitas Kristen Maranatha


(2)

THE APPLICATION OF VOICES COMMAND TO MOVE A ROBOT

Composed by :

Name : Astron Adrian Nrp : 0422014

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

Email : tron_lennon@yahoo.com

ABSTRACT

The more developed a country, the more applications of technology that are used in daily life. One of the most-used technologies is robotic. The robot can be controlled by remote controls, light sensor, voice sensor and others.

In this Final Project, the wheeled-car robot is built using acrylic material and dc motors as the actuator. The robot is controlled by an ATmega 16 microcontroller. Meanwhile, a filter is used as the hardware in order to get the characteristics of every voice signals.

The system that is used in this wheeled robot is the voice signal. The voice is to move the robot so that it will move according to the voice command given. The voice command is a record saved in MP3 Player. Firstly, the voice signal goes to the amplifier and then the filter. The signal will be sampled in order to get the voltage in each frequency, so that it can get different information on each command. The information of each command then will be programmed in the microcontroller so the robot can move according to the command given.

Based on the experiments done, application of voices to move a robot using “maju”, “mundur”, “kiri”, “kanan” and “berhenti” is not successfully, the average successful level is only 58%. While application of voices using “a”, “e”, and “o” is successful with the success average level is 86.67%.

Keyword : Wheel Robot, Human Voice, ATmega16 Microcontroller, Filter.

Universitas Kristen Maranatha


(3)

DAFTAR ISI

Halaman

ABSTRAK ... i

ABSTRACT... ii

KATA PENGANTAR ... iii

DAFTAR ISI... v

DAFTAR TABEL... viii

DAFTAR GAMBAR ... ix

BAB I PENDAHULUAN I.1 Latar Belakang... 1

I.2 Identifikasi Masalah... 1

I.3 Perumusan Masalah ... 1

I.4 Tujuan ... 2

I.5 Pembatasan Masalah... 2

I.6 Spesifikasi Alat ... 2

I.7 Sistematika Penulisan ... 2

BAB II LANDASAN TEORI II.1 Sinyal Suara... 4

II.1.1 Sinyal Suara dalam Domain Waktu dan Domain Frekuensi ... 6

II.1.1.1 Discrete Fourier Transform ... 7

II.1.2 Analisa dalam Domain Frekuensi ... 8

II.2 Filter ... 9

II.2.1 Low Pass Filter ... 10

II.2.1 High Pass Filter ... 12

II.2.1 Band Pass Filter ... 13

II.3 Rangkaian Penyearah ... 15

II.4 Pengontrol Mikro ... 17

II.4.1 Pengontrol Mikro ATmega16... 18

Universitas Kristen Maranatha


(4)

II.4.1.1 Fitur ATmega16 ... 18

II.4.1.2 Konfigurasi Pin ATmega16... 19

II.4.1.3 Diagram Blok ATmega16 ... 21

II.4.1.4 General Purpose Register ATmega16 ... 22

II.4.1.5 Peta Memori ATmega16 ... 23

II.4.1.6 PWM (Pulse Width Modulation) ATmega16... 25

II.5 Robotika ... 26

II.5.1 Definisi Robot ... 27

II.5.2 Alasan Pemakaian Robot... 27

II.5.3 Sistem Kontrol Robotik... 28

II.5.4 Jenis Sistem Gerak Robot Beroda ... 30

II.5.4.1 Differential Drive ... 30

II.5.4.2 Trycycle Drive ... 30

II.5.4.3 Synchronous Drive ... 31

II.5.4.3 Holonomic Drive ... 32

BAB III PERANCANGAN DAN REALISASI III.1 Perancangan Sistem Robot Beroda ... 33

III.2 Perancangan dan Realisasi Robot Beroda... 34

III.3 Perancangan dan Realisasi Rangkaian Filter dan Amplifier ... 35

III.3.1 Amplifier... 35

III.3.2 Filter... 37

III.3.2.1 Rangkaian Penyearah Setengah Gelombang... 41

III.3.3 Penentuan Range Perintah Suara ... 41

III.4 Pengontrol ... 44

III.4.1 Skematik Pengontrol Berbasis Pengontrol Mikro ATmega16.. 44

III.4.2 PWM ATmega16 ... 46

III.4.1 ADC ATmega16 ... 46

III.5 Algoritma Pemrograman Robot Beroda... 46

Universitas Kristen Maranatha


(5)

BAB IV DATA PENGAMATAN DAN ANALISA

IV.1 Pengecekan Bandwidth pada Filter ... 49

IV.2 Perbandingan Tegangan Nilai Output Filter... 52

IV.3 Percobaan Perintah Suara ... 55

IV.3.1 Percobaan Perintah Suara Berulang... 55

IV.3.2 Percobaan Perintah Suara Tidak Berulang ... 55

IV.4 Percobaan Menggerakkan Robot dengan Input Sinyal dari Oscillator ... 56

IV.5 Percobaan Pengucapan ”a” ”e” dan ”o” untuk Menggerakkan Robot ... 57

BAB V KESIMPULAN DAN SARAN V.1 Kesimpulan ... 60

V.2 Saran ... 60

DAFTAR PUSTAKA ... 61 LAMPIRAN A FOTO ROBOT BERODA

LAMPIRAN B FOTO ANALISA SINYAL PADA OSCILLOSCOPE LAMPIRAN C PROGRAM PADA PENGONTROL MIKRO ATMEGA16 LAMPIRAN D DATASHEET

Universitas Kristen Maranatha


(6)

DAFTAR TABEL

Halaman

Tabel 2.1 Fungsi Khusus Port B ... 20

Tabel 2.2 Fungsi Khusus Port C ... 20

Tabel 2.3 Fungsi Khusus Port D ... 21

Tabel 3.1 Range untuk Maju ... 41

Tabel 3.2 Range untuk Mundur... 42

Tabel 3.3 Range untuk Kiri ... 42

Tabel 3.4 Range untuk Kanan ... 43

Tabel 3.5 Range untuk Berhenti... 43

Tabel 4.1 Perbandingan Tegangan Nilai Output Filter pada LCD dan Oscilloscope... 53

Tabel 4.2 Perbandingan Tegangan Nilai Output Filter pada LCD dan Digital Multimeter ... 54

Tabel 4.3 Pengukuran Menggunakan Digital Multimeter... 58

Tabel 4.4 Percobaan Menggerakkan Robot Maju, Mundur, dan Berhenti ... 58

Universitas Kristen Maranatha


(7)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Diagram Sinyal Analog dan Sinyal Digital... 5

Gambar 2.2 Diagram Model Sistem Produksi Suara ... 5

Gambar 2.3 Bentuk Spectrogram dan Waveform “a-i-u-e-o”... 7

Gambar 2.4 Spektral Frekuensi Kalimat “a-i-u-e-o” ... 8

Gambar 2.5 Domain Waktu dengan Domain Frekuensi ... 9

Gambar 2.6 Low Pass Filter Aktif... 10

Gambar 2.7 Karakteristik Low Pass Filter ... 11

Gambar 2.8 Butterworth Low Pass Filter ... 12

Gambar 2.9 High Pass Filter Aktif... 12

Gambar 2.10 Karakteristik High Pass Filter ... 13

Gambar 2.11 Butterworth High Pass Filter... 13

Gambar 2.12 Band Pass Filter... 14

Gambar 2.13 Karakteristik Band Pass Filter ... 14

Gambar 2.14 Sinyal Masukan ... 15

Gambar 2.15 Rangkaian Penyearah Setengah Gelombang... 15

Gambar 2.16 Sinyal Keluaran Setengah Gelombang... 16

Gambar 2.17 Rangkaian Penyearah Gelombang Penuh ... 16

Gambar 2.18 Sinyal Keluaran Gelombang Penuh ... 16

Gambar 2.19 Rangkaian Penyearah Gelombang Penuh dengan Filter Kapasitor ... 17

Gambar 2.20 Sinyal Keluaran Gelombang Penuh dengan Filter Kapasitor ... 17

Gambar 2.21 Konfigurasi Pin ATmega16 ... 19

Gambar 2.22 Diagram Blok ATmega16 ... 22

Gambar 2.23 General Purpose Register ATmega16 ... 23

Gambar 2.24 Peta Memori Program ATmega16 ... 24

Gambar 2.25 Peta Memori Data ATmega16... 24

Gambar 2.26 Phase & Frequency Correct PWM... 25

Universitas Kristen Maranatha


(8)

Gambar 2.27 Aibo... 27

Gambar 2.28 Kontrol Robot Loop Terbuka... 28

Gambar 2.29 Kontrol Robot Loop Tertutup ... 29

Gambar 2.30 Sistem Gerak Differential Drive ... 30

Gambar 2.31 Sistem Gerak Trycycle Drive ... 31

Gambar 2.32 Sistem Gerak Synchronous Drive ... 31

Gambar 2.33 Penggunaan Roda Omni-Directional ... 32

Gambar 2.34 Sistem Gerak Holonomic Drive ... 32

Gambar 3.1 Diagram Blok Sistem Jalan Robot ... 33

Gambar 3.2 Dimensi Robot Beroda ... 34

Gambar 3.3 Posisi Motor DC ... 35

Gambar 3.4 Rangkaian Amplifier... 35

Gambar 3.5 Skematik Amplifier... 36

Gambar 3.6 Rangkaian Band Pass Filter... 37

Gambar 3.7 Skematik Band Pass Filter... 38

Gambar 3.8 Sinyal Keluaran Setengah Gelombang... 41

Gambar 3.9 Skematik Pengontrol Berbasis Pengontrol Mikro ATmega16... 45

Gambar 3.10 Diagram Alir Algoritma Pemrograman Robot... 48

Gambar 4.1 Sinyal Frekuensi Rendah Teredam ... 50

Gambar 4.2 Sinyal Frekuensi Diloloskan ... 51

Gambar 4.3 Sinyal Frekuensi Tinggi Teredam ... 51

Gambar 4.4 Tampilan Sinyal Suara ... 57

Gambar 4.5 Pola Gerak Robot ke Arah Depan ... 59

Gambar 4.6 Pola Gerak Robot Berbelok... 59

Universitas Kristen Maranatha


(9)

LAMPIRAN A


(10)

TAMPAK DEPAN


(11)

TAMPAK SAMPING DEPAN


(12)

TAMPAK ATAS


(13)

LAMPIRAN B


(14)

TAMPILAN SINYAL INPUT DAN OUTPUT


(15)

SINYAL MASUKAN DAN SINYAL KELUARAN SETENGAH GELOMBANG


(16)

SINYAL MASUKAN DAN SINYAL KELUARAN GELOMBANG PENUH


(17)

LAMPIRAN C

PROGRAM PADA PENGONTROL MIKRO

ATMEGA16


(18)

PROGRAM UTAMA

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

CodeWizardAVR V1.25.3 Professional Automatic Program Generator

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

Project : Version : Date : 6/11/2009

Author : Lab Instrumentasi Company : UKM Comments:

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

External SRAM size : 0 Data Stack size : 256

*****************************************************/ #include <mega16.h> #include <stdio.h> #include <math.h> #include <delay.h> void baca_data(void);

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

#include <lcd.h>

#define ADC_VREF_TYPE 0x60 // Read the 8 most significant bits // of the AD conversion result

unsigned char 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 ADCH; }

// Declare your global variables here int temp1,temp2,temp3,temp4; float vin1,vin2,vin3,vin4; char satu[16]; char dua[16]; char tiga[16]; char empat[16]; C-1


(19)

void main(void) {

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

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

DDRA=0x00; // Port B initialization

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

DDRB=0x00; // Port C initialization

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

DDRC=0x00; // Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

PORTD=0x00; DDRD=0xFF;

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

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 43.200 kHz

// Mode: Ph. correct PWM top=01FFh // OC1A output: Non-Inv.

// OC1B output: Non-Inv. // 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 TCCR1A=0xA2; TCCR1B=0x04; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; C-2


(20)

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

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

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

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

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

// Analog Comparator initialization // Analog Comparator: Off

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

SFIOR=0x00; // ADC initialization

// ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AVCC pin // ADC Auto Trigger Source: None // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;

// LCD module initialization lcd_init(16);

lcd_putsf("astRon adRian'04:: maju doonk ::"); delay_ms(1000);

DDRD.4=1; DDRD.5=1;

OCR1A=255; // =PORTD.5 enable OCR1B=230; // =PORTD.4 enable while (1)

{

// Place your code here baca_data();

delay_ms(50);

if ( (vin1>=0.53) && (vin1<=0.69) && (vin2>=0.25) && (vin2<=0.31) && (vin3>=0.08) && (vin3<=0.14) && (vin4>=0.08) && (vin4<=0.12) )

{ //maju DDRD=255;

PORTD.0=0; // kanan PORTD.1=1; PORTD.2=0; // kiri PORTD.3=1; }


(21)

if ( (vin1>=1.00) && (vin1<=1.04) && (vin2>=0.55) && (vin2<=0.61) && (vin3>=0.16) && (vin3<=0.25) && (vin4>=0.00) && (vin4<=0.02) )

{ //mundur DDRD=255; PORTD.0=1; // kanan PORTD.1=0;

PORTD.2=1; // kiri PORTD.3=0; }

if ( (vin1>=0.55) && (vin1<=0.57) && (vin2>=0.12) && (vin2<=0.23) && (vin3>=0.00) && (vin3<=0.08) && (vin4>=0.24) && (vin4<=0.35) )

{ //kiri

delay_ms(800); DDRD=255; PORTD.0=1; // kanan PORTD.1=0;

PORTD.2=0; // kiri PORTD.3=1;

}

if ( (vin1>=0.35) && (vin1<=0.37) && (vin2>=0.21) && (vin2<=0.24) && (vin3>=0.06) && (vin3<=0.18) && (vin4>=0.22) && (vin4<=0.23) )

{ //kanan DDRD=255; PORTD.0=0; // kanan PORTD.1=1;

PORTD.2=1; // kiri PORTD.3=0;

}

if ( (vin1>=0.02) && (vin1<=0.04) && (vin2>=0.01) && (vin2<=0.17) && (vin3>=0.05) && (vin3<=0.27) && (vin4>=0.06) && (vin4<=0.21) )

{ //stop

DDRD=255; PORTD.0=0; // kanan PORTD.1=0;

PORTD.2=0; // kiri PORTD.3=0; } }; } void baca_data(void) { lcd_clear(); temp1=read_adc(0); temp2=read_adc(1); temp3=read_adc(2); temp4=read_adc(3); C-4


(22)

vin1=((float)temp1*5/255); vin2=((float)temp2*5/255); vin3=((float)temp3*5/255); vin4=((float)temp4*5/255); sprintf(satu,"A:%0.2f ",vin1); sprintf(dua,"B:%0.2f ",vin2); sprintf(tiga,"C:%0.2f ",vin3); sprintf(empat,"D:%0.2f ",vin4); lcd_gotoxy(0,0);

lcd_puts(satu); lcd_puts(dua); lcd_gotoxy(0,1); lcd_puts(tiga); lcd_puts(empat); printf("A:%0.2f ",vin1); printf("B:%0.2f ",vin2); printf("C:%0.2f ",vin3); printf("D:%0.2f ",vin4); }


(23)

PROGRAM TAMBAHAN

(SINYAL MASUKAN BERASAL DARI OSCILLATOR) /*****************************************************

This program was produced by the CodeWizardAVR V1.25.3 Professional Automatic Program Generator

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

Project : Version : Date : 6/24/2009

Author : Lab Instrumentasi Company : UKM Comments:

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

External SRAM size : 0 Data Stack size : 256

*****************************************************/ #include <mega16.h> #include <stdio.h> #include <math.h> #include <delay.h> void baca_data(void);

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

#include <lcd.h>

#define ADC_VREF_TYPE 0x60 // Read the 8 most significant bits // of the AD conversion result

unsigned char 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 ADCH; }

// Declare your global variables here int temp1,temp2,temp3,temp4; float vin1,vin2,vin3,Vin4; char satu[16]; char dua[16]; char tiga[16]; char empat[16]; C-6


(24)

void main(void) {

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

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

DDRA=0x00; // Port B initialization

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

DDRB=0x00; // Port C initialization

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

DDRC=0x00; // Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

PORTD=0x00; DDRD=0xFF;

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

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 43.200 kHz

// Mode: Ph. correct PWM top=01FFh // OC1A output: Non-Inv.

// OC1B output: Non-Inv. // 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 TCCR1A=0xA2; TCCR1B=0x04; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; C-7


(25)

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

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

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

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

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

// Analog Comparator initialization // Analog Comparator: Off

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

SFIOR=0x00; // ADC initialization

// ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AVCC pin // ADC Auto Trigger Source: None // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;

// LCD module initialization lcd_init(16);

lcd_putsf("astRon adRian'04:: maju doonk ::"); delay_ms(1000);

DDRD.4=1; DDRD.5=1;

OCR1A=255; // =PORTD.5 enable OCR1B=230; // =PORTD.4 enable while (1)

{

// Place your code here

baca_data(); delay_ms(50);

if ( (vin>=4.00) && (vin1>=0.00) && (vin1<=3.00) && (vin2>=0.00) && (vin2<=3.00) && (vin3>=0.00) && (vin3<=3.00))

{ //maju DDRD=255;

PORTD.0=0; // kanan PORTD.1=1; PORTD.2=0; // kiri PORTD.3=1; }


(26)

if ( (vin>=0.00) && (vin<=2.00) && (vin1>=4.00) && (vin2>=0.00) && (vin2<=2.00) && (vin3>=0.00) && (vin3<=2.00))

{ //mundur DDRD=255;

PORTD.0=1; // kanan PORTD.1=0; PORTD.2=1; // kiri PORTD.3=0; }

}; }

void baca_data(void) {

lcd_clear();

temp1=read_adc(0); temp2=read_adc(1); temp3=read_adc(2); temp4=read_adc(3); vin=((float)temp1*5/255); vin1=((float)temp2*5/255); vin2=((float)temp3*5/255); vin3=((float)temp4*5/255);

lcd_gotoxy(0,0);

sprintf(satu,"A:%0.2f ",vin1); sprintf(dua,"B:%0.2f ",vin2); sprintf(tiga,"C:%0.2f ",vin3); sprintf(empat,"D:%0.2f ",vin4); lcd_puts(satu);

lcd_puts(dua); lcd_gotoxy(0,1); lcd_puts(tiga); lcd_puts(empat); }


(27)

LAMPIRAN D

DATASHEET


(28)

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.

I.1 Latar Belakang

Saat ini, semua orang ingin praktis dalam segala hal. Misalnya pada TV, tape, AC, mobil, dibuat remote untuk mengendalikannya pada jarak tertentu. Pengendali-pengendali seperti itu dibuat untuk memudahkan orang mengendalikan sesuatu. Begitu juga di dunia robot, orang ingin mengendalikan robot bahkan hanya dengan otak, membuat robot melakukan perintah yang sedang dipikirkan oleh orang tersebut.

Mengendalikan robot dapat dilakukan dengan berbagai cara, misalnya menggunakan remote, sensor kompas, sensor cahaya, sensor panas, sensor suara, dan lain sebagainya. Agar orang yang memiliki keterbatasan fisik tetap bisa mengendalikan robot dengan kendali yang digunakan berupa perintah-perintah suara manusia.

I.2 Identifikasi Masalah

Masalah yang akan diidentifikasi dalam tugas akhir ini adalah bagaimana membuat robot yang dapat digerakkan dengan perintah suara.

I.3 Perumusan Masalah

Perumusan masalah pada tugas akhir ini adalah bagaimana menggerakkan robot melalui perintah suara.


(29)

BAB I PENDAHULUAN 2

I.4 Tujuan

Tujuan pada tugas akhir ini adalah merealisasikan robot yang dapat bergerak melalui perintah suara.

I.5 Pembatasan Masalah

Pembatasan masalah pada tugas akhir ini dibatasi oleh :

1. Robot hanya bergerak maju, mundur, ke kiri, ke kanan, dan berhenti sesuai perintah suara.

2. Perintah suara berasal dari MP3 player dengan media kabel.

3. Lintasan yang dilewati robot berupa medan yang rata tidak ada rintangan atau halangan.

I.6 Spesifikasi Alat

Spesifikasi alat adalah sebagai berikut :

1. Menggunakan AVR Atmega16 sebagai pengontrol mikro.

2. Menggunakan MP3 player.

3. Menggunakan band pass filter dengan 4 buah keluaran frekuensi berbeda, yaitu:

• Filter 1 : 300 – 1000 Hz.

• Filter 2 : 1000 – 1700 Hz.

• Filter 3 : 1700 – 2400 Hz.

• Filter 4 : 2400 – 3400 Hz.

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, serta sistematika penulisan laporan tugas akhir.


(30)

BAB I PENDAHULUAN 3

BAB II LANDASAN TEORI

Pada bab ini dijelaskan mengenai teori-teori penunjang yang diperlukan dalam merancang dan mengaplikasikan perintah suara untuk menggerakkan robot yaitu berupa teori tentang sinyal suara, filter, pengontrol mikro, dan robot.

BAB III PERANCANGAN DAN REALISASI

Pada bab ini dijelaskan tentang perancangan amplifier, filter suara, perancangan dan realisasi robot beroda, pengontrol, penentuan range perintah suara, serta algoritma pemrograman robot beroda.

BAB IV ANALISA DAN DATA PENGAMATAN

Pada bab ini dijelaskan tentang proses pengambilan data pengamatan, pengujian

filter, pengujian sinyal keluaran, dan percobaan perintah suara untuk

menggerakkan robot, serta analisisnya. BAB V KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.


(31)

BAB V

KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.

V.1 Kesimpulan

Dalam merealisasikan dan memprogram robot beroda yang bergerak

menggunakan perintah suara, dapat disimpulkan beberapa hal seperti berikut : 1. Aplikasi perintah suara untuk menggerakkan robot menggunakan kata “maju”,

“mundur”, “kiri”, “kanan”, dan “berhenti” belum berhasil dengan baik dikarenakan tidak bisa menentukan nilai yang stabil untuk memprogram mikro dengan melihat amplitudo dari perintah sinyal masukan tersebut, serta cara proses sinyal yang kurang benar dalam penentuan range tiap perintah suara.

2. Percobaan menggerakkan robot dengan input sinyal dari oscillator berhasil karena sinyalnya lebih stabil dibandingkan dengan sinyal suara.

3. Percobaan menggerakkan robot dengan menggunakan kata “a”, “e”, dan “o”

berhasil dengan persentase keberhasilan 86,67%.

V.2 Saran

Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan Tugas Akhir ini di masa mendatang adalah :

1. Pemakaian perintah-perintah suara yang lebih mudah dibedakan dari frekuensi dan amplitudonya antara masing-masing perintah suara.

Universitas Kristen Maranatha


(32)

DAFTAR PUSTAKA

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

2008.

2. Budiharto, W., Panduan Praktikum : Mikrokontroler AVR Atmega16, Jakarta : Gramedia, 2008.

3. Kurnia, J., Laporan Tugas Akhir : Realisasi Robot Mobil Tank untuk

Menjelajahi Medan yang Tidak Rata, Teknik Elektro, Universitas Kristen

Maranatha, Bandung, 2008.

4. Pitowarno, E., Robotika Disain, Kontrol, Dan Kecerdasan Buatan, Edisi ke-1, Yogyakarta:Andi, 2006.

5.

http://ocw.gunadarma.ac.id/course/diploma-three-program/study-program-of-computer-engineering-d3/robotika/pengantar-robotika. 6. http://www.atmel.com.

7. http://www.cnx.org/content/m13778/latest/.

8. http://www.courses.cit.cornell.edu/ee476/FinalProjects/s2006/avh8_css34/avh 8_css34/index.html

9. http://www.ecelab.com/circuit-butterworth-lp.htm.

10.http://www.education.tm.agilent.com/index.cgi?CONTENT_ID=13.

11.http://www.en.wikibooks.org/wiki/Engineering_Acoustics/Print_version. 12.http://www.id.wikipedia.org/wiki/Transformasi_Fourier.

13.http://www.id.wikipedia.org/wiki/Transformasi_Fourier_cepat. 14.http://www.id.wikipedia.org/wiki/Transformasi_Fourier_diskrit.

15.http://www.lecturer.eepis-its.edu/~tribudi/LN_SIP_Prak/rev_01_Speech__ prak_3_Matlab.pdf.

16.http://www.scribd.com/doc/3634041/Dasar-Teori-Pengenalan-Suara

17.http://www.trensains.com/rectifier.htm

18.http://www.users5.nofeehost.com/tiqi2007/Penggunaan_Transformasi_Fourier

_pada_Domain_Frekuensi.pdf.

19.http://www.zone.ni.com/devzone/cda/tut/p/id/3342

Universitas Kristen Maranatha


(1)

LAMPIRAN D

DATASHEET


(2)

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.

I.1 Latar Belakang

Saat ini, semua orang ingin praktis dalam segala hal. Misalnya pada TV, tape, AC, mobil, dibuat remote untuk mengendalikannya pada jarak tertentu. Pengendali-pengendali seperti itu dibuat untuk memudahkan orang mengendalikan sesuatu. Begitu juga di dunia robot, orang ingin mengendalikan robot bahkan hanya dengan otak, membuat robot melakukan perintah yang sedang dipikirkan oleh orang tersebut.

Mengendalikan robot dapat dilakukan dengan berbagai cara, misalnya menggunakan remote, sensor kompas, sensor cahaya, sensor panas, sensor suara, dan lain sebagainya. Agar orang yang memiliki keterbatasan fisik tetap bisa mengendalikan robot dengan kendali yang digunakan berupa perintah-perintah suara manusia.

I.2 Identifikasi Masalah

Masalah yang akan diidentifikasi dalam tugas akhir ini adalah bagaimana membuat robot yang dapat digerakkan dengan perintah suara.

I.3 Perumusan Masalah

Perumusan masalah pada tugas akhir ini adalah bagaimana menggerakkan robot melalui perintah suara.


(3)

BAB I PENDAHULUAN 2

I.4 Tujuan

Tujuan pada tugas akhir ini adalah merealisasikan robot yang dapat bergerak melalui perintah suara.

I.5 Pembatasan Masalah

Pembatasan masalah pada tugas akhir ini dibatasi oleh :

1. Robot hanya bergerak maju, mundur, ke kiri, ke kanan, dan berhenti sesuai perintah suara.

2. Perintah suara berasal dari MP3 player dengan media kabel.

3. Lintasan yang dilewati robot berupa medan yang rata tidak ada rintangan atau halangan.

I.6 Spesifikasi Alat

Spesifikasi alat adalah sebagai berikut :

1. Menggunakan AVR Atmega16 sebagai pengontrol mikro. 2. Menggunakan MP3 player.

3. Menggunakan band pass filter dengan 4 buah keluaran frekuensi berbeda, yaitu:

• Filter 1 : 300 – 1000 Hz.

• Filter 2 : 1000 – 1700 Hz.

• Filter 3 : 1700 – 2400 Hz.

• Filter 4 : 2400 – 3400 Hz.

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, serta sistematika penulisan laporan tugas akhir.


(4)

BAB I PENDAHULUAN 3

BAB II LANDASAN TEORI

Pada bab ini dijelaskan mengenai teori-teori penunjang yang diperlukan dalam merancang dan mengaplikasikan perintah suara untuk menggerakkan robot yaitu berupa teori tentang sinyal suara, filter, pengontrol mikro, dan robot.

BAB III PERANCANGAN DAN REALISASI

Pada bab ini dijelaskan tentang perancangan amplifier, filter suara, perancangan dan realisasi robot beroda, pengontrol, penentuan range perintah suara, serta algoritma pemrograman robot beroda.

BAB IV ANALISA DAN DATA PENGAMATAN

Pada bab ini dijelaskan tentang proses pengambilan data pengamatan, pengujian filter, pengujian sinyal keluaran, dan percobaan perintah suara untuk menggerakkan robot, serta analisisnya.

BAB V KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.


(5)

BAB V

KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.

V.1 Kesimpulan

Dalam merealisasikan dan memprogram robot beroda yang bergerak menggunakan perintah suara, dapat disimpulkan beberapa hal seperti berikut : 1. Aplikasi perintah suara untuk menggerakkan robot menggunakan kata “maju”,

“mundur”, “kiri”, “kanan”, dan “berhenti” belum berhasil dengan baik dikarenakan tidak bisa menentukan nilai yang stabil untuk memprogram mikro dengan melihat amplitudo dari perintah sinyal masukan tersebut, serta cara proses sinyal yang kurang benar dalam penentuan range tiap perintah suara.

2. Percobaan menggerakkan robot dengan input sinyal dari oscillator berhasil karena sinyalnya lebih stabil dibandingkan dengan sinyal suara.

3. Percobaan menggerakkan robot dengan menggunakan kata “a”, “e”, dan “o” berhasil dengan persentase keberhasilan 86,67%.

V.2 Saran

Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan Tugas Akhir ini di masa mendatang adalah :

1. Pemakaian perintah-perintah suara yang lebih mudah dibedakan dari frekuensi dan amplitudonya antara masing-masing perintah suara.

Universitas Kristen Maranatha 60


(6)

DAFTAR PUSTAKA

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

2. Budiharto, W., Panduan Praktikum : Mikrokontroler AVR Atmega16, Jakarta : Gramedia, 2008.

3. Kurnia, J., Laporan Tugas Akhir : Realisasi Robot Mobil Tank untuk Menjelajahi Medan yang Tidak Rata, Teknik Elektro, Universitas Kristen Maranatha, Bandung, 2008.

4. Pitowarno, E., Robotika Disain, Kontrol, Dan Kecerdasan Buatan, Edisi ke-1, Yogyakarta:Andi, 2006.

5. http://ocw.gunadarma.ac.id/course/diploma-three-program/study-program-of-computer-engineering-d3/robotika/pengantar-robotika.

6. http://www.atmel.com.

7. http://www.cnx.org/content/m13778/latest/.

8. http://www.courses.cit.cornell.edu/ee476/FinalProjects/s2006/avh8_css34/avh 8_css34/index.html

9. http://www.ecelab.com/circuit-butterworth-lp.htm.

10. http://www.education.tm.agilent.com/index.cgi?CONTENT_ID=13. 11. http://www.en.wikibooks.org/wiki/Engineering_Acoustics/Print_version. 12. http://www.id.wikipedia.org/wiki/Transformasi_Fourier.

13. http://www.id.wikipedia.org/wiki/Transformasi_Fourier_cepat. 14. http://www.id.wikipedia.org/wiki/Transformasi_Fourier_diskrit.

15. http://www.lecturer.eepis-its.edu/~tribudi/LN_SIP_Prak/rev_01_Speech__ prak_3_Matlab.pdf.

16. http://www.scribd.com/doc/3634041/Dasar-Teori-Pengenalan-Suara 17. http://www.trensains.com/rectifier.htm

18. http://www.users5.nofeehost.com/tiqi2007/Penggunaan_Transformasi_Fourier _pada_Domain_Frekuensi.pdf.

19. http://www.zone.ni.com/devzone/cda/tut/p/id/3342

Universitas Kristen Maranatha 61