Aplikasi pengenalan ucapan untuk lengan robot penulis angka.

(1)

INTISARI

Kehidupan manusia tidak jauh dengan teknologi. Teknologi sangat membantu dalam menyelesaikan tugas dan pekerjaan manusia. Menggunakan ucapan manusia sebagai pengganti tombol untuk sebuah alat akan menjadi lebih efisien dibandingkan dengan hanya menggunkan tombol saja. Atas dasar tersebut penulis membuat sistem pengenalan suara untuk lengan robot. Secara khusus lagi, penulis membuat sistem pengenalan ucapan angka 0 – 9 untuk lengan robot menulis.

Sistem pengenalan ucapan angka ini menggunakan mikrofon untuk merekam ucapan. Ucapan yang terekam diproses menggunakan laptop untuk menjalankan proses pengenalan dan mengenali ucapan yang terekam. Proses pengenalan ucapan meliputi beberapa subproses diantaranya merekam, pre-emphasis, normalisasi, pemotongan sinyal,

framing dan windowing, ekstraksi ciri, fungsi korelasi, k-NN, dan penentuan hasil ucapan pengenalan. Lengan robot sebagai lengan untuk menulis menggunakan minimum sistem dengan ATMEGA32 untuk mengatur pergerakan motor servo pada lengan robot.

Pengenalan ucapan untuk menjalankan lengan robot penulis angka berjalan dengan baik untuk 3 user. Program pengenalan ucapan angka mampu mengenali 10 jenis angka (satu, dua, tiga, empat, lima, enam, tujuh, delapan, sembilan, nol). Sistem pengenalan ucapan menggunakan fungsi korelasi. Program pengenalan sudah berhasil dibuat dan dapat bekerja sesuai dengan yang diharapkan. Pada program pengenalan ini menampilkan gelombang ucapan terekam, ekstraksi ciri DFT, dan keluaran berupa tulisan angka yang berhasil dikenali. Pada program ini didapatkan parameter terbaik pada nilai

segmen averaging 8 dan nilai k pada k-NN 1. Hasil pengenalan secara real time dengan menggunakan nilai thresholding mampu mengenali semua user dengan sebesar 85,33%.


(2)

ABSTRACT

Human life is not far form technology. Technology is very helpful in completing human tasks and work. Using human speech instead of a button for an appliance would be more efficient than just using the buttons itself. Based on this the author make a voice recognition system for the robot arm. In particular, the authors made a speech recognition system of numbers 0-9 for the robot arm to write.

This number speech recognition systems use a microphone for recording speech. Recorded speech processed using a laptop to run the recognition process and recognize the recorded speech. The Speech recognition process includes several subprocesses such as : recording, pre-emphasis, normalization, cutting signal, framing and windowing, feature extraction, correlation function, k-NN, and the determination of speech recognition results. As the arm of the robot arm to write it is used the ATMEGA32, minimum system with servo motors to regulate the movement of the robot arm

Speech recognition usage to movement robot,s arm for writing have gone well for 3 user. The speech recognition program is able to recognize 10 types of numbers (one, two, three, four, five, six, seven, eight, nine, zero). Speech recognition system used correlation function. Introduction program has been created and it could work as expected. At the introduction of the program showing the recorded speech wave, DFT feature extraction, and output a successful writing recognizable number. In this program, parameter best in the value segment averaging 8 and the value of k at k-NN number 1. The result with thresholding able to recognize 85.33% for all users.


(3)

TUGAS AKHIR

APLIKASI PENGENALAN UCAPAN UNTUK

LENGAN ROBOT PENULIS ANGKA

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Oleh :

YOHANNES CHRYSOSTOMOS HENDRO YUWONO NIM : 115114024

PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA


(4)

i

TUGAS AKHIR

APLIKASI PENGENALAN UCAPAN UNTUK

LENGAN ROBOT PENULIS ANGKA

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Oleh :

YOHANNES CHRYSOSTOMOS HENDRO YUWONO NIM : 115114024

PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA


(5)

ii

FINAL PROJECT

SPEECH RECOGNITION APPLICATION FOR

ROBOTIC ARM NUMBERS WRITER

Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree

In Electrical Engineering Study Program

YOHANNES CHRYSOSTOMOS HENDRO YUWONO NIM : 115114024

ELECTRICAL ENGINEERING STUDY PROGRAM DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY

YOGYAKARTA 2015


(6)

iii

HALAMAN PERSETUJUAN

TUGAS AKHIR

APLIKASI PENGENALAN UCAPAN UNTUK LENGAN

ROBOT PENULIS ANGKA

( SPEECH RECOGNITION APPLICATION FOR ROBOTIC

ARM NUMBERS WRITER )

Oleh

:

YOHANNES CHRYSOSTOMOS HENDRO YUWONO NIM : 115114024

Telah disetujui oleh :

Pembimbing


(7)

iv

HALAMAN PENGESAHAN

TUGAS AKHIR

APLIKASI PENGENALAN UCAPAN UNTUK LENGAN

ROBOT PENULIS ANGKA

( SPEECH RECOGNITION APPLICATION FOR ROBOTIC

ARM NUMBERS WRITER )

Oleh :

YOHANNES CHRYSOSTOMOS HENDRO YUWONO NIM : 115114024

Telah dipertahankan di depan panitia penguji pada tanggal_____________

dan dinyatakan memenuhi syarat

Susunan Panitia Penguji

Nama Lengkap Tanda Tangan

Ketua : Dr. Iswanjono _____________

Sekretaris : Dr. Linggo Sumarno _____________

Anggota : Wiwien Widyastuti, S.T.,M.T. _____________

Yogyakarta,

Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan,


(8)

v

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.

Yogyakarta,


(9)

vi

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

MOTTO :

Mintalah, maka akan diberikan kepadamu; carilah,

maka kamu akan mendapat; ketuklah, maka pintu

akan dibukakan bagimu

(Mat 7:7)

Dengan ini kupersembah karyaku untuk

…..

Yesus Kristus dan Bunda Maria yang selalu mendampingiku dalam

keadaan apapun

Orang tua yang selalu kucintai

Teman-temanku yang selalu saling menyemangati


(10)

vii

LEMBAR PERNYATAN PERSETUJUAN PUBLIKASI

KARYA ILMIAH UNTUK KEPENTINGAN

AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : Yohannes Chrysostomos Hendro Yuwono Nomor Mahasiswa : 115114024

Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

APLIKASI PENGENALAN UCAPAN UNTUK LENGAN

ROBOT PENULIS ANGKA

beserta perangkat yang diperlukan ( bila ada ). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetapmencatumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Yogyakarta,


(11)

viii

INTISARI

Kehidupan manusia tidak jauh dengan teknologi. Teknologi sangat membantu dalam menyelesaikan tugas dan pekerjaan manusia. Menggunakan ucapan manusia sebagai pengganti tombol untuk sebuah alat akan menjadi lebih efisien dibandingkan dengan hanya menggunkan tombol saja. Atas dasar tersebut penulis membuat sistem pengenalan suara untuk lengan robot. Secara khusus lagi, penulis membuat sistem pengenalan ucapan angka 0 – 9 untuk lengan robot menulis.

Sistem pengenalan ucapan angka ini menggunakan mikrofon untuk merekam ucapan. Ucapan yang terekam diproses menggunakan laptop untuk menjalankan proses pengenalan dan mengenali ucapan yang terekam. Proses pengenalan ucapan meliputi beberapa subproses diantaranya merekam, pre-emphasis, normalisasi, pemotongan sinyal,

framing dan windowing, ekstraksi ciri, fungsi korelasi, k-NN, dan penentuan hasil ucapan pengenalan. Lengan robot sebagai lengan untuk menulis menggunakan minimum sistem dengan ATMEGA32 untuk mengatur pergerakan motor servo pada lengan robot.

Pengenalan ucapan untuk menjalankan lengan robot penulis angka berjalan dengan baik untuk 3 user. Program pengenalan ucapan angka mampu mengenali 10 jenis angka (satu, dua, tiga, empat, lima, enam, tujuh, delapan, sembilan, nol). Sistem pengenalan ucapan menggunakan fungsi korelasi. Program pengenalan sudah berhasil dibuat dan dapat bekerja sesuai dengan yang diharapkan. Pada program pengenalan ini menampilkan gelombang ucapan terekam, ekstraksi ciri DFT, dan keluaran berupa tulisan angka yang berhasil dikenali. Pada program ini didapatkan parameter terbaik pada nilai

segmen averaging 8 dan nilai k pada k-NN 1. Hasil pengenalan secara real time dengan menggunakan nilai thresholding mampu mengenali semua user dengan sebesar 85,33%.


(12)

ix

ABSTRACT

Human life is not far form technology. Technology is very helpful in completing human tasks and work. Using human speech instead of a button for an appliance would be more efficient than just using the buttons itself. Based on this the author make a voice recognition system for the robot arm. In particular, the authors made a speech recognition system of numbers 0-9 for the robot arm to write.

This number speech recognition systems use a microphone for recording speech. Recorded speech processed using a laptop to run the recognition process and recognize the recorded speech. The Speech recognition process includes several subprocesses such as : recording, pre-emphasis, normalization, cutting signal, framing and windowing, feature extraction, correlation function, k-NN, and the determination of speech recognition results. As the arm of the robot arm to write it is used the ATMEGA32, minimum system with servo motors to regulate the movement of the robot arm

Speech recognition usage to movement robot,s arm for writing have gone well for 3 user. The speech recognition program is able to recognize 10 types of numbers (one, two, three, four, five, six, seven, eight, nine, zero). Speech recognition system used correlation function. Introduction program has been created and it could work as expected. At the introduction of the program showing the recorded speech wave, DFT feature extraction, and output a successful writing recognizable number. In this program, parameter best in the value segment averaging 8 and the value of k at k-NN number 1. The result with thresholding able to recognize 85.33% for all users.


(13)

x

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus karena telah memberikan rahmat-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir ini dengan baik.Laporan tugas akhir ini disusun untuk memenuhi syarat memperoleh gelar sarjana.

Selama pembuatan tugas akhir ini penulis menyadari bahwa ada begitu banyak pihak yang telah memberikan bantuan baik bantuan materi, moral maupun dukungan. Oleh karena itu penulis ingin mengucapkan terimakasih kepada :

1. Petrus Setyo Prabowo, S.T., M.T., Ketua Program Studi Teknik Elektro Universitas Sanata Dharma.

2. Dr.Linggo Sumarno, dosen pembimbing yang dengan penuh setia, kesabaran dan pengertian untuk membimbing dalam menyelesaikan Tugas Akhir ini.. 3. Bapak Dr. Iswanjono dan ibu Wiwien Widyastutu, S.T.,M.T selaku dosen

penguji yang telah member masukan dan kritik dalam penulisan Tugas Akhir ini

4. Bapak dan Ibu dosen yang telah mengajarkan banyak ilmu yang bermanfaat selama menempuh pendidikan di Universitas Sanata Dharma.

5. Segenap laboran dan karyawan Fakultas Sains dan Teknologi yang telah memberikan dukungan secara tidak langsung dalam kelancaran penulis mengerjakan penulisan tulisan tugas akhir ini.

6. Kedua orang tua penulis yang telah banyak memberikan dukungan doa, kasih sayang dan motivasi selama menempuh pendidikan di Universitas Sanata Dharma.

7. Teman – teman seperjuangan Teknik Elektro 2011 yang telah menemani di pada saat menempuh pendidikan di Universitas Sanata Dhama.

8. Semua pihak yang tidak bisa disebutkan satu persatu yang telah banyak memberikan banyak bantuan dan dukungan dalam menyelesaikan tugas akhir ini.


(14)

xi

Penulis menyadari bahwa dalam penyusunan laporan tugas akhir masih mengalami kesulitan dan tidak lepas dari kesalahan.Oleh karena itu, penulis mengharapkan masukan, kritik dan saran yang membangun agar skripsi ini menjadi lebih baik.Dan semoga skripsi ini dapat bermanfaat sebagaimana mestinya.

Yogyakarta,

Penulis,


(15)

xii

DAFTAR ISI

Halaman

HALAMAN JUDUL

. ... i

HALAMAN PERSETUJUAN

.. ... iii

HALAMAN PENGESAHAN

. ... iv

PERNYATAAN KEASLIAN KARYA

. ... v

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

... vi

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA

ILMIAH UNTUK KEPENTINGAN AKADEMIS

. ... vii

INTISARI

. ... viii

ABSTRACT

. ... ix

KATA PENGANTAR

. ... x

DAFTAR ISI

. ... xii

DAFTAR GAMBAR

. ... xvi

DAFTAR TABEL. ...

xix

BAB I PENDAHULUAN

1.1. Latar Belakang. ... 1

1.2. Tujuan dan Manfaat Penelitian ... 2

1.3. Batasan Masalah ... 2

1.4. Metodologi Penelitian ... 3

BAB II DASAR TEORI

2.1. Lengan Robot ... 3

2.2. Mikrokontroler AVR ATMEGA32 ... 5

2.2.1. Arsitektur AVR ATMEGA32 ... 5

2.2.2. Deskripsi Mikrokontroler AVR ATMEGA32 ... 6

2.2.3. Interupsi ... 7

2.2.4. Timer/Counter 0 ... 7

2.2.5. Komunikasi Serial USART ... 9

2.3. LCD(Liquid Crystal Display) ... 13


(16)

xiii

2.5. Torsi/momen gaya ... 16

2.6. Sinyal suara Manusia... 16

2.7. Sampling ... 16

2.8. Preprocessing ... 17

2.8.1. Pre Emphasis ... 17

2.8.2. Normalisasi ... 17

2.8.3. Pemotongan SInyal... 19

2.8.1 Zero Padding ... 20

2.9 Framing ... 21

2.10. Windowing ... 21

2.10.1. Hamming ... 22

2.11. Ektraksi Ciri DFT ... 22

2.11.1. Pengertian DFT ... 22

2.11.1. Segment Averaging ... 23

2.12. Template Maching ... 24

2.12.1. Korelasi ... 24

2.13. K - nearest neighbor ... 25

2.14. Mikrofon ... 25

2.15. SoundCard... ... 26

2.16. Motor Servo………………... 27

BAB III PERANCANGAN

3.1. Proses Kerja ... 29

3.2. Perancangan Mekanik Lengan Robot... 30

3.3. Perancangan Perangkat Keras ... 32

3.3.1. Minimum sistem Atmega8535 + LCD 16x2 ... 32

3.3.1.1. Minimum sistem Atmega8535 ... 32

3.3.1.2. Rangkaian Konfigurasi LCD 16x2 ... 33

3.3.2. Motor Servo ... 34

3.3.3. Regulator IC 7805dan Transistor Penguat Arus ... 36

3.3.4. Soundcard ... 36

3.3.5. Headset ... 36

3.4. Perhitungan Torsi Motor Servo ... 37


(17)

xiv

3.5.1. Antarmuka Program ... 38

3.5.2. Proses Pengenalan Suara Pada Matlab ... 39

3.5.2.1. Sampling ... 40

3.5.2.2. Pre-emphasis ... 41

3.5.2.3. Normalisasi ... 41

3.5.2.4. Pemotongan sinyal ... 42

3.5.2.5. Framing dan Windowing ... 43

3.5.2.6. Ekstraksi ciri DFT ... 44

3.5.2.7. Korelasi ... 45

3.5.2.8. Klasifikasi K-nn dan penentuan keluaran ... 46

3.5.2.9. Proses pengiriman Serial ... 47

3.5.4. Perancangan Pembentukan Database Ucapan ... 48

3.5.5. Bentuk Angka Digital ... 48

3.5.6. Proses Flowchart Program Lengan robot ... 49

BAB IV HASIL DAN PEMBAHASAN

4.1. Implementasi Lengan Robot ... 61

4.1.1. Bentuk Fisik Hardware ... 61

4.1.2. Sistem Elektronik ... 61

4.1.3.

Pengaturan Lengan Robot

... 62

4.1.4. Pengendalian Komunikasi USART... ... 63

4.1.5. Pengendalian Motor Servo... ... 63

4.2. Implementasi GUI Matlab dan Program Pengenalan Ucapan ... 65

4.2.1. Pop Up Menu... ... 66

4.2.2. Tombol Rekam... ... 68

4.2.3. Tombol Reset... ... 76

4.2.3. Tombol Keluar... ... 77

4.3. Pengujian Sudut Motor Servo... ... 77

4.4. Pengujian Untuk Tingkat Pengenalan Ucapan... ... 79

4.4.1. Pengujian Pengenalan Ucapan Secara Tidak Real Time... ... 79

4.4.2. Pengujian Pengenalan Secara RealTime... ... 83

4.4.3. Pengujian Real Time Tanpa Nilai Thresholding Untuk penentuan Database... ... 84


(18)

xv

4.5. Hasil Pengujian Tulisan dari Lengan Robot... ... 93

BAB V KESIMPULAN DAN SARAN

5.1. Kesimpulan ... 95

5.2. Saran ... . 95

DAFTAR PUSTAKA

... 96


(19)

xvi

DAFTAR GAMBAR

Halaman

Gambar 2.1. Manipulator pada robot lengan ... 4

Gambar 2.2. Konfigurasi Pin Mikrokontroler ATmega32 ... 6

Gambar 2.3. Mode Phase Correct PWM ... 8

Gambar 2.4. Mode Fast PWM ... 9

Gambar 2.5. Register UDR ... 10

Gambar 2.6. Register UCSRA ... 10

Gambar 2.7. Register UCSRB ... 11

Gambar 2.8. Register UCSRB ... 12

Gambar 2.9. Konfigurasi kaki pin LCD ... 13

Gambar 2.10. Rangkaian umum regulator 78xx ... 15

Gambar 2.11. Rangkaian catu daya dengan penguat. ... 15

Gambar 2.12. Tampilan Proses Sampling ... 17

Gambar 2.13. Contoh hasil proses sampling ... 18

Gambar 2.14. Contoh hasil proses normalisasi ... 18

Gambar 2.15. Proses Pemotongan Sinyal ... 19

Gambar 2.16. Proses zero padding. ... 20

Gambar 2.17. Proses framing... ... 21

Gambar 2.18. Proses Windowing... ... 21

Gambar 2.19. Contoh Hasil DFT... 23

Gambar 2.20. contoh segmen averaging dengan 16 segmen... ... 24

Gambar 2.21. Headset INTOPIC JAZZ 660.. ... 26

Gambar 2.22 Bentuk Sound Card PC/Laptop ... 26

Gambar 2.23 Model fisik motor servo... 27

Gambar 2.22 Cara pengontrolan motor servo ... 28

Gambar 3.1. Arsitektur Sistem.. ... 29

Gambar 3.2. Design lengan robot secara keseluruhan... 30

Gambar 3.3. komponen bagian 1 ... 30

Gambar 3.4. komponen bagian 2 ... 30


(20)

xvii

Gambar 3.6. design awal ujung lengan robot ... 31

Gambar 3.7. Rangkaian Osilator ATmega32 ... 32

Gambar 3.8. Rangkaian Reset ATmega32 ... 33

Gambar 3.9. Skematik LCD 16x2 ... 33

Gambar 3.10. SettingPort LCD ... 34

Gambar 3.11. Rangkaian pin motor servo ... 34

Gambar 3.12. Lebar pulsa motor servo ... 35

Gambar 3.13. Rangkaian regulator 7805 dengan penguatan arus ... 36

Gambar 3.14. konstruksi lengan robot ... 37

Gambar 3.15. Tampilan Program Utama ... 39

Gambar 3.16. Blok Diagram Pengenalan Ucapan ... 40

Gambar 3.17. Diagram Blok sampling ... 40

Gambar 3.18. proses Pre-emphasis ... 41

Gambar 3.19. Diagram Blok Normalisasi ... 42

Gambar 3.20. Diagram Pemotongan Sinyal... 42

Gambar 3.21. Diagram proses framing... 44

Gambar 3.22. Diagram Blok ekstraksi ciri DFT …... 45

Gambar 3.23. Diagram Alir Proses Pembandingan Korelasi... 45

Gambar 3.24. Diagram alur K-NN dan penentuan suara hasil pengenalan ... 46

Gambar 3.25. Flowchart program komunikasi serial dengan MATLAB ... 47

Gambar 3.26. Alur Pembentukan Database…….…... 48

Gambar 3.27. Bentuk angka digital ………..…... 49

Gambar 3.28. Flowchart Program Lengan Robot Saat Posisi Siaga... 53

Gambar 3.29. Flowchart Program Lengan Robot saat menulis angka 0... 53

Gambar 3.30. Flowchart Program Lengan Robot saat menulis angka 1... 54

Gambar 3.31. Flowchart Program Lengan Robot saat menulis angka 2... 54

Gambar 3.32. Flowchart Program Lengan Robot saat menulis angka 3... 55

Gambar 3.33. Flowchart Program Lengan Robot saat menulis angka 4... 55

Gambar 3.34. Flowchart Program Lengan Robot saat menulis angka 5... 56

Gambar 3.35. Flowchart Program Lengan Robot saat menulis angka 6... 56

Gambar 3.36. Flowchart Program Lengan Robot saat menulis angka 7... 57

Gambar 3.37. Flowchart Program Lengan Robot saat menulis angka 8... 57


(21)

xviii

Gambar 3.39. Fowchart penulisan angka keseluruhan ... 59

Gambar 3.40. (lanjutan) Flowchart penulisan angka ... 60

Gambar 4.1. Lengan Robot Tampak Atas ... 61

Gambar 4.2. Lengan Robot Tampak Samping... 61

Gambar 4.3 Minimum System……….... 62

Gambar 4.4. Regulator... 62

Gambar 4.5. Tampilan GUI Program Pengenalan. ... 66

Gambar 4.25a. Bentuk hasil penulisan angka ... 93


(22)

xix

DAFTAR TABEL

Halaman

Tabel 2.1. Hubungan PIN dan Interupsi ... 7 Tabel 2.2. Penentuan Ukuran Karakter ... 12 Tabel 2.3. Operasi Dasar LCD 16x2 ... 13 Tabel 2.4. Karakteristik Regulator Tegangan ic 78xx ... 14 Tabel 2.5. Tabel spesifikasi mikrofon pada headset INTOPIC JAZZ 660 ... 25 Tabel 2.6. Spesifikasi servo Towerpro MG946R ... 27 Tabel 3.1. ukuran bagian-bagian lengan robot ... 31 Tabel 3.2. Perhitungan nilai overflow interrupt ... 35 Tabel 3.3. berat yang ditanggung servo ... 38 Tabel 3.4. Keterangan Tampilan User... ... 39 Tabel 3.5. Pengucapan kata dan data yang dikirim... ... 48 Tabel 3.6. Gerak sudut motor servo... 49 Tabel 4.1. Tabel Fungsi Saluran Mikrokontroler. ... 62 Tabel 4.2. Nilai OCR pada pergerakan 10 derajat motor servo ... 78 Tabel 4.3. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R ... 78 Tabel 4.4. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak RealTime 80 Tabel 4.5. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak RealTime 80 Tabel 4.6. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak RealTime 80 Tabel 4.7. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak RealTime 80 Tabel 4.8. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak RealTime 81 Tabel 4.9. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak RealTime 81 Tabel 4.10. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak RealTime 81 Tabel 4.11. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak RealTime. 82 Tabel 4.12. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak RealTime. 82 Tabel 4.13. Hasil Nilai batas bawah Yang Masih Dikenali Pada Setiap Ucapan... 83 Tabel 4.14 Confusion Matrix Pengujian secara realtime dengan database 1 untuk user 1…

... 84 Tabel 4.15. Confusion Matrix Pengujian secara realtime dengan database 5 untuk user


(23)

xx

Tabel 4.16. Confusion Matrix Pengujian secara realtime dengan database 10 untuk user 1 ... ... 85 Tabel 4.17. Confusion Matrix Pengujian secara realtime dengan database 1 untuk user 2 . ... 86 Tabel 4.18. Confusion Matrix Pengujian secara realtime dengan database 5 untuk user 2 ... . 86 Tabel 4.19. Confusion Matrix Pengujian secara realtime dengan database 10 untuk user 2

... 87 Tabel 4.20. Confusion Matrix Pengujian secara realtime dengan database 1 untuk user

3………. 87

Tabel 4.21. Confusion Matrix Pengujian secara realtime dengan database 5 untuk user

3…….……… 88

Tabel 4.22. Confusion Matrix Pengujian secara realtime dengan database 10 untuk user

3…….……… 88

Tabel 4.23. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding un untuk

User 1 ……….. 89 Tabel 4.24. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding untuk User

2. ... ……….. 90 Tabel 4.25. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding untuk User

Ketiga.……….. 90

Tabel 4.26. Data Hasil Pengujian Pengucapan dengan Ucapan Lain pada User 1…… 91 Tabel 4.27. Data Hasil Pengujian Pengucapan dengan Ucapan Lain pada User 2…… 92 Tabel 4.28. Data Hasil Pengujian Pengucapan dengan Ucapan Lain pada User1……. 92


(24)

1

BAB I

PENDAHULUAN

1.1.

Latar Belakang

Pada masa sekarang, aktivitas manusia tidak jauh dengan teknologi. Teknologi tidak hanya berkembang pada bidang sains, tetapi sudah menjangkau dibidang lainnya, seperti kedokteran, pertanian bahkan militer. Karena itu teknologi terus berkembang, sehingga penggunaannya menjadi lebih mudah dari pada teknologi sebelumnya.

Lengan robot termasuk kedalam teknologi yang terus berkembang dalam pemakaiannya[1]. Kegunaan lengan robot yang selain sebagai pengganti lengan pada manusia untuk memindahkan barang tetapi bisa digunakan untuk aktivitas yang sering dilakukan manusia ketika menggunakan tangannya yaitu menulis. Selain teknologi lengan robot berkembang juga teknologi speech recognition, dimana menggunakan suara manusia sebagai perintah untuk alat melakukan suatu fungsi[2].

Dengan gagasan diatas peneliti berkeinginan untuk membuat lengan robot yang bisa beraktivitas untuk menulis dengan suara sebagai perintahnya. Sehingga tidak diperlukan lagi remote control untuk menggunakan lengan robot. Dalam mencari ide peneliti menemukan dalam penelitian sebelumnya mengenai Rancang Bangun Lengan Robot Menulis Kata yang Dikendalikan oleh Aplikasi Android[3] dan penelitian lain mengenai Pengenalan Ucapan Angka Secara Real Time Menggunakan Ekstraksi Ciri FFT dan Fungsi Similaritas Kosinus[4].

Peneliti ingin merancang dan membuat lengan robot untuk menulis angka secara real time dengan memanfaatkan suara manusia sebagai inputan. Oleh sebab itu peneliti memakai ekstraksi ciri DFT dan fungsi korelasi, hal ini membedakan dengan penelitian proses pengolah suara yang lainya. Dalam pembuatan lengan robot ini peneliti merancang lengan robot dengan ujung yang terdapat spidol untuk menulis dengan 3 derajat kebebasan atau degree of freedom ( DOF).


(25)

1.2.

Tujuan dan Manfaat

Tujuan dari penelitian ini :

1. Tujuan penelitian ini membuat dan merancang lengan robot penulis angka dari 0 sampai dengan 9 yang dapat bekerja dengan perintah suara.

Manfaat dari penelitian ini :

1. Manfaat dari penelitian sebagai perkembangan teknologi pada bidang kontrol dalam bentuk perintah suara. Kemudian perkembangan teknologi lengan robot sebagai alat untuk membantu pekerjaan manusia pada industri.

1.3.

Batasan Masalah

Penulis menetapkan beberapa batasan masalah pada perancangan sebagai berikut : 1) Masukan suara berupa suara penyebutan angka 0 sampai dengan 9, pengucapan

selain kata-kata yang sudah ditentukan akan dikenali secara salah.

2) Suara yang dikenali dari 3 user, peneliti dan 2 orang yang ditentukan oleh peneliti dengan intonasi pengucapan secara normal.

3) Database suara terdiri dari 3 orang yang sesuai dengan user yang memberi perintah suara.

4) Menggunakan Matlab untuk mengolah suara yang akan dikenali.

5) Pengenalan suara menggunakan ektraksi ciri DFT dan perhitungan korelasi. 6) Lengan robot menulis angka dengan style kotak berdasarkan suara yang

dikenali.

7) Lengan robot yang menggunakan bahan akrilik 3 mm.

8) Menggunakan 3 buah servo yang diprogram menggunakan codevision AVR. 9) Ujung lengan robot terdapat spidol untuk menulis di whiteboard.

10) Menggunakan minimum sistem dengan Atmega32.

11) Komunikasi antara Laptop dengan Atmega32 menggunakan komunikasi serial USART yang dihubungkan dengan modul USB to TTL konverter yang telah tersedia.

12) Lengan robot akan menulis pada sebuah papan tulis yang diletakan secara vertikal.


(26)

1.4.

Metodologi Penelitian

Langkah-langkah yang dilakukan dalam pengerjaan yaitu ;

1) Mengumpukan bahan-bahan referensi baik buku dan jurnal ilmiah yang membahas mengenai pengenalan suara pada Matlab, membahas mengenai lengan robot, pemograman pada codevision AVR.

2) Perancangan hardware dan software untuk perancangan desain lengan robot dan alur jalan pada program.

3) Pembuatan hardware dan software berdasarkan desain yang telah dirancang dan membuat berdasarkan alur program kerja.

4) Pengambilan data dengan melihat hasil pengamatan pengolahan suara dan hasil keluarannya, dan pengamatan pada sudut pada servo yang memungkin menulis angka secara digital.

5) Analisa dan penyimpulan hasil percobaan dilakukan dengan melihat persentase

error saat mendeteksi suara dan tingkat keberhasilan lengan robot menulis angka.


(27)

4

BAB II

DASAR TEORI

2.1.

Lengan Robot

Lengan robot merupakan gabungan dari beberapa segmen dan sendi yang secaraumum dibagi menjadi tiga bagian, yaitu:arm, wirst, dan gripper. Robotic Industries Association (RIA) mendefinisikan lengan robot sebagai lengan yang didesain untuk memindahkan material, benda, alat tertentu lewat pergerakan yang terprogram untuk melakukan berbagai macam tugas [1]. Sistem lengan robot memiliki empat komponen dasar, yaitu: manipulator, end effector, aktuator, dan kontroler.

Manipulator pada robot lengan memiliki 3 bagian, yaitu bagian dasar (base), bagian lengan (arm), dan bagian pergelangan (wrist). Bagian-bagian manipulator pada robot lengan dapat dilihat pada gambar 2.1.

Gambar 2.1. Manipulator pada robot lengan

Bagian dasar (base) manipulator bisa secara paten terpasang pada dasar area kerja. Bagian lengan (arm) berfungsi untuk memposisikan end effector, dan bagian pergelangan (wrist) berfungsi untuk mengatur arah gerak dari end effector. Bagian ujung pada robot lengan terpasang end effector atau yang sering disebut dengan gripper yang berfungsi sebagai bagian terakhir yang menghubungkan antara manipulator dengan objek. Sebagai contoh gripper dapat berupa peralatan las, penyemprot cat ataupun hanya berupa pencengkram objek[6].

Kontroler merupakan otak dari sistem robot sehingga keberadaannya sangat penting. Kontroler menyimpan informasi yang berkaitan dengan data-data robot, dalam hal ini data gerakan robot yang telah diprogram sebelumnya.Kontroler berfungsi untuk mengontrol pergerakan dari manipulator. Kontroler sendiri diatur oleh sebuah informasi


(28)

atau program yang diisikan dengan menggunakan bahasa pemrograman tertentu. Informasi tersebut kemudian disimpan didalam memori. Data dalam memori dapat di keluarkan atau di edit sesuai dengan yang dibutuhkan.

Aktuator adalah komponen penggerak yang jika dilihat dari prinsip penghasil geraknya dapat dibagi menjadi tiga bagian yaitu penggerak berbasis motor listrik (motor servo, motor steper, motor DC dan sebagainya), penggerak pneumatik (berbasis kompresi:udara, nitrogen) dan penggerak hidrolik (berbasis benda cair: minyak pelumas).

2.2.

Mikrokontroler AVR ATmega32

AVR (Alf and Vegard’sRiscProcessor) merupakan seri mikrokontroler CMOS

8-bit yang diproduksi oleh Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer).Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega32. Hampir semua instruksi dieksekusi dalam satu siklus clock dan mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interupsi internal dan eksternal, serial UART, programmable Watchdog Timer, dan power saving mode. AVR juga mempunyai ADC, PWM internal dan In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang [8].

2.2.1.

Arsitektur AVR ATmega32

Mikrokontroler ATmega32 memiliki arsitektur sebagai berikut :

a. Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D b. ADC 10 bit sebanyak 8 Channel

c. Tiga buah timer/counter yaitu Timer 0, Timer 1, dan Timer 2 d. Watchdog Timer dengan osilator internal

e. SRAM sebanyak 512 byte

f. Memori Flash sebesar 8 kb

g. Sumber Interupsi internal dan eksternal h. Port SPI (Serial Pheriperal Interface) i. EEPROM on board sebanyak 512 byte j. Komparator analog

k. Port USART (Universal Shynchronous Ashynchronous Receiver Transmitter)


(29)

2.2.2.

Deskripsi Mikrokontroler ATmega32

Konfigurasi Pin Mikrokontroller ATmega32 dengan kemasan 40 pin DIP (dual in-line package) dapat dilihat pada Gambar 2.2. Untuk memaksimalkan performa dan paralelisme, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data). Ketika sebuah instruksi sedang dikerjakan maka instruksi berikutnya diambil dari memori program[8].

Gambar 2.2. Konfigurasi Pin Mikrokontroler ATmega32[8] Mikrokontroler Atmega 32 memiliki konfigurasi Pin sebagai berikut:

a. VCC (power supply) b. GND (ground)

c. Port A (PA7…PA0) Port A berfungsi sebagai input analog pada ADC (analog digital converter). Port A juga berfungsi sebagai suatu Port I/O 8-bit dua arah.

d. Port B (PB7…PB0) Port B adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit).

e. Port C (PC7…PC0) Port C adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit).

f. Port D (PD7...PD0) Port D adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit).

g. RESET (Reset input) h. XTAL1 (Input Oscillator) i. XTAL2 (Output Oscillator)

j. AVCC adalah pin penyedia tegangan untuk Port A dan ADC.


(30)

2.2.3.

Interupsi

Interupsi adalah suatu kondisi dimana mikrokontroler akan berhenti sementara dari program utama untuk melayani instruksi-instruksi pada interupsi kemudian kembali mengerjakan instruksi program utama setelah instruksi-instruksi pada interupsi selesai dikerjakan.

Table 2.1 Hubungan PIN dan Interupsi

Jenis interupt PIN pada Atemega 32

INT0 PORTD.2

INT1 PORTD.3

INT2 PORTB.2

ATmega32 menyediakan tiga interupsi eksternal yaitu, INT0, INT1, dan INT2. Masing-masing interupsi tersebut terhubung dengan pin ATmega32 seperti ditunjukan pada Tabel 2.1. Interupsi eksternal bisa dilakukan dengan memberikan logika 0 atau perubahan logika (rissing edge dan falling edge) pada pin interupsi yang bersangkutan[8].

2.2.4.

Timer/Counter

Timer/Counter pada mikrokontroler AVR dapat digunakan untuk melakukan pencacahan waktu seperti pada jam digital maupun untuk menghasilkan sinyal PWM (Pulse Width Modulation) yakni sinyal kotak dengan frekuensi dan duty cycle yang nilainya bisa diatur. Atmega32 memiliki tiga unit Timer/Counter yaitu Timer/Counter 0 (8 bit), Timer/Counter 1 (16 bit), dan Timer/Counter 2 (8 bit)[9].

TIMER/COUNTER 0

Fitur-fitur yang dimiliki:

a) Satu buah unit Compare Counter (Unit ini akan meng-count dan meng-compare) b) Clear timer pada saat compare match (Auto reload)

c) Phase Correct PWM yang bebas glitch d) Frequency generator

e) External event counter f) Prescaler clock hingga 10 bit

g) Membangkitkan interupsi saat timer overflow dan atau compare match

Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.3, 2.4, dan 2.5 berikut:


(31)

(2.1)

(2.2)

(2.3)

Keterangan :

f = frekuensi yang digunakan untuk eksekusi program T = periode

N = prescaller yang digunakan OCR = nilai cacahan pulsa

Pulse = lebar pulsa

Berikut merupakan mode-mode operasi timer :

a. Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan mengitung selang waktu[8].

Gambar 2.3.Mode Phase Correct PWM [8]

b. Mode phase correct PWM (PCP), digunakan untuk menghasilkan sinyal PWM dimana nilai register counter (TCNT0) yang mencacah naik dan turun secara terus menerus akan selalu dibandingakan dengan register pembanding OCR0. Hasil perbandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal PWM yang dikeluarkan pada OC0 seperti ditunjukan Gambar 2.4[9].

c. CTC (Clear timer on compare match), register counter (TCNT0) akan mencacah naik kemudian di-reset atau kembali menjadi 0x00 pada saat nilai TCNT0 sama dengan OCR0. Sebelumnya OCR diset dulu, karena timer 0 dan 2 maksimumnya 255, maka

range OCR 0-255[9].

d. Fast PWM, mode ini hampir sama dengan mode phase correct PWM, hanya perbedaannya adalah register counter TCNT0 mencacah naik saja dan tidak pernah mencacah turun seperti terlihat pada Gambar 2.7[9].


(32)

Gambar 2.4.Mode Fast PWM [8]

2.2.5.

Komunikasi Serial USART

Komunikasi USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter) adalah fasilitas komunikasi serial yang disediakan oleh mikrokontroler Atmega32, baik secara sinkron maupun asinkron.Komunikasi seri dapat dibedakan menjadi 2 macam, yaitu komunikasi data seri sinkron dan komunikasi data asinkron. Dikatakan sinkron jika sisi pengirim dan sisi penerima ditabuh (clocked) oleh penabuh (clock) yang sama, satu sumber penabuh, data dikirim beserta penabuh. Dikatakan asinkron jika sisi pengirim dan sisi penerima ditabuh oleh penabuh yang terpisah dengan frekuensi yang hampir sama, data dikirim disertai informasi sinkronisasi[8]. Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki baudrate yang sama. Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut:

a. Operasi full duplex (mempunyai register receive dan transmit yang terpisah) b. Mendukung kecepatan multiprosesor

c. Mode kecepatan berorde Mbps d. Operasi asinkron atau sinkron

e. Operasi master atau slave clock sinkron

f. Dapat menghasilkan baud-rate (laju data) dengan resolusi tinggi g. Modus komunikasi kecepatan ganda pada asinkron

2.2.5.1. Inisialisasi USART

Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi USART. Register-register yang digunakan untuk komunikasi USART antara lain[8]:


(33)

UDR merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan (TXB) atau tempat data diterima (RXB) sebelum data tersebut dibaca.

Gambar 2.5. Register UDR [8]

USART Control and Status Register A (UCSRA)

Gambar 2.6. Register UCSRA [8] Penjelasan bit penyusun UCSRA[8]:

a. RXC (USART Receive Complete)

Bit ini akan set ketika data yang masuk ke dalam UDR belum dibaca dan akan berlogika nol ketika sudah dibaca. Flag ini dapat digunakan untuk membangkitkan interupsi RX jika diaktifkan dan akan berlogika nol secara otomatis bersamaan dengan eksekusi vektorinterupsi yang bersangkutan.

b. TXC (USART Transmit Complete)

Bit ini akan set ketika data yang dikirim telah keluar. Flag ini akan membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan.

c. UDRE (USART Data Register Empty)

Flag ini sebagai indikator isi UDR. Jika bernilai satu maka UDR dalam keadaan kosong dan siap menerima data berikutnya, jika flag bernilai nol berarti sebaliknya.

d. FE (Frame Error)

Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika

stop bit pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan bernilai 0 ketika stop bit data yang diterima berlogika nol.


(34)

Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag

akan bernilai satu ketika terjadi tumpang tindih data. f. PE (Parity Error)

Bit yang menentukan apakah terjadi kesalahan paritas. Bit ini berfungsi jika ada kesalahan paritas. Bit akan berlogika satu ketika terjadi bit parity error apabila bit paritas digunakan.

g. U2X (Double the USART Transmission Speed)

Bit yang berfungsi untuk menggandakan laju data manjadi dua kalinya. Hanya berlaku untuk modus asinkron, untuk mode sinkron bit ini diset nol.

h. MPCM (Multi Processor Communication Mode)

Bit untuk mengaktifkan modus multi prosesor, dimana ketika data yang diterima oleh USART tidak mengandung informasi alamat akan diabaikan.

USART CONTROL AND STATUS REGISTER B (UCSRB)

Gambar 2.7. Register UCSRB [8] Penjelasan bit penyusun UCSRB[8]:

a. RXCIE (RX Complete Interrupt Enable)

Bit pengatur aktivasi interupsi penerimaan data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan.

b. TXCIE (TX Complete Interrupt Enable)

Bit pengatur aktivasi pengiriman data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan.

c. UDRIE (USART Data Register Empty Interrupt Enable)

Bit ini berfungsi untuk mengaktifkan interupsi data register kosong, berlogika satu jika diaktifkan dan sebaliknya.

d. RXEN (Receiver Enable)

Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran penerima USART.


(35)

e. TXEN (Transmitter Enable)

Bit ini berfungsi untuk mengaktifkan pin TX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran pengirim USART.

f. UCSZ2 (Character Size)

Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk memilih tipe lebar data bit yang digunakan.

Tabel 2.2. Penentuan Ukuran Karakter

UCSZ[2..0] Ukuran Karakter dalam bit

0 5

1 6

10 7

11 8

100-110 Tidak dipergunakan

111 9

g. RXB8 (Receive Data Bit 8)

Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus dibaca dahulu sebelum membaca UDR.

h. TXB8 (Transmit Data Bit 8)

Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus ditulis dahulu sebelum membaca UDR.

USART CONTROL AND STATUS REGISTER C (UCSRC)

Gambar 2.8. Register UCSRC [8] Penjelasan bit penyusun UCSRC[8]:

a. URSEL (Register Select) :

Bit ini berfungsi untuk memilih register UCSRC dengan UBBRH, dimana untuk menulis atau membaca register UCSRC maka bit harus berlogika satu. b. UMSEL (USART Mode Select)


(36)

c. UPM[1…0] (Parity Mode)

Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan.

Transmittter USART akan membuat paritas yang akan digunakan secara otomatis. d. USBS (Stop Bit Select)

Bit yang berfungsi untuk memilih jumlah stop bit yang akan digunakan. e. UCSZ1 dan UCSZ0

Merupakan bit pengatur jumlah karakter serial Bit yang berfungsi untuk memilih lebar data yang digunakan dikombinasikan dengan bit UCSZ2 dalam register UCSRB.

f. UCPOL (Clock Parity)

Bit yang berguna hanya untuk modus sinkron. Bit in berhubungan dengan perubahan data keluaran dan sampel masukkan, dan clock sinkron (XCK)[6].

2.3.

LCD (Liquid Crystal Display)

LCD adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suata data, baik karakter dan huruf[10] agar dapat mengendalikan LCD karakter dengan baik, tentu diperlukan koneksi yangbenar.Untuk itu perlu diketahui pin-pin antarmuka yang dimiliki oleh LCD karakterseperti yang ditunjukan pada Gambar 2.11[10].

Gambar 2.9. Konfigurasi kaki pin LCD 16x2 Konfigurasi setting LCD 16x2 dapat dilihat pada tabel 2.3

Tabel 2.3. Operasi Dasar LCD 16x2[26]

No. Nama Fungsi

1 GND Ground

2 VCC 5V

3 VEE Ground

4 RS Register Select; H: Data Input; L: Instruction Input


(37)

Tabel 2.3.(lanjutan) Operasi Dasar LCD 16x2[26]

No. Nama Fungsi

6 EN Enable Signal

7 D0 Data Bus

8 D1 Data Bus

9 D2 Data Bus

10 D3 Data Bus

11 D4 Data Bus

12 D5 Data Bus

13 D6 Data Bus

14 D7 Data Bus

15 V+BL Positif backlight voltage

16 V–BL Negative backlight voltage

2.4.

Regulator IC 78xx dan Transistor Penguat Arus

Pengatur tegangan (voltage regulator) berfungsi menyediakan suatu tegangan keluaran dc tetap yang tidak dipengaruhi oleh perubahan tegangan masukan. Salah satu tipe regulator tegangan tetap adalah 78xx. Regulator tegangan tipe 78xx adalah salah satu regulator tegangan tetap dengan tiga terminal, yaitu terminal Vin, GND dan Vout. Regulator tegangan 78xx dirancang sebagai regulator tegangan tetap, meskipun demikian keluaran dari regulator ini dapat diatur tegangan dan arusnya melalui tambahan komponen eksternal.Spesifikasi karakteristik IC regulator seri 78xx dapat dilihat pada tabel 2.4.

Tabel 2.4. Karakteristik Regulator Tegangan ic 78xx [11]

Type VOUT (Volt)

VIN (Volt) Min Maks

7805 5 7,3 20

7806 6 8,3 21

7808 8 10,5 23

7810 10 12,5 25

7812 12 14,6 27

7815 15 17,7 30

7818 18 21 33


(38)

Gambar 2.10. Rangkaian umum regulator 78xx [11]

Nilai komponen c1 dan c2 difungsikan sebagai filter capasitor yang bertujuan untuk menghilangkan tegangan ripple agar tegangan keluaran menjadi lebih stabil. Untuk mendapatkan nilai kapasitor yang sesuai, dapat mengacu pada persamaan 2.4 dan 2.5 [11].

(2.4)

(2.5)

Komponen eksternal yang digunakan yaitu transistor 2N3055 karena kemampuan arus maksimal adalah 15 A [12].Untuk gambar rangkaian lengkap dengan IC regulator dapat ditunjukan gambar 2.11.

Gambar 2.11. Rangkaian catu daya dengan penguat[12] Dari gambar 2.11, maka diperleh persamaan-persamaan sebagai berikut[12]:

VB = Vreg + VD (2.6)

Tegangan keluaran rangkaian menjadi,

Vo = Vreg – VBE (2.7)

Jika VD VBE, maka

Vo = Vreg (2.8)


(39)

VCE = VIN – VR1(2.9) Disipasi daya transistor NPN 2N3055 adalah,

PD = VCE x IC(2.10) Untuk nilai penguatan arus diperoleh dengan persamaan dibawah ini :

Ic = β IB (2.11)

Ie = (β+1) IB (2.12)

2.5.

Torsi / Momen Gaya

Momen Gaya adalah kemampuan gaya F memutar/merotasi benda terhadap poros

diam. Sehingga semakin besar torsi (τ) maka gaya F memutar benda pun semakin besar [7].

Rumus :

τ = F r sin ϴ (2.13) keterangan :

τ = Torsi (N-m)

r = Jarak dari titik pangakal gaya sampai sumbu putar F = Gaya (N), F = m x g

ϴ = Derajat sumbu putar

2.6.

Sinyal Suara Manusia

Suara termasuk sebagai suatu sinyal, seperti sinyal pada umumnya maka suara manusia dapat merambat melalui media perantara. Suara dapat dihantarkan melalui berbagai macam media, seperti media cair, gas ataupun media padat. Dengan mengambil arti bahwa suara termasuk sebagai sinyal, maka suara manusia mempunyai frekuensi dan amplitudo tertentu. Suara yang dapat didengar oleh manusia berkisar antara 20 Hz sampai dengan 20 KHz dan suara manusia mempunyai frekuensi 300 – 3000 Hz, dimana Hz adalah satuan frekuensi yang berarti banyak getaran per detik [13].

2.7.

Sampling

Sampling merupakan proses pencuplikan sinyal kontinyu atau analog pada periode-periode tertentu. Dalam proses ini sinyal suara akan dicuplik menjadi gelombang diskrit. [14]. Dalam proses pencuplikan, ada yang disebut dengan frekuensi sampling. frekuensisamplingmenandakan berapa banyak pencuplikan gelombang analog dalam satu detik. Satuan dari frekuensi samplingialah Hertz (Hz).Proses sampling ditunjukan pada gambar 2.12.


(40)

Gambar 2.12. Tampilan Proses Sampling

Didalam kriteria Nyquist dituliskan bahwa frekuensi samplingminimal harus lebih besar sama dengan 2 kali nilai frekuensi sinyal analog yang akan dicuplik .Kriteria Nyquist

perlu diperhatikan dalam melakukan pencuplikan.Lebih jelasnya kriteria Nyquist menyatakan sebuah sinyal harus memiliki pencuplikan rate yang lebih besar dari 2 dengan adalah frekuensi paling tinggi yang muncul di sebuah sinyal.

2.8.

Preprocessing

Prepocessing merupakan tahapan awal untuk mengkondisikan sinyal sebelum diproses dalam ektraksi ciri.Preprocessing dilakukan untuk membuang noise pada sinyal ucapan. Dalam preprocessing ada beberapa tahapan meliputi pre-emphasis,normalisasi, pemotongan sinyal, dan zero padding.

2.8.1.

Pre Emphasis

Pada proses pre emphasis sinyal denganfrekuensi tinggi diloloskan dan sinyal denganfrekuensi rendah difilter hal ini dilakukan dengantujuan untuk meratakan bentuk sinyal untukfrekuensi tinggi maupun rendah suara. Filter pre emphasis dinyatakan dalam persamaan seperti berikut[15]:

s’(n) = s(n) –α*s(n−1) (2.14) dimana:

s(n) =sampel sinyal masukan ke-n

α= konstanta dimana 0,9 <α < 1,0

2.8.2.

Normalisasi

Normalisasi adalah proses dimana membuat penskalaan pada nilai amplitudo tiap data sinyal sesuai skala yang diinginkan. Proses ini dilakukan agar nilai amplitudo pada tiap data sinyal yang akan diolah bernilai sama. Besarnya nilai amplitudo sinyal suara


(41)

manusia saat melakukan pengucapan selalu berbeda-beda, sehingga penskalaan nilai amplitudo sinyal terhadap acuan skala yang diinginkan sangat diperlukan [16].

(2.15)

dengan keterangan sebagai berikut :

= hasil data sinyal normalisasi (1,2,3,…,N)

= data masukan dari sampling (1,2,3,…,N)

N merupakan banyaknya data sinyal.

Proses normalisasi sinyal suara diperlihatkan pada gambar 2.13. Gambar pada sisi atas memperlihatkan sinyal yang akan dinormalisasi dan gambar pada sisi bawah memperlihatkan hasil normalisasinya. Dari gambar tersebut diperlihatkan berubahnya nilai amplitudo setelah skalanya diperbesar.

Gambar 2.13. Contoh hasil proses sampling


(42)

2.8.3.

Pemotongan Sinyal

Gambar 2.15. Proses Pemotongan Sinyal

0 1000 2000 3000 4000 5000 6000 7000 8000

-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Pemotongan data sinyal sebelah kiri

Data

ke-Am

pli

tu

de

0 1000 2000 3000 4000 5000 6000 7000 8000

-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

pembalik urutan data sinyal

Data

ke-Am

pli

tud

e

0 500 1000 1500 2000 2500 3000

-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

pemotongan data sinyal sebelah kanan

Data

ke-Am

pl

itu

de

0 500 1000 1500 2000 2500 3000 3500 4000

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Hasil pemotongan Data ke-A m pl itu de


(43)

Pemotongan sinyal merupakan proses yang berkaitan dengan ekstraksi ciri. Proses ini bertujuan untuk memotong beberapa bagian sinyal. Dalam proses perekaman, pemotongan sering terjadi untuk bagian awal dan akhir sinyal. Pemotongan bagian awal dan akhir sinyal suara dimaksudkan untuk menghilangkan bagian yang tidak termasuk bagian dari sinyal ucapan serta untuk mengurangi cacat sinyal akibat derau ruangan yang ikut terekam.Sinyal yang dianggap sebagi noise tersebut berasal dari suara lingkungan sekitar atau derau pernapasan. Keberadaan sinyal tersebut akan lebih baik jika diminimalisir dengan cara dihilangkan.

Pada grafikpertama dari gambar 2.15 dengan batas potong 0.3data sinyal hasil normalisasi ditinjau kembali untuk mencari urutan data yang nilai amplitudonya di atas nilai positif batas potong dan di bawah nilai negatif batas potong. Pada grafik kedua data sinyal akan dihilangkan dari awal hingga data pertama dari hasil pencarian. Setelah dihilangkan kemudian urutan data sinyal dibalik dari belakang ke depan seperti pada grafikketiga. Kemudian proses diulang kembali dengan peninjauan data sinyal dan menghapus data dari awal hingga data pertama dari hasil pencarian. Pada grafik kelima urutan data sinyal diurutkan kembali dari belakang ke depan agar urutan datanya kembali pada aslinya.

2.8.4.

Zero padding

Zeropadding merupakan proses pemberian deretan data bernilai 0 pada data sinyal. Efek dari pemotongan sinyal memungkinkan adanya dampak ketidaksamaan banyak data sinyal. Proses zeropadding dilakukan agar panjang gelombang tiap data sinyal ucapan dapat disetarakan. Jumlah data 0 yang diberikan menyesuaikan ukuran banyak data yang diinginkan.


(44)

Gambar 2.16. Proses zero padding

2.9.

Framing

Framing adalah proses dimana sinyal data masukan akan dibentuk dalam frame-frame. Dalam bentuk frame ini data akan lebih mudah untuk diketahui, sehingga tidak perlu memeriksa sinyal data secara keseluruhan secara langsung. Data akan dicek setiap frame sebesar nilai panjang frame yang telah ditentukan. Jika dalam pemeriksaan tersebut sinyal data melebihi maka akan mengalami overlap, dimana akan sinyal data yang berlebih tersebut akan dipotong sebesar nilai overlap. Nilai dari lebar frame (tf) adalah 512 [15] dan nilai overlap (to) adalah 25% [20]dari nilai lebar segmen yaitu 128.

Gambar 2.17. Proses framing [15]

2.10.

Windowing


(45)

Windowing adalah proses dimana meminimalkan terjadinya diskontinuitas sinyal yang muncul akibat pemotongan sinyal. Biasanya diskontinuitas muncul pada bagian tepi awal dan akhir data sinyal suara. Proses windowing dilakukan agar dapat menghilangkan sinyal yang tidak diingikan sebelum ke proses selanjutnya[16].

Pada grafik pertama dari gambar 2.18 merupakan data sinyal hasil pemotongan yang akan diolah pada proses windowing. Grafik kedua merupakan pola jendela yang akan digunakan dalam proses windowing. Jumlah titik-titik data pada pembentukan pola jendela tersebut harus sama terhadap banyak data pada data sinyal. Pada grafik ketiga merupakan hasil windowing. Hasil tersebut diperoleh dari perkalian elemen dari gambar pertama dengan gambar kedua.

2.10.1.

Hamming

Hamming window adalah salah satu dari berbagai macam jenis windowing.

Hamming windowmerupakan window yang mempunyai sidelobe yang paling kecil dan

mainlobe yang paling besar sehingga hasildari hamming windowakan lebih halus dalam menghilangkan efek diskontunitas. Persamaan hamming window adalah [18]:

(2.15)

Di mana :

w(n) = Hasil windowing N= Jumlah data dari sinyal n= waktu distrik ke

2.11.

Ekstraksi Ciri DFT

2.11.1.

Pengertian DFT

DFT merupakan perluasan dari transformasi fourier yang berlaku untuk sinyal-sinyal diskrit dengan panjang yang terhingga. Semua sinyak periodik terbentuk dari gabungan sinyal-sinyal sinusoidal yang menjadi satu yang dirumuskan pada persamaansebagai berikut [19]:

(2.16)

Dengan:e = natural number (2.7182818284…) j = konstanta fourrier


(46)

k = indeks dalam domain frekuensi (0, 1, 2, …,N-1)

n = indeks dalam domain waktu (0,1,2, …, N-1)

Gambar 2.19.ContohHasil DFT

2.11.2.

Segment Averaging

Segment averaging merupakan metode untuk mengurangi jumlah data sinyal dengan data sinyal masukan disegmentasi dengan lebar segment yang kemudian dicari rata-ratanya pada tiap segment.Lebarnya segmen ditentukan berdasarkan kelipatan 2n (dengan 1≤n≤ 8), sehingga banyaknya segment yang terbentuk didapat dari pembagian seluruh data terhadap lebar segment. Keluaran dari porses segment averaging adalah rata-rata dari setiap segment [4].


(47)

Gambar 2.20.contohsegmen averaging dengan 16 segmen

2.12.

Template Maching

Template maching merupakan tahap pendekatan pengenalan pola dalam proses pengenalan ucapan. Proses template maching digunakan untuk menentukan kesamaan pola antara data masukan dengan pola database yang telah tersedia[17].

2.12.1.

Korelasi

Korelasi digunakan untuk menghitung besarnya perubahan antara dua variabel.Korelasi ini membagi dua variabel yang satu dengan yang lainnya yang saling berhubungan. Korelasi dirumuskan sebagai berikut [25] :

∑ ̅ ̅

√∑ ̅ ∑ ̅ (2.17)

Denganketerangansebagaiberikut :


(48)

̅= rata-rata variable data referensi = data masukan

= data referensi

= hasilkorelasi antara x dan y

2.13.

K- Nearest Neighbor

Alogarima yang disebut aturan tetangga terdekat atau biasa dikenal k - nearest neighbor(k-NN) diringkas sebagai berikut [15]. Sebuah fitur yang tidak diketahui vector x dan jarak mengukur, kemudian:

a. Diluar vektor N(jarak),identifikasi nilai k tetangga terdekat, terlepas dari label kelas,untuk masalah 2 kelas dipilih dari nilai k yang ganjil, dan biasanyabukan merupakan kelipatan dari banyaknya kelas M.

b. Dari sampel k tersebut, identifikasi jumlah vektor kiyang termasuk dalam kelas

ωi,I = 1,2,…, M . Dengan∑

c. Tetapkan x untuk kelas ωi dengan jumlah ki terbanyak dari sampel.

2.14.

Mikrofon

Mikrofon dengan adalah perangkat yang mengubah gelombang suara menjadi sinyal listrik. Mikrofon banyak digunakan untuk berbagai hal yang berhubungan dengan komunikasi. Alat ini akan mengubah sinyal suara menjadi sinyal listrik yang kemudian dapat diaplikasikan sebagai input. Mikrofon yang akan digunakan untuk pengambilan suara adalah headset INTOPIC JAZZ 660. Mikrofon tersebut mempunyai spesifikasi sebagi berikut :

Tabel 2.5 Tabel spesifikasi mikrofon pada headset INTOPIC JAZZ 660[22]

No Spesifikasi Nilai

1 Frequency Range 30 – 10.000 Hz 2 Microphone Sensitivity -54 3 dB

3 Impedance .2 k

4 Standard OperatingVoltage 3 V


(49)

Gambar 2.21.Headset INTOPIC JAZZ 660

2.15.

Sound Card

SoundCard atau kartu suara adalah perangkat keras pada PC/laptop yang berguna untuk mengolah audio atau suara [23].Perangkat ini dapat mengkonversi sinyal audio, mengeluarkan sinyal audio, merekam sinyal audio, dan menyimpan sinyal audio. Kemampuan pengolahan audio sangat banyak sehingga banyak perangkat lain dari PC/laptop yang terhubung pada soundcard. Secara umum sound card memiliki beberapa fungsi :

a. DSP (Digital Signal Processor) menangani jenis komputasi. b. DAC (Digital to Analog Converter) memproses output audio. c. ADC (Analog to Digital Converter) memproses inputan audio. d. ROM (Read Only Memory) menyimpan data sementara.

e. MIDI (Musical Instrument Digital Interface) untuk koneksi peralatan musik eksternal.

f. Jack digunakan untuk menyambung speaker dan mikrophone sebagai line out dan line in.

Ada 3 jenis Sound Card berdasarkan kondisi pemasangan yaitu Sound Card OnBoard, Sound Card Off Board, dan SoundCardExternal. Sound card pada perangkat PC/laptop biasanya sudah terpasang langsung pada motherboard atau biasa disebut Sound Card On Board. Sound Card Off Board pemasangannya pada slot ISA/PCI pada motherboard. SoundCardExternal pemasangannya dihubungkan ke komputer melalui port eksternal seperti USB atauFireWire.


(50)

2.16. Motor Servo

Motor servo merupakan motor DC yang seudah dilengkapi dengan sistem kontrol didalamnya. Pada aplikasinya, motor servo sering digunakan sebagai kontrol loop tertutup, sehingga dapat menangani perubahan posisi secara tepat dan akurat [1].

Gambar 2.23. Model fisik motor servo Tabel 2.6 Spesifikasi servo Towerpro MG946R [24]

Spesifikasi servo Towerpro MG946R

operating voltage 4.8V to 7.2V

operating speed 4.8v : 0.20sec/60o operating speed 6.0v : 0.17sec/60o

stall torque 10.50 kg-cm @4.8V

stall torque 13 kg-cm @6V

gear type all metal gear

size 40.7 mm x 19.7 mm x 42.9 mm

weight 55 gram

Bentuk fisik motor servo dapat dilihat pada gambar 2.23. Sistem pengkabelan motor servo terdiri dari 3 bagian, yaitu Vcc, Gnd, dan Kontrol (PWM). Penggunaan PWM pada motor servo berbeda dengan penggunaan PWM pada motor DC. Pada motor servo, pemberian nilai PWM akan membuat motor servo bergerak pada posisi tertentu lalu berhenti (kontrol posisi) [1].

Pengaruh dari lebar pulsa membuat posisi motor servo akan berubah. Perubahan ini agar terus berada pada posisi tetap misal dengan pulsa 2 ms akan memutar posisi servo pada 180o maka perlu diberikan nilai pulsa secara konstan agar posisi servo tetap pada sudut tersebut.


(51)

Gambar 2.24. Cara pengontrolan motor servo [5]

Prinsip utama pengontrolan motor servo yaitu dengan memberikan nilai PWM pada kontrolnya. Perubahan duty cycleakan menentukan perubahan posisi dari motor servo. Motor servo memiliki frekuensi sebesar 50 Hz sehingga pulsa yang dihasilkan yaitu setiap 20 ms. Lebar pulsa akan menentukan posisi motor servo yang dikehendaki [1].


(52)

29

BAB III

RANCANGAN PENELITIAN

Dalam bab III ini akan dibahas mengenai perancangan perangkat keras dan perancangan perangkat lunak. Pembahasan mengenai proses kerja, perancangan mekanik untuk lengan robot, perancangan hardware untuk komponen-komponen lengan lengan robot, dan perancangan software untuk program lengan robot dan program suara.

3.1. Proses Kerja

Kerja sistem dirancang untuk mengenali suara yang diucapkan oleh user secara real time untuk sebagai perintah dalam mengerakan lengan robot untuk menuliskan angka. Ucapan berupa angka dari 0 sampai dengan 9 dari 3 user. Ucapan tersebut ditangkap melalui mikrofon pada headset dan disalurkan menuju sound card untuk diubah menjadi sinyal. Data sinyal akan diproses sebagai input oleh Matlab. Hasil dari proses oleh Matlab dikirimkan ke mikrokontroler melalui USB to TTL. Data yang diterima kemudian diproses mikrokontroler untuk mengoprasikan lengan robot. Lengan robot akan menuliskan angka dari 0 – 9 sesuai dengan input yang diterima.


(53)

3.2.

Perancangan Mekanik Lengan Robot

Perancangan lengan robot berupa desain lengan robot, bahan pembuatan lengan robot yaitu akrilik setebal 3 mm. Desain lengan robot menggunakan software Google sketchup utuk model 3 dimensi dan Corel Draw untuk model 2 dimensi. Lengan robot dirancang terdiri dari link 1, link 2, base sebagai poros. Lengan robot dirancang dengan 3 derajat kebebasan, dengan spidol berada di ujung lengan robot.

Gambar 3.2. Design lengan robot secara keseluruhan

Gambar 3.3.komponen bagian 1


(54)

Gambar 3.5. Komponen bagian 3

Gambar 3.2 merupakan gambar design lengan robot secara 3D. Link merupakan penghubung antar bagian dari lengan robot dan joint merupakan bagian penggerak pada sendi di lengan robot.

Gambar 3.6 design awal ujung lengan robot

Gambar 3.6 merupakan design kasar dari ujung pada lengan robot dimana pada bagian belakang spidol terdapat suspense yang akan membuat spidol dapat maju dan mundur. Fungsi dari suspensi ini berguna saat menulis, lengan robot tidak terkena tekanan, tekanan akan teredam pada suspensi tersebut.

Tabel 3.1. ukuran bagian-bagian lengan robot Bagian Lengan Robot Panjang lengan

Bagian 1 14 cm

Bagian 2 dan spidol 27 cm


(55)

3.3.

Perancangan Perangkat Keras (hardware)

Ada beberapa komponen dalam perancangan subsistem perangkat keras lengan robot pemisah benda, diantaranya yaitu :

a) Minimum Sistem Atmega32 + LCD 16x2 b) Motor servo

c) Regulator IC 7805 + penguat arus d) Headset

e) Soundcard

3.3.1.

Minimum Sistem Atmega32 + LCD 16x2

3.3.1.1. Minimum Sistem Atmega32

Rangkaian minimum sistem merupakan sistem utama dalam mengontrol pergerakan lengan robot yang telah diprogram dalam mikrokontroler ATmega32 sesuai dengan kebutuhan. Penggunaan mikrokontroler dapat diatur sebagai input dan output mengontrol motor servo serta mengolah data serial yang dikirimkan dari komputer melalui USB to TTL converter.

Untuk perancangan minimum sistem terdiri dari rangkaian eksternal yaitu rangkaian osilator dan rangkaian reset. Rangkaian osilator menggunakan crystal dengan frekuensi sebesar 11,0592 MHz dan menggunakan kapasitor 22 pf pada pin XTAL1 dan XTAL2 di mikrokontroler sesuai dengan datasheet. Rangkaian osilator ini berfungsi sebagai sumber clock bagi mikrokontroler. Pemberian kapasitor bertujuan untuk memperbaiki kestabilan frekuensi yang diberikan oleh osilator eksternal. Gambar 3.7 menunjukan rangkaian osilator.


(56)

Rangkaian resetbertujuan untuk memaksa proses kerja pada mikrokontroler dapat diulang dari awal. Saat tombol reset ditekan maka mikrokontroler mendapat input logika rendah, sehingga akan seluruh proses yang sedang dilakukan mikrokontroler akan ter-reset. Gambar 3.8. adalah rangkaian reset untuk ATmega32.

Gambar 3.8. Rangkaian Reset ATmega32[8]

Pada gambar 3.8 terdapat resistor yang memiliki resistansi sebesar 4,7 KΩ yang difungsikan sebagai pull up. Resistor pull-up eksternal dapat digunakan untuk menjaga agar pin RESET tidak berlogika 0 secara tidak disengaja.Kapasitor 10nF digunakan untuk menghilangkan noise yang disusun seri dengan resistor. Rangkaian reset minimum system

Atmega32 merupakan gabungan dari rangkaian push-button dan low-pass filter.

3.3.1.2. Rangkaian Konfigurasi LCD 16x2

Rangkaian LCD digunakan untuk menampilkan angka yang diucapkan oleh user sehingga akan terlihat apakah terdeteksi atau tidak. Rangkaian LCD dapat dilihat pada gambar 3.9. Penentuan konfigurasi kaki LCD menuju mikrokontroler ditentukan dengan melihat pada software Code Vision AVR seperti pada Gambar 3.10.


(57)

Gambar 3.10. SettingPort LCD

3.3.2.

Motor Servo

Dalam perancangan ini menggunakan motor servo sebagai penggerak dari lengan robot. Motor servo yang digunakan yaitu Towerpro MG946R sebanyak 3 buah. Rangkaian motor servo terdiri dari tiga port yaitu vcc,gnd,dan data. Pada jalur data berfungsi sebagai jalur pengiriman pulsa PWM yang akan mengaktifkan motor servo. Gambar 3.11. merupakan rangkaian pin untuk motor servo.

Gambar 3.11. Rangkaian pin motor servo

Dengan menggunakan interrups timer sebagai pembangkit PWM. Timer

merupakan sebuah counter dimana memiliki tugas menghitung „1,2,3,...” hingga 255 (8 bit) dan menyimpan hitungannya. Naiknya hitungan timer dan lama jeda antar hitungan ditentukan dari siklus pencacah mikrokontroler. Pada perancangan motor servo, timer diset agar menghitung sampai 255. Dan jika sudah mencapai 255, maka timer (overflow) akan memberikan sinyal, PWM akan bekerja dan mengintruksikan timer untuk menghitung lagi dari 0. Demikian seterusnya terjadi jika nilai 255 tercapai. Perbandingan nilai lebar pulsa


(58)

terhadap nilai overflow motor servo selama T = 20 ms, yang merupakan cacahan pulsa selama 1 ms sampai 2 ms. Berikut perhitungan overflow interrupt sebagai pembangkit PWM untuk mengatur motor servo.

Frekuensi kristal = 11,059200 MHz

T = (1/11059200) = 0,090422 x 10-6 s.

Memakai timer 0 dan nilai precaler 256 untuk mengatur kecepatan clock maka nilai timer overflow yang dihasilkan (0,090422 x 10-6 ) x 256 = 23,148 x 10-6 . Dari hasil tersebut untuk membuat interrupt dapat mencacah selama 20 ms yaitu (20ms/23,148x10-6 ) = 864. Tabel 3.2. menunjukan pemberian nilai pulsa untuk mengontrol pergerakan motor servo secara umum. Dan Gambar 3.12. menunjukan lebar pulsa motor servo dengan menggunakan persamaan 2.3.

Tabel 3.2. Perhitungan nilai overflow interrupt

SUDUT Lebar pulsa Nilai overflow interrupt

0o 1 ms OCR = = 43,20

90o 1,5 ms OCR = = 64,8

180o 2 ms OCR = = 86,40


(59)

3.3.3.

Regulator IC 7805 dan Penguat Arus

Pada pembuatan tugas akhir ini, regulator digunakan sebagai pemberi daya pada motor servo, minimum system ATmega32. Regulator terdiri dari IC 7805, 2N3055, kapasitor, dan diode. Sumber yang digunakan untuk regulator yaitu menggunakan adaptor

switching yang telah tersedia di pasaran dengan spesifikasi keluaran tegangan 19 V dc dan arus 4A.

Untuk men-supply motor servo Towerpro MG946R dibutuhkan arus sebesar 500 - 900 mA. Dengan demikian maka digunakan transistor 2N3055 agar arus keluaran IC

7805 yang memiliki tegangan keluaran sebesar 5 volt menjadi lebih besar. Tegangan 5 volt merupakan tegangan kerja pada masing-masing servo yaitu kurang lebih 4 - 7,2 volt. Komponen yang digunakan pada gambar 3.13 mengacu pada landasan teori[12].

Gambar 3.13. Rangkaian regulator 7805 dengan penguatan arus

3.3.4.

Soundcard

Soundcard digunakan saat sampling untuk proses digitalisasi sinyal suara yang ditangkap oleh mikrofon. Soundcard yang digunakan telah tertanam pada laptop yang akan dipakai. Ucapan dari user berupa sinyal analog, sehingga diubah menjadi sinyal diskrit agar dapat diolah dikomputer.

3.3.5.

Mikrofon

Headset dengan mikrofon untuk menangkap sinyal analog dari input kemudian diteruskan menuju soundcard pada laptop melalui line in yang ada pada sound card. Headset yang digunakan dalam perancangan adalah Intopic Jazz 660. Headset ini memiliki mikrofon dengan panjang 13.5 cm dengan berbentuk lurus. Hal ini digunakan agar dapat mendapatkan data sinyal yang stabil ketika pengujian.


(60)

3.4.

Perhitungan Torsi Motor Servo

Untuk menghitung besar torsi pada masing-masing motor servo, digunakan rumus dan persamaan 2.13. Gambar 3.14. merupakan gambar kontruksi lengan robot untuk menghitung besar torsi masing-masing motor servo. Tabel 3.3. merupakan table hitungan torsi pada tiap servo


(61)

Tabel 3.3 berat yang ditanggung servo

GAYA TORSI

Motor servo 1 (m = 137.7gr) F = m x g

= 0,1377x 9,8 = 1,3494 N

Ket : servo 1 bergerak 0o,70 o,90o ,110o Ket: 1 N-m = 10.1971621298 Kg-cm

 Sudut 0o (r = 41 cm)

τ =1,3494x 0,41 x sin(0) = 0 N-m = 0 kg-cm  Sudut 70o (r = 41 cm)

τ = 1,3494x 0, 41 x sin(70) = 0,5198 N-m = 5,3013 kg-cm  Sudut 90o (r = 41 cm)

τ = 1,3494x 0, 41 x sin(90) = 0,5532 N-m = 5,6415 kg-cm  Sudut 110o (r = 410 cm)

τ = 1,3494x 0,41 x sin(110) = 0,5198N-m = 5,3013kg-cm Motor servo 2 (m = 77,7 gr)

F = m x g = 0,0777 x 9,8 = 0,7614 N

Ket : servo 2 bergerak 90o

 Sudut 90o (r = 41 cm)

τ = 0,7614 x 0, 41 x sin (90) = 0,3121 N-m = 3,18352 kg-cm

Motor servo 3 (m = 22,7gr) F = m x g

= 0,0227 x 9,8 = 0,22246 N

Ket : servo 3 bergerak 70o,80o,90o

 Sudut 70o (r = 27 cm)

τ = 0,22246 x 0, 27 x sin(70) = 0,0564 N-m = 0,5753 kg-cm  Sudut 80o (r = 27 cm)

τ = 0,22246 x 0, 27 x sin(80) = 0,0591 N-m = 0,6030 kg-cm  Sudut 90o (r = 27 cm)

τ = 0,22246 x 0, 27 x sin(90) = 0,0600 N-m = 0,6123 kg-cm

Dari data tabel diatas didapatkan bahwa nilai servo yang ditanggung paling berat adalah 5,6415 kg-cm, pada datasheet servo Towerpro MG946R diketahui bahwa dapat mengangkat beban hingga 12 kg[24], dapat disimpulkan servo dapat menggangkat beban pada lengan robot secara keseluruhan.

3.5. Perancangan Perangkat Lunak (Software)

3.5.1.

Antarmuka Program

Perancangan dalam pembuatan perangkat lunak menggunakan pemograman Matlab. Hal ini juga berlaku dalam tampilan antarmuka yang juga dibuat dengan pemograman Matlab. Antarmuka dalam Matlab disebut dengan Graphical User Interface (GUI).


(62)

Gambar 3.15. Tampilan Program Utama Keterangan dari tampilan utama dapat dilihat pada tabel 3.4.

Table 3.4. Keterangan Tampilan User

NO. NAMA BAGIAN KETERANGAN

1 Rekam Tombol tekan untuk memulai perekaman

2 Reset Tombol tekan untuk mengulang perekaman

3 Keluar Tombol tekan untuk mengakhiri aplikasi

4 Variabel Segment averaging Pilihan nilai panjang lebar pada segment averaging

5 Variabel K-NN Pilihan nilai k pada k-NN

6 Variabel user data base Pilihan user data base

7 Plot hasil perekaman Tampilan grafik untuk suara hasil perekaman

8 Plot hasil DFT Tampilan grafik hasil ektraksi ciri DFT

9 Hasil pengenalan Menunjukkan hasil pengenalan suara

3.5.2.

Proses pengenalan suara pada MATLAB

Pada proses pengenalan suara oleh Matlab, memiliki proses kerja yaitu mula-mula suara dari user terlebih dahulu dikenali menggunakan mikrophone yang dihubungkan pada laptop. Data sinyal ucapan hasil sampling tersebut akan diolah dilaptop menggunakan


(63)

software Matlab. Pengolahan data ucapan dilakukan melalui beberapa tahapan yaitu preprocessing, framing, windowing, ekstraksi ciri, korelasi, dan K-NN. Pada tahap preprocessing merupakan tahap pengkondisian sinyal. Preprocessing sendiri terdiri dari beberapa tahap yaitu, preemphasis, normalisasi, pemotongan sinyal. Pada tahap selanjutnya proses framing dan windowing dengan hasil prosesnya dilanjutkan pada tahap korelasi, pada tahap ini database penyimpanan suara akan dipanggil sabagai data perhitungan. Selanjutnya proses k-NN dimana akan menentukan hasil keluaran dari pengenalan suara.

Gambar 3.16. Blok Diagram Pengenalan Ucapan

3.5.2.1.

Sampling

Mulai

Masukan : perintah suara

Pencuplikan

Keluaran: Ucapan angka.wav

Selesai


(1)

{

delay_ms(100); };

siaga2_robot(); delay_ms(500);

for (data2=50;data2<=69;data2++) {

delay_ms(100); };

}

void angka_delapan() {

//12

for (data1=64;data1<=69;data1++)//100 {

delay_ms(100); };

data2=69; //90 delay_ms(100); data3=75; //90 delay_ms(100);

//23

data1=69; //100 delay_ms(100); data2=69; //90 delay_ms(100);

for (data3=75;data3<=78;data3++) //100 {

delay_ms(100); };

//34

for (data1=69;data1>=64;data1--) //90 {

delay_ms(100); };

data2=69; //90 delay_ms(100); data3=78; //100 delay_ms(100);

//43

for (data1=64;data1<=69;data1++) //100 {

delay_ms(100); };

data2=69; //90 delay_ms(100);

data3=78; //100 delay_ms(100);


(2)

//35

data1=69; //100 delay_ms(100); data2=70; //90 delay_ms(100);

for (data3=78;data3<=81;data3++) //110 {

delay_ms(100); };

//56

for (data1=69;data1>=64;data1--) //90 {

delay_ms(100); };

data2=70; //90 delay_ms(100);

data3=81; //110 delay_ms(100);

//67

data1=64; //90 delay_ms(100); data2=67; //90 delay_ms(100);

for (data3=81;data3>=75;data3--) //90 {

delay_ms(100); };

//mundur

for (data2=67;data2>=50;data2--) {

delay_ms(100); };

siaga2_robot(); delay_ms(500);

for (data2=50;data2<=69;data2++) {

delay_ms(100); };

}

void angka_sembilan() {

//12

for (data1=64;data1>=60;data1--) //80 {

delay_ms(100); };


(3)

data2=69; //90 delay_ms(100); data3=75; //90 delay_ms(100);

//23

data2=71; //90 delay_ms(100); data1=60; //80 delay_ms(100);

for (data3=75;data3>=70;data3--) //80 {

delay_ms(100); }

//34

data2=71; //90 delay_ms(100);

for (data1=60;data1<=64;data1++) //90 {

delay_ms(100); };

data3=70; //80 delay_ms(100);

//45 data2=69; //90 delay_ms(100); data1=64; //90 delay_ms(100);

for (data3=70;data3<=78;data3++) //100 {

delay_ms(100); };

//mundur

for (data2=69;data2>=50;data2--) {

delay_ms(100); };

siaga2_robot(); delay_ms(500);

for (data2=50;data2<=69;data2++) {

delay_ms(100); };

}

void main(void) {


(4)

DDRB=0xFF;

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

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

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

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

// USART initialization

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

// USART Transmitter: Off // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00;

UCSRB=0x10; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off

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

SFIOR=0x00;

// ADC initialization // ADC disabled

ADCSRA=0x00;

// SPI initialization // SPI disabled

SPCR=0x00;

// TWI initialization // TWI disabled

TWCR=0x00;

// Alphanumeric LCD initialization // Connections specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTC Bit 0

// RD - PORTC Bit 1 // EN - PORTC Bit 2


(5)

// D4 - PORTC Bit 4 // D5 - PORTC Bit 5 // D6 - PORTC Bit 6 // D7 - PORTC Bit 7 // Characters/line: 8 lcd_init(16);

// Global enable interrupts #asm("sei")

while (1) {

siaga_robot(); delay_ms(500);

komunikasi(); delay_ms(30);

if(a==97) {

lcd_gotoxy(0,1);lcd_putsf("ANGKA SATU");delay_ms(1000); angka_satu();delay_ms(500);

lcd_clear();delay_ms(10); }

else if(a==98) {

lcd_gotoxy(0,1);lcd_putsf("ANGKA DUA");delay_ms(1000); angka_dua();delay_ms(500);

lcd_clear();delay_ms(10); }

else if(a==99) {

lcd_gotoxy(0,1);lcd_putsf("ANGKA TIGA");delay_ms(1000); angka_tiga();delay_ms(500);

lcd_clear();delay_ms(10); }

else if(a==100) {

lcd_gotoxy(0,1);lcd_putsf("ANGKA EMPAT");delay_ms(1000); angka_empat();delay_ms(10);

lcd_clear();delay_ms(10); }

else if(a==101) {

lcd_gotoxy(0,1);lcd_putsf("ANGKA LIMA");delay_ms(1000); angka_lima();delay_ms(10);

lcd_clear();delay_ms(10); }


(6)

else if(a==102) {

lcd_gotoxy(0,1);lcd_putsf("ANGKA ENAM");delay_ms(1000); angka_enam();delay_ms(10);

lcd_clear();delay_ms(10); }

else if(a==103) {

lcd_gotoxy(0,1);lcd_putsf("ANGKA TUJUH");delay_ms(1000); angka_tujuh();delay_ms(10);

lcd_clear();delay_ms(10); }

else if(a==104) {

lcd_gotoxy(0,1);lcd_putsf("ANGKADELAPAN");delay_ms(1000 );

angka_delapan();delay_ms(10); lcd_clear();delay_ms(10); }

else if(a==105) {

lcd_gotoxy(0,1);lcd_putsf("ANGKASEMBILAN");delay_ms(1000); angka_sembilan();delay_ms(10);

lcd_clear();delay_ms(10); }

else if(a==106) {

lcd_gotoxy(0,1);lcd_putsf("ANGKA NOL");delay_ms(1000); angka_nol();delay_ms(10);

lcd_clear();delay_ms(10); }

} }