Post on 29-Mar-2019
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 lmiah.
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
Edwin Duwi Putra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERNYATAAN PERSBTUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS
Yang bedanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : EDWIN DUWI PUTRA
NomorMahasiswa : 1 l5 l l402l
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,,{/Edwin Duwi Putra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
Kata kunci: Lengan robot, webcam, MATLAB, citra biner, motor servo, ATmega32.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
Keywords: robot arm, webcam, MATLAB, binary image, servo motors, ATmega32.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
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.
10) Staff sekretariat Teknik Elektro yang telah membantu dalam hal administrasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
Penulis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
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
2.3.5.1. Timer/Counter0. ....................................................................... 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
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
Lampiran ................................................................................................................. 61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
Gambar 3.10. Skematik LCD 16x2 ......................................................................... 34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
Gambar 4.8b. Bentuk Hasil Penulisan Angka ......................................................... 84
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xix
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
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:
Fotre
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
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
mikrokontroler dan sebaliknya yang terdapat di pasaran.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
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.
Gambar1.1 Diagram blok sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
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,
serial UART, programmable Watchdog Timer, dan power saving mode. AVR juga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
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]
Gambar 2.4. Konfigurasi Pin Mikrokontroler ATmega8535 [6]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
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
Pulse = lebar pulsa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
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].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
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
kosong dan siap menerima data berikutnya, jika flag bernilai nol berarti sebaliknya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
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.
c) UDRIE (USART Data Register Empty Interrupt Enable)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
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
11 8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
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].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
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
batasan sudut operasi (berputar secara kontiyu)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
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].
Gambar 2.15. Baris dan Kolom Karakter pada LCD 16x2 [14]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
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
setting LCD 16x2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
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
casing samping untuk menutupi lensa standar dan memiliki sebuah lubang lensa di casing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
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
7824 24 27,1 38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
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)
Tegangan keluaran rangkaian menjadi[22],
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
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].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
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];
(2.19)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
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].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
Gambar 3.1. Diagram Blok Sistem Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
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.
Gambar 3.2. Anatomi Lengan Robot Menulis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Gambar 3.3. Komponen 1
Gambar 3.4. komponen 2
Gambar 3.5. Komponen 3
Gambar 3.6. Gripper
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
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.
Gambar 3.9. Rangkaian Reset ATmega8535
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
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, 70
o , 90
o, 110
o
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,80
o,90
o
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
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 55
oC
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
suhu kerja -30oC – 60
oC
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
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
Gambar 3.16. Lebar Pulsa Motor Servo [25]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Untuk mencari OCR dengan sudut yang berbeda sebelumnya harus menghitung
lebar pulsa dengan pengaturan motor servo untuk setiap perubahan 0,5 ms maka motor
servo akan bergerak atau bekerja ke sudut 90º.
Lebar pulsa =
Jadi untuk menggerakan motor servo ke sudut 70º maka harus melakukan
perubahan lebar pulsa sebesar 1,388ms maka motor servo akan bergerak atau bekerja ke
sudut 70º.
3.6. Regulator ic 7805 dan Penguat Arus
Pada pembuatan tugas akhir ini, regulator digunakan sebagai pemberi daya pada
motor servo, minimum system Atmega8535. Regulator terdiri dari ic 7805, TIP3055,
capasitor, diode, led, dan resistor. Sumber yang digunakan untuk regulator yaitu
menggunakan adaptor switching yang telah tersedia di pasaran dengan spesifikasi
keluaran tegangan 19Vdc dan arus 4A.
Untuk men-supply motor servo Towerpro MG996R dibutuhkan arus sebesar 500
mA-900 mA dan servo Towerpro SG90 50 mA. Dengan demikian maka digunakan
transistor 2N3055 agar arus keluaran ic7805 menjadi lebih besar. Tegangan 5 Volt
merupakan tegangan kerja pada masing-masing servo yaitu kurang lebih 4 volt-7,2 volt
seperti yang ditunjukan gambar 3.17.
Gambar 3.17. Rangkaian Regulator 7805 dengan Penguatan Arus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
3.7. Webcam
Webcam yang digunakan adalah webcam Logitech seri C270h karena output
keluaran gambar merupakan gambar RBG (Red Green Blue). Dapat dilihat pada gambar
3.18. Webcam ini sudah mempunyai dudukan sendiri serta mempunyai software
pendukung yang bisa zoom in dan zoom out sehingga memudahkan pengaturan dari
komputer. Pada proses pengambilan citra menggunakan resolusi 320 x 240 piksel.gambar
dan spesifikasinya bisa dilihat pada gambar 3.18 dan tabel 3.5.
Gambar 3.18. webcam logitech C270h
Tabel 3.5. Spesifikasi Webcam Logitech C270h
High definition video (HD)
HD 270p
Photo Quality Good
Video Quality Always
Focus Type Focused
Auto Light Correction Standart
3.8. Gambar Angka
Gambar font angka yang akan di deteksi oleh webcam adalah font angka:
Times New Roman
Calibri
Arial
Gambar font angka akan di cetak dan di tempelkan pada kertas ivory supaya
peletakan gamabr font angka akan lebih akurat sehingga webcam bisa mendeteksi gambar
font angka dengan sempurna seperti yang ditunjukan pada gambar 3.19.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Fotre
Harrington
Segoe script
Gamabr 3.19. Gambar Font Angka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Pada tabel 3.6 merupakan perancangan dan pengambilan data untuk tabel look up
sementara data yang diambil merupakan penjumlahan pixel putih pada gambar font angka
yang dideteksi oleh webcam dan diproses menggunakan program matlab.
Tabel 3.6. Tabel range tabel look up
3.9. Perancangan Perangkat Lunak (Software)
Pada pembuatan flowchart program interrupt lengan robot akan dibahas dan
dipaparkan mengenai cara menggerakan motor servo agar memiliki sudut sesuai dengan
apa yang diinginkan. Pada pembuatan flowchart ini digunakan software CodeVision AVR
yang merupakan suatu perangkat lunak untuk mem-program ic keluarga AVR
menggunakan bahasa c. Flowchart yang akan dibuat yaitu flowchart lengan roobot siaga,
flowchart lengan robot menulis font angka 0, flowchart lengan robot menulis font angka
1, flowchart lengan robot menulis font angka 2, flowchart lengan robot menulis font
angka 3, flowchart lengan robot menulis font angka 4, flowchart lengan robot menulis
font angka 5, flowchart lengan robot menulis font angka 6, flowchart lengan robot
menulis font angka 7, flowchart lengan robot menulis font angka 8, flowchart lengan
robot menulis font angka 9.
Pada pembuatan flowchar program pengenalan gambar font angka akan dibahas
dan dipaparkan mengenai pembuatan program image processing dengan menggunakan
metode pencitraan biner dan menggunakan software MATLAB.
Pada pembuatan flowchart program pembuatan database akan dibahas dan
dipaparkan mengenai cara membuat suatu database yang akan digunakan untuk
Angka Font Angka
Fotre harrington seoge script
0 846-855 414-420 490-515
1 535-545 215-220 358-370
2 735-745 380-385 450-460
3 805-814 400-413 461-470
4 685-700 350-375 427-435
5 795-810 386-390 420-427
6 835-845 425-440 443-449
7 670-690 285-300 270-300
8 815-825 441-450 436-442
9 770790 455-465 340-357
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
memperoleh nilai-nilai atau data pada masing-masing bentuk benda agar dapat
dibandingkan satu sama lain dengan menggunakan software MATLAB.
Secara keseluruhan sistem kerja pada perancangan tugas akhir ini dapat
ditunjukan flowchart pada gambar 3.20. Cara kerja dari lengan robot menulis ini yaitu
mula-mula gambar font angka diletakkan pada tempat yang sudah disediakan, lalu gambar
font angka akan di deteksi oleh webcam, maka mikrokontroler Atmega8535 akan
mengirimkan suatu karakter secara serial kepada komputer untuk menjalankan program
image processing agar gambar font angka dapat dikenali. Setelah gambar font angka
dikenali, maka komputer akan mengirimkan karakter secara serial kepada minimum
system Atmega8535 untuk menggerakan motor servo pada lengan robot. Lengan robot
akan menulis gambar font angka yang sudah dikenali pada media tulis yang sudah
disediakan.
Gambar 3.20. Flowchart Keseluruhan Sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
3.9.1. Flowchart Program Interrupt Lengan Robot
Untuk mengendalikan motor servo, maka dibutuhkan suatu sinyal PWM agar
sudut motor servo dapat diatur sedemikian rupa. Karena keterbatasan pin keluaran OCR
pada Atmega8535, maka dimanfaatkan suatu timer yang digunakan untuk mencacah
pulsa tersebut sehingga seluruh PORT pada Atmega8535 dapat berfungsi seperti PWM
yaitu dengan menggunakan perintah interrupt. Gambar 3.21 merupakan flowchart
penulisan program menggunakan interrupt saat lengan robot pada posisi siaga.
Untuk mendapatkan nilai sudut motor servo, penulis menggunakan metode
heuristik yaitu dengan membuat lengan robot sederhana (tanpa menggunakan motor
servo) yang memiliki ukuran yang sama dengan lengan robot yang akan dibuat dan
peletakan masing-masing komponen seperti tempat untuk peletakan gambar font angka,
webcam, dan lampu penerangan. Kemudian dicari nilai masing-masing sudut motor
servo menggunakan busur derajat pada saat lengan robot siaga, lengan robot menulis font
angka0, lengan robot menulis font angka 1, lengan robot menulis font angka 2, lengan
robot menulis font angka 3, lengan robot menulis font angka 4, lengan robot menulis font
angka 5, lengan robot menulis font angka 5, lengan robot menulis font angka 6, lengan
robot menulis font angka 7, lengan robot menulis font angka 8, lengan robot menulis font
angka 9.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 3.21. Flowchart Interrupt Robot Siaga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Gambar 3.22. Flowchart Program Interrupt Lengan Robot Saat Pengenalan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
3.9.2. Proses flowchart program lengan robot
Dalam mendapatkan nilai sudut servo penulis menggunakan metode heuristik
dimana dengan membuat lengan robot sederhana (tanpa menggunakan motor servo) yang
memiliki ukuran yang sama dengan lengan robot yang akan dibuat. Kemudian dicari nilai
masing-masung sudut motor servo menggunakan busur derajat pada lengan robot siaga
dan lengan robot saat menulis angka. Untuk menulis angka digital terdapat titik sudut
pada angka digital tersebut yang akan menjadi patokan pergerakan dari motor servo.
Pergerakan motor servo mengikuti titik-titik yang telah terdapat angka secara
berurutan. Pada tabel 3.7. merupakan gerak lengan robot dari titik awal ketitik akhir.
Contoh untuk angka 0. Dalam penulisan lengan robot dari titik 1 setiap servo di berikan
nilai PWM yang menghasilkan nilai sudut yang telah dicari, kemudian secara bersamaan
diberikan nilai PWM secara langsung pada setiap servo hingga menggerakkan lengan
robot ke titik 2 sehingga menghasilkan garis segmen yang diharapkan.
Pada gambar 3.23, gambar 3.24, gambar 3.25, gambar 3.26, gambar 3.27, gambar
3.28, gambar 3.26, gambar 3.27, gambar 3.28, gambar 3.29, gambar 3.30, gambar 3.31
gambar 3.32, gambar 3.33, gambar 3.34, gambar 3.35. gambar 3.36, gambar 3.37, gambar
3.38, gambar 3.39, gambar 3.40, gambar 3.41, gambar 3.42 merupakan gambar flow chart
dan font angka yang akan dituliskan oleh lengan robot dari penulisan angka dari 1 sampai
9
Tabel 3.7. Gerak Sudut Motor Servo
Angka Pergerakan motor servo (dalam derajat)
Posisi siaga :
Servo 1 = 90o
Servo 2 = 90o
Servo 3 = 90o
Garis 1 2 Garis 2 3
Servo 1 = 110o Servo 1 = 110 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 90 o Servo 3 = 110 o
Garis 3 4 Garis 4 1
Servo 1 = 90 o Servo 1 = 90 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 110 o Servo 3 = 90 o
1 2
6 3
5 4
1
4 3
2 1
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Tabel 3.7.(Lanjutan) Gerak Sudut Motor Servo
Angka Pergerakan motor servo (dalam derajat)
Gerak 1 2
Servo 1 = 90 o
Servo 2 = 90 o
Servo 3 = 110 o
Garis 1 2 Garis 2 3
Servo 1 = 110o Servo 1 = 110 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 90 o Servo 3 = 100 o
Garis 3 4 Garis 4 5
Servo 1 = 90 o Servo 1 = 90 o
Servo 2 = 90o Servo 2 = 90 o
Servo 3 = 100 o Servo 3 = 110 o
Garis 5 6
Servo 1 = 110 o
Servo 2 = 90 o
Servo 3 = 110 o
Garis 1 2 Garis 2 3
Servo 1 = 110 o Servo 1 = 110 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 90 o Servo 3 = 100 o
Garis 3 4 Garis 4 3
Servo 1 = 90o Servo 1 = 110 o
Servo 2 = 90o Servo 2 = 90 o
Servo 3 = 90o Servo 3 = 90 o
Garis 3 5 Garis 5 6
Servo 1 = 110 o Servo 1= 9 0 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 110 o Servo 3 = 110 o
1 2
6 3
5 4
1
4 3
2 1
2
1 2
34
5 6
1 2
34
56
1 2
34
5 6
1 2
34
56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Tabel 3.7.(lanjutan) Gerak sudut motor servo
Angka Pergerakan motor servo (dalam derajat)
Garis 1 2 Garis 2 3
Servo 1 = 90 o Servo 1 =110 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 100 o Servo 3 = 100 o
Garis 3 4 Garis 4 5
Servo 1 =110 o Servo 1 = 110 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 90 o Servo 3 = 110 o
Garis 1 2 Garis 2 3
Servo 1 = 70 o Servo 1 = 70 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 90 o Servo 3 = 100 o
Garis 3 4 Garis 4 5
Servo 1 = 90 o Servo 1 = 90 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 100 o Servo 3 =110 o
Garis 5 6
Servo 1 = 70 o
Servo 2 = 90 o
Servo 3 =110 o
Garis 1 2 Garis 2 3
Servo 1 = 90 o Servo 1 =110 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 100 o Servo 3 = 100 o
Garis 3 4 Garis 4 5
Servo 1 = 110 o Servo 1 = 90 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 =110 o Servo 3 =110 o
Garis 5 2
Servo 1 = 90 o
Servo 2 = 90 o
Servo 3 =100 o
1
2
4
3
5
2
5
1
43
6
32
45
1 2
3
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Tabel 3.7.(lanjutan) Gerak sudut motor servo
Angka Pergerakan motor servo (dalam derajat)
Garis 1 2
Servo 1 =110 o
Servo 2 = 90 o
Servo 3 = 90 o
Garis 2 3
Servo 1 = 110 o
Servo 2 = 90 o
Servo 3 = 100 o
Garis 1 2 Garis 2 3
Servo 1 =110 o Servo 1 = 110 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 =90 o Servo 3 = 80 o
Garis 3 4 Garis 4 5
Servo 1 = 110 o Servo 1 = 90 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 = 70 o Servo 3 = 70 o
Garis 5 1 Garis 1 6
Servo 1 = 90 o Servo 1 = 90 o
Servo 2 = 90 o Servo 2 = 90 o
Servo 3 =90 o Servo 3 = 100 o
Garis 6 3
Servo 1 = 90 o
Servo 2 = 90 o
Servo 3 = 80 o
Garis 1 2
Servo 1 = 70 o
Servo 2 = 90 o
Servo 3 = 90 o
Garis 2 3
Servo 1 = 70 o
Servo 2 = 90 o
Servo 3 = 80 o
Garis 3 4
Servo 1 = 90 o
Servo 2 = 90 o
Servo 3 = 80 o
Garis 4 5
Servo 1 = 90 o
Servo 2 = 90 o
Servo 3 = 80 o
32
45
1 2
3
1
1 2
6 3
5 4
1
4 3
2 1
2
5
2 1
43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Gambar 3.23. Flowchart program interrupt lengan robot saat menulis font angka 0
Gambar 3.24. Gambar Font Angka 0 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Gambar 3.25. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 1
Gambar 3.26. Gambar Font Angka 1 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Gambar 3.27. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 2
Gambar 3.28 Gambar Font Angka 2 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
Gambar 3.29. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 3
Gambar 3.30. Gambar Font Angka 3 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Gambar 3.31. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 4
Gambar 3.32. Gambar Font Angka 4 yang Ditulis Oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Gambar 3.33. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 5
Gambar 3.34. Gambar Font Angka 5 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Gambar 3.35. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 6
Gambar 3.36. Gambar Font Angka 6 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Gambar 3.37. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 7
Gambar 3.38. Gambar Font Angka 7 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
Gambar 3.39. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 8
Gambar 3.40. Gambar Font Angka 8 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Gambar 3.41.. Flowchart Program Interrupt Lengan Robot Saat Menulis Font Angka 9
Gambar 3.42. Gambar Font Angka 9 yang Ditulis oleh Lengan Robot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
3.9.3. Flowchart Program Pengenalan Bentuk Font Angka pada
MATLAB
Program image processing diproses oleh software MATLAB. Cara kerja proses
secara keseluruhan yaitu mula-mula webcam harus dikenali terlebih dahulu oleh software
MATLAB. Setelah dikenali maka langkah selanjutnya yaitu mengambil gambar RGB
benda yang akan dikenali dan menonaktifkan webcam. Ketika gambar telah di capture,
maka langkah selanjutnya yaitu merubah gambar RGB tersebut menjadi gambar
grayscale agar gambar lebih mudah untuk diproses. Langkah selanjutnya yaitu proses
croping (pemotongan), proses ini berfungsi untuk menentukkan bagian citra yang
dibutuhkan untuk proses selanjutnya sehingga untuk bagian citra yang tidak dibutuhkan
akan dipotong atau dihilangkan.
Setelah croping, maka selanjutnya merubah ukuran piksel gambar menjadi lebih
rendah. Hal ini berfungsi untuk merubah ukuran matrik gambar baik horizontal maupun
vertikal agar mudah untuk diamati perbedaan antar masing-masing gambar yang akan
dikenali. Matrik yang telah diubah ukurannya kemudian harus dijadikan matrik real agar
memiliki nilai-nilai yang sesungguhnya dari sebuah matrik gambar. Setelah semua proses
sudah dilakukan, maka langkah yang paling penting yaitu menjumlahkan matrik baik
secara vertikal maupun horizontal agar memiliki suatu nilai yang digunakan untuk
mereprentasikan nilai suatu gambar.
Karena ingin mengenali suatu font angka, maka harus diperlukan suatu database
agar benda dapat dikenali. Database yang telah disimpan dalam format .mat kemudian
dipanggil agar data-data yang terkandung didalamnya dapat digunakan untuk mengenali
suatu bentuk benda. Cara selanjutnya yaitu menggunakan fungsi jarak euclidean, hal ini
bertujuan untuk mencari selisih nilai penjumlahan matrik vertikal maupun horizontal
gambar yang ingin dikenali dengan gambar yang terdapat pada database. Setelah
mendapatkan suatu nilai akhir dari selisih masing-masing gambar, maka selanjutnya
menentukan selisih yang paling terkecil dari nilai-nilai yang telah diperoleh. Kemudian
benda akan dikenali dan ditampilkan seperti yang ditunjukan pada gambar 3.43.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
Gambar 3.43. Flowchart Pengenalan Bentuk Font Angka pada MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
BAB IV
HASIL DAN PEMBAHASAN
Bab ini berisi tentang pengujian sistem pengenalan, gambar fisik hardware yang
dibuat, hasil pengujian sistem, pembahasan data yang diperoleh. Pengujian sistem perlu
dilakukan untuk mengetahui apakah suatu sistem telah bekerja dan berjalan sesuai
perancangan. Data-data hasil pengujian sistem yang telah dirancang menunjukkan bahwa
sistem berjalan sesuai perancangan. Analisa terhadap proses kerja sistem dapat digunakan
untuk menarik penyimpulan dari apa yg diperoleh dari analisa.
4.1. Implementasi Lengan Robot
4.1.1. Bentuk Fisik Hardware
Hasil perancangan lengan robot ditunjukan pada Gambar 4.1. dan gambar 4.2.
Lengan robot berwarna putih yang memiliki 3 buah servo Servo adalah Towerpro 946R
mengacu pada subbab 2.16.
Gambar 4.1 Lengan Robot Tampak Atas Gambar 4.2 Lengan Robot Tampak Samping
4.1.2. Sistem Elektronik
Sistem elektronik terdiri dari rangkaian regulator dan penguat arus ,minimum
sistem mikrokontroler, dan LCD. Rangkaian regulator dan penguat arus, minimum sistem
mikrokontroler dan LCD ditunjukan pada gambar 4.3. dan gambar 4.4. Berikut secara
urutan rangkaian minimum sistem, LCD dan regulator
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Gambar 4.3. Minimum System Gambar 4.4. Regulator
4.1.3. Bentuk Fisik webcam dan tempat peletakan gambar font angka
Bentuk fisik webcam dan tempat peletakan gambar font angka dibuat
sesuai perancangan seperti pada gambar 4.5 dibawah ini.
Gambar 4.5. Webcam dan Tempat Peletakan Gambar Font Angka
4.1.4. Bentuk Nyata Gambar Font Angka
Gambar font angka dicetak pada kertas ivory dengan ukuran yang
sesuai dengan perancangan. Bentuk nyata gambar font angka seperti
ditunjukan pada gambar 4.6 berikut ini.
Gambar 4.6. Bentuk Nyata Gambar Font Angka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
4.1.5. Pengaturan Lengan Robot
Lengan robot akan bergerak sesuai perintah dari mikrokontroler pada minimum
sistem. Hal tersebut terjadi karena adanya program yang tertanam pada mikrokontroler.
Mikrokontroler yang digunakan adalah ATmega32 sesuai dengan perancangan.
Mikrokontroler diprogram untuk melakukan komunikasi, dan menggerakan servo pada
lengan robot. Gerbang-gerbang pada mikrokontroler yang akan digunakan dalam
pemrograman untuk mengeksekusi kerja lengan robot ditunjukkan pada Tabel 4.1.
Tabel 4.1 Tabel Fungsi Saluran Mikrokontroler
Saluran Kegunaan
PORTB.0 Pengaturan sudut pada servo 1
PORTB.1 Pengaturan sudut pada servo 2
PORTB.2 Pengaturan sudut pada servo 3
Program pada mikrokontroler berisi inisialisasi data program dan program intinya.
Pada inisialisasi data program dilakukan pengaturan data-data awal seperti pendeklarasian
data dan pengaturan nilai-nilai. Program dibuat dengan aplikasi CodeVision AVR. Program
yang digunakan adalah program untuk komunikasi serial menggunakan USART dan
program pengendali motor servo menggunakan fasilitas interrupt.
4.1.6. Pengendalian Komunikasi USART
Pada bagian ini membahas program yang berfungsi sebagai komunikasi serial
USART untuk mengkomunikasikan antara laptop yang digunakan dengan mikrokontroler
Atmega 32. Program pengendalian komunikasi USART ditulis sebagai berikut:
int a;
unsigned char b[16];
void komunikasi()
{
a=getchar();
lcd_gotoxy(0,0);
sprintf(b,"komunikasi= %d" ,a);
lcd_puts(b);
delay_ms(100);
lcd_clear();delay_ms(10);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Pada tahap komunikasi serial baudrate yang digunakan bernilai 9600bps. Fungsi “
getchar()” yaitu untuk menerima karakter dari laptop agar mikrokontroler dapat menerima
pada saat mengirimkan karakter yang mendefinisikan perintah setiap kondisi atau
pemanggilan fungsi pada karakter. Sedangakn fungsi “putchar()” yaitu untuk mengirimkan
suatu karakter kepada laptop agar dapat memulai proses pengenalan font angka.
4.1.7. Pengendalian Motor Servo
Program pengendali motor servo menggunakan interrupt timer0 sebagai
pembangkit pulsa untuk menggerakan motor servo. Listing program pengendali sudut putar
motor servo sebagai berikut :
Listing program di atas adalah penyetingan port yang digunakan motor servo.
Kodisi nilai i++ artinya adalah timer mulai mencacah dari 0 hingga 255, jika lebih dari itu
maka timer overflow dan mulai mengaktifan PWM. Nilai 864 adalah nilai overflow selama
perioda motor servo yaitu 20ms.Kemudian pemberian logika high pada tiap port, jika
kondisi nilai i lebih kecil dari pada nilai variabel data1 (servo1), data2 (servo2), data3
(servo3), sehingga mulai memberikan pulsa agar motor servo bergerak dan logika low jika
kondisinya tidak terpenuhi maka portb akan direset.
#define servo1 PORTB.0
#define servo2 PORTB.1
#define servo3 PORTB.2
signed int i=0,data1=0,data2=0,data3=0;
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
i++;
}
if (i>864){i=0;}
else
{
if (i<data1){servo1=1;}
else{servo1=0;}
if (i<data2) {servo2=1;}
else{servo2=0;}
if (i<data3){servo3=1;}
else{servo3=0;}
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
Pada program ini berfungsi untuk memberikan nilai OCR untuk menentukan sudut
yang diinginkan sesuai kondisi. Program diatas salah satu kondisi lengan robot pada
kondisi siaga. Program ditulis sebagai berikut:
Program diatas merupakan program penulisan angka 1 Untuk mempermudah dalam
penentuan tahapan sudut motor servo, digunakan fungsi “for” untuk mencacah nilai OCR
secara satu per satu. Setiap tahap diberikan fungsi “for” dan diberi “delay” supaya
pergerakan lengan robot lebih halus dan pelan. Program pengulisan angka 1 mengacu
pada flowchart 3.30. Program pergerakan lainnya dapat di lihat pada Lampiran (L37)
void siaga_robot()
{
data1=64; //90
delay_ms(100);
data2=69; //80
delay_ms(100);
data3=75; //90
delay_ms(100);
}
void angka_satu()
{
//12
data1=64; //90
delay_ms(100);
data2=69; //90
delay_ms(100);
for (data3=75;data3<=80;data3++) //100
{
delay_ms(100);
};
//mundur
for (data2=69;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
for (data3=72;data3<=76;data3++) //100
{
delay_ms(100);
};
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
4.2. Implementasi GUI Matlab dan Program Pengenalan Font Angka
Pengujian aplikasi dilakukan bertujuan untuk mengetahui apakah sistem yang telah
dirancang berjalan sesuai perancangan. Pengujian program dilakukan dengan spesifikasi
sebagai berikut:
Processor : Intel Core i5
RAM : 2 GB
Windows : 7
GUI dibuat supaya dapat mempermudah user dalam menggunakan aplikasi
penelitian ini. Terdapat beberapa komponen yang dapat digunakan untuk mengeksekusi
atau menampilkan perintah. Komponen tersebut dapat diprogram sehingga user dapat lebih
mudah dalam mengeksekusi aplikasi tersebut. Hasil pembuatan GUI ditunjukan pada
Gambar 4.7:
Gambar 4.7. Tampilan GUI Program Pengenalan
Pada tampilan GUI digunakan tools pada Matlab seperti axes, pop_upmenu, text,
dan pushbutton. User dapat menjalankan program pengenalan angka dengan mengisi
pengaturan user, “PILIH PORT” dan “FONT TULISAN” pada pop up menu yang akan
diproses untuk pengenalan gambar font angka. Setelah selesai memilih pengaturan yang
diinginkan, program bisa dijalankan dengan menekan tombol MULAI apabila user tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
contents = get(hObject,'Value'); switch contents case 1 handles.PORT='COM15'; case 2 handles.PORT='COM16'; 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';
melakukan pengaturan pada variasi nilai yang terdapat pada aplikasi GUI maka program
tidak bisa dijalankan. HASIL scan gambar font angka akan ditampilkan pada axes HASIL
SCAN FONT ANGKA, nilai penjumlahan biner akan ditampilkan pada edit text NILAI
BINER dan hasil pencocokan dengan table look up akan ditampilkan pada edit text
ANGKA seperti pada gambar 4.5. Tombol pushbutton KELUAR digunakan jika user ingin
menyelesaikan program dan keluar dari tampilan utama program pengenalan gambar font
angka.
4.2.1. Pop Up Menu
Pada aplikasi pengenalan ini terdapat dua macam pop up menu untuk meleakukan
pengenalan gambar font angka yaitu “PILIH PORT” dan “FONT TULISAN”. Pop up
menu “PILIH PORT” berfungi untuk menentukan pada port mana usb to ttl tersambung
dengan nilai variasi 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15. Dan pop up menu “FONT
TULISAN” berfungi untuk memilih jenis font apa yang akan di scan dengan nilai variasi
1;2;3. Program variasi pop up menu “PILIH PORT” akan dituliskan seperti berikut:
Pada program pop up menu satu digunakan untuk variasi user dengan variasi
1;2;3;4;5;6;7;8;9;10;11;12;13;14;15. Inisialisasi tiap nilai dengan variabel “port” kemudian
diubah menjadi “COM” dengan menggunakan fungsi “handles” .
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
contents = get(hObject,'Value'); switch contents case 1 handles.FONT=1; case 2 handles.FONT=2; case 3 handles.FONT=3; end guidata(hObject,handles);
%proses inisialisasi webcam
Imaqhwinfo;
vid=videoinput('winvideo',1,'RGB24_320x240');
%proses capture gambar gambar=getsnapshot(vid);
%proses merubah ke grayscale grey=rgb2gray(gambar);
Pada program pop up menu dua diguanakan untuk variasi nilai “FONT TULISAN”
dengan nilai 1;2;3. Inisialisasi tiap nilai dengan variabel “contents” kemudian diubah
menjadi “FONT” menggunakan fungsi “handles” . Proses ini sama dengan program popup
menu sebelumnya. Program variasi pop up menu “FONT TULISAN” akan dituliskan
seperti berikut:
4.2.2. Tombol Mulai
Tombol “MULAI” merupakan tombil yang berfungsi untuk melakukan pengenalan
gambar font angka mulai dari inisialisasi webcam, pengambilan gambar, mengubah gambar
ke grayscale, normalisasi, mengubah gambar grayscale menjadi gambar biner, cropping,
resizeing, menjumlahkan nilai biner, mencocokan dengan table look up, penentuan hasil
keluaran pada GUI dan pengiriman data serial menuju mikrokontroler.
Penulisan program untuk melakukan inisialisasi webcam capture gambar dan
merubah k grayscale ditulis secara berurut sebagai berikut.
case 13 handles.PORT='COM27'; case 14 handles.PORT='COM28'; case 15 handles.PORT='COM29'; end guidata(hObject,handles);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
%proses normalisasi greycale grey=double(grey); grey=grey/(max(max(grey)));
%proses merubah ke biner biner=im2bw(grey);
%croping crop=imcrop(biner,[124.51 36.51 83.98 104.98]);
%proses resizing y=imresize(crop,[64 32]); c=double(y);
Perintah program “imaqhwinfo” adalah perintah program untuk menampilkan
informasi yang akan disampaikan oleh webcam dan kemudian informasi tersebut akan
diinisialisasi ke dalam program. Hal ini bertujuan agar antara webcam dengan software
Matlab dapat melakukan komunikasi. Informasi yang tampil adalah adaptor kamera,
portwebcam, jenis warna dan resolusi piksel.
Berkut ini adalah program normalisasi grayscale, merubah grayscale ke biner,
cropping, resizeing menjumlahkan semua data biner, dan ditampilkan pada axes. dituliskan
ditulis secara berurut sebagai berikut.
perintah program normalisai adalah untuk membuat nilai grayscale menjadi
maksimum yaitu 1, setelah itu gambar grayscale diubah menjadi gambar biner, kemudian
proses cropping atau pemotongan gambar. Hal ini bertujuan untuk menghilangkan
background atau latar belakang yang tidak dibutuhkan untuk diproses. Dan resizeing
berfungsi untuk mengubah ukuran factor skala untuk mempertahankan aspek rasio gambar.
Seelah itu menghitung dan menjumlahkan semua pixel, dan ditampilakn pada axes.
Berikut ini merupakan program range table look up untuk tiap font angka.
%forte if (handles.FONT==1) if ((data>=846)&&(data<=855)) set(handles.edit1, 'string', 'ANGKA NOL'); guidata(hObject,handles); fprintf(komunikasi,'0'); guidata(hObject,handles);
elseif ((data>=535)&&(data<=545)) set(handles.edit1, 'string', 'ANGKA SATU'); guidata(hObject,handles); fprintf(komunikasi,'1'); guidata(hObject,handles);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
elseif ((data>=685)&&(data<=700)) set(handles.edit1, 'string', 'ANGKA EMPAT'); guidata(hObject,handles); %fprintf(komunikasi,'4'); guidata(hObject,handles);
elseif ((data>=795)&&(data<=810)) set(handles.edit1, 'string', 'ANGKA LIMA'); guidata(hObject,handles); %fprintf(komunikasi,'5'); guidata(hObject,handles);
elseif ((data>=835)&&(data<=845)) set(handles.edit1, 'string', 'ANGKA ENAM'); guidata(hObject,handles); %fprintf(komunikasi,'6'); guidata(hObject,handles);
elseif ((data>=670)&&(data<=690)) set(handles.edit1, 'string', 'ANGKA TUJUH'); guidata(hObject,handles); %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
%harrington 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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
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); %fprintf(komunikasi,'6'); 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
%segoe script 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))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
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);
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
4.2.3. Tombol Keluar
Tombol “KELUAR” berfungsi untuk menutup progam aplikasi pengenalan gambar
font angka. Program tombol “KELUAR” dituliskan sebagai berikut :
Berdasarkan pengujian, tombol “KELUAR” dapat berjalan sesuai perancangan.
Ketika Tombol “KELUAR” ditekan maka GUI pengenalan gambar font angka akan
ditutup.
4.3. Pengujian Sudut Motor Servo
Berdasarkan data pengujian sudut motor servo yang diukur menggunakan busur
derajat, didapat nilai OCR seperti pada tabel 4.2. dibawah ini dengan mengacu lampiran
(L6). Pengujian sudut dilakukan dengan melihat nilai OCR pada masing-masing sudut
motor servo yang dilakukan setiap 10o yang akan dibandingkan dengan perhitungan secara
teori.
Tabel 4.2. Nilai OCR Pada Pergerakan 10 Derajat Motor Servo
NO Sudut (derajat) Nilai OCR
1 0 29
2 10 33,44
3 20 37,8
4 30 42,3
5 40 46,7
6 50 51,2
7 60 55,6
8 70 60
9 80 64,52
10 90 69
11 100 75,3
12 110 80,66
13 120 85
14 130 89,33
15 140 93,66
16 150 98
17 160 102,3
18 170 106,66
19 180 111
guidata(hObject,handles); close all; clear all;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Dari nilai OCR pada tabel 4.2 terdapat perbedaan antara teori dengan pengujian.
Pada tabel 3.2 menunjukan nilai OCR pada saat sudut 00
yaitu 43,20,sedangakan sudut 90o
nilai OCR yang didapat yaitu 64,8, dan pada sudut 180o nilai OCR yang didapat yaitu
86,40.
Pada saat pengujian nilai OCR terdapat perbedaan pada saat sudut 0o nilai OCR
yang didapat yaitu 29, sedangkan sudut 90o nilai OCR yang didapat yaitu 69, dan pada
sudut 180o nilai OCR yang didapat yaitu 111. Untuk mengetahui lebar pulsa, maka dapat
dihitung menggunakan persamaan 2.2 dan persamaan 2.3. Digunakan T sebesar 0,090422
x 10-6
dan prescaler sebesar 1.
Tabel 4.3. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R
SUDUT Nilai OCR Lebar Pulsa Error (%)
0o 29 0,671 ms 32,87%
90o 69 1,59 ms 6,48%
180o 111 2,57 ms 28,47%
Berdasarkan tabel 4.3. maka dapat dianalisa bahwa terdapat perbedaan nilai OCR
mengakibatkan perbedaan pada lebar pulsa. Pada Tabel 4.3 menunjukan lebar pulsa pada
saat 00 didapatkan 0,671 jika dibandingan dengan teori pada tabel 3.2 didapatkan error
sebesar 32,87 %. Terjadi error dikarenakan setiap motor memiliki karakteristik yang
berbeda-beda sesuai dengan jenisnya menyebabkan nilai OCR dan lebar pulsa berbeda.
4.4. Pengujian Untuk Tingkat Pengenalan Gambar Font Angka
Pengujian pengenalan gambar font angka dilakukan dengan dua cara yaitu secara
real time dan secara tidak real time. Pengujian secara tidak real time dilakukan dengan
cara mengcapture gambar font angka tanpa mengkomunikasikan dengan mikrokontroler
untuk mendapatkan data yang akan digunakan untuk membuat range pada table look up.
Setelah mendapatkan data untuk range table look up data akan dimasukan kedalam
program dan digunakan untuk pengujian secara realtime. Pengujian secara realtime
dilakukan setelah tidak ada error saat pengambilan data range table look up. Setelah data
diproleh tanpa error maka hasil capture dari webcam bisa langsung dikenali oleh
computer, dan kemudian computer mengirimkan karakter berupa angka 0 sampai 9 ke
mikrokontroler untuk membuat perintah menulis angka pada media tulis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
4.4.1. Pengujian Pengenalan Gambar Font Angka Secara Tidak Real
Time
Seperti yang telah dijelaskan sebelumnya, percobaan pengenalan secara tidak
realtime ini dilakukan dengan cara mengcapture gambar font angka tanpa
mengkomunikasikan dengan mikrokontroler untuk mendapatkan data yang akan digunakan
untuk membuat range pada table look up. Proses pengambilan data secara tidak realtime
dilakukan dengan mengubah imresize pada progam pengenalan font angka untuk
mendapatkan data yang tidak ada error sehingga bisa digunakan untuk membuat range
table look up. Imresize yang digunakan yaitu imresize [16 8], imresize [32 16], imresize [64
32], setelah semua data telah didapatkan lalu data dibandingkan untuk mendapatkan range
table look up tanpa error
Berikut ini merupakan range tabel look up yang di buat sesuai dari data yang
diambil.
Tabel 4.4. Tabel range tabel look up
Tabel 4.4 merupakan range untuk tabel look up yang akan dimasukan kedalam
program pengenalan gambar font angka. Range pada tabel diatas merupakan hasil dari
pengambilan data dengan menggunakan imresize [64 32]. Bedasarkan pengambilan data
yang sudah dilakukan imresize [64 32] memiliki kesetabilan data yang lebih bagus.
Dibawah ini merupakan hasil percobaan pengambilan data secara tidak real time
dengan menggunakan imresize yang berbeda beda untuk mendapatkan hasil yang bagus
dan akan digunakan untuk membuat range tabel look up.
Angka Font Angka
Fotre harrington seoge script
0 846-855 414-420 490-515
1 535-545 215-220 358-370
2 735-745 380-385 450-460
3 805-814 400-413 461-470
4 685-700 350-375 427-435
5 795-810 386-390 420-427
6 835-845 425-440 443-449
7 670-690 285-300 270-300
8 815-825 441-450 436-442
9 770790 455-465 340-357
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
Berikut merupakan tabel percobaan pengambilan data yang akan di masukan
kedalam range tabel look up. Tabel 4.5, tabel 4.6, tabel 4.7 pengambilan data dengan
menggunakan imresize [16 8]. Tabel 4.8, tabel 4.9, tabel 4.10 pengambilan data dengan
menggunakan imresize [32 16]. Tabel 4.11, tabel 4.12, tabel 4.13 pengambilan data dengan
menggunakan imresize [64 32].
Untuk imresize [16 8]
Tabel 4.5. Tabel data hasil capture font fotre imresize [16 8]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 99 100 99 100 98 99 99 97 101 100
1 55 56 55 55 56 55 56 56 55 55
2 62 62 61 63 62 62 61 61 63 62
3 75 74 73 73 72 75 75 75 74 73
4 96 95 94 95 95 95 96 95 96 94
5 122 123 121 122 122 123 123 122 121 122
6 116 117 115 116 116 115 116 115 117 116
7 53 53 53 54 53 54 52 53 53 54
8 137 138 139 137 135 137 137 135 135 137
9 134 135 133 134 134 132 134 134 134 134
Tabel 4.6. Tabel data hasil capture font harrington imresize [16 8]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 87 87 86 85 85 87 87 86 87 87
1 64 64 65 64 66 66 64 65 64 64
2 57 55 57 56 56 57 57 57 55 58
3 93 93 93 92 94 94 93 92 93 93
4 112 112 113 114 111 112 112 113 113 112
5 96 96 99 95 95 94 97 97 96 96
6 135 134 133 133 132 133 134 135 133 133
7 53 52 53 54 53 54 52 53 53 53
8 126 123 123 124 125 126 126 124 125 125
9 121 122 122 123 123 121 124 123 121 122
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
Tabel 4.7. Tabel data hasil capture font seoge script imresize [16 8]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 89 89 86 88 89 87 87 86 89 88
1 51 51 52 52 53 54 51 51 52 51
2 33 32 31 32 32 34 35 32 32 31
3 65 66 65 67 65 64 64 63 66 67
4 84 85 85 86 84 84 85 88 84 85
5 78 78 77 76 76 75 77 78 78 78
6 108 109 106 109 107 109 106 108 109 109
7 35 35 34 34 33 33 32 33 35 35
8 106 105 104 106 106 104 105 104 106 104
9 63 66 64 65 65 64 66 63 66 66
Untuk imresize [32 16]
Tabel 4.8. Tabel data hasil capture font fotre imresize [32 16]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 242 243 244 245 243 242 243 242 242 242
1 161 163 162 163 161 161 163 162 162 161
2 189 188 187 188 189 189 188 187 186 187
3 204 204 205 206 202 204 204 205 205 204
4 223 224 223 223 221 223 223 222 224 223
5 201 200 202 200 201 203 200 202 201 200
6 242 243 242 243 241 243 242 243 243 244
7 161 162 162 163 165 163 162 163 163 163
8 264 264 266 263 265 266 265 264 266 265
9 233 233 234 234 232 231 231 234 234 233
Tabel 4.9. Tabel data hasil capture font harrington imresize [32 16]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 218 217 216 217 218 218 217 218 216 215
1 134 135 135 135 135 134 134 135 135 134
2 168 167 165 167 167 168 168 167 165 167
3 157 156 156 157 158 158 156 156 157 158
4 187 186 187 186 189 187 186 187 187 187
5 164 165 164 167 165 164 165 167 168 164
6 158 158 157 156 153 158 157 157 154 157
7 124 123 123 121 122 121 123 124 124 124
8 211 212 211 213 214 212 212 211 212 213
9 194 195 196 197 198 197 194 194 195 192
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Tabel 4.10. Tabel data hasil capture font seogoe script imresize [32 16]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 242 243 241 243 245 245 243 243 241 243
1 135 134 132 133 134 135 135 134 132 131
2 245 246 243 241 245 246 243 245 244 253
3 157 156 156 157 158 158 156 156 157 158
4 217 216 214 215 215 214 216 214 217 214
5 246 245 244 244 243 246 245 243 243 243
6 250 251 254 253 253 251 249 253 251 250
7 187 186 186 185 183 182 187 187 185 184
8 221 222 223 222 224 221 221 225 224 221
9 184 185 183 186 186 187 185 183 187 185
Untuk imresize [64 32]
Tabel 4.11. Tabel data hasil capture font fotre imresize [64 32]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 828 829 827 826 829 829 828 826 826 828
1 535 534 532 533 535 535 534 537 537 536
2 729 730 726 727 725 723 727 727 730 725
3 815 816 817 809 817 809 806 805 807 808
4 689 699 697 695 696 698 699 694 698 697
5 679 677 676 676 675 674 678 675 677 674
6 842 843 843 842 845 842 836 837 837 836
7 679 677 676 676 677 678 679 675 674 674
8 835 821 824 826 825 823 834 825 826 825
9 781 775 774 773 772 773 775 770 771 772
Tabel 4.12. Tabel data hasil capture font hanrrington imresize [64 32]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 415 413 415 412 411 416 415 412 415 412
1 217 216 219 216 219 217 215 216 217 218
2 380 383 382 384 385 382 383 384 384 382
3 404 403 402 403 401 402 402 405 404 403
4 356 357 356 355 353 356 354 356 353 356
5 393 395 397 398 399 392 394 393 396 394
6 429 426 427 428 429 429 427 426 430 428
7 304 305 306 301 302 303 302 301 302 302
8 456 457 456 455 456 454 453 456 457 458
9 456 458 549 456 458 456 454 458 459 460
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
Tabel 4.13. Tabel data hasil capture font segoe script imresize [64 32]
ANGKA PENGAMBILAN DATA KE-
1 2 3 4 5 6 7 8 9 10
0 500 501 506 505 507 508 504 503 500 507
1 366 363 362 364 363 366 365 362 364 362
2 459 460 461 459 462 455 457 457 459 457
3 464 465 461 464 464 465 462 467 465 466
4 426 425 428 427 426 425 427 423 425 425
5 425 428 427 426 426 427 425 425 426 427
6 445 446 444 443 444 445 446 443 445 444
7 288 289 291 288 289 287 289 288 289 287
8 440 443 443 441 439 443 445 446 445 446
9 352 354 352 352 352 352 350 351 353 354
Dari data-data di atas dapat dilihat bahwa pengenalan terbaik berada pada imresize
[64 32]. Data yang dihasilkan lebih stabil dan range antara font angka tidak berdekatan
sehingga lebih memudahkan untuk membuat range untuk table look up. Perbuhaban skala
pada imresize mempengaruhi kesatabilan data yang diambil, semakin besar skala imresize
maka semakin stabil data yang diambil.
4.2.1. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font
angka
Pada proses ini, dilakukan analisa tingkat keberhasilan robot saat proses
pengenalan gambar font angka. Untuk mengenalinya digunakan range data yang sudah
dibikin sesuai ruangan TTL (teknik tenaga listrik) dengan imresize [64 32]. Tetapi jika
warna putih pada gambar font angka terganggu oleh pantulan cahaya ruangan dan
pergeseran webcam maka data yang diambil akan berbeda dengan range table look up yang
sudah di buat.
Pixel pada pengambilan gambar juga memilikai kestabilan yang sangat buruk hal
ini disebabkan oleh pengambilan wecbam yang terlalu jauh dan hasil dari croping dari
program yang menyebabkan pixel yang di capture menjadi tidak stabil.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
Tabel 4.14. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka Fotre
Tabel 4.15. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka
Harrington
PENGUJIAN TINGKAT KEBERHASILAN FONT ANGKA
ANGKA PERCOBAAN KE-
1 2 3 4 5 6 7 8 9 10
0 V V V V V V V V V V
1 X X X X X X X X X X
2 V V X X X X X X V X
3 V V V V V V V V V V
4 V V V V V V V V V V
5 X X X X X X X X X X
6 V V X V V V V V V V
7 V V V V V V V V V V
8 X X X V V V V V V V
9 V V V V V V V V V V
KETERANGAN: V (BERHASIL) X (TIDAK BERHASIL)
PENGUJIAN TINGKAT KEBERHASILAN FONT ANGKA
ANGKA PERCOBAAN KE-
1 2 3 4 5 6 7 8 9 10
0 X X V V V X V X V V
1 V V V V V V V V V V
2 X X X X V V X V X X
3 V X X X X V X V X V
4 X V V V V V V V V V
5 X X X X X X X X X X
6 X X X X X X X X X X
7 X V V V V V V V V V
8 V V V X V V X X V V
9 V V V V V V V V V V
KETERANGAN: V (BERHASIL) X (TIDAK BERHASIL)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
Tabel 4.16. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka
Segoe Script
PENGUJIAN TINGKAT KEBERHASILAN FONT ANGKA
ANGKA PERCOBAAN KE-
1 2 3 4 5 6 7 8 9 10
0 V V V V V V V V V V
1 V V V V V V V V V V
2 V V X X X X X X V X
3 X X X X X X X X X X
4 V V V V V V V V V V
5 X X X X X X X X X X
6 V V X V X V V X V X
7 V V V V V V V V V V
8 X X X V V V V V V V
9 V V V V V V V V V V
KETERANGAN: V (BERHASIL) X (TIDAK BERHASIL)
Berdasarkan tabel 4.14, 4.15, 4.16 dan data pengujian yang diperoleh, masih
banyak terdapat error pada setiap font angka yang dideteksi, hal ini disebebkan karena
jumlah pixel putih antara satu font dengan font lainnya memiliki jumlah yang sama atau
berdekatan. Jadi untuk mencegah jumlah pixel putih antara satu font dengan font lainnya
memiliki jumlah yang sama atau berdekatan salah satu font harus dibuat lebih kecil.
Tabel 4.17. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka Fotre
PENGUJIAN TINGKAT KEBERHASILAN FONT ANGKA
ANGKA PERCOBAAN KE- PERSENTASE
TINGKAT
KEBERHASILAN 1 2 3 4 5 6 7 8 9 10
0 V V V V V V V X V V 90%
1 V V V V V V V V V V 100%
2 V V V V V V X V X V 80%
3 V X V X V V X V X V 60%
4 X V V V V V V V V V 90%
5 V V V V V X V V X V 80%
6 V V V V V V X V V V 90%
7 X V V V V V V V V V 90%
8 V V V X V V V X V V 90%
9 V V V V V V V V V V 100%
PERSENTASE KEBERHASILAN KESELURUHAN 87%
KETERANGAN: V (BERHASIL) X (TIDAK BERHASIL)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
Tabel 4.18. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka
Harrington
PENGUJIAN TINGKAT KEBERHASILAN FONT ANGKA
ANGKA PERCOBAAN KE- PERSENTASE
TINGKAT
KEBERHASILAN 1 2 3 4 5 6 7 8 9 10
0 V V V V V V V V V V 100%
1 V V V V V V X V X V 80%
2 V V V V V V V X V X 80%
3 V V V V V V V V V V 100%
4 V V V V V V V V V V 100%
5 V V V V V V V X V X 80%
6 V V X V V V V V V V 90%
7 V V V V V V V V V V 100%
8 X X X V V V V V V V 70%
9 V V V V V V V V V V 100%
PERSENTASE KEBERHASILAN KESELURUHAN 90%
KETERANGAN: V (BERHASIL) X (TIDAK BERHASIL)
Tabel 4.19. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Gambar Font Angka
Segoe Script
PENGUJIAN TINGKAT KEBERHASILAN FONT ANGKA
ANGKA PERCOBAAN KE- PERSENTASE
TINGKAT
KEBERHASILAN 1 2 3 4 5 6 7 8 9 10
0 V V V V V V V V V V 100%
1 V V V V V V V V V V 90%
2 V V V V V V V X V X 80%
3 V V V V V V V V X X 80%
4 V V V V V V V V V V 100%
5 V V V V V X V V X X 70%
6 V V X V X V V X V X 60%
7 V V V V V V V V V V 100%
8 V V X V V V V X V V 80%
9 V V V V V V V V V V 100%
PERSENTASE KEBERHASILAN KESELURUHAN 86%
KETERANGAN: V (BERHASIL) X (TIDAK BERHASIL)
Hasil dari percobaan Tabel 4.17, tabel 4.18, tabel 4.19 menunjukan hasil yang lebih
baik dari yang sebelumnya, hal ini disebabkan oleh gambar font angka yang nilai pixel
yang berdekatan atau sama dibuat lebih kecil dari gambar font angka yang lainnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
4.4.2. Pengujian Pengenalan Secara RealTime
Pada pengujian secara realtime, pengujian dilakukan dengan mengambil gambar
font angka secara langsung dan akan dikenali oleh program secara realtime. User harus
memilih nilai jenis port, dan font angka. Gambar font angka yang digunakan sebanyak 3
yang terdiri dari fotre, Harrington, segoe script yang sudah ditentukan. Setelah semuanya
diisi dengan benar maka program bisa dijalankan. Pengujian dilakukan sebanyak 10 kali
tiap ucapan katanya dengan dasar bahwa 10 kali pengujian dengan mampu mewakili
keberhasilan program pengenalan ucapan angka untuk berjalan dengan baik. Pengujian
secara realtime ini menggunakan range tabel look up yang sudah dibuat dengan mengacu
pada pengujian secara tidak realtime. Pengujian dengan 3 macam gambar font angka ini
untuk melihat range tabel look up dengan tingkat error terkecil ketika secara realtime.
4.5. Hasil Pengujian Tulisan dari Lengan Robot
Dari hasil pengujian tulisan pada lengan robot, didapatkan sesuai dengan gambar
4.8a-b. Pada penggambaran angka tidak terpaku dengan panjang garis atau besarnya dari
tulisan. Alat hanya diharapkan bisa membentuk angka sesuai dengan pengenalan suara
yang dikenali. Dari bentuk angka yang ditulis, terdapat angka yang tertulis miring karena
kemampuan alat menulis belum sempurna, karena pada dasarnya lengan robot bergerak
secara parabola. Karena dalam menggerakkan servo satu-persatu tidak secara bersamaan.
Sehingga membentuk garis dengan terputus-putus.
Gambar 4.8a. Bentuk Hasil Penulisan Angka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
Gambar 4.8b. Bentuk Hasil Penulisan Angka
Pada gambar 4.8a dan gambar 4.8b merupakan gambar font angka yang ditulis oleh
lengan robot. Penulisasn font yang dilakukan oleh lengan robot masih kurang sempurna hal
ini disebabkan oleh gripper lengan robot yang masih perlu ada perubahan dan
penyempurnaan supaya penulisan yang akan dilakukan oleh lengan robot lebih sempurna.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil pengujian serta pengambilan data pada aplikasi pengenalan angka
menggunakan webcam untuk lengan robot penulis angka, dapat diambil kesimpulan:
1. Pengenalan angka yang dibangum memiliki keberhasilan 87,67%.
2. Penulisan font angka yang ditulis oleh lengan robot masih tidak persis dengan
bentuk font angka yang direncanakan
5.2. Saran
Saran-saran bagi pengembangan selanjutnya adalah:
1. Memberikan tambahan variasi font angka bisa lebih banyak lagi sehingga bisa
mendeteksi semua jenis font angka.
2. Menggunakan metode lain untuk mendeteksi font angka supaya tidak terjadi
banyak error.
3. Lengan robot dibuat lebih baik lagi agar pergerakan menjadi fleksibel dan
jarak jangkauan menjadi lebih luas.
4. Pergerakan lengan robot masih kurang baik dalam penulisan font angka yang
ditulis dan masih perlu perbaikkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
DAFTAR PUSTAKA
[1] Arismarjito, R., 2011, Robot Lengan Otomatis Sebagai Pemisah Barang Berdasarkan
Warna dengan Menggunakan ATmega8535, Universitas Sanata Dharma Yogyakarta.
[2] Asto wicaksono., 2013, Pengenalan Huruf Plat Nomor Kendaraan Bermotor Roda Dua
Secara Real Time Menggunakan Metode Ekstraksi Ciri Pengaburan Dan Peraturan Blok,
Universitas sanata dharma.
[3] Suyantoro, F.S., 2010, Robotika – Teori dan implementasinya, 1st ed, C.V ANDI
OFFSET, Yogyakarta.
[4] Pitowarno, E., 2006, ROBOTIKA : Desain, kontrol, dan kecerdasan Buatan, 1st ed, C.V
ANDI OFFSET, Yogyakarta.
[5] Sumbodo, W., 2008, Jilid 3, Teknik Produksi Mesin Industri, Direktorat Pembinaan
Sekolah Menengah Kejuruan, Dirjen Manajemen Pendidikan Dasar dan Menengah, Hak
Cipta Depdiknas.
[6] ---, 2014, Data sheet Mikrokontroler Atmega8535, Atmel
[7] Bejo, A., 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler
ATMEGA8535, 1st ed, GRAHA ILMU, Yogyakarta.
[8] Winoto, A., 2002, Mikrokontroler AVR ATEMEGA8/32/8535 dan Pemrogramannya
dengan Bahasa C pada WinAVR, INFORMATIKA, Bandung.
[9] Heryanto M.A., ST., Ir. Wisni Adi P., 2008, Pemrograman Bahasa C untuk
Mikrokontroler ATMEGA8535, 1st ed, C.V ANDI OFFSET, Yogyakarta.
[10] Adrianto, H., 2008, Pemrograman Mikrokontroler AVR ATMEGA 16, 1st ed,
INFORMATIKA, Bandung.
[11] http://www.electroniclab.com, diakses 27 November 2014.
[12] http://www.parralax.com/motor servo, diakses 27 November 2014.
[13] http://informatika.stei.itb.ac.id/~rinaldi.munir/Buku/Pengolahan%20Citra%20Digital/Bab-
11_Citra%20Biner.pdf diakses 10 mei 2015.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
[14] http://depokinstruments.com/2010/02/08/teknik-pengendalian-lcd-karakteri/#more-585,
diakses tanggal 27 November 2014.
[15] Laksmito, B., 2010, Pengertian webcam dan jenis – jenisnya,
http://shaleholic.com/pengertian-webcam-dan-jenisnya, diakses 27 November 2014.
[16] Alfatah, H., 2007, Konversi Format Citra RGB ke Grayscale Menggunakan Visual Basic,
STMIK AMIKOM Yogyakarta.
[17] Matlab, 2012, Cara Crop Gambar, http://matlab-cara-crop-gambar.html, diakses 1
Desember 2014
[19] Erwi, J., 2010, Pembuatan Perangkat Lunak Menggunakan Paradigma Perangkat Lunak
Secara Waterfall, UNIKOM.
[20] Honeycutt, R.A., 1988, Op Amps and Linear Integrated Circuits, Delmar Publishers Inc.,
New York.
[21] http://www.fairchildsemi.com/regulator7805, diakses 27 November 2014.
[22] ----, 2002, Data Sheet Transistor 2N3904, KEC.
[22] Fathoni, 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass Element Transistor NPN
dan PNP, Politeknik Negeri Malang.
[23] Budiharto, W., 2008, Panduan Praktikum Mikrokontroler AVR ATmega16, PT Elex
Media Komputindo, Jakarta.
[24] http://thesis.binus.ac.id/Doc/Bab2/, diakses 1 Desember 2014
[25] www.modmypi.com/mg996r-servo-motor, diakses 29 November 2014.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
Rangkaian Regulator
Rangkaian Sensor Photodioda
Rangkaian Minimum System Atmega8535
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
Spesifikasi Servo Towerpro MG946R [17]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
Spesifikasi Servo Towerpro SG90 [26]
Spesifikasi Webcam Logitech C270h [15]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L4
Datasheet Transistor 2N3904[22]
Datasheet Transistor 2N3055 [29]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
Listing Program CVAVR
/*****************************************************
Project :
Version :
Date : 6/20/2015
Author :
Company :
Comments:
Chip type : ATmega32
Program type : Application
AVR Core Clock frequency: 11.059200 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
*****************************************************/
#include <mega32.h>
// Alphanumeric LCD Module functions
#include <alcd.h>
// Standard Input/Output functions
#include <stdio.h>
#define servo1 PORTB.0
#define servo2 PORTB.1
#define servo3 PORTB.2
signed int i=0,data1=0,data2=0,data3=0;
int a;
unsigned char b[16];
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
if (i>864)
{i=0;}
else
{i++;}
if (i<data1)
{servo1=1;}
else
{servo1=0;}
if (i<data2)
{servo2=1;}
else
{servo2=0;}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
if (i<data3)
{servo3=1;}
else
{servo3=0;}
}
// Declare your global variables here
#include <delay.h>
void komunikasi()
{
a=getchar();
lcd_gotoxy(0,0);
//sprintf(b,"komunikasi= %d" ,a);
lcd_puts(b);
delay_ms(3000);
lcd_clear();delay_ms(10);
}
void siaga_robot()
{
data2=69;
delay_ms(100);
data1=64; //90
delay_ms(100);
data3=75; //80
delay_ms(100);
}
void siaga2_robot()
{
data1=64; //90
delay_ms(100);
data2=50; //90
delay_ms(100);
data3=75; //80
delay_ms(100);
}
void angka_nol()
{
//12
for (data1=64;data1<=69;data1++)
{
delay_ms(100);
};
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
data2=69; //90
delay_ms(100);
data3=75; //90
delay_ms(100);
//23
data2=70; //90
delay_ms(100);
data1=69; //100
delay_ms(100);
for (data3=75;data3<=80;data3++) //100
{
delay_ms(100);
};
//34
data2=68; //90
delay_ms(100);
for (data1=69;data1>=64;data1--) //90
{
delay_ms(100);
};
data3=80; //90
delay_ms(100);
//41
data2=69; //90
delay_ms(100);
data1=64; //90
delay_ms(100);
for (data3=80;data3>=75;data3--)//90
{
delay_ms(100);
};
//mundur
for (data2=69;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(100);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_satu()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L8
{
//12
data1=64; //90
delay_ms(100);
data2=69; //90
delay_ms(100);
for (data3=75;data3<=80;data3++) //100
{
delay_ms(100);
};
//mundur
for (data2=69;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_dua()
{
//12
for (data1=64;data1<=69;data1++)//100
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=75; //100
delay_ms(100);
//23
data1=69; //100
delay_ms(100);
data2=69; //90
delay_ms(100);
for (data3=75;data3<=78;data3++) //100
{
delay_ms(100);
};
//34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
for (data1=69;data1>=63;data1--)
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=78; //90
delay_ms(100);
//45
data2=70; //90
delay_ms(100);
data1=64; //90
delay_ms(100);
for (data3=78;data3<=81;data3++) //110
{
delay_ms(100);
};
//56
data2=70; //90
delay_ms(100);
for (data1=64;data1<=69;data1++) //100
{
delay_ms(100);
};
data3=81; //110
delay_ms(100);
//mundur
for (data2=70;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_tiga()
{
//12
for (data1=64;data1<=69;data1++)//100
{
delay_ms(100);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L10
};
data2=69; //90
delay_ms(100);
data3=75; //100
delay_ms(100);
//23
data1=69; //100
delay_ms(100);
data2=69; //90
delay_ms(100);
for (data3=75;data3<=78;data3++) //100
{
delay_ms(100);
};
//34
for (data1=69;data1>=64;data1--)
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=78; //90
delay_ms(100);
//43
for (data1=64;data1<=69;data1++)
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=78; //90
delay_ms(100);
//35
data2=71; //90
delay_ms(100);
data1=69; //90
delay_ms(100);
for (data3=78;data3<=81;data3++) //100
{
delay_ms(100);
};
//56
for (data1=69;data1>=64;data1--) //90
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L11
{
delay_ms(100);
};
data2=70; //90
delay_ms(100);
data3=81; //110
delay_ms(100);
//mundur
for (data2=70;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_empat()
{
//12
data1=64; //90
delay_ms(100);
data2=69; //90
delay_ms(100);
for (data3=75;data3<=78;data3++)//100
{
delay_ms(100);
};
//23
for (data1=64;data1<=69;data1++) //100
{
delay_ms(100);
};
data2=69 ; //90
delay_ms(100);
data3=78; //100
delay_ms(100);
//34
data1=69; //90
delay_ms(100);
data2=69; //90
delay_ms(100);
for (data3=78;data3>=75;data3--)//100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L12
{
delay_ms(100);
};
//35
data2=64; //90
delay_ms(100);
data1=69; //90
delay_ms(100);
for (data3=75;data3<=81;data3++)//100
{
delay_ms(100);
};
//mundur
for (data2=69;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_lima()
{
//12
data2=68; //90
delay_ms(100);
for (data1=64;data1>=60;data1--)
{
delay_ms(100);
};
data3=75; //80
delay_ms(100);
//23
data1=60; //100
delay_ms(100);
data2=68; //90
delay_ms(100);
for (data3=75;data3<=78;data3++) //100
{
delay_ms(100);
};
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L13
//34
data2=62; //90
delay_ms(100);
for (data1=60;data1<=66;data1++)
{
delay_ms(100);
};
data3=78; //90
delay_ms(100);
//45
data2=69; //90
delay_ms(100);
data1=64; //90
delay_ms(100);
for (data3=78;data3<=81;data3++)
{
delay_ms(100);
};
//56
data2=72; //90
delay_ms(100);
for (data1=64;data1>=60;data1--)
{
delay_ms(100);
};
data3=81; //110
delay_ms(100);
//mundur
for (data2=70;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_enam()
{
//12
data1=64; //90
delay_ms(100);
data2=69; //90
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
delay_ms(100);
for (data3=75;data3<=78;data3++) //100
{
delay_ms(100);
};
//23
for (data1=64;data1<=69;data1++) //100
{
delay_ms(100);
};
data2=69 ; //90
delay_ms(100);
data3=78; //90
delay_ms(100);
//34
data2=70; //90
delay_ms(100);
data1=69; //90
delay_ms(100);
for (data3=78;data3<=81;data3++) //100
{
delay_ms(100);
};
//45
data2=67; //90
delay_ms(100);
for (data1=69;data1>=64;data1--)
{
delay_ms(100);
};
data3=81; //110
delay_ms(100);
//56
data2=68; //90
delay_ms(100);
data1=64; //100
delay_ms(100);
for (data3=81;data3>=78;data3--) //100
{
delay_ms(100);
}
//mundur
for (data2=67;data2>=50;data2--)
{
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L15
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_tujuh()
{
//12
for (data1=64;data1<=69;data1++)//100
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=75; //100
delay_ms(100);
//23
data1=69; //100
delay_ms(100);
data2=69; //90
delay_ms(100);
for (data3=75;data3<=81;data3++) //100
{
delay_ms(100);
};
//mundur
for (data2=69;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_delapan()
{
//12
for (data1=64;data1<=69;data1++)//100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L16
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=75; //100
delay_ms(100);
//23
data1=69; //100
delay_ms(100);
data2=69; //90
delay_ms(100);
for (data3=75;data3<=78;data3++) //100
{
delay_ms(100);
};
//34
for (data1=69;data1>=64;data1--)
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=78; //90
delay_ms(100);
//43
for (data1=64;data1<=69;data1++)
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=78; //90
delay_ms(100);
//35
data2=70; //90
delay_ms(100);
data1=69; //90
delay_ms(100);
for (data3=78;data3<=81;data3++) //100
{
delay_ms(100);
};
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L17
//56
data2=70; //90
delay_ms(100);
for (data1=69;data1>=64;data1--) //90
{
delay_ms(100);
};
data3=81; //110
delay_ms(100);
//67
data2=64; //90
delay_ms(100);
data1=64; //90
delay_ms(100);
for (data3=81;data3>=75;data3--)
{
delay_ms(100);
};
//mundur
for (data2=69;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void angka_sembilan()
{
//12
for (data1=64;data1>=60;data1--)
{
delay_ms(100);
};
data2=69; //90
delay_ms(100);
data3=75; //80
delay_ms(100);
//23
data2=71; //90
delay_ms(100);
data1=60; //100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L18
delay_ms(100);
for (data3=75;data3>=70;data3--) //70
{
delay_ms(100);
}
//34
data2=71; //90
delay_ms(100);
for (data1=60;data1<=64;data1++)
{
delay_ms(100);
};
data3=70; //80
delay_ms(100);
//45
data2=69; //90
delay_ms(100);
data1=64; //90
delay_ms(100);
for (data3=70;data3<=79;data3++)
{
delay_ms(100);
};
//mundur
for (data2=69;data2>=50;data2--)
{
delay_ms(100);
};
siaga2_robot();
delay_ms(500);
for (data2=50;data2<=69;data2++)
{
delay_ms(100);
};
}
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
TCCR0=0x01;
TCNT0=0x00;
OCR0=0x00;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L19
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x10;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L20
// D7 - PORTC Bit 7
// Characters/line: 8
lcd_init(16);
// Global enable interrupts
#asm("sei")
while (1)
{
siaga_robot();
delay_ms(500);
komunikasi();
delay_ms(30);
if(a==49)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA SATU");delay_ms(1000);
angka_satu();delay_ms(500);
lcd_clear();delay_ms(10);
}
else if(a==50)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA DUA");delay_ms(1000);
angka_dua();delay_ms(500);
lcd_clear();delay_ms(10);
}
else if(a==51)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA TIGA");delay_ms(1000);
angka_tiga();delay_ms(500);
lcd_clear();delay_ms(10);
}
else if(a==52)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA EMPAT");delay_ms(1000);
angka_empat();delay_ms(10);
lcd_clear();delay_ms(10);
}
else if(a==53)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA LIMA");delay_ms(1000);
angka_lima();delay_ms(10);
lcd_clear();delay_ms(10);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L21
}
else if(a==54)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA ENAM");delay_ms(1000);
angka_enam();delay_ms(10);
lcd_clear();delay_ms(10);
}
else if(a==55)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA TUJUH");delay_ms(1000);
angka_tujuh();delay_ms(10);
lcd_clear();delay_ms(10);
}
else if(a==56)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA DELAPAN");delay_ms(1000);
angka_delapan();delay_ms(10);
lcd_clear();delay_ms(10);
}
else if(a==57)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA SEMBILAN");delay_ms(1000);
angka_sembilan();delay_ms(10);
lcd_clear();delay_ms(10);
}
else if(a==48)
{
lcd_gotoxy(0,1);lcd_putsf("ANGKA NOL");delay_ms(1000);
angka_nol();delay_ms(10);
lcd_clear();delay_ms(10);
}
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L22
Listing Program GUI Matlab
function varargout = FIX(varargin) % FIX M-file for FIX.fig % FIX, by itself, creates a new FIX or raises the existing % singleton*. % % H = FIX returns the handle to a new FIX or the handle to % the existing singleton*. % % FIX('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in FIX.M with the given input arguments. % % FIX('Property','Value',...) creates a new FIX or raises the % existing singleton*. Starting from the left, property value pairs
are % applied to the GUI before FIX_OpeningFcn gets called. An % unrecognized property name or invalid value makes property
application % stop. All inputs are passed to FIX_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only
one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help FIX
% Last Modified by GUIDE v2.5 19-Oct-2015 22:58:33
% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @FIX_OpeningFcn, ... 'gui_OutputFcn', @FIX_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end
if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before FIX is made visible. function FIX_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to FIX (see VARARGIN)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L23
% Choose default command line output for FIX handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes FIX wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = FIX_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) guidata(hObject,handles); %komunikasi=serial(handles.PORT); guidata(hObject,handles); %setting hardware diperlukan %set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopBits',1
,'FlowControl','none'); %membuka port untuk komunikasi %fopen(komunikasi); %pause(0.5);
%proses inisialisasi webcam Imaqhwinfo; vid=videoinput('winvideo',1,'RGB24_320x240');
%proses capture gambar gambar=getsnapshot(vid);
%proses merubah ke grayscale grey=rgb2gray(gambar);
%proses normalisasi greycale grey=double(grey); grey=grey/(max(max(grey)));
%proses merubah ke biner biner=im2bw(grey);
%croping crop=imcrop(biner,[124.51 36.51 83.98 104.98]);
%proses resizing y=imresize(crop,[64 32]); c=double(y);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L24
%menjumlahkan keseluruhan data=sum(sum(c));
%tampilkan pada axes axes(handles.axes1); imshow(crop); set(handles.edit1, 'string', ''); set(handles.edit2, 'string', data); guidata(hObject,handles);
%arial if (handles.FONT==1) if ((data>=846)&&(data<=855)) set(handles.edit1, 'string', 'ANGKA NOL'); guidata(hObject,handles); %fprintf(komunikasi,'0'); guidata(hObject,handles);
elseif ((data>=535)&&(data<=545)) set(handles.edit1, 'string', 'ANGKA SATU'); guidata(hObject,handles); %fprintf(komunikasi,'1'); guidata(hObject,handles);
elseif ((data>=735)&&(data<=745)) set(handles.edit1, 'string', 'ANGKA DUA'); guidata(hObject,handles); %fprintf(komunikasi,'2'); guidata(hObject,handles);
elseif ((data>=805)&&(data<=814)) set(handles.edit1, 'string', 'ANGKA TIGA'); guidata(hObject,handles); %fprintf(komunikasi,'3'); guidata(hObject,handles);
elseif ((data>=685)&&(data<=700)) set(handles.edit1, 'string', 'ANGKA EMPAT'); guidata(hObject,handles); %fprintf(komunikasi,'4'); guidata(hObject,handles);
elseif ((data>=795)&&(data<=810)) set(handles.edit1, 'string', 'ANGKA LIMA'); guidata(hObject,handles); %fprintf(komunikasi,'5'); guidata(hObject,handles);
elseif ((data>=835)&&(data<=845)) set(handles.edit1, 'string', 'ANGKA ENAM'); guidata(hObject,handles); %fprintf(komunikasi,'6'); guidata(hObject,handles);
elseif ((data>=670)&&(data<=690)) set(handles.edit1, 'string', 'ANGKA TUJUH'); guidata(hObject,handles);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L25
%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); %fprintf(komunikasi,'6');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L26
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L27
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L28
% --- 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 handles.PORT='COM16';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L29
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L30
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'); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI