INTISARI
Seiring perkembangan modern, manusia banyak sekali melakukan aktivitas yang beresiko terjadi kecelakaan. Salah satu aktivitaasnya yakni saat mengambil benda pada ketinggian. Diamping itu masa sekarang sudah banyak pekerjaan manusia yang dilakukan oleh robot. Robot mempermudah manusia untuk melakukan hal yang beresiko terjadinya kecelakaan. Selain robot juga berkembang pula teknologi speech regonition yang berguna untuk mengenali ucapan manusia. Dengan kedua teknologi tersebut memberikan ide untuk mengendalikan lengan robot dengan suara manusia untuk mengambil benda
Lengan robot akan bergerak berdasarkan perintah ucapan yang diterima. Lengan robot memiliki 4 buah servo yang terletak pada base, shoulder, elbow dan gripper. Benda yang diambil terbuat dari sterofoam berwana putih. Ucapan manusia akan diterima menggunakan
microphone menuju PC/laptop. Perintah ucapan untuk mengambil benda yaitu balok, bola, kubus, dan tabung. Semua ucapan diproses melalui tahapan seperti pre emphasis,
normalisasi, pemotongan sinyal, zero padding, framing , windowing data masukan dan ektraksi ciri DFT( DiscreteFourierTransform). Hasil ektraksi ciri akan dibandingkan dengan variasi database 1, 2, 4,dan 8 ucapan dengan melakukan perhitungan similaritas kosinus.
Pengenalan ucapan untuk pergerakan lengan robot pengambil benda telah berjalan dengan baik terhadap 3 user. Perintah masukan ucapan berhasil dideteksi dan lengan robot telah bergerak sesuai perintah ucapan masukan. Gripper lengan robot dapat mengambil benda dengan ukuran 5cm. Didapatkan hasil terbaik dengan database 1, segment averaging 8, dan nilai kNN 1. Program pengenalan realtime dengan nilai thresholding mampu mengenali rata rata persentase semua user sebesar 87,5%.
Kata kunci : lengan robot, speech recognition, DFT(Discrete Fourier Transform), kNN,
▸ Baca selengkapnya: jurnal ucapan ulang tahun untuk bestie
(2)ABSTRACT
As the time goes on, human have done numerous dangerous high risk activity. One of the examples is process of taking object at a certain height. Other than that, most human activities can be done by robot these days. Robot ease human in doing high risk activity that could lead to accident. Other than the advance of robot technology during the few last decades, speech and voice recognition technology in identifies human verbal command also found and improved. With the two new technologies, it gave an idea to control an artificial robot arm with voice recognition to taking object.
Robot’s arm will move according to command that it receives. Robot’s arm have 4
servo which are located at base, shoulder, elbow, and gripper. Object that will be used for grabbing is made with a white colour styrofoam. Human speech will be receive by using a microphone which will linked to a PC/laptop. Verbal command to take object with different kind of shape, such as beam, ball, cube, or tube. All verbal command will be processed in few stages, such as pre emphasis, normalisasi, pemotongan sinyal, zero padding, framing ,
windowing of input data and character extraction of DFT (Discrete Fourier Transform). Result of character extraction will be sampled against verbal database 1,2,4, dan 8 to be analyzed of cosinus similarities.
Voice recognition usage to move robot’s arm movement in taking object have gone well for three users. Input of verbal command successfully detected and robot’s arm have
moved according to commands. Robot arm gripper can pick up objects with the size of 5 cm. Best result is in database 1, segment averaging of 8, and kKN score of 1. Program with the introduction of real time thresholding able to recognize the value of an average percentage of 87.5% of all users..
TUGAS AKHIR
APLIKASI PENGENALAN UCAPAN
UNTUK LENGAN ROBOT PENGAMBIL BENDA
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh :
FRANSISCUS XAVERIUS DWICAHYO RIANTO PUTRO
NIM : 115114009
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
i
TUGAS AKHIR
APLIKASI PENGENALAN UCAPAN
UNTUK LENGAN ROBOT PENGAMBIL BENDA
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh :
FRANSISCUS XAVERIUS DWICAHYO RIANTO PUTRO
NIM : 115114009
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
ii
FINAL PROJECT
SPEECH RECOGNITION APPLICATIONS FOR ROBOT ARM TAKER
OBJECTS
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
FRANSISCUS XAVERIUS DWICAHYO RIANTO PUTRO
NIM : 115114009
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO :
Seseorang takkan pernah memahami arti keberhasilan
yang sempurna tanpa mengalami kegagalan sebelumnya
Dengan ini kupersembahkan karyaku untuk …..
Yesus Kristus Sang Juru Selamat pendamping hidupku yang setia,
Keluargaku tercinta,
Anastasia Andita Prastiti yang selalu menemaniku,
Teman-teman seperjuanganku,
viii
INTISARI
Seiring perkembangan modern, manusia banyak sekali melakukan aktivitas yang beresiko terjadi kecelakaan. Salah satu aktivitaasnya yakni saat mengambil benda pada ketinggian. Diamping itu masa sekarang sudah banyak pekerjaan manusia yang dilakukan oleh robot. Robot mempermudah manusia untuk melakukan hal yang beresiko terjadinya kecelakaan. Selain robot juga berkembang pula teknologi speech regonition yang berguna untuk mengenali ucapan manusia. Dengan kedua teknologi tersebut memberikan ide untuk mengendalikan lengan robot dengan suara manusia untuk mengambil benda
Lengan robot akan bergerak berdasarkan perintah ucapan yang diterima. Lengan robot memiliki 4 buah servo yang terletak pada base, shoulder, elbow dan gripper. Benda yang diambil terbuat dari sterofoam berwana putih. Ucapan manusia akan diterima menggunakan
microphone menuju PC/laptop. Perintah ucapan untuk mengambil benda yaitu balok, bola, kubus, dan tabung. Semua ucapan diproses melalui tahapan seperti pre emphasis,
normalisasi, pemotongan sinyal, zero padding, framing , windowing data masukan dan ektraksi ciri DFT( DiscreteFourierTransform). Hasil ektraksi ciri akan dibandingkan dengan variasi database 1, 2, 4,dan 8 ucapan dengan melakukan perhitungan similaritas kosinus.
Pengenalan ucapan untuk pergerakan lengan robot pengambil benda telah berjalan dengan baik terhadap 3 user. Perintah masukan ucapan berhasil dideteksi dan lengan robot telah bergerak sesuai perintah ucapan masukan. Gripper lengan robot dapat mengambil benda dengan ukuran 5cm. Didapatkan hasil terbaik dengan database 1, segment averaging 8, dan nilai kNN 1. Program pengenalan realtime dengan nilai thresholding mampu mengenali rata rata persentase semua user sebesar 87,5%.
Kata kunci : lengan robot, speech recognition, DFT(Discrete Fourier Transform), kNN,
ix
ABSTRACT
As the time goes on, human have done numerous dangerous high risk activity. One of the examples is process of taking object at a certain height. Other than that, most human activities can be done by robot these days. Robot ease human in doing high risk activity that could lead to accident. Other than the advance of robot technology during the few last decades, speech and voice recognition technology in identifies human verbal command also found and improved. With the two new technologies, it gave an idea to control an artificial robot arm with voice recognition to taking object.
Robot’s arm will move according to command that it receives. Robot’s arm have 4 servo which are located at base, shoulder, elbow, and gripper. Object that will be used for grabbing is made with a white colour styrofoam. Human speech will be receive by using a microphone which will linked to a PC/laptop. Verbal command to take object with different kind of shape, such as beam, ball, cube, or tube. All verbal command will be processed in few stages, such as pre emphasis, normalisasi, pemotongan sinyal, zero padding, framing ,
windowing of input data and character extraction of DFT (Discrete Fourier Transform). Result of character extraction will be sampled against verbal database 1,2,4, dan 8 to be analyzed of cosinus similarities.
Voice recognition usage to move robot’s arm movement in taking object have gone well for three users. Input of verbal command successfully detected and robot’s arm have moved according to commands. Robot arm gripper can pick up objects with the size of 5 cm. Best result is in database 1, segment averaging of 8, and kKN score of 1. Program with the introduction of real time thresholding able to recognize the value of an average percentage of 87.5% of all users..
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus karena atas segala
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 begitu banyak pihak yang
memberikan bantuan baik berupa idea tau gagasan, dukungan moral, maupun bantuan materi.
Oleh karena itu, peneliti ingin mengucapkan terimakasih kepada :
1. Drs. Johanes Eka Priyatma, M.Sc., Ph.D, Rektor Universitas Sanata Dharma
2. Paulina Haruningsih Prima Rosa, S.si., M.Sc, Dekan Fakultas Sains dan
Teknologi
3. Petrus Setyo Prabowo, S.T., M.T., Ketua Program Studi Teknik Elektro
Universitas Sanata Dharma.
4. Dr.Linggo Sumarno, dosen pembimbing yang dengan penuh setia, kesabaran dan
pengertian untuk membimbing dalam menyelesaikan Tugas Akhir ini.
5. Wiwien Widyastuti, S.T.,M.T. dan Dr.Iswanjono selaku dosen penguji yang telah
memberi masukkan, kritik dan saran serta merevisi penulisan tugas akhir ini.
6. Seluruh dosen yang telah mengajarkan banyak ilmu yang bermanfaat selama
menempuh pendidikan di Universitas Sanata Dharma.
7. Keluarga penulis baik ayah, ibu, adik, dan kakak yang telah banyak memberikan
dukungan doa, kasih sayang dan motivasi selama menempuh pendidikan di
Universitas Sanata Dharma.
8. Anastasia Andita Prastiti kekasihku yang selalu menemani dan mendukung
selama penulisan tugas akhir ini.
9. Keluarga besarku yang telah memberi dukungan selama menempuh pendidikan di
Universitas Sanata Dharma.
10.Teman – teman seperjuangan Teknik Elektro 2011 yang telah menemani pada
saat menempuh pendidikan di Universitas Sanata Dhama.
11.Semua pihak yang tidak bisa disebutkan satu persatu yang telah banyak
xii
DAFTAR ISI
Halaman
HALAMAN JUDUL
. ... iHALAMAN PERSETUJUAN
.. ... iiiHALAMAN PENGESAHAN
. ... ivPERNYATAAN KEASLIAN KARYA
. ... vHALAMAN PERSEMBAHAN DAN MOTTO HIDUP
... viLEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA
ILMIAH UNTUK KEPENTINGAN AKADEMIS
. ... viiINTISARI
. ... viiiABSTRACT
. ... ixKATA PENGANTAR
. ... xDAFTAR ISI
. ... xiiDAFTAR GAMBAR
. ... xviDAFTAR TABEL
. ...
xix
BAB I PENDAHULUAN
1.1. Latar Belakang. ... 11.2. Tujuan dan Manfaat Penelitian ... 2
1.3. Batasan Masalah ... 2
1.4. Metodologi Penelitian ... 3
BAB II DASAR TEORI
2.1. Sinyal Suara Manusia ... 62.2. SpeechRecognition ... 7
2.3. Sampling ... 7
2.4. Preprocessing ... 8
2.4.1. PreEmphasis ... 8
2.4.2. Normalisasi ... 9
2.4.3. Pemotongan Sinyal ... 10
xiii
2.5. Framing dan Windowing ... 12
2.6. DiscreteFourierTransform(DFT) ... 14
2.7. SegmentAveraging ... 15
2.8. Klasifikasi K-NN... 16
2.9 Template Matching ... 17
2.9.1. Similaritas Kosinus... 17
2.10. Lengan Robot ... 17
2.11. Mikrokontroler ATmega32... 18
2.11.1. Arsitektur AVR ATmega32 ... 19
2.11.2. Konfigurasi PIN Mikrokontroler ATmega32 ... 19
2.11.3. Peta Memori AVR ATmega32 ... 20
2.11.4. Interupsi ... 21
2.11.5. Timer/Counter Atmega32 ... 21
2.11.6. Komunikasi Serial USART ... 23
2.11.6.1. USART Control and StatusRegister A(USCRA) ... 24
2.11.6.2. USART Control and StatusRegister B(USCRB) ... 25
2.11.6.3. USART Control and StatusRegister C(USCRC) ... 26
2.11.6.4. USART I/O Data Register (UDR) ... 27
2.12. SoundCard ... 27
2.13. Momen Gaya/Torsi ... 28
2.14. Motor Servo ... 28
2.15. LCD 16x2... ... 31
2.16. IC Regulator... 34
2.17. Benda 3 Dimiensi... 36
2.18. Mikrofon... 36
BAB III PERANCANGAN
3.1. Konsep Dasar ... 383.1.1. Ucapan Manusia... ... 39
3.1.2. Mikrofon.... ... 39
3.1.3. Sound Card (Kartu Suara)... ... 40
3.1.4. Matlab.... ... 40
3.1.5. USB TO TTL.... ... 40
xiv
3.1.7. Motor Servo.. ... 41
3.2. Perancangan Sistem Pengenalan Ucapan ... 41
3.2.1. Sampling... 43
3.2.2. PreEmphasis... ... 45
3.2.3. Normalisasi... ... 45
3.2.4. Pemotongan Sinyal... ... 46
3.2.5. ZeroPadding... 47
3.2.6. Framing dan Windowing... ... 48
3.2.7. Ektraksi Ciri... ... 49
3.2.8. Perhitungan Similaritas... ... 50
3.2.9. Penentuan hasil pengenalan suara (k-NearestNeigbor)... ... 51
3.2.10. Program komunikasi serial dengan matlab... ... 53
3.2.11. Program interupt lengan robot... ... 54
3.3. Perancangan Pembentukan Database Ucapan Kata ... 63
3.4. Perancangan GUI MATLAB ... 63
3.5. Perancangan Lengan Robot ... 64
3.5.1. Perancangan Peletakan Seluruh Komponen ... 66
3.6. Perancangan Lengan Robot ... 67
3.6.1. Minimum System ATmega32... 67
3.6.2. Rangkaian Konfigurasi LCD 16x2 ... 68
3.6.3. Perhitungan Torsi ... 69
3.6.4. Motor Servo ... 72
3.6.5. Regulator IC dan Penguatan Arus ... 73
3.6.6. Benda 3 Dimensi ... 74
BAB IV HASIL DAN PEMBAHASAN
4.1. Implementasi Lengan Robot ... 754.1.1. Bentuk Fisik Hardware dan Konsep Kerja Lengan Robot... 75
4.1.2. SistemElektronik ... 77
4.1.3. Implementasi Peletakan Seluruh Komponen ... 79
4.1.4. Program Lengan Robot... ... 79
4.1.4.1. Pengendalian Komunikasi USART... ... 80
4.1.4.2. Pengendalian Motor Servo... ... 81
xv
4.2.1. Tombol Rekam ... 85
4.2.2. PopUpMenu ... 92
4.2.3. Tombol Reset... ... 94
4.2.4. Tombol Stop... ... 94
4.3. Pengujian Sudut Motor Servo... ... 94
4.4. Pengujian Untuk Tingkat Pengenalan Ucapan... ... 96
4.4.1. Pengujian Pengenalan Ucapan Secara RealTime... 96
4.4.2. Pengujian Pengenalan Secara RealTime ... 102
4.4.2.1. Pengujian RealTime tanpa Nilai Thresholding ... 102
4.4.2.2. Pengujian RealTime dengan Nilai Thresholding ... 104
BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan... 1075.2. Saran... 108
DAFTAR PUSTAKA
... 109LAMPIRAN
LAMPIRAN A Percobaan Sampling dengan Variasi LamaWaktu Pencuplikan ... L1
LAMPIRAN B Percobaan Menentukan Sudut Tiap Servo dengan Lengan Robot ... L8
LAMPIRAN C Rangkaian Elektronika... L15
LAMPIRAN D Pembentukan Basis Data ... L17
LAMPIRAN E Pengujian Pengenalan Secara Tidak RealTime. ... L19
LAMPIRAN F Program Pengenalan Ucapan Secara RealTime. ... L28
LAMPIRAN G Menentukan Similaritas Minimal untuk Nilai Thresholding... L35
LAMPIRAN H Program Lengan Robot dengan Codevision. ... L36
xvi
DAFTAR TABEL
Halaman
Tabel 2.1. Hubungan PIN dan Interupt ... 21
Tabel 2.2. Penentuan Ukuran Karakter untuk UCSZ[2..0] ... 25
Tabel 2.3. Setting UPM0..1 untuk settingparity ... 26
Tabel 2.4. Spesifikasi servo Towerpro 996R ... 30
Tabel 2.5. Spesifikasi servo Towerpro SG90 ... 31
Tabel 2.6. Operasi baca/tulis LCD 16x2 ... 32
Tabel 2.7. Operasi dasar LCD 16x2 ... 33
Tabel 2.8. Konfigurasi pin LCD 16x2 ... 34
Tabel 2.9. Karakteristik Regulator Tegangan IC 78xx ... 34
Tabel 2.10. Spesifikasi mikrofon pada headset SADES ... 37
Tabel 3.1. Spesifikasi Headset SADES... 40
Tabel 3.2. Pengucapan kata dan data yang dikirim ... 54
Tabel 3.3. Kondisi dan posisi sudut tiap servo ... 55
Tabel 3.4. Keterangan tampilan GUI MATLAB... ... 64
Tabel 3.5. Data yang diguanakan untuk perhitungan torsi... .... 70
Tabel 3.6. Perhitungan nilai OCR pada motor servo... ... 73
Tabel 4.1. Tabel Fungsi Saluran Mikrokontroler. ... 80
Tabel 4.2. Nilai OCR setiap kondisi pada masing masing data pada servo ... 82
Tabel 4.3. Nilai OCR pada pergerakan 10 derajat motor servo ... 95
Tabel 4.4. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R ... 95
Tabel 4.5. Tingkat Pengenalan (%) Secara Tidak RealTime dengan Database 1 ... 97
Tabel 4.6. Tingkat Pengenalan (%) Secara Tidak RealTime dengan Database 2 ... 98
Tabel 4.7. Tingkat Pengenalan (%) Secara Tidak RealTime dengan Database 4 ... 99
Tabel 4.8. Tingkat Pengenalan (%) Secara Tidak RealTime dengan Database 8... 100
Tabel 4.9. Batas Bawah Nilai Similaritas... 102
Tabel 4.10. ConfusionMatrix Data Hasil Pengujian Secara RealTime dengan User Pertama ... 103
xvii
Tabel 4.12. ConfusionMatrix Data Hasil Pengujian Secara RealTime dengan User
Ketiga ... 103
Tabel 4.13. ConfusionMatrix Data Hasil Pengujian Secara RealTime dengan Nilai
Thresholding User Pertama ... 104
Tabel 4.14. ConfusionMatrix Data Hasil Pengujian Secara RealTime dengan Nilai
Thresholding User Kedua ... 104
Tabel 4.15. ConfusionMatrix Data Hasil Pengujian Secara RealTime dengan Nilai
Thresholding User Ketiga ... 104
Tabel 4.16. ConfusionMatrix Data Hasil Pengujian Secara RealTime dengan Nilai
Thresholding Pengucapan Kata Lain User Pertama ... 104
Tabel 4.17. ConfusionMatrix Data Hasil Pengujian Secara RealTime dengan Nilai
Thresholding Pengucapan Kata Lain User Kedua ... 104
Tabel 4.18. ConfusionMatrix Data Hasil Pengujian Secara RealTime dengan Nilai
xviii
DAFTAR GAMBAR
Halaman
Gambar 1.1. Alur kerja seluruh sistem ... 4
Gambar 2.1. Gambar Artikulator Pada Saat Produksi Suara ... 6
Gambar 2.2. Gambar Tempat Produksi Suara ... 7
Gambar 2.3. Gambar Aliasing ... 8
Gambar 2.4. Sinyal Masukan ... 9
Gambar 2.5. Sinyal Hasil PreEmphasis ... 9
Gambar 2.6. Sinyal Hasil PreEmphasis ... 10
Gambar 2.7. Sinyal Hasil Normalisasi ... 10
Gambar 2.8. Posisi Sinyal Data Ucapan ... 11
Gambar 2.9. Proses Pemotongan Sinyal ... 11
Gambar 2.10. Proses ZeroPadding ... 12
Gambar 2.11. Proses Framing. ... 13
Gambar 2.12. Proses Framing dan Windowing ... 14
Gambar 2.13. Proses Ektraksi Ciri ... 15
Gambar 2.14. Proses SegmentAveraging... 16
Gambar 2.15. Bagian robot manipulator ... 18
Gambar 2.16. Konfigurasi Pin Mikrokontroler ATmega32. ... 19
Gambar 2.17. ModePhaseCorrect PWM... 22
Gambar 2.18. ModeFast PWM... ... 23
Gambar 2.19. Register USCRA... ... 24
Gambar 2.20. Register UCSRB... ... 25
Gambar 2.21. Register UCSRC... ... 26
Gambar 2.22. Register UDR... ... 27
Gambar 2.23. Bentuk soundcard PC... ... 28
Gambar 2.24. Model fisik motor servo... ... 28
Gambar 2.25. Cara pengontrolan motor servo... ... 29
Gambar 2.26. Towerpro 996R... ... 30
Gambar 2.27. Towerpro SG90... ... 31
xix
Gambar 2.29. Rangkaian umum regulator 78xx... ... 35
Gambar 2.30. Rangkaian catu daya dengan penguat... ... 35
Gambar 2.31. Benda 3 Dimensi... ... 36
Gambar 2.32. Bentuk headset SADES... ... 37
Gambar 3.1. Perancangan Sistem.. ... 38
Gambar 3.2. Headset SADES ... 39
Gambar 3.3. Blok Diagram Perancangan Pengenalan Suara... 41
Gambar 3.4. Blok Diagram SubProses Preprocessing ... 42
Gambar 3.5. Flowchart Program pada MATLAB ... 43
Gambar 3.6. Flowchart Program Fungsi Sampling ... 44
Gambar 3.7. Flowchart Program PreEmphasis ... 45
Gambar 3.8. Flowchart Program Fungsi Normalisasi ... 46
Gambar 3.9. Flowchart Program Pemotongan Sinyal ... 46
Gambar 3.10. Flowchart Program ZeroPadding ... 47
Gambar 3.11. Flowchart Program framing dan windowing ... 49
Gambar 3.12. Flowchart Ektraksi Ciri DFT ... 49
Gambar 3.13. FlowchartSegmentAveraging ... 50
Gambar 3.14. Flowchart Program Perhitungan Similaritas ... 51
Gambar 3.15. Flowchart Pengenalan Keluaran dengan Metode kNN ... 53
Gambar 3.16. Flowchart Program Komunikasi Serial dengan MATLAB ... 54
Gambar 3.17. Posisi Servo pada Lengan Robot ... 55
Gambar 3.18. Flowchart Pergerakan Lengan Robot Keseluruhan... 56
Gambar 3.19. Flowchart program subrutin lengan robot saat kondisi awal ... 57
Gambar 3.20. Flowchart program subrutin lengan robot saat pengambilan
bola... 58
Gambar 3.21. Flowchart program subrutin lengan robot saat pengambilan
kubus... 59
Gambar 3.22. Flowchart program subrutin lengan robot saat pengambilan
balok... 60
Gambar 3.23. Flowchart program subrutin lengan robot saat pengambilan
tabung... 61
Gambar 3.24. Flowchart program subrutin lengan robot saat meletakan
xx
Gambar 3.25. Rancangan interface GUI MATLAB dalam
sistem... 63
Gambar 3.26. Diagram Blok Lengan Robot... 64
Gambar 3.27. Design lengan robot secara keseluruhan... 65
Gambar 3.28. Perancangan Link 1... 65
Gambar 3.29. Perancangan Link 2... 66
Gambar 3.30. Perancangan Gripper... 66
Gambar 3.31. Seluruh Komponen... 67
Gambar 3.32. Rangkaian Osilator pada ATmega32... 68
Gambar 3.33. Rangkaian Reset pada ATmega32... 68
Gambar 3.34. Rangkaian LCD 16x2... 69
Gambar 3.35. Konfigurasi kaki LCD 16x2... 69
Gambar 3.36. Kontruksi Lengan Robot... 70
Gambar 3.37. Rangkaian pin motor servo... 72
Gambar 3.38. Lebar pulsa pada motor servo... 73
Gambar 3.39. Rangkaian regulator 7805 dengan penguatan arus... 74
Gambar 3.40. Benda 3 dimensi... 74
Gambar 4.1. Lengan Robot Tampak Atas dan Tampak Samping ...
75 Gambar 4.2. Bentuk Fisik Benda... 76
Gambar 4.3 Tempat Pengambilan Benda... 76
Gambar 4.4. Tempat Meletakkan Benda. ... 77
Gambar 4.5. Bentuk fisik USB To TTL ... 77
Gambar 4.6. MinimumSystem. ... 78
Gambar 4.7. Regulator. ... 78
Gambar 4.8. Gambar implementasi peletakan seluruh komponen. ... 79
Gambar 4.9. Tampilan GUI Program Pengenalan. ... 84
Gambar 4.10. Grafik Pengaruh Perubahan SegmentAveraging pada Tingkat Pengenalan
Database 1. ... 97
Gambar 4.11. Grafik Pengaruh Perubahan Nilai k pada kNN pada Tingkat Pengenalan
Database 1. ... 98
Gambar 4.12. Grafik Pengaruh Perubahan SegmentAveraging pada Tingkat Pengenalan
xxi
Gambar 4.13. Grafik Pengaruh Perubahan Nilai k pada kNN pada Tingkat Pengenalan
Database 2. ... 99
Gambar 4.14. Grafik Pengaruh Perubahan SegmentAveraging pada Tingkat Pengenalan
Database 4. ... 99
Gambar 4.15. Grafik Pengaruh Perubahan Nilai k pada kNN pada Tingkat Pengenalan
Database 4 ... 100
Gambar 4.16. Grafik Pengaruh Perubahan SegmentAveraging pada Tingkat Pengenalan
Database 8... 100
Gambar 4.17. Grafik Pengaruh Perubahan Nilai k pada kNN pada Tingkat Pengenalan
1
BAB I
PENDAHULUAN
1.1.
Latar Belakang Masalah
Seiring perkembangan modern, manusia banyak sekali melakukan aktivitas – aktivitas yang membuat mereka beresiko terjadi kecelakaan. Salah satu aktivitas yang
berisiko yakni pada saat manusia ingin mengambil benda pada ketinggian , dengan
manusia melakukan aktivitas ini banyak sekali resiko yang timbul . Bukan hanya itu saja
banyak juga manusia sekarang yang kekurangan dalam melakukan aktivitas dengan
menggunakan tangan , sebagai contoh manusia yang tidak memiliki tangan akan kesulitan
untuk mengambil benda yang dia inginkan. Tanpa tangan mereka sulit melakukan dalam
kesehariaannya.
Dalam industri masa kini lengan robot banyak dioperasikan secara manual dengan
menekan tombol - tombol yang akan memerintahkan kerja lengan robot . Lengan robot
dirancang menyerupai tangan manusia agar dapat berfungsi sebagai organ tangan. Lengan
robot dilengkapi dengan aktuator dan memiliki 3 Degree of Freed(DOF) atau lebih.
Bagian ujung lengan robot disebut dengan end- effector. Bagian ini bisa berupa perangkat
pengelas, pengecetan, peralatan mesin atau gripper (berfungsi untuk menggenggam).
Untuk melaksanakan fungsinya lengan robot dapat dikontrol dengan menggunakan
mikrokontroler oleh pengguna.
Saat ini juga telah berkembang pula teknologi pengenalan ucapan yang biasanya
dengan sebutan speech recognition. Teknologi speech regcognition merupakan suatu
proses untuk mengenali seseorang dengan mengenali ucapan dari orang tersebut[1]. Sinyal
suara yang keluar dari mulut manusia tersebut diproses oleh sistem dengan berbagai
algoritma yang digunakan untuk ekstraksi ciri suara. Dari hasil pengenalan ucapan dapat
digunakan pada berbagai macam aplikasi. Banyak aplikasi-aplikasi yang telah dihasilkan
seiring dengan metode dan proses dari pengenalan ucapan tersebut. Salah satu aplikasinya
adalah untuk navigasi robot. Proses pengenalan suara memiliki beberapa aspek yang perlu
diperhatikan yaitu akuisisi data suara, pembentukan database suara, ekstraksi ciri sinyal
suara, dan pengenalan pola suara hasil ekstraksi ciri terhadap database suara [2].
Penulis juga menemukan penelitian tentang lengan robot sebelumnya yang berjudul
penelitian tersebut lengan robot bekerja hanya memindahkan tempat dari satu tempat ke
tempat lainnya. Dari referensi yang dibaca diatas memberikan ide bagi penulis untuk
membuat Aplikasi Pengenalan Ucapan Untuk Lengan Robot Pengambil Benda. Proses
pengambilan data suara diperoleh dari mikrofon yang terletak di headset kemudian diubah
dalam bentuk digital oleh soundcard pada laptop. Pada proses ekstraksi ciri yang
digunakan dalam penelitian ini yaitu discrete fourier transform (DFT). Hasil dari ekstraksi
ciri akan dibandingkan kemiripannya terhadap database suara dengan menggunakan
perhitungan similaritas. Hasil akhir dari proses pengenalan ucapan akan dikirim secara
serial menuju mikrokontroler. Mikrokontroler yang menerima perintah yang akan
mengolah data yang diterima untuk menjalankan servo dari lengan robot sesuai dengan
perintah ucapannya.
1.2.
Tujuan dan Manfaat Penelitian
Tujuan dari penelitian ini yaitu :
1. Merancang dan membuat lengan robot yang bekerja sesuai perintah yang
diucapkan. Lengan robot tersebut sebagai wujud dari aplikasi pengenalan suara
berupa ucapan oleh manusia untuk mengambil benda. Lengan robot akan berkerja
untuk mengambil benda balok, tabung, bola, dan kubus sesuai dengan perintah
yang diterima.
Manfaat dari penelitian ini yaitu :
1. Penelitian ini dapat dijadikan ide bagi perusahaan industri untuk mengembangkan
lengan robot manual, dengan teknologi speech recognition agar mengurangi resiko
pada manusia .
2. Penelitian ini dapat digunakan bagi perkembangan teknologi dibidang control
dengan menggunakan perintah suara untuk mengoperasikan berbagai hal.
1.3.
Batasan Masalah
Agar penelitian ini bisa mengarah pada tujuan dan untuk menghindari terlalu
kompleksnya permasalahan yang muncul, maka perlu adanya beberapa batasan masalah
yang sesuai dengan judul dari penelitian ini.
Adapun batasan masalah yaitu :
1. Software pengolahan data pengenalan ucapan menggunakan MATLAB.
3. Kata yang digunakan untuk input pengenalan ucapan yaitu balok, kubus, tabung,
dan bola. Pengucapan selain kata-kata yang sudah ditentukan akan dikenali secara
salah.
4. Pelaku yang memberi perintah ucapan terdiri dari tiga orang yang sudah ditentukan
peneliti, dengan intonasi pengucapan kata secara normal atau biasa.
5. Aktuator dari aplikasi pengenalan ucapan menggunakan lengan robot yang akan
bergerak sesuai perintah ucapan yang terdeteksi.
6. Menggunakan mikrokontroler keluarga AVR ATmega32 pada lengan robot.
7. Variasi nilai pada variabel nilai k pada kNN dan nilai lebar segment averaging
ditentukan sebagai berikut :
Nilai k pada kNN = 1; 3; 5; dan 7. Nilai lebar segmentaveraging = 8; 16; 32; dan 64.
8. Komunikasi serial dari laptop kepada mikrokontroler menggunakan modul USB to
TTL converter.
1.4.
Metodologi Penelitian
Berdasarkan pada tujuan yang ingin dicapai, maka ada beberapa metode yang harus
digunakan dalam penyusunan penelitian ini yaitu:
1. Studi literatur,
Untuk memperoleh landasan teori dalam penelitian dalam pembuatan alat maka
tahap pertama yang harus dilakukan adalah mencari bahan-bahan sebagai informasi
dan referensi pengetahuan melalui pembacaan buku-buku acuan,artikel-artikel,
jurnal-jurnal serta informasi yang berkaitan dengan penelitian seperti Ekstraksi ciri
DFT, similaritas kosinus, MATLAB, komunikasi serial USB to TTL, Motor Servo
dan datasheet ATmega32.
2. Perancangan alur kerja sistem secara umum
Merancang alur atau diagram kerja yang akan dipakai dalam penelitian. Alur kerja
sistem akan menjelaskan proses dari awal pengambilan ucapan sebagai masukan
hingga menuju keluaran aktuator berupa pergerakan lengan robot dengan putaran
Gambar 1.1. Alur kerja seluruh sistem.
3. Pembuatan database ucapan.
Merekam sampel suara berupa ucapan yang digunakan sebagai database. Database
tersebut nantinya akan digunakan sebagai parameter pembanding terhadap ucapan
real-time saat aplikasi dilakukan. Setiap user memiliki database masing-masing.
4. Perancangan dan pembuatan software pengenalan ucapan.
Merancang dan membuat program pada MATLAB sebagai pengolahan data untuk
pengenalan ucapan manusia. Membuat program pengiriman data secara serial.
Melakukan eksperimen pengenalan ucapan dan pengiriman data serial dari
MATLAB ke mikrokontroler ATmega32.
5. Perancangan dan pembuatan hardware.
Perancangan ini bertujuan membuat tahapan pemodelan hardware berupa lengan
robot dan sesuai dengan penelitian. Tahapan harus dapat mempertimbangkan
permasalahan dan kebutuhan yang sudah ditentukan. Sesuai pada perancangan alur
kerja hardware pada lengan robot terdiri dari mikrokontroler ATmega32 sebagai
pengolah data, dan motor servo sebagai penggerak lengan robot. Pembuatan
tahapan program juga dilakukan agar mikrokontroler dapat mengolah data yang
diperintah user untuk menggerakkan motor servo dengan mengatur sudut sudutnya
dan untuk menerima data secara serial dari MATLAB dengan menggunakan USB
to TTL converters.
Pengambilan data yang dilakukan untuk dapat menguji sistem dilakukan dalam 3
tahap yaitu :
Pengenalan ucapan secara offline dengan merekam 20 data ucapan pada tiap kata ucapan. Pengenalan ucapan dilakukan pada data ucapan tersebut pada
setiap variasi nilai variabel.
Pengiriman data serial dari laptop menuju mikrokontroler dengan
menggunakan modul USB to TTL.
Pengenalan ucapan secara realtime dengan menangkap ucapan dan langsung diproses hingga terjadi pergerakan lengan robot.
Pengambilan data dilakukan dengan memvariasikan nilai pada variabel data yang
ditentukan. Variabel yang digunakan yaitu nilai k pada kNN, dan lebar segment
averaging.
7. Analisis dan pembahasan hasil penelitian.
Analisa dengan melakukan pendataan dari hasil ketepatan pengenalan suara
terhadap benda yang diambil serta nilai OCR pada sudut tiap kondisi yang sudah
ditentukan. Analisa dan pembahasan dilakukan dengan mengamati nilai persentase
error terhadap pengenalan ucapan serta berhasilnya lengan robot mengambil benda
6
BAB II
DASAR TEORI
2.1.
Sinyal Suara Manusia
Bunyi bahasa ditentukan oleh sumber bunyi serta proses dalam memproduksi
bahasa itu, sehingga setiap manusia memiliki suara yang berbeda antara satu dan yang
lainnya. Hal ini membuat manusia memiliki suara berbeda satu dengan yang lainnya,
karena adanya perbedaan volume rongga mulut dan volume rongga tenggorokan. Untuk
menghasilkan bunyi bahasa yang benar diperlukan alat bicara yang normal. Keterampilan
dan kemampuan organ alat bicara dalam melakukan artikulasi. Kemampuan mengatur
pernapasan untuk mengalirkan udara ke rongga tenggorokan, mulut, dan hidung. Alat
bicara merupakan perangkat anggota tubuh manusia yang berfungsi sebagai sumber bunyi
manusia. Sumber bunyi yang ada dalam tubuh manusia dipilah atas 3 bagian yaitu rongga
mulut, tenggorokan dan rongga badan. Gambar 2.1 adalah gambar artikulator pada saat
[image:30.595.90.529.371.619.2]produksi suara[4].
Gambar 2.1. Gambar Artikulator Pada Saat Produksi Suara[4].
Artikulator atau alat ucap yang berada di rongga mulut berfungsi sebagai pengatur
artikulasi dan volume ruang rongga mulut. Pengaturan volume ruang ini diperlukan untuk
menghasilkan bunyi yang diinginkan. Artikulator dibedakan menjadi 2 jenis yaitu
artikulator aktif dan artikulator pasif. Artikulator aktif adalah alat ucap yang secara aktif
artikulator pasif adalah alat ucap yang diam (tidak aktif bergerak), yaitu bibir atas, gigi
atas, gusi, langit - langit keras, dan langit - langit lunak, yang berfungsi sebagai daerah
artikulasi yaitu lokasi tempat artikulator aktif menghambat atau menutup udara. Suara
manusia biasanya memiliki rentang frekuensi 300-3000 Hz. Ada 4 proses produksi suara
pada manusia yaitu proses oronasal, proses artikulasi, proses aliran udara dan proses
[image:31.595.91.511.191.434.2]pembunyian. Gambar 2.2 adalah gambar tempat produksi suara[4].
Gambar 2.2. Gambar Tempat Produksi Suara. [4]
2.2.
Speech Recognition
Speech recognition (pengenalan lafal/ucapan) adalah suatu proses untuk mengenali
seseorang dengan mengenali ucapan dari orang tersebut [1]. Untuk mengenali ucapan atau
lafal tersebut akan diproses didalam komputer dengan perhitungan perhitungan algoritma .
Ucapan manusia yang masuk kedalam komputer akan dikenal dengan membandingan
masukan ucapan dengan database sehingga mendapatkan hasil untuk mengenali ucapan
tersebut.
2.3.
Sampling
Sampling adalah proses pengambilan sebuah sinyal terhadap waktu tertentu. Dalam
proses sampling, sinyal suara yang diambil akan menjadi gelombang diskrit. Pada saat
proses sampling , nilai frekuensi sampling harus diperhatikan. Frekuensi sampling
merupakan laju pengambilan yang menandakan banyak pengambilan sinyal analog dalam
satu detik. Nilai satuan frekuensi sampling yakni Hertz (Hz). Harry Nyquist dari Bell
Laboratory mempelajari proses sampling dan membuat kriteria untuk menentukan laju
sampling (samplingrate) minimun untuk sinyal analog kontinyu. Nilai frekuensi sampling
sebaiknya tertuju pada kriteria Nyquist[5]. Saat ini laju sampling minimum dikenal
dua kali lebih besar dari frekuensi tertinggi dari sinyal yang disampling tersebut. Rumus
pada kriteia Nyquist dapat dituliskan [6].
(2.1)
Keterangan : Fs = frekuensi sampling (Hz)
Fm = frekuensi sinyal analog (Hz)
Pada proses sampling kriteria Nyquist apabila tidak terpenuhi akan
menimbulkan aliasing. Aliasing merupakan adanya frekuensi yang terlihat sebagai
[image:32.595.88.504.226.510.2]frekuensi lain. Gambar 2.3 menunjukan gambar aliasing.
Gambar 2.3 Gambar Aliasing [6]
2.4.
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 normalisasi, pemotongan
sinyal, dan zeropadding.
2.4.1.
Pre Emphasis
PreEmphasis adalah proses yang dirancang untuk mengurangi dampak buruk dari
transmisi dan suara latar. Proses preemphasis sangat baik dalam mengurangi efek distorsi,
atenuasi, dan saturasi dari media rekaman. Perhitungan pre emphasis dilakukan pada
sinyal digital dalam domain waktu dan menggunakan persamaan berikut[7] :
s
'
(
n
)
s
(
n
)
*
s
(
n
1
)
(2.2) Dimana = 0.9< <1 biasanya yang sering digunakan bernilai 0,95 S(n) = sampel ke-n
Pada gambar 2.4. menunjukan sinyal masukan yang akan diproses dalam pre emphasis
Gambar 2.4. Sinyal Masukan
Gambar 2.5. Sinyal Hasil PreEmphasis.
2.4.2.
Normalisasi
Normalisasi adalah proses penskalaan amplitudo pada setiap sinyal untuk didapat
amplitudo yang diharapkan. Normalisasi bertujuan untuk menyeragamkan nilai amplitudo
dari sinyal sampel [8]. Proses normalisasi sangat diperlukan karena besarnya amplitudo
suara manusia saat melakukan pengucapan selalu berbeda. Perhitungan matematis untuk
mencari nilai normalisasi dirumuskan dengan persamaan sebagai berikut :
)) )
dengan keterangan sebagai berikut :
= hasil data sinyal normalisasi (1,2,3,…,N)
= data masukan dari sampling(1,2,3,…,N)
0 1000 2000 3000 4000 5000 6000
-0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15
Data tercuplik
Am
pli
tu
do
Sinyal Masukan Balok
0 1000 2000 3000 4000 5000 6000
-0.1 -0.05 0 0.05 0.1 0.15
Data tercuplik
Am
pli
tud
o
N merupakan banyaknya data sinyal.
Pada gambar 2.6. menunjukan sinyal masukan yang akan diproses dalam
normalisasi dan gambar 2.7. menunjukan sinyal masukan yang sudah melewati proses
normalisasi.
Gambar 2.6. Sinyal Hasil PreEmphasis
Gambar 2.7. Sinya Hasil Normalisasi
2.4.3.
Pemotongan Sinyal
Pemotongan sinyal dilakukan dengan tujuan untuk memotong beberapa bagian
sinyal yang dianggap noise. Dalam proses perekaman, pemotongan sinyal dilakukan pada
bagian awal dan akhir sinyal. Pemotongan sinyal suara dimaksudkan untuk menghilangkan
bagian yang dianggap bukan bagian dari sinyal ucapan dan mengurangi noise atau
gangguan sinyal yang diakibatkan dari derau ruangan atau suara pernapasan yang ikut
terekam. Gambar 2.8. menunjukan sinyal data ucapan.
0 1000 2000 3000 4000 5000 6000
-0.1 -0.05 0 0.05 0.1 0.15 Data tercuplik Am pli tud o
Sinyal Hasil Pre Emphasis
0 1000 2000 3000 4000 5000 6000
-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Data tercuplik Am pli tud o
Gambar 2.8. Posisi Sinyal Data Ucapan
Sinyal data yang dibagian kiri dan kanan pada sinyal data ucapan pada gambar 2.8.
menunjukan keberadaan noise atau gangguan suara lain. Noise atau gangguan terjadi
dikarenakan faktor lingkungan yang tidak kondusif sehingga mengakibatkan terjadinya
noise. Sinyal data ucapan yang memiliki noise dapat diminimalisir dengan cara
menghilangkan noise disebelah kanan dan kiri dari sinyal data ucapan. Gambar 2.9
menunjukan pemotongan sinyal dengan batas potong 0,3. Pemotongan dilakukan dengan
tahapan hasil normalisasi sinyal data ucapan di potong bagian kiri , lalu di balikan sinyal
data dari kiri ke kanan , potong bagian kiri , lalu diakhiri dengan tahapan kembalikan
sinyal pada kondisi awal .
Gambar 2.9. Proses Pemotongan Sinyal 0 500 1000 1500 2000 2500
-1 -0.5 0 0.5 1 Data tercuplik A m pl itu do
Potong Sinyal Kiri
0 500 1000 1500 2000 2500 -1 -0.5 0 0.5 1 Data tercuplik A m pl itu do
Balikan Sinyal dari Kiri ke Kanan
0 500 1000 1500 2000 2500 -1 -0.5 0 0.5 1 Data tercuplik A m pl itu do
Potong Sinyal Kiri
0 500 1000 1500 2000 2500 -1 -0.5 0 0.5 1 Data tercuplik A m pl itu do
2.4.4.
Zero Padding
Zeropadding merupakan tahapan akhir dari preprocessing dimana pada tahapan ini
terdapat proses pemberian deretan data bernilai zero(0) pada data sinyal .Zero padding
proses setelah hasil windowing. Akibat dari proses pemotongan sinyal memungkinkan
adanya efek pada ketidaksempurnaan panjang gelombang tiap data sinyal suara. Tahapan
zero padding ini yang membantu agar panjang gelombang tiap data sinyal suara dapat
disetarakan. Pemberian nilai zero(0) pada data sinyal suara menyesuaikan ukuran frekuensi
sinyal. Gambar 2.10 menunjukan proses ZeroPadiing
Gambar 2.10 Proses ZeroPadding
2.5.
Framing dan Windowing
Framing merupakan proses dmana 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
0 200 400 600 800 1000 1200 1400 1600 1800 2000
-1 -0.5 0 0.5 1 Data tercuplik A m p lit u d o
Hasil Pemotongan Sinyal
0 200 400 600 800 1000 1200 1400 1600 1800 2000
-1 -0.5 0 0.5 1 Data tercuplik A m p lit u d o
tersebut sinyal data melebihi maka akan mengalami overlap, dimana akan sinyal data yang
berlebihan tersebut akan dipotong sebesar nilai overlap [9]
Gambar 2.11. Proses Framing [9]
Windowing merupakan tahapan untuk menetralisir diskontinuitas sinyal pada
awalan dan akhir tiap bentuk data sinyal dengan melakukan proses dari fungsi window.
Windowing berfungsi untuk membuat pola pola pada data sinyal sehingga data sinyal dapat
diproses dalam tahapan selanjutnya. Pada proses ini jenis window yang dipakai adalah
jenis Hamming Window. Digunakan Hamming window karena hamming window
mempunyai side lobe yang paling kecil dan main lobe yang paling besar sehingga hasil
windowing akan lebih halus dalam menghilangkan efek diskontinuitas[7]. Pada gambar
2.12.. menunjukan proses windowing.
Persamaan HammingWindow [7]:
1 2 cos * 46 , 0 54 , 0 ) (
N n n
w (2.4)
Dimana:
w(n) = windowing
N = jumlah data dari sinyal
Gambar 2.12. Proses Framing dan Windowing
2.6.
Discrete Fourier Transform(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 persamaan
2.5[10]. Gambar 2.13. menunjukan proses ektraksi ciri DFT.
Persamaan matematis DFT diuraikan pada persamaan 2.5 [28]:
) ∑ )
(2.5)
dengan, n=0, 1,…, N-1, dan k = 0, 1, 2, …, N-1
X(k) adalah keluaran dalam domain frekuensi, x adalah masukkan dalam domain waktu
e = natural number (2.7182818284…)
n = indeks dalam domainfrekuensi (0, 1, 2, …, N-1)
k = indeks dalam domainwaktu (0,1,2, …, N-1)
j = konstanta fourrier
Gambar 2.13. Proses Ektraksi Ciri
2.7.
Segment Averaging
Segmentaveraging merupakan metode untuk mengurangi jumlah data dengan cara
mengelompokannya dalam rentang segment tertentu yang kemudian dicari rata-ratanya
pada tiap segment. Tujuan segment averaging ini untuk mengurangi jumlah data ektraksi
ciri yang memiliki ukuran panjang menjadi ukuran kecil. Lebar segment ditentukan dari
banyak data berdasarkan perhitungan 2n, ukuran banyaknya segment yang terbentuk
didapat dari pembagian seluruh data terhadap lebar segment[9]. Gambar 2.14. menunjukan
proses segment averaging dengan lebar segment 64 dan mengahasilkan pembagian 4
frame.
0 100 200 300 400 500 600
0 10 20 30 40
Data tercuplik
A
m
pl
itu
do
Pencarian Nilai Absolut
0 50 100 150 200 250 300
0 10 20 30 40
Data tercuplik
A
m
pl
itu
do
Gambar 2.14. Proses SegmentAveraging
2.8.
Klasifikasi k-NN
Algoritma yang disebut aturan tetangga terdekat atau biasanya di kenal dengan k-
nearestneighbour(k-NN). Misal ada vektor x yang tidak diketahui, maka[9]:
Dari vektor pelatihan N, identifikasi k tetangga terdekat, dengan mengabaikan label
kelas. Untuk masalah 2 kelas dipilih nilai k yang ganjil. Secara umum nilai k ini
bukan kelipatan dari jumlah kelas M.
Dari sampel K tersebut, identifikasi jumlah vektor, ki, yang termasuk masuk dalam
kelas
i
,i = 1,2,...,M. Dinyatakan dengan ikik.2.9.
Template Matching
Tahap perbandingan yaitu salah satu tahap dalam proses pengenalan ucapan. Proses
template matching ini akan melakukan perbandingan antara pola data masukan dengan
pola database. Metode yang dilakukan dalam proses template matching yaitu fungsi
similaritas. Data masukan yang akan diproses akan dihitung nilai similaritas sehingga
dapat dikenali kemiripan yang sesuai dengan database[11].
2.9.1.
Similaritas Kosinus
Similaritas kosinus merupakan salah satu algoritma perhitungan similaritas yang
dipakai dalam perbandingan pola dengan melihat kesamaan atau kemiripan pola input
terhadap pola database. Penggunaan algoritma ini dengan memasukan nilai-nilai pada data
input dan database dalam perhitungan. Hasil dari algoritma ini merupakan nilai
pendekatan atau similaritas antara data input dan database Rumus dari similaritas kosinus
dapat ditulis sebagai berikut [12]:
∑ √∑ √∑
(2.6)
dengan keterangan sebagai berikut :
d = jumlah elemen
P&Q = vektor yang akan dicari similaritasnya
i = indeks variabel
2.10.
Lengan Robot
Robot ini hanya memiliki satu tangan seperti tangan manusia yang fungsinya
untuk memegang atau memindahkan barang. Robot manipulator merupakan sebuah
rangkaian benda kaku (rigidbodies) terbuka yang terdiri atas sendi dan terhubung dengan
link dimana setiap posisi sendi ditentukan dengan variabel tunggal sehingga jumlah sendi
sama dengan nilai derajat kebebasan. Robot manipulator yang sering dipakai sebagai robot
industri pada dasarnya terdiri atas struktur mekanik, penggerak (aktuator), sensor dan
sistem kontrol. Dasar (base) manipulator sering disebut kerangka dasar (base frame) dan
ujung dari manipulator biasanya dilengkapi dengan end-efector yang salah satu jenisnya
Gambar 2.15. Bagian robot manipulator
Untuk dapat disebut sebagai sistem robot modern, sebuah mesin sedikitnya terdiri
dari tiga hal utama yaitu:
A. Manipulator
Manipulator yaitu merupakan bagian mekanik yang melakukan fungsi gerakan
seperti lengan manusia. Pada robot manipulator biasanya terdiri dari bagian lengan (main
frame) dan bagian pergelangan (wrist). Fungsi dari manipulator ini adalah untuk
memungkinkan robot untuk mencapai suatu posisi tertentu dengan presisi [1].
B. Aktuator
Aktuator berfungsi sebagai sumber tenaga untuk menggerakkan
manipulator.Biasanya aktuator diletakkan pada bagian lengan , pergelangan dan bagian
gripper. Aktuator pada robot dapat memakai sistem hidrolik, sistem pneumatik, motor
DC, motor AC, motor stepper dan berbagai jenis penggerak lainnya[1].
C. Prosesor
Prosesor merupakan otak dari robot, berfungsi untuk menyimpan dan memproses
setiap urutan gerakan pada robot. Biasanya bagian prosesor ini memungkinkan robot untuk
melakukan berbagai jenis tugas yang diprogramkan kepadanya[1].
2.11.
Mikrokontroler 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
ADC, PWM internal dan In-System Programmable Flash on-chip yang mengijinkan
memori program untuk diprogram ulang [13].
2.11.1.
Arsitektur AVR ATmega32
Mikrokontroler ATmega32 memiliki arsitektur sebagai berikut [13]:
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. MemoriFlash sebesar 8 kb
g. Sumber Interupsi internal dan eksternal
h. Port SPI (Serial Pheriperal Interface)
i. EEPROM onboard sebanyak 512 byte
j. Komparator analog
k. Port USART (Universal Shynchronous Ashynchronous Receiver
Transmitter).
2.11.2.
Konfigurasi PIN Mikrokontroler ATmega32
Konfigurasi Pin Mikrokontroller ATmega32 dengan kemasan 40 pin DIP (dual
in-line package) dapat dilihat pada Gambar 2.16.. 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 [13].
Mikrokontroler ATmega32 memiliki konfigurasi Pin sebagai berikut[13]:
1. VCC (power supply) ,dan GND (ground).
2. Port A (PORTA7-0) merupakan pin I/O dua arah dan berfungsi khusus sebagai pin
masukan ADC.
3. Port B (PORTB7-0) merupakan pin I/O dua arah dan fungsi khusus sebagai pin
Timer/Counter, komparator analog dan SPI.
4. Port C (PORTC7-0) merupakan pin I/O dua arah dan fungsi khusus.
5. Port D (PORTD7-0) merupakan pin I/O dua arah dan fungsi khusus.
6. RESET (Reset input) adalah pin untuk me-reset mikrokontroler.
7. XTAL1 (Input Oscillator) dan XTAL2 (Output Oscillator) pin untuk exsternal
clock.
8. AVCC adalah pin masukan untuk tegangan ADC.
9. AREF adalah pin masukan untuk tegangan referensi eksternal ADC.
2.11.3.
Peta Memori AVR ATmega32
ATmega8353 memiliki dua ruang memori utama, yaitu ruang memori data dan
memori program. Selain dua memori utama, ATmega32 juga memiliki fitur EEPROM
yang dapat digunakan sebagai penyimpan data[13].
Memori Program
ATmega32 memiliki flash memory sebesar 8 Kbytes untuk memori program.
Karena semua intruksi AVR menggunakan 16 atau 32 bit, maka AVR memiliki organisasi
memori 4 Kbyte x 16 bit dengan alamat dari $000 hingga $FFF. Untuk keamanan software,
memori flash dibagi menjadi dua bagian, yaitu bagian Boot Program dan bagian
Application Program. AVR tersebut memiliki 12 bit Program Counter (PC) sehingga
mampu mengalamati isi flash memori[13].
Memori Data
ATmega32 memiliki 608 alamat memori data yang terbagi menjadi 3 bagian, yaitu
32 buah register file ,64 buah I/O register dan 512 byte internal SRAM. Register file
adalah register khusus yang bertugas membantu proses dalam program yang dilakukan
oleh ALU(Arithmatich Logic Unit). I/O register adalah register yang berfungsi khusus
dalam mengendalikan berbagai pheripheral dalam mikrokontroler seperti pin, port,
2.11.4.
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.
Tabel 2.1. Hubungan PIN dan Interupt [13]
Jenis interupt PIN
INT0 PORTD.2
INT1 PORTD.3
INT2 PORTB.2
ATmega32 menyediakan 3 interupsi eksternal yaitu, INT0, INT1, dan INT2. Tabel
2.1 menunjukan interupsi yang terhubung dengan pin ATmega32. Interupsi eksternal bisa
dilakukan dengan memberikan logika 0 atau perubahan logika (rissing edge dan falling
edge) pada pin interupsi yang bersangkutan [13].
2.11.5.
Timer/Counter ATmega32
Mikrokontroler ATmega32 memiliki 3 jenis fitur timer/counter yaitu timer/counter
0 (8bit), timer/counter 1 (16bit) dan timer/counter 2 (8bit) . Timer/counter pada umumnya
biasanya digunakan untuk generator gelombang/frekuensi, perhitungan waktu suara siklus,
dan PWM (Pulse Width Modulation).
TIMER/COUNTER 0
Timer/Counter 0 adalah 8 bit Timer/Counter dengan fitur sebagai berikut :
1. 8 bit timer/counter 1 kanal.
2. Auto reload, yaitu timer akan di-nol-kan kembali saat match compare.
3. Daoat menghasilkan pulsa PWM dengan glitch-free.
4. Frequence generator.
5. Prescaler 10 bit untuk timer.
6. Membangkitkan interupsi saat timer overflow dan atau match compare.
Persamaan 2.7, 2.8, dan 2.9 menunjukan perhitungan overflow interrupt sebagai
pembangkit [14].
(2.8)
(2.9)
Keterangan :
f = frekuensi yang digunakan untuk eksekusi program
T = periode
N = prescaller yang digunakan
OCR = nilai cacahan pulsa
Pulse = lebar pulsa
Mode-mode operasi timer :
a) Mode normal, timer berfungsi untuk menghitung selang waktu ,dan membuat delay
[15].
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 .Gambar 2.17. menunjukan Mode Correct PWM
[15].
Gambar 2.17. Mode Phase Correct PWM [14]
c) CTC (Clear timer on compare match), register counter (TCNT0) akan mencacah
dengan OCR0. Sebelumnya OCR diatur dulu, karena timer 0 dan 2 maksimumnya
255, maka range OCR 0-255 [15].
d) Fast PWM, mode ini hampir sama dengan mode phase correct PWM, hanya
perbedaannya adalah register counter TCNT0 mencacah naik saja dan tidak pernah
[image:47.595.86.528.179.422.2]mencacah turun . Gambar 2.18. menunjukan Mode Fast PWM [15].
Gambar 2.18. Mode Fast PWM [14]
2.11.6.
Komunikasi Serial USART(
The
Universal
Synchronous
and
Asynchronous serial Receiver and Transmitter)
Komunikasi data adalah perpindahan data antara dua atau lebih piranti, baik yang
berjauhan maupun yang berdekatan. Perpindahan data antara dua atau lebih peranti dapat
dilaksanakan secara paralel atau seri. USART merupakan protokol komunikasi serial yang
terdapat pada mikrokontroler AVR. Fitur ini berguna dalam pengiriman data secara serial
antar mikrokontroler, selain itu fitur ini dapat juga melakukan komunikasi antara
mikrokontroler dengan hardware lain, sebagai contohnya seperti komputer (PC).
Komunikasi serial yang dapat dilakukan pada fitur USART dibedakan menjadi 2 cara yaitu
sinkron dan asinkron. Pada penggunaan cara sinkron harus melakukan fase sinkronisasi
data dari pengiriman data . Pada penggunaan cara asinkron tidak perlu melakukan
pengiriman data terlebih dahulu,hanya saja sinkronisasikan terlebih dahulu dengan cara
inisialisasi data pada program tersebut. Proses inisialisasi ini harus memiliki baudrate
pada perangkat yang terhubung .
Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut[13]:
a) Operasi full duplex
b) Mendukung komunikasi multiprosesor
c) Kecepatan transmisi mencapai Mbps
e) Operasi master atau slave clock sinkron
f) Dapat menghasilkan baud-rate (laju data) dengan resolusi tinggi
g) Komunikasi kecepatan ganda pada asinkron
Inisialisasi USART
Pada mikrokontroler AVR untuk mengaktifkan dan mengatur komunikasi
dilakukan dengan cara mengaktifkan register yang digunakan untuk komunikasi USART.
Register yang digunakan untuk komunikasi USART antara lain sebagai berikut[13]:
2.11.6.1.
USART Control and Status Register A (USCRA)
Gambar 2.19. Register UCSRA [13]
Penjelasan bit penyusun UCSRA seperti pada gambar 2.19.[13]:
a) RXC (USART Receive Complete)
RXC bernilai 1 jika ada data atau yang belum terbaca dan bernilai 0 jika tidak ada
data.
b) TXC (USART Transmit Complete)
TXC bernilai 1 jika keseluruhannya data sudah terkirim.
c) UDRE (USART Data Register Empty)
UDRE adalah interupt yang akan aktif jika UDRIE pada UCSRB di set 1. UDRE
bernilai 1 jika buffer kosong.
d) FE (Frame Error)
FE bernilai 1 jika terjadi error pada proses penerimaan data.
e) DOR (Data OverRun)
DOR bernilai 1 jika terjadi over run data, artinya ketika register penerimaan telah
penuh dan terdapat data baru yang menunggu.
f) PE (Parity Error)
PE bernilai 1 jika terjadi error pada parity.
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 di set nol .
h) MPCM (Multi Processor Communication Mode)
2.11.6.2.
USART Control and Status Register B (USCRB)
Gambar 2.20. Register UCSRB [13]
Penjelasan bit penyusun UCSRB seperti pada gambar 2.20. [13]:
a) RXCIE (RX Complete Interrupt Enable)
RXCIE mengatur aktivasi interupsi penerimaan data serial, akan berlogika satu jika
diaktifkan dan berlogika nol jika tidak diaktifkan .
b) TXCIE (TX Complete Interrupt Enable)
TXCIE mengatur aktivasi interupsi pengiriman data serial, akan berlogika satu jika
diaktifkan dan berlogika nol jika tidak diaktifkan .
c) UDRIE (USART Data Register Empty Interrupt Enable)
UDRIE berfungsi untuk mengaktifkan interupsi data register kosong, berlogika
satu jika diaktifkan dan sebaliknya .
d) RXEN (Receiver Enable)
RXEN berfungsi untuk mengaktifkan pin RX..
e) TXEN (Transmitter Enable)
TXEN 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)
UCXZ2 bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan
untuk memilih tipe lebar data bit yang digunakan seperti yang ditunjukan pada
gambar 2.2.
Tabel 2.2. Penentuan Ukuran Karakter untuk UCSZ[2..0] [13]
UCSZ[2..0] Ukuran Karakter dalam bit
000 5
001 6
010 7
011 8
100-110 Tidak digunakan
g) RXB8 (Receive Data Bit 8)
RXB8 adalah bit kesembilan jika digunakan ukuran karakter 9. Dibaca dahulu
sebelum membaca register UDR .
h) TXB8 (Transmit Data Bit 8)
TXB8 adalah bit kesembilan jika digunakan ukuran karakter 9. Dikirim dahulu
sebelum mengirim ke register UDR .
2.11.6.3.
USART Control and Status Register C (USCRC)
Gambar 2.21. Register UCSRC [13]
Penjelasan bit penyusun UCSRC: [13]
a) URSEL (Register Select) :
URSEL adalah bit untuk pemilihan akses UCSRC dan UBRR. Set 1 untuk akses
UCSRC. Hal ini karena UBRRH dan UCSRC menggunakan lokasi I/O yang sama.
b) UMSEL (USART Mode Select)
UMSEL adlaah bit pemilihan mode sinkron atau asinkron. Set 1 untuk mode
sinkron
c) UPM0..1 (Parity Mode)
UPM0..1 merupakan bit pengaturan parity dengan setting seperti pada tabel 2.3:
Tabel 2.3. Setting UPM0..1 untuk setting parity[13]
UPM0..1 Parity
00 Tidak Aktif
01 Tidak digunakan
10 Genap
11 Ganjil
d) USBS (Stop Bit Select)
USBS yang berfungsi untuk memilih jumlah stop bit yang akan digunakan .
e). UCSZ1 dan UCSZ0
UCSZ1 dan UCSZ0 digunakan bersama dengan bit UCSZ2 untuk menentukan
karakter yang dikirimkan.
UPCOL merupakan bit pengatur hubungan antara perubahan data keluaran dan data
masukan serial dengan mode sinkron.
2.11.6.4.
USART I/O Data Register (UDR)
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 [13].
Gambar 2.22. Register UDR [12]
2.12.
Sound Card
Sound Card atau kartu suara adalah perangkat keras pada PC/laptop yang berguna
untuk mengolah audio atau suara . Sound Card memiliki 4 fungsi utama , yaitu sebagai
synthesizer, sebagai MIDI interface, pengkonversi data analog ke digital( misalnya
merekam suara dari mikrofon), dan pengkonversi data digital ke analog ( misalnya saat
memproduksi suara dari speaker ). Secara umum soundcard memiliki beberapa fungsi :
1. Digital Signal Processing
Berfungsi untuk mengolah sinyal audio baik analog maupun digital. Proses
pengolahan dibagi dalam 2 bentuk yaitu Analog to Digital Converter (ADC) dan
Digital to Analog Converter (DAC). Proses ADC biasa dilakukan saat menangkap
sinyal listrik dari mikrofon, sedangkan proses DAC dilakukan saat mengeluarkan
output sinyal analog ke speaker.
2. Synthesizer/sintesis
Melalui teknologi sintesis Frequency Modulation (FM) dapat menghasilkan suara
yang jernih. Sinyal suara disimulasikan menggunakan algoritma tertentu sehingga
menghasilkan sine wave. Hal tersebut menghasilkan suara yang mirip dengan suara
sumber aslinya.
3. MIDI (<