merah, sedangkan nilai karakter 103 yang dikirim laptop merupakan nilai yang mendeskripsikan bahwa warna benda yang terdeteksi merupakan hijau, sedangkan nilai
karakter 98 yang dikirim laptop merupakan nilai yang mendeskripsikan bahwa warna benda yang terdeteksi merupakan biru, kemudian nilai karakter 97 yang dikirim laptop merupakan
nilai yang mendeskripsikan bahwa warna benda yang terdeteksi merupakan bukan warna dasar. Subrutin yang terdapat didalam “while1” 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.2. Aplikasi MATLAB
Pada sub bab ini akan dijabarkan listing program yang diprogram menggunakan software
MATLAB diantaranya penjelasan tampilan GUI, inisialisasi komunikasi serial, inisialisasi webcam, proses pengolahan citra, dan proses pengenalan warna benda.
4.3.2.1. Tampilan GUI MATLAB
GUI Graphical User Interface yaitu suatu tampilan yang berfungsi untuk 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 pemrosesan data dan lain-lain. Tampilan GUI yang
dibuat dapat ditunjukan pada Gambar 4.31.
Gambar 4.31. Tampilan GUI MATLAB
Terdapat beberapa fasilitas pada tampilan GUI yang digunakan yaitu axes, edit text, popupmenu,
dan push butoon. Fasilitas axes berfungsi untuk menampilkan gambar, grafik,
ataupun diagram. Axes digunakan untuk menampilkan gambar dari benda yang telah diproses menjadi gambar berwarna. Selain axes, terdapat fasilitas edit text yang berfungsi untuk
menampilkan jumlah benda yang telah terdeteksi, nilai data citra RGB, dan menampilkan hasil deteksi sistem. Sedangkan popupmenu berfungsi untuk menampilkan daftar pilihan PORT
komunikasi yang digunakan untuk melakuan komunikasi serial agar laptop dan mikrokontroler dapat saling berhubungan. Bagian yang terakhir yaitu push button. Push button berfungsi
sebagai sebuah tombol yang digunakan untuk mengontrol suatu program yang akan diesekusi dengan cara diklik.
4.3.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 adalah sebagai berikut: data yang dikirimkan
komunikasi=serial‘COM13’; setkomunikasi,
BaudRate ,9600,
DataBits ,8,
parity ,
none ,
StopBits ,1,
FlowControl ,
none ;
fopenkomunikasi; membuka port untuk komunikasi out=fscanfkomunikasi; melihat komunikasi yang diterima
out1=sprintf s
,out; fclosekomunikasi menutup komunikasi
deletekomunikasi menghapus komunikasi clear
komunikasi
4.3.2.3. Inisialisasi Webcam
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.
proses inisialisasi webcam Imaqhwinfo;
vid=videoinput winvideo
,1, RGB24_320x240
;
Perintah program “imaqhwinfo” adalah perintah program untuk menampilkan informasi yang akan disampaikan oleh webcam dan kemudian informasi tersebut akan
diinisialisasi ke dalam program. Hal ini bertujuan agar antara webcam dengan software Matlab dapat melakukan komunikasi. Informasi yang tampil adalah adaptor kamera, port webcam,
jenis warna dan resolusi piksel.
4.3.2.4. Proses Pengolahan Citra
Proses pengolahan citra merupakan suatu proses untuk mengolah suatu kualitas gambar atau citra yang telah diambil 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 proses cropping atau pemotongan gambar. Hal ini bertujuan untuk menghilangkan background atau latar belakang yang tidak dibutuhkan untuk diproses.
gambar yang telah diambil diproses dan diubah menjadi gambar RGB dengan tujuan untuk mempermudah dalam pemrosesan. Langkah selanjutnya yaitu mengubah ke matrik real agar
nilai citra RGB dapat dihitung. Kemudian langkah terakhir yaitu proses penjumlahan data nilai citra RGB yang telah diubah ke matrik real menjadi sebuah nilai.
proses capture gambar gambar=getsnapshotvid;
croping crop=imcropgambar,[124,51 140,51 31,98 27,98];
proses merubah ke bentuk rgb red=crop:,:,1;
green=crop:,:,2; blue=crop:,:,3;
ubah ke matrik real c=doublered255;
c1=doublegreen255; c2=doubleblue255;
merah=sumsumc50 hijau=sumsumc150
biru=sumsumc250
4.3.2.5. Proses Pengenalan Warna Benda
Berdasarkan nilai-nilai dari tabel 4.2, maka dibuat sebuah range yang menentukan warna benda tersebut. Untuk benda merah range data yang digunakan yaitu
merah=15hijau=8biru=8, sedangkan untuk benda hijau range data yang digunakan yaitu merah=3hijau=13biru=12, kemudian untuk benda biru
range data yang digunakan yaitu merah=9hijau=13biru=15, dan untuk
benda bukan warna dasar range data yang digunakan yaitu selain warna merah, hijau dan biru. Dari data tersebut, maka dapat dibuat range nilai untuk mengetahui dan mengenali dari masing-
masing warna benda. Listing programnya adalah sebagai berikut: if
merah=15hijau=8biru=8 sethandles.edit4,
string ,
MERAH ;
merah1=merah1 +1; sethandles.edit5,
String , merah1;
guidatahObject,handles; fprintfkomunikasi,
r ;
pause1; guidatahObject,handles;
elseif merah=3hijau=14biru=12
sethandles.edit4, string
, HIJAU
; hijau1=hijau1 +1;
sethandles.edit6, String
, hijau1; guidatahObject,handles;
fprintfkomunikasi, g
; pause1;
guidatahObject,handles; elseif
merah=9hijau=13biru=15 sethandles.edit4,
string ,
BIRU ;
biru1=biru1 +1; sethandles.edit7, String, biru1;
guidatahObject,handles; fprintfkomunikasi,
b ;
pause1; guidatahObject,handles;
else sethandles.edit4,
string ,
BUKAN WARNA DASAR ;
bukandasar=bukandasar +1; sethandles.edit8,
String , bukandasar;
guidatahObject,handles; fprintfkomunikasi,
a ;
pause1; guidatahObject,handles;
end
Proses berjalannya program jika data memiliki nilai R=15 G=8 B=8 maka akan tampil pada “edit4” bahwa benda yang terdeteksi yaitu merah, kemudian menjumlahkan
nilai merah yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit5” lalu mengirimkan karakter ‘r’ secara serial dan memberi jeda selama satu detik.
Jika data memiliki nilai R=3 G=14 B=12 maka akan tampil pada “edit4” bahwa
benda yang terdeteksi yaitu hijau, kemudian menjumlahkan nilai hijau yang terdeteksi
sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit6” lalu
mengirimkan karakter ‘g’ secara serial dan memberi jeda selama satu detik. Jika data memiliki nilai R=9 G=13 B=15
maka akan tampil pada “edit4” bahwa benda yang terdeteksi yaitu biru, kemudian menjumlahkan nilai biru yang terdeteksi
sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit7” lalu
mengirimkan karakter ‘b’ secara serial dan memberi jeda selama satu detik. apabila data tidak berada didalam range yang ada
maka akan tampil pada “edit4” bahwa benda yang terdeteksi yaitu bukan warna dasar, kemudian menjumlahkan nilai bukan warna dasar yang terdeteksi
sebanyak satu kemudian hasil penjumlahan tersebu t ditampilkan pada “edit8” lalu
mengirimkan karakter ‘a’ secara serial dan memberi jeda selama satu detik.
85
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil pengujian serta pengambilan data pada aplikasi pengenalan objek menggunakan webcam untuk lengan robot pemisah benda berdasarkan warna, dapat diambil
kesimpulan: 1.
Lengan robot sudah dapat bekerja dengan baik dalam proses pengambilan dan pemindahan benda berdasarkan warnanya sesuai dengan tempat yang telah
ditentukan. Tingkat keberhasilannya adalah 100 untuk posisi benda berada di tengah conveyor dan jarak antar benda minimal 2 cm, sedangkan jika jarak
kurang dari 2 cm tingkat keberhasilan 62,5. 2.
Metode pengenalan warna benda dengan menggunakan nilai citra RGB pada masing-masing warna benda dapat berfungsi sesuai dengan rencana. Dan sistem
berhasil melakukan counting sesuai dengan jumlah warna benda yang telah terdeteksi.
3. Waktu yang dibutuhkan keseluruhan sistem tanpa looping untuk menyelesaikan
proses yaitu 25 detik sedangkan waktu yang dibutuhkan sistem dengan menggunakan looping untuk menyelesaikan proses yaitu 33 detik.
5.2. Saran
Saran-saran bagi pengembangan selanjutnya adalah: 1.
Memberikan tambahan variasi warna pada benda agar dapat membandingkan tingkat keakuratan nilai RGB yang range nilainya sudah ditentukan.
2. Menggunakan metode pengenalan warba benda lain untuk mendeteksi benda
berwarna dengan webcam. 3.
Waktu keseluruhan sistem untuk proses pengenalan benda dibuat lebih cepat.