Aplikasi pengenalan angka menggunakan webcam untuk lengan robot penulis angka.

(1)

viii

INTISARI

Dunia teknologi maupun kehidupan manusia sehari – hari, saat ini penggunaan robot sangat membantu dalam menyelesaikan tugas atau pekerjaan yang tidak bisa dilakukan oleh manusia. Kelebihan yang dimiliki robot memudahkan manusia dalam menulis angka dan mendeteksi font angka dengan menggunakan teknologi computer vision.

Lengan robot otomatis sebagai penulis angka ini menggunakan ATmega32 yang terdiri dari minimum sistem yang berfungsi untuk mengontrol pergerakan motor servo sebagai actuator lengan robot, GUI pada software MATLAB digunakan untuk tampilan nilai biner font angka, jenis font angka, dan pengenalan font angka dengan mengolah data citra biner yang dihasilkan oleh webcam Logitecth C270H sebagai peng-capture font angka. Angka tersebut akan di tulis oleh lengan robot pada media tulis.

Urutan pengenalan font angka yaitu citra RGB warna benda yang diambil melalui

webcam, proses peperubahan warna menjadi Greyscale, proses peperubahan warna menjadi

biner, menjumlahkan nilai biner, dan pengenalan font angka berdasarkan range jumlah nilai citra biner berdasarkan masing – masing font angka. Sedangkan lengan robot digerakan oleh motor servo yang dikontrol ATmega32 dengan fasilitas interrupt dan komunikasi serial antara komputer dengan ATmega32 melalui komunikasi serial USART yang diprogram menggunakan CodeVision AVR.

Hasil dari penelitian ini adalah sistem lengan robot yang dapat mengenali dan menulis

font angka secara realtime. pengenalan angka yang dibangun memiliki keberhasilan 87,67%.

Penulisan font angka yang ditulis oleh lengan robot masih tidak persis dengan bentuk font angka yang direncanakan.


(2)

ABSTRACT

The world of technology and human, now days using of robots is very helpful in completing tasks or jobs that cannot be done by humans. Advantages of the robot enable people to write numbers and detect font numbers using computer vision technology.

The robotic arm automatically as the author of this figure using ATmega32 consisting of minimum system that functions to control the movement of a servo motor as the actuator robotic arm, a GUI in MATLAB software is used to display the value of the binary font numbers, font type numbers, and the recognition font numbers by processing the image data binary generated by webcam Logitech C270H as captureing font numbers. The figure will be written by a robot arm on write board.

Font recognition sequence numbers are RGB color images of objects captured via webcam, changing process color to grayscale, color changing processes into binary, summing binary value, and recognition of the range of the number of font numbers based on the value of a binary image based on each - each font numbers. While the robot arm is driven by a servo motor controlled by the facility ATmega32 interrupt and serial communication between computers with ATmega32 through USART serial communication are programmed using AVR Code Vision.

Results from this research are the robotic arm system that can recognition and writing font in real time.Recognition of the numbers in build having success 87.67%. Writing font numbers written by a robotic arm still does not exactly match the shape of the planned figure font.


(3)

TUGAS AKHIR

APLIKASI PENGENALAN ANGKA MENGGUNAKAN

WEBCAM UNTUK LENGAN ROBOT PENULIS

ANGKA

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro Jurusan Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

Oleh :

EDWIN DUWI PUTRA

NIM : 115114021

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2016


(4)

FINAL PROJECT PROPOSAL

NUMBER RECOGNITION APPLICATION USING A

WEBCAM FOR WRITING ROBOTIC ARM

In partial fulfilment of the requirements for the degree of Sarjana Teknik Electrical Engineering Study Program

Electrical Engineering Departement

Science and Technology Faculty Sanata Dharma University

EDWIN DUWI PUTRA

NIM : 115114021

ELECTRICAL ENGINEERING STUDY PROGRAM

ELECTRICAL ENGINEERING DEPARTMENT

SCIENE AND TECHNOLOGY FACULTY

SANATA DHARMA UNIVERSITY


(5)

(6)

(7)

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang berjudul

*APLIKASI PENGENALAN ANGKA MENGGUNAKAN WEBCAM UNTUK

LENGAN ROBOT PENULIS ANGKA" tidak memuat karyaatau bagian orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,sebagaimana layaknya karya i l m i a h .

Apabila dikemudian hari ditemukan indikasi piagiatisme dalam naskah ini, maka saya bersedia menanggung segala sanksi sesuai peraturan perundang - undangan yang berlaku.

Yogyakarta. l3 Januari 2016


(8)

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

“Jangan menutup hati dengan pikiran jahat.... jika hati tertutup, duniapun akan tertutup.... jika hati menjadi gelap, dunia akan menjadi gelap.... jika hati bergolak, dunia akan bergolak. Jangan

menutup hati sebab hati akan menutup dunia.... hati akan menutup hidup anda!”

Atas kasih dan penyertaan mulia dari Sang Buddha dengan segala kerendahan hati kupersembahkan skripsi ini kepada :

Papa (Rommy) dan Mama (Hany) tercinta.

Terimakasih telah berkorban dan berjuang melahirkan, membimbing, dan menyertai dari dini hingga belia kini.... pengorbanan, kasih sayang, doa, dan dukungan dalam setiap langkah

yang kupilih tak pernah luput dari kalian wahai Orangtuaku. Kakak (Harry Pratama) dan Adek (Fido Triana Putra).

Terimakasih untuk semangat, motivasi, dukungan, serta tawa yang kalian berikan. Kepada sang pengisi hati (Izemi Yang) yang cerewet dan setia menemani serta

mengingatkan, terimakasih atas segalanya yang telah kau lakukan untukku. Kepada segenap sanak keluarga besar, kerabat, dan teman-temanku, terimakasih atas segalanya semoga kelak saya dapat membahagiakan, membanggakan, dan bisa membuat

kalian tersenyum dalam kebahagiaan.

Almamaterku tercinta Teknik Elektro Universitas Sanata Dharma.

Tempatku memperoleh ilmu dan merancang mimpi yang menjadi sebagian jejak langkahku menuju kesuksesan kedepannya.…

Sang Buddha bersabda:

“adalah hati yang menentukan keadaan dunia” hatilah yang melahirkan masalah, hati pula yang memadamkan semua masalah, kunci permasalahan tak ada di luar, melainkan ada

dalam hati, insafilah hati, binalah hati, dan semuanya akan menjadi baik.


(9)

HALAMAN PERNYATAAN PERSBTUJUAN

PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN

AKADEMIS

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

N a m a : E D W I N D U W I P U T R A N o m o r M a h a s i s w a : 1 l 5 l l 4 0 2 l

Derri pengembangan ilmu pengetahuan, saya rnemberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

APLIKASI PENGENALAN ANGKA MENGGUNAKAN WEBCAM UNTUK LENGAN ROBOT PENULIS ANGKA

Beserta perangkat yang diperlukan (bila ada). Dengan derrikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan.data, mendistribusikan secara teibatas, dan menipublikasikannya di iirternet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya mau pun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis. Dernikian pernyataan ini yang saya buat dengan sebenarnya.

Yogyakarta, l3 Januari 2016 ,f't

'rl

D-.-UJW,,{/


(10)

INTISARI

Dunia teknologi maupun kehidupan manusia sehari – hari, saat ini penggunaan robot sangat membantu dalam menyelesaikan tugas atau pekerjaan yang tidak bisa dilakukan oleh manusia. Kelebihan yang dimiliki robot memudahkan manusia dalam menulis angka dan mendeteksi font angka dengan menggunakan teknologi computer vision.

Lengan robot otomatis sebagai penulis angka ini menggunakan ATmega32 yang terdiri dari minimum sistem yang berfungsi untuk mengontrol pergerakan motor servo sebagai actuator lengan robot, GUI pada software MATLAB digunakan untuk tampilan nilai biner font angka, jenis font angka, dan pengenalan font angka dengan mengolah data citra biner yang dihasilkan oleh webcam Logitecth C270H sebagai peng-capture font angka. Angka tersebut akan di tulis oleh lengan robot pada media tulis.

Urutan pengenalan font angka yaitu citra RGB warna benda yang diambil melalui

webcam, proses peperubahan warna menjadi Greyscale, proses peperubahan warna menjadi

biner, menjumlahkan nilai biner, dan pengenalan font angka berdasarkan range jumlah nilai citra biner berdasarkan masing – masing font angka. Sedangkan lengan robot digerakan oleh motor servo yang dikontrol ATmega32 dengan fasilitas interrupt dan komunikasi serial antara komputer dengan ATmega32 melalui komunikasi serial USART yang diprogram menggunakan CodeVision AVR.

Hasil dari penelitian ini adalah sistem lengan robot yang dapat mengenali dan menulis

font angka secara realtime. pengenalan angka yang dibangun memiliki keberhasilan 87,67%.

Penulisan font angka yang ditulis oleh lengan robot masih tidak persis dengan bentuk font angka yang direncanakan.


(11)

ix

ABSTRACT

The world of technology and human, now days using of robots is very helpful in completing tasks or jobs that cannot be done by humans. Advantages of the robot enable people to write numbers and detect font numbers using computer vision technology.

The robotic arm automatically as the author of this figure using ATmega32 consisting of minimum system that functions to control the movement of a servo motor as the actuator robotic arm, a GUI in MATLAB software is used to display the value of the binary font numbers, font type numbers, and the recognition font numbers by processing the image data binary generated by webcam Logitech C270H as captureing font numbers. The figure will be written by a robot arm on write board.

Font recognition sequence numbers are RGB color images of objects captured via webcam, changing process color to grayscale, color changing processes into binary, summing binary value, and recognition of the range of the number of font numbers based on the value of a binary image based on each - each font numbers. While the robot arm is driven by a servo motor controlled by the facility ATmega32 interrupt and serial communication between computers with ATmega32 through USART serial communication are programmed using AVR Code Vision.

Results from this research are the robotic arm system that can recognition and writing font in real time.Recognition of the numbers in build having success 87.67%. Writing font numbers written by a robotic arm still does not exactly match the shape of the planned figure font.


(12)

KATA PENGANTAR

Puji dan Syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala berkat dan rahmat-Nya, sehingga penulis dapat menyelesaikan tugas akhir ini dengan baik. Penulis menyadari bahwa banyak pihak yang telah memberikan doa, dukungan, perhatian serta bantuan kepada penulis sehingga dapat menyelesaikan tugas akhir ini. Oleh karena itu, penulis mengucapkan terima kasih yang sebesar-besarnya kepada:

1) Sudi Mungkasi, S.Si., M.Math.Sc.,Ph.D. selaku dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.

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

3) Theresia Prima Ari Setiyani S.T., M.T., selaku dosen pembimbing akademik yang telah mendampingi dan membimbing penulis selama perkuliahan.

4) Dr. Linggo Sumarno, dosen pembimbing yang dengan penuh pengertian, sabar dan ketulusan hati memberi bimbingan, kritik, saran, serta motivasi dalam penulisan tugas akhir ini.

5) Ibu Wiwien Widyastuti S.T., M.T., dan Bapak Dr. Iswanjono, selaku dosen penguji yang telah bersedia memberikan masukan, bimbingan, dan saran dalam memperbaiki tugas akhir ini.

6) Bapak/ Ibu dosen yang telah mengajarkan banyak hal selama penulis menempuh pendidikan di Program Studi Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma.

7) Kedua orang tua tercinta, Papa Rommy dan Mama Hany atas kasih sayang, dukungan dan doa yang tiada henti.

8) Kakak yang super Harry Pratama dan Adik super Fido Triana Putra yang selalu mendukung dan mendoakan saya, sehingga dapat menyelesaikan tugas belajar dengan baik.

9) Izemi Yang sebagai teman, sahabat, dan kekasih yang selalu menyemangati dan mendukung penulis sampai terselesaikannya tugas akhir ini.


(13)

xi

11)Staff dan petugas laboratorium Teknik Elektro yang telah membantu banyak hal untuk kelancaran tugas-tugas perkuliahan.

12)Teman-teman seperjuangan angkatan 2011 Teknik Elektro yang selalu mendukung dan menyemangati saya dalam menyelesaikan tugas akhir ini.

13)Semua pihak yang tidak dapat disebutkan satu persatu atas semua dukungan yang telah diberikan dalam penyelesaian tugas akhir ini.

Penulis menyadari bahwa dalam penulisan tugas akhir ini masih banyak kekurangan, kelemahan dan jauh dari sempurna. Oleh sebab itu, dengan segala kerendahan hati, penulis mengharapkan kritik dan saran yang membangun untuk penyempurnaan tugas akhir ini. Dan semoga tugas akhir ini dapat bermanfaat sebagaimana mestinya.

Yogyakarta, 13 Januari 2016


(14)

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

PERNYATAAN KEASLIAN KARYA ... v

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ... vi

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii

INTISARI ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xi

DAFTAR GAMBAR ... xiv

DAFTAR TABEL ... xviii

BAB I PENDAHULUAN 1.1.Latar Belakang ... 1

1.2.Tujuan dan Manfaat ... 2

1.3.Batasan Masalah ... 2

1.4.Metode Penelitian ... 4

BAB II DASAR TEORI 2.1.Lengan Robot ... 5

2.2.Gripper ... 6

2.3.Mikrokontroler AVR Atmega8535 ... 7

2.3.1. Arsitektur AVR Atmega8535 ... 8

2.3.2. Deskripsi Mikrokontroler Atmega8535 ... 8

2.3.3. Organisasi Memori AVR ATmega8535 ... 9

2.3.3.1. Memori Program. ... 9

2.3.3.2. Memori Data. ... 10

2.3.4. Interupsi ... 10

2.3.5. Timer/Counter ... 11


(15)

2.3.5.2. Mode Operasi ... 12

2.3.6. Komunikasi Serial USART ... 13

2.3.6.1. Inisialisasi USART. ... 14

2.4. Motor Servo ... 17

2.4.1. Torsi / Momen Gaya ... 20

2.5. LCD (Liquid Crystal Display) ... 20

2.6. Webcam Logitech Seri C270h ... 22

2.7. Regulator Tegangan IC 7805 ... 23

2.8. Pengolahan Citra ... 25

2.8.1 Citra Digital ... 25

2.8.2 Citra RGB ... 26

2.8.3 Citra Grayscale ... 26

2.8.3 Citra Biner ... 27

2.9. Pemrosesan Citra ... 27

2.9.2 Resizing ... 28

2.9.3 Pengenalan Pola ... 28

BAB III PERANCANGAN PENELITIAN 3.1. Prinsip Kejadian Mekanisme Gerak Lengan Robot ... 29

3.2. Perancangan Mekanik Lengan Robot ... 30

3.3. Perancangan Perangkat Keras ... 32

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

3.3.1.1. Minimum System Atmega8535 ... 32

3.3.1.2. Rangkaian Konfigurasi LCD 16x2 ... 34

3.4. Perhitungan Torsi Motor Servo ... 34

3.5. Motor Servo ... 36

3.6. Regulator ic 7805 dan Penguat Arus ... 39

3.7. Webcam ... 39

3.8. Gambar Angka ... 40

3.9. Perancangan Perangkat Lunak (Software) ... 42

3.9.1. Flowchart Program Interrupt Lengan Robot ... 45

3.9.2. Proses Flowchart Program Lengan Robot ... 47

3.9.3. Flowchart Program Pengenalan Bentuk Font Angka pada MATLAB ... 61


(16)

BAB IV HASIL PENGAMATAN DAN PEMBAHASAN

4.1.Implementasi Lengan Robot ... 62

4.1.1. Bentuk Fisik Hardware... 62

4.1.2. Sistem Elektronik ... 62

4.1.3. Bentuk Fisik Webcam dan Tempat Peletakan Gambar Font Angka.... 63

4.1.4. Bentuk Nyata Gambar Font Angka ... 63

4.1.5. Pengaturan Lengan Robot ... 64

4.1.6. Pengendalian Komunikasi USART ... 64

4.1.7. Pengendalian Motor Servo ... 65

4.2. Implementasi GUI Matlab dan Program Pengenalan Font Angka ... 67

4.2.1. Pop Up Menu ... 68

4.2.2. Tombol Mulai ... 69

4.2.3. Tombol Keluar ... 74

4.3. Pegujian Sudut Motor Servo ... 74

4.4. Pengujian Untuk Tingkat Pengenalan Gambar Font Angka ... 75

4.4.1. Pengujian Pengenalan Gambar Font Angka Secara Tidak Real Time... 76

Kesimpulan dan Saran ... 85

Daftar Pustaka ... 59


(17)

xv

DAFTAR GAMBAR

Gambar 1.1. Diagram Blok Sistem ... 4

Gambar 2.1. Anatomi Lengan Robot ... 5

Gambar 2.2. Sistem Lengan Robot ... 6

Gambar 2.3. Jenis Gripper Mekanik ... 7

Gambar 2.4. Konfigurasi Pin Mikrokontroler Atmegaa8535 ... 8

Gambar 2.5. Mode Phase Correct PWM ... 12

Gambar 2.6. Mode Fast PWM ... 13

Gambar 2.7. Register UDR ... 14

Gambar 2.8. Register UCSRA ... 14

Gambar 2.9. Register UCSRB ... 15

Gambar 2.10. Register UCSRC ... 17

Gambar 2.11. Motor Servo ... 18

Gambar 2.12. Konfigurasi Pin Motor Servo ... 18

Gambar 2.13. Sinyal untuk Mengendalikan Motor Servo ... 19

Gambar 2.14. Lebar Pulsa dan Posisi Servo ... 19

Gambar 2.15. Baris dan Kolom Karakter pada LCD 16x2 ... 20

Gambar 2.16. Konfigurasi Kaki Pin LCD 16x2 ... 21

Gambar 2.17. Webcam Logitech Seri C270h ... 22

Gambar 2.18. Konfigurasi Pin IC Regulator ... 23

Gambar 2.19. Rangkaian Umum Regulator 78xx ... 24

Gambar 2.20. Rangkaian Catu Daya dengan Penguat ... 24

Gambar 2.21. Citra Skala Keabuan ... 27

Gambar 3.1. Diagram Blok Sistem Lengan Robot ... 29

Gambar 3.2. Anatomi Lengan Robot Menulis ... 30

Gambar 3.3. Komponen 1 ... 31

Gambar 3.4. Komponen 2 ... 31

Gambar 3.5. Komponen 3 ... 31

Gambar 3.6. Gripper ... 31

Gambar 3.7. Peletakan Seluruh Komponen ... 32

Gambar 3.8. Rangkaian Osilator Atmega8535 ... 33

Gambar 3.9. Rangkaian Reset Atmega8535 ... 33


(18)

Gambar 3.11. Setting Port LCD ... 34

Gambar 3.12. Konstruksi Lengan Robot ... 35

Gambar 3.13. Towerpro MG996R ... 37

Gambar 3.14. Towerpro SG90 ... 37

Gambar 3.15. Rangkaian Pin Motor Servo ... 37

Gambar 3.16. Lebar Pulsa Motor Servo ... 38

Gambar 3.17. Rangkaian Regulator 7805 Dengan Penguat Arus ... 39

Gambar 3.18. Webcam Logitech C270h ... 40

Gambar 3.19. Gambar Font Angka ... 41

Gambar 3.20. Flowchart Interrupt Robot Siaga ... 43

Gambar 3.21. Flowchart Keseluruhan Sistem ... 44

Gambar 3.22. Flowchart Program Interrupt Lengan Robot Saat Pengenalan ... 46

Gambar 3.23. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 0 ... 51

Gambar 3.24. Gambar Font Angka 0 yang Ditulis oleh Lengan Robot ... 51

Gambar 3.25. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 1 ... 52

Gambar 3.26. Gambar Font Angka 1 yang Ditulis oleh Lengan Robot ... 52

Gambar 3.27. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 2 ... 53

Gambar 3.28. Gambar Font Angka 2 yang Ditulis oleh Lengan Robot ... 53

Gambar 3.29. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 3 ... 54

Gambar 3.30. Gambar Font Angka 3 yang Ditulis oleh Lengan Robot ... 54

Gambar 3.31. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 4 ... 55

Gambar 3.32. Gambar Font Angka 4 yang Ditulis oleh Lengan Robot ... 55

Gambar 3.33. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 5 ... 56

Gambar 3.34. Gambar Font Angka 5 yang Ditulis oleh Lengan Robot ... 56

Gambar 3.35. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 6 ... 57


(19)

xvii

Gambar 3.36. Gambar Font Angka 6 yang Ditulis oleh Lengan Robot ... 57

Gambar 3.37. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 7 ... 58

Gambar 3.38. Gambar Font Angka 7 yang Ditulis oleh Lengan Robot ... 58

Gambar 3.39. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 8 ... 59

Gambar 3.40. Gambar Font Angka 8 yang Ditulis oleh Lengan Robot ... 59

Gambar 3.40. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 8 ... 59

Gambar 3.41. Gambar Font Angka 9 yang Ditulis oleh Lengan Robot ... 60

Gambar 3.42. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 9 ... 60

Gambar 3.43. Flowchart Pengenalan Bentuk Font Angka pada MATLAB ... 62

Gambar 4.1. Lengan Robot Tampak Atas ... 62

Gambar 4.2. Lengan Robot Tampak Samping ... 62

Gambar 4.3. Minimum System ... 63

Gambar 4.4. Regulator ... 63

Gambar 4.5. Webcam dan Tempat Peletakan Gambar Font Angka ... 63

Gambar 4.6. Bentuk Nyata Gambar Font Angka ... 63

Gambar 4.7. Tampilan GUI Program Pengenalan ... 67

Gambar 4.8a. Bentuk Hasil Penulisan Angka ... 83


(20)

DAFTAR TABEL

Tabel 2.1. Hubungan PIN dan Interupsi ... 10

Tabel 2.2. Penentuan Ukuran Karakter ... 16

Tabel 2.3. Penentuan Ukuran Karakter ... 16

Tabel 2.4. Konfigurasi Kaki Pin LCD 16x2 ... 21

Tabel 2.5. Operasi Dasar LCD 16x2 ... 22

Tabel 2.6. Konfigurasi Setting LCD 16x2 ... 22

Tabel 2.7. Karakteristik Regulator IC 78xx [21] ... 23

Tabel 3.1. Perhitungan Torsi Motor Servo ... 35

Tabel 3.2. Spesifikasi Servo Towerpro MG996R ... 36

Tabel 3.3. Spesifikasi Servo Towerpro SG90 ... 36

Tabel 3.4. Perhitungan Nilai OCR ... 38

Tabel 3.5. Spesifikasi Webcam Logitech C270h ... 40

Tabel 3.6. Table Look Up ... 42

Tabel 3.7. Gerak Sudut Motor Servo ... 47

Tabel 3.7. (Lanjutan) Gerak Sudut Motor Servo ... 48

Tabel 3.7. (Lanjutan) Gerak Sudut Motor Servo ... 49

Tabel 3.7. (Lanjutan) Gerak Sudut Motor Servo ... 50

Tabel 4.1. Tabel Fungsi Saluran Mikrokontroler ... 64

Tabel 4.2. Nilai OCR pada Pergerakam 10 Derajat Motor Servo ... 74

Tabel 4.3. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R... 75

Tabel 4.4. Tabel range tabel look up ... 76

Tabel 4.5. Tabel data hasil capture font fotre imresize [16 8] ... 77

Tabel 4.6. Tabel data hasil capture font harrington imresize [16 8] ... 77

Tabel 4.7. Tabel data hasil capture font seoge script imresize [16 8]... 78

Tabel 4.8. Tabel data hasil capture font fotre imresize [32 16] ... 78

Tabel 4.9. Tabel data hasil capture font harrington imresize [32 16] ... 78

Tabel 4.10. Tabel data hasil capture font seogoe script imresize [32 16]... 79

Tabel 4.11. Tabel data hasil capture font fotre imresize [64 32] ... 79

Tabel 4.12. Tabel data hasil capture font hanrrington imresize [64 32] ... 79

Tabel 4.13. Tabel data hasil capture font segoe script imresize [64 32]... 80

Tabel 4.14. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka Fotre ... 81


(21)

Tabel 4.15 Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka Harrington ... 81 Tabel 4.16. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka Segoe Script ... 82 Tabel 4.17. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka Fotre ... 82 Tabel 4.18 Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka Harrington ... 83 Tabel 4.19. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka Segoe Script ... 83


(22)

BAB I

PENDAHULUAN

1.1.

Latar Belakang

Perkembangan teknologi saat ini sudah semakin pesat dan berkembang. Salah satu teknologi yang banyak dikembangkan di dunia industry yaitu teknologi lengan robot. Pada penelitian yang terdahulu oleh Rio Arismarjito [1] dengan konsep membuat lengan robot pemisah barang sesuai dengan warna objek dan Bernandus Asto Wicaksono [2] teknologi pengenalan angka plat motor dengan webcam. Dalam tugas akhir ini penulis menggabungkan dua metode yaitu metode lengan robot dan metode pengenalan angka sehingga menghasilkan lengan robot untuk menulis angka. Lengan robot menulis angka dengan webcam sebagai sensor untuk image prosesing yang akan diproses untuk mengenali angka yang berbeda font. Berdasarkan hal tersebut, maka dibuat suatu program sehingga computer dapat mengenali angka yang memiliki font yang berbeda. Setelah robot mengenali angka, maka lengan robot akan menulis pada media tulis yang telah disiapkan. Gambar yang nantinya akan dilihat yaitu gambar angka yang berbeda font.

Metode lengan robot ini membutuhkan beberapa perangkat pendukung seperti

webcam yang berfungsi untuk menangkap gambar angka, selain itu dibutuhkan pula

komputer / laptop yang berfungsi sebagai tempat untuk mengolah gambar agar bisa dikenali. Sistem ini melewati beberapa proses, diantaranya yaitu proses pengambilan gambar / citra yang dilakukan menggunakan webcam. Citra yang digunakan berasal dari gambar angka yang di print perlambangnya berukuran 7 cm x 7 cm. Pengolahan citra dan pengenalan pola menggunakan biner. Setiap gambar akan diambil menggunakan webcam, setelah itu gambar akan dibandingkan dengan database yang telah disimpan sebelumnya. Proses pengolahan citra dan pengenalan pola tersebut dilakukan dengan menggunakan perangkat lunak Matlab, selain itu Matlab juga memiliki sebuah fasilitas antar muka (interface) yaitu GUI (Graphical

User Interface) sehingga dapat memudahkan penggunanya dalam pengoperasian sistem.

Keluaran dari sistem ini merupakan hasil perbandingan terkecil antara gambar dari webcam dengan data pada database. Selanjutnya data yang didapatakan dikirim menggunakan komunikasi serial ke mikrokontroler data yang di terima berupa karakter akan menjalankan actuator pada lengan robot sesuai perintahnya.


(23)

1.2.

Tujuan dan Manfaat Penelitian

 Tujuan dari tugas akhir ini adalah menerapkan teknologi lengan robot penulis angka dimana webcam dapat mengenali berbagai font angka yang berbeda secara real time dengan menggunakan ekstraksi ciri biner dan mengirimkan data kelengan robot.

Metode ini bila dikembangkan akan dapat mengenali lebih banyak jenis font angka yang beraneka ragam dan memberikan informasi kepada pengguna lengan robot untuk mempelajari angka. Sehingga dapat membantu para guru untuk mengajari murid murid sekolahan, hal ini juga dapat meningkatkan daya berfikiranak-anak untuk belajar dan bermain.

 Manfaat penelitian ini adalah sebagai penelitian awal dari aplikasi pengenalan

font angka secara real time untuk murid-murid sekolahan sebagai media

pembelajaran.

1.3.

Batasan Masalah

Batasan masalah dalam bab ini adalah:

1. Menggunakan webcam Logitech C270H sebagai penangkap gambar font angka untuk mengambil data yang akan diproses oleh MATLAB mikrokontroler dan dikirimkan pada lengan robot.

2. Font angka yang digunakan ada tiga jenis font yaitu:


(24)

Harrington

Segoe script

3. Font angka di deteksi secara bergantian untuk pengambilan data yang akan

diproses pada mikrokontroler.

4. Gambar font angka berukuran 7cm x 5cm. 5. Gambar font angka di cekta pada kertas ivory

6. Posisi webcam untuk pengambilan gambar font angka akan diambil dari jarak: 30cm

7. Menggunakan 3 buah motor servo sebagai akuator lengan robot. 8. Menggunakan mikrokontroler AVR ATmega 32.

9. Menggunakan program matlab sebagai pengenalan pola pada gambar berupa angka untuk mengenali berbagai font angka.

10.USB TO TTL converter driver PL2303 sebagai komunikasi serial ke


(25)

1.4.

Metode Penelitian

Langkah – langkah dalam pengerjaan tugasakhir : 1. Studi Pustaka

Studi pustaka dilakukan dengan cara mengumpulkan serta mempelajari bahan

–bahan referensi berupa buku-buku dan jurnal-jurnal ilmiah yang berasal dari media internet maupun media-media lain. Bahan referensi yang dikumpulkan dan dipelajari berkaitan dengan topik yang diambil, seperti bahan tentang pemograman Matlab, citra biner dan image processing.

2. Pembuatan subsistem hardware dan software

Tahap ini merupakan tahap dalam pembuatan lengan robot dan mencari bentuk model yang optimal darisistem yang akan dibuat dengan mempertimbangkan berbagai kebutuhan yang telah ditentukan. Pembuatan program menggunakan software Matlab.


(26)

3. Perancangan dan pembuatan mekanik lengan robot

Merancanglengan robot dengan gripper yang mencengkram pensil serara permanen dan tiga buah motor servo.

Membuat tempat untuk meletakan webcam mendeteksi gambar font angka dan tempat peletekan gambar font angka.

Membuat gambar font angka dengan bahan yang lebih keras.

Menggunakan akrelik sebagai bahan untuk membuat lengan robot. 4. Analisis dan penyimpulan

Analisis data yang pertama dilakukan dengan meneliti pengaruh variasi font angka terhadap tingkat pengenalan. Penyimpulan hasil dilakukan untuk mencari tingkat pengenalan yang optimal. Kedua, meneliti pengaruh penskalaan terhadap tingkat pengenalan. Penyimpulan hasil dilakukan untuk mengetahui kinerja sistem terhadap pengenalan angka.


(27)

6

BAB II

DASAR TEORI

2.1

Lengan Robot

Lengan robot merupakan gabungan dari beberapa segmen dan sendi yang secara umum 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 [3].

Gambar 2.1. Anatomi Lengan robot [3]

Lengan robot diilustrasikan pada Gambar 2.1 adalah lengan robot yang memiliki dua lengan dan pergelangan. Di ujung pergelangan dapat diinstal berbagai tool sesuai dengan fungsi yang diharapakan. Jika dipandang dari sudut pergerakan maka terdiri dari tiga pergerakan utama yaitu badan robot yang dapat berputar ke kiri dan ke kanan, lengan masing-masing dapat bergerak ke atas dan ke bawah, dan gerak pergelangan sesuai dengan sifat tool [4].


(28)

Perangkat pendukung lengan robot secara umum dapat ditunjukan pada Gambar 2.2 yang terdiri dari beberapa komponen, yaitu:

1. Manipulator 2. Sensor 3. Aktuator 4. Kontroler

Gambar 2.2. Sistem Lengan robot [5]

Manipulator adalah bagian mekanik yang dapat difungsikan untuk memindah, mengangkat dan memanipulasi benda kerja. Sensor adalah komponen berbasis instrumentasi (pengukuran) yang berfungsi sebagai pemberi informasi tentang berbagai keadaan atau kedudukan dari bagian-bagian robot.

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

Kontroler adalah rangkaian elekronik berbasis mikroprosesor yang berfungsi sebagai pengatur seluruh komponen.

2.2

Gripper

Gripper adalah sebuah efektor yang berfungsi untuk menggenggam dan menahan

objek. Objek merupakan sebuah komponen yang akan dipindahkan oleh robot dapat berupa kertas, botol, bahan mentah dan peralatan – peralatan lain. Menurut jumlah peralatan


(29)

penggenggam dan penahan, gripper dapat diklasifikasikan menjadi dua, yaitu: gripper tunggal dan gripper ganda, masing – masing memiliki kelebihan dan kekurangan sesuai dengan tujuan sistem robot. Gripper tunggal diartikan bahwa hanya ada satu peralatan untuk menggenggam dan menahan yang dipasang pada wrist. Gripper ganda diartikan bahwa ada dua peralatan yang berfungsi sebagai penggenggam dan penahan objek yang dipasang pada

wrist [5]. Seperti yang ditunjukan pada gambar 2.3

Gambar 2.3. Jenis GripperMekanik [5]

Ada 3 jenis gripperyang dikenal seperti Gripper mekanik, gripper vacuum dan

gripper magnetic. Mechanical gripper didesain untuk menggenggam dan menahan objek

dengan memberikan kontak pada objek. Biasanya menggunakan finger/jari mekanik yang disebut dengan jaws. Finger ini dapat dilepas dan dipasang sehingga sangat fleksibel pemakaiannya. Sumber tenaga yang diberikan pada gripper ini bisa berupa pneumatic, hidrolik, dan elektrik.

2.3

Mikrokontroler AVR ATmega8535

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

8-bityang diproduksi oleh Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer).Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega8535. Hampir

semua instruksi dieksekusi dalam satu siklus clock dan mempunyai 32 register

general-purpose, timer/counter fleksibel dengan mode compare, interupsi internal dan eksternal,


(30)

mempunyai ADC, PWM internal dan In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang [6].

2.3.1 Arsitektur AVR ATmega8535

Mikrokontroler ATmega8535 memiliki arsitektur sebagai berikut [6]:

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)

2.3.2 Deskripsi Mikrokontroler ATmega8535

Konfigurasi Pin Mikrokontroller ATmega8535 dengan kemasan 40-pin DIP (dual

linline package) dapat dilihat pada Gambar 2.4. 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 [6]


(31)

Mikrokontroler Atmega 8535 memiliki konfigurasi Pin sebagai berikut [6]:

a. VCC (power supply)

b. GND (ground)

c. Port A (PA7..PA0) Port A berfungsi sebagai input analog pada ADC (analog

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

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

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

i. 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. k. AREF adalah pin referensi analog untuk ADC.

Port A berfungsi sebagai input analog pada A/D Konverter dan port I/O 8-bit dua

arah. Port B, Port C, Port D adalah suatu port I/O 8-bit dua arah dengan resistor internal

pull-up (yang dipilih untuk beberapa bit). Pada rangkaian reset, waktu pengosongan kapasitor

dapat dihitung dengan persamaan 2.1.

T = R x C

(2.1)

2.3.3 Organisasi Memori AVR ATmega8535

Mikrokontroler ATmega8535 memiliki 3 jenis memori yaitu memori program, memori data dan EEPROM. Ketiganya memiliki ruang sendiri dan terpisah.

2.3.3.1 Memori Program

Kode program disimpan dalam flash memory, yaitu memori jenis non-volatile yang tidak akan hilang datanya meskipun catu daya dimatikan[7]. Dalam ATmega8535 terdapat 8Kbyte On-Chip di dalam sistem Memory Flash Reprogrammable untuk penyimpanan


(32)

program. Untuk keamanan perangkat lunak, flash memori dibagi menjadi dua bagian,yaitu

boot program dan bagian aplikasi program [6].

2.3.3.2 Memori Data

Memori data adalah memori RAM (Random Access Memory) yang digunakan untuk keperluan program. Memori data terdiri dari 32 General Purpose Register (GPR) yang merupakan register khusus yang bertugas untuk membantu eksekusi program oleh Arithmetic

Logic Unit (ALU) dan I/O registerdan additional I/O registeryang difungsikan khusus untuk

mengendalikan berbagai peripheral dalam mikrokontroler antara lain pin, port, timer/counter,

USART[5].

ATmega8535 memiliki kapasitas memori data sebesar 608 Byte yang terbagi menjadi 3 bagian yaitu register serba guna, register I/O dan SRAM [8].

2.3.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 [9].

Table 2.1. Hubungan PIN dan Interupsi [9]

Jenis interupt PIN pada Atmega 8535

INT0 PORTD.2

INT1 PORTD.3

INT2 PORTB.2

ATmega8535 menyediakan tiga interupsi eksternal yaitu, INT0, INT1, dan INT2.Masing-masing interupsi tersebut terhubung dengan pin ATmega8535 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.


(33)

2.3.5 Timer/Counter

Atmega 8535 memiliki tiga modul timer yang terdiri dari dua buah timer/counter 8 bit dan satu buah timer/counter 16 bit. Ketiga modul ini dapat diatur dalam mode yang berbeda-beda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu semua

timer/counter juga dapat difungsikan sebagai 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 [7].

2.3.5.1 Timer/counter0

Timer/counter0 merupakan modul timer/counter 8 bit dengan fitur sebagai berikut :

a. timer/counter 1 kanal.

b. Auto reload yaitu timer akan dinolkan kembali saat match compare.

c. Dapat menghasilkan pulsa PWM (pulse width modulation) dengan glitchfree.

d. Frequency generator. e. Prescalar 8 bit untuk timer.

f. Membangkitkan interupsi saat timer overflowdan atau match compare. g. External event counter.

Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.2, 2.3, dan 2.4 berikut [7].

(2.2)

(2.3)

(2.4)

Keterangan :

f = frekuensi yang digunakan untuk eksekusi program T = periode

N = prescaller yang digunakan OCR = nilai cacahan pulsa


(34)

2.3.5.2

Mode Operasi

1. Mode normal, timer digunakan untuk menghitung saja, membuat delay, danmengitung selang waktu [10].

2. 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 [5]. Hasil perbandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal PWM yang dikeluarkan pada OC0 seperti ditunjukan Gambar 2.5.

Gambar 2.5. Mode Phase Correct PWM [6]

3. 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 [7].

4. Fast PWM, mode ini hampir sama dengan mode phase correct PWM, hanya

perbedaannya adalah registercounter TCNT0 mencacah naik saja dan tidak pernah mencacah turun seperti terlihat pada Gambar 2.6 [7].


(35)

Gambar 2.6. Mode Fast PWM [6]

2.3.6.

Komunikasi Serial USART [6]

Komunikasi data adalah perpindahan data antara dua atau lebih peranti, baik yang berjauhan maupun yang berdekatan. Perpindahan data antara dua atau lebih peranti dapat dilaksanakan secara paralel atau seri. Komunikasi seri dapat dibedakan menjadi 2 macam, yaitu komunikasi dara 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.

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


(36)

2.3.6.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:

1. 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 seperti pada gambar 2.7.

Gambar 2.7. Register UDR [6]

Gambar 2.8. Register UCSRA [6] Penjelasan bit penyusun UCSRA pada gambar 2.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 vektor interupsi 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


(37)

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.

e) DOR (Data OverRun)

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.

2. USART CONTROL AND STATUS REGISTER B (UCSRB)

Gambar 2.9. Register UCSRB [6] Penjelasan bit penyusun UCSRB pada gambar 2.9:

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.


(38)

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.

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 seperti pada tabel 2.2 dan tabel 2.3.

Tabel 2.2. Penentuan Ukuran Karakter [6]

Tabel 2.3. Penentuan Ukuran Karakter [6] UCSZ[2..0] Ukuran Karakter dalam bit

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.

UCSZ[2..0] Ukuran Karakter dalam bit

0 5

1 6

10 7


(39)

3. USART CONTROL AND STATUS REGISTER C (UCSRC)

Gambar 2.10. Register UCSRC [6] Penjelasan bit penyusun UCSRC pada gambar 2.10:

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)

Bit pemilih mode komunikasi serialantara sinkron dan asinkron.

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 [13].

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

2.4. Motor Servo

Motor servo biasanya digunakan untuk robot berkaki, lengan robot atau actuator pada mobil robot. Motor servo adalah sebuah motor dengan sistem umpan balik tertutup dimana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor servo terdiri dari sebuah motor DC, beberapa gear, sebuah potensiometer, sebuah output shaft dan sebuah rangakaian kontrol elektronik [11].


(40)

Gambar 2.11. Motor Servo [12]

Motor servo dikemas dalam bentuk kotak segiempat seperti ditunjukan pada Gambar 2.11, terdiri dari tiga kabel konektor yaitu power (Vdd), control (I/O pin) dan ground (Vss) seperti ditunjukan pada gambar 2.12. Gear motor servo ada yang terbuat dari plastik, metalatau titanium. Di dalam motor servo terdapat potensiometer yang digunakan sebagai sensorposisi. Potensiometer tersebut dihubungkan dengan output shaft untuk mengetahui posisiaktual shaft. Ketika motor dc berputar maka output shaft juga berputar dan sekaligus memutar potensiometer. Rangkaian kontrol dapat membaca kondisi potensiometer tersebut untuk mengetahui posisi akutal shaft. Jika posisinya sesuai dengan yang diingikan, makamotor dc akan berhenti [9].

Gambar 2.12. Konfigurasi Pin Motor Servo [12] Ada dua jenis motor servo yaitu :

1. Motor servo standard, yaitu yang mampu bergerak CW (clockwise) dan CCW

(counter clockwise) dengan sudut operasi tertentu, misalnya 60°,90°, atau 180°. 2. Motor servo continous, motor servo yang mampu bergerak CW dan CCWtanpa


(41)

Motor servo biasanya menggunakan tegangan 4,8 V hingga 7,2 V. Motor servo dikendalikan dengan cara mengirimkan sebuah pulsa yang lebarnya bervariasi. Lebar pulsa antara 1 ms sampai 2 ms dengan periode pulsa sebesar 20 ms seperti pada gambar 2.13.

Gambar 2.13. Sinyal untuk Mengendalikan Motor Servo [9]

Lebar pulsa akan mengakibatkan perubahan posisi pada motor servo. Misalnya sebuah pulsa 1,5 ms akan memutar motor pada posisi 90° (posisi netral). Agar posisi servo tetap pada posisi maka pulsa harus terus diberikan pada servo. Jadi mesikipun ada gaya yang melawan, servo akan tetap bertahan pada posisinya. Gaya maksimum servo tergantung dari rentang torsi servo.

Gambar 2.14. Lebar Pulsa dan Posisi Servo [10]

Prinsip utama pengontrolan motor servo yaitu dengan memberikan nilai PWM pada kontrolnya. Perubahan duty cycle akan 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 seperti contoh pada gambar 2.14 yaitu jika ingin menggerakan servo pada sudut 180o, maka lebar pulsa yang


(42)

diperlukan yaitu 1ms. Artinya yaitu dengan memberikan pulsa high selama 1ms dan kemudian diberikan pulsa low selama 19ms [9].

2.4.1.

Torsi / Momen Gaya

Momen Gaya (Torsi (τ)) adalah kemampuan gaya F memutar/merotasi benda terhadap

poros diam. Sehingga semakin besar torsi (τ) maka gaya F memutar benda pun semakin besar

[14].

Rumus :

τ= F r sin θ (2.5)

τ = Torsi (N-m)

F = Gaya (N), F = m x g

r = Jarak dari titik pangakal gaya sampai sumbu putar θ = Derajat sumbu putar

2.5. LCD (Liquid Crystal Display)

Terdapat 2 jenis LCD yaitu LCD karakter dan LCD grafik. LCD karakter, adalah LCD yang tampilannya terbatas pada tampilan karakter, khususnya karakter ASCII (seperti karakter-karakter yang tercetak pada keyboard komputer). Sedangkan LCD grafik, adalah LCD yang tampilannya tidak terbatas, bahkan dapat menampilkan foto. LCD grafik inilah yang terus berkembang seperti layar LCD yang biasa dilihat di notebook/laptop[14]. Jenis LCD karakter yang beredar di pasaran biasa dituliskan dengan bilangan matriks dari jumlah karakter yang dapat dituliskan pada LCD tersebut, yaitu jumlah kolom karakter dikali jumlah baris karakter. Sebagai contoh, LCD16x2, artinya terdapat 16 kolom dalam 2baris ruang karakter seperti ditunjukan pada Gambar 2.15, yang berarti total karakter yang dapat dituliskan adalah 32 karakter [14].


(43)

Agar dapat mengendalikan LCD karakter dengan baik, tentu diperlukan koneksi yang benar. Untuk itu perlu diketahui pin-pin antarmuka yang dimiliki oleh LCD karakter seperti yang ditunjukan pada Gambar 2.16 dan Tabel 2.4.

Gambar 2.16. Konfigurasi kaki pin LCD 16x2

Tabel 2.4. Konfigurasi Kaki Pin LCD 16x2

Nomor PIN PIN Keterangan

1 VSS GND

2 VDD 5V

3 Vo Kontras

4 RS

5 R/W Read / Write

6 EN Enable

7 DB0 Data 0

8 DB1 Data 1

9 DB2 Data 2

10 DB3 Data 3

11 DB4 Data 4

12 DB5 Data 5

13 DB6 Data 6

14 DB7 Data 7

15 - -

16 - -

Operasi dasar pada LCD 16x2 terdiri dari empat, yaitu instruksi mengakses proses internal, instruksi menulis data, instruksi membaca kondisi sibuk, dan instruksi membaca data [14]. Operasi dasar LCD 16x2 dapat dilihat pada tabel 2.4 dan tabel 2.5 adalah konfigurasi


(44)

Tabel 2.5. Operasi Dasar LCD 16x2

RS R/W Operasi

0 0 Input instruksi ke LCD

0 1 Membaca status flag (DB7) dan alamat counter (DB0-DB6)

1 0 Menulis data

1 1 Membaca data

Tabel 2.6. Konfigurasi Setting LCD 16x2 Pin Bilangan biner Keterangan RS

0 Inisialisasi

1 Data

RW

0 Tulis LCD/W (Write) 1 Baca LCD/R (Read) E

0 Pintu data terbuka 1 Pintu data tertutup

2.6. WebcamLogitech Seri C270h

Webcamadalah kamera digital yang dikoneksikan ke computer, digunakan untuk

telekonferensi video atau tujuan lain. Pengoperasian webcam cukup mudah karena webcam memiliki fitur fungsionalitas USB untuk koneksi menggunakan computer. Sehingga banyak digunakan untuk mengolah image processing yang kemudian akan diolah dengan perangkat lunak untuk pemrosesan berbasis pixel, RGB dan lain-lain. Salah satu contoh webcam ditunjukan pada gambar 2.17[15].

Gambar 2.17. Webcam Logitech Seri C270h[15]

Sebuah webcam yang sederhana terdiri dari sebuah lensa, dipasang di sebuah papan sirkuit untuk menangkap sinyal citra. Webcam memiliki casing (pelindung/cover) depan dan


(45)

depan yang digunakan sebagai lokasi masuknya sinyal citra. Sebuah webcam biasanya dilengkapi dengan software yang digunakan untuk mengambil citra hasil tangkapan kamera digital secara terus menerus ataupun dalam interval waktu tertentu.

2.7

Regulator Tegangan IC 7805

Rangkaian penyearah pada dasarnya sudah cukup bagus jika tegangan ripple-nyakecil, namun ada masalah pada stabilitas tegangan yang dihasilkan. Jika tegangan PLNnaik/turun, maka tegangan output-nya juga akan naik/turun. Untuk mengatasi hal tersebut maka digunakan IC ini sebagai penstabil tegangan. kongifurasi pin IC regulator ditunjukan pada Gambar 2.18.

Gambar 2.18. Konfigurasi pin IC Regulator [20]

Tabel 2.7 menunjukan spesifikasi IC regulator seri 78xx denga keluaran dan masukan minimum dan maksimum.

Tabel 2.7. Karakteristik Regulator Tegangan IC 78xx [21]

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


(46)

Gambar 2.19. Rangkaian Umum Regulator 78xx [21]

Pada gambar 2.19 memiliki nilai komponen c1 dan c2 difungsikan sebagai filter capasitor yang bertujuan untuk menghilangkan tegangan ripple agar tegangan keluaran menjadi lebih stabil. Untuk mendapatkan nilai capasitor yang sesuai, dapat mengacu pada persamaan 2.10 dan 2.11 [21].

(2.10)

(2.11)

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

Gambar 2.20. Rangkaian Catu Daya dengan Penguat [22]

Dari gambar 2.25, maka diperleh persamaan-persamaan sebagai berikut[22] :

VB = Vreg + VD (2.12)


(47)

Vo = Vreg – VBE (2.13) Jika VD VBE, maka

Vo = Vreg (2.14)

Tegangan diantara kolektor dan emittor transistor 2N3055 adalah[22],

VCE = VIN – VR1 (2.15)

Disipasi daya transistor NPN 2N3055 adalah[22],

PD = VCE x IC (2.16)

Untuk nilai penguatan arus diperoleh dengan persamaan dibawah ini[21] :

Ic = β IB (2.17)

Ie = (β+1) IB (2.18)

2.8

Pengolahan Citra

2.8.1 Citra Digital

Sebuah citra dapat didefinisikan sebagai fungsi dua dimensi f(x,y), dimana x dan y adalah koordinat spasial dan amplitude dari f pada sembarang pasangan koordinat (x,y) disebut intensity (intensitas) atau gray level (keabuan) dari citra tersebut. Ketika x, y dan nilai intensitas dari f adalah semua terbatas, discrete quantities, citra tersebut dapat juga disebut

digital image (citra digital) [23]. Citra digital terdiri dari sejumlah elemen tertentu, setiap

elemen mempunyai lokasi dan nilai tertentu. Elemen–elemen ini disebut picture element,

image element, pels dan pixels.

Sumber noise pada citra digital bisa terjadi sejak pengambilan atau transmisi citra. Kinerja dari sensor citra dipengaruhi oleh banyak faktor seperti kondisi lingkungan selama 6

pengambilan citra dengan kamera webcam, level pencahayaan dan suhu sensor adalah faktor utama yang mempengaruhi tingkat noise pada citra yang dihasilkan [23].


(48)

2.8.2 Citra RGB

Citra RGB disebut juga citra truecolor. Citra RGB merupakan citra digital yang mengandung matriks data berukuran M × N × 3 yang merepresentasikan warna merah, hijau, dan biru untuk setiap pixel. Setiap warna dasar diberi rentang nilai tersendiri. Nilai rentang paling kecil yaitu 0 dan paling besar yaitu 255. Warna dari tiap pixel ditentukan oleh kombinasi dari intensitas merah, hijau, dan biru.Jumlah bit dalam citra RGB dimana setiap citra

red, green dan blue adalah citra 8 bit. Dalam kondisi setiap warna pixel RGB mempunyai

kedalaman 24 bit. Citra full color sering digunakan untuk menyatakan citra berwarna RGB 24 bit. Total jumlah warna dalam citra 24 bit adalah ( ) = 16,777,216[24]. Seperti yang ditunjukan pada gambar 2.21.

Gambar 2.21. Kubus Berwarna RGB 24bit[24]

2.8.3 Citra Grayscale

Citra berwarna terdiri dari 3 layer matrik yaitu R-layer, G-layer, dan B-layer seperti yang telah dibahas sebelumnya. Sehingga bila citra tersebut akan diproses membutuhkan proses perhitungan yang panjang karena perhitungan harus diulang sebanyak tiga kali. Supaya citra dapat diproses oleh komputer dengan mudah maka citra digital harus memiliki format tertentu, oleh sebab itu hal pertama kali yang dilakukan untuk melakukan pengolahan citra yaitu dengan cara mengubah citra berwarna menjadi format/bentuk grayscale atau warna keabuan. Mengubah citra berwarna menjadi citra grayscale dapat dilakukan dengan cara mengambil rata-rata dari nilai R, G, dan B (2.3) menggunakan rumus dibawah ini [16];


(49)

Dimana :

S : Nilai grayscale R : Nilai warna Red G : Nilai warna Green B : Nilai warna Blue

Citra grayscale merupakan citra digital yang pada setiap pikselnya hanya memiliki satu nilai kanal. Format citra ini disebut skala keabuan karena pada umumnya warna hitam digunakan sebagai warna minimal 0 dan warna putih sebagai warna maksimal 255, dimana warna tengah-tengah antara hitam dan putih adalah abu-abu. Seperti yang ditunjukkan pada Gambar 2.21.

Gambar 2.22. Citra Skala Keabuan

2.8.4 Citra Biner

Citra biner (binary image) adalah citra yang hanya mempunyai dua nilai derajat keabuan yaitu hitam dan putih. Meskipun saat ini citra berwarna lebih disukai karena member kesanyang lebih kaya dari pada citra biner, namun tidak membuat citra biner mati. Pada beberapa aplikasi citra biner masih dibutuhkan, misalnya citra logo instansi (yang hanya terdiri atas warna hitam putih), citra kode batang (bar code) yang tertera pada label barang, citra hasil pemindaian dokumen teks, dan sebagainya.Citra biner hanya mempunyai dua nilai derajat keabuan yaitu hitam da nputih. Pixel-pixel objek bernilai 1 dan pixel-pixel lattar belakang bernilai 0. Pada saat menampilkan gambar, 0 adlah putih dan 1 adalah hitam. Jadi pada citra biner, latar belakang berwarna putih sedangkan objek berwarna hitam [13].

2.9

Pemrosesan Citra

2.9.1 Cropping

Cropping citra merupakan salah satu langkah dalam pengolahan citra yang dilakukan

untuk memotong satu bagian dari citra tertentu untuk memperoleh bagian yang diinginkan untuk diolah. Hal ini dilakukan untuk mendapatkan data yang tepat sehingga memudahkan dalam proses pengolahan data [17].


(50)

2.9.2 Resizing

Rezising citra adalah mengubah besarnya ukuran citra dalam piksel. Tampilan citra

tidak ada yang berubah hanya ukuran pixel dan matriksnya yang dirubah.

Transformasi geometris disebut rubber-sheet transformation karena dapat ditampilkan seperti pencetakan citra pada lembaran karet dan men-streching lembaran ini menurut jumlah aturan yang sudah didefinisikan. Transformasi geometris ini digunakan untuk melakukan image

registration, yaitu sebuah proses yang mengambil dua citra dari scene yang sama dan

mengaturnya sehingga dapat digabung untuk visualisasi, atau perbandingan kuantitatif [18].

2.9.3 Pengenalan Pola

Pengenalan pola (pattern recognition) adalah suatu ilmu untuk mengklasifikasikan atau menggambarkan sesuatu berdasarkan pengukuran kuantitatif fitur (ciri) atau sifat utama dari suatu obyek [19]. Proses pengenalan pola dapat dilakukan dengan cara membandingkan antara obyek yang ingin dikenali dengan data-data yang telah disediakan. Proses pengenalan pola ini bertujuan meniru kemampuan manusia dalam mengenali suatu obyek atau pola, sehingga dengan menerapkan pengenalan pola ini kepada suatu mesin maka membuat mesin memiliki kemampuan seperti manusia dalam mengenali suatu obyek atau pola.


(51)

30

BAB III

PERANCANGAN PENELITIAN

Bab ini membahas tentang langkah langkah perancangan dalam pembuatan sistem pengenalan angka. Pembahasan di dalam bab ini meliputi diagram blok data masukkan serta perancangan antarmuka yang akan digunakan

3.1. Prinsip Kejadan Mekanisme Gerak Lengan Robot

Pada tugas akhir ini akan dibuat lengan robot yang mampu mendeteksi dan menuliskan font angka berdasarkan gambar font angka yang akan dideteksi secara otomatis. Dengan menggunakan webcam yang akan mendeteksi gambar font angka dan motor servo sebagai akuator. Saat webcam mendeteksi gambar font angka maka data yang dihasilkan oleh webcam akan diproses oleh mikrokontroler yang telah di program kemudian akan menjalankan motor servo sebagai akuator robot dan menuliskan font angka yang dideteksi pada media tulis dengan bentuk font seven segment. Sistem kerja lengan robot ditunjukan seperti pada gambar 3.1 yang merupakan diagram bloksistem.


(52)

Proses kerja sistem lengan robot mulai dengan meletakan lengan robot dalam posisi siap untuk menscan gambar font angka, kemudian lengan robot mulai menscan gambar font angka dengan webcam yang sudah terpasang di atas alas tempat untuk meletakan gambar font angka dengan jarak 30 cm dan menyimpan data gambar font angka yang sudah discan pada mikrokontroler setelah mikrokontroler menerima data lalu data akan diporoses dengan program yang sudah didownload kedalam mikrokontroler dan selanjutnya mikrokontroler akan mengirimkan perintah gerak ke lengan robot untuk menjalankan perintah menuliskan angka pada media tulis yang sudah di siapkan.

3.2. Perancangan Mekanik Lengan Robot

Pada tahap ini dilakukan perancangan mekanik dari robot tersebut, antara lain mendesain ukuran robot, penggunaan bahan dasar untuk lengan robot yaitu plat

aluminium setebal 1 mm. Pendesainan robot menggunakan software Google SketchUp.

Lengan robot terdiri dari 5 bagian utama yaitu poros, gripper, komponen 1, komponen 2, komponen 3. Gambar 3.2 menunjukan anatomi robot lengan secara keseluruhan.

Berikut adalah gambar detail dari bagian-bagian lengan robot, yaitu: komponen 1 ditunjukan Gambar 3.3, komponen 2 ditunjukan Gambar 3.4, komponen 3 ditunjukan Gambar 3.5, gripper ditunjukan Gambar 3.6. Dan gambar keseluruhan lengan robot ditujukan gambar 3.7.


(53)

Gambar 3.3. Komponen 1

Gambar 3.4. komponen 2

Gambar 3.5. Komponen 3


(54)

Gambar 3.7. Peletakan seluruh komponen

3.3. Perancangan Perangkat Keras (hardware)

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

a) Minimum System Atmega8535 + LCD 16x2

b) Motor servo

c) Regulator ic 7805 + penguat arus d) Webcam Logitech seri C270h

e) Benda tiga dimensi f) Sensor photodiode

3.3.1.

Minimum System Atmega8535 + LCD 16x2

3.3.1.1. Minimum System Atmega8535

Rangkaian minimum system berfungsi sebagai I/O untuk mengontrol atau mengendalikan sudut putar motor servo yang telah diprogram dalam mikrokontroler ATmega8535 pada lengan robot serta sebagai pengolah data serial yang dikirimkan dari


(55)

komputer melalui USB to TTL converter. Mikrokontroler membutuhkan minimum system yang terdiri dari rangkaian eksternal yaiturangkaian osilator dan rangkaian reset.

Untuk rangkaian osilator digunakan crystal dengan frekuensi sebesar 11,0592 MHz dan menggunakan kapasitor 22 pf pada pin XTAL1 dan XTAL2 di mikrokontroler. Rangkaian osilator ini berfungsi sebagai sumber clock bagi mikrokontroler. Pemberian kapasitor bertujuan untuk memperbaiki kestabilan frekuensi yang diberikan oleh osilator eksternal. Gambar 3.8 menunjukan rangkaian osilator.

Gambar 3.8. Rangkaian Osilator ATmega8535

Perancangan rangkaian reset bertujuan untuk memaksa proses kerja pada mikrokontroler dapat diulang dari awal. Saat tombol reset ditekan maka mikrokontroler mendapat input logika rendah, sehingga akan me-reset seluruh proses yang sedang dilakukan mikrokontroler. Gambar 3.9 adalah rangkaian reset untuk ATmega8535.


(56)

3.3.1.2. Rangkaian Konfigurasi LCD 16x2

Rangkaian LCD berfungsi untuk menampilkan nama benda yang terdeteksi oleh

webcam agar user dapat melihat apakah webcam mendeteksi benda dengan benar.

Rangkaian LCD dapat dilihat pada gambar 3.10. Penentuan konfigurasi kaki LCD menuju mikrokontroler ditentukan dengan melihat pada software compilerCodeVisionAVR seperti pada Gambar 3.11.

Gambar 3.10. Skematik LCD 16x2 Gambar 3.11. Setting port LCD

3.4.

Perhitungan Torsi Motor Servo

Untuk menghitung besar torsi pada masing-masing motor servo, digunaka rumus 2.5 Gambar 3.12 merupakan gambar kontruksi lengan robot untuk menghitung besar torsi masing-masing motor servo. Tabel 3.1 merupakan tabel perhitungan torsi motor servo.


(57)

Gambar 3.12. Konstruksi Lengan Robot

Tabel 3.1. Perhitungan Torsi Motor Servo

GAYA TORSI

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

= 0,160 x 9,8 = 1,862 N

Ket : servo 1 bergerak 0o, 70o , 90o, 110o

Ket: 1N-m = 10.1971621298 kg-cm

 Sudut 0o (r = 41 cm)

Τ = 1,568 x 0,41 x sin(0) = 0 N-m = 0 kg-cm

 Sudut 70o (r = 41 cm)

Τ = 1,568 x 0,41 x sin(70) = 0,6041 N-m = 6,1601 kg-cm

 Sudut 90o (r = 41 cm)

Τ = 1,568 x 0,41 x sin(90) = 0,6428 N-m = 6,5555 kg-cm

 Sudut 0o (r = 41 cm)

Τ = 1,568 x 0,41 x sin(110) = 0,6041 N-m = 6,1601 kg-cm Motor servo 2 (m = 90 gr)

F = m x g = 0,090 x 9,8 = 0,888 N

Ket: servo 2 bergerak 90o

 Sudut 90o (r = 41 cm)

Τ = 0,888 x 0,41 x sin(90) = 0,3616 N-m = 3,6874 kg-cm

Motor servo 3 (m = 30 gr) F = m x g

= 0,030 x 9,8 = 0,294 N

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

 Sudut 90o (r = 27 cm)

Τ = 0,294 x 0,27 x sin(70) = 0,0745 N-m = 0,7606 kg-cm

 Sudut 90o (r = 27 cm)

Τ = 0,294 x 0,27 x sin(80) = 0,0781 N-m = 0,7971 kg-cm

 Sudut 90o (r = 27 cm)

Τ = 0,294 x 0,27 x sin(90) = 0,0793 N-m = 0,8094 kg-cm


(58)

3.5. Motor Servo

Motor servo digunakan untuk menggerakan lengan robot. Motor servo yang digunakan yaitu Towerpro MG996R untuk servo 1, servo2, dan servo3 sebanyak 3 buah, dan Towerpro SG90 untuk servo4 sebanyak 1 buah. Alasan menggunakan servo Towerpro MG996R yaitu karena memiliki torsi yang kuat mencapai 12 kg-cm dan harganya tidak begitu mahal, sedangkan servo Towerpro SG90 digunakan karena pada bagian gripper tidak membutuhkan torsi yang besar yaitu berdasarkan perhitungan hanya 0,299 kg-cm sehingga servo Towerpro SG90 dapat digunakan. Spesifikasi servo Towerpro MG996R dapat dilihat pada tabel 3.2, dan spesifikasi servo Towerpro SG90 dapat dilihat pada tabel 3.3. Servo Towerpro MG996R dapat dilihat pada Gambar 3.13, dan servo Towerpro SG90 dapat dilihat pada Gambar 3.14.

Tabel 3.2. Spesifikasi Servo Towerpro MG996R [25] Spesifikasi servo Towerpro MG996R

operating voltage 4.8V to 7.2V operating temperature range 0oC to 55oC

operating speed 60/0.17 degree/second (no load @4.8V) operating speed 60/0.14 degree/second (no load @6V)

stall torque 9.4 kg-cm @4.8V

stall torque 12 kg-cm @6V

running current 500mA - 900mA @6V

stall current 2.5A @6V

gear type all metal gear

size 40mm x 19mm x 43mm

weight 55 gram

Tabel 3.3. Spesifikasi servo Towerpro SG90 [25] Spesifikasi servo Towerpro SG90

torsi 1.8 kg-cm @4.8V

kecepatan 60/0.1 degree/second (no load @4.8V)

tegangan 4V - 7.2V

running current ±50mA

stall current ±80mA

idle current ±10mA

dimensi 23mm x 12.2mm x 29mm

berat 9 gram

dead bandwidth 10µs


(59)

Gambar 3.13. Towerpro MG996R [25] Gambar 3.14. Towerpro SG90 [25] Rangkaian servo terdiri dari tiga port yaitu vcc, ground, dan data. Jalur data terhubung dengan port pada mikrokontroler sebagai jalur pengiriman pulsa PWM untuk mengaktifkan motor servo dan mengatur sudut putarnya. Gambar 3.15 merupakan rangkaian pin untuk motor servo.

Gambar 3.15. Rangkaian Pin Motor Servo

Digunakan interrupt timer sebagai pembangkit PWM. Timer adalah sebuah

counter (penghitung). Tugas timer hanya menghitung, timer selalu menyimpan

hitungannya saat menghitung “satu, dua, tiga, …” hingga 255 (8 bit). Naiknya hitungan

timer dan berapa lama jeda antar hitungan ini ditentukan dari siklus pencacah microcontroller, mode timer.

Pada perancangan motor servo, timer diset agar menghitung sampai 255. Dan jika sudah mencapai 255, maka timer (overflow) akan memberikan sinyal, disinilah PWM bekerja dan mengintruksikan timer untuk menghitung lagi dari 0. Demikian seterusnya terjadi jika nilai 255 tercapai. Perbandingan nilai lebar pulsa terhadap nilai overflow motor servo selama T= 20ms adalah nilai OCR, yang merupakan cacahan pulsa selama


(60)

1ms sampai 2ms. Berikut perhitung overflow interrupt sebagai pembangkit PWM untuk mengatur sudut putar motor servo.

Frekuensi crystal yang digunakan yaitu 11,059200 MHz, sehingga untuk mendapatkan periode dari frekuensi tersebut digunakan rumus :

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

Dengan menggunakan timer0/8bit dan nilai prescaler 256 sebagai pengatur kecepatan clock maka timer overflow yang dihasilkan (0,090422 x 10-6 ) x 256 = 23,148 x 10-6. Sehingga pemberian nilai untuk membuat interrupt dapat mencacah selama 20ms yaitu (20ms/23,148x10-6 ) = 864. Tabel 3.4 menunjukan pemberian nilai OCR untuk mengontrol pergerakan motor servo secara umum. Dan Gambar 3.16 menunjukan lebar pulsa motor servo. Rumus yang digunakan untuk mendapatkan nilai OCR yaitu :

Tabel 3.4. Perhitungan Nilai OCR

SUDUT LEBAR PULSA

NILAI OCR

0o 1 ms OCR =

= 43,20

90o 1,5 ms OCR =

= 64,8

180o 2 ms OCR =

= 86,40


(1)

%fprintf(komunikasi,'7'); guidata(hObject,handles);

elseif ((data>=815)&&(data<=825))

set(handles.edit1, 'string', 'ANGKA DELAPAN'); guidata(hObject,handles);

%fprintf(komunikasi,'8'); guidata(hObject,handles);

elseif ((data>=770)&&(data<=790))

set(handles.edit1, 'string', 'ANGKA SEMBILAN'); guidata(hObject,handles);

%fprintf(komunikasi,'9'); guidata(hObject,handles);

end

elseif (handles.FONT==2)

if ((data>=414)&&(data<=420))

set(handles.edit1, 'string', 'ANGKA NOL');

guidata(hObject,handles); % fprintf(komunikasi,'0'); guidata(hObject,handles);

elseif ((data>=215)&&(data<=220))

set(handles.edit1, 'string', 'ANGKA SATU'); guidata(hObject,handles);

% fprintf(komunikasi,'1'); guidata(hObject,handles);

elseif ((data>=380)&&(data<=385))

set(handles.edit1, 'string', 'ANGKA DUA'); guidata(hObject,handles);

% fprintf(komunikasi,'2'); guidata(hObject,handles);

elseif ((data>=400)&&(data<=413))

set(handles.edit1, 'string', 'ANGKA TIGA'); guidata(hObject,handles);

% fprintf(komunikasi,'3'); guidata(hObject,handles);

elseif ((data>=350)&&(data<=375))

set(handles.edit1, 'string', 'ANGKA EMPAT'); guidata(hObject,handles);

% fprintf(komunikasi,'4'); guidata(hObject,handles);

elseif ((data>=386)&&(data<=390))

set(handles.edit1, 'string', 'ANGKA LIMA'); guidata(hObject,handles);

%fprintf(komunikasi,'5'); guidata(hObject,handles);

elseif ((data>=425)&&(data<=440))

set(handles.edit1, 'string', 'ANGKA ENAM'); guidata(hObject,handles);


(2)

guidata(hObject,handles);

elseif ((data>=285)&&(data<=300))

set(handles.edit1, 'string', 'ANGKA TUJUH'); guidata(hObject,handles);

% fprintf(komunikasi,'7'); guidata(hObject,handles);

elseif ((data>=441)&&(data<=450))

set(handles.edit1, 'string', 'ANGKA DELAPAN'); guidata(hObject,handles);

% fprintf(komunikasi,'8'); guidata(hObject,handles);

elseif ((data>=455)&&(data<=465))

set(handles.edit1, 'string', 'ANGKA SEMBILAN'); guidata(hObject,handles);

%fprintf(komunikasi,'9'); guidata(hObject,handles);

end

elseif (handles.FONT==3)

if ((data>=87)&&(data<=90))

set(handles.edit1, 'string', 'ANGKA NOL'); guidata(hObject,handles);

%fprintf(komunikasi,'0'); guidata(hObject,handles);

elseif ((data>=50)&&(data<=55))

set(handles.edit1, 'string', 'ANGKA SATU'); guidata(hObject,handles);

%fprintf(komunikasi,'1'); guidata(hObject,handles);

elseif ((data>=30)&&(data<=33))

set(handles.edit1, 'string', 'ANGKA DUA');

guidata(hObject,handles); %fprintf(komunikasi,'2'); guidata(hObject,handles);

elseif ((data>=65)&&(data<=70))

set(handles.edit1, 'string', 'ANGKA TIGA'); guidata(hObject,handles);

%fprintf(komunikasi,'3'); guidata(hObject,handles);

elseif ((data>=81)&&(data<=86))

set(handles.edit1, 'string', 'ANGKA EMPAT'); guidata(hObject,handles);

%fprintf(komunikasi,'4'); guidata(hObject,handles);

elseif ((data>=75)&&(data<=80))

set(handles.edit1, 'string', 'ANGKA LIMA'); guidata(hObject,handles);

%fprintf(komunikasi,'5'); guidata(hObject,handles);


(3)

elseif ((data>=107)&&(data<=110))

set(handles.edit1, 'string', 'ANGKA ENAM');

guidata(hObject,handles); %fprintf(komunikasi,'6'); guidata(hObject,handles);

elseif ((data>=34)&&(data<=40))

set(handles.edit1, 'string', 'ANGKA TUJUH'); guidata(hObject,handles);

%fprintf(komunikasi,'7'); guidata(hObject,handles);

elseif ((data>=103)&&(data<=106))

set(handles.edit1, 'string', 'ANGKA DELAPAN'); guidata(hObject,handles);

%fprintf(komunikasi,'8'); guidata(hObject,handles);

elseif ((data>=60)&&(data<=64))

set(handles.edit1, 'string', 'ANGKA SEMBILAN'); guidata(hObject,handles);

%fprintf(komunikasi,'9'); guidata(hObject,handles);

end end

%fclose(komunikasi); %delete(komunikasi) %clear komunikasi clc;

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) guidata(hObject,handles);

close all; clear all;

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text

% str2double(get(hObject,'String')) returns contents of edit1 as a double


(4)

% --- Executes during object creation, after setting all properties.

function edit1_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text

% str2double(get(hObject,'String')) returns contents of edit2 as a double

% --- Executes during object creation, after setting all properties.

function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on selection change in popupmenu1.

function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu1

contents = get(hObject,'Value');

switch contents case 1

handles.PORT='COM15'; case 2


(5)

case 3

handles.PORT='COM17'; case 4

handles.PORT='COM18'; case 5

handles.PORT='COM19'; case 6

handles.PORT='COM20'; case 7

handles.PORT='COM21'; case 8

handles.PORT='COM22'; case 9

handles.PORT='COM23'; case 10

handles.PORT='COM24'; case 11

handles.PORT='COM25'; case 12

handles.PORT='COM26'; case 13

handles.PORT='COM27'; case 14

handles.PORT='COM28'; case 15

handles.PORT='COM29';

end

guidata(hObject,handles);

% --- Executes during object creation, after setting all properties.

function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on selection change in popupmenu2.

function popupmenu2_Callback(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu2 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu2

contents = get(hObject,'Value');

switch contents case 1

handles.FONT=1; case 2


(6)

handles.FONT=2; case 3

handles.FONT=3;

end

guidata(hObject,handles);

% --- Executes during object creation, after setting all properties.

function popupmenu2_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');