Upload
vanlien
View
233
Download
0
Embed Size (px)
Citation preview
TUGAS AKHIR
PROTOTYPE PEMILAH BUAH BERDASARKAN
BENTUK MENGGUNAKAN WEBCAM
Diajukan untuk memenuhi salah satu syarat
Memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Jurusan Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
Disusun oleh :
DIMAS PRADIPTA SETYA ADIAKSA
NIM : 125114041
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2017
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
FINAL PROJECT
FRUIT SORTING PROTOTYPE BASED ON SHAPE
USING WEBCAM
In a partial fulfilment of the requirements
For the degree of Sarjana Teknik
Department of Electrical Engineering
Faculty of Science and Technology, Sanata Dharma University
DIMAS PRADIPTA SETYA ADIAKSA
NIM : 125114041
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2017
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO :
“ Hasil tidak akan mengkhianati
usaha ”
Skripsi ini kupersembahkan untuk
Yesus Kristus Juru Slamat & Pembimbingku yang Setia
Bapak, Ibu dan Keluarga tercinta
Sahabat dan Teman-teman seperjuanganku Teknik Elektro 2012
Dan semua pihak yang telah membantu dalam proses skripsi ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Perkembangan ilmu pengetahuan dan teknologi pada zaman modern ini telah
mengalami peningkatan yang amat pesat. Keadaan seperti ini menimbulkan imbas yang
besar pada semua bidang kehidupan manusia terutama pada bidang industri pertanian.
Khususnya dalam proses identifikasi hasil pertanian buah masih dilakukan secara
tradisional. Oleh karena itu, conveyor pemilah buah berdasarkan bentuk buah dibuat dengan
tujuan untuk menghemat waktu dan membantu pekerjaan manusia dalam proses identifikasi
secara otomatis.
Conveyor pemilah buah berdasarkan bentuk buah dikendalikan oleh ATmega32
menggunakan fasilitas interrupt, sistem berfungsi untuk mengatur putaran motor dc dan
komunikasi serial antara komputer dengan ATmega32 menggunakan komunikasi serial
USART yang diprogram menggunakan CodeVision AVR, GUI pada software MATLAB
digunakan untuk tampilan bentuk buah terdeteksi. Data yang diperoleh hasil capture akan
diproses melalui tahapan seperti RGB to HSV, saturation thresholding, remove small
objects, crop image, normalisasi rotasi, normalisasi ukuran, normalisasi template dan
histogram proyeksi. Hasil ektraksi ciri akan dibandingkan dengan variasi database dengan
melakukan perhitungan jarak.
Hasil dari penelitian ini adalah sistem dapat membedakan 4 macam buah secara
realtime. Namun conveyor belom sempurna dalam proses memisahkan buah berdasarkan
bentuk tetapi dari proses matlab sudah bisa mengkirim karakter buah untuk diketahui oleh
mikrokontroler sehingga karakter yang diterima mikrokontroler ditampilkan oleh LED.
Komunikasi mikro dan matlab sudah berjalan tetapi perlu dilakukan restart. Proses
pengenalan bentuk buah dipengaruhi oleh cahaya sehingga cahaya diatur sedemikian agar
sesuai serta penyesuaian nilai thresholding dalam matlab.
Kata kunci : conveyor, ekstrasi ciri, histogram proyeksi, thresholding.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
The development of science and technology in modern times has increased very
rapidly. This situation has a major impact on all areas of human life in the agricultural
industry. Particularly in the process of identifying fruit crops is still done traditionally.
Therefore, fruit-sorting conveyors based on the shape of the fruit are made for the purpose
of saving time and assisting human work in the process of automatic identification.
The fruit-picking conveyor based on the shape of the fruit is controlled by ATmega32
using an interrupt facility, the system functions to regulate the dc motor rotation and serial
communication between computers with ATmega32 using USART serial communications
programmed using CodeVision AVR, GUI on MATLAB software used for detected fruit
shape display. The data obtained by the capture will be processed through stages such as
RGB to HSV, saturation thresholding, remove small objects, crop image, normalization of
rotation, normalization of size, template normalization and projection histogram. The result
of feature extraction will be compared with the database variation by doing the distance
calculation.
The result of this research is the system can distinguish 4 kinds of fruit in realtime.
But the conveyor belom is perfect in the process of separating the fruit based on the shape
but from the matlab process can already send the character of the fruit to be known by the
microcontroller so that the character received by the microcontroller displayed by the LED.
Microwave and matlab communication is running but needs to be restarted. The process of
recognizing the shape of the fruit is affected by the light so that the light is adjusted so as to
fit and adjust the thresholding value in matlab
Keywords : Conveyor, feature extraction, projection histogram, thresholding
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji dan Syukur penulis panjatkan kepada Tuhan Yesus Kristus atas segala berkat
dan karunis-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) Ir. Tjendro selaku dosen pembimbing akademik yang telah mendampingi dan
membimbing penulis selama perkuliahan.
4) Dr. Linggo Sumarno, dosen pembimbing Tugas Akhir 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 dan keluarga tercinta yang telah banyak memberikan doa dan
dukungan motivasi selama menempuh pendidikan di Universitas Sanata Dharma.
8) Staff sekretariat Teknik Elektro yang telah membantu dalam hal administrasi.
9) Staff dan petugas laboratorium Teknik Elektro yang telah membantu banyak hal
untuk kelancaran tugas-tugas perkuliahan.
10) Teman-teman seperjuangan angkatan 2012 Teknik Elektro yang selalu mendukung
dan menyemangati saya dalam menyelesaikan tugas akhir ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
HALAMAN JUDUL (Bahasa Indonesia) ................................................................. i
HALAMAN JUDUL (Bahasa Inggris)...................................................................... ii
LEMBAR PERSETUJUAN ...................................................................................... iii
LEMBAR PENGESAHAN ....................................................................................... iv
HALAMAN PERSEMBAHAN ................................................................................ v
LEMBAR PERNYATAAN KEASLIAN KARYA .................................................. vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH ..... vii
INTISARI .................................................................................................................. viii
ABSTRACT .............................................................................................................. ix
KATA PENGANTAR ............................................................................................... x
DAFTAR ISI ............................................................................................................. xii
DAFTAR GAMBAR ................................................................................................. xv
DAFTAR TABEL ..................................................................................................... xvii
BAB I PENDAHULUAN
1.1. Latar Belakang ........................................................................................ 1
1.2. Tujuan dan Manfaat ............................................................................... 2
1.3. Batasan Masalah .................................................................................... 2
1.4. Metodologi Penelitian ........................................................................... 2
BAB II DASAR TEORI
2.1. Belt Conveyor ......................................................................................... 4
2.1.1. Bagian-bagian Belt Conveyor ....................................................... 5
2.2. Motor Dc ................................................................................................ 5
2.2.1. Prinsip Kerja Motor Dc ................................................................. 6
2.3. Mikrokontroler AVR ATmega32 ........................................................... 8
2.3.1. Arsitektur AVR ATmega32 .......................................................... 8
2.3.2. Deskripsi Mikrokontroler ATmega32 ........................................... 8
2.3.3. Organisasi Memori AVR ATmega32 ............................................ 10
2.3.3.1. Memori Program................................................................ 10
2.3.3.2. Memori Data ...................................................................... 10
2.3.4. Interupsi ......................................................................................... 10
2.3.5. Timer/Counter ............................................................................... 11
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.3.5.1. Timer/Counter 0 ............................................................... 11
2.3.6. Komunikasi Serial USART ........................................................... 13
2.3.6.1. Inisialisasi USART ............................................................ 14
2.3.6.1.1. USART I/0 Data Register ................................... 14
2.3.6.1.2. USART Control and Status Register A .............. 14
2.3.6.1.3. USART Control and Status Register B .............. 15
2.3.6.1.4. USART Control and Status Register C .............. 17
2.4. Software Matlab ...................................................................................... 17
2.4.1. Sistem Matlab ................................................................................ 18
2.4.2. Karakteristik Matlab ...................................................................... 20
2.4.3. Karakteristik Lingkungan Kerja Matlab ........................................ 21
2.5. Regulator IC 78xx dan Transistor Penguat Arus .................................... 23
2.6. Photodioda .............................................................................................. 25
2.7. Limit Switch ............................................................................................ 28
2.8.. Webcam ................................................................................................. 29
2.9. Buah ........................................................................................................ 29
2.10. Pengolahan Citra Digital ...................................................................... 30
2.11. Pemprosesan Citra ................................................................................ 31
2.11.1. Citra Grayscale ............................................................................ 31
2.11.2. Cropping ...................................................................................... 32
2.11.3. Warna HSV ................................................................................. 32
2.11.4. Citra Biner ................................................................................... 33
2.11.5. Resizing ........................................................................................ 34
2.12. Metode Histogram ................................................................................ 34
BAB III PERANCANGAN PENELITIA
3.1. Proses Sistem Kerja ................................................................................ 36
3.2. Perancangan Hardware .......................................................................... 37
3.2.1. Perancangan Mekanik Conveyor ................................................... 37
3.2.2. Minimum System Atmega32 ......................................................... 39
3.2.3. Sensor Photodioda ......................................................................... 41
3.2.4. Regulator dan Penguat Arus .......................................................... 42
3.2.5. Driver Motor DC menggunakan Limit Switch .............................. 43
3.3. Perancangan Perangkat Lunak ............................................................... 43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
3.3.1. Flowchart Program Pengenalan Bentuk Buah pada MATLAB .... 47
3.3.2. Perancangan GUI ........................................................................... 52
BAB IV HASIL DAN PEMBAHASAN
4.1. Bentuk Fisik dan Sistem Kerja Conveyor .............................................. 53
4.2. Penjelasan Program ................................................................................ 55
4.2.1. Langkah Awal Menjalankan Program Pengenalan Bentuk Buah . 55
4.2.2. Penjelasan Program Matlab ........................................................... 57
4.2.2.1. Tampilan GUI Matlab ....................................................... 57
4.2.2.2. Inisialisasi Komunikasi Serial ........................................... 58
4.2.2.3. Inisialisasi Webcam ........................................................... 59
4.2.2.4. Proses Pengenalan Citra .................................................... 60
4.2.2.4. Proses Pengenalan Buah .................................................... 63
4.2.3. Penjelasan Program AVR .............................................................. 65
4.2.3.1. Pengendali Sensor Photodioda .......................................... 65
4.2.3.2. Pengendali Komunikasi USART ....................................... 66
4.2.3.3. Pengendali Motor .............................................................. 66
4.2.3.4. Subrutin Program Utama ................................................... 67
4.3. Pengujian Komunikasi Serial ................................................................. 68
4.4. Pengujian Keberhasilan Mengaktifkan Indikator LED .......................... 69
4.5. Pengujian Keberhasilan ATmega32 menggerakkan Conveyor .............. 69
4.6. Pengujian dan Analisis ........................................................................... 70
4.6.1. Pengujian Pengenalan dengan Nilai Thresholding ........................ 70
4.6.2. Pengujian Pengenalan dengan Varias Remove Small Object ....... 75
BAB V KESIMPULAN
5.1. Kesimpulan ............................................................................................. 78
5.2. Saran ....................................................................................................... 78
DAFTAR PUSTAKA ................................................................................... ............. 79
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
Halaman
Gambar 2.1. Contoh Belt Conveyor......................................................................... 4
Gambar 2.2. Bagian-Bagian Belt Conveyor ............................................................ 5
Gambar 2.3. Medan magnet yang membawa arus mengelilingi konduktor ............ 6
Gambar 2.4. Medan magnet yang membawa arus mengelilingi konduktor ............ 6
Gambar 2.5. Reaksi garis fluks ................................................................................ 7
Gambar 2.6. Konfigurasi Pin Mikrokontroler ATmega32 ...................................... 9
Gambar 2.7. Mode Phase Correct PWM ................................................................ 12
Gambar 2.8. Mode Fast PWM ................................................................................ 13
Gambar 2.9. Register UDR ..................................................................................... 14
Gambar 2.10. Register UCSRA ................................................................................. 14
Gambar 2.11. Register UCSRB ................................................................................. 15
Gambar 2.12. Register UCSRC ................................................................................ 17
Gambar 2.13. Software Matlab .................................................................................. 18
Gambar 2.14. Rangkaian Umum Regulator 78xx ..................................................... 24
Gambar 2.15. Rangkaian Catu Daya Dengan Penguat .............................................. 24
Gambar 2.16. Simbol dan Bentuk Photodioda ......................................................... 26
Gambar 2.17. Respon Relatif Spektral untuk Si, Ge, dan Se .................................... 26
Gambar 2.18. Hubungan Iλ Dengan Fc Pada Photodioda ......................................... 26
Gambar 2.19. Rangkaian Sensor Photodioda ............................................................ 27
Gambar 2.20. Aplikasi Sensor Photodioda ................................................................ 27
Gambar 2.21. Simbol dan Bentuk Limit Switch ....................................................... 28
Gambar 2.22. .Konstruksi dan Simbol Limit Switch ................................................. 28
Gambar 2.23. Contoh Webcam .................................................................................. 29
Gambar 2.24. Buah-buahan ....................................................................................... 29
Gambar 2.25. Skema Kegiatan Pengenalan Pola ...................................................... 30
Gambar 2.26. Citra Skala Keabuan ........................................................................... 32
Gambar 2.27. Model warna HSV .............................................................................. 33
Gambar 2.28. Contoh Citra Biner .............................................................................. 33
Gambar 2.29. Histogram Citra .................................................................................. 34
Gambar 3.1. Blok Diagram Sistem .......................................................................... 36
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 3.2. Desain Conveyor ................................................................................. 38
Gambar 3.3. Desain Perancangan Conveyor1(1)..................................................... 38
Gambar 3.4. Desain Perancangan Conveyor1(2)..................................................... 39
Gambar 3.5. Desain Perancangan Conveyor2 ......................................................... 39
Gambar 3.6. Rangkaian Osilator ATmega32 .......................................................... 40
Gambar 3.7. Rangkaian Reset ATmega32 .............................................................. 40
Gambar 3.8. Rangkaian Sensor Photodioda ............................................................ 41
Gambar 3.9. Rangkaian Regulator 5v ..................................................................... 42
Gambar 3.10. Rangkaian Regulator 24v ................................................................... 42
Gambar 3.11. Driver Motor Dc ................................................................................. 43
Gambar 3.12. Flowchart sistem ................................................................................ 45
Gambar 3.13. Flowchart system(lanjutan) ................................................................ 46
Gambar 3.14. Hasil Capture Image ........................................................................... 47
Gambar 3.15. Hasil Convert RGB to HSV ................................................................. 47
Gambar 3.16. Hasil Saturasi ...................................................................................... 48
Gambar 3.17. Proses Biner ........................................................................................ 48
Gambar 3.18. Proses Remove Small Objects ............................................................. 48
Gambar 3.19. a. Crop Image 1 b. Normalisasi Rotasi c. Crop Image 2 .................... 49
Gambar 3.20. Hasil Normalisasi Template ................................................................ 49
Gambar 3.21. Hasil Histogram Proyeksi ................................................................... 50
Gambar 3.22. Hasil Ekstraksi Ciri Buah ................................................................... 50
Gambar 3.23. Flowchart sistem pada matlab ............................................................ 51
Gambar 3.24. Tampilan Perancangan GUI ............................................................... 52
Gambar 4.1. Conveyor ............................................................................................. 53
Gambar 4.2. Minimum System ATmega32 .............................................................. 54
Gambar 4.3. Buah yang Dideteksi ........................................................................... 54
Gambar 4.4. Tempat Peletakan ............................................................................... 54
Gambar 4.5. Tampilan Matlab ................................................................................. 56
Gambar 4.6. Tampilan Guide Quick Start ............................................................... 56
Gambar 4.7. Tampilan Guide Pengenalan ............................................................... 57
Gambar 4.8. Tampilan GUI ..................................................................................... 57
Gambar 4.9. Inisialisasi Komunikasi Serial ............................................................ 58
Gambar 4.10. Inisialisasi Webcam ............................................................................ 59
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Gambar 4.11. Inisialisasi Program Objek .................................................................. 62
Gambar 4.12. Listing Program ADC ......................................................................... 65
Gambar 4.13. Listing Program Pengendali Conveyor ............................................... 65
Gambar 4.14. Listing Program Komunikasi USART................................................ 66
Gambar 4.15. Listing Program Pengendali Putar Motor ........................................... 66
Gambar 4.16. Inisialisasi Port ................................................................................... 66
Gambar 4.17. Pemberian Nilai Data .......................................................................... 67
Gambar 4.18. Subrutin Program Utama .................................................................... 67
Gambar 4.19. Saat Cerah ........................................................................................... 71
Gambar 4.20. Saat Redup .......................................................................................... 71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
DAFTAR TABEL
Halaman
Tabel 2.1. Hubungan PIN dan Interupsi .................................................................... 11
Tabel 2.2. Penentuan Karakter .................................................................................. 16
Tabel 2.3. Karakteristik Regulator Tegangan ............................................................ 23
Tabel 2.4. Hubungan Arus dengan Hambatan ........................................................... 27
Tabel 3.2. Tampilan Data di LCD ............................................................................. 37
Tabel 4.1. Parameter Thrensholding ......................................................................... 61
Tabel 4.2. Parameter RSO ......................................................................................... 62
Tabel 4.3. Pengujian Komunikasi Pengirim .............................................................. 68
Tabel 4.4. Pengujian Komunikasi Penerima ............................................................. 68
Tabel 4.5. Pengujian Mengaktifkan LED .................................................................. 69
Tabel 4.6. Pengujian Conveyor.................................................................................. 70
Tabel 4.7. Pengujian dengan Variasi1 Cahaya Cerah ............................................... 72
Tabel 4.8. Pengujian dengan Variasi2 Cahaya Cerah ............................................... 72
Tabel 4.9. Pengujian dengan Variasi1 Cahaya Redup............................................... 73
Tabel 4.10. Pengujian dengan Variasi2 Cahaya Redup............................................. 73
Tabel 4.11. Citra Nilai Thresholding ......................................................................... 75
Tabel 4.12. Variasi RSO ............................................................................................ 76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Indonesia merupakan salah satu negara yang memiliki tanah subur sehingga
flora dan fauna tumbuh besar. Contohnya seperti tanaman buah-buahan yang tumbuh subur
di beberapa daerah Indonesia. Banyak jenis buah-buahan yang ada di Indonesia hingga saat
ini. Seiring dengan banyaknya jenis buah-buahan maka muncul berbagai kendala dalam
proses identifikasi hasil panen buah-buahan berdasarkan pola buah.
Perkembangan ilmu pengetahuan dan teknologi pada zaman modern ini telah
mengalami peningkatan yang amat pesat. Keadaan seperti ini menimbulkan imbas yang
besar pada semua bidang kehidupan manusia terutama pada bidang pertanian. Berbagai
macam jenis alat pertanian telah berkembang pesat seiring dengan tuntutan perkembangan
ilmu pengetahuan dan teknologi yang sedemikian pesatnya. Di dalam dunia usaha
pertanian, khususnya dalam proses identifikasi hasil pertanian masih dilakukan secara
tradisional. Proses identifikasi buah-buahan yang dilakukan secara tradisional mengalami
banyak kendala, hal ini akibat sifat manusia itu sendiri yang mempunyai kelemahan yang
akhirnya meyebabkan terjadinya kekeliruan dalam pemilahan jenis-jenis buah dalam hasil
pertanian. Sebenarnya jika proses tersebut dilakukan secara otomatis akan memberi
keuntungan bagi para pengusaha pertanian maupun bagi pekerja pertanian itu sendiri. Ini
dikarenakan bahwa dengan otomatisasi proses pemilahan buah hasil pertanian akan
mempermudah para pekerja dalam proses pemilahan jenis-jenis buah.
Berdasarkan hal tersebut penulis berusaha untuk membuat prototype sederhana
pemilah buah berdasarkan bentuk buah. Prototype dirancang untuk memilah buah dan
dimasukan dalam wadah yang sudah ditentukan. Dalam pemilahan buah digunakan secara
otomatis yang dideteksi oleh webcam, sebuah belt conveyor yang digerakan motor dc
dengan menggunakan mikrokontroler. Untuk memprogram mikrokontroler diperlukan
suatu software khusus.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
1.2. Tujuan dan Manfaat
Tujuan dari skripsi ini adalah menciptakan prototype pemilah buah
berdasarkan bentuk buah dengan webcam berbasis mikrokontroler. Manfaat yang ingin
dicapai dalam skripsi ini adalah :
1. Membantu manusia dalam proses pemilahan buah berdasarkan bentuknya.
2. Untuk penelitian awal pengenalan jenis buah berdasarkan bentuknya
menggunakan webcam.
1.3. Batasan Masalah
Agar Tugas Akhir ini lebih dan memudahkan dalam pembahasan sehingga
tujuan dapat tercapai, maka perlu adanya batasan-batasan masalah. Beberapa batasan yang
digunakan dalam Tugas Akhir ini sebagai berikut :
1. Menggunakan mikrokontroler AVR ATmega8532 sebagai pengolah data sistem
mekanisnya.
2. Buah diletakan ditengah dengan posisi menyamping.
3. Deteksi bentuk buah menggunakan ciri Histogram.
4. Mendeteksi 4 macam buah ( apel, jeruk, pisang, alpukat ).
5. Pemilahan buah menggunakan 2 conveyor. Conveyor 1 untuk mengidentifikasi
bentuk buah, conveyor 2 untuk menempatkan buah pada tempatnya.
1.4. Metodologi Penelitian
Berdasarkan pada tujuan yang ingin dicapai, metode-metode yang digunakan
dalam penyusunan tugas akhir ini adalah:
1. Studi literatur, yaitu dengan cara mendapatkan data dengan membaca buku,
jurnal yang berkaitan dengan permasalahan yang dibahas dalam tugas akhir ini.
2. Dokumenter, yaitu dengan mendapatkan sumber informasi berdasarkan data atau
arsip yang telah ada sehingga dapat membantu dalam mengerjakan tugas akhir
ini.
3. Perancangan hardware, tahap ini bertujuan untuk mencari bentuk model yang
optimal dari sistem yang akan dibuat dengan mempertimbangan dari berbagai
faktor permasalahan dan kebutuhan yang telah ditentukan..
4. Pembuatan hardware.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
5. Pemprograman, melakukan proses pemrograman berdasarkan rancangan yang
telah dibuat dengan menggunakan MATLAB.
6. Proses pengambilan data, melakukan uji coba terhadap aplikasi yang telah
dibuat.
7. Analisa dan penyimpulan, proses pendalaman terhadap alat yang dibuat apakah
sudah berhasil sesuai dengan yang direncanakan atau belum, jika terdapat
kekurangan maka akan dilakukan beberapa perbaikan sistem sehingga akhirnya
dapat mengambil sebuah kesimpulan dari penelitian ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
BAB II
DASAR TEORI
2.1. Belt Conveyor
Belt Conveyor adalah peralatan yang cukup sederhana yang digunakan untuk
mengangkut unit atau curah dengan kapasitas besar. Alat tersebut terdiri dari sabuk yang
tahan terhadap pengangkutan benda padat. Sabuk yang digunakan pada belt conveyor ini
dapat dibuat dari berbagai jenis bahan. Misalnya dari karet, plastik, kulit ataupun logam yang
tergantung dari jenis dan sifat bahan yang akan diangkut. Untuk mengangkut bahan -bahan
yang panas, sabuk yang digunakan terbuat dari logam yang tahan terhadap panas [4]. Contoh
belt conveyor dapat dilihat pada gambar 2.1.
Gambar 2.1. Contoh Belt Conveyor [1]
Fungsi belt conveyor adalah untuk mengangkut berupa unit load atau bulk material dengan
kapasitas yang cukup besar. Yang dimaksud dengan unit load adalah benda yang biasanya
dapat dihitung jumlahnya satu per satu, misalnya kotak, kantong, balok dll. Sedangkan bulk
material adalah material yang berupa butir-butir, bubuk atau serbuk, misalnya pasir, semen
dll [4].
Konstruksi dari belt conveyor adalah :
1. Konstruksi arah pangangkutan horizontal.
2. Konstruksi arah pengangkutan diagonal atau miring.
3. Konstruksi arah pengangkutan horizontal dan diagonal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
2.1.1. Bagian-bagian Belt Conveyor
Gambar 2.2. Bagian-bagian Belt Conveyor [2].
Bagian-bagian belt conveyor sesuai Gambar 2.2. sebagai berikut [3] :
1. Feed hopper berfungsi untuk menjaga agar bahan dapat dibatasi untuk melebihi
kapasitas pada waktu inlet.
2. Outlet chuter berfungsi untuk pengeluaran material.
3. Idle drum berfungsi mengikuti putaran drum yang lain.
4. Take up berfungsi untuk mengatur tegangan ban agar selalu melekat pada drum,
karena semakin lama ban dipakai akan bertambah panjang, kalau tidak diatur
ketegangannya ban akan menjadi kendor.
5. Belt cleaner berfungsi untuk membersihkan belt agar belt selalu dalam keadaan
bersih.
6. Skrapper depan berfungsi agar jangan sampai ada material masuk pada idle drum
dengan belt.
7. Impact roller berfungsi agar menjaga kemungkinan belt kena pukulan beban,
misalnya, beban yang keras, maka umumnya bagian depan sering diberi sprocket
dari karet sehingga belt bertahan lama.
2.2. Motor DC
Motor listrik merupakan perangkat elektromagnetis yang mengubah energi
listrik menjadi energi mekanik. Motor DC memerlukan suplai tegangan yang searah pada
kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor dc
disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang
berputar). Jika terjadi putaran pada kumparan jangkar dalam pada medan magnet, maka akan
timbul tegangan (GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
merupakan tegangan bolak-balik. Prinsip kerja dari arus searah adalah membalik phasa
tegangan dari gelombang yang mempunyai nilai positif dengan menggunakan komutator,
dengan demikian arus yang berbalik arah dengan kumparan jangkar yang berputar dalam
medan magnet. Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa
berputar bebas di antara kutub-kutub magnet permanen [5].
2.2.1. Prinsip Kerja Motor DC
Jika arus lewat pada suatu konduktor, timbul medan magnet di sekitar
konduktor. Arah medan magnet ditentukan oleh arah aliran arus pada konduktor.
Gambar 2.3. Medan magnet yang membawa arus mengelilingi konduktor [5].
Aturan Genggaman Tangan Kanan bisa dipakai untuk menentukan arah garis fluks di sekitar
konduktor. Genggam konduktor dengan tangan kanan dengan jempol mengarah pada arah
aliran arus, maka jari-jari anda akan menunjukkan arah garis fluks. Gambar 2.4.
menunjukkan medan magnet yang terbentuk di sekitar konduktor berubah arah karena
bentuk U [5].
Gambar 2.4. Medan magnet yang membawa arus mengelilingi konduktor [5].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Jika konduktor berbentuk U (angker dinamo) diletakkan di antara kutub utara dan selatan,
kuat medan magnet konduktor akan berinteraksi dengan medan magnet kutub. Lihat gambar
2.5. reaksi garis fluks.
Gambar 2.5. Reaksi garis fluks [5].
Lingkaran bertanda A dan B merupakan ujung konduktor yang dilengkungkan (looped
conductor). Arus mengalir masuk melalui ujung A dan keluar melalui ujung B.
Medan konduktor A yang searah jarum jam akan menambah medan pada kutub dan
menimbulkan medan yang kuat di bawah konduktor. Konduktor akan berusaha bergerak ke
atas untuk keluar dari medan kuat ini. Medan konduktor B yang berlawanan arah jarum jam
akan menambah medan pada kutub dan menimbulkan medan yang kuat di atas konduktor.
Konduktor akan berusaha untuk bergerak turun agar keluar dari medan yang kuat tersebut.
Gaya-gaya tersebut akan membuat angker dinamo berputar searah jarum jam [5].
Mekanisme kerja untuk seluruh jenis motor secara umum :
1. Arus listrik dalam medan magnet akan memberikan gaya.
2. Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran /
loop, maka kedua sisi loop, yaitu pada sudut kanan medan magnet, akan
mendapatkan gaya pada arah yang berlawanan.
3. Pasangan gaya menghasilkan tenaga putar / torque untuk memutar kumparan.
4. Motor-motor memiliki beberapa loop pada dinamonya untuk memberikan
tenaga putaran yang lebih seragam dan medan magnetnya dihasilkan oleh susunan
elektromagnetik yang disebut kumparan medan.
Pada motor dc, daerah kumparan medan yang dialiri arus listrik akan menghasilkan medan
magnet yang melingkupi kumparan jangkar dengan arah tertentu. Konversi dari energi listrik
menjadi energi mekanik (motor) maupun sebaliknya berlangsung melalui medan magnet,
dengan demikian medan magnet disini selain berfungsi sebagai tempat untuk menyimpan
energi, sekaligus sebagai tempat berlangsungnya proses perubahan energi. Agar proses
perubahan energi mekanik dapat berlangsung secara sempurna, maka tegangan sumber harus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
lebih besar daripada tegangan gerak yang disebabkan reaksi lawan. Dengan memberi arus
pada kumparan jangkar yang dilindungi oleh medan maka menimbulkan perputaran pada
motor [5].
2.3. Mikrokontroler AVR ATmega32
AVR (Alf and Vegard’sRiscProcessor) merupakan seri mikrokontroler CMOS
8-bit yang diproduksi oleh Atmel berbasis arsitektur RISC (Reduced Instruction Set
Computer). Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega32. Hampir
semua instruksi dieksekusi dalam satu siklus clock dan mempunyai 32 register general-
purpose, timer/counter fleksibel dengan mode compare, interupsi internal dan eksternal,
serial UART, programmable Watchdog Timer, dan power saving mode. AVR juga
mempunyai ADC, PWM internal dan In-System Programmable Flash on-chip yang
mengijinkan memori program untuk diprogram ulang [6].
2.3.1. Arsitektur AVR ATmega32
Mikrokontroler ATmega32 memiliki arsitektur sebagai berikut :
a. Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D.
b. ADC 10 bit sebanyak 8 Channel.
c. Tiga buah timer/counter yaitu Timer 0, Timer 1, dan Timer 2.
d. Watchdog Timer dengan osilator internal.
e. SRAM sebanyak 512 byte.
f. Memori Flash sebesar 32 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 ATmega32
Konfigurasi Pin Mikrokontroler ATmega32 dengan kemasan 40 pin DIP (dual
in-line package) dapat dilihat pada Gambar 2.6. Untuk memaksimalkan performa dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
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.6. Konfigurasi Pin Mikrokontroler ATmega32 [6]
Mikrokontroler ATmega32 memiliki konfigurasi Pin sebagai berikut:
a. VCC (power supply)
b. GND (ground)
c. Port A (PA7..PA0) Port A berfungsi sebagai input analog pada ADC (analog digital
converter). Port A juga berfungsi sebagai suatu Port I/O 8-bit dua arah.
d. Port B (PB7..PB0) Port B adalah suatu Port I/O 8-bit dua arah dengan resistor
internal pull-up (yang dipilih untuk beberapa bit).
e. Port C (PC7..PC0) Port C adalah suatu Port I/O 8-bit dua arah dengan resistor
internal pull-up (yang dipilih untuk beberapa bit).
f. Port D (PD7..PD0) Port D adalah suatu Port I/O 8-bit dua arah dengan resistor
internal pull-up (yang dipilih untuk beberapa bit).
g. RESET (Reset input)
h. XTAL1 (Input Oscillator)
i. XTAL2 (Output Oscillator)
j. AVCC adalah pin penyedia tegangan untuk Port A dan ADC.
k. AREF adalah pin referensi analog untuk ADC.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Port A berfungsi sebagai input analog pada A/D Konverter (ADC) 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 [7].
T = R x C (2.1)
2.3.3. Organisasi Memori AVR ATmega32
Arsitektur AVR mempunyai dua ruang memori utama, yaitu ruang memori data
dan memori program. ATmega32 juga memiliki fitur EEPROM Memori untuk penyimpanan
data [6].
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. Dalam ATmega32 terdapat
8Kbyte On-Chip di dalam sistem Memory Flash Reprogrammable untuk penyimpanan
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 terbagi menjadi empat bagian yaitu 32 General
Purphose Register adalah register khusus yang bertugas untuk membantu eksekusi program
oleh ALU (Arithmatich Logic Unit). Dalam istilah processor komputer sehari-hari GPR
dikenal sebagai “chace memory”. I/O register dan Aditional I/O register adalah register yang
difungsikan khusus untuk mengendalikan berbagai pheripheral dalam mikrokontroler
seperti pin, port, timer/counter [6].
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Table 2.1. Hubungan PIN dan Interupsi [6]
Jenis interupt PIN pada ATmega32
INT0 PORTD.2
INT1 PORTD.3
INT2 PORTB.2
ATmega32 menyediakan tiga interupsi eksternal yaitu, INT0, INT1, dan INT2.
Masing-masing interupsi tersebut terhubung dengan pin ATmega32 seperti ditunjukan pada
Tabel 2.1. Interupsi eksternal bisa dilakukan dengan memberikan logika 0 atau perubahan
logika (rissing edge dan falling edge) pada pin interupsi yang bersangkutan [6] .
2.3.5. Timer/Counter
Timer/Counter pada mikrokontroler AVR dapat digunakan untuk melakukan
pencacahan waktu seperti pada jam digital maupun untuk menghasilkan sinyal PWM (Pulse
Width Modulation) yakni sinyal kotak dengan frekuensi dan duty cycle yang nilainya bisa
diatur. ATmega32 memiliki tiga unit Timer/Counter yaitu Timer/Counter 0 (8 bit),
Timer/Counter 1 (16 bit), dan Timer/Counter 2 (8 bit) [7].
2.3.5.1. TIMER/COUNTER 0
Fitur-fitur yang dimiliki:
1. Satu buah unit Compare Counter (Unit ini akan meng-count dan meng-compare).
2. Clear timer pada saat compare match (Auto reload).
3. Phase Correct PWM yang bebas glitch.
4. Frequency generator.
5. External event counter.
6. Prescaler clock hingga 10 bit.
7. Membangkitkan interupsi saat timer overflow dan atau compare match.
Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.2,
2.3, dan 2.4 berikut [6].
𝑇 =1
𝑓 (2.2)
𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤 𝑖𝑛𝑡𝑒𝑟𝑟𝑢𝑝𝑡 = 𝑁 × 256 × 𝑇 (2.3)
OCR =𝑝𝑢𝑙𝑠𝑒
𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤 𝑖𝑛𝑡𝑒𝑟𝑟𝑢𝑝𝑡 (2.4)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
Keterangan :
f = frekuensi yang digunakan untuk eksekusi program
T = periode
N = prescaller yang digunakan
OCR = nilai cacahan pulsa
Pulse = lebar pulsa
Berikut merupakan mode-mode operasi timer [7]:
a) Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan
mengitung selang waktu.
Gambar 2.7. Mode Phase Correct PWM [6]
b) Mode phase correct PWM (PCP), digunakan untuk menghasilkan sinyal PWM
dimana nilai register counter (TCNT0) yang mencacah naik dan turun secara terus
menerus akan selalu dibandingakan dengan register pembanding OCR0. Hasil
perbandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal
PWM yang dikeluarkan pada OC0 seperti pada gambar 2.7.
c) CTC (Clear timer on compare match), register counter (TCNT0) akan mencacah
naik kemudian di-reset atau kembali menjadi 0x00 pada saat nilai TCNT0 sama
dengan OCR0. Sebelumnya OCR diset dulu, karena timer 0 dan 2 maksimumnya
255, maka range OCR 0-255.
d) Fast PWM, mode ini hampir sama dengan mode phase correct PWM, hanya
perbedaannya adalah register counter TCNT0 mencacah naik saja dan tidak pernah
mencacah turun seperti terlihat pada Gambar 2.8.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Gambar 2.8. Mode Fast PWM[6]
2.3.6. Komunikasi Serial USART
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 dua
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 [6].
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 TERPUJI
14
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:
2.3.6.1.1 USART I/O Data Register (UDR)
UDR merupakan register 8 bit yang terdiri dari dua 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 [6].
Gambar 2.9. Register UDR [6]
2.3.6.1.2 USART Control and Status Register A (UCSRA)
Gambar 2.10. Register UCSRA [6]
Penjelasan bit penyusun UCSRA [6] :
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
c) UDRE (USART Data Register Empty)
Flag ini sebagai indikator isi UDR. Jika bernilai satu maka UDR dalam keadaan
kosong dan siap menerima data berikutnya, jika flag bernilai nol berarti sebaliknya.
d) FE (Frame Error)
Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika stop
bit pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan bernilai 0 ketika
stop bit data yang diterima berlogika nol.
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.3.6.1.3 USART Control and Status Register B (UCSRB)
Gambar 2.11. Register UCSRB [6]
Penjelasan bit penyusun UCSRB [6] :
a) RXCIE (RX Complete Interrupt Enable)
Bit pengatur aktivasi interupsi penerimaan data serial, akan berlogika satu jika
diaktifkan dan berlogika nol jika tidak diaktifkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
b) TXCIE (TX Complete Interrupt Enable)
Bit pengatur aktivasi pengiriman data serial, akan berlogika satu jika diaktifkan
dan berlogika nol jika tidak diaktifkan.
c) UDRIE (USART Data Register Empty Interrupt Enable)
Bit ini berfungsi untuk mengaktifkan interupsi data register kosong, berlogika
satu jika diaktifkan dan sebaliknya.
d) RXEN (Receiver Enable)
Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin
diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah
digunakan sebagai saluran penerima USART.
e) TXEN (Transmitter Enable)
Bit ini berfungsi untuk mengaktifkan pin TX saluran USART. Ketika pin
diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah
digunakan sebagai saluran pengirim USART.
f) UCSZ2 (Character Size)
Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan
untuk memilih tipe lebar data bit yang digunakan.
Tabel 2.2. Penentuan Ukuran Karakter [6]
UCSZ[2..0] Ukuran Karakter dalam bit
0 5
1 6
10 7
11 8
100-110 Tidak dipergunakan
111 9
g) RXB8 (Receive Data Bit 8)
Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan
bit ini harus dibaca dahulu sebelum membaca UDR.
h) TXB8 (Transmit Data Bit 8)
Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan
bit ini harus ditulis dahulu sebelum membaca UDR.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
2.3.6.1.4 USART Control and Status Register C (UCSRC)
Gambar 2.12. Register UCSRC [6]
Penjelasan bit penyusun UCSRC :
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 serial antara 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.
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. Software Matlab
MATLAB atau yang sering kita sebut dengan (Matrix Laboratory) yaitu sebuah
program untuk menganalisis dan mengkomputasi data numerik, dan MATLAB juga
merupakan suatu bahasa pemrograman matematika lanjutan, yang dibentuk dengan dasar
pemikiran yang menggunakan sifat dan bentuk matriks seperti pada gambar 2.13.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Gambar 2.13. Software Matlab
MATLAB yang merupakan singkatan dari Matrix Laboratory, merupakan
bahasa pemrograman yang dikembangkan oleh The Mathwork Inc. yang hadir dengan fungsi
dan karakteristik yang berbeda dengan bahasa pemrograman lain yang sudah ada lebih
dahulu seperti Delphi, Basic maupun C++.
Pada awalnya program aplikasi MATLAB ini merupakan suatu interface untuk
koleksi rutin-rutin numerik dari proyek LINPACK dan EISPACK, dan dikembangkan
dengan menggunakan bahasa FORTRAN, namun sekarang ini MATLAB merupakan
produk komersial dari perusahaan Mathworks, Inc.
Yang dalam perkembangan selanjutnya dikembangkan dengan menggunakan
bahasa C++ dan assembler, (utamanya untuk fungsi-fungsi dasar MATLAB). MATLAB
telah berkembang menjadi sebuah environment pemprograman yang canggih yang berisi
fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar linier, dan kalkulasi
matematis lainnya. MATLAB juga menyediakan berbagai fungsi untuk menampilkan data,
baik dalam bentuk dua dimensi maupun dalam bentuk tiga dimensi [8].
2.4.1. Sistem Matlab
a. Development Environment.
Ini adalah kumpulan semua alat-alat dan fasiltas untuk membantu kita dalam
menggunakan fungsi dan file MATLAB. Bagian ini memuat desktop, Command window,
command history, editor and debugger, dan browser untuk melihat help, workspace, files.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
b. The MATLAB Mathematical Function Library.
Bagian ini adalah koleksi semua algoritma komputasi, mulai dari fungsi
sederhana seperti sum, sine, cosine sampai fungsi lebih rumit seperti, invers matriks, nilai
eigen, fungsi Bessel dan fast Fourier transform.
c. The MATLAB language.
Ini adalah bahasa matriks/array level tinggi dengan control flow, fungsi, struktur
data, input/output, dan fitur objek programming lainnya.
d. Graphics.
MATLAB mempunyai fasilitas untuk menampilkan vector dan matriks sebagai
grafik. Fasilitas ini mencakup visualisasi data dua / tiga dimensi, pemrosesan citra (image),
animasi, dan grafik animasi.
e. The MATLAB Application Program Interface (API).
Paket ini memungkinkan kita menulis bahasa C dan Fortran yang berinteraksi
dengan MATLAB. Ia memuat fasilitas untuk pemanggilan kode-kode dari MATLAB
(dynamic linking), yang disebut MATLAB sebagai mesin penghitung, dan untuk membaca
dan menulis MAT-files.
MATLAB juga merupakan sistem interaktif yang mempunyai basis data array
yang tidakmembutuhkan dimensi. Ini memungkinkan kita dapat menyelesaikan banyak
masalah komputasiteknis, khususnya yang berkaitan dengan formulasi matrik dan
vector. Tidak hanya itu, MATLAB juga mampu melakukan komputasi simbolik yang biasa
dilakukan oleh MAPLE.
Saat ini MATLAB memiliki ratusan fungsi yang dapat kita gunakan sebagai
problem solver mulai dari simple sampai masalah-masalah yang kompleks dari berbagai
disiplin ilmu. Sebagai contoh, di lngkungan perguruan tinggi dan industri:
Di dalam lingkungan perguruan tinggi, misalnya perguruan tinggi teknik, Matlab
merupakan perangkat standar untuk memperkenalkan dan mengembangkan penyajian
materi matematika, rekayasa dan keilmuan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
Di industri, MATLAB merupakan perangkat pilihan untuk penelitian dengan
produktifitas yang tinggi, pengembangan dan analisanya. Kegunaan MATLAB secara
umum adalah sebagai berikut:
a. Matematika dan komputasi,
b. Perkembangan algoritma,
c. Pemodelan, simulasi, dan pembuatan prototype,
d. Analisa data, eksplorasi dan visualisasim
e. Pembuatan aplikasi, termasuk pembuatan antaramuka grafis [8].
2.4.2. Karakteristik Matlab
a. Bahasa pemrogramannya didasarkan pada matriks (baris dan kolom).
b. Lambat (dibandingkan dengan Fortran atau C) karena bahasanya langsung diartikan.
c. Automatic memory management, misalnya kita tidak harus mendeklarasikan arrays
terlebih dahulu.
d. Tersusun rapi.
e. Waktu pengembangannya lebih cepat dibandingkan dengan Fortran atau C.
f. Dapat diubah ke bahasa C lewat MATLAB Compiler.
g. Tersedia banyak toolbox untuk aplikasi-aplikasi khusus.
Beberapa kelebihan program aplikasi MATLAB jika kita bandingkan dengan program lain
seperti Fortran, dan Basic adalah :
a. MATLAB mudah dalam memanipulasi struktur matriks dan perhitungan berbagai
operasi matriks yang meliputi penjumlahan, pengurangan, perkalian, invers dan fungsi
matriks lainnya.
b. MATLAB juga menyediakan fasilitas untuk memplot struktur gambar (kekuatan
fasilitas grafik tiga dimensi yang sangat memadai).
c. Script program yang dapat diubah sesuai dengan keinginan kita.
d. Jumlah routine-routine powerful yang berlimpah yang terus berkembang.
e. Kemampuan interface (misal dengan bahasa C, word dan matematika).
f. MATLAB dilengkapi dengan toolbox, simulink, stateflow dan sebagainya, serta mulai
melimpahnya source code di internet yang dibuat dalam MATLAB, ( contoh toolbox
misalnya : signal processing, control system, neural networks dan sebagainya) [8].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
2.4.3. Karakteristik Lingkungan Kerja Matlab
Secara umum lingkungan kerja Matlab terdiri dari tiga bagian yang penting
yaitu:
a. Command Windows
Windows ini muncul pertama kali ketika kita menjalankan program Matlab.
Command windows kita gunakan untuk menjalankan perintah-perintah Matlab, memanggil
tool Matlab seperti editor, fasilitas help, model simulink, dan lain-lain. Ciri dari windows
ini yaitu adanya prompt (tanda lebih besar) yang menyatakan Matlab siap menerima
perintah. Perintah tersebut dapat berupa fungsi-fungsi bawaan (toolbox) Matlab itu sendiri.
1) Workspace : menampilkan semua variable yang pernah kita buat meliputi variable
ukuran, jumlah byte, dan class
2) Command History : menampilkan perintah-perintah yang telah kita ketikkan pada
Command Window.
b. Editor Window
Window ini merupakan tool yang disediakan oleh Matlab yang berfungsi sebagai
editor script Matlab (listing perintah-perintah yang harus dilakukan oleh Matlab). Ada dua
cara untuk membuka editor ini, yaitu Klik : File, lalu New dan kemudian M-File.
Secara formal suatu script merupakan suatu file eksternal yang berisi tulisan
perintah MATLAB. Tetapi script tersebut bukan merupakan suatu fungsi. Ketika kita
menjalankan suatu script, perintah di dalamnya dieksekusi seperti ketika dimasukkan
langsung pada MATLAB melalui keyboard.
Penulisan barisan ekspresi dalam MATLAB command window biasanya
dilakukan pada baris perbaris dan biasanya untuk menyimpan barisan perintah dan hasil
outputnya dengan menggunkan command diary. Hal ini sangatlah tidak efisien dikarenakan
barisan yang telah tersimpan di diary tidak dapat diload-kan kembali, seandaianya telah
keluar dari MATLAB. Apalagi jika dilakukan banyak sekali perulangan barisan perintah
yang sama, misalkan dilakukan pengolahan data dan perhitungan yang samayang melibatkan
data atau fungsi yang berbeda. Membentuk dan menjalankan M-File:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
1) Klik menu File, pilih New dan klik M-File
2) Pada editor teks, tulis argumen atau perintah
3) Simpan dengan cara klik File, pilih Save As dan beri nama dengan ekstensi .m
4) Pastikan file yang akan dijalankan berada pada direktori aktif
5) Misalkan file graf1.m berada di C:\MATLAB, maka lakukan perintah cd
6) >> cd c:\matlab
7) Kemudian jalankan file graf1.m dengan cara
8) >> graf1
Suatu fungsi M-File harus mengikuti beberapa aturan. Fungsi M-file juga
mempunyai sejumlah sifat penting. Aturan-aturan dan sifat-sifat tersebut meliputi :
1) Nama fungsi dan nama file harus identik. Contohnya flipud disimpan dalam file
yang bernama flipud.m
2) Pertama kali MATLAB mengeksekusi suatu fungsi M-file, MATLAB membuka
file fungsi tersebut dan mengkompilasi perintah-perintah di dalamnya menjadi
suatu representasi internal dalam memori yang mempercepat eksekusi untuk
semua pemanggilan berikutnya.
3) Baris komentar sampai dengan baris bukan komentar yang pertama adalah teks
help yang ditampilkan. Jika anda meminta help, misalnya >>help flipud yang
menampilkan 9 baris komentar pertama dari contoh di atas. Baris komentar yang
paling atas disebut baris H1 adalah baris yang dicari oleh perintah lookfor.
4) Setiap fungsi memiliki ruang kerjanya sendiri yang berbeda dengan ruang kerja
MATLAB. Satu-satunya hubungan antara ruang kerja MATLAB dengan
variabel-variabel dalam fungsi adalah variabel-variabel input dan output fungsi.
5) Jumlah dari argument input dan output yang digunakan jika suatu fungsi
dipanggil hanya ada dalam fungsi tersebut.
6) Fungsi dapat berbagi variabel dengan fungsi lain, ruang kerja MATLAB dan
pemanggilan rekursi untuk dirinya sendiri jika variabelnya dideklarasikan
sebagai variabel global.
7) Fungsi M-file berhenti dieksekusi dan kembali ke prompt jika telah mencapai
akhir dari M-file atau jika menemui perintah return. Perintah return merupakan
cara sederhana untuk menghentikan fungsi sebelum mencapai akhir file. Fungsi
M-file dapat memuat lebih dari sebuah fungsi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
c. Figure Windows
Windows ini merupakan hasil visualisasi dari script Matlab. Matlab memberikan
kemudahan bagi programmer untuk mengedit windows ini sekaligus memberikan program
khusus untuk itu, sehingga selain berfungsi sebagai visualisasi output yang berupa grafik
juga sekaligus menjadi media input yang interaktif.
1) Simulink windows.
Windows ini umumnya digunakan untuk mensimulasikan sistem kendali
berdasarkan blok diagram yang telah diketahui. Untuk mengoperasikannya ketik
“simulink” pada command windows [8].
2.5. Regulator IC 78xx dan Transistor Penguat Arus
Pengatur tegangan (voltage regulator) berfungsi menyediakan suatu tegangan
keluaran dc tetap yang tidak dipengaruhi oleh perubahan tegangan masukan. Salah satu tipe
regulator tegangan tetap adalah 78xx. Regulator tegangan tipe 78xx adalah salah satu
regulator tegangan tetap dengan tiga terminal, yaitu terminal Vin, GND dan Vout. Regulator
tegangan 78xx dirancang sebagai regulator tegangan tetap, meskipun demikian keluaran dari
regulator ini dapat diatur tegangan dan arusnya melalui tambahan komponen eksternal.
Spesifikasi ic regulator seri 78xx dapat dilihat pada tabel 2.3.
Tabel 2.3. Karakteristik Regulator Tegangan ic 78xx [9]
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 TERPUJI
24
Gambar 2.14. Rangkaian Umum Regulator 78xx [8]
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.5 dan 2.6 [9].
𝑉𝑟(𝑟𝑚𝑠) =𝐼𝑑𝑐
4√3𝑓𝑐=
2.4 𝐼𝑑𝑐
𝐶=
2.4 𝑉𝑑𝑐
𝑅𝐿.𝐶 (2.5)
𝑟 =𝑉𝑟(𝑟𝑚𝑠)
𝑉𝑑𝑐× 100% (2.6)
Komponen eksternal yang digunakan yaitu transistor ic 2N3055 karena
kemampuan arus maksimal adalah 15 A [9] . Untuk gambar rangkaian lengkap dengan ic
regulator dapat ditunjukan gambar 2.15.
Gambar 2.15. Rangkaian Catu Daya Dengan Penguat [9]
Dari gambar 2.15, maka diperleh persamaan-persamaan sebagai berikut [9] :
VB = Vreg + VD (2.7)
Tegangan keluaran rangkaian menjadi,
Vo = Vreg – VBE (2.8)
Jika VD≈VBE, maka
Vo = Vreg (2.9)
Tegangan diantara kolektor dan emittor transistor 2N3055 adalah,
VCE = VIN – VR1 (2.10)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Disipasi daya transistor NPN 2N3055 adalah,
PD = VCE x IC (2.11)
Untuk nilai penguatan arus diperoleh dengan persamaan dibawah ini :
Ic = β IB (2.12)
Ie = (β+1) IB (2.13)
2.6. Photodioda
Photodioda adalah dioda yang bekerja berdasarkan intensitas cahaya, jika
photodioda terkena cahaya maka photodioda bekerja seperti dioda pada umumnya, tetapi
jika tidak mendapat cahaya maka photodioda akan berperan seperti resistor dengan nilai
tahanan yang besar sehingga arus listrik tidak dapat mengalir.
Photodioda merupakan sensor cahaya semikonduktor yang dapat mengubah
besaran cahaya menjadi besaran listrik. Photodioda merupakan sebuah dioda dengan
sambungan p-n yang dipengaruhi cahaya dalam kerjanya. Cahaya yang dapat dideteksi oleh
photodioda ini mulai dari cahaya infra merah, cahaya tampak, ultra ungu sampai dengan
sinar-X.
Karena photodioda terbuat dari semikonduktor p-n junction maka cahaya yang
diserap oleh photodioda akan mengakibatkan terjadinya pergeseran foton yang akan
menghasilkan pasangan electron-hole dikedua sisi dari sambungan. Ketika elektron-elektron
yang dihasilkan itu masuk ke pita konduksi maka elektron-elektron itu akan mengalir ke arah
positif sumber tegangan sedangkan hole yang dihasilkan mengalir ke arah negatif sumber
tegangan sehingga arus akan mengalir di dalam rangkaian. Besarnya pasangan elektron
ataupun hole yang dihasilkan tergantung dari besarnya intensitas cahaya yang diserap oleh
photodiode [9].
Photodioda digunakan sebagai penangkap gelombang cahaya yang dipancarkan
oleh infrared. Besarnya tegangan atau arus listrik yang dihasilkan oleh photodioda
tergantung besar kecilnya radiasi yang dipancarkan oleh infrared.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Gambar 2.16. Simbol dan Bentuk Photodioda[25]
Gambar 2.17. Respon Relatif Spektral untuk Si, Ge, dan Se dibandingkan dengan mata
manusia [9].
Gambar 2.18. Hubungan Iλ Dengan Fc Pada Photodioda [9]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Grafik pada gambar 2.18 menunjukan bahwa arus maksimal pada sensor
photodioda adalah sebesar 800 µA, sehingga untuk penentuan nilai hambatan agar arus
sensor photodioda tidak terlalu besar yaitu [9] :
𝑅 =𝑉𝑐𝑐
𝐼 (2.14)
Sehingga nilai hambatan untuk sensor photodioda dengan asumsi bahwa Vcc = 5 Volt dapat
dilihat pada tabel 2.4 [11].
Tabel 2.4. Hubungan Arus Dengan Hambatan [11]
ARUS
(µA)
HAMBATAN
(KΩ)
200 25
400 12,5
600 8,33
800 6,25
Rangkaian umum sensor photodioda dapat ditunjukan pada gambar 2.19.
Gambar 2.19. Rangkaian Sensor Photodioda [11]
Gambar 2.20. Aplikasi Sensor Photodioda [9]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
2.7. Limit Switch
Limit switch merupakan jenis saklar yang dilengkapi dengan katup yang
berfungsi menggantikan tombol. Prinsip kerja limit switch sama seperti saklar Push ON yaitu
hanya akan menghubung pada saat katupnya ditekan pada batas penekanan tertentu yang
telah ditentukan dan akan memutus saat saat katup tidak ditekan. Limit switch termasuk
dalam kategori sensor mekanis yaitu sensor yang akan memberikan perubahan elektrik saat
terjadi perubahan mekanik pada sensor tersebut. Penerapan dari limit switch adalah sebagai
sensor posisi suatu benda (objek) yang bergerak. Simbol limit switch ditunjukan pada
gambar 2.21 [12].
Gambar 2.21. Simbol dan Bentuk Limit Switch [12]
Limit switch umumnya digunakan untuk :
1. Memutuskan dan menghubungkan rangkaian menggunakan objek atau benda lain.
2. Menghidupkan daya yang besar, dengan sarana yang kecil.
3. Sebagai sensor posisi atau kondisi suatu objek.
Prinsip kerja limit switch diaktifkan dengan penekanan pada tombolnya pada batas/daerah
yang telah ditentukan sebelumnya sehingga terjadi pemutusan atau penghubungan rangkaian
dari rangkaian tersebut. Limit switch memiliki 2 kontak yaitu NO (Normally Open) dan
kontak NC (Normally Close) dimana salah satu kontak akan aktif jika tombolnya
tertekan. Konstruksi dan simbol limit switch dapat dilihat seperti gambar 2.22 [12].
Gambar 2.22. Konstruksi dan Simbol Limit Switch[12]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
2.8. Webcam
Web camera atau biasa disingkat webcam adalah kamera video digital kecil yang
dihubungkan ke komputer melalui port USB atau serial. Fungsi webcam yang paling populer
saat ini yaitu untuk melakukan video conference melalui internet. Dalam perkembangan
selanjutnya, webcam tidak hanya difungsikan sebagai video conference tetapi juga untuk
home monitoring atau memantau rumah selama 24 jam [13]. Contoh webcam ditunjukan
gambar 2.23 yaitu webcam Logitech c170.
Gambar 2.23. Contoh Webcam [14]
2.9. Buah
Buah adalah bagian dari tanaman yang berasal dari bunga. Buah di hasilkan dari
penyerbukan putik oleh benang sari. Didalam buah terdapat biji, yang merupakan bagian
penting bagi tumbuhan yang berkembangbiak secara generatif. Karena biji nantinya jika di
tanam akan tumbuh dan berkembang menjadi individu baru yang mempunyai sifat seperti
kedua induknya. Setiap buah berasal dari bunga, tapi tidak setiap bunga menghasilkan buah
[15]. Contoh berbagai jenis buah pada gambar 2.24.
Gambar 2.24. Buah-buahan [15]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
2.10. Pengolahan Citra Digital
Pengenalan Pola (Pattern Recognition) dapat diartikan dengan segala kegiatan
yang dilakukan untuk pengambilan keputusan atau kesimpulan berdasarkan pola - pola
kompleks objek atau informasi. Pengenalan Pola ini mulai dilakukan sejak data digital
ditemukan, masalah pengenalan dan pencarian pola pada data digital merupakan salah satu
pengetahuan fundamental dan memiliki banyak sejarah pengembangan dan kesuksesan,
banyak ilmuan melakukan berbagai penelitian untuk mengembangkan metode metode baru
untuk mempermudah pengenalan untuk berbagai pola objek [16].
Beberapa contoh pengenalan pola yang telah dilakukan seperti pengenalan wajah,
fingerprint, pola permainan catur, retina mata, peramalan cuaca, bahkan dalam lingkup
perekonomianpun pengenalan pola digunakan, seperti dalam peramalan kurs mata uang,
harga saham, dan banyak lagi penggunaan pengenalan pola yang telah diterapkan.
Secara garis besar rangkaian pengenalan pola itu dapat dilihat pada gambar berikut [16] :
Gambar 2.25. Skema Kegiatan Pengenalan Pola [16]
1. Sensor / Transducer
Sensor atau yang juga dikenal dengan Transducer merupakan alat yang digunakan tahapan
pengambilan data dari lingkungan, atau dunia nyata, seperti dalam pengolahan citra datanya
itu berupa photo dan sensor atau transducernya itu adalah kamera, dan selanjutnya data itu
dikonversi menjadi data digital, agar bisa dilanjutkan ke tahap preprocessing.
2. Preprocessing & Enhancement
Preprocessing merupakan tahapan yang dilakukan mempersiapkan data mentah yang didapat
dari dunia nyata agar dapat dan layak dipergunakan dalam tahapan pengolahan selanjutnya,
ini dikarenakan data real itu umumnya memiliki beberapa masalah seperti, ketidak
lengkapan data yang disebabkan kurang akuratnya sensor atau transducer, noisy atau adanya
objek – objek pengganggu, dan memposisikan data agar sesuai dengan sarat extraksi
fiturnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
3. Feature Extraction
Eksraksi Fitur (Feature Extraction) merupakan tahapan pengambilan ciri, atau pola
karakteristik dari suatu data atau objek inputan, yang nantinya nilai atau bobot fitur yang
didapatkan itu akan diproses dan dianalisa, sehingga dapat menjadi bahan pembeda dari
objek – objek lainnya.
4. Classification
Secara bahasa Classification berati pengelompokan data berdasarkan kesamaan ciri yang
dimiliki oleh data tersebut. Dalam hal ini data hasil ekstraksi fitur yang memiliki kesamaan
dengan data – data lain, akan dikelompokkan dalam klasifikasi tertentu, kegiatan klasifikasi
ini merupakan salah satu kegiatan fital dalam pengenalan pola, kesalahan dalam klasifikasi
akan menyebabkan kesalahan dalam hasil yang akan dikeluarkan. Sehingga pada bagian
klasifikasi ini, banyak sekali metode – metode yang dikembangkan oleh para peneliti, seperti
penggunaan fuzzy, neural network, clustering, dan berbagai metode-metode lain. Hasil
klasifikasi biasanya akan disimpan dan akan menjadi penentu untuk klasifikasi selanjutnya.
5. Description
Tahapan ini merupakan tahapan penyampaian hasil klasifikasi yang telah dilakukan, apakah
objek yang diinputkan itu dikenal atau tidak, dan jika tidak, biasanya sistem akan meminta
untuk melakukan pembelajaran ulang terhadap objek tersebut.
2.11. Pemprosesan Citra
2.11.1. Citra Grayscale
Proses awal yang banyak dilakukan dalam image processing adalah mengubah citra
berwarna (citra RGB) menjadi citra grayscale, hal ini bertujuan untuk menyederhanakan
model citra tersebut karena citra berwarna terdiri dari tiga layer matrik yaitu Red- layer,
Green-layer dan Blue-layer. Sehingga untuk melakukan proses-proses selanjutnya tetap
harus memperhatikan tiga layer di tersebut. Bila setiap proses perhitungan dilakukan
menggunakan tiga layer, berarti dilakukan tiga perhitungan yang sama, sehingga konsep itu
diubah dengan mengubah tiga layer di atas menjadi satu layer matrik grayscale dan hasilnya
adalah citra grayscale. Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan
yang memiliki nilai 0-255.
Citra grayscale merupakan citra digital yang hanya memiliki suatu nilai kanal pada
setiap piksel. Warna yang dimiliki adalah keabuan, hitam dan putih. Citra hitam putih
mempunyai nilai kuantisasi derajat keabuan sampai tingkatan ke 256 artinya mempunyai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
skala abu dari 0 sampai 255 atau selang [0 255]. Citra ini membutuhkan 1 byte (8 bit) untuk
representasi setiap pikselnya (256 =28). Gambar 2.26 menunjukkan contoh citra skala
keabuan [17].
Gambar 2.26. Citra Skala Keabuan [17]
2.11.2. 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.
2.11.3. Warna HSV
Warna yang terlihat adalah spektrum cahaya yang dipantulkan oleh benda yang
kemudian ditangkap oleh indra penglihatan lalu diterjemahkan oleh otak sebagai warna
tertentu. Model warna HSV mendefinisikan warna dalam terminologi Hue, Saturation,
Value. Hue menyatakan warna sebenarnya, seperti merah, violet, dan kuning. Hue digunakan
untuk membedakan warna dan menenetukan kemerahan (redness), kehijauan (greenness)
dari cahaya. Hue berasosiasi dengan panjang gelombang cahaya. Saturation menyatakan
tingkat kemurnian suatu warna, yaitu mengidentifikasikan seberapa banyak warna putih
diberikan pada warna. Value adalah atribut yang menyatakan banyaknya cahaya yang
diterima oleh mata tanpa mempedulikan warna [20].
Selain itu jarak HSV adalah murni dan konsepnya yang hampir seragam maka
proses kuantisasi pada HSV dapat dihasilkan dari mengumpulkan warna yang padat dan
lengkap. Nilai hue antara 0 sampai 1 berarti warna antara merah melewati kuning, hijau,
cyan, biru dan magenta dan kembali menjadi merah. Nilai saturation antara 0 sampai 1
berarti dari tidak tersaturasi (keabuan) sampai tersaturasi penuh (tidak putih). Nilai value
atau brightness antara 0 sampai 1 berarti warna semakin cerah. Karena model warna HSV
merupakan model warna yang diturunkan dari model warna RGB, maka untuk medapatkan
warna HSV ini diharuskan melakukan proses konversi dari RGB ke HSV. HSV merupakan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
salah satu cara untuk menfenisikan warna yang didasarkanwarna yang didasarkan pada roda
warna. Contoh model warna HSV pada gambar 2.27.
Gambar 2.27. Model warna HSV [20]
Hue merupakan variabel yang menyatakan warna dari merah hingga violet. Hue mengukur
sudut sekitar roda warna (merah pada 0°, 120° di hijau, dan biru di 240°). Nilai dari hue
berkisar antara 0° sampai 360°.
2.11.4. Citra Biner
Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai
piksel yaitu hitam dan putih. Citra biner juga bisa disebut sebagai citra B&W (black and
white) atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap piksel dari
citra biner [18].
Citra biner sering kali muncul sebagai hasil dari proses pengolahan seperti
segmentasi, pengambangan, morfologi, ataupun dithering. Contoh citra biner dapat dilihat
pada gambar 2.28.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Gambar 2.28. Contoh Citra Biner [19]
2.11.5. Resizing
Rezising citra adalah mengubah besarnya ukuran citra dalam piksel. Tampilan
citra tidak ada yang berubah tetapi hanya ukuran pixel dan matriksnya yang dirubah. Ukuan
resizing menentukan kualitas gambar yang akan diproses.
2.12. Metode Histogram
Histogram citra adalah grafik yang menggambarkan penyebaran nilai-nilai
intensitas pixel dari suatu citra atau bagian tertentu di dalam citra. Dari sebuah histogram
dapat diketahui frekuensi kemunculan nisbi (relative) dari intensitas pada citra tersebut.
Histogram juga dapat menunjukkan banyak hal tentang kecerahan (brightness) dan kontas
(contrast) dari sebuah gambar. Karena itu, histogram adalah alat bantu yang berharga dalam
pekerjaan pengolahan citra baik secara kualitatif maupun kuantitatif. Misalkan citra digital
memiliki L derajat keabuan, yaitu dari nilai 0 sampai L – 1 (misalnya pada citra dengan
kuantisasi derajat keabuan 8-bit, nilai derajat keabuan dari 0 sampai 255). Secara matematis
histogram citra dihitung dengan persamaan 2.15 [26].
(2.15)
yang dalam hal ini,
ni = jumlah pixel yang memiliki derajat keabuan i
n = jumlah seluruh pixel di dalam citra
Plot hi versus fi dinamakan histogram. Gambar 2.28 adalah contoh sebuah histogram citra.
Secara grafis histogram ditampilkan dengan diagram batang. Perhatikan dari persamaan 2.15
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
bahwa nilai ni telah dinormalkan dengan membaginya dengan n. Nilai hi berada di dalam
selang 0 sampai 1.
Gambar 2.29 Histogram Citra [18]
Dengan histogram dapat dicari citra yang memiliki kemiripan komposisi warna. Pengukuran
tingkat kemiripan dilakukan dengan menghitung jarak antar histogram. Jika G = g1, g2, . . .
, gN dan H = h1, h2, . . . , hN adalah histogram warna dari dua buah citra, dimana gi dan
hi adalah jumlah piksel pada level ke i dari kedua histogram dan N adalah jumlah level untuk
tiap histogram, maka jarak (d) antara dua histogram dapat dinyatakan dalam jarak Manhattan
seperti pada Persamaan 2.16 [26].
(2.16)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
BAB III
PERANCANGAN PENELITIAN
3.1 Proses Kerja Sistem
Pada perancangan tugas akhir ini, akan dibuat sebuah prototipe conveyor yang dapat
berguna untuk memilah buah berdasarkan bentuk buah dan memisahkannya pada suatu tempat
yang telah ditentukan. Komponen-komponen yang digunakan yaitu conveyor, rangkaian
sensor cahaya, Atmega8532, software AVR, webcam, software Matlab, dan motor dc 24v.
Cara kerja conveyor yaitu pertama buah diletakan pada conveyor satu yang akan
membawa buah mendekati webcam dan rangkain sensor cahaya. Setelah buah tepat berada di
antara rangkain sensor cahaya maka conveyor satu akan berhenti, buah akan tepat berada di
bawah webcam. Kemudian webcam akan mendeteksi bentuk buah dan mengcapture buah,
kemudian akan diproses oleh laptop melalui software matlab untuk mengenali bentuk buah,
setelah itu akan diproses oleh laptop lalu dikomunikasikan kepada minimum system
Atmega8532 untuk diproses kembali, setelah menentukan bentuk buah maka conveyor kedua
akan berjalan dan memposisikan tempat/wadah yang sudah ditentukan untuk meletakkan buah.
Setelah itu conveyor satu berjalan kembali untuk memindahkan buah ketempat/wadah yang
sudah ditentukan. Gambar 3.1. merupakan diagram blok system.
Gambar 3.1. Blok Diagram Sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
3.2. Perancangan Hardware
Ada beberapa komponen dalam perancangan sub sistem perangkat keras pemilah
bentuk buah, diantaranya yaitu:
1. 2 conveyor sebagai system mekanik berfungsi untuk memindahkan suatu benda
ke satu tempat ke tempat lain.
2. Minimum system ATmega32 berfungsi untuk mengontrol atau mengendalikan
driver motor dan photodiode yang telah diprogram dalam mikrokontroler
ATmega32 pada conveyor serta sebagai pengolah data serial yang dikirimkan
dari komputer melalui USB to TTL converter.
3. Sensor cahaya berfungsi untuk mendeteksi benda pada conveyor.
4. Penguat tegangan berfungsi menyediakan suatu tegangan keluaran dc tetap
yang tidak dipengaruhi oleh perubahan tegangan masukan.
5. Rangkaian Driver motor + limit switch berfungsi untuk pengendalian kecepatan
dan putaran motor DC.
3.2.1 Perancangan Mekanik Conveyor
Pada tahap ini dilakukan perancangan mekanik dari conveyor tersebut, antara lain
mendesain ukuran conveyor, penggunaan bahan dasar yaitu akrilik dan ukuran belt 20 cm,
panjang conveyor satu 100 cm tingginya 35 cm, sedangkan panjang conveyor dua 300 cm,
ukuran lebar belt conveyor dua 25 cm dan tinggi conveyor dua 10 cm. Dibagian conveyor dua
terdapat kotak penampung buah berukuran 20 cm x 20 cm x 20 cm terbuat dari papan kayu
tipis. Dalam perancangan terdiri dari dua buah conveyor yaitu conveyor satu untuk
menjalankan buah dan conveyor dua untuk menjalankan wadah buah buah. Penggerak
conveyor menggunakan motor dc 24v. Gambar 3.2. adalah desain perancangan dari conveyor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Gambar 3.2. Desain Conveyor
Gambar 3.3. Desain Perancangan Conveyor Satu (1)
Gambar 3.4. Desain Perancangan Conveyor Satu (2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Gambar 3.5. Desain Perancangan Conveyor Dua
3.2.2. Minimum System ATmega32
Rangkaian minimum system berfungsi sebagai I/O untuk mengendalikan putaran motor
dc yang telah diprogram dalam sistem mikrokontroler ATmega32 pada conveyor serta
digunakan sebagai pengolah data serial yang dikirimkan dari komputer melalui USB to TTL
converter. Mikrokontroler membutuhkan minimum system yang terdiri dari rangkaian
eksternal yaitu rangkaian osilator dan rangkaian reset.
Untuk rangkaian osilator menggunakan crystal dengan frekuensi sebesar 11,0592 MHz
dan menggunakan kapasitor 22pf 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.6.
menunjukkan rangkaian osilator.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Gambar 3.6. Rangkaian Osilator ATmega32 [6]
Perancangan rangkaian reset digunakan untuk proses kerja pada mikrokontroler agar
dapat diulang dari awal. Saat tombol reset ditekan maka mikrokontroler mendapat input logika
rendah, sehingga akan mereset seluruh proses yang sedang dilakukan mikrokontroler. Gambar
3.7. adalah rangkaian reset untuk ATmega32.
Gambar 3.7. Rangkaian Reset ATmega32 [6]
Pada gambar 3.7. terdapat resistor yang memiliki resistansi sebesar 4,7 KΩ yang
berfungsikan sebagai pull up. Resistor pull-up eksternal bergunakan untuk menjaga agar pin
RESET tidak berlogika 0 secara tidak disengaja. Kapasitor 10nF digunakan untuk
menghilangkan noise yang disusun secara seri dengan resistor. Rangkaian reset minimum
system ATmega35 merupakan gabungan dari rangkaia push-button dan low-pass filter.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
3.2.3. Sensor Photodioda
Sensor photodioda digunakan untuk mendeteksi buah saat buah menutupi sensor
photodioda yang letaknya dibawah webcam pada conveyor pertama. Cara kerjanya yaitu jika
sensor photodioda terhalang oleh buah atau mendeteksi buah, maka motor pada conveyor akan
berhenti. Rangkaian sensor photodioda ditunjukan oleh Gambar 3.8.
Gambar 3.8. Rangkaian Sensor Photodioda
Dengan nilai vcc sebesar 5 volt dan arus maksimal infrared 100mA, maka hambatan
dapat dihitung menggunakan rumus :
R=𝑣𝑐𝑐
𝐼 sehingga, (3.1)
R = 5
100 𝑚𝐴 = 50 Ω (3.2)
Jadi diperoleh nilai resistor sebesar 50Ω. Karena nilai resistor sebesar 50Ω tidak
tersedia di pasaran maka digunakan resistor sebesar 100Ω agar infrared tidak kelebihan arus.
Sedangkan untuk nilai hambatan sensor photodioda menggunakan resistor 20KΩ . Karena nilai
hambatan sensor photodioda mengacu pada gambar 2.17. dan persamaan 2.14.
Output mikrokontroler ATmega32 memiliki arus yang kecil sehingga tidak bisa
digunakan untuk mengendalikan motor dc yang membutuhkan arus cukup besar. Oleh karena
itu dibutuhkan rangkaian eksternal agar keluaran dari mikrokontroler dapat mengendalikan
motor dc.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
3.2.4. Regulator dan Penguat Arus
Regulator digunakan sebagai pemberi daya pada minimum system ATmega32 dan
motor dc. Regulator terdiri dari ic 7805, ic 7824, ic 2N3055, kapasitor, dan dioda. Ic 7805 yang
digunakan untuk regulator berguna untuk memberikan daya pada minimum system ATmega32,
sedangkan ic 7824 digunakan untuk memberikan daya pada motor dc. Dengan demikian maka
digunakan transistor ic 2N3055 agar arus keluaran ic 7805 dan ic 7824 yang memiliki tegangan
keluaran sebesar 5volt dan 24volt menjadi lebih besar. Perancangan regulator atau komponen
dari rangkaian regulator mengancu pada landasan teori.
Gambar 3.9. Rangkaian Regulator 5v [21]
Gambar 3.10. Rangkaian Regulator 24v [9]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
3.2.5. Driver Motor Dc menggunakan Limit Switch.
Rangkaian driver motor dc H-Bridge transistor ini dapat mengendalikan arah putaran
motor dc dalam 2 arah dan dapat dikontrol dengan metode PWM (Pulse Width Modulation)
maupun metode sinyal logika dasar TTL (High) dan (Low). Untuk pengendalian motor dc
dengan metode PWM maka rangkaian driver motor dc ini kecepatan putarannya dapat
dikendalikan dengan baik. Apabila menggunakan metode logika TTL 0 dan 1 maka rangkaian
ini hanya dapat mengendalikan arah putaran motor dc saja dengan kecepatan putaran motor dc
maksimum. Rangkaian driver motor dc H-Bridge ini menggunakan rangkaian jembatan
transistor 4 unit dengan protesi impuls tegangan induksi motor dc berupa dioda yang dipasang
paralel dengan masing-masing transistor secara reverse bias. Digunakanya transistor tip
dikarenakan transistor ini dapat menghasilkan arus yang tinggi Rangkaian ditambah dengan
limit switch agar saat derlawan jarum jam maka dapat dihentikan pada saat tertentu. Arus
saturasi transistor tip 142 adalah 4 mA maka digunakan persamaan 2.14 sehingga resistor yang
digunakan 1.4 kΩ Gambar 3.11. menunjukkan driver motor dc.
Gambar 3.11. Driver Motor Dc [20]
3.3. Perancangan Perangkat Lunak
Pada perancangan perangkat lunak ini akan dibahas mengenai program kendali
conveyor secara keseluruhan diantaranya :
1) Flowchart program pengenalan bentuk buah
2) Perancangan GUI pada MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Pada proses pembuatan perangkat lunak digunakan software Code Vision AVR yang
merupakan suatu perangkat lunak untuk memprogram ic keluarga AVR menggunakan bahasa
c. Pada pembuatan flowchart program pengenalan bentuk buah akan dibahas dan dipaparkan
mengenai pembuatan program image processing dengan menggunakan metode HSV dengan
software MATLAB.
Cara kerja dari conveyor pemilah buah berdasarkan bentuk yaitu mula-mula buah
diletakan pada conveyor satu yang berjalan satu arah menuju sensor photodioda. Ketika buah
dideteksi oleh sensor photodioda yang artinya buah berada dibawah webcam, maka
mikrokontroler ATmega32 akan mengirimkan suatu proses karakter secara serial kepada laptop
untuk menjalankan program image processing agar benda dapat dikenali. Setelah objek
dikenali, maka laptop melalui software MATLAB akan mengirimkan karakter secara serial
kepada minimum system ATmega32 untuk menggerakan motor conveyor ke dua yang dapat
berjalan dua arah . Conveyor akan bergerak dan meletakan buah ke tempat yang sudah
disediakan sesuai dari bentuk buah, setiap wadah/box hanya diletakkan satu macam buah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Mulai
Conveyor 2
siaga
Conveyor 1
aktif
Conveyor 1
berhenti
Sensor
mendeteksi
buah
Wabcam
menangkap
objek buah
Jeruk Pisang Alpukat
Sensor 1
conveyor 2
aktif (1000)
Sensor 2
conveyor 2
aktif (0100)
Sensor 3
conveyor 2
aktif (0010)
Sensor 4
conveyor 2
aktif (0001)
ya
Conveyor2
bergerak
tidak
Kirim
karakter
a
Kirim
karakter
b
Kirim
karakter
c
Kirim
karakter
d
Apel
tidak
ya ya ya ya
C B A
tidak tidak tidak tidak
Pengenalan
Bentuk Buahya
Gambar 3.12 Flowchart sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 3.13. Flowchart sistem (lanjutan)
A
Conveyor 2
berhenti
Sensor
mendeteksi
objek
Conveyor 1
Aktif
(5 detik)
Tombol stop
ditekan
selesai
ya
tidak
tidak
Conveyor 2
kembali ke
posisi
semula
Limit switch
menditeksi
objek (box)
Conveyor2
berhenti
ya
tidak
B C
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
3.3.1. Flowchart Program Pengenalan Bentuk Buah pada Matlab
Program image processing diproses oleh software MATLAB. Proses
pengidentifikasian pengenalan bentuk buah menggunakan metode histogram. 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 hasil gambar
yang dicapture pada gambar 3.14, maka proses selanjutnya yaitu proses convert RGB to HSV
, proses ini berfungsi untuk menentukkan bagian citra yang dibutuhkan untuk proses
selanjutnya ditunjukkan pada gambar 3.15.
Gambar 3.14. Hasil Capture Image
Gambar 3.15. Hasil Convert RGB to HSV
Setelah merubah RGB menjadi HSV, dalam hasil gambar HSV terkadang terdapat
noise, untuk menghilangkan noise tersebut maka perlu mengatur saturasinya, seperti pada
gambar 3.16. Dalam hal model warna cahaya, saturasi mengacu pada kemurnian yang relative
atau pencampuran sinar putih dengan sebuah hue.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
Gambar 3.16. Hasil Saturasi
Langkah selanjutnya yaitu proses saturasi ke biner, hal ini dilakukan untuk mengidentifikasi
keberadaan objek yang direpresentasikan sebagai daerah (region) di dalam citra. Selain
mengidentifikasi keberadaan objek, perubahan dilakukan untuk dapat memfokuskan pada
analisis bentuk morfologi dengan asumsi intensitas pixel tidak terlalu penting dibandingkan
bentuknya, seperti gambar 3.17. hasil proses saturasi ke biner.
Gambar 3.17. Proses Binerisasi
Setelah selesai proses biner maka dilakukan proses remove small object yaitu menghapus
objek-objek kecil yang tidak digunakan, agar dapat dilakukan proses selanjutnya hasil yang
ditunjukkan pada gambar 3.18.
Gambar 3.18. Proses Remove Small Object
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Selanjutnya dilakukan Crop Image 1 untuk object yang sudah terdeteksi guna mengurangi
ukuran image yang akan di normalisasi rotasi untuk proses selanjutnya, sesuai gambar 3.19.a.
a b c
Gambar 3.19. a. Crop Image 1 b. Normalisasi Rotasi c. Crop Image 2
Sesudah crop image 1 dilakukan proses normalisasi rotasi sesuai gambar 3.19b. Lalu dilakukan
crop image 2 sebelum melakukan normalisasi ukuran, gambar 3.19c menunjukkan crop image
2. Selanjutnya dilakukan normalisasi baris dengan resize ke ukuran baris 128 piksel. Kemudian
dilakukan normalisasi template dengan pengecropan ukuran ke 128x128 piksel. Gambar 3.20.
menunjukkan hasil normalisasi template.
Gambar 3.20. Hasil Normalisasi Template
Setelah dilakukan normalisasi template , selanjutnya proses yang dilakukan Histogram
Proyeksi Vertikal dan Horisontal dengan pendekatan perhitungan jarak setiap buah yang sudah
terdeteksi melalui ciri histogram. Hasil ciri histogram seperti gambar 3.21.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Gambar 3.21. Hasil Histogram Proyeksi
Setelah hasil histogram diperoleh maka dilakukan perhitungan sesuai dengan persamaan 2.16,
setiap data yang diperoleh oleh matlab kemudian dicocokan melalui data base dengan ekstraksi
ciri dari setiap bentuk buah. Setelah diperoleh maka ditentukan keluar jenis bentuk buah.
Gambar 3.22. menunjukkan ekstraksi ciri buah sebagai data base.
Gambar 3.22. Hasil Ekstraksi Ciri Buah
Flowchart proses pengenalan bentuk buah ditunjukkan pada gambar 3.23.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
StartCapture
Image
Convert RGB
to HSV
Ambil
Saturasi
Saturasi to
Biner
Remove
Small Objects
Cropping
Image
Normalisasi
Rotasi
Reset Stop/Exit
Reset Stop
ya ya
Normalisasi
Baris
Histogram
Proyeksi
Vertikal dan
Horisontal
Hitung JarakData Base
Penentuan
Keluaran
Cropping
Image
Normalisasi
Template
Tidak
Gambar 3.23. Flowchart sistem pada matlab
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
3.3.2. Perancangan GUI
Tujuan pembuatan GUI (Graphical User Interface) yaitu agar mempermudah dalam
pengawasan program yang sedang terjadi atau dieksekusi. GUI memiliki peran yang sangat
baik karena dengan adanya GUI, pengguna akan dapat melihat apa yang sedang terjadi didalam
program seperti pemprosesan data dan lain-lain. Perancangan GUI yang akan dibuat dapat
ditunjukan pada gambar 3.24.
Gambar 3.24. Tampilan Perancangan GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
BAB IV
HASIL PENGAMATAN DAN PEMBAHASAN
Pada bab ini akan dibahas mengenai hasil pengamatan dari prototype pemilah buah
berdasarkan bentuk. Hasil pengamatan berupa, data pengenalan bentuk buah berdasarkan
dari ekstrasi ciri bentuk buah, tingkat keberhasilan pengenalan objek bentuk buah, dan
tingkat keberhasilan conveyor memindahkan buah ke tempat yang telah ditentukan.
4.1 . Bentuk Fisik dan Sistem Kerja Conveyor
Hardware terdiri atas conveyor yang digunakan untuk memindahkan buah ketempat
yang sudah ditentukan bentuk fisik conveyor ditunjukan pada gambar 4.1. agar conveyor
bisa berjalan secara otomatis maka menggunakan minimum system ATmega32 yang
ditunjukan pada gambar 4.2. bentuk buah yang akan dideteksi meliputi buah alpukat, apel,
jeruk, pisang yang ditunjukan pada gambar 4.3. sedangkan bentuk fisik tempat peletakan
buah ditunjukan pada gambar 4.4.
Gambar 4.1. Conveyor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Gambar 4.2. Minimum System ATmega 32
Gambar 4.3. Buah yang Dideteksi
Gambar 4.4. Tempat Peletakan Buah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
Mekanisme dari sistem kerja conveyor adalah conveyor bekerja secara otomatis
sesuai dengan perintah yang telah diprogram. Proses yang terjadi ketika tombol power “ON”
maka pertama-tama conveyor 1 akan berjalan membawa buah menuju tepat dibawah
webcam yang akan dideteksi oleh sensor photodioda. Ketika sensor photodioda terhalang
oleh buah dan conveyor 1 akan berhenti sesaat, maka mikrokontroler ATmega32 akan
mengirimkan karakter ‘a’ secara serial melalui komunikasi serial USART. Kemudian laptop
akan merima karakter tersebut sebagai isyarat bahwa telah terdapat objek buah tepat dibawah
webcam. Proses selanjutnya yaitu GUI pada MATLAB yang berguna untuk proses
pengenalan pola bentuk buah akan secara otomatis menjalankan program tersebut. Setelah
bentuk buah dikenali, maka laptop akan mengirimkan sebuah karakter yang mendefinisikan
bentuk buah. Karakter ‘a’ yang dikirim merupakan bentuk buah yang terdeteksi yaitu
“Alpukat”. Karakter ‘b’ yang dikirim merupakan bentuk buah yang terdeteksi yaitu “Apel”.
Karakter ‘c’ yang dikirim merupakan bentuk buah yang terdeteksi yaitu “Jeruk”. Karakter
‘d’ yang dikirim merupakan bentuk buah yang terdeteksi yaitu “Pisang”.
Setelah mikrokontroler ATmega32 menerima karakter tersebut, maka conveyor 2
akan berjalan memindahkan tempat peletekan buah buah sesuai dengan apa yang dideteksi,
kemudian conveyor 1 berjalan untuk memindahkan buah tersebut ke tempat peletakan sesuai
dengan bentuk masing-masing. Proses in akan terus berlangsung hingga tombol pada GUI
MATLAB ditekan “STOP” atau catu daya pada posisi “OFF”.
4.2. Penjelasan Program
Pada sub bab ini, membahas mengenai penjelasan sitem program software yang telah
dirancang,selain itu juga akan membahas interface serta penjelasan penggunaan sistem.
4.2.1. Langkah-Langkah Awal Untuk Menjalankan Program Pengenalan
Bentuk Buah
A. Membuka software Matlab, dengan cara klik dua kali pada gambar icon matlab.
Setelah itu akan muncul tampilan utama matlab seperti pada gambar 4.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Gambar 4.5. Tampilan Matlab
B. Setelah muncul tampilan utama dari matlab, langkah selanjutnya untuk menjalankan
program pengenalan yaitu dengan mengganti current folder dengan directory tempat
program pengenalan ini disimpan. Setelah itu mengetik guide pada command
window dan akan muncul tampilan guide quick start seperti pada gambar 4.6.
Kemudian pilih nama file program yang akan dijalankan untuk membuka interface
dari program tersebut.
Gambar 4.6. Tampilan Guide Quick Start
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
C. Tentukan file guide yang akan dijalankan, setelah itu klik open maka akan muncul
tampilan untuk meng-edit yang akan dijalankan seperti pada gambar 4.7. kemudian
klik run untuk menjalankan program.
Gambar 4.7. Tampilan Pengenalan Bentuk Buah
4.2.2. Penjelasan Program Matlab
4.2.2.1. Tampilan GUI Matlab
GUI (Graphical User Interface) yaitu suatu tampilan yang berfungsi untuk
mempermudah dalam pengawasan program yang sedang dieksekusi. GUI memiliki peran
yang sangat baik karena dengan adanya GUI, pengguna akan dapat melihat apa yang sedang
terjadi didalam program seperti pemrosesan data dan lain-lain. Tampilan GUI yang dibuat
dapat ditunjukan pada gambar 4.8.
Gambar 4.8. Tampilan GUI Matlab
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Terdapat beberapa fasilitas pada tampilan GUI yang digunakan yaitu axes, edit text,
popupmenu, dan push button. Fasilitas axes berfungsi menampilkan gambar, grafik, ataupun
diagram. Axes berfungsi menampilkan gambar dari buah dan ekstraksi ciri buah. Selain axes,
terdapat fasilitas edit text yang berfungsi untuk menampilkan jumlah buah yang telah
terdeteksi, menampilkan nama buah terdeteksi, dan menampilkan hasil deteksi sistem.
Sedangkan popupmenu berfungsi menampilkan daftar pilihan PORT komunikasi yang
digunakan untuk melakuan komunikasi serial antara laptop dan mikrokontroler. Bagian yang
terakhir yaitu push button. Push button berfungsi sebagai sebuah tombol yang digunakan
untuk mengontrol suatu program yang akan diekseusi dengan cara diklik.
Keterangan gambar 4.9. :
1. Tombol pushbotton1 adalah tombol start yang berfungsi untuk memulai proses
dan meng-capture objek dari webcam.
2. Tombol pushbutton2 adalah tombol reset yang berfungsi untuk me-reset system
apabila user melakukan kesalahan atau akan melakukan pengenalan yang lain.
3. Tombol pushbotton3 adalah tombol stop yang berfungsi mengakhiri proses
program.
4.2.2.2. Inisialisasi Komunikasi Serial
Sebelum menghubungkan laptop dengan mikrokontroler Atmega32, maka pada
bagian program MATLAB harus di inisialisasi terlebih dahulu. Hal ini dikarenakan pada
bagian laptop dengan mikrokontroler harus memiliki baudrate yang sama. Jika kedua
perangkat tidak memiliki baudrate yang sama, maka sudah dapat dipastikan kedua perangkat
ini tidak akan dapat berkomunikasi satu sama lainnya. Program inisialisasi pada gambar 4.9.
Gambar 4.9. Inisialisasi Komunikasi Serial
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Dalam proses percobaan gambar 4.9 merupakan program yang digunakan dalam
proses komunikasi serial. Namun dalam proses percobaan hasil yang diperolah bahwa
komunikasi tidak dapat dilakukan dikarena pc dengan mikrokontroler tidak dapat saling
berkomunikasi.
4.2.2.3. Inisialisasi Webcam
Untuk melakukan proses pengolahan citra, maka dibutuhkan perangkat keras berupa
kamera atau webcam. Oleh karena itu, maka diperlukannya proses inisialisasi perangkat
keras tersebut agar dapat dikenali oleh Matlab. Inisialisasi webcam dapat dilihat pada gambar
4.10.
Gambar 4.10. Inisialisasi Webcam dan Proses Capture Gambar
Untuk melakukan proses pengolahan citra, maka dibutuhkan perangkat keras berupa
webcam. Oleh karena itu, maka diperlukannya proses inisialisasi perangkat keras tersebut
agar dapat dikenali oleh Matlab. Perintah program “winvideo” adalah perintah program
untuk menginisilasi webcam agar bekerja pada laptop dengan processor windows dan
kemudian informasi tersebut akan diinisialisasi ke dalam program. Hal ini bertujuan agar
webcam dengan software Matlab dapat melakukan komunikasi. ‘YUY2_640x480’ format
webcam yang digunakan.
Perintah program getsnapshot adalah perintah untuk meng-capture gambar saat
video dari webcam sedang dalam keadaan on. Hasil dari capture webcam memiliki format
gambar YUY sehingga diubah terlebih dahulu ke format gambar RGB dengan cara
menggunakan fungsi yuy2torgb. Agar hasil capture bisa dipanggil dan digunakan diprogram
lain maka diinisialisasikan menggunakan “handles”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
4.2.2.4. Proses Pengenalan Citra
% Ekstraksi ciri bentuk buah
% 1. RGB to saturation image using HSV
hsv=rgb2hsv(gambar); % Konversi RGB --> HSV
%s1=hsv(:,:,2); % Ambil Saturasi
s1=hsv(:,:,3); % Ambil Value
% 2. Saturation thresholding
% Original value: 0.4
im0=s1>0.4;
% 3. Remove small objects (morphologically open binary image)
% Original value : 2000
im1=bwareaopen(im0,2000);
% 4. Crop image I
% Mengurangi ukuran image yang akan di normalisasi rotasi
im2=cropimg(im1);
% 5. Normalisasi rotasi
im3=normrot(im2);
% 6. Crop image II
im4=cropimg(im3);
% 7. Normalisasi ukuran
im5=imresize(im4,[128 NaN]); % Resize ke ukuran baris 128
piksel
% 8. Normalisasi template
[baris,kolom]=size(im5);
tkolom=round((128-kolom)/2);
zeropad=zeros(128,tkolom);
im6=[zeropad im5 zeropad]; % Zero padding kiri dan kanan
im6=im6(:,1:128); % Crop ukuran ke 128x128 piksel
% 9. Histogram proyeksi vertikal dan horisontal
histv=sum(im6);
histh=sum(im6');
histp=[histv histh]';
histp=histp/100; % Penyekalaan
axes(handles.axes5);
imshow(im6);
axes (handles.axes6);
bar(histp);
Proses pengolahan citra merupakan suatu proses untuk mengolah suatu kualitas
gambar atau citra yang telah diambil kamera atau webcam agar gambar tersebut dapat
dikenali dan memiliki nilai-nilai tertentu. Nilai-nilai yang telah didapat kemudian diproses
untuk mengklasifikasikan gambar-gambar tertentu. Proses secara berurutan yaitu mula-mula
gambar diambil dengan fungsi “getsnapshoot”, kemudian gambar yang telah diambil
diproses dan diubah menjadi gambar Hsv dengan tujuan untuk mempermudah dalam
pemrosesan. Langkah selanjutnya yaitu mengambil bagian saturasinya agar dapat
mengetahui bentuk buah, langkah selanjutnya yaitu proses pengambilan dengan menghapus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
objek-objek yang tidak berguna. Setelah itu dilakukan cropping image untuk objek yang
sudah terdeteksi guna mengurangi ukuran image yang akan di normalisasi rotasi..
Selanjutnya dilakukan normalisasi baris dengan resize ke ukuran baris 128 piksel. Kemudian
dilakukan normalisasi template dengan pengecropan ukuran ke 128x128 piksel. Setelah itu
dilakukan Histogram Proyeksi Vertikal dan Horisontal dengan pendekatan perhitungan jarak
setiap buah yang sudah terdeteksi melalui ciri histogram.
Tabel 4.1. Mencari nilai Parameter untuk Saturation Thresholding Buah Pisang
Nilai Capture Gambar Hasil Gambar
0.2
0.3
0.4
0.5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Sebelum dilakukan cropping hasil dari RGB KE HSV dilakukan pencarian objek
dengan hasil terbaik dan bisa memperoleh objek dengan bentuk sesuai hasil capture gambar
tanpa ada objek-objek lain yang mempengaruhi bentuk gambar. Dengan pencahayaan yang
cerah agar objek terlihat maka dilakukan percobaan dengan nilai original value. Menentukan
nilai sebesar 0.4. Penentuan nilai 0,4 berasal dari hasil percobaan seperti pada table 4.1. Dari
table diperoleh objek terbaik pada angka sebesar 0.4.
Gambar 4.11. Inisialisasi Program Mencari Objek Terbaik
Program diatas pada gambar 4.11. adalah bagian dari program ekstrasi ciri buah
penentu bentuk keluaran buah. List program “Remove Small Objects” berfungsi untuk
menentukan objek agar hasil yang diperoleh dapat bersih tanpa objek-objek lain, untuk nilai
parameter “Im0>2000” didapat dari hasil percobaan seperti pada table 4.2.
Tabel 4.2. Mencari Nilai Parameter untuk Remove Small Objects
Nilai Objects Hasil
500
\
1000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
Tabel 4.2. (Lanjutan) Mencari Nilai Parameter untuk Remove Small Objects
Nilai Objects Hasil
2000
3000
4.2.2.5. Proses Pengenalan Buah
Untuk proses pengenalan buah maka perlu dilakukan perhitungan jarak
“hjarak(m)=jarak(histp,dbbuah(:,m))” setelah dilakukan perhitungan maka
hasil akan dicocokan dengan database yang telah dibuat. Program menunjukkan bahwa jika
mendeteksi buah alpukat maka kelasoutnya “1,2,3,4” ,untuk apel kelasoutnya “5,6,7,8”
sedangkan jeruk kelasoutnya “9,10,11,12” sedangkan pisang kelasoutnya “13,14,15,16”.
load dbx
szdb=size(dbbuah)
% Perhitungan jarak
for m=1:16
hjarak(m)=jarak(histp,dbbuah(:,m));
end
hjarak
% Pengurutan hasil perhitungan jarak
[s1,s2]=sort(hjarak,'ascend');
s2
%jarakbuah=s1(1)
% Penentuan kelas keluaran
kelasout=s2(1);
kelasout
% Penentuan buah keluaran
daftarbuah='alpukat';'alpukat';'alpukat';'alpukat';
'apel';'apel';'apel';'apel';
'jeruk';'jeruk';'jeruk';'jeruk';
'pisang';'pisang';'pisang';'pisang';
buahout=daftarbuahkelasout;
set(handles.edit6,'string' ,buahout)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
if strcmp(buahout,'alpukat')>0
set(handles.edit6,'string' ,'alpukat');
kotak=1;
alpukat=alpukat+1;
set(handles.edit7,'string' ,kotak)
set(handles.edit1, 'String', alpukat);
elseif strcmp(buahout,'apel')>0
set(handles.edit6,'string' ,'apel');
kotak=2;
apel=apel+1;
set(handles.edit7,'string' ,kotak)
set(handles.edit2, 'String', apel);
elseif strcmp(buahout,'jeruk')>0
set(handles.edit6,'string' ,'jeruk');
kotak=3;
jeruk=jeruk+1;
set(handles.edit7,'string' ,kotak)
set(handles.edit4, 'String', jeruk);
elseif strcmp(buahout,'pisang')>0
set(handles.edit6,'string' ,'pisang')
kotak=4;
pisang=pisang+1;
set(handles.edit7,'string' ,kotak)
set(handles.edit5, 'String', pisang);
end
Program diatas digunakan untuk proses pengenalan buah setelah data diambil cocok
dengan database. Berjalannya program jika data memiliki kelasout “1,2,3,4” maka akan
tampil pada “edit6” buah yang terdeteksi yaitu alpukat, pada “edit7” letak kotak yang dituju
kotak 1, kemudian menjumlahkan buah alpukat yang terdeteksi sebanyak 1 dan hasil
penjumlahan tersebut ditampilkan pada “edit1” lalu mengirimkan karakter ‘a’ secara serial.
Jika data memiliki kelasout “5,6,7,8” maka akan tampil pada “edit6” buah yang terdeteksi
yaitu apel, pada “edit7” letak kotak yang dituju kotak 2, kemudian menjumlahkan buah apel
yang terdeteksi sebanyak 1 dan hasil penjumlahan tersebut ditampilkan pada “edit2” lalu
mengirimkan karakter ‘b’ secara serial. Jika data memiliki kelasout “9,10,11,12” maka akan
tampil pada “edit6” buah yang terdeteksi yaitu jeruk, pada “edit7” letak kotak yang dituju
kotak 3, kemudian menjumlahkan buah jeruk yang terdeteksi sebanyak 1 dan hasil
penjumlahan tersebut ditampilkan pada “edit4” lalu mengirimkan karakter ‘c’ secara serial.
Jika data memiliki kelasout “13,14,15,16” maka akan tampil pada “edit6” buah yang
terdeteksi yaitu pisang, pada “edit7” letak kotak yang dituju kotak 4, kemudian
menjumlahkan buah pisang yang terdeteksi sebanyak 1 dan hasil penjumlahan tersebut
ditampilkan pada “edit5” lalu mengirimkan karakter ‘d’ secara serial.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
4.2.3. Penjelasan Program AVR
Dijelaskan masing-masing fungsi pada listing program yang menggunakan software
CodeVision AVR diantaranya program pengendali sensor photodioda menggunakan fasilitas
ADC (Analog to Digital Converter), program untuk komunikasi serial menggunakan
USART (Universal Synchronous Asynchronous Receiver Transmiter).
4.2.3.1. Pengendali Sensor Photodioda
Program pengendali sensor photodioda menggunakan fasilitas yang dimiliki oleh
mikrokontroler ATmega32 yaitu ADC (Analog to Digital Converter). Fungsinya yaitu untuk
mengubah tegangan analog menjadi tegangan digital. Tegangan digital tersebut akan
digunakan untuk mengontrol conveyor saat membawa pisang.
Gambar 4.12. Listing Program ADC
Pada listing program yang ditunjukan gambar 4.12, digunakan read_adc(0) yang
artinya menggunakan PORTA.0 sebagai PORT masukan untuk mengubah tegangan analog
menjadi tegangan digital. Pada bagian sensor= read_adc(0)/2 maksud dari pembagian 2 yaitu
agar nilai desimal ADC maksimal yaitu 1023 dibagi 2 yaitu 511. Sehingga apabila tegangan
masukan 0 Volt sampai 5 Volt, akan diubah melalui ADC menjadi 0 desimal hingga 511
desimal.
Gambar 4.13. Listing Program Pengendali Conveyor
Pada bagian listing program gambar 4.13, fungsinya yaitu untuk mengendalikan
motor penggerak conveyor yang dikontrol menggunakan PORTB.0. Terdapat nilai 200 pada
bagian “if (sensor>=200)” ini dimaksudkan untuk membuat PORTB.0 bernilai “0” jika nilai
sensor lebih besar sama dengan dari 200 desimal ADC. Hal ini berarti menyebabkan motor
pada conveyor berhenti berputar. Jika kondisi sensor kurang dari 200, maka motor conveyor
akan terus berputar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
4.2.3.2. Pengendali Komunikasi USART
Pada bagian ini berfungsi sebagai komunikasi serial USART untuk menghubungkan
antara mikrokontroler ATmega32 dengan laptop. Baudrate yang digunakan yaitu 9600 bps.
Fungsi “getchar()” yaitu untuk menerima karakter dari laptop ke mikrokontroler. Sedangkan
fungsi “putchar()” yaitu untuk mengirimkan suatu karakter kepada laptop. Listing program
dapat dilihat pada gambar 4.14.
Gambar 4.14. Listing Program Komunikasi USART
4.2.3.3. Pengendali Motor
Program pengendali motor menggunakan interrupt sebagai pembangkit pulsa untuk
menghitung kotak yang lewat. Listing program pengendali motor ditunjukan gambar 4.15.
Gambar 4.15. Listing program pengendali putar motor
Gambar 4.16. Inisialisai Port
Listing program pada gambar 4.15 adalah penyetingan yang digunakan motor agar
dapat bergerak. Gambar 4.16 merupakan penyetingan nama port, penyetingan ini dilakukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
agar mempermudah pemanggilan. Jika motor1 aktif maka PORTB 0 juga akan aktif, atau
jika motor2 aktif maka PORTB 1 juga aktif, begitu pula yang terjadi pada motor3. Kodisi
nilai count<kotak artinya adalah jika nilai count lebih kecil dari pada kotak maka motor2
akan bergerak (conveyor2 maju), ketika nilai count dan kotak sama maka motor2 akan
berhenti, motor1 (conveyor1) akan bergerak untuk memindakan buah, dan motor3 akan
bergerak (conveyor2 mundur).
Gambar 4.17. Pemberian Nilai Data
Listing program yang ditunjukan pada gambar 4.17. merupakan menambahkan nilai
count, setiap interupt aktif maka nilai count akan berubah, setelah nilai count dan kotak
sama maka motor2 akan berhenti.
4.2.3.4. Subrutin Program Utama
Pada bagian ini akan dibahas mengenai subrutin program yang akan dieksekusi
secara terus menerus karena terdapat didalam fungsi while. Listing program dapat dilihat
pada gambar 4.18.
Gambar 4.18. Subrutin Program Utama
Pada bagian listing program gambar 4.18. Karakter 'a' yang dikirim laptop
merupakan karakter yang mendeskripsikan bahwa buah yang terdeteksi merupakan alpukat,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
sedangkan karakter 'b' yang dikirim laptop merupakan karakter yang mendeskripsikan
bahwa buah yang terdeteksi merupakan apel, sedangkan karakter 'c' yang dikirim laptop
merupakan karakter yang mendeskripsikan bahwa buah yang terdeteksi merupakan jeruk,
kemudian nilai karakter 'd' yang dikirim laptop merupakan karakter yang mendeskripsikan
bahwa buah yang terdeteksi merupakan pisang.
Subrutin yang terdapat didalam “while(1)” akan dieksekusi secara terus menerus
hingga power “OFF” atau tombol reset ditekan. Hal ini dikarenakan didalam kurung while
diberi angka “1” yang berarti bernilai true atau akan dieksekusi secara terus menerus.
4.3. Pengujian Komunikasi Serial
Pada pengujian komunikasi percobaan dilakukan sebanyak sepuluh kali pada
transmiter dan reciver, antara matlab dengan mikrokontroler. Data yang dikirim merupakan
data bilangan biner, dan karakter. Hasil percobaan dapat dilihat pada Tabel 4.3. dan Tabel
4.4.
Tabel 4.3. Pengujian Komunikasi Pengirim
PENGUJIAN KEBERHASILAN KOMUNIKASI
TRANSMITER
DATA PERCOBAAN
1 2 3 4 5 6 7 8 9 10
0B01110011 V V V V V V V V V V
0x0A V V V V V V V V V V
‘AAA’ V V V V V V V V V V
Keterangan : V(Berhasil) X(Tidak Berhasil)
Tabel 4.4. Pengujian Komunikasi Penerima.
PENGUJIAN KEBERHASILAN KOMUNIKASI
RECEIVER
DATA PERCOBAAN
1 2 3 4 5 6 7 8 9 10
0B01110011 V V V V V V V V V V
0x0A V V V V V V V V V V
‘AAA’ V V V V V V V V V V
Keterangan : V(Berhasil) X(Tidak Berhasil)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Berdasarkan tabel 4.3. dan tabel 4.4. maka dapat disimpulkan bahwa komunikasi
serial antara matlab dengan mikrokontroller dapat berjalan sesuai yang diinginkan.
4.4. Pengujian Keberhasilan Mengaktifkan Indikator LED
Pada pengujian keberhasilan komunikasi untuk mengaktifkan indikator LED dilakun
sebanyak 5 kali. Komunikasi karakter yang diterima oleh matlab akan dikirim ke
mikrokontroler untuk mengaktifkan indikator LED bahwa karakter alpukat menunjukkan
LED 1 aktif (1000) , karakter apel menunjukkan LED 2 aktif (0100) , karakter jeruk
menunjukkan LED 3 aktif (0010) , dan karakter pisang menunjukkan LED 4 aktif (0001).
Hasil percobaan ditunjukkan dalam tabel 4.5.
Tabel 4.5. Pengujian Keberhasilan Mengaktifkan Indikator LED
Pengujian Mengaktifkan Indikator LED
Buah 1 2 3 4 5
Alpukat V V V V V
Apel V V V V V
Jeruk V V V V V
Pisang V V V V V
Keterangan : V(Berhasil) X(Tidak Berhasil)
Berdasarkan dari tabel 4.5. menunjukkan bahwa komunikasi antara matlab dengan
mikrokontroler sudah berhasil. Bahwa matlab berhasil mengirim karakter dan diterima
mikrokontroler sehingga indikator dari setiap karakter yang dimaksud dapat mengaktif
LED.
4.5. Pengujian Keberhasilan ATmega32 Menggerakkan Conveyor
Pada pengujian conveyor memindahkan buah dilakukan sebanyak lima kali
percobaan dari masing-masing setiap buah. Ketika sistem telah mengenali bentuk buah,
maka conveyor akan berhenti, selanjutnya ketika matlab mengirim karakter ‘a’, ‘b’, ‘c’, atau
‘d’ maka mikrokontroler ATmega32 akan mengontrol pergerakan conveyor untuk
memindahkan buah sesuai dengan peletakan yang telah ditentukan sebelumnya, apel akan
diletakkan dalam kotak 1, alpukat akan diletakkan dalam kotak 2, jeruk akan diletakkan
dalam kotak 3 dan pisang akan diletakkan dalam kotak 4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Tabel 4.6. Pengujian Keberhasilan Conveyor Memasukkan Buah dalam Kotak
Pengujian Conveyor Memasukkan Buah dalam Kotak
Buah 1 2 3 4 5
Alpukat X X X X X
Apel X X X X X
Jeruk X X X X X
Pisang X X X X X
Keterangan : V(Berhasil) X(Tidak Berhasil)
Berdasarkan tabel 4.6. maka dapat dianalisa bahwa conveyor belum dapat
memindahkan buah dengan baik. Sebab dalam proses yang terjadi bahwa conveyor2 belom
dapat mengenali jenis kotak yang sesuai untuk setiap buah. Padahal data yang dikirim dan
diterima setiap karakter sudah sesuai dengan karakter yang ditentukan. Terjadinya erorr
dalam proses pegenalan untuk memasukkan buah dalam kotak mengalami kesalahan. Hal
ini mungkin dipengaruhi oleh hardware yang mengalami kerusakan atau system yang belum
bisa bekerja sempurna. Pada saat disimulasikan komunikasi serial mikro dan matlab sudah
bisa terhubung dan karakter yang dikirim dan diterima sudah sesuai. Namun hanya sebatas
mengaktifkan LED. Untuk realnya hardware masih belum berjalan dengan baik.
4.6. Pengujian dan Analisis Hasil Pengenalan Bentuk
Pengujian program pengenalan bentuk buah ini bertujuan untuk melihat seberapa
besar tingkat pengenalan terhadap citra masukkan. Pengujian program pengenalan bentuk
buah dilakukan dengan 2 tahap. Tahap pertama adalah pengujian dengan cahaya redup dan
cahaya cerah dengan menggunakan variasi nilai thresholding sehingga bentuk buah dapat
dikenali. Tahap kedua adalah dengan menggunakan variasi nilai remove small objects.
4.6.1. Pengujian Pengenalan dengan Variasi Nilai Thresholding
Percobaan variasi nilai thresholding bertujuan untuk melihat batas nilai yang paling
sesuai dengan keluaran bentuk . Percobaan variasi cahaya bertujuan untuk melihat pengaruh
cahaya terhadap tingkat pengenalan. Pengujian ini dilakukan dengan beberapa langkah, yaitu
:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
1. Melakukan dengan 4 macam jenis buah dengan 2 variasi buah.
2. Capturing dilakukan dengan jarak 30cm dari webcam ke objek buah dan situasi
cahaya yang berbeda yaitu cahaya cerah pada gambar 4.19 dan cahaya redup pada
gambar 4.20.
Gambar 4.19. Saat Cahaya Cerah
Gambar 4.20. Saat Cahaya Redup
3. Percobaan variasi nilai thresholding ( 0.2, 0.3, 0.4, 0.5 ).
4. Percobaan dilakukan 2 kali untuk setiap 1 macam buah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Tabel 4.7. Pengujian dengan Cahaya Cerah dengan Variasi Buah 1
BUAH
Nilai Thresholding
0.2 0.3 0.4 0.5
Alpukat
1
V
V
V
V
2
V
V
V
V
Apel
1
X
X
V
V
2
X
X
V
V
Jeruk
1
X
X
V
V
2
X
V
V
V
Pisang
1
X
V
V
V
2
X
V
V
V
Tabel 4.8. Pengujian dengan Cahaya Cerah dengan Variasi Buah 2
BUAH
Nilai Thresholding
0.2 0.3 0.4 0.5
Alpukat
1
V
V
V
V
2
V
V
V
V
Apel
1
X
X
V
V
2
X
X
V
V
Jeruk
1
X
X
V
V
2
X
V
V
V
Pisang
1
X
V
V
V
2
X
V
V
V
Ket : X : tidak terdeteksi
V : terdeteksi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
Hasil pengujian pada tabel 4.7. dan Tabel 4.8. merupakan hasil pengujian pengenalan
bentuk buah berdasarkan variasi nilai thresholding. Hasil pengujian variasi nilai
thresholding memperlihatkan bahwa buah terdeteksi dengan baik pada nilai 0.4 dan 0.5,
karena pada nilai 0.4 dan 0.5 objek yang tertampil . Pada nilai 0.2 dan 0.3 tidak dapat dikenali
karena terjadi kesalahan saat cropping menyebabkan buah tidak dikenali dengan tidak baik.
Hasil pengujian nilai thresholding memperlihatkan bahwa pada percobaan pengenalan
bentuk buah nilai thresholding mempengaruhi hasil pengenalan. Saat cahaya cerah objek
pun terlihat dengan jelas.
Tabel 4.9. Pengujian dengan Cahaya Redup dengan Variasi Buah 1
BUAH
Nilai Thresholding
0.2 0.3 0.4 0.5
Alpukat
1
V
V
X
X
2
V
V
X
X
Apel
1
X
V
V
V
2
X
V
V
V
Jeruk
1
X
V
V
V
2
X
V
V
V
Pisang
1
V
V
V
V
2
V
V
V
V
Tabel 4.10. Pengujian dengan Cahaya Redup dengan Variasi Buah 2
BUAH
Nilai Thresholding
0.2 0.3 0.4 0.5
Alpukat
1
X
V
X
X
2
X
V
X
X
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
Tabel 4.10. (Lanjutan) Pengujian dengan Cahaya Redup dengan Variasi Buah 2
BUAH
Nilai Thresholding
0.2 0.3 0.4 0.5
Apel
1
X
V
V
X
2
X
V
V
X
Jeruk
1
X
V
V
V
2
X
V
V
V
Pisang
1
V
V
V
V
2
V
V
V
V
Ket : X : tidak terdeteksi
V : terdeteksi
Hasil pengujian pada tabel 4.9 dan tabel 4.10 merupakan hasil pengujian pengenalan
bentuk buah berdasarkan variasi nilai thresholding dengan cahaya redup. Hasil pengujian
variasi nilai thresholding memperlihatkan bahwa 4 macam jenis buah terdeteksi dengan baik
pada nilai 0.3. Sebab nilai 0.2 dan 0.4 serta 0.5 tidak bisa menunjukkan 4 macam objek
terbaik karena terjadi kesalahan saat cropping menyebabkan buah tidak dikenali dengan
tidak baik. Pada tabel 4.7. dan tabel 4.8. nilai yang dapat memunculkan objek terbaik yaitu
nilai 0.4 sebab dalam pengujian dilakukan berbeda dengan cahaya cerah. Jadi hasil pengujian
nilai thresholding memperlihatkan bahwa cahaya sangat mempengaruhi dalam proses
pengenalan bentuk buah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
Tabel 4.11. Citra Hasil Variasi Nilai Thresholding
Nilai
Thresholding
Alpukat Apel jeruk pisang
0.2
0.3
0.4
0.5
Tabel 4.11 merupakan contoh citra hasil variasi nilai thresholding dimana nilai 0.4
menunjukkan hasil baik untuk 4 macam jenis buah maka gambar terlihat jelas, hal itu
disebabkan karena objek-objek yang tidak sesuai akan hilang apabila nilainya terlalu besar
objek yang diperoleh aka nada yang hilang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
4.6.2. Pengujian Pengenalan Berdasarkan Variasi Remove Small Object
Percobaan variasi Remove Small Object bertujuan untuk melihat batas nilai yang
paling sesuai dengan keluaran bentuk . Pengujian ini dilakukan dengan beberapa langkah,
yaitu :
1. Melakukan dengan 4 macam jenis buah dengan 2 variasi buah.
2. Capturing dilakukan dengan jarak 30cm dari webcam ke objek buah dan situasi
cahaya yang berbeda yaitu cahaya cerah pada gambar 4.19.
3. Percobaan variasi nilai Remove Small Objects ( 500, 1000, 2000, 3000 )
4. Percobaan dilakukan 2 kali untuk setiap 1 macam buah.
Tabel 4.12. Pengujian dengan Variasi Remove Small Object
Buah Variasi Remove Small Object
500 1000 2000 3000
Alpukat
1 X V V V
2 X V V V
3 X V V V
4 X V V V
5 X V V V
6 X V V V
7 X V V V
8 X V V V
9 X V V V
10 X V V V
Apel
1 V V V V
2 V V V V
3 V V V V
4 V V V V
5 V V V V
6 V V V V
7 V V V V
8 V V V V
9 V V V V
10 V V V V
Jeruk
1 V V V V
2 V V V V
3 V V V V
4 V V V V
5 V V V V
6 V V V V
7 V V V V
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Tabel 4.12. (Lanjutan) Pengujian dengan Variasi Remove Small Object
Buah
Variasi Remove Small Object
500 1000 2000 3000
Jeruk
8 V V V V
9 V V V V
10 V V V V
Pisang
1 V V V V
2 V V V V
3 V V V V
4 V V V V
5 V V V V
6 V V V V
7 V V V V
8 V V V V
9 V V V V
10 V V V V
Hasil pengujian pada Tabel 4.12. merupakan hasil pengujian pengenalan bentuk buah
berdasarkan variasi nilai remove small objects. Hasil pengujian variasi nilai remove small
objects menggunakan nilai thresholding 0.4 dengan hasil objek yang tertampil . Pada nilai
1000, 2000, 3000 yang dapat dikenali karena objek yang tertampil sudah menyerupai dengan
bentuk hasil saat capturing sehingga dapat mendeteksi dari jenis-jenis buah. Hasil pengujian
nilai 500 tidak dapat sempurna mengenali 4 macam jenis buah karena hasil pengenalan pada
buah alpukat objek yang diperoleh hanya berbentuk kecil sehingga tidak diperoleh hasil
sempurna. Memperlihatkan bahwa pada percobaan pengenalan bentuk buah nilai remove
small object dan nilai thresholding saling mempengaruhi hasil pengenalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil pengujian serta pengambilan data pada aplikasi pengenalan objek untuk
conveyor pemilah buah berdasarkan bentuk, dapat diambil kesimpulan:
1. Sistem pada matlab dapat mendeteksi buah dengan baik, tetapi cahaya
mempengaruhi proses pendeteksi.
2. Posisi buah yang tidak sesuai dapat mempengaruhi pendeteksian buah.
3. Sistem sudah berjalan dengan benar, komunikasi antara matlab dengan
mikrokontroler sudah berjalan baik meskipun harus dilakukan restart.
4. Komunikasi yang terjadi hanya sampai dengan indikator dalam pengaktifan
LED.
5. Beberapa bagian system conveyor belom dapat berjalan dengan baik.
5.2. Saran
Saran-saran bagi pengembangan selanjutnya adalah:
1. Lebih banyak variasi buah yang diuji.
2. Waktu sistem untuk proses conveyor dibuat lebih cepat.
3. Proses sistem agar dibuat lebih mudah.
4. Hardware dapat berjalan dengan sempurna.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Daftar Pustaka
[ 1 ] http://www.automatedconveyors.com diakses pada tanggal 2 Maret 2016.
[ 2 ] http://www.conveyall.com diakses pada tanggal 2 Maret 2016.
[ 3 ] http://www.caesarvery.com/2015/12/scope-coal-handling-plant-pltu.html
diakses pada tanggal 2 Maret 2016.
[ 4 ] http://www.conveyor.co.id/ diakses pada tanggal 2 Maret 2016.
[ 5 ] http://staff.ui.ac.id/system/files/users/chairul.hudaya/material/dcmotorpaperan
dqa.pdf diakses tanggal 2 Maret 2016.
[ 6 ] ----, 2011,Data Sheet Mikrokontroler ATmega32, Atmel.
[ 7 ] Agus Bejo, 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam
Mikrokonroler ATMEGA8535, 1st ed, GRAHA ILMU, Yogyakarta.
[ 8 ] Boylestad, R. and Nashelsky. L., Electronic Devices and Circuit Theory,
seventh edition, Prentice Hall, New Jersey Columbus, Ohio.
[ 9 ] Fathoni, Oktober 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass
Element Transistor NPN dan PNP, Jurnal Neutrino, Vol.3, No.1.
[ 10 ] Irvan Hasan, 2015, Aplikas Pengenalan Objek untuk Lengan Robot Pemisah
Benda Berdasarkan Bentuk Benda, Skripsi, Universitas Sanata Dharma,
Yogyakarta.
[ 11 ] http://elektronika-dasar.web.id/limit-switch-dan-saklar-push-on/ diakses 5 Mei
2016.
[ 12 ] Enterprise, Jubilee, 2010, Teknik Mengendalikan PC dari Jarak Jauh, PT Elex
Media Komputindo, Jakarta.
[ 13 ] http://www.logitech.com/id-id/product/webcam-c170 diakses 23 Mei 2016.
[ 14 ] http://www.kamusq.com/2014/01/buah-adalah-pengertian-dan-definisi.html
diakses 6 Juni 2016.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
[ 15 ] Noviyanto, Ary. (2009). Klasifikasi Tingkat Kematangan Varietas Tomat
Merah dengan Metode Perbandingan Kadar Warna. Yogyakarta: Universitas
Gajah Mada.
[ 16 ] Wijaya, M.Ch., dan Prijono, A., 2007, Pengolahan Citra Digital Menggunakan
MATLAB, Informatika, Bandung.
[ 17 ] Putra, D., 2010, Pengolahan Citra Digital, Andi Offset, Yogyakarta.
[ 18 ] Agarwal Vertika, 2011, “Analysis of Histogram Equalization in Image
Preprocessing”, BIOINFO Human-Computer Interaction,
Volume 1, Issue1, 2011, pp-04-07.
[ 19 ] http://learn.leighcotnoir.com/artspeak/elements-color/hue-value-saturation/
diakses tanggal 20 Juni 2016.
[ 20 ] http://elektronika-dasar.web.id/driver-motor-dc-h-bridge-transistor/ diakses 10
Juli 2016.
[ 21 ] L7805CT Datasheet, PDF.
[ 22 ] ----,2002, Data Sheet Transistor 2N3904, KEC.
[ 23 ] ----,1999, Data Sheet Transistor 2N3055, STMicroeelectronics.
[ 24 ] http://www.edukasielektronika.com/2013/02/photo-dioda.html
[ 25 ] Acharya T., Ray A.K. (2005), Image Processing Principles and Applications,
by John Wiley & Sons,
[ 26 ] http://www.crestmi.com.au/motors.php
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
Rangkaian Sistem Prototype
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
Rangkaian Minimum Sistem ATmega32
Rangkaian Regulator
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
Rangkaian Sensor
Webcam Logitech c170h[13] Spesifikasi Webcam Logitech c170h[13]
Motor Dc 24v, 2A [26] Spesifikasi Motor Dc [26]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L4
Listing Program AVR
Project : PROGRAM CONVEYOR
Version :
Date : 12/29/2016
Author : Dimas Pradipta
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>
#include <delay.h>
#include <stdlib.h>
#define motor1 PORTB.0
#define motor2 PORTB.1
#define led1 PORTB.2
#define led2 PORTB.3
#define led3 PORTB.4
#define led4 PORTB.5
#define tombol_up PINB.6
#define tombol_down PINB.7
#define on 0
#define off 1
// Declare your global variables here
bit status_up=0,status_down=0;
unsigned char count, kotak, a,b,c,d,k;
bit kon, stop, box, ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
int n,sensor, z , data=0;
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
// Place your code here
if(kon==1)count++;
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
// Place your code here
// Standard Input/Output functions
#include <stdio.h>
void counter()
if (tombol_up==off) status_up=on;
if ((tombol_up==on)&(status_up==on)) data++;
if (data>=1000) data=1000;
status_up=off;
if (tombol_down==off) status_down=on;
if ((tombol_down==on)&(status_down==on))
data--;
status_down=off;
void pilah_buah()
while(z)
k=getchar();
if(k==97)
kotak=1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
led1=1;
n=3550;data=0;
while(data<kotak) motor2=1;counter(); // maju konveyor 2
delay_ms(100);led1=0;
motor2=0;
z=0;
else if(k==98)
kotak=2;
led2=1;
n= 4700;data=0;
while(data<kotak) motor2=1;counter(); // maju konveyor 2
delay_ms(100);led2=0;
motor2=0;
z=0;
else if(k==99)
kotak=3;led3=1; n=6000;
data=0;
while(data<kotak) motor2=1;counter(); // maju konveyor 2
delay_ms(100);led3=0;
motor2=0;
z=0;
else if(k==100)
kotak=4;n=7150;led4=1;
data=0;
while(data<kotak) motor2=1;counter(); // maju konveyor 2
delay_ms(100);led4=0;
motor2=0;
z=0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
else
kotak=5;n=8600;
//led5=1;data=0;
z=0;
// Voltage Reference: AREF pin
#define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR))
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
// Wait for the AD conversion to complete
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
void main(void)
// Declare your local variables here
DDRB.0=1; PORTB.0=0;
DDRB.1=1; PORTB.1=0;
DDRB.2=1; PORTB.2=0;
DDRB.3=1; PORTB.3=0;
DDRB.4=1; PORTB.4=0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L8
DDRB.5=1; PORTB.5=0;
DDRD.4=1; PORTD.4=0;
DDRB.6=0; PORTB.6=1;
DDRB.7=0; PORTB.7=1;
// Input/Output Ports initialization
// Port A initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) |
(0<<DDA1) | (0<<DDA0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) |
(0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
//DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) |
(1<<DDB1) | (1<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
//PORTB=(1<<PORTB7) | (1<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) |
(0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// Port C initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) |
(1<<DDC1) | (1<<DDC0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) |
(0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRD=0xFF;
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) |
(0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) |
(0<<CS00);
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) |
(0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) |
(0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L10
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) |
(0<<CS20);
TCNT2=0x00;
OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) |
(0<<OCIE0) | (0<<TOIE0);
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Falling Edge
// INT1: On
// INT1 Mode: Falling Edge
// INT2: Off
GICR|=(1<<INT1) | (1<<INT0) | (0<<INT2);
MCUCR=(1<<ISC11) | (1<<ISC10) | (1<<ISC01) | (0<<ISC00);
MCUCSR=(0<<ISC2);
GIFR=(1<<INTF1) | (1<<INTF0) | (0<<INTF2);
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) |
(0<<MPCM);
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
// Analog Comparator initialization
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L11
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) |
(0<<ACIS0);
// ADC initialization
// ADC Clock frequency: 691.200 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: ADC Stopped
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
// SPI initialization
// SPI disabled
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) |
(0<<SPR0);
// TWI initialization
// TWI disabled
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
// Global enable interrupts
#asm("sei")
while (1)
motor1=1;
sensor=read_adc(0);
if(sensor>=500)
motor1=0;
putchar('z');
z=1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L12
//delay_ms(300);
pilah_buah();
//counter();
//while(data<kotak) motor2=1;counter(); // maju konveyor 2
//delay_ms(100);
//motor2=0; // konveyor 2 stop
//delay_ms(200);
//motor1=1; // konveyor 1 jalan untuk masukan pisang ke kotak
//delay_ms(300);
//kon=0;
// motor3=1;delay_ms(n); // mundur konveyor 2
//motor2=0;
Listing Program GUI Matlab
function varargout = untitled(varargin)
% UNTITLED MATLAB code for untitled.fig
% UNTITLED, by itself, creates a new UNTITLED or raises the existing
% singleton*.
%
% H = UNTITLED returns the handle to a new UNTITLED or the handle to
% the existing singleton*.
%
% UNTITLED('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in UNTITLED.M with the given input arguments.
%
% UNTITLED('Property','Value',...) creates a new UNTITLED or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before untitled_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to untitled_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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L13
% Edit the above text to modify the response to help untitled
% Last Modified by GUIDE v2.5 21-Feb-2017 16:23:42
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @untitled_OpeningFcn, ...
'gui_OutputFcn', @untitled_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin1)
gui_State.gui_Callback = str2func(varargin1);
end
if nargout
[varargout1:nargout] = gui_mainfcn(gui_State, varargin:);
else
gui_mainfcn(gui_State, varargin:);
end
% End initialization code - DO NOT EDIT
end
% --- Executes just before untitled is made visible.
function untitled_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 untitled (see VARARGIN)
global alpukat
global apel
global jeruk
global pisang
alpukat=0;
apel=0;
jeruk=0;
pisang=0;
set(handles.edit1, 'String', '0' );
set(handles.edit2, 'String', '0' );
set(handles.edit4, 'String', '0' );
set(handles.edit5, 'String', '0' );
set(handles.edit6, 'String', '0' );
set(handles.edit7, 'String', '0' );
% Choose default command line output for untitled
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes untitled wait for user response (see UIRESUME)
% uiwait(handles.figure1);
end
% --- Outputs from this function are returned to the command line.
function varargout = untitled_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)2
% Get default command line output from handles structure
varargout1 = handles.output;
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% 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)
z=1;
global alpukat
global apel
global jeruk
global pisang
while (z)
%data yang dikirimkan
komunikasi=serial(handles.PORT);
%guidata(hObject,handles[[p);
%setting hardware diperlukan
set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopBits',1,'FlowControl','none');
%membuka port untuk komunikasi
fopen(komunikasi);
out=fscanf(komunikasi);
out1=sprintf('%s',out);
pause(0.5);
if(out1==122)
%proses inisialisasi webcam
vid=videoinput('winvideo',2,'YUY2_640x480');
%proses capture gambar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L15
gambar1=getsnapshot(vid);
gambar=yuy2torgb(gambar1);
axes(handles.axes4);
imshow(gambar)
%imwrite(gambar,'alpukat.jpg','jpg');
% ========================================================
% Internal Function
% ========================================================
% function [im6,histp]=xcbuah(rgbImage)
% --------------------------------------------------------
% Ekstraksi ciri bentuk buah
% 1. RGB to saturation image using HSV
hsv=rgb2hsv(gambar); % Konversi RGB --> HSV
%s1=hsv(:,:,2); % Ambil Saturasi
s1=hsv(:,:,3); % Ambil Value
% 2. Saturation thresholding
% Original value: 0.4
im0=s1>0.4;
% 3. Remove small objects (morphologically open binary image)
% Original value : 2000
im1=bwareaopen(im0,1000);
% 4. Crop image I
% Mengurangi ukuran image yang akan di normalisasi rotasi
im2=cropimg(im1);
% 5. Normalisasi rotasi
im3=normrot(im2);
% 6. Crop image II
im4=cropimg(im3);
% 7. Normalisasi ukuran
im5=imresize(im4,[128 NaN]); % Resize ke ukuran baris 128 piksel
% 8. Normalisasi template
[baris,kolom]=size(im5);
tkolom=round((128-kolom)/2);
zeropad=zeros(128,tkolom);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L16
im6=[zeropad im5 zeropad]; % Zero padding kiri dan kanan
im6=im6(:,1:128); % Crop ukuran ke 128x128 piksel
% 9. Histogram proyeksi vertikal dan horisontal
histv=sum(im6);
histh=sum(im6');
histp=[histv histh]';
histp=histp/100; % Penyekalaan
axes(handles.axes5);
imshow(im6);
axes (handles.axes6);
bar(histp);
%histp=sum(histp);
%histp
load dbx
szdb=size(dbbuah)
% Perhitungan jarak
for m=1:16
hjarak(m)=jarak(histp,dbbuah(:,m));
end
hjarak
% Pengurutan hasil perhitungan jarak
[s1,s2]=sort(hjarak,'ascend');
s2
%jarakbuah=s1(1)
% Penentuan kelas keluaran
kelasout=s2(1);
kelasout
% Penentuan buah keluaran
daftarbuah='alpukat';'alpukat';'alpukat';'alpukat';
'apel';'apel';'apel';'apel';
'jeruk';'jeruk';'jeruk';'jeruk';
'pisang';'pisang';'pisang';'pisang';
buahout=daftarbuahkelasout;
set(handles.edit6,'string' ,buahout)
if strcmp(buahout,'alpukat')>0
set(handles.edit6,'string' ,'alpukat');
kotak=1;
alpukat=alpukat+1;
set(handles.edit7,'string' ,kotak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L17
set(handles.edit1, 'String', alpukat);
fprintf(komunikasi,'a');
fclose(komunikasi);
elseif strcmp(buahout,'apel')>0
set(handles.edit6,'string' ,'apel');
kotak=2;
apel=apel+1;
set(handles.edit7,'string' ,kotak)
set(handles.edit2, 'String', apel);
fprintf(komunikasi,'b');
fclose(komunikasi);
elseif strcmp(buahout,'jeruk')>0
set(handles.edit6,'string' ,'jeruk');
kotak=3;
jeruk=jeruk+1;
set(handles.edit7,'string' ,kotak)
set(handles.edit4, 'String', jeruk);
fprintf(komunikasi,'c');
fclose(komunikasi);
elseif strcmp(buahout,'pisang')>0
set(handles.edit6,'string' ,'pisang')
kotak=4;
pisang=pisang+1;
set(handles.edit7,'string' ,kotak)
set(handles.edit5, 'String', pisang);
fprintf(komunikasi,'d');
fclose(komunikasi);
end
% ========================================================
% ========================================================
% ========================================================
end
% ========================================================
end
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L18
% =======================================================
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% 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)
cla;
clc;
global alpukat
global apel
global jeruk
global pisang
alpukat=0;
apel=0;
jeruk=0;
pisang=0;
set(handles.edit1, 'String', '0' );
set(handles.edit2, 'String', '0' );
set(handles.edit4, 'String', '0' );
set(handles.edit5, 'String', '0' );
set(handles.edit6, 'String', '0' );
set(handles.edit7, 'String', '0' );
end
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close all
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 = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
% contentsget(hObject,'Value') returns selected item from popupmenu1
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L19
% --- 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;end
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
end
% --- 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
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
end
% --- Executes during object creation, after setting all properties.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L20
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;end
function edit4_Callback(hObject, eventdata, handles)
% hObject handle to edit4 (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 edit4 as text
% str2double(get(hObject,'String')) returns contents of edit4 as a double
end
% --- Executes during object creation, after setting all properties.
function edit4_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit4 (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;end
function edit5_Callback(hObject, eventdata, handles)
% hObject handle to edit5 (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 edit5 as text
% str2double(get(hObject,'String')) returns contents of edit5 as a double
end
% --- Executes during object creation, after setting all properties.
function edit5_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit5 (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L21
% 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
end
function edit7_Callback(hObject, eventdata, handles)
% hObject handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
end
% Hints: get(hObject,'String') returns contents of edit7 as text
% str2double(get(hObject,'String')) returns contents of edit7 as a double
% --- Executes during object creation, after setting all properties.
function edit7_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit7 (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
end
function edit6_Callback(hObject, eventdata, handles)
% hObject handle to edit6 (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 edit6 as text
% str2double(get(hObject,'String')) returns contents of edit6 as a double
end
% --- Executes during object creation, after setting all properties.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L22
function edit6_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit6 (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;
end
% --- Executes on selection change in popupmenu2.
function popupmenu4_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 = cellstr(get(hObject,'String')) returns popupmenu2 contents as cell array
% contentsget(hObject,'Value') returns selected item from popupmenu2
contents = get(hObject,'Value');
switch contents
case 1
handles.PORT='COM1';
case 2
handles.PORT='COM2';
case 3
handles.PORT='COM3';
case 4
handles.PORT='COM4';
case 5
handles.PORT='COM5';
case 6
handles.PORT='COM6';
case 7
handles.PORT='COM7';
case 8
handles.PORT='COM8';
case 9
handles.PORT='COM9';
case 10
handles.PORT='COM10';
case 11
handles.PORT='COM11';
case 12
handles.PORT='COM12';
case 13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L23
handles.PORT='COM13';
case 14
handles.PORT='COM14';
case 15
handles.PORT='COM15';
end
guidata(hObject,handles);
end
% --- Executes during object creation, after setting all properties.
function popupmenu4_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
end
Hasil Data Percobaan
Thersholding 0.4 dan remove small object 2000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L24
thresholding 0.4 remove small object 500
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L25
thresholding 0,4 remove small object 1000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L26
Thresholding 0.4 remove small object 3000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L27
thresholding 0.5 remove small object 2000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L28
Thersholding 0.3 remove 2000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L29
Thresholding 0.2 remove 2000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI