Aplikasi CodeVision AVR Analisa dan Pembahasan Perangkat Lunak

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.