Visualisasi Proses Pemilah Buah Jeruk Sunkist Berdasarkan Ukuran (Software)
-
Upload
amirul-huda -
Category
Documents
-
view
150 -
download
4
Transcript of Visualisasi Proses Pemilah Buah Jeruk Sunkist Berdasarkan Ukuran (Software)
LAPORAN PROYEK AKHIR
VISUALISASI PROSES PEMILAH BUAH JERUK SUNKIST
BERDASARKAN UKURAN
(SOFTWARE)
DISUSUN OLEH :
AMIRUL HUDA
NIM. 1010117421001
PROGRAM STUDI TEKNIK ELEKTRONIKA
POLITEKNIK CALTEX RIAU
PEKANBARU
2013
i
ABSTRAK
Umumnya ukuran jeruk sunkist sangat beragam dan sulit dibedakannya.
Oleh karena itu diperlukan suatu alat yang bertujuan untuk memudahkan dalam
pengenalan jenis jeruk sunkist berdasarkan ukurannya. Dalam proyek akhir ini,
proses pemilahan jeruk sunkist berdasarkan ukuran dilakukan dengan software
pada laptop. Sensor yang digunakan dalam proyek akhir ini adalah webcam
dengan menggunakan Visual Basic sebagai interface dan proses pengolahannya.
Hasil dari webcame diolah menggunakan pengolahan citra yang citranya diubah
menjadi gray-scale, black and white, kemudian dilakukan perhitungan jumlah
pixel. Pemilah jeruk sunkist berdasarkan ukuran ditentukan dari perhitungan
jumlah pixel tersebut. Hasil yang diperoleh pada proyek akhir ini memiliki
persentase keberhasilan memilah sebesar 82,69% dari 13 jeruk sunkist dengan 4
kali percobaan dari masing-masing jeruk sunkist.
Kata Kunci: webcam, pengolahan citra, pemilah.
ii
ABSTRACT
The size of Sunkist oranges are very diverse and difficult to distinguish.
Therefore, a tool that can simplify the identification of sunkist orange spesies by
size is needed. This final project, Sunkist orange sorting process by size with the
software on a laptop. The sensors used in the final project is a webcam with
Visual Basic as the interface and processing process. The results of the webcam
processed using image processing is converted to be gray-scale, black and white,
and then calculate the number of pixels. The sorting a Sunkist orange by size is
determined from the calculation of the number of pixels. The results of analysis
obtained at the end of this project has sort of success percentage 82.69% of the 13
orange Sunkist with 4 trials from each of Sunkist oranges.
Keywords: webcam, image processing, sorting.
iii
KATA PENGANTAR
Assalamualaikum, Wr, Wb
Puji dan Syukur penulis ucapkan kehadirat Allah SWT, karena berkat
rahmat dan hidayah-Nyalah penulis dapat menyelesaikan tugas akhir
dan sekaligus juga menyelesaikan pembuatan laporan yang berjudul
“Visualisasi Proses Pemilah Buah Jeruk Sunkist Berdasarkan Ukuran” untuk
bagian software. Dimana laporan proyek akhir ini merupakan salah satu
persyaratan untuk mengikuti sidang proyek akhir sekaligus syarat kelulusan bagi
mahasiswa Politeknik Caltex Riau.
Penulis menyadari bahwa laporan proyek akhir ini masih terdapat
kekurangan. Oleh sebab itu, saran dan kritik yang bersifat membangun
senantiasa dinantikan demi kemajuan dan perkembangan bersama. Harapan
penulis adalah semoga apa yang telah dituangkan dalam buku ini dapat
bermanfaat bagi penulis dan rekan-rekan mahasiswa khususnya, dan pembaca
pada umumnya. Penulis juga menyampaikan penghargaan dan ucapan terima
kasih yang sebesar-besarnya kepada semua pihak yang telah memberikan
kontribusinya sebelum, sesudah dan selama pelaksanaan penyelesaian proyek
akhir ini, sehingga penulis bisa menyelesaikan laporan Proyek Akhir ini.
Pada kesempatan kali ini penulis juga mengucapkan terima kasih
yang sebesar-besarnya. Untuk itu penulis ucapkan terima kasih kepada :
1. Bapak Dadang Syarif SS, S.Si., M.Sc. selaku Direktur Politeknik
Caltex Riau.
2. Bapak Yusmar Palapa Wijaya, S.Si., M.T. selaku kepala program
studi Teknik Elektronika Politeknik Caltex Riau.
3. Ibu Putri Madona, S.ST., M.T. selaku Dosen Wali yang telah menjaga
dan mendidik penulis selama 3 tahun.
4. Kedua orang tua dan keluarga saya tercinta yang senantiasa
memberikan doa, dukungan dan semangat sehingga saya bisa
menyelesaikan proyek akhir ini.
5. Ibu Retno Tri Wahyuni, S.T., M.T. selaku pembimbing satu yang
iv
telah banyak memberikan pengarahan dan masukan sehingga semua
permasalahan mengenai proyek akhir dapat diselesaikan.
6. Bapak Heri Subagiyo, S.T., M.T. selaku pembimbing dua yang juga
telah banyak memberikan masukan-masukan serta motivasi
untuk menyelesaikan TA.
7. Seluruh dosen Teknik Elektronika.
8. Seluruh dosen dan staf dibagian administrasi Politeknik Caltek Riau.
9. Teman-teman seperjuangan TA satu angkatan G10 Politeknik Caltex
Riau.
10. Seluruh Himpunan Mahasiswa Teknik Elektronika Politeteknik
Caltex Riau yang selalu menjunjung tinggi kebersamaan dalam segala
kondisi.
11. Teman seperjuangan TA yang senantiasa membantu penulis ketika
penulis mendapatkan kesulitan dalam proses pengerjaan TA.
12. Zukhairani efendi yang selalu memberi dukungan dan semangat.
13. Serta semua pihak yang secara langsung maupun tidak langsung
telah membantu dalam pelaksanaan tugas akhir dan penulisan
laporan ini yang tidak dapat saya sebutkan satu-persatu.
Semoga Allah SWT Yang Maha Pengasih dan Maha Penyayang melimpahkan
rahmat-Nya kepada Bapak/Ibu serta rekan-rekan, sebagai imbalan atas segala
jasa yang telah disumbangkan kepada penulis.
Pekanbaru, September 2013
Penulis
v
DAFTAR ISI
ABSTRAK ...................................................................................................... i
ABSTRACT .................................................................................................. ii
KATA PENGANTAR .................................................................................. iii
DAFTAR ISI ................................................................................................. v
DAFTAR GAMBAR ................................................................................... vii
DAFTAR LABEL ...................................................................................... viii
BAB I PENDAHULUAN ............................................................................. 1
1.1 LATAR BELAKANG MASALAH ........................................................... 1
1.2 PERUMUSAN MASALAH ...................................................................... 2
1.3 BATASAN MASALAH ............................................................................ 2
1.4 TUJUAN DAN MANFAAT ...................................................................... 2
1.4.1 Tujuan.................................................................................................. 2
1.4.2 Manfaat ................................................................................................ 2
1.5 SISTEMATIKA PENULISAN .................................................................. 3
BAB II TINJAUAN PUSTAKA .................................................................... 4
2.1 RIVIEW PENELITIAN TERDAHULU .................................................... 4
2.2 LANDASAN TEORI ............................................................................. 4
2.2.1 Pengolahan Citra .................................................................................. 4
2.2.2 RGB..................................................................................................... 5
2.2.3 Gray-Scale ........................................................................................... 6
2.2.4 Black and white ................................................................................... 7
2.2.5 Webcam ............................................................................................... 8
2.2.6 Standar Ukuran Jeruk ........................................................................... 9
vi
BAB III PERANCANGAN DAN PEMBUATAN ....................................... 10
3.1 PERANCANGAN ................................................................................... 10
3.1.1 Blok Diagram.................................................................................... 10
3.1.2 Perancangan Flowchart ..................................................................... 11
3.2 PEMBUATAN PROGRAM .................................................................... 13
3.2.1 Pengambilan Gambar ke Gray Scale ................................................. 13
3.2.2 Program Gray Scale ke Black and White .......................................... 14
3.2.3 Program Perhitungan Pixel Putih ...................................................... 16
3.2.4 Program penerima dan pengiriman data ............................................ 17
3.3 PENGAMBILAN DATA UKURAN SUNKIST ...................................... 18
3.4 PERANCANGAN DAN PEMBUATAN SOFTWARE PADA
MIKROKONTROLLER ......................................................................... 20
3.5 INTERFACE ........................................................................................... 23
BAB IV PENGUJIAN DAN ANALISA ...................................................... 26
4.1 PENGAMBILAN GAMBAR SAAT CONVEYOR BERJALAN ............. 28
4.2 PENGAMBILAN GAMBAR SAAT CONVEYOR BERHENTI ............. 29
BAB V PENUTUP ........................................................................................ 31
5.1 KESIMPULAN ....................................................................................... 31
5.2 SARAN ................................................................................................... 31
DAFTAR PUSTAKA ................................................................................... 32
LAMPIRAN
vii
DAFTAR GAMBAR
Gambar 2.1 Nilai Warna RGB dalam hexadesimal ............................................. 5
Gambar 2.2 Komposisi Warna RGB ................................................................... 6
Gambar 2.3 Webcam Logitec C-170 ................................................................... 8
Gambar 3.1 Blok Diagram Pemilah Buah Berdasarkan Ukuran ....................... 10
Gambar 3.2 Detail Blok Diagram Alat Pemilah Buah Berdasarkan Ukuran ...... 10
Gambar 3.3 Flowchart Alat Pemilah Buah Berdasarkan Ukuran ...................... 12
Gambar 3.4 Pengambilan data pixel berdasarkan diameter (cm) ....................... 19
Gambar 3.5 Flowchart Pemilah Jeruk Sunkist Berdasarkan Ukuran ................. 21
Gambar 3.6 Form proses pemilah buah jeruk Sunkist ...................................... 23
Gambar 4.1 Tampilan pada software ................................................................ 26
Gambar 4.2 Tampilan saat webcam aktif ......................................................... 27
Gambar 4.3 Tampilan saat memproses pemilahan ............................................ 27
Gambar 4.4 Pengambilan Data ketika konveyor berjalan .................................. 28
Gambar 4.5 Pengambilan Data ketika konveyor berhenti ................................. 29
viii
DAFTAR TABEL
Tabel 1. Contoh-contoh warna dalam hexadesimal .............................................. 6
Tabel 2. Kelas penggolongan berdasarkan besar/beratnya ................................... 9
Tabel 3. Percobaan menghitung pixel ............................................................... 21
Tabel 4. Hasil setelah melakukan pengukuran ................................................... 21
Tabel 5. Hasil pemilahan jeruk sunkist berdasarkan ukuran ............................... 29
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Ukuran jeruk sunkist yang sangat beragam dan hampir memiliki kesamaan
dalam bentuk membuat agak sulit dibedakan. Sedangkan Secara obyektif,
diameter buah jeruk merupakan salah satu Standar Nasional Indonesia (SNI) yang
digolongkan atas 4 kelas berdasarkan diameter, hal ini dapat dilihat pada SNI 01-
3165-1992, Badan Standardisasi Nasional (2009). Pada proyek akhir ini, ukuran
diameter tersebut digunakan sebagai pembeda antara jeruk sunkist satu dengan
yang lain, sehingga dapat dikelompokkan mana yang termasuk kelas A, B, C dan
D.
Pada proyek akhir ini adalah mencoba untuk membuat sistem yang modern
dan otomatis dengan bantuan PC (Personal Computer) dan Webcam. Melalui
webcam tersebut komputer dapat mengenali berapa ukuran buah jeruk tersebut
dengan gambar yang diambil. Pengolahan citra (Image Processing) merupakan
suatu metode yang dapat digunakan untuk memproses citra yang diinginkan untuk
mendapat ukuran jeruk tertentu.
Proyek Akhir ini merujuk pada karya Thiang, Leonardus Indrotanoto (2008),
dimana persamaannya terletak pada objek yang diidentifikasi yaitu buah.
Kekurangan dari tugas akhir tersebut adalah hanya mengidentifikasi buah
berdasarkan warna dan ukuran tanpa ada pengaturan kendali dari PC (Personal
Computer), sehingga masih ditemukan kekurangan dalam pengoperasiannya.
Untuk mengatasi hal tersebut, maka perlu ditambahkan proses pengoperasian
yang lebih nyaman dan mudah. Proyek akhir ini berusaha memberikan alternatif
baru dalam ”Visualisasi Proses Pemilah Buah Jeruk Sunkist Berdasarkan
Ukuran”. Kelebihan dari proyek akhir ini adalah dapat mengidentifikasi jenis
jeruk dengan berbeda bentuk dan dapat dikendalikan gerak konveyor dari PC.
Proses identifikasi ukuran jeruk dilakukan dengan 3 langkah, yaitu langkah
pertama melakukan pengambilan gambar sunkist melalui webcam. Langkah kedua
adalah mencari nilai RGB dan menentukan bentuk dari sunkist itu sendiri dengan
mengubah ke gray scale dan black and white, lalu dicari nilai pixelnya. Dan
2
langkah terakhir adalah menentukan apakah nilai pixel yang dihasilkan sesuai
dengan nilai pixel yang ada pada ukuran kelas A, B, C dan D.
1.2 Perumusan Masalah
Untuk merealisasikan Visualisasi proses pemilah buah tersebut, terdapat
beberapa perumusan masalah yang akan diselesaikan, yaitu:.
1. Bagaimana membuat sistem pengambilan gambar pada konveyor.
2. Bagaimana proses menentukan ukuran jeruk Sunkist dengan webcam.
1.3 Batasan Masalah
Penulis akan merancang Visualisasi proses pemilah buah jeruk sunkist ini
dengan batasan-batasan sebagai berikut:
1. Jarak peletakan buah tidak berdekatan.
2. Jeruk sunkist yang dipilah tidak busuk dan tidak ada bercak hitam.
1.4 Tujuan dan Manfaat
1.4.1 Tujuan
Adapun tujuan dari pembuatan tugas akhir ini adalah membuat visualisasi
pemisah buah jeruk sunkist serta alat yang bergerak berdasarkan inputan dari
visual yang dibuat pada komputer.
1.4.2 Manfaat
Dari proyek akhir yang dibuat diharapkan dapat memberikan manfaat
berupa metode baru dalam melakukan pemilahan buah secara otomatis dan mudah
tanpa harus melakukan secara manual.
3
1.5 Sistematika Penulisan
Untuk mempermudah dalam penyelesaian proyek akhir ini, maka penulis
membuat urutan pembahasan sebagai berikut :
BAB I PENDAHULUAN
Dalam bab ini akan dibahas latar belakang, maksud dan tujuan, perumusan
masalah, batasan masalah, dan sistematika pembahasan.
BAB II TINJAUAN PUSTAKA
Dalam bab ini kami menuliskan beberapa teori dasar yang diperlukan dalam
penyelesaian pembuatan sistem “Visualisasi proses pemilah buah jeruk Sunkist
berdasarkan ukuran ”
BAB III PERENCANAAN DAN PEMBUATAN ALAT
Bab ini membahas tentang perencanaan dan pembuatan alat berupa pengacak dan
pemilah, serta realisasi program, dimana mencakup blok diagram rangkaian dan
flowchart dari perencanaan sistem secara lengkap beserta penjelasan cara kerja
dari sistem.
BAB IV PENGUJIAN DAN ANALISA
Bab ini berisi hasil pengambilan data dan analisa terhadap data tersebut, hal-
hal yang menyebabkan adanya kesalahan data ataupun menghambat
proses pembuatan sistem.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari seluruh proses kegiatan proyek akhir dan saran
terhadap perkembangannya kedepan.
DAFTAR PUSTAKA
LAMPIRAN
4
BAB II
TINJAUAN PUSTAKA
2.1 Review Penelitian Terdahulu
Thiang, Leonardus Indrotanoto (2008), pada tugas akhir mereka bertujuan
untuk mengurangi penggunaan sensor warna dan ukuran sehingga penelitiannya
adalah pemisah buah tomat dengan mengklasifikasikan ukuran dan warna, metode
yang digunakan adalah image prosesing, threshold dan edge detection.
Sedangkan pada tugas akhir ini bertujuan agar alat ini bermanfaat bagi
petani jeruk Sunkist, untuk metode yang dilakukan pada tugas akhir ini yaitu
grayscale, black and white dan penghitungan jumlah pixel berwarna putih.
2.2 Landasan Teori
2.2.1 Pengolahan Citra
Pengolahan Citra adalah suatu metode yang digunakan untuk mengolah
gambar sehingga dihasilkan gambar lain yang sesuai dengan keinginan kita.
Untuk mengambil gambar bisa dilakukan oleh kamera atau alat-alat lain yang bisa
digunakan untuk menstrafer gambar misalnya scanner.
Bahasan kali ini berfokus pada pengambilan gambar dengan
menggunakan kamera (webcam). Sehingga citra yang dihasilkan sudah berbentuk
sinyal digital dan mudah diproses oleh komputer.
Citra digital ( digital image ) adalah citra kontinyu yang sudah
didiskritkan, baik koordinat spasial maupun kecerahannya. Citra digital dianggap
sebagai matriks dengan ukuran MxN dimana baris dan kolomnya menunjukkan
titik-titiknya. Citra berwarna menggunakan metode RGB, adapun masing-masing
warna dalam tabel memiliki tiga buah kombinasi angka yaitu R, G dan B yang
menentukan proposi warna merah, hijau dan biru dari warna tersebut. RGB
masing-masing memiliki range antara 0 hingga 63 sehingga jumlah warna yang
5
dapat kita pilih untuk mengisi warna pada sebuah cell di tabel ialah 63x63x63 =
16 juta warna. Tetapi seluruh tabel hanya dapat diisi dengan 256 pilihan warna.
Kita dapat mengubah intensitas warna dari sebuah warna pada tabel dengan cara
menggunakan interrupt-interrupt.
Sering kali citra yang dihasilkan atau didapatkan memiliki kualitas
yang kurang bagus. Hal ini dapat dikarenakan gangguan teknis peralatan yang
digunakan atau adanya noise disekitarnya. Dapat juga dikarenakan pencahayaan
yang kurang optimal. Untuk itu dilakukan manipulasi parameter citra untuk
mempaerbaiki kualitas citra.
2.2.2 RGB
Dasar dari pengolahan citra adalah pengolahan warna RGB pada posisi
tertentu. Dalam pengolahan citra warna dipresentasikan dengan nilai hexadesimal
dari 0x00000000 sampai 0x00ffffff. Warna hitam adalah 0x00000000 dan warna
putih adalah 0x00ffffff. Definisi nilai warna di atas seperti gambar 2.1, variabel
0x00 menyatakan angka dibelakangnya adalah hexadecimal.
Terlihat bahwa setiap warna mempunyai range nilai 00 (angka desimalnya
adalah 0) dan ff (angka desimalnya adalah 255), atau mempunyai nilai derajat
keabuan 256 = 28. Dengan demikian range warna yang digunakan adalah
(28)(2
8)(2
8) = 2
24(atau yang dikenal dengan istilah True Colour pada Windows).
Nilai warna yang digunakan di atas merupakan gabungan warna cahaya merah,
hijau dan biru seperti yang terlihat pada gambar 2.2. Sehingga untuk menentukan
nilai dari suatu warna yang bukan warna dasar digunakan gabungan skala
kecerahan dari setiap warnanya.
6
Dari definisi diatas untuk menyajikan warna tertentu dapat dengan mudah
dilakukan, yaitu dengan mencampurkan ketiga warna dasar RGB, table 1. berikut
memperlihatkan contoh-contoh warna yang bisa digunakan:
Untuk mengetahui kombinasi warna, perlu dibuat suatu program yang dapat
menampilkan warna sesuai dengan nilai yang dimasukkan sehingga dapat dicoba
berbagai macam kombinasi warna RGB seperti gambar 2.2.
2.2.3 Gray scale
Proses awal yang banyak dilakukan dalam image processing adalah
mengubah citra berwarna menjadi citra gray scale, hal ini digunakan untuk
menyederhanakan model citra. Seperti telah dijelaskan di depan, citra berwarna
terdiri dari 3 layer matrik yaitu R-layer, G-layer dan B-layer. Sehingga untuk
melakukan proses-proses selanjutnya tetap diperhatikan tiga layer di atas. Bila
setiap proses perhitungan dilakukan menggunakan tiga layer, berarti dilakukan
tiga perhitungan yang sama. Sehingga konsep itu diubah dengan mengubah 3
7
layer di atas menjadi 1 layer matrik gray scale dan hasilnya adalah citra gray
scale. Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan.
Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing r, g
dan b menjadi citra gray scale dengan nilai s, maka konversi dapat dilakukan
dengan mengambil rata-rata dari nilai r, g dan b sehingga dapat dituliskan
menjadi: …………………………………(2.1)
2.2.4 Black and white
Black and white adalah sebuah citra pixel-pixel yang nilai intensitasnya di
bawah 128 diubah menjadi hitamsedangkan pixel-pixel yang nilai intensitasnya di
atas 128 diubah menjadi putih. Dalam pengolahan citra digital Black & White
disebut juga dengan citra biner. Sesuai kutipan dari Chandra Wijaya (2010) yang
mendefinisikan black & white sebagai berikut;
“Black and white adalah sebuah citra pixel-pixel pada gambar yang nilai
intensitasnya di bawah 128 diubah menjadi hitam (nilai intensitas = 0) jadi
hanya berwarna hitam atau putih saja, sedangkan pixel-pixel yang nilai
intensitasnya di atas 128 diubah menjadi putih (nilai intensitas =1).
Black and white disebut juga citra biner. “
Citra biner adalah citra digital yang hanya memiliki dua nilai yang
mungkin untuk setiap pixel . Biasanya dua warna yang digunakan untuk citra
biner hitam dan putih meskipun setiap dua warna bisa digunakan. Warna
yang digunakan untuk objek pada gambar adalah warna foreground sedangkan
sisanya gambar adalah warna latar belakang.
Citra biner adalah citra yang melalui proses pemisahan piksel – piksel
berdasarkan derajat keabuan yang dimiliki. Pembentukan citra biner memerlukan
nilai batas keabuan yang akan digunakan sebagai nilai patokan. Pixel dengan
derajat keabuan lebih besar dari nilai batas akan diberi nilai 1 dan sebaliknya
piksel dengan derajat keabuan lebih kecil dari nilai batas akan diberi nilai 0.
Sesuai kutipan dari Ferdinand Simanjuntak (2009) yang mendefinisikan citra
biner sebagai berikut ;
8
“Citra biner merupakan citra yang telah melalui proses pemisahan
piksel – piksel berdasarkan derajat keabuan yang dimiliki. Pembentukan
citra biner memerlukan nilai batas keabuan yang akan digunakan
sebagai nilai patokan. Pixel dengan derajat keabuan lebih besar dari
nilai batas akan diberi nilai 1 dan sebaliknya piksel dengan derajat
keabuan lebih kecil dari nilai batas akan diberi nilai 0”.
2.2.5 Webcam
Webcam atau web camera adalah sebuah kamera video digital kecil yang
dihubungkan ke komputer melalui (biasanya) port USB ataupun port COM.
Istilah webcam merujuk pada teknologi secara umumnya, sehingga kata web
terkadang diganti dengan kata lain yang mendeskripsikan pemandangan yang
ditampilkan di kamera.
Metode yang paling umum pada webcam adalah merubah gambar ke dalam
bentuk file JPEG dan menguploadnya ke web server menggunakan File Transfer
Protocol(FTP). Frame rate mengindikasikan jumlah gambar sebuah software
dapat ambil dan transfer dalam satu detik. Untuk streaming video, dibutuhkan
minimal 15 frame per second (fps) atau idealnya 30 fps.. Sebuah web camera
tidak harus selalu terhubung dengan komputer, ada web camera yang memiliki
software webcam dan web server bulit-in, sehingga yang diperlukan hanyalah
koneksi internet. Web camera seperti ini dinamakan “network camera”. Kita juga
bisa menghindari penggunaan kabel dengan menggunakan hubungan radio,
koneksi Ethernet ataupun WiFi.
Gambar 2.3 Webcam Logitec C-170
9
2.2.6 Standar Ukuran Jeruk
Jeruk memiliki ukuran yang berbeda-beda sehingga dalam
penggolongannya dibagi menjadi 4 bagian yaitu kelas A, kelas B, kelas C dan
kelas D. Kelas penggolongan jeruk berdasarkan besar/beratnya dapat dilihat pada
tabel 2 yang telah ditentukan oleh Badan Standardisasi Nasional (2009), tentang
SNI 01-3265-1992.
Tabel 2. Kelas penggolongan berdasarkan besar/beratnya
10
BAB III
PERANCANGAN DAN PEMBUATAN
3.1 Perancangan
3.1.1 Blok Diagram
Gambar 3.1 Blok Diagram Pemilah Buah Berdasarkan Ukuran
Alat pemisah jeruk ini memiliki kemampuan membedakan secara
digital sehingga dapat membedakan ukuran dari buah jeruk yang akan
dipisahkan. Gambar diambil oleh sensor yang berupa webcam, dan gambar
tersebut akan diolah oleh komputer untuk membedakan ukuran jeruk yang
akan diukur. Bab ini dibagi menjadi dua bagian yaitu bagian pertama yang
membahas perangkat keras (hardware) dan yang kedua bagian perangkat
lunak (Software) yang digunakan untuk mengolah ukuran jeruk tersebut dan
hubungan ke perangkat keras.
Gambar 3.2 Detail Blok Diagram Alat Pemilah Buah Berdasarkan Ukuran
Webcam PC (Personal
Computer) ATmega32 Conveyor dan
Aktuator
11
Dari gambar detail blok diagram dapat dijelaskan sebagai berikut:
Informasi data yang berupa objek gambar dari Kamera Webcam yang
dimonitoring oleh laptop atau PC (Personal Computer). setelah komputer
menerima hasil informasi tersebut maka data informasi tersebut akan
dimanipulasi di komputer dengan menggunakan metode segmentasi ukuran
menjadi suatu data yang diinginkan untuk proses selanjutnya. Kemudian
dikirimkan data tersebut melalui RS232 (USB Serial Converter) yang
terhubung pada ATMega 32 dan rangkain driver motor. Lalu jika jeruk
berukuran kecil, maka akan memerintahkan Motor Servo C untuk menutup
jalan dari Konveyor. Dan jeruk langsung masuk ke dalam tempat yang telah
di sediakan. Sebelum sampai di tempat yang telah disediakan tersebut, jeruk
akan mengenai Limit Switch yang berfungsi agar motor servo yang dalam
keadaan menutup tadi akan kembali terbuka. Begitu juga untuk motor servo
B (jeruk ukuran sedang) da motor servo A (untuk ukuran besar). Setelah
proses ini selesai, maka kamera mulai mengambil gambar dari buah jeruk
Sunkist.
Webcam yang digunakan adalah Webcam Logitec C-170 usb 2.0 yang
telah memiliki spesifikasi sebagai berikut: Video Capture : 640 x 480, Pixels
Still image capture up to 5 Mega pixels (software enhanced) dan Hi speed
usb 2.0 certified.
Pada proyek akhir ini hanya membahas bagian softwarenya saja yang
akan dijalankan pada laptop/PC.
3.1.2 Perancangan Flowchart
Bahasa yang digunakan adalah bahasa pemrograman Visual Basic
6.0. Pemilihan bahasa pemrograman ini karena pada kenyataannya bekerja
pada platform berbasis windows sehingga bahasa pemrograman ini
merupakan menggunakan GUI (Graphics User Interface).
12
Perancangan software ini terdiri dari beberapa bagian yang bertujuan
memisahkan buah jeruk Sunkist berdasarkan ukuran. Di bawah ini
merupakan blok diagram dan flowchart dari bagian perancangan software.
START
Start, Stop,
Mikro
Apakah Start
diklik?
Webcam aktif dan
kirim data ke mikro
Start
Apakah Stop
diklik?
Apakah ada
data 1 dari
mikro?
Webcam tidak aktif
dan kirim data ke
mikro Stop Ambil gambar
Gambar diubah ke gray scale
lalu ke Black and White, dihitung
jumlah pixel putihnya dan
membandingkan data yang
sesuai kelas
Kelas = A Kelas = B Kelas = C Kelas = D
Pixel putih >
10531
Pixel Putih >
7573 dan Pixel
Putih <10530
Pixel putih >
5515 dan Pixel
Putih <7572
Ya
Tidak
Tidak
Ya
Ya
Tidak
Tidak
Ya
Ya
Ya
Tidak
END
Tidak
Kirim data ke
mikro kelas = 1
Kirim data ke
mikro kelas = 2
Kirim data ke
mikro kelas = 3
Kirim data ke
mikro kelas = 4
Gambar 3.3 Flowchart Alat Pemilah Buah Berdasarkan Ukuran
13
Keterangan dari flowchart diatas, ketika alat aktif dan ada perintah
masukkan start dari interface konveyor akan bergerak dan webcam langsung
aktif untuk siap mengambil gambar pada konveyor, saat tidak ada benda
akan kembali ke proses deteksi. Saat sudah adanya data dari mikro maka
gambar yang tadi akan di picture lalu diubah ke gray scale kemudian ke
black and white, setelah itu akan menghitung berapa jumlah pixel yang putih
saat diubah ke black and white, saat sudah dapat hasil pixelnya maka akan
dibandingkan dengan data pixel buah jeruk kelas A, B, C atau D. Saat
sudah diketahui hasilnya maka memberi perintah ke mikro untuk
menggerakkan aktuator yang sesuai dengan fungsinya.
3.2 Pembuatan Program
3.2.1 Pengambilan Gambar ke Gray scale
Proses pengambilan gambar tiap frame menggunakan fungsi dari
platform yang ada pada Windows, yaitu dengan menggunakan fungsi yang
terdapat pada file avicap32.dll. untuk dapat mengakses fungsi ini, harus
dilakukan install driver dari kamera agar computer mengenali adanya
kamera sehingga proses pengambilan gambar dapat dilakukan. Pada
program visual basic digunakan tools bernama VBTools untuk mengambil
gambar tiap frame dari kamera yang sudah dikenali oleh komputer atau
laptop. VBTools memiliki dua jenis toolbox, yaitu VideoOCX yang
berfungsi sebagai tampilan dari gambar dan VideoOCXTools yang
berfungsi sebagai image prosesing sehingga proses untuk mengubah gambar
tidak memerlukan listing program dan hanya memanggil tools tersebut.
Dibawah ini adalah listing program yang dipakai untuk memanggil tools
VideoOCX dan memulai pengambilan gambar tiap framenya dan langsung
di ubah ke gray scale.
Dim matrix As Variant
Dim x As Integer
Dim y As Integer
Dim i As Intege
14
' Capture one image
VideoOCX1.Capture (m_Image)
' Get access to the image pixel matrix
matrix = VideoOCX1.GetMatrix(m_Image)
' Simple example : Invert the colors of our image
For y = 0 To VideoOCX1.GetHeight - 1
For x = 0 To VideoOCX1.GetWidth – 1
matrix(x, y, 0) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
matrix(x, y, 1) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
matrix(x, y, 2) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
Next x
Next y
' Very important : Release the matrix and update the image handle
VideoOCX1.ReleaseMatrixToImageHandle m_Image
' Display the processing result in our own window
Picture2 = VideoOCX1.ToPicture(m_Image)
3.2.2 Program Gray scale ke Black and white
Gambar yang sudah di ambil dari webcame dan di ubah ke gray
scale di simpan di pictucebox2 setelah berada di picture2 maka akan
diubah ke black and white pada picturebox3 dengan program sebagai
berikut:
Const IntPixelX = 320
Const IntPixelY = 240
Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long
Dim x, y As Integer
Dim Merah, Hijau, Biru, Abu2 As Integer
Dim nilai As Integer
nilai = HScroll1.Value
15
Text1.text = nilai
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Pixels(x, y) = Picture2.Point(x, y)
Next y
Next x
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Merah = Pixels(x, y) And &HFF
If (Merah < nilai) Then
Abu2 = 0
ElseIf (Merah > nilai) Then
Abu2 = 255
End If
Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod &H100
If (Hijau < nilai) Then
Abu2 = 0
ElseIf (Hijau > nilai) Then
Abu2 = 255
End If
Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod &H100
If (Biru < nilai) Then
Abu2 = 0
ElseIf (Biru > nilai) Then
Abu2 = 255
End If
16
Pixels(x, y) = RGB(Abu2, Abu2, Abu2)
Next y
Next x
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Picture3.PSet (x, y), Pixels(x, y)
Next y
Next x
Dari program diatas dapat dijelaskan bahwa ketika nilai warna
merah, hijau dan biru pada saat sudah di ubah ke gray scale dibawah nilai
set point dari scroll yang ada pada Visual Basic maka akan berwarna hitam
dan ketika nilainya besar dari set point scroll maka akan berwarna putih.
Hal ini akan berulang hingga hitungan pixel x dan y berakhir.
3.2.2 Program Perhitungan Pixel Putih
Dim x As Long, y As Long
Dim h As Long, count As Long
Dim o As String
For x = 0 To Picture3.ScaleWidth - 1
For y = 0 To Picture3.ScaleHeight - 1
h = GetPixel(Picture3.hdc, x, y)
If h = vbWhite Then
count = count + 1
End If
DoEvents
Next
Next
17
Text3.text = count
Pada program ini adalah menghitung jumlah pixel putih dari jeruk
Sunkist yang sudah diubah gambarnya ke black and white pada program
3.2.1. lalu jumlah pixel putih dapat dihitung dengan adanya
Count=Count+1 jadi selama pembacaan picturebox3 ada warna pixel putih
makan akan selalu di tambah 1, sehingga di dapatlah nilai total pixel putih
ketika hitungan tiap pixel telah selesai.
3.2.3 Program penerima dan pengiriman data
If MSComm1.CommEvent = comEvReceive Then
g = MSComm1.Input
Text8.text = g
If g = 1 Then
text = 0
MSComm1.Output = text
Text2.text = text
g = 0
Timer3.Enabled = True
Timer2.Enabled = True
End If
End If
Pada program ini yaitu sebagai penerima data dari mikro yang akan
di proses pada visual basic. Ketika data yang diterima adalah 1 maka akan
melakukan proses pada timer3 yang perintahnya yaitu menutup pintu
keluarnya jeruk Sunkist, ketika timer3 telah selesai maka dilanjutkan ke
timer2 yang berisikan keseluruhan proses gray scale, black and white,
hitung pixel putih, dan termasuk kelas mana buah jeruk tersebut. Untuk
memberi perintah pada mikro untuk mengaktifkan konveyor, penghalang
dan lain-lain adalah sebagai berikut:
18
text = 2
MSComm1.Output = text
Text2.text = text
Nilai text = 2 ini tergantung dari perintah yang ada pada mikro akan
mengaktifkan aktuator yang diinginkan.
Kemudian pada MSComm1.output = text inilah perintah dari visual
basic dikirimkan ke mikro melalui komunikasi serial yang menggunakan
kabel USB to RS232.
3.3 Pengambilan Data Ukuran Sunkist
Setelah membuat program yang sudah terdiri dari pengaktifan webcame,
mengambil gambar lalu mengubahnya ke gray scale dan terakhir mengubahnya ke
black and white maka hal terakhir dalam pembuatan adalah mengambil data jeruk
Sunkist berdasarkan pixel gambar putih yang sudah diproses, hal ini dilakukan
dengan cara membuat sebuah lingkaran dari kertas dengan diameter 7 cm, 6 cm
dan 5 cm dengan jarak webcam dengan konveyor 22,5 cm sehingga didapatlah
data sebagai berikut:
19
Gambar 3.4 Pengambilan data pixel berdasarkan diameter (cm)
Maka dari gambar 3.4 pengambilan data pixel berdasarkan diameter (cm)
didapatlah data dengan diubah ke table sebagai berikut:
Tabel 3. Percobaan menghitung pixel
Diameter lingkaran yang dibuat (Cm) Diameter pada pengolahan (Pixel)
7 10530
6 7572
5 5514
Sehingga dari data tersebut maka didapat ketentuan sebagai berikut:
20
Tabel 4. Hasil setelah melakukan pengukuran
Kelas Sunkist Diameter (Cm) Diameter (Pixel)
A >7 >10531
B 6,1-7,0 7573-10530
C 5,1-6,0 5515-7572
D <5 <5514
3.4 Perancangan dan Pembuatan Software pada Mikrokontroller
Apakah ada data
dari PC ?
Apakah konveyor
start ?
Y
Y
Motor konveyor
aktif
Apakah konveyor
stop ?
Y
Motor konveyor
mati
Apakah pnghalang
jeruk membuka ?
Buah keluar
Y
T
Apakah
penghalang
mengenai limit
switch 4 ?
T
Penghalang
menutup
Y
Apakah jeruk
mengenai limit
swicth 5 ?
T
START
Inisialisasi
(start,stop,data)
Y
Konveyor off
Mengirim data ke
PC
1
21
Apakah data
= 1 ?
Apakah buah
mengenai limit
switch 1 ?
Y
T
END
Apakah data
= 2 ?
Apakah buah
mengenai limit
switch 2 ?
Y
T
Apakah data
= 3 ?
Apakah buah
mengenai limit
switch 3 ?
Y
T
T T T
YY
T
Y
1
Motor kelas A
aktif menutup 90
derjat
Motor kelas B
aktif menutup 90
derjat
Motor kelas C
aktif menutup 90
derjat
Motor kelas A
aktif membuka
90 derjat dan
membuka
penghalang
Motor kelas B
aktif membuka
90 derjat dan
membuka
penghalang
Motor kelas C
aktif membuka
90 derjat dan
membuka
penghalang
Motor kelas
A,B,C aktif
membuka
Gambar 3.5 Flowchart Pemilah Jeruk Sunkist Berdasarkan Ukuran
Dari diagram alir tersebut, pada saat inisialisasi hardware selesai maka
saat start,setelah menerima data dari PC / laptop :
Bila tombol konveyor start ditekan, jika Ya maka konveyor aktif. Jika
Tidak masuk kekondisi dua yaitu data konveyor stop.
Motor penghalang jeruk sunkist pada wadah membuka. Penghalang
mengenai limit switch 4 maka motor penghalang jeruk sunkist
menutup kembali.
Jika jeruk mengenai limit switch 5 maka konveyor berhanti. Jika tidak
maka jeruk sunkist langsung masuk ke kotak D.
Jika data jeruk yang di terima dari PC berukuran kecil atau sama
dengan 1, maka Motor kelas A aktif menutup 90° dan menutup jalan
dari Konveyor, lalu konvoyor aktif. Jeruk langsung masuk ke dalam
tempat yang telah di sediakan. Sebelum sampai di tempat yang telah
disediakan tersebut, jeruk akan mengenai Limit Switch yang berfungsi
agar motor servo yang dalam keadaan menutup tadi akan kembali
terbuka.
22
Begitu juga untuk Motor kelas B (jeruk ukuran sedang) dan motor
kelas C (untuk ukuran besar).
Jika tidak diketahui ukuran dari jeruk tersebut, maka semua motor
servo A, B, dan C aktif membuka. Sehingga jeruk langsung masuk ke
kotak ke empat yang telah di sediakan.
Setelah proses ini selesai, maka kamera mulai mengambil gambar dari
buah jeruk Sunkist.
Jika dibuat pada program menjadi seperti dibawah ini, (motor servo
bergerak 90° :
#include <mega32.h>
#include <delay.h>
void main(void)
{
PORTD=0×00;
DDRD=0×01;//portd.0 sebagai output
// Analog Comparator initialization
// Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
while (1)
void buka0()
{ PORTA.0=1;//memberikan pulsa high
delay_ms(1);//pulsa high diberikan selama 1 ms
PORTA.0=0; delay_ms(20);
}
void tutup0()
{ PORTA.0=1;//memberikan pulsa high
delay_ms(2);//pulsa high diberikan selama 2 ms
PORTA.0=0; delay_ms(20);
};
}
23
3.5 Interface
Gambar 3.6 Form proses pemilah buah jeruk Sunkist
Keterangan:
1. Layar monitor dari kamera dalam bentuk warna
2. Layar monitor dari kamera dalam bentuk gambar gray scale
3. Layar monitor hasil pengolahan dari gray scale ke black and white
4. Nilai range atau batasan ketika ingin merubah hasil gray scale ke black
and white
5. Hasil perhitungan pixel putih dari monitor black and white
6. Hasil kelas jeruk setelah dari jumlah pixel
7. Jumlah jeruk yang sudah diproses berdasarkan kelasnya
Tombol pada form pemilah buah jeruk sunkist adalah sebagai berikut:
Start
Tombol ini digunakan untuk mengaktifkan webcam yang akan mengambil
tiap frame dan akan mengaktifkan konveyor.
Driver
1
2
3
4
5
6
7
24
Tombol ini digunakan untuk melihat driver webcam yang terdapat pada
PC ataupun Laptop.
Stop
Tombol ini digunakan untuk menon-aktifkan webcame dan juga konveyor
yang tadinya sudah aktif.
Grayscale
Tombol ini digunakan untuk mengubah hasil dari webcam menjadi gambar
grayscale yang dilakukan secara manual.
Ubah ke black and white
Tombol ini digunakan untuk mengubah gambar grayscale ke black and
white.
Hitung dan hasil pixel
Tombol ini digunakan untuk menghitung jumlah pixel putih yang terdapat
pada picturebox bagian black and white
Hitung jumlah buah secara manual
Tombol ini digunakan untuk menambah jumlah jeruk yang sudah dideteksi
berdasarkan perbandingan nilai pixel putih.
Hapus jumlah semua buah
Tombol ini digunakan untuk menghapus jumlah kelas buah yang sudah
terhitung pada frame jumlah buah sehingga jumlah buah kembali nol.
Semua proses pemilah (kalibrasi)
Tombol ini digunakan untuk mencari nilai pada range black and white agar
tidak ada warna putih selain dari jeruk sunkist, pada tombol ini meliputi
pengambilan gambar yang akan di ubah ke gray scale dan ke black and
white serta perhitungan pixel putih dan terakhir termasuk ke kelas mana
buah jeruk sunkist tersebut.
Start Konveyor
Tombol ini digunakan untuk mengaktifkan konveyor tanpa harus
mengaktifkan webcam.
Stop Konveyor
Tombol ini digunakan untuk menon-aktifkan konveyor tanpa harus
mengaktifkan webcam.
25
Servo A 90
Tombol ini digunakan untuk membuka penghalang yang menuju kewadah
kelas A dengan manual.
Servo A -90
Tombol ini digunakan untuk menutup penghalang yang menuju kewadah
kelas A dengan manual.
Servo B 90
Tombol ini digunakan untuk membuka penghalang yang menuju kewadah
kelas B dengan manual.
Servo B -90
Tombol ini digunakan untuk menutup penghalang yang menuju kewadah
kelas B dengan manual.
Servo C 90
Tombol ini digunakan untuk membuka penghalang yang menuju kewadah
kelas C dengan manual.
Servo C -90
Tombol ini digunakan untuk menutup penghalang yang menuju kewadah
kelas C dengan manual.
Buka pintu
Tombol ini digunakan untuk mengeluarkan buah jeruk sunkist dari wadah
yang belum di pisahkan berdasarkan kelasnya.
Tutup pintu
Tombol ini digunakan untuk menghalang buah jeruk sunkist dari wadah
yang belum di pisahkan berdasarkan kelasnya.
26
BAB IV
PENGUJIAN DAN ANALISA
Pengujian dan analisa ini dilakukan dengan tujuan untuk memastikan
apakah sistem yang dibuat telah memenuhi kriteria sebagaimana yang
diinginkan. Pengujian ini dilakukan secara bertahap dan berulang kali agar
didapatkan data yang lebih akurat dan presisi, sehingga memudahkan dalam
melakukan analisa. Pengujian dan analisa ini terdiri dari 2 bagian, yaitu
pengujian pengambilan data saat konveyor bergerak dan saat konveyor
berhenti.
Sebelum masuk ke bagian pengujian dan analisa tersebut, berikut
dijelaskan prosedur yang telah dilakukan dalam penggunaan Visualisasi
Proses Pemilah Jeruk Sunkist Berdasarkan Ukuran.
1. Menghubungkan kabel webcam dan USB converter ke PC/laptop yang
sudah terdapat software berikut:
Gambar 4.1 Tampilan pada software
27
2. Memilih software webcam dan mengaktifkan pengambilan gambar.
Gambar 4.2 Tampilan saat webcam aktif
3. Kemudian mengkalibrasinya dengan mengubah scroll sesuai dengan
keinginan dengan hasil gambar dan pixel yang putih yang sempurna.
Gambar 4.3 Tampilan saat memproses pemilahan
28
4. Kemudian hal terakhir yang dilakukan adalah mengklik start konveyor.
Lalu untuk menghentikan klik stop konveyor.
4.1 Pengambilan gambar saat konveyor berjalan
Pada pengujian ini meletakkan jeruk sunkist tepat diatas konveyor yang
bergerak dan tidak tepat di daerah pengambilan gambar, karena pada program
terdapat ketika daerah tertentu tersebut berwarna putih pada pixel black and
white maka akan dilanjutkan proses pengambilan gambar dari gray scale ke
black and white lalu ke proses pemilahan. Akan tetapi hal ini sangat sulit
ketika konveyor bergerak karena pergerakan konveyor yang sangat cepat dan
proses pemilahan gambar yang sedikit lama.
Gambar 4.4 Pengambilan Data ketika konveyor berjalan
Dilihat dari gambar 4.4 saat konveyor berjalan maka pengambilan data
untuk memilah jeruk sunkist berdasarkan ukuran tidak berhasil. Dan saat ingin
menurunkan kecepatan konveyor dengan mengurangi tegangan, hal ini
menyebabkan konveyor tidak dapat berjalan.
29
4.2 Pengambilan gambar saat konveyor berhenti
Pada pengujian ini yaitu meletakkan jeruk sunkist tepat diatas daerah
pengambilan gambar yang kemudian diambil gambar gray scale lalu
mengkalibrasi nilai yang akan menghasilkan gambar black and white
sempurna tanpa ada warna putih lain selain dari jeruk sunkist seperti gambar
dibawah ini.
Gambar 4.5 Pengambilan Data ketika konveyor berhenti
Dengan kondisi konveyor yang diam dan mengantarkan pada wadahnya
didapatlah data sebagai berikut:
Tabel 5. Hasil pemilahan jeruk sunkist berdasarkan ukuran
No Ukuran
diameter
jeruk
(cm)
Kelas jeruk
berdasarkan
diameter
(cm)
Data 1
kelas jeruk
saat pada
visualisasi
Data 2
kelas jeruk
saat pada
visualisasi
Data 3
kelas jeruk
saat pada
visualisasi
Data 4
kelas jeruk
saat pada
visualisasi
1 6,4 B B B B B
2 6,7 B B B * B
30
3 7,75 A A A A A
4 6,8 B * B * B
5 7,73 A A A A A
6 7,3 A A A A A
7 7,9 A A A A A
8 6,8 B B * B B
9 5,9 C C * * C
10 6,7 B * B B *
11 6,3 B B * B B
12 6,5 B B B B B
13 6,6 B B B B B
Ket : * = Jeruk sunkist tidak terproses (ke wadah yang salah)
Sehingga dari data diatas dapat dihitung persentase keberhasilan memilah
jeruk Sunkist berdasarkan ukuran dari 13 jeruk yang masing-masing di ambil
datanya sebanyak 4 kali sebagai berikut:
Persentase keberhasilan memilah =
= 82,69%
31
BAB V
PENUTUP
5.1 Kesimpulan
Setelah melakukan pengujian dan analisa pada proyek akhir ini maka
dapat disimpulkan bahwa:
1. Proses pengolahan citra yang akan dilakukan untuk menghitung jumlah
pixel putih dengan sempurna yaitu saat kondisi konveyor dihentikan dan
benda tepat dibawah webcam.
2. Pengelompokan kelas jeruk pada sistem ini berdasarkan jumlah pixel
putih, dimana pixel putih lebih besar dari 10531 merupakan kelas A, 7573
sampai 10530 merupakan kelas B, 5515 sampai 7572 merupakan kelas C,
dan lebih kecil dari 5514 merupakan kelas D.
3. Sistem yang dibuat pada proyek akhir memiliki tingkat keberhasilan
sebesar 82,69% dengan percobaan sebanyak 52 kali untuk 13 buah jeruk
Sunkist.
5.2 Saran
Berikut beberapa hal yang disarankan oleh penulis untuk pengembangan
sistem ini, yaitu:
1. Mengganti jeruk sunkist dengan jeruk lokal dan menggunakan metode lain
untuk mengetahui diameter jeruk selain menghitung pixel putih maupun
hitam pada proses black and white.
2. Memperhitungkan dan membuat mekanisme pengeluaran buah jeruk
sunkist satu per satu.
32
DAFTAR PUSTAKA
Badan Standardisasi Nasional. (2009). Jeruk keprok. Diambil 04 september 2012
dari http://sisni.bsn.go.id/index.php?/sni_main/sni/detail_sni/9482
Feri. (2004). Grayscale. Diambil 20 juli 2012 dari
http://www.total.or.id/info.php?kk .
Sigit, Riyanto. (2006). Dasar Pengolahan Citra (1). Diambil 18 juli 2012 dari:
lecturer.eepis-its.edu/~riyanto/citra-bab2.pdf.
Sigit, Riyanto. (2006). Dasar Pengolahan Citra (2). Diambil 18 juli 2012 dari:
lecturer.eepis-its.edu/~riyanto/citra-bab3.pdf.
Simanjuntak , Ferdinand. (2009). Pengolahan Citra Digital. Diambil 21 juli 2012
dari
http://www.ittelkom.ac.id/library/index.php?view=article&catid=15%3Ape
mrosesan-sinyal&id=573%3Apengolahan-citra-
digital&option=com_content&Itemid=15
Thiang, Leonardus Indrotanoto. (October 2008). Otomasi Pemisah Buah Tomat
Berdasarkan Ukuran Dan Warna Menggunakan Webcam Sebagai Sensor.
Pengambilan Gambar, 41-42.
LAMPIRAN
1. Program keseluruhan pada Visual Basic 6
-----------------------------------------------------------------------------------------
Dim text As String
Dim g As String
Public a As Long
Public b As Long
Public c As Long
Public d As Long
-----------------------------------------------------------------------------------------
'Pengaktifan Webcame
Private Sub Command1_Click()
VideoOCX1.SetErrorMessages (False)
If Not VideoOCX1.Init Then
MsgBox VideoOCX1.GetLastErrorString
Else
m_Image = VideoOCX1.GetColorImageHandle
VideoOCX1.SetPreview (True)
VideoOCX1.Start
End If
End Sub
-----------------------------------------------------------------------------------------
„Kirim gerak servoA 90
Private Sub Command10_Click()
text = 2
MSComm1.Output = text
Text2.text = text
End Sub
-----------------------------------------------------------------------------------------
„Kirim gerak servoA -90
Private Sub Command11_Click()
Label7.Caption = 3
text = 3
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
End Sub
-----------------------------------------------------------------------------------------
„Kirim gerak servoB 90
Private Sub Command12_Click()
text = 4
MSComm1.Output = text
Text2.text = text
End Sub
-----------------------------------------------------------------------------------------
„Kirim gerak servoB -90
Private Sub Command13_Click()
Label7.Caption = 3
text = 5
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
End Sub
-----------------------------------------------------------------------------------------
„Kirim gerak servoC 90
Private Sub Command14_Click()
text = 6
MSComm1.Output = text
Text2.text = text
End Sub
-----------------------------------------------------------------------------------------
„Kirim gerak servoC -90
Private Sub Command15_Click()
Label7.Caption = 3
text = 7
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
End Sub
-----------------------------------------------------------------------------------------
„Pemilahan buah secara keseluruhan dengan manual
Private Sub Command16_Click()
'a
Dim matrix As Variant
Dim x As Integer
Dim y As Integer
Dim i As Integer
' Capture one image
VideoOCX1.Capture (m_Image)
' Get access to the image pixel matrix
matrix = VideoOCX1.GetMatrix(m_Image)
' Simple example : Invert the colors of our image
For y = 0 To VideoOCX1.GetHeight - 1
For x = 0 To VideoOCX1.GetWidth - 1
matrix(x, y, 0) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
matrix(x, y, 1) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
matrix(x, y, 2) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
Next x
Next y
' Very important : Release the matrix and update the image handle
VideoOCX1.ReleaseMatrixToImageHandle m_Image
' Display the processing result in our own window
Picture2 = VideoOCX1.ToPicture(m_Image)
'b
Const IntPixelX = 320
Const IntPixelY = 240
Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long
Dim Merah, Hijau, Biru, Abu2 As Integer
Dim nilai As Integer
nilai = HScroll1.Value
Text1.text = nilai
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Pixels(x, y) = Picture2.Point(x, y)
Next y
Next x
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Merah = Pixels(x, y) And &HFF
If (Merah < nilai) Then
Abu2 = 0
ElseIf (Merah > nilai) Then
Abu2 = 255
End If
Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod &H100
If (Hijau < nilai) Then
Abu2 = 0
ElseIf (Hijau > nilai) Then
Abu2 = 255
End If
Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod &H100
If (Biru < nilai) Then
Abu2 = 0
ElseIf (Biru > nilai) Then
Abu2 = 255
End If
Pixels(x, y) = RGB(Abu2, Abu2, Abu2)
Next y
Next x
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Picture3.PSet (x, y), Pixels(x, y)
Next y
Next x
'c
Dim m As Long, n As Long
Dim h As Long, count As Long
Dim o As String
For m = 0 To Picture3.ScaleWidth - 1
For n = 0 To Picture3.ScaleHeight - 1
h = GetPixel(Picture3.hdc, m, n)
If h = vbWhite Then
count = count + 1
End If
DoEvents
Next
Next
Text3.text = count
'd
Dim bin As Long
bin = Val(Text3.text)
If (bin >= 10531) Then
a = a + 1
Text4.text = a
text = 7
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
ElseIf (bin >= 7573) And (bin <= 10530) Then
b = b + 1
Text5.text = b
text = 5
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
ElseIf (bin >= 5514) And (bin <= 7572) Then
c = c + 1
Text6.text = c
text = 3
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
ElseIf (bin <= 5514) And (bin >= 1000) Then
d = d + 1
Text7.text = d
End If
End Sub
-----------------------------------------------------------------------------------------
„Buka penghalang keluar buah
Private Sub Command17_Click()
text = 8
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
End Sub
-----------------------------------------------------------------------------------------
„Tutup penghalang keluar buah
Private Sub Command19_Click()
text = 9
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
End Sub
-----------------------------------------------------------------------------------------
„Menonaktifkan webcame
Private Sub Command2_Click()
VideoOCX1.Stop
VideoOCX1.Close
End Sub
-----------------------------------------------------------------------------------------
„Menghentikan konveyor
Private Sub Command3_Click()
text = 0
MSComm1.Output = text
Text2.text = text
Timer2.Enabled = False
g = 0
Text8.text = g
End Sub
-----------------------------------------------------------------------------------------
„Pengambilan gambar ke grayscale secara manual
Private Sub Command4_Click()
Dim matrix As Variant
Dim x As Integer
Dim y As Integer
Dim i As Integer
' Capture one image
VideoOCX1.Capture (m_Image)
' Get access to the image pixel matrix
matrix = VideoOCX1.GetMatrix(m_Image)
' Simple example : Invert the colors of our image
For y = 0 To VideoOCX1.GetHeight - 1
For x = 0 To VideoOCX1.GetWidth - 1
matrix(x, y, 0) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
matrix(x, y, 1) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
matrix(x, y, 2) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
Next x
Next y
' Very important : Release the matrix and update the image handle
VideoOCX1.ReleaseMatrixToImageHandle m_Image
' Display the processing result in our own window
Picture2 = VideoOCX1.ToPicture(m_Image)
End Sub
-----------------------------------------------------------------------------------------
„Melihat driver webcame
Private Sub Command5_Click()
VideoOCX1.ShowDriverDlg
End Sub
-----------------------------------------------------------------------------------------
„Memerintahkan konveyor bergerak
Private Sub Command6_Click()
text = 1
MSComm1.Output = text
Text2.text = text
End Sub
-----------------------------------------------------------------------------------------
„Mengubah gambar grayscale ke black and white secara manual
Private Sub Command7_Click()
Const IntPixelX = 320
Const IntPixelY = 240
Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long
Dim x, y As Integer
Dim Merah, Hijau, Biru, Abu2 As Integer
Dim nilai As Integer
nilai = HScroll1.Value
Text1.text = nilai
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Pixels(x, y) = Picture2.Point(x, y)
Next y
Next x
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Merah = Pixels(x, y) And &HFF
If (Merah < nilai) Then
Abu2 = 0
ElseIf (Merah > nilai) Then
Abu2 = 255
End If
Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod &H100
If (Hijau < nilai) Then
Abu2 = 0
ElseIf (Hijau > nilai) Then
Abu2 = 255
End If
Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod &H100
If (Biru < nilai) Then
Abu2 = 0
ElseIf (Biru > nilai) Then
Abu2 = 255
End If
Pixels(x, y) = RGB(Abu2, Abu2, Abu2)
Next y
Next x
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Picture3.PSet (x, y), Pixels(x, y)
Next y
Next x
End Sub
-----------------------------------------------------------------------------------------
„Menghitung jumlah pixel putih
Private Sub Command8_Click()
Dim x As Long, y As Long
Dim h As Long, count As Long
Dim o As String
For x = 0 To Picture3.ScaleWidth - 1
For y = 0 To Picture3.ScaleHeight - 1
h = GetPixel(Picture3.hdc, x, y)
If h = vbWhite Then
count = count + 1
End If
DoEvents
Next
Next
Text3.text = count
End Sub
-----------------------------------------------------------------------------------------
„Perhitungan banyak buah setelah perhitungan pixel putih
Private Sub Command9_Click()
Dim bin As Long
bin = Val(Text3.text)
If (bin >= 10531) Then
a = a + 1
Text4.text = a
ElseIf (bin >= 7573) And (bin <= 10532) Then
b = b + 1
Text5.text = b
ElseIf (bin >= 5515) And (bin <= 7572) Then
c = c + 1
Text6.text = c
ElseIf (bin <= 5514) Then
d = d + 1
Text7.text = d
End If
End Sub
-----------------------------------------------------------------------------------------
Dim f As String
Private Sub Form_Load()
a = 0
b = 0
c = 0
d = 0
g = 0
Text2.text = 0
MSComm1.PortOpen = True
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
End Sub
-----------------------------------------------------------------------------------------
„Nilai batasan untuk black and white
Private Sub HScroll1_Change()
Dim nilai As Integer
nilai = HScroll1.Value
Text1.text = nilai
End Sub
-----------------------------------------------------------------------------------------
„Terima data dari mikro
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
g = MSComm1.Input
Text8.text = g
If g = 1 Then
text = 0
MSComm1.Output = text
Text2.text = text
g = 0
Timer3.Enabled = True
Timer2.Enabled = True
End If
End If
End Sub
-----------------------------------------------------------------------------------------
„Timer untuk mengkatifkan konveyor
Private Sub Timer1_Timer()
If Label7.Caption = 0 Then
Timer1.Enabled = False
text = 1
MSComm1.Output = text
Text2.text = text
Else
Label7.Caption = Label7.Caption - 1
End If
End Sub
-----------------------------------------------------------------------------------------
„Sistem pemilah secara otomatis
Private Sub Timer2_Timer()
'a
Dim matrix As Variant
Dim x As Integer
Dim y As Integer
Dim i As Integer
' Capture one image
VideoOCX1.Capture (m_Image)
' Get access to the image pixel matrix
matrix = VideoOCX1.GetMatrix(m_Image)
' Simple example : Invert the colors of our image
For y = 0 To VideoOCX1.GetHeight - 1
For x = 0 To VideoOCX1.GetWidth - 1
matrix(x, y, 0) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
matrix(x, y, 1) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
matrix(x, y, 2) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3
Next x
Next y
' Very important : Release the matrix and update the image handle
VideoOCX1.ReleaseMatrixToImageHandle m_Image
' Display the processing result in our own window
Picture2 = VideoOCX1.ToPicture(m_Image)
'b
Const IntPixelX = 320
Const IntPixelY = 240
Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long
Dim Merah, Hijau, Biru, Abu2 As Integer
Dim nilai As Integer
nilai = HScroll1.Value
Text1.text = nilai
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Pixels(x, y) = Picture2.Point(x, y)
Next y
Next x
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Merah = Pixels(x, y) And &HFF
If (Merah < nilai) Then
Abu2 = 0
ElseIf (Merah > nilai) Then
Abu2 = 255
End If
Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod &H100
If (Hijau < nilai) Then
Abu2 = 0
ElseIf (Hijau > nilai) Then
Abu2 = 255
End If
Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod &H100
If (Biru < nilai) Then
Abu2 = 0
ElseIf (Biru > nilai) Then
Abu2 = 255
End If
Pixels(x, y) = RGB(Abu2, Abu2, Abu2)
Next y
Next x
For x = 1 To IntPixelX
For y = 1 To IntPixelY
Picture3.PSet (x, y), Pixels(x, y)
Next y
Next x
'c
Dim m As Long, n As Long
Dim h As Long, count As Long
Dim o As String
For m = 0 To Picture3.ScaleWidth - 1
For n = 0 To Picture3.ScaleHeight - 1
h = GetPixel(Picture3.hdc, m, n)
If h = vbWhite Then
count = count + 1
End If
DoEvents
Next
Next
Text3.text = count
'd
Dim bin As Long
bin = Val(Text3.text)
If (bin >= 10531) Then
a = a + 1
Text4.text = a
text = 7
g=0
MSComm1.Output = text
Text2.text = text
Timer1.Enabled = True
Timer2.Enabled = True
ElseIf (bin >= 7573) And (bin <= 10530) Then
b = b + 1
Text5.text = b
text = 5
MSComm1.Output = text
g=0
Text2.text = text
Timer1.Enabled = True
Timer2.Enabled = True
ElseIf (bin >= 5514) And (bin <= 7572) Then
c = c + 1
Text6.text = c
text = 3
MSComm1.Output = text
Text2.text = text
g=0
Timer1.Enabled = True
Timer2.Enabled = True
ElseIf (bin <= 5514) And (bin >= 1000) Then
d = d + 1
Text7.text = d
g=0
Timer1.Enabled = True
Timer2.Enabled = True
Else
Timer1.Enabled = True
Timer2.Enabled = True
End If
End Sub
-----------------------------------------------------------------------------------------
„Menutup palang secara otomatis
Private Sub Timer3_Timer()
text = 9
MSComm1.Output = text
Text2.text = text
Timer4.Enabled = True
Timer3.Enabled = False
End Sub
-----------------------------------------------------------------------------------------
Private Sub Timer4_Timer()
text = 0
MSComm1.Output = text
Text2.text = text
Timer4.Enabled = False
End Sub
-----------------------------------------------------------------------------------------
2. Program keseluruhan pada Codevision AVR
/*****************************************************
Chip type : ATmega32
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
*****************************************************/
#include <mega32.h>
#include <stdlib.h>
#include <delay.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
// USART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
int i;
status=UCSRA;
data=UDR;
rx_buffer[rx_wr_index]=data;
i=atoi(rx_buffer);
OCR0=i;
++rx_wr_index;
if(rx_wr_index==2)
{
rx_wr_index=0;
}
}
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif
#include <stdio.h>
void buka0()
{
PORTA.0=1;//memberikan pulsa high
delay_ms(1);//pulsa high diberikan selama 1 ms
PORTA.0=0;
delay_ms(20);
}
void tutup0()
{
PORTA.0=1;//memberikan pulsa high
delay_ms(2);//pulsa high diberikan selama 2 ms
PORTA.0=0;
delay_ms(20);
}
void buka1()
{
PORTA.1=1;//memberikan pulsa high
delay_ms(1);//pulsa high diberikan selama 1 ms
PORTA.1=0;
delay_ms(20);
}
void tutup1()
{
PORTA.1=1;//memberikan pulsa high
delay_ms(2);//pulsa high diberikan selama 2 ms
PORTA.1=0;
delay_ms(20);
}
void buka2()
{
PORTA.2=1;//memberikan pulsa high
delay_ms(1);//pulsa high diberikan selama 1 ms
PORTA.2=0;
delay_ms(20);
}
void tutup2()
{
PORTA.2=1;//memberikan pulsa high
delay_ms(2);//pulsa high diberikan selama 2 ms
PORTA.2=0;
delay_ms(20);
}
void pintua()
{
PORTB.1=1;
PORTB.2=0;
}
void pintub()
{
PORTB.1=0;
PORTB.2=1;
}
}
int i,a,b,c,d,e,f,g,h,j;
void main(void)
{
PORTA=0x00;
DDRA=0x0F;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
ACSR=0x80;
SFIOR=0x00;
#asm("sei")
while (1)
{
i=OCR0;
if(i==0)
{PORTB.0=0;}
if(i==1)
{PORTB.0=1;}
if(i==2)
{
buka0();
}
if(i==3)
{
g=1;
}
if(i==4)
{
buka1();
}
if(i==5)
{
h=1;
}
if(i==6)
{
buka2();
}
if(i==7)
{
j=1;
}
if(i==8)
{
a=1;
}
if(i==9)
{
b=1;
}
if(PINC.7==1)
{
c=1;
a=1;
}
if(PINC.6==1)
{
d=1;
a=1;
}
if(PINC.5==1)
{
e=1;
a=1;
}
if(PINC.4==0)
{
delay_ms(300);
printf("1");
}
if(a==1)
{
pintua();
if(PINC.3==1)
{
b=1;
}
}
if(b==1)
{
a=0;
pintub();
}
if(c==1)
{
buka0();
f=f+1;
}
if(d==1)
{
buka1();
f=f+1;
}
if(e==1)
{
buka2();
f=f+1;
}
if(g==1)
{
tutup0();
f=f+1;
}
if(h==1)
{
tutup1();
f=f+1;
}
if(j==1)
{
tutup2();
f=f+1;
}
if(f==10)
{
c=0, d=0, e=0, f=0, g=0, h=0, j=0;
}
};
}