PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
TUGAS AKHIR PROTOTIPE PEMILAH BENDA BERDASARKAN BENTUK DAN WARNA MENGGUNAKAN CONVEYOR Diajukan untuk memenuhi salah syarat memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh : ERIK FIRMANTO DA LOVES Nim : 125114013
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
TUGAS AKHIR PROTOTIPE PEMILAH BENDA BERDASARKAN BENTUK DAN WARNA MENGGUNAKAN CONVEYOR Diajukan untuk memenuhi salah syarat memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh : ERIK FIRMANTO DA LOVES Nim : 125114013
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017 i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINAL PROJECT PROTOTYPE OF SEPARATOR OBJECTS BASED ON OBJECT SHAPE AND COLOR BY USING CONVEYOR In partial fulfilment of the requirements for the degree of Sarjana Teknik in Electrical Engineering Study Program Faculty of Science and Technology Sanata Dharma University
ERIK FIRMANTO DA LOVES Nim : 125114013
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTEMENT FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2017 ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO : “Sabar dalam mengatasi kesulitan dan bertindak bijaksana dalam mengatasinya adalah sesuatu hal yang utama”
Skripsi ini kupersembahkan untuk : Tuhan Yesus Kristus penyelamatku Bunda Maria dan Malaikat pelindungku… Papa dan Mama tercinta, untuk doanya, serta dukungannya secara moral maupun materi Untuk adik-adik ku terkasih yang selalu memberi semangat Kekasih hati ku yang selalu setia mendukungku
Almamaterku tercinta Teknik Elektro Universitas Sanata Dharma. Tempatku mengali ilmu untuk membangun cita-cita dan kesuksesan... vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
INTISARI Di dunia teknologi yang semakin berkembang pesat ini banyak sekali pengaruhnya pada kehidupan manusia. Oleh karena itu, agar dapat mempermudah pekerjaan manusia, conveyor pintar dibuat dengan tujuan meringankan pekerjaan manusia dan memisahkan benda berdasarkan bentuk dan warna serta mengurangi resiko terjadinya kecelakaan pada manusia. Conveyor pintar ini berkerja secara otomatis sebagai pemisah benda berdasarkan bentuk dan warna menggunakan ATmega32 yang terdiri dari minimum sistem yang berfungsi untuk mengontrol pergerakan conveyor satu dan conveyor dua, GUI pada software MATLAB yang digunakan untuk menampilkan nilai warna benda, mencari bentuk benda dan jumlah warna benda yang terdeteksi. Data citra RGB yang dihasilkan oleh webcam Logitech C170H. Benda tersebut diletakkan pada conveyor satu dan dihantar ke conveyor dua sebagai penerima. Hasil dari penelitian ini adalah conveyor pintar sudah mampu berkerja secara otomatis dalam proses memilah benda berdasarkan bentuk dan warna. Untuk proses pengenalan bentuk dan warna benda sudah berhasil 100% dalam proses pengidentifikasi benda menggunakan program MATLAB GUI. Untuk dibagian mekanik conveyor pintar ini juga sudah berkerja sesuai dengan perancangan awal dan berhasil memilah benda dengan benar serta akurat dan memiliki keberhasilan 100%. Kata kunci : Conveyor pintar, webcam, MATLAB, citra RGB, ATmega32.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT In a world of rapidly evolving technology that is getting a lot of influence on human life. Therefore, in order to facilitate the work of human beings, intelligent conveyor made with the goal of easing the work of human and separates objects based on shape and color as well as reducing the risk of accidents in human. Smart conveyor work automatically as the separation of objects by shape and color using ATmega32 consisting of minimum system that functions to control the movement of the conveyor one and conveyor two, GUI in MATLAB software is used to display the color values of objects, searching for shapes and the color number of objects detected. RGB image data generated by a Logitech webcam C170H. The object is placed on a conveyor one and the conveyor conductivity to two recipients. The results of this study are smart conveyor has been able to work automatically in the process of sorting objects by shape and color. For the process of recognition of shapes and colors of objects already succeeded 100% in the process of identifying objects using MATLAB programs GUI. For the mechanical conveyor section is also already working smart in accordance with the initial design and managed to sort objects correctly and accurately and have a 100% success. Keywords: Smart conveyor, webcam, MATLAB, RGB image, ATmega32.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR Puji dan Syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala berkat dan rahmat-Nya, sehingga penulis dapat menyelesaikan tugas akhir ini dengan baik. Penulis menyadari bahwa banyak pihak yang telah memberikan doa, dukungan, perhatian serta bantuan kepada penulis sehingga dapat menyelesaikan tugas akhir ini. Oleh karena itu, penulis mengucapkan terima kasih yang sebesar-besarnya kepada: 1) Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D selaku dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta. 2) Petrus Setyo Prabowo, S.T.,M.T., Ketua Program Studi Teknik Elektro Universitas Sanata Dharma Yogyakarta. 3) Ir. Tjendro.,M.Kom., selaku dosen pembimbing akademik .yang telah mendampingi dan membimbing penulis selama perkuliahan. 4) Dr. Linggo Sumarno, dosen pembimbing yang dengan penuh pengertian, sabar dan ketulusan hati memberi bimbingan, kritik, saran, serta motivasi dalam penulisan tugas akhir ini. 5) Ibu Wiwien Widyastuti, S.T., M.T. dan Bapak Dr.Iswanjono selaku dosen penguji yang telah bersedia memberikan masukan, bimbingan, dan saran dalam memperbaiki tugas akhir ini. 6) Bapak/ Ibu dosen yang telah mengajarkan banyak hal selama penulis menempuh pendidikan di Program Studi Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma. 7) Kedua orang tua tercinta, papa Remi Gius Elang dan mama Agustina Pali atas kasih sayang dan dukungan serta doa yang tiada henti. 8) Adik-adik tercinta Jon Martin, Roy Martin dan Jenny Martin yang selalu mendukung dan mendoakan saya, sehingga dapat menyelesaikan tugas belajar dengan baik. 9) Tresia Jawa Liwun sebagai teman, sahabat, dan kekasih yang selalu menyemangati baik dalam suka maupun duka serta mendukung penulis sampai terselesaikannya tugas akhir ini.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI HALAMAN JUDUL ........................................................................................... i HALAMAN PERSETUJUAN ............................................................................ iii HALAMAN PENGESAHAN ............................................................................. iv PERNYATAAN KEASLIAN KARYA .............................................................. v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP .................................... vi HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ............................................ vii INTISARI ............................................................................................................ viii ABSTRACT ........................................................................................................ ix KATA PENGANTAR ......................................................................................... x DAFTAR ISI ....................................................................................................... xii DAFTAR GAMBAR ........................................................................................... vx DAFTAR TABEL ............................................................................................... xviii BAB I PENDAHULUAN 1.1. Latar Belakang ......................................................................................... 1 1.2. Tujuan dan Manfaat .................................................................................. 2 1.3. Batasan Masalah ....................................................................................... 3 1.4. Metodologi Penelitian ............................................................................... 4 1.5. Sistematika Penulisan ............................................................................... 5 BAB II DASAR TEORI 2.1. Belt Conveyor ........................................................................................... 6 2.2. Mikrokontroler AVR ATmega32 ............................................................... 6 2.2.1. Arsitektur AVR ATmega32 ............................................................. 7 2.2.2. Deskripsi Mikrokontroler ATmega32 ............................................... 7 2.2.3. Organisasi Memori AVR ATmega32 ............................................... 8 2.2.3.1. Memori Program .................................................................. 8 2.2.3.2. Memori Data ........................................................................ 9 2.4.4. Interupsi ........................................................................................... 9 2.4.5. Timer/Counter ................................................................................. 9 2.2.5.1. Timer/counter0 .................................................................... 10 2.2.5.2. Mode Operasi ....................................................................... 10 xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4.6. Komunikasi Serial USART .............................................................. 11 2.2.6.1. Inisialisasi Serial USART .................................................... 12 2.3. Regulator ic 78xx dan Transistor Penguat Arus ....................................... 16 2.4. Photodioda .............................................................................................. 18 2.5. Infrared ................................................................................................... 21 2.6. Limit switch Sebagai Saklar ..................................................................... 22 2.7. Webcam .................................................................................................. 22 2.8. Motor DC ................................................................................................. 23 2.9. Modul Relay 5v ........................................................................................ 24 2.9.1. Prinsip Kerja Relay ........................................................................ 25 2.9.2. Fungsi dan Aplikasi Relay ............................................................. 26 2.10. Benda Tiga Dimensi ............................................................................... 26 2.11. Citra ....................................................................................................... 26 2.10.1. Definisi Citra ............................................................................... 26 2.10.2. Pengolahan Citra Digital .............................................................. 27 2.12. Pemrosesan Citra .................................................................................... 27 2.11.1. RGB ............................................................................................ 27 2.11.2. Cropping ..................................................................................... 28 2.12. Metode Pengenalan Warna dan Bentuk.................................................... 29 BAB III PERANCANGAN PENELITIAN 3.1. Proses Kerja dan Mekanisme Conveyor Pintar ........................................... 30 3.2. Perancangan Mekanik .............................................................................. 31 3.3. Perancangan Perangkat Keras ................................................................... 33 3.3.1.
Minimum System ATmega32 ......................................................... 34
3.3.2. Webcam Logitech Seri C170h ........................................................ 35 3.3.3. Sensor Photodioda ........................................................................ 36 3.3.4.
Regulator dan Penguat Arus .......................................................... 37
3.3.5. Modul Relay 5 Volt Dc ................................................................. 38 3.3.6. Benda Tiga Dimensi ...................................................................... 39 3.3.7. Metode Pengenalan Warna dan Bentuk ......................................... 39 3.4. Perancangan Perangkat Lunak .................................................................. 40 3.4.1. Flowchart Program Keseluruhan Sistem ........................................ 40 3.4.2. Flowchart Program Interrupt Motor Conveyor Satu dan Dua ........ 42 xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.4.3. Flowchart Program Pengenalan Bentuk dan Warna Pada Matlab .... 45 3.4.4. Perancangan GUI MATLAB ......................................................... 46 3.4.5. Flowchart Program Rangkaian Photodioda Pada Conveyor Dua .... 47 3.4.6. Bagaimana Proses Pengenalan Bentuk dan Warna Benda ............... 48 BAB IV HASIL PENGAMATAN DAN PEMBAHASAN 4.1. Bentuk Fisik dan Sistem Kerja Conveyor Pintar ........................................ 49 4.2. Hasil Data Pengujian dan Pembahasan ..................................................... 52 4.2.1. Pengujian Nilai Batasan Pada RGB ............................................ 52 4.2.2. Pengujian Nilai Citra RGB Warna dan Bentuk Benda ................ 56 4.2.3. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Benda ....... 61 4.2.4. Pengujian Tingkat keberhasilan Sistem conveyor Pintar Memilah Benda Berdasarkan Bentuk Dan Warna ..................................... 65 4.3. Analisa dan Pembahasan Perangkat Lunak ............................................... 69 4.3.1. Aplikasi CodeVision AVR .......................................................... 69 4.3.1.1.
Pengendali Sensor Photodioda ................................... 69
4.3.1.2.
Pengendali Komunikasi USART ................................ 71
4.3.1.3.
Pengendali Motor Dc ................................................. 72
4.3.1.4.
Subrutin Program Utama ............................................ 75
4.3.2. Aplikasi MATLAB .................................................................... 76 4.3.2.1. Tampilan Gui MATLAB ............................................ 77 4.3.2.2. Inisialisaisi Komunikasi Serial ................................... 77 4.3.2.3. Inisialisasi Webcam .................................................... 78 4.3.2.4. Proses Pengelolahan Citra .......................................... 79 4.3.2.5. Proses Pengenalan Bentuk dan Warna Benda .............. 81 Kesimpulan dan Saran ........................................................................................ 84 Daftar Pustaka .................................................................................................... 85 Lampiran ............................................................................................................. L1
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Gambar 2.1. Conveyor ......................................................................................... 6 Gambar 2.2. Konfigurasi Pin mikrokontroler ATmega32 .................................... 7 Gambar 2.3. Mode Phase Correct PWM ............................................................. 11 Gambar 2.4. Mode Fast PWM ............................................................................ 11 Gambar 2.5. Register UDR .................................................................................. 12 Gambar 2.6. Register UCSRA ............................................................................. 13 Gambar 2.7. Register UCSRB ............................................................................ 14 Gambar 2.8. Register UCSRC ............................................................................ 15 Gambar 2.9. Konfigurasi Pin IC Regulator ......................................................... 16 Gambar 2.10. Rangkaian Umum Regulator 78xx .................................................. 17 Gambar 2.11. Rangkaian Catu Daya Dengan Penguat ........................................... 18 Gambar 2.12. Bentuk Photodioda dan Simbol ...................................................... 19 Gambar 2.13. Respon Relatif Spektral Untuk Si, Ge, Dan Selenium Dibandingkan Dengan Mata Manusia ................................................................... 19 Gambar 2.14. Hubungan I𝜆 Dengan Fc Pada Photodioda ............................................. 20 Gambar 2.15. Rangkaian Sensor Photodioda ...................................................... 21 Gambar 2.16. Aplikasi Sensor Photodioda
...................................................... 21
Gambar 2.17. Konstruksi, Simbol dan Bentuk Limit Switch ................................. 22 Gambar 2.18. Webcam Logitech Seri C170h
...................................................... 22
Gambar 2.19. Susunan Komponen pada Motor DC .............................................. 23 Gambar 2.20. Modul Relay 2 Channel 5v
...................................................... 24
Gambar 2.21. Modul Relay 1 Channel 5v
...................................................... 24
Gambar 2.22. Simbol Relay ........................... ..................................................... 24 Gambar 2.23. Struktur Sederhana Relay
...................................................... 25
Gambar 2.24. Contoh Benda Tiga Dimensi
...................................................... 26
Gambar 2.25. Pengaturan Citra RGB .................................................................... 28 Gambar 2.26. (a) Citra sebelum dicrop, (b) Citra sesudah dicrop ........................... 28 Gambar 3.1. Diagram Blok Sistem ..................................................................... 31 Gambar 3.2. keseluruhan Sistem Conveyor Dilihat Dari Depan .......................... 31 Gambar 3.3. Conveyor Dilihat Dari Samping ...................................................... 32 Gambar 3.4. Conveyor Dilihat Dari depan .......................................................... 32 xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 3.5. Ukuran Conveyor ........................................................................... 32 Gambar 3.6. Rangkaian Osilator ATmega32 ....................................................... 34 Gambar 3.7. Rangkaian Reset ATmega32 .......................................................... 35 Gambar 3.8. Webcam Logitech Seri C170h ........................................................ 35 Gambar 3.9. Rangkaian Sensor Photodioda ........................................................ 36 Gambar 3.10. A. Rangkaian Regulator 5v dan B. Rangkaian Regulator Dengan Penguat Arus 12v ........................................................................... 37 Gambar 3.11. Rangkaian Modul Relay 5v ............................................................ 38 Gambar 3.12. Benda Tiga Dimensi ....................................................................... 39 Gambar 3.13. Flowchat Keseluruhan Sistem ........................................................ 41 Gambar 3.14. Flowchat Gerak Motor Conveyor Satu Dan Motor Conveyor Dua .. 42 Gambar 3.15. Flowchat Pengenalan Warna dan Bentuk Benda ............................. 45 Gambar 3.16. Perancangan GUI Pada Matlab ....................................................... 46 Gambar 3.17. Flowchat Rangkaian Photodioda pada Conveyor Kedua ................. 47 Gambar 4.1. Minimum System ATmega32 ......................................................... 49 Gambar 4.2. Modul Relay 5v .............................................................................. 49 Gambar 4.3. Regulator ....................................................................................... 50 Gambar 4.4. Rangkaian Sensor ........................................................................... 50 Gambar 4.5. Conveyor Dua ................................................................................ 50 Gambar 4.6. Conveyor Satu ................................................................................ 50 Gambar 4.7. Benda ............................................................................................. 50 Gambar 4.8. Wadah Untuk Benda ...................................................................... 50 Gambar 4.9. Conveyor Pintar .............................................................................. 51 Gambar 4.10. Pengujian Benda Kotak Merah ....................................................... 62 Gambar 4.11. Pengujian Benda Kotak Hijau ......................................................... 63 Gambar 4.12. Pengujian Benda Bola Merah ......................................................... 64 Gambar 4.13. Pengujian Benda Bola Hijau ........................................................... 64 Gambar 4.14. Pengujian Benda Reject .................................................................. 65 Gambar 4.15. Grafik Perbandingan Antara Bentuk Kotak Dan Bola ..................... 67 Gambar 4.16. Grafik Perbandingan Merah Dan Hijau Untuk Benda Kotak Merah . 67 Gambar 4.17. Grafik Perbandingan Merah Dan Hijau Untuk Benda Bola Merah ... 68 Gambar 4.18. Grafik Perbandingan Merah Dan Hijau Untuk Benda Kotak hijau ... 68 Gambar 4.19. Grafik Perbandingan Merah Dan Hijau Untuk Benda Bola hijau ..... 69 xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.20. Listing Program ADC ..................................................................... 70 Gambar 4.21. Listing Program Pengendali Conveyor ............................................ 70 Gambar 4.22. Listing Program Komunikasi USART ............................................ 71 Gambar 4.23. Program Pengerak Conveyor .......................................................... 71 Gambar 4.24. Listing Program Benda Reject ......................................................... 72 Gambar 4.25. Listing Program Benda Bola Merah ................................................. 73 Gambar 4.26. Listing Program Benda Bola Hijau .................................................. 73 Gambar 4.27. Listing Program Benda Kotak Merah............................................... 74 Gambar 4.28. Listing Program Benda Kotak Hijau ................................................ 75 Gambar 4.29. Tampilan GUI MATLAB ................................................................ 77 Gambar 4.30. Inisialisasi Komunikasi Serial ........................................................ 78 Gambar 4.31. Inisialisasi Webcam ........................................................................ 78 Gambar 4.32. Adalah Fungsi Yang Dipakai Untuk Komunikasi Antara Webcam Dan Matlab .................................................................................... 79 Gambar 4.33. Proses Pengolahan Citra ................................................................. 80 Gambar 4.34. Listing Program Pengenalan Bentuk dan Warna ............................. 81
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL Tabel 2.1. Hubungan PIN Dan Interupsi ................................................................ 9 Tabel 2.2. Penentuan Ukuran ................................................................................ 15 Tabel 2.3. Karakteristik Regulator Tegangan Ic 78xx ............................................ 17 Tabel 2.4. Hubungan Arus Dengan Hambatan ....................................................... 20 Tabel 2.5. Nilai Matriks sementara setelah dijumlahkan ........................................ 29 Tabel 4.1. Data Pengujian Nilai Batasan RGB (Kotak Merah) ............................... 52 Tabel 4.2. Data Pengujian Nilai Batasan RGB (Bola Merah) ................................. 53 Tabel 4.3. Data Pengujian Nilai Batasan RGB (Kotak Hijau) ................................ 53 Tabel 4.4. Data Pengujian Nilai Batasan RGB (Bola Hijau) .................................. 54 Tabel 4.5. Data Pengujian Nilai Batasan RGB (Reject Balok Merah) .................... 54 Tabel 4.6. Data Pengujian Nilai Batasan RGB (Reject Balok Hijau) ...................... 55 Tabel 4.7. Data Pengujian Nilai Batasan RGB (Reject Bola Kuning) ..................... 55 Tabel 4.8. Data RGB Masing-Masing Warna Dan Bentuk Benda .......................... 57 Tabel 4.9. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Warna dan Bentuk Benda ..................................................................................... 62 Tabel 4.10.Pengujian Tingkat Keberhasilan Sistem Memilah Benda Berdasarkan Warna Dan Bentuk Benda .................................................................... 66
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN 1.1.
Latar Belakang Dewasa ini perkembangan ilmu pengetahuan dan teknologi terutama dalam bidang
elektronika semakin berkembang pesat. Perkembangan ini sedikit sebanyak telah meningkatkan kualitas kehidupan manusia, seiring berjalannya waktu dengan banyaknya tuntutan masyarakat akan produk-produk yang memiliki kualitas bagus dan bermutu yang dihasilkan oleh industri. Hal ini telah membuat banyak proses industri beralih dari sebuah sistem manual ke sistem otomatis yang lebih mudah dikendalikan dengan peran manusia yang semakin lama semakin berkurang. Salah satunya topik yang saat ini sedang dikembangkan dan banyak sekali yang bisa ditemukan aplikasinya di dunia industri adalah conveyor dan image processing. Conveyor merupakan alat bantu yang umum dijumpai pada pada industri-industri pengolahan, alat ini digunakan untuk memindahkan satu produk ketempat lain secara berurutan. Selain itu, penggunaan image processimg akan sangat memudahkan manusia untuk mengetahui jenis suatu benda secara jelas. Di era teknologi yang semakin canggih ini, bahan-bahan yang digunakan kadang-kala merupakan bahan yang berat maupun berbahaya bagi manusia. Untuk itu diperlukan suatu alat yang pintar yang mampu mendeteksi serta memindahkan atau mengangkut bahan-bahan tersebut mengingat keterbatasan kemampuan tenaga manusia baik itu berupa kapasitas bahan yang akan diangkut maupun keselamatan kerja dari karyawan. Sebelumnya pernah ada penelitian tentang sistem pengenalan benda berdasarkan warna menggunakan lengan robot sebagai pemindah yaitu Richard Bagus Dean Mahendra [1] yang memiliki tingkat keberhasilan 100% dalam proses pemindahan benda berdasarkan warnanya sesuai dengan tempat yang telah ditentukan dan proses metode pengenalan warna menggunakan hasil penjumlahan nilai citra RGB berfungsi sesuai dengan rencana. Sedangkan penelitian lainnya adalah Irvan Hasan [2] yang membuat sistem pengenalan benda berdasarkan bentuk menggunakan lengan robot sebagai pemindah benda dan memiliki tingkat keberhasilan yang sama yaitu 100% yang sesuai dengan rencana, dari proses pemindahan benda berdasarkan bentuk dan proses atau metode pengenalan bentuk yaitu mengubah citra RGB menjadi citra grayscale untuk mengidentifikasi bentuk benda berkerja
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
dengan baik. Dari penelitian tersebut, maka penelitian ini memiliki gagasan untuk membuat sebuah convveyor pintar yang mampu berkerja dengan sendirinya dan mampu memisahkan benda berdasarkan warna dan bentuk kedalam wadah yang telah disediakan dengan menggunakan webcam sebagai sensor pengidentifikasi benda. Prinsip kerja sistem ini, yaitu input berupa benda berbentuk kotak dan berwarna merah ditangkap oleh webcam citranya berupa RGB yang akan diletakan di atas conveyor berjalan. Proses pengenalan warna dan bentuk tersebut menggunakan webcam dimana di proses pada program MATLAB, kemudian data dikirim menggunakan komunikasi serial ke mikrokontroler dan diproses perintahnya lalu conveyor pertama akan bergerak menghantar benda tersebut ke conveyor kedua dimana diatasnya terdapat wadah sesuai dengan warna dan bentuk yang telah terdeteksi oleh webcam dan jika benda kotak merah maka akan dimasukan kedalam wadah yang bertanda khusus untuk benda kotak merah, demikian juga berlaku untuk benda kotak hijau, bola merah serta bola hijau dan jika bukan atau tidak sesuai maka akan dimasukan kedalam wadah khusus untuk benda yang tidak sesuai dengan keinginan atau reject.
1.2.
Tujuan dan Manfaat Penelitian Tujuan yang ingin dicapai dalam penelitian ini adalah untuk membuat sebuah alat
yaitu conveyor pintar yang mampu berkerja secara otomatis memindahkan benda dan diletakan pada suatu wadah berdasarkan warna dan bentuk menggunakan webcam sebagai alat bantu pengidentifikasi benda secara realtime. Manfaat dari penelitian ini adalah : a. Sebagai alat bantu memudahkan pekerjaan manusia khususnya pada industriindustri sekala besar baik dari segi efisiensi waktu, tenaga, kualitas serta hasil yang diperolehi. b. Sebagai penelitian awal pengenalan benda menggunakan webcam dengan conveyor satu sebagai penghantar benda dan conveyor dua sebagai pemilah benda serta menempatkannya pada wadah berdasarkan bentuk dan warna. c. Sebagai bahan untuk penelitian yang selanjutnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.3.
Batasan Masalah Penulis menetapkan beberapa batasan masalah pada perancangan ini, yaitu : a.
Masukan berupa empat macam benda yaitu, kotak merah, kotak hijau, bola merah, bola hijau yang terbuat dari styrofoam untuk kotak dan bola terbuat dari plastik.
b.
Ukuran input untuk kotak adalah 5x5x5 cm sedangkan untuk diameter bola adalah 5 cm.
c.
Outputnya dalam bentuk wadah berupa kotak merah, kotak hijau, bola merah, bola hijau dan benda reject.
d.
Sensor photodiode yang dipakai untuk mendeteksi benda di atas conveyor 1 dan mendeteksi adanya wadah di conveyor 2.
e. Menggunakan Motor dc 24 Volt sebanyak tiga buah untuk mengerakan masingmasing dua conveyor. f.
Terdapat tampilan GUI dan MATLAB sebagai user interface agar dapat melihat data benda yang akan dikenali, serta jumlah yang terdeteksi.
g.
Monitoring menunjukan posisi benda di atas conveyor, mendeteksi benda menggunakan webcam, pemilahan benda dan selanjutnya peletakan bendabenda yang terdeteksi kedalam wadah sesuai tempatnya.
h.
Komunikasi antara laptop dengan ATmega32 menggunakan komunikasi serial USART yang dihubungkan dengan modul yang sudah tersedia dipasaran yaitu modul USB to TTL converter.
i.
Menggunakan
webcam
logitech
c170h
untuk
melakukan
aktivitas
mengidentifikasi bentuk dan warna benda yang terhubung dengan software MATLAB.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
1.4.
Metode Penelitian Metodologi yang digunakan dalam penelitian ini adalah sebagai berikut : 1.
Pengumpulan bahan-bahan referensi pendukung berupa buku dan jurnal penelitian yang menelitih tentang conveyor, pemrograman dengan CodeVision AVR, Atmega32, image processing dengan menggunakan MATLAB serta bukubuku sarana pendukung lainnya.
2.
Studi
pustaka
mengenai
pengendalikan
conveyor
serta
penggunaan
mikrokontroler Atmega32 dan penggunaan webcam untuk image processing pada MATLAB. 3.
Pembuatan hardware dan software. Tahapan ini berisi tentang pembuatan alat sesuai dengan desain conveyor yang telah dirancang beserta program-program yang akan mengacu pada flowchat yang telah di buat.
4.
Merancang serta menguji minimum system mikrokontroler Atmega32 dengan software CodeVision AVR sebagai sistem secara keseluruhan.
5.
Pembuatan program GUI menggunakan aplikasi MATLAB untuk pengolahan citra digital RGB gambar dengan menggunakan webcam Logitech seri C170h sebagai alat bantu pengidentifikasi warna dan bentuk pada benda.
6.
Analisa dan penyimpulan hasil percobaan dapat dilakukan dengan melihat presentase error yang terjadi pada kinerja sistem alat secara keseluruhan, yaitu tingkat keberhasilan conveyor memindahkan benda berdasarkan bentuk dan warna dari titik awal ke wadah yang telah ditetapkan dan webcam berfungsi sebagai sensor pendeteksi warna dan bentuk benda dimana saat benda berhenti dibawa webcam, kemudian webcam akan aktif mengambil gambar kemudian diproses nilai citra RGB gambar benda untuk dikenali di aplikasi MATLAB.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
1.5.
Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut : BAB I: PENDAHULUAN Bab ini berisi latar belakang masalah, tujuan dan manfaat, batasan masalah, metodologi penelitian dan sistematika penulisan.
BAB II : DASAR TEORI Bab ini berisi teori-teori yang mendukung kerja sistem dan teori yang digunakan dalam perancangan Conveyor pintar.
BAB III : PERANCANGAN PENELITIAN Bab ini berisi penjelasan alur perancangan Conveyor pintar serta flow chart program pendukung.
BAB IV : HASIL PENGAMATAN DAN PEMBAHASAN Bab ini berisi pengamatan dan pembahasan data yang diperoleh, berupa data tingkat keberhasilan sistem mendeteksi benda, data motor dc dan tingkat keberhasilan keseluruhan sistem Conveyor pintar.
BAB V : KESIMPULAN DAN SARAN Bab ini berisi ringkasan hasil penelitian yang telah dilakukan dan usulan yang berupa gagasan-gagasan untuk perbaikan atau pengembangan terhadap penelitian yang telah dilakukan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II DASAR TEORI Pada bab ini akan dibahas mengenai landasan-landasan teori yang digunakan dalam pembuatan tugas akhir “Prototipe Pemilah Benda Berdasarkan Bentuk Dan Warna Menggunakan Conveyor Berbasis Mikrokontroler”.
2.1.
Belt Conveyor Belt Conveyor adalah sebuah peralatan yang sangat sederhana dan biasanya
digunakan untuk mengangkut benda-benda kecil hingga yang memiliki kapasitas besar. Alat tersebut terdiri dari sabuk yang akan berkerja sebagai pengangkut benda. Sabuk yang digunakan pada belt conveyor ini dapat dibuat dari berbagai jenis bahan tergantung sifat benda yang diangkut. Contoh gambar 2.1 [3].
Gambar 2.1.Conveyor [3] Conveyor pintar yang dirancang ada dua buah dimana satu berfungsi sebagai penghantar benda sedangkan conveyor selanjutnya berfungsi sebagai penerima benda sesuai dengan wadah yang disiapkan untuk menerima input.
2.2.
Mikrokontroler AVR Atmega32 AVR (Alf and Vegard’sRisc Processor) 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 general6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
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 [4].
2.2.1. Arsitektur AVR ATmega32 Fitur-fitur yang dimiliki mikrokontroler Atmega32 adalah sebagai berikut [4]: 1.
Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D.
2.
ADC 10 bit sebanyak 8 channel.
3.
Tiga buah Timer/Counter yaitu Timer 0, Timer 1, dan Timer 2.
4.
Watchdog Timer dengan osilator internal.
5.
SRAM sebesar 512 byte.
6.
Memori Flash sebesar 8 kb.
7.
Sumber Interupsi internal dan eksternal.
8.
Port SPI (Serial Pheriperal Interface).
9.
EEPROM on board sebanyak 512 byte.
10. Komparator analog. 11. Port USART (Universal Shynchronous Ashynchronous Receiver Transmitter)
2.2.2. Deskripsi Mikrokontroler ATmega32 Konfigurasi Pin Mikrokontroler Atmega32 dengan kemasan 40-pin DIP (dual inline package) dapat dilihat pada gambar 2.2. Untuk memaksimalkan perform dan paralelisme, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data). Ketika sebuah instruksi sedang dikerjakan maka instruksi berikutnya diambil dari memori program. Seperti gambar 2.2 [4].
Gambar 2.2. Konfigurasi Pin Mikrokontroler Atmega32 [4]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
Mikrokontroler Atmega32 memiliki konfigurasi Pin sebagai berikut [4] : 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 Port A berfungsi sebagai input analog pada A/D konverter pada port I/O 8-bit dua arah arah. Port B, port C, port D adalah suatu port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Pada rangkaian reset, waktu pengosongan kapasitor dapat dihitung dengan persamaan 2.1. T=RxC
(2.1)
2.2.3.Organisasi Memori AVR Atmega32 Mikrokontroler ATmega32 memiliki 3 jenis memori yaitu memori program, memori data dan EEPROM. Ketiganya memiliki ruangan sendiri dan terpisah [4].
2.2.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 8Kbty On-Chip didalam sistem Memory Flash Reprogrammable untuk penyimpanan program. Untuk keamanan perangkat lunak, flash memori dibagi menjadi dua bagian, yaitu boot program dan bagian aplikasi program [4].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
2.2.3.2.Memori Data Memori data adalah memori RAM (Random Access Memory) yang digunakan untuk keperluan program. Memori data terdiri dari 32 General Purpose Register (GPR) yang merupakan register khusus yang bertugas untuk membantu eksekusi program oleh Arithmetic Logic Unit (ALU) dan I/O register dan additional I/O register yang difungsikan khusus untuk mengendalikan berbagai peripheral dalam mikrokontroler antara lain pin, timer/counter, USART. ATmega32 memiliki kapasitas memori data sebesar 608 Byte yang berbagi menjadi 3 bagian yaitu register serba guna, register I/O dan SRAM [5].
2.2.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. Seperti yang terlihat pada tabel 2.1 [6] Tabel 2.1. Hubungan PIN dan Interupsi [6] Jenis Interrupt
PIN pada ATmega32
INT0
PORTD.2
INT1
PORTD.3
INT2
PORTD.2
ATmega32 menyediakan tiga interupsi eksternal yaitu, INT0, INT1, dan INT2. Masing-masing interupsi tersebut terhubung dengan pin ATmega32 seperti 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.
2.2.5.Timer/counter ATmega 32 memiliki tiga modul timer yang terdiri dari dua buah timer/counter 8bit dan satu buah timer/counter 16-bit. Ketiga modul ini dapat diatur dalam mode yang berbeda-beda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu semua timer/counter juga dapat difungsikan sebagai pencacahan waktu seperti pada jam digital maupun untuk menghasilkan sinyal PWM (Pulse Width Modulation) yakni sinyal kotak dengan frekuensi dan duty cycle yang nilainya bisa diatur [7].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
2.2.5.1.Timer/counter0 Timer/counter0 merupakan modul timer/counter 8 bit dengan fitur sebagai berikut : a. Timer/counter 1 kanal b.
Auto reload yaitu timer akan dinolkan kembali saat match compare
c.
Dapat menghasilkan pulsa PWM (pulse width modulation) dengan glitch free
d.
Frequency generator
e.
External event counter
f.
Prescalar 10 bit untuk timer
g. Membangkitkan interupsi saat timer overflow dan atau match compare Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.2, 2.3, dan 2.4 berikut [7]. 1
T=𝑓
(2.2)
Overflow interrupt = N x 256 x T
(2.3)
𝑝𝑢𝑙𝑠𝑒
OCR = 𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤 𝑖𝑛𝑡𝑒𝑟𝑟𝑢𝑝𝑡
(2.4)
Keterangan : f
= frekuensi yang digunakan untuk eksekusi program
T
= periode
N
= prescaller yang digunakan
OCR = nilai cacahan pulsa Pulse = lebar pulsa
2.2.5.2.Mode Operasi 1. Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan menghitung selang waktu [8]. 2. Mode phase correct PWM (PCP), digunakan untuk menghasilkan sinyal PWM dimana nilai resistor counter (TCNT0) yang mencacah naik dan turun secara terus menerus akan selalu dibandingkan dengan register pembanding OCR0 [9]. Hasil perbandingan register TCNT0 dan OCR0 digunakan membangkitkan sinyal PWM yang dikeluarkan pada OC0 seperti ditunjukan pada gambar 2.3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
Gambar 2.3. Mode Phase Correct PWM [4]
3. CTC (Clear timer on compare match), register counter (TCNT0) akan mencacah naik kemudian di-reset atau kembali menjadi 0x00 pada saat nilai TCNT0 sama dengan OCR0. Sebelumnya OCR diset dulu, karena timer 0 dan 2 maksimumnya 255, maka range OCR 0-255 [7]. 4. Fast PWM, mode ini hampir sama dengan mode phase correct PWM, hanya perbedaannya adalah register counter TCNT0 mencacah naik saja dan tidak pernah mencacah turun seperti terlihat pada gambar 2.4. [7].
Gambar 2.4. Mode Fast PWM [4]
2.2.6.Komunikasi Serial USART Komunikasi data adalah perpindahan data antara dua atau lebih piranti, baik yang berjauhan maupun yang berdekatan. Perpindahan data antara dua atau lebih piranti dapat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
dilaksanakan secara paralel atau seri. Komunikasu seri dapat dibedakan menjadi 2 macam, yaitu komunikasi data 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 [4]. Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki bandrate 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 dan sinkron e) Operasi master atau slave clock sinkron f)
Dapat menghasilkan band-rate (laju data) dengan resolusi tinggi
g) Modus komunikasi kecepatan ganda pada asinkron
2.2.6.1.Inisialisasi Serial USART Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi USART. Register-register yang digunakan untuk komunikasi USART antara lain:
1. USART I/O Data Register (UDR) UDR merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan (TXB) atau tempat data diterima (RXB) sebelum data tersebut dibaca. Seperti gambar 2.5. registre UDR [4].
Gambar 2.5. Register UDR [4]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
2. USART Control and Status Register A (UCSRA)
Gambar 2.6. Register UCSRA [4]
Penjelasan bit penyusun UCSRA [4] : 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 berlogi nol secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan. b) TXC (USART Transmit Complete) Flag ini akan set ketika data yang dikirim telah keluar. Flag ini akan membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan. c) UDRE (USART Data Register Empty) Flag ini sebagai indikator ini 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 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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
Bit yang berfungsi untuk menggandakan laju data menjadi 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 data yang diterima oleh USART tidak mengandung informasi alamat akan diabaikan.
1.
USART CONTROL AND STATUS REGISTER B (UCSRB)
Gambar 2.7. Register UCSRB [4]
Penjelasan bit penyusun UCSRA dari gambar 2.7. [4] : a) RXCIE (RX Complete Interrupt Enable) Bit pengatur aktivitas interupsi penerima data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan. b) TXCIE (TX Complete Interrupt Enable) Bit pengatur aktivitas pengiriman data serial, akan berlogika satu jika diaktifkan fan 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 sebagai memilih tipe lebar data bit yang digunakan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
Tabel 2.2. Penentuan Ukuran [4] 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
2. USART CONTROL AND STATUS REGISTER C (UCSRC)
Gambar 2.8. Register UCSRC [4]
Penjelasan bit penyusun UCSRA dari gambar 2.8. [4] : 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) UMP [1...0] (Parity Mode)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan. Transmitter USART akan membuat paritas yang akan digunakan secara otomatis d) USBS (Stop Bit Select) Bit ini berfungsi untuk memilih jumlah stop bit yang akan digunakan. e) UCSZ1 dan UCSZ0 Merupakan bit pengatur jumlah serial bit yang berfungsi untuk memilih lebar data yang digunakan dikombinasikan bit UCSZ2 dalam register UCSRB. f) UCPOL (Clock Parity) Bit yang berguna hanya untuk modus sinkron. Bit ini berhubungan dengan perubahan data keluaran dan sampel masukkan, dan clock sinkron (XCK).
2.3.
Regulator Tegangan IC 78xx dan Transistor Penguat Arus Rangkaian penyearah pada dasarnya sudah cukup bagus jika tegangan ripple-nya
kecil namun ada masalah pada stabilitas tegangan yang dihasilkan. 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. Ini adalah konfigurasi pin IC regulator ditunjukan pada Gambar 2.9. [10].
Gambar 2.9. Konfigurasi Pin IC Regulator [10]
Tabel 2.3. menunjukan spesifikasi IC regulator seri 78xx dengan keluaran dan masukan minimm dan maksimum [11].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
Tabel 2.3. Karakteristik Regulator Tegangan Ic 78xx [11] VIN (Volt) Type
VOUT (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
Gambar 2.10. Rangkaian Umum Regulator 78xx [11] Nilai komponen c1 dan c2 difungsikan sebagai filter kapasitor yang bertujuan untuk menghilangkan tegangan ripple agar tegangan keluaran menjadi lebih stabil. Untuk mendapatkan nilai kapasitor yang sesuai dapat mengacu pada persamaan 2.1 dan 2.2.
𝐼𝑑𝑐
Vr(rms) = 4√3𝑓𝑐 =
r=
𝑉𝑟(𝑟𝑚𝑠) 𝑉𝑑𝑐
2.4 𝐼𝑑𝑐 𝐶
=
x 100%
2.4 𝑉𝑑𝑐 𝑅𝐿.𝐶
(2.5)
(2.6)
Komponen eksternal yang digunakan yaitu transistor 2N3055 karena kemampuan arus maksimal adalah 15 A [10]. Untuk gambar rangkaian lengkap dengan Ic regulator dapat ditunjukan pada gambar 2.11.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
Gambar 2.11. Rangkaian Catu Daya Dengan Penguat [10] Darri gambar 2.11. maka diperolehi persamaan-persamaan sebagai berikut [10] :
VB = Vreg + VD
(2.7)
Tegangan keluaran rangkain menjadi, Vo = Vreg - VBE
(2.8)
Jika VD≈VBE, maka Vo = Vreg
(2.9)
Tegangan diantara kolektor dan emittor transistor 2N3055 adalah [10], VCE = VIN - VRI
(2.10)
Disipasi daya transistor NPN 2N3055 adalah [10], PD =VCE x IC
(2.11)
Untuk nilai penguatan arus diperoleh dengan persamaan dibawah ini [11]: Ic = β IB
(2.12)
Ie = (β+1) IB
(2.13)
2.4. Photodioda Photodioda adalah dioda yang berkerja berdasarkan intensitas cahaya, jika photodioda terkena cahaya maka photodioda berkerja 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 pn 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
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 hingga arus akan mengalir di dalam rangkaian. Besarnya pasangan elektron ataupun hole yang dihasilkan tergantung dari besarnya intensitas cahaya yang diserap oleh photodioda. 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. Gambar 2.12. adalah contoh bentuk dan simbol photodioda [12].
Gambar 2.12. Bentuk Photodioda dan Simbol. [12]
Gambar 2.13. Respon Relatif Spektral Untuk Si,Ge, Dan Selenium Dibandingkan Dengan Mata Manusia [12].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
Gambar 2.14. Hubungan I𝜆 Dengan Fc Pada Photodioda [12].
Grafik pada gambar 2.14. menunjukan bahwa arus maksimal pada sensor photodioda adalah sebesar 800 µA, sehingga untuk penentuan nilai hambatan agar arus sensor photodioda tidak terlalu besar yaitu [12] :
R=
𝑉𝑐𝑐
(2.14)
𝐼
Sehingga nilai hambatan untuk sensor photodioda dengan asumsi bahwa Vcc = 5 Volt seperti pada tabel 2.4. Tabel 2.4. Hubungan Arus Dengan Hambatan ARUS (µA)
HAMBATAN (KΩ)
200
25
400
12,5
600
8,33
800
6,25
Rangkaian umum sensor photodioda dapat ditunjukan pada gambar 2.15.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
Gambar 2.15. Rangkaian Sensor Photodioda
Gambar 2.16 Aplikasi Sensor Photodioda [12]
2.5.
Led InfraRed Led infrared merupakan sumber cahaya dengan panjang gelombang 750nm-
1000nm dan arus maksimal sebesar 100 mA [12]. Aplikasi led infrared biasa dijumpai pada modul sensor yang berhubungan dengan cahaya seperti photodioda dan photo transistor. Menurut gambar 2.16, led infrared merupakan sumber cahaya yang paling baik untuk sumber sensor cahaya. Penentuhan nilai hambatan untuk led infrared dengan rumus :
R=
𝑉𝑐𝑐 𝐼
(2.11)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
2.6.
Limit Switch Sebagai Saklar Limit switch merupakan jenis saklar yang dilengkapi dengan katup yang berfungsi
untuk menggantikan tombol. Prinsip kerjanya sama seperti saklar Push ON yaitu hanya akan menghubungkan pada saat katupnya ditekan pada batas penekanan tertentu yang telah ditentukan dan akan memutus 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. Contoh Gambar konstruksi, simbol dan bentuk limit switch 2.17 [14].
Gambar 2.17. Konstruksi, Simbol dan Bentuk Limit Switch [14] Transistor dapat digunakan sebagai saklar elektronika dengan membuat transistor tersebut berada dalam kondisi cut-off (saklar terbuka, arus tidak mengalir) atau saturasi (saklar tertutup, sehingga arus mengalir).
2.7.
Webcam Logitech Seri C170h Webcam adalah kamera digital yang dikoneksikan ke komputer dan digunakan
untuk telekomferensi video atau tujuan lain. Pengoperasian webcam cukup mudah karena webcam memiliki fitur fungsionalitas USB untuk koneksi menggunakan komputer. Sehingga banyak dipergunakan untuk mengolah image processing yang kemudian akan diolah dengan perangkat lunak untuk pemrosesan berbasis pixel, RGB dan lain-lain. Salah satu contoh webcam ditunjukan pada gambar 2.18 [15].
Gambar 2.18. Webcam Logitech Seri C170h [15]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
Sebuah webcam yang sederhana terdiri dari sebuah lensa, dipasang di sebuah papan sirkuit untuk menangkap sinyal citra. Webcam memiliki casing (pelindung/cover) depan dan casing samping untuk menutupi lensa standar dan memiliki sebuah lubang lensa di casing depan yang digunakan sebagai lokasi masuknya sinyal citra. Sebuah webcam biasanya dilengkapi dengan software yang digunakan untuk mengambil citra hasil tangkapan kamera digital secara terus menerus maupun dalam interval waktu tertentu.
2.8.
Motor DC Motor adalah mesin listrik yang mampu mengubah energi listrik menjadi energi
mekanik berupa putar motor. Motor DC adalah salah satu jenis motor yang menggunakan tegangan searah (DC) sebagai sumber tegangan. Dua bagian utama pada motor DC yaitu rotor sebagai bagian yang berputar dan stator sebagai bagaian yang diam. Bagian rotor berupa koil yang akan dialiri arus listrik. Bagian stator menghasilkan medan magnet dari pengaruh elektromagnetik koil ataupun magnet permanen seperti yang di tunjukan pada gambar 2.19 [16].
Gambar 2.19. Susunan Komponen pada Motor DC [16] Arah putaran pada motor DC dapat diatur dengan mengubah polaritas tegangan pada terminal, sehingga gerak putaran motor berupa clockwise atau counterclocwise. Kecepatan putaran motor DC berbanding lurus dengan besar beda potensial yang diberikan pada terminal. Pemberian beda potensial yang semakin meningkat akan berdampak pada kenaikan nilai arus lisrik. Hal tersebut akan meningkatnya pula gaya Lorentz yang dihasilkan, sehingga motor berputar semakin cepat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
2.9.
Modul Relay 5v Relay adalah saklar (switch) yang dioperasikan secara listrik dan merupakan
komponen electromechanical (elektromekanikal) yang terdiri dari 2 bagian utama yakni elektromagnet
(coil)
dan mekanikal (seperangkat
kontak saklar/switch).
Relay
menggunakan prinsip elektromagnetik untuk menggerakkan kontak saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi. Sebagai contoh, relay yang menggunakan elektromagnet 5v dan 50 mA mampu menggerakan armature relay (yang berfungsi sebagai saklarnya) untuk menghantarkan lisrik 220v dan 2a.
Gambar 2.20. Modul Relay 2 Channel 5v [30]
Gambar 2.21. Modul Relay 1 Channel 5v [30]
Gambar 2.22. Simbol Relay [29]
Relay 2 channel dan relay 1 channel ini memerlukan arus sekitar 15 – 20mA untuk mengontrol masing-masing channel. Disertai dengan relay high-current sehingga dapat menghubungkan perangkat dengan AC250v 10A. Dan relay ini mampu hidup hanya dengan tegangan kerja 3.3v yang diperolehi dari mikrokontroler.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
2.9.1
Prinsip Kerja Relay Pada dasarnya, relay terdiri dari 4 komponen dasar yaitu : 1. Electromagnet (Coil) 2. Armature 3. Switch Contact Point (Saklar) 4. Spring
Gambar 2.23. Struktur Sederhana Relay Kontak poin (contact point) relay terdiri dari 2 jenis yaitu : Normally Close (NC) yaitu kondisi awal sebelum diaktifkan akan selalu berada diposisi CLOSE (tertutup). Normally Open (NO) yaitu kondisi awal sebelum diaktifkan akan selalu berada diposisi OPEN (terbuka). Berdasarkan gambar diatas, sebuah besi (iron core) yang dililit oleh sebuah kumparan coil yang berfungsi untuk mengendalikan besi tersebut. Apabila kumparan coil diberikan arus listrik, maka akan timbul gaya elektromagnet yang kemudian menarik armature untuk berpindah dari posisi sebelumnya (NC) ke posisi baru (NO) sehingga menjadi saklar yang dapat menghantar arus listrik di posisi barunya (NO). Posisi dimana armature tersebut berada sebelumnya (NC) akan menjadi OPEN atau tidak terhubung. Pada saat tidak dialiri arus listrik, armature akan kembali lagi ke posisi awal (NC). Coil yang digunakan oleh relay untuk menarik contact poin ke posisi close pada umumnya hanya membutuhkan arus listrik yang relatif kecil.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
2.9.2
Fungsi dan Aplikasi Relay Beberapa fungsi relay yang telah umum diaplikasikan kedalam peralatan
elektronika diantaranya adalah : 1. Relay digunakan untuk menjalankan fungsi logika (Logic Function) 2. Relay digunakan untuk memberikan fungsi penundaan waktu (Time Delay Function) 3. Relay digunakan untuk mengendalikan sirkuit tegangan tinggi dengan bantuan dari signal tegangan rendah. 4. Relay yang berfungsi untuk melindungi motor ataupun komponen lainnya dari kelebihan tegangan ataupun hubung singkat (short).
2.10.
Benda Tiga Dimensi Benda 3 dimensi merupakan benda yang memiliki ruang atau volume sehingga
benda akan tampak lebih nyata. Benda 3 dimensi memiliki ukuran panjang, lebar, dan tinggi. Contoh benda 3 dimensi dapat dilihat pada gambar 2.20 [17].
Gambar 2.24. Contoh Benda Tiga Dimensi [17]
2.11. Citra 2.11.1.Definisi Citra Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontinus menjadi gambar diskrit melalui proses sampling. Gambar analog dibagi menjadi N baris dan M kolom sehingga menjadi gambar diskrit. Persilangan antara baris dan kolom tertentu disebut dengan piksel [18]. Secara harafiah, citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Sedangkan jika dilihat dari sudut pandang matematis, citra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini kemudian ditangkap oleh optik, misalnya mata pada manusia, kamera pemindai dan sebagainya, sehingga bayangan objek yang disebut citra tersebut terekam [19].
2.11.2.Pengolahan Citra Digital Pengolahan citra digital adalah kegiatan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia atau mesin (komputer). Inputnya adalah citra dan keluarannya juga citra tapi dengan kualitas yang lebih baik daripada citra masukan. Misalnya citra warnanya kurang tajam, kabur, mengandungi noise dan lain-lain sehingga perlu ada pemrosesan untuk memperbaiki citra karena informasi yang disampaikan menjadi kurang. Teknik pengolahan citra mentransformasikan citra menjadi citra lain. Sehingga masukkannya adalah suatu citra dan keluarannya juga citra, namun citra keluaran mempunyai kualitas yang lebih baik daripada citra masukkan [19].
2.12.Pemrosesan Citra 2.12.1.RGB Suatu citra biasanya akan langsung mengacu ke citra RGB. Sebelumnya bagaimana citra disimpan dan dimanipulasi dalam komputer diturunkan dari teknologi televisi, yang pertama kali mengaplikasikannya untuk tampilan grafis komputer. Jika dilihat dari kaca pembesar, tampilan monitor komputer akan terdiri dari sejumlah triplet titik warna merah (RED), hijau (GREEN) dan biru (BLUE). Tergantung pada pabrik monitornya untuk menentukan apakah titik tersebut merupakan titik bulat atau kotak kecil, tetapi akan selalu terdiri dari 3 triplet red, green dan blue [20]. Citra dalam komputer tidak lebih dari sekumpulan piksel dimana setiap triplet terdiri atas variasi tingkat keterangan (brightness) dari elemen red, green dan blue. Representasinya dalam citra, triplet akan terdiri dari 3 angka yang mengatur intensitas dari Red (R), Green (G) dan Blue (B) dari suatu triplet. Setiap triplet akan merepresentasikan 1 piksel (picture element). Suatu triplet dengan nilai 67,228 dan 180 berarti akan mengeset nilai R ke nilai 67, G ke nilai 228 dan B ke nilai 180. Angka-angka RGB ini yang seringkali disebut dengan color values. Pada format bmp, citra setiap piksel pada citra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
direpresentasikan dengan 24 bit, 8 bit untuk R, 8 bit untuk G dan 8 bit untuk B. Pengaturan citra RGB dapat dilihat pada gambar 2.21 [13].
Gambar 2.25. Pengaturan Citra RGB [13]
2.12.2.Cropping Cropping citra bertujuan untuk memotong bagian tertentu dari suatu citra yang tidak diperlukan dalam proses pengolahan citra. Penentuhan titik-titik yang akan diambil dalam proses cropping menggunakan matrik_titiksudut_crop yang merepresentasikan nilai [x,y,∆x, ∆y]. x : posisi kolom dari pojok kiri atas area yang mau di crop, y : posisi baris dari pojok kiri atas area yang mau di crop, ∆x : lebar area yang mau di crop, ∆y : tinggi area yang mau di crop. Contoh cropping dapat dilihat pada gambar 2.22 [21].
(a) Gambar 2.26. (a) Citra sebelum dicrop,
(b) (b) Citra sesudah dicrop
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
2.13.Metode Pengenalan Warna dan Bentuk Metode yang digunakan adalah penjumlahan nilai matriks red, green dan blue. Dari hasil jumlah tersebut akan dicari nilai terbesar pada masing-masing nilai matriks. Dimana jumlah dari nilai terbesar menunjukan warna pada benda tersebut. Pada tabel 2.5. adalah hasil nilai sementara yang diperolehi setelah dijumlahkan [22].
Tabel 2.5. Nilai Matriks sementara setelah dijumlahkan Gambar benda
Gambar setelah di
berwarna
crop
Nilai RGB benda
Pengenalana warna benda
Merah = 17,92
Benda kotak
Hijau =10,442
berwarna merah
Merah = 17,13
Benda bola
Hijau = 7,23
berwarna merah
Dapat dilihat pada tabel 2.5 menunjukan nilai RGB gambar benda yang lebih besar adalah nilai warna merah maka dari itu disimpulkan bahwa gambar tersebut adalah benda berwarna merah. Sedangkan untuk mengenali bentuk maka, dilakukan perbandingan nilai besaran antara nilai RGB kotak dengan nilai RGB bola yang sudah ditetapkan. Dimana yang memiliki nilai yang paling besar adalah bentuk kotak sedangkan nilai terkecil adalah bentuk bola. Benda kotak berwarna merah memiliki nilai matriks 17,92 sedangkan benda bola berwarna merah memiliki nilai matriks 17,13.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III PERANCANGAN PENELITIAN Dalam bab III ini akan dibahas mengenai perancangan perangkat keras dan perancangan perangkat lunak. Pembahasan meliputi : a)
Proses kerja dan mekanisme conveyor pintar
b)
Perancangan mekanik conveyor pintar
c)
Perancangan perangkat keras (handware)
d)
Perancangan perangkat lunak (software)
3.1. Proses Kerja dan Mekanisme Conveyor Pintar Pada pembuatan tugas akhir ini, dirancang sebuah prototipe menggunakan sebuah conveyor pintar yang dapat mengenali dua jenis warna dan dua jenis bentuk, dimana conveyor pintar mampu memindahkan dan menempatkan benda secara otomatis berdasarkan bentuk dan warna ke suatu wadah khusus yang telah disediakan. Komponen yang digunakan dalam pembuatan tugas akhir ini meliputi rangkaian minimum system Atmega32, conveyor, rangkaian sensor photodioda, rangkaian limit switch, relay 5v, webcam logitech seri C170h, software AVR, software MATLAB, laptop dan motor dc 24V. Cara kerja conveyor pintar yaitu mula-mula benda diletakan pada conveyor pertama yang akan membawa benda tersebut mendekati webcam. Webcam akan mendeteksi benda tersebut, kemudian akan diproses oleh laptop melalui software matlab untuk mengenali bentuk dan warna benda. Setelah benda dikenali, maka disiapkan laptop melalui aplikasi MATLAB akan mengirimkan kode benda yang dikomunikasikan secara serial kepada minimum system ATmega32 menggunakan modul USB to TTL untuk mengerakan conveyor kedua, dimana conveyor kedua ini berfungsi menyiapkan wadah yang sesuai dengan benda yang diinginkan. Gambar 3.1 merupakan diagram blok sistem.
30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
Gambar 3.1. Diagram Blok Sistem
3.2. Perancangan Mekanik Pada perancangan mekanik dari conveyor pintar tersebut, antara lain mendesain ukuran converyor pintar, penggunaan bahan dasar untuk mekanik conveyor yaitu besi bolongan setebal 3mm dan pipa plastik 3inch, untuk ukuran lebar belt 20cm untuk converyor pertama sedangkan untuk converyor kedua 25cm, panjang converyor pertama 100cm dan converyor kedua panjangnya 300cm, kemudian untuk wadah tempat benda dijatuhkan berukuran 20cm x 20cm x 15cm yang terbuat dari bahan papan kayu tipis Desain conveyor menggunakan software AutoCad 2010 untuk gambar conveyor. Conveyor ini di bagi menjadi dua bagian dimana satunya berfungsi sebagai penghantar benda dan conveyor selanjut berfungsi sebagai pemilah benda. Gambar 3.2, 3.3, 3.4, dan 3.5 adalah bentuk seluruh sistem dan ukurannya.
Gambar 3.2. keseluruhan Sistem Conveyor Dilihat Dari Depan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
x
Gambar 3.3. Conveyor Dilihat Dari Samping
Gambar 3.4. Conveyor Dilihat Dari depan
Gambar 3.5. Ukuran Conveyor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
Pada perancangan conveyor pintar ini memiliki rincian desain dengan ukuran yang berbeda-beda untuk dua buah conveyor dimana untuk conveyor pertama memiliki panjang 100cm, lebarnya 15cm dan memiliki tinggi 35cm. Kemudian untuk ketinggian tempat webcam adalah 25cm. Selanjutnya untuk conveyor kedua memiliki panjang 300cm, lebar 25cm dan memiliki tinggi 30cm. Untuk ukuran wadah tempat input adalah 20cm x 20cm x 15cm. Kemudian untuk jarak wadah antara kiri dan kanan dinding conveyor adalah 2,5cm masing-masingnya dengan tujuan wadah tersebut tidak mengenai dinding kiri atau kanan saat conveyor beroperasi. Selanjutnya untuk jarak antara wadah adalah 9cm dan jarak antara sensor adalah 29cm. Perhitungan jarak wadah : conveyor kedua memilik panjang 300cm dimana untuk jarak antara wadah 9cm x 6 = 54cm, untuk ukuran wadah 20cm x 5 = 100cm, untuk jarak antara sensor photodioda adalah 29cm x 5 = 145cm sehingga memiliki total jarak yang diperolehi adalah 54cm + 100cm + 145cm = 299cm. Jarak ini digunakan karena telah sesuai dengan perhitungan agar saat conveyor kedua aktif, wadah diatas conveyor tersebut tidak terjatuh atau bertabrakan antara satu sama lain. Jarak antara conveyor pertama dan conveyor kedua adalah 10cm agar saat input dipindahkan dari conveyor pertama ke conveyor kedua langsung masuk kedalam wadah yang telah disediakan.
3.3. Perancangan Perangkat Keras (hardware) Ada beberapa komponen dalam perancangan subsistem perangkat keras Conveyor pemisah benda berdasarkan bentukdan warna, diantaranya yaitu : 1. Minimum System ATmega32 2. Webcam Logitech seri C170h 3. Sensor photodioda 4. Regulator 12v + penguat arus 5. Modul Relay 5v + limit switch 6. Benda 7. Metode pengenalan warna dan bentuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
3.3.1.Minimum System ATmega32 Rangkaian minimum system berfungsi sebagai I/O untuk mengontrol atau mengendalikan gerakan motor conveyor yang telah diprogram dalam mikrokontroler ATmega32 pada conveyor serta sebagai pengolahan data secara serial yang dikirimkan dari laptop melalui USB to TTL converter. Mikrokontoler membutuhkan minimum system yang terdiri dari rangkaian eksternal yaitu rangkaian osilator serta rangkaian reset. Untuk rangkaian osilator ini menggunakan crystal dengan frekuensi sebesar 11,0592 Mhz dan dua buah kapasitor masing-masing sebesar 22pF. Penggunaa crystal dengan frekuensi sebesar 11,0592 Mhz bertujuan untuk menghasilkan komunikasi yang sesuai dengan baud rate piranti yang dituju sedangkan fungsi kapasitor disini adalah untuk menstabilkan osilasi yang dihasilkan oleh kristal. Penempatan antara kapasitor dengan kristal diusahakan sedekat mungkin untuk menghindari terjadinya noise. Rangkaian osilator adalah subsistem dari mikrokontroler yang berfungsi untuk membangkitkan clock pada mikrokontroler. Clock tersebut diperlukan oleh mikrokontroler untuk mensinkronkan proses yang sedang berlangsung dalam mikrokontroler. Gambar 3.6. menunjukan rangkaian osilator [1].
Gambar 3.6. Rangkaian Osilator ATmega32 [1]
Perancangan rangkaian reset ini bertujuan untuk memaksa proses kerja pada mikrokontroler agar dapat diulang dari awal atau memulai membaca program kembali. 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 [25].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
Gambar 3.7. Rangkaian Reset ATmega32 [25]
Pada gambar 3.7. terdapat resistor yang memiliki resistansi sebesar 4,7 KΩ yang difungsikan sebagai pull-up. Resistor pull-up eksternal dapat digunakan untuk menjaga agar pin RESET tidak berlogika 0 secara tidak sengaja. Kapasitor 10nF digunakan untuk menghilangkan noise yang disususn seri dengan resistor. Rangkaian reset minimum system ATmega32 merupakan gabungan dari rangkaian push-button dan low-pass filter.
3.3.2.Webcam Logitech Seri C170h Webcam yang digunakan pada tugas akhir ini adalah webcam Logitech seri C170h. Fungsinya untuk melakukan capture benda dan output dari gambar data yang dimiliki merupakan nilai matriks citra RGB (Red Green Blue) sudah dalam bentuk digital yang datanya akan diolah menggunakan aplikasi matlab. Webcam jenis ini sudah memiliki dudukan sendiri serta mempunyai software pendukung yang bisa melakukan zoom in dan zoom out sehingga memudahkan pengaturan dari laptop. Pada proses pengambilan citra menggunakan resolusi 320 x 240 piksel. Spesifikasinya webcam bisa dilihat pada lampiran. Gambar 3.8 webcam Logitech Seri C170h [15].
Gambar 3.8. Webcam Logitech Seri C170h [15]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
3.3.3. Sensor Photodioda Sensor photodioda digunakan untuk mendeteksi benda yang diletakan pada conveyor satu dan conveyor dua. Cara kerjanya yaitu jika sensor photodioda terhalang oleh benda atau mendeteksi benda, maka motor pada conveyor akan berhenti. Rangkaian sensor photodioda ditunjukan oleh Gambar 3.9 [26].
Gambar 3.9. Rangkaian Sensor Photodioda [26] Dengan nilai vcc sebesar 5 volt dan arus maksimal infrared 100mA, maka hambatan dapat dihitung menggunakan rumus : 𝑅=
𝑉𝑐𝑐 𝐼
sehingga,
(3.1)
5
R = 100 𝑚𝐴 = 50 Ω Karena nilai resistor sebesar 50 Ω tidak tersedia di pasaran dan agar infrared tidak kelebihan arus, maka digunakan resistor sebesar 100 Ω. Sedangkan untuk nilai hambatan sensor photodioda menggunakan resistor yang mengacu pada gambar 2.14 dan persamaan 2.14 sehingga diperoleh nilai hambatan antara 6,25 KΩ – 25 KΩ. Pada perancangan ini menggunakan resistor 20 KΩ untuk sensor photodioda. Output mikrokontroller ATmega32 memiliki arus yang kecil sehingga tidak bisa digunakan untuk mengendalikan motor dc yang membutuhkan arus cukup besar. Oleh karena itu dibutuhkan rangkaian external agar keluaran dari mikrokontroller dapat mengendalikan motor dc.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
3.3.4. Regulator dan Penguat Arus Pembuatan rangkaian regulator dan penguat arus yang nantinya dipakai sebagai penyetabil tegangan pada minimum system ATmega32 dan motor dc. Komponennya terdiri dari ic 7805, ic 7812, transistor 2N3055, kapasitor, dan diode. Ic 7805 dipakai sebagai penurun tegangan dimana untuk ic tipe ini memiliki tegangan keluaran (output) sebesar 5 volt, arus maksimumnya adalah 1 A, tegangan masukan (input) minimum 7 volt dan maksimal 20 volt dan dipakai untuk memberikan daya pada minimum system Atmega32 yang hanya membutuhkan 5 volt, kemudian untuk komponen pendukung yaitu kapasitor berfungsi sebagai penghilang riple sedangkan untuk ic 7812 digunakan untuk menstabilkan tegangan sekaligus menggunakan transistor 2N3055 sebagai penguat arus, karena bisa dipakai sebagai rangkaian power suplay dengan tegangannya yang bisa diset. Ic ini memiliki tegangan keluaran (output) sebesar 12 volt, arus maksimumnya adalah 1 A, tegangan masukan (input) minimum 14,6 volt dan maksimal 27 volt dan digunakan untuk memberikan daya pada motor dc 24 volt. Maka dari itu trasistor harus dibias tegangan yang konstan pada basisnya, agar pada emitor keluaran tegangannya tetap. Selanjutnya untuk mengatur tegangan basis mengunakan dioda 1N4002. Untuk ic 7812 digunakan untuk memberikan daya pada motor dc 24 volt. Gambar dibawah adalah A. Rangkaian regulator minimum system ATmega32 dan B. Rangkaian regulator dengan penguat arus motor dc 3.10 [23] dan [27].
Gambar 3.10. A. Rangkaian Regulator 5v [23] Dan B. Rangkaian Regulator Dengan Penguat Arus 12v [27].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
3.3.5. Modul Relay 5 Volt Dc Rangkaian modul relay ini digunakan untuk mengendalikan motor dc 24v. Untuk conveyor pertama menggunakan satu channel relay 5v untuk menggerakan motor dc 24v dengan menggunakan sumber power sebesar 12v agar kecepatan motor dc berputar tidak terlalu kencang dan khusus untuk conveyor kedua memakai modul relay dua channel relay 5v sebanyak dua buah untuk mengendalikan putaran motor dc 24v sebanyak 2 buah motor dengan sumber power yang dipakai 24v agar bisa kearah kanan dan kearah kiri secara bergantian dengan metode sinyal logika dasar TTL (High) dan (Low). Untuk conveyor dua untuk membuat agar motor bisa bergerak kekanan menggunakan dua modul relay 5v sedangkan untuk membuat motor bergerak kekiri juga menggunakan dua modul relay 5v yang hanya bisa diaktifkan secara bergantian. Karena menggunakan metode logika TTL 0 dan 1 maka rangkaian ini hanya dapat mengendalikan arah putaran motor dc 24v dengan kecepatan putaran motor dc maksimum.
Gambar 3.11. Rangakain Modul Relay 5v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
3.3.6.Benda Tiga Dimensi Benda yang dapat dikenali oleh webcam terbuat dari styrofoam khusus bentuk kotak dan terbuat dari plastik khusus bentuk bola dimana bendanya adalah kotak merah, bola merah, kotak hijau dan bola hijau. Dapat dilihat pada gambar 3.12 [17]. Ukuran masingmasing benda yaitu : Kotak merah : 5cm x 5cm x 5cm (p x l x t) Kotak hijau
: 5cm x 5cm x 5cm (p x l x t)
Bola merah
: 5cm (diameter)
Bola hijau
: 5cm (diameter)
Gambar 3.12. Benda Tiga Dimensi [17]
3.3.7.Metode Pengenalan Warna dan Bentuk Metode ini dilakukan adalah penjumlahan nilai matriks pada red, green, dan blue. Ketika gambar telah di capture, maka didapat yaitu nilai RGB dalam bentuk matriks yang nantinya akan dijumlahkan sehingga mendapatkan nilai terbesar untuk mendapatkan warna benda sesungguhnya pada gambar. Langkah selanjutnya yaitu proses croping (pemotongan) yang sudah ditentukan yaitu x=17,51 y=60,51 ∆x=255,98 ∆y=176,98 [1]. Proses ini berfungsi untuk menentukkan bagian citra yang dibutuhkan untuk proses perhitungan selanjutnya sehingga untuk bagian citra yang tidak dibutuhkan akan dihilangkan. Setelah croping, maka selanjutnya harus dijadikan matrik real agar memiliki nilainilai yang sesungguhnya dari sebuah matrik gambar. Setelah semua proses sudah dilakukan, maka langkah yang paling penting yaitu menjumlahkan matriks agar memiliki nilai yang nantinya digunakan untuk mereprentasikan nilai warna suatu gambar. Selanjutnya untuk mencari bentuk benda, apakah bentuknya bola atau kotak dengan cara membandingkan selisih nilai RGB yang paling terbesar yang telah ditetapkan dari kedua bentuk benda tersebut dari nilai-nilai yang telah diperolehi apakah sesuai dengan nilai yang telah ditetapkan. Kemudian warna dan bentuk benda akan dikenali dan ditampilkan pada aplikasi GUI MATLAB.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
3.4. Perancangan Perangkat Lunak (Software) Pada perancangan perangkat lunak ini akan dibahas mengenai program kendali conveyor pintar secara keseluruhan diantaranya : a)
Flowchart program interrupt conveyor pintar
b)
Flowchart program pengenalan warna dan bentuk benda
c)
Perancangan GUI pada MATLAB
Pada pembuatan flowchat program interrupt conveyor pintar akan dibahas dan dipaparkan mengenai cara conveyor satu bergerak menghantarkan benda hingga berhenti kemudian dilanjutkan cara conveyor dua menyesuaikan wadah dengan benda yang diinginkan. Pada pembuatan flowchat ini menggunakan software CodeVision AVR yang merupakan suatu perangkat lunak untuk mem-program ic keluarga AVR menggunakan bahasa c. Flowchat yang akan dibuat yaitu flowchat keseluruhan sistem dan flowchat motor dc aktif conveyor satu dan motor conveyor dua. Pada pembuatan flowchat program pengenalan warna dan bentuk benda akan dibahas dan dipaparkan mengenai pembuatan program image processing dengan menggunakan metode RGB dengan software MATLAB.
3.4.1. Flowchart Program Keseluruhan Sistem Secara keseluruhan sistem kerja pada perancangan tugas akhir ini dapat ditunjukan flowchart pada gambar 3.13. cara kerja dari conveyor pintar ini yaitu mula-mula benda diletakan pada conveyor satu. Ketika benda terdeteksi oleh sensor photodioda maka conveyor satu berhenti yang artinya benda berada dibawah webcam, maka mikrokontroler ATmega32 akan mengirimkan suatu karakter secara serial kepada laptop untuk menjalankan program image processing agar benda dapat dikenali. Setelah benda dikenali, maka laptop melalui software MATLAB akan mengirimkan karakter secara serial kepada minimum system ATmega32 untuk menggerakan motor dc conveyor dua untuk menyiapkan wadah sesuai dengan warna dan bentuk benda.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
Mulai
Konveyor kedua siaga
Sensor photodioda deteksi benda
Konveyor pertama bergerak
Tidak
Ya Kirim karakter secara serial ke laptop
Proses pengenalan bentuk dan warna
Benda kotak merah
Tidak
Tidak
Benda kotak hijau
Ya
Ya
Ya
Tidak
Matlab menerima karakter ?
Benda bola merah
Tidak
Ya
Benda bola hijau
Tidak
Benda yang tidak sesuai
Ya
Ya
Konveyor Kedua aktif (gerak) selama 5 detik
Rangkaian photodioda deteksi adanya wadah (1) Port (1) (10000)
Rangkaian photodioda deteksi adanya wadah (2) Port (2) (01000)
Rangkaian photodioda deteksi adanya wadah (3) Port (3) (00100)
Rangkaian photodioda deteksi adanya wadah (4) Port (4) (00010)
Rangkaian photodioda deteksi adanya wadah (5) Port (5) (00001)
Konveyor Kedua berhenti selama 5 detik
Konveyor pertama aktif (gerak) selama 5 detik
Konveyor Kedua kembali pada posisi awal
Selesai
Ya
Tombol stop ditekan ?
Gambar 3.13. Flowchat Keseluruhan Sistem
Tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
3.4.2. Flowchart Program Interrupt Motor Conveyor Satu dan Dua
Motor konveyor pertama gerak (aktif)
Motor konveyor kedua siaga
Mulai
Ya
Rangkaian photodioda konveyor pertama mendeteksi benda
Tidak
Motor konveyor pertama berhenti (5 detik)
Webcam mengenali warna benda. R atau G ?
Tidak
Ya Benda berwarna R atau G ?
Hijau (G)
Merah (R) Benda kotak atau bola ? Bola
B
Benda kotak atau bola ? Kotak
Bola
Benda bola warna hijau (G)
Benda kotak warna hijau (G)
Benda bola warna merah (R)
Rangkaian photodioda deteksi adanya wadah (1) Port (1) (10000)
Rangkaian photodioda deteksi adanya wadah (2) Port (2) (01000)
Rangkaian photodioda deteksi adanya wadah (3) Port (3) (00100)
Kotak Benda kotak warna merah (R) Rangkaian photodioda deteksi adanya wadah (4) Port (4) (00010)
Benda yang di reject
Rangkaian photodioda deteksi adanya wadah (5) Port (5) (00001)
A
Gambar 3.14. Flowchat Gerak Motor Conveyor Satu Dan Motor Conveyor Dua
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
B
A
Motor konveyor kedua gerak (aktif) port (6)
Rangkaian photodioda pada konveyor kedua deteksi adanya wadah, maka
Motor konveyor kedua berhenti selama 5 detik port (7)
Motor konveyor pertama gerak (aktif) selama 5 detik
Tidak
Saat sensor limit switch mendeteksi adanya wadah maka konveyor kedua berhenti
Ya
Tidak
Tombol stop di tekan ?
Ya Selesai
Gambar 3.14. (Lanjutan) Flowchat Gerak Motor Conveyor Satu Dan Motor Conveyor Dua
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
3.4.3.Flowchart Program Pengenalan Bentuk dan Warna Benda Pada MATLAB Program image processing diproses oleh software MATLAB. Cara kerja proses secara keseluruhan yaitu mula-mula webcam harus dikenali terlebih dahulu oleh software MATLAB. Setelah dikenali dan menonaktifkan webcam. Ketika gambar telah di capture, maka langkah selanjutnya diperolehi nilai RGB dalam bentuk matriks yang nantinya akan dijumlahkan sehingga mendapatkan satu nilai terbesar untuk mendapatkan warna sesungguhnya pada gambar. Langkah selanjutnya yaitu proses croping (pemotongan) yang sudah ditentukan x=17,51 y=60,51 ∆x=255,98 ∆y=176,98 [1]. Proses ini berfungsi untuk menentuhkan bagian citra yang dibutuhkan untuk proses selanjutnya sehingga untuk bagian citra yang tidak dibutuhkan akan dipotong. Setelah croping, maka selanjutnya harus dijadikan matriks real agar memiliki nilainilai yang sesungguhnya dari sebuah matriks gambar. Setelah semua proses sudah dilakukan, maka langkah yang paling penting yaitu menjumlahkan nilai matriks agar memiliki suatu nilai yang digunakan untuk mereprentasikan nilai suatu gambar guna untuk mengetahui warna dari benda. Setelah memperolehi suatu nilai akhir dari selisih masing-masing gambar, maka dihitung luasan dari masing-masing benda, jika salah satu dari nilai yang diperolehi paling besar dari masing-masing gambar tersebut maka ia adalah benda kotak dan sebaliknya jika nilai nya kecil maka ia termasuk benda bola. Apabila inputnya berwarna hijau dan memiliki nilai yang lebih besar dari warna merah berarti inpunya berwarna hijau. Kemudian untuk mendeteksi bentuk tinggal membandingkan nilai warna kotak hijau dengan warna bola hijau, jika nilainya lebih besar maka bisa diartikan bahwa benda tersebut adalah bentuk kotak dan jika sebaliknya maka itu adalah bentuk bola. Jika nilai yang diperolehi tidak sesuai dengan warna dan bentuk yang ditentukan maka warna dan bentuk benda tersebut tergolong bukan warna yang di inginkan jadi dianggap sebagai benda reject.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
Ya Terima karakter
Mulai
Tidak
Inisialisasi webcam imaqhwinfo; vid=videoinput('winvi deo',1,'RGB24_320x2 40'); preview(vid) getsnapshot(vid); closepreview(vid);
Benda termasuk warna R atau G?
Tidak
Ubah ukuran matriks gambar proses cropping crop=imcrop(gambar);
Menjumlahkan masing-masing nilai matriks R atau G
Pengambilan matriks berwarna R atau G
Ya Benda adalah warna R atau G?
Merah (R)
Hijau (G)
Benda adalah kotak atau bola ?
Bola
Reject
Benda yang tidak di inginkan atau Reject
Benda bola berwarna hijau (G)
Kotak
Benda kotak berwarna hijau (G)
Benda adalah kotak atau bola ?
Kotak
Bola
Benda bola berwarna merah (R)
Benda kotak berwarna merah (R)
Mengirim karakter warna dan bentuk secara serial ke mikrokontroler
Tidak
Tombol stop di tekan ?
Ya Selesai
Gambar 3.15. Flowchat Pengenalan Warna dan Bentuk Benda
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
3.4.4.Perancangan GUI MATLAB 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 pemrosesan data dan lain-lain. Perancangan GUI yang akan dibuat dapat ditunjukan pada gambar 3.16. Proses pembuatannya menggunakan aplikasi Visio.
Gambar 3.16. Perancangan GUI Pada MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
3.4.5. Flowchat Rangkaian Photodioda Pada Conveyor Kedua. Mulai
Pada konveyor kedua rangkaian photodioda siaga (aktif)
Saat ada wadah yang terdeteksi maka
Ya
Konveyor kedua akan berhenti selama 5 detik
Tidak
Konveyor kedua akan aktif
Tombol stop di tekan ?
Tidak
Ya Selesal
Gambar 3.17. Flowchat rangkaian photodioda pada conveyor kedua. Cara kerja atau prosesnya adalah rangkaian photodioda pada conveyor kedua siap berkerja. Disaat ada wadah yang terdeteksi maka secara otomatis maka conveyor kedua akan berhenti berkerja selama 5 detik dan menunggu conveyor pertama mengantarkan input kedalam wadah yang sesuai. Dan jika tidak ada wadah yang terdeteksi maka conveyor kedua akan aktif berkerja. Proses ini akan berkerja terus sampai pada akhirnya tombol stop ditekan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
3.4.6.Bagaimana Proses Pengenalan Bentuk Dan Warna Benda Pertama siapkan input yang akan dipakai yang terbuat dari styrofoam untuk kotak dan untuk bola terbuat dari plastik yang memiliki dua ukuran dan dua bentuk. Untuk bentuk kotak berukuran 5x5x5cm dan bentuk bola berdiameter 5cm, kemudian memiliki dua jenis warna yaitu warna merah dan warna hijau serta memiliki dua jenis bentuk berupa bentuk bola dan bentuk kotak. Proses awalnya adalah webcam harus dikenali terlebih dahulu oleh software MATLAB. Selanjutnya pengambilan gambar RGB benda yang akan dikenali dan menonaktifkan webcam. Ketika gambar telah di capture, maka didapatlah nilai RGB gambar dalam bentuk matriks yang nantinya akan dijumlahkan sehingga mendapatkan satu nilai terbesar untuk membuktikan warna yang sesungguhnya pada gambar. Setelah itu dilakukan proses croping (pemotongan) yang telah ditentukan dimana x=17,51 y=60,51 ∆x=255,98 ∆y=176,98 [1]. Proses ini bertujuan untuk menghilangkan bagian yang tidak dibutuhkan dan mempertahankan bagian citra yang hendak dipakai. Setelah melalui proses croping, selanjutnya nilai yang diperolehi tadi dijadikan nilai matriks real agar memiliki nilai yang sesungguhnya dari sebuah matriks gambar. Kemudian melakukan proses penjumlahan nilai matriks agar memiliki suatu nilai yang digunakan untuk mereprentasikan nilai suatu gambar guna untuk mengetahui warna dari benda. Setelah mendapatkan suatu nilai dari selisih masing-masing gambar, maka selanjutnya menentuhkan selisih yang paling besar dari nilai-nilai yang diperolehi. Apabila memperolehi nilai yang tidak sesuai dengan warna dasar yang telah ditentukan maka ia termasuk bukan warna dasar. Untuk mengetahui bentuk dari benda tersebut apakah benda termasuk bentuk bola atau bentuk kotak. Dengan cara menghitung luasan dari masing-masing benda tersebut dari hasil pemotongan citra gambar hasil capture. Selesai proses pengenalan benda, benda yang tadinya diatas conveyor 1 akan dihantar ke dalam wadah yang telah disedihkan diatas conveyor 2 sesuai dengan benda yang dikenali. Conveyor 2 akan bergerak sesuai dengan benda yang terdeteksi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV HASIL PENGAMATAN DAN PEMBAHASAN Pada bab ini akan dibahas mengenai hasil pengamatan dari conveyor pintar pemindah barang berdasarkan bentuk dan warna. Hasil pengamatan berupa pengujian webcam logitech C170h terhadap warna dan bentuk seperti kotak merah, bola merah, kotak hijau, bola hijau dan bukan warna dan bentuk pilihan (reject) pada ketepatan menganalisis warna dan bentuk benda dan tingkat keberhasilan conveyor memindahkan benda ketempat yang telah disiapkan berdasarkan masing-masing bentuk dan warna benda.
4.1.
Bentuk Fisik serta Sistem Conveyor Pintar Perangkat keras untuk conveyor pintar ini terdiri atas dua buah conveyor yang dapat
dilihat pada gambar berikut ini 4.1, minimum system ATmega32, modul relay 5 vdc seperti pada gambar 4.2, regulator 12 vdc sebagai penguat arus seperti pada gambar 4.3, dan rangkaian untuk sensor seperti pada gambar 4.4, conveyor dua seperti pada gambar 4.5, conveyor satu seperti pada gambar 4.6, benda seperti pada gambar 4.7 dan wadah untuk benda 4.8.
Gambar 4.1. Minimum System ATmega32
49
Gambar 4.2. Modul Relay 5vdc
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
Gambar 4.3. Regulator 12vdc
Gambar 4.5. Conveyor Dua
Gambar 4.4. Rangkaian Sensor
Gambar 4.6. Conveyor Satu
Gambar 4.7. Benda
Gambar 4.8. Wadah Untuk Benda
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
Gambar 4.9. Conveyor Pintar Untuk sistem kerja conveyor pintar ini adalah kedua conveyor tersebut berkerja secara otomatis sesuai dengan perintah yang diprogram. Proses akan mulai berkerja saat catu daya regulator di hidupkan “ON” dimana awalnya conveyor pertama akan berjalan membawa sebuah benda kearah tepat dibawah sebuah webcam yang nanti akan terdeteksi oleh sensor photodioda. Ketika sensor photodioda terhalang oleh benda, maka mikrokontroler ATmega32 akan mengirimkan karakter ‘A’ secara serial melalui komunikasi serial USART. Kemudian laptop akan menerima karakter tersebut sebagai sebuah tanda bahwa benda telah berada tepat dibawah webcam. Kemudian proses selanjutnya yaitu GUI pada MATLAB akan secara otomatis akan menjalankan program pengenalan bentuk dan warna benda. Setelah benda telah dikenali, maka laptop akan mengirimkan sebuah karakter yang mendefinisikan bentuk dan warna benda tersebut. Karakter ‘A’ yang dikirim ada benda yang terdeteksi yaitu “kotak merah”, Karakter ‘B’ yang terkirim adalah benda yang terdeteksi yaitu “kotak hijau”, Karakter ‘C’ yang terkirim adalah benda yang terdeteksi yaitu “bola merah”, Karakter ‘D’ yang terkirim adalah benda yang terdeteksi yaitu “bola hijau”, dan karakter ‘E’ yang terkirim adalah benda yang tidak terdeteksi. Setelah mikrokontroler ATmega32 menerima karakter tersebut, maka selanjutnya conveyor kedua akan aktif dan membawa wadah diatasnya sesuai dengan benda yang akan dimasukan kedalam wadah dimana conveyor kedua berhenti tepat dibawah conveyor pertama untuk menerima benda. Proses tersebut akan berlangsung sehingga tombol pada GUI MATLAB ditekan atau catu daya pada posisi “OFF”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
4.2.
Hasil Data Pengujian dan Pembahasan Pada sub bab ini, dilakukan pengujian dan pembahasan terhadap nilai batasan pada
RGB, mencari nilai batasan citra RGB dari masing-masing warna benda sebanyak 5 kali pengambilan data, tingkat keberhasilan sistem saat mendeteksi warna dan bentuk yang terdeteksi sebanyak 10 kali pengambilan data, pengujian tingkat keberhasilan sistem mendeteksi warna dan bentuk benda yang dilakukan sebanyak 10 kali percobaan dan pengujian tingkat keberhasilan sistem memilah benda berdasarkan warna dan bentuk benda dilakukan sebanyak 10 kali percobaan.
4.2.1. Hasil Data Pengujian dan Pembahasan Pemberian nilai batasan pada RGB dilakukan dengan membandingakan nilai di ruang TTL. Pengujian dilakukan sebanyak 5 kali pengambilan data karena nilai setiap pengambilan data tidak jauh berbeda kemudian dilakukan perbandingan nilai yang nantinya dicari nilai rata-rata dan dibandingkan serta membuat nilai batasan dengan mencari nilai terbaik pada nilai tiap RGB. Nilai tersebut yang nantinya akan digunakan untuk pengambilan data pada ruangan Tugas Akhir. Berikut tabel 4.1 adalah Data pengujian nilai batasan RGB.
Tabel 4.1. Data Pengujian Nilai Batasan RGB (Kotak Merah) Ruang TA Warna Benda
Nilai R
G
17,92
10,47
17,92
10,49
Merah
R&G
10,21
17,41
10
Nilai Data
39 40 R>G
17,67
Bentuk Benda & Range
Kotak 39 Range =
39
>30 &&<=45 17,92
10,36
35
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53 Tabel 4.2. Data Pengujian Nilai Batasan RGB (Bola Merah)
Ruang TA Warna Benda
Nilai R
G
16,423
6,716
5,818
5,766
Merah
R&G
1,860
9,036
4,444
Nilai Data
18 15 R>G
4,822
Bentuk Benda & Range
Bola 19 Range =
17
>15 &&<=30 9,024
4,428
17
Tabel 4.3. Data Pengujian Nilai Batasan RGB (Kotak Hijau)
Ruang TA Warna Benda
Nilai R
G
14,1
16,9
14,41
16,97
Hijau
R&G
16,9
14,52
16,96
Nilai Data
43 41 R
14,5
Bentuk Benda & Range
Kotak 43 Range =
41
>30 &&<=45 14,27
16,69
42
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
Tabel 4.4. Data Pengujian Nilai Batasan RGB (Bola Hijau)
Ruang TA Warna Benda
Nilai R
G
16,04
17,912
12,32
15,66
Hijau
R&G
7,435
5,97
8,640
Nilai Data
27 25 R
6,682
Bentuk Benda & Range
Bola 28 Range =
27
>15 &&<=30 14,86
17,580
28
Tabel 4.5. Data Pengujian Nilai Batasan RGB (Reject Balok Merah) Ruang TA Warna Benda
Nilai R
G
8,8
6,92
14,61
8
Merah
R&G
Bentuk Benda
Nilai Data
2 10 Reject
Balok
12,78
8,111
6
14,768
8,525
12
14,57
8,170
10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55 Tabel 4.6. Data Pengujian Nilai Batasan RGB (Reject Balok Hijau) Ruang TA Warna Benda
Nilai R
G
8,6
13,46
8,66
13,40
Hijau
R&G
Bentuk Benda
Nilai Data
53 53 Reject
Balok
8,3
13,1
52
8,12
13,06
53
7,60
12,8
60
Tabel 4.7. Data Pengujian Nilai Batasan RGB (Reject Bola Kuning) Ruang TA Warna Benda
Nilai R
G
17,92
17,92
17,92
17,92
Kuning
R&G
Bentuk Benda
Nilai Data
31 30 Reject
Bola
17,92
17,92
30
17,92
17,92
30
17,92
17,92
29
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
Pada tabel 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 dan 4.7 menunjukan nilai batasan RGB pada masing-masing tempat yang berbeda. Terlihat adanya perbedan data yang dihasilkan, hal ini dipengaruhi oleh beberapa faktor yaitu ketidakmerataan warna pada saat pengecatan dan pengaruh dari cahaya di ruangan. Rata-rata nilai tersebut diperolehi dengan menjumlahkan setiap nilai RGB dan dibagi terhadap banyaknya jumlah warna tiap sisi yang terdeteteksi. Dengan memasukan warna reject yaitu dua bentuk benda reject yaitu balok dan bola sebagai pembanding. Pada range data adalah nilai pembulatan dari rata-rata batasan RGB, maka untuk mempermudah sistem mengenali warna dan bentuk benda, dibuat lah sebuah range dengan nilai terbaik dari rata-rata nilai tempat yang nantinya digunakan dalam menentukan warna dan bentuk benda tersebut. Untuk benda kotak merah range data yang digunakan yaitu merah>hijau dan data >30 && <=45, kemudian untuk bola merah range yang digunakan yaitu merah>hijau dan data >=15 &&<=30 sedangkan untuk kotak hijau range merah
30 && <=45 terakhir untuk bola hijau range merah=15 && <=30 dan khusus untuk warna reject selain keempat range tersebut.
4.2.2. Pengujian Nilai Citra RGB Warna dan Bentuk Benda Pengujian nilai citra RGB dari masing-masing warna benda dimaksudkan untuk mengetahui data citra RGB dari masing-masing warna dan bentuk benda yang akan dikenali. Dilakukan sebanyak 10 kali percobaan dari masing-masing warna dan bentuk benda. Terdapat tiga warna dan tiga bentuk benda dalam pengambilan data tersebut, yaitu kotak merah, kotak hijau, bola merah, bola hijau dan benda reject yaitu balok merah dan balok hijau. Menggunakan nilai range yang sudah ditentukan sebelumnya pada batasan warna dan bentuk benda sehingga pada saat pengambilan data tidak terjadi kesalahan warna dan bentuk benda saat proses pengenalan. Dari pengujian tersebut, diperoleh tabel 4.8 sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57 Tabel 4.8. Data RGB Masing-Masing Warna Dan Bentuk Benda Nilai Citra RGB
Nilai Biner
Benda
Warna
Pengambilan
Ke-
Benda
Data Ke-
R
G
1
17,92
10,44
42
2
17,92
10,5
42
3
17,9
10,4
42
4
17,91
10,5
42
5
17,92
10,6
42
6
17,91
10,5
7
17,92
10,6
42
8
17,92
10,66
42
9
17,919
10,6
42
10
17,919
10,68
42
1
17,13
7,23
19
2
7,78
4,4
18
3
16,76
6,93
17
4
6,45
2,78
17
5
17,31
7,18
16
6
4,72
3,16
7
4,75
3,22
16
8
13,1
4,93
16
1
2
Merah
Merah
Bentuk
Nilai
Benda
Data
Kotak
Bola
42
16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
Tabel 4.8. (Lanjutan) Data RGB Masing-Masing Warna Dan Bentuk Benda Nilai Citra RGB Benda
Warna
Pengambilan
Ke-
Benda
Data Ke-
R
G
9
5,7
5,68
2
3
Merah
Nilai Biner Bentuk
Nilai
Benda
Data 19
Bola 10
13,4
5,52
16
1
14,3
16,9
41
2
14,34
16,89
40
3
14,27
16,86
42
4
9,28
11,05
40
5
13,9
16,77
40
Hijau
Kotak 6
13,966
16,7
41
7
12,3
14,57
40
8
11,14
13
40
9
14,55
16.9
40
10
14,53
16,96
40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59 Tabel 4.8. (Lanjutan) Data RGB Masing-Masing Warna Dan Bentuk Benda Nilai Citra RGB
Nilai Biner
Benda
Warna
Pengambilan
Ke-
Benda
Data Ke-
R
G
1
15,52
17,8
26
2
9,05
11,88
28
3
14,13
16,9
27
4
9,21
11,22
28
5
14,55
17,45
28
6
14,57
17,63
29
4
5
Hijau
Bentuk
Nilai
Benda
Data
Bola 7
12,78
16,11
27
8
15,39
17,87
28
9
13,88
17,32
27
10
13,88
17,34
27
1
8,8
6,92
2
2
14,61
8
10
3
12,78
8,111
6
Merah
Balok 4
14,768
8,525
12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
Tabel 4.8. (Lanjutan) Data RGB Masing-Masing Warna Dan Bentuk Benda Nilai Citra RGB Benda
Warna
Pengambilan
Ke-
Benda
Data Ke-
R
5
Merah
5
6
Hijau
Nilai Biner Bentuk
Nilai
G
Benda
Data
14,57
8,170
Balok
10
1
8,6
13,46
53
2
8,66
13,40
53
3
8,3
13,1
4
8,12
13,06
53
5
7,60
12,8
60
Balok
52
Dari tabel 4.8 menunjukan data citra RGB masing-masing warna dan bentuk benda yang telah diambil datanya pada ruangan TA (Tugas Akhir) diatas conveyor. Terlihat adanya beberapa perbedaan nilai yang dihasilkan, hal ini dipengaruhi oleh ketidakmerataan warna pada masing-masing benda serta kondisi pencahayaan pada ruangan. Jika pada saat webcam membaca warna salah satu sisi benda yang lebih merata warnanya maka nilai RGB yang dihasilkan lebih besar dibanding dengan warna yang kurang merata warnanya. Sama halnya dengan pencarian bentuk benda bila pencahayaan terlalu terang atau bahkan kurang akan membuat bentuk yang terdeteksi berubah sesuai kondisi. Nilai pada tabel 4.8 tersebut diperolehi dari nilai batasan pada RGB dan batasan citra biner. Untuk benda Untuk benda kotak merah range data yang digunakan yaitu R>G dan data >30 && <=45, kemudian untuk bola merah range yang digunakan yaitu R>G dan data >=15 &&<=30 sedangkan untuk kotak hijau range R30 && <=45 terakhir untuk bola hijau range R=15 && <=30 dan khusus untuk warna reject selain keempat range tersebut. Misalnya untuk membuktikan nilai bola merah pada citra RGB dan biner tinggal disesuaikan saja dengan nilai range merah adalah dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61 mencari nilai minimal pada warna merah R lebih besar daripada G dan nilai data untuk bentuk bola minimal =15 dan maksimal =30, maka dari data tersebut dapat disimpulkan bahwa nilai batasan range bola merah diperolehi sesuai pada nilai citra RGB dan biner benda bola merah. Begitu juga untuk mencari nilai citra RGB bola hijau dengan mencari nilai minimal pada data G dan maksimal pada data R sedangkan bentuk tinggal menyesuaikan minimal data biner minimal =15 dan maksimal =30 untuk pembuktian bola hijau sehingga dapat disimpulkan bahwa dengan nilai batasan range data dari masingmasing warna dan bentuk sesuai dengan data yang diperoleh. Melihat nilai data hasil citra RGB dan data biner yang diperolehi diruangan TA, maka nilai RGB dan biner yang dihasilkan stabil atau relatif didalam ruangan Ta dikarnakan kondisi pencahayaan dan kemerataan warna benda sangat berdampak sekali pada kinerja webcam sangat sensitif saat sedang mendeteksi benda sehingga terkadang nilai yang telah diberika range terkadang meleset sedikit dan tidak sesuai dengan nilai saat proses kalibrasi mencari range dengan saat pengambilan data terdapat sedikit perbedaan khususnya pada pencarian nilai biner untuk pembuktian bahwa benda tersebut berbentuk kotak atau bola.
4.2.3. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Benda Pada tugas akhir ini, dilakukan analisi tingkat keberhasilan conveyor pintar saat proses pengenalan bentuk dan warna benda dilakukan yaitu kotak merah, kotak hijau, bola merah dan bola hijau. Dan jika terdapat bentuk dan warna yang lain maka webcam tidak akan mendeteksi dan akan mereject. Untuk mengenalinya digunakan range data yang sudah dibuat diruang Ta (ruangan Tugas Akhir). Tetapi apabila terdapat warna dan bentuk lain maka akan terdeteksi reject. Tingkat keberhasilan sistem ditunjukan pada tabel 4.10 dan gambar 4.10, gambar 4.11, gambar 4.12, gambar 4.13 dan gambar 4.14 adalah gambar benda terdeteksi dengan lima kali hasil counting benda.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
Tabel 4.9. Pengujian Keberhasilan Sistem Mendeteksi Warna dan Bentuk Benda PENGUJIAN KEBERHASILAN SISTEM MENDETEKSI WARNA DAN BENTUK BENDA 1
2
3
4
5
6
7
8
9
10
KOTAK MERAH
V
V
V
V
V
V
V
V
V
V
KOTAK HIJAU
V
V
V
V
V
V
V
V
V
V
BOLA MERAH
V
V
V
V
V
V
V
V
V
V
BOLA HIJAU
V
V
V
V
V
V
V
V
V
V
REJECT
V
V
V
V
V
V
V
V
V
V
WARNA BENTUK BENDA
Keterangan : V(Berhasil) X(Tidak berhasil) Tabel 4.9 adalah hasil data yang diambil sebanyak sepuluh kali percobaan, dimana kelima jenis benda ini dikenali satu persatu sebanyak sepuluh kali percobaan tiap benda yaitu kotak merah, kotak hijau, bola merah, bola hijau dan benda reject diatas conveyor yang sedang aktif (nyala). Berdasarkan percobaan tersebut, semua benda berhasil dikenali dengan benar dan akurat satu persatu. Sepuluh kali percobaan tersebut dilampirkan lima jenis gambar benda sebagai bukti keperhasilan pengambilan data yang bisa dilihat pada gambar 4.10, 4.11, 4.12, 4.13, dan 4.14. Benda-benda tersebut diambil citranya dengan bantuan webcam kemudian diolah di program matlab gui dengan berbagai posisi benda dan semuanya berhasil. Kesimpulannya adalah untuk program matlab gui pengenalan bentuk dan warna benda ini memiliki tingkat keberhasilan 100%.
Gambar 4.10. Pengujian Benda Kotak Merah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63
Gambar 4.10. (Lanjutan) Pengujian Benda Kotak Merah
Gambar 4.11. Pengujian Benda Kotak Hijau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64
Gambar 4.12. Pengujian Benda Bola Merah
Gambar 4.13.Pengujian Benda Bola Hijau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
Gambar 4.13. (Lanjutan) Pengujian Benda Bola Hijau
Gambar 4.14. Pengujian Benda Reject . Gambar 4.10, 4.11, 4.12, 4.13 dan 4.14 adalah gambar benda dari hasil percobaan pengambilan data sebanyak sepuluh kali.
4.2.4. Pengujian Keberhasilan Sistem Conveyor Pintar Memilah Benda Berdasarkan Bentuk Dan Warna Pada pengujian conveyor pintar ini sudah mampu melalukan proses memilah dan memindahkan benda kedalam wadah sesuai warna dan bentuk sebanyak sepuluh kali percobaan. Ketika sistem telah mengenali benda, maka sistem akan langsung mengirimkan sebuah karakter secara serial kepada mikrokontroler ATmega32 untuk selanjutnya mengontrol pergerakan conveyor satu untuk memindahkan benda tersebut ke conveyor dua yang diatasnya ada wadah sesuai bentuk dan warna benda.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
Tabel 4.10. Pengujian Keberhasilan Sistem Memilah Benda Berdasarkan Warna Dan Bentuk Benda PENGUJIAN KEBERHASILAN SISTEM MEMILAH BENDA BERDASARKAN WARNA DAN BENTUK BENDA 1
2
3
4
5
6
7
8
9
10
KOTAK MERAH
V
V
V
V
V
V
V
V
V
V
KOTAK HIJAU
V
V
V
V
V
V
V
V
V
V
BOLA MERAH
V
V
V
V
V
V
V
V
V
V
BOLA HIJAU
V
V
V
V
V
V
V
V
V
V
REJECT
V
V
V
V
V
V
V
V
V
V
WARNA BENTUK BENDA
Keterangan : V(Berhasil) X(Tidak berhasil)
Tabel 4.10 adalah hasil data percobaan benda yang berhasil dipilah-pilah oleh conveyor sebanyak sepuluh kali percobaan tiap masing-masing benda yaitu kotak merah, kotak hijau, bola merah, bola hijau dan benda reject. Cara kerjanya adalah benda kotak merah di simpan diatas conveyor satu kemudian dikenali dan selanjutnya dihantar ke conveyor dua dan dimasukan kedalam wadah diatas conveyor dua yang sesuai dengan benda kotak merah dan proses ini berlaku sama untuk kotak hijau, bola merah, bola hijau dan benda reject. Dari hasil pengambilan data sebanyak sepuluh kali tersebut conveyor pintar ini sudah memiliki tingkat keberhasilan 100%. Motor yang dipakai untuk menggerakan conveyor pertama menggunakan tegangan sebesar 12v sehingga gerakkan yang dihasilkan oleh conveyor pertama tidak terlalu pelan dan tidak juga terlalu kencang. Berdasarkan percobaan diatas, jika menggunakan tegangan lain misalnya 24v maka benda yang mau dikenali akan kesulitan untuk dikenali oleh webcam dikarenakan benda saat berada diatas conveyor pertama tidak bisa berhenti tepat dibawa webcam sehingga webcam salah melakukan pengidentifikasi benda. Jika menggunakan tegangan dibawa 12v maka gerakkan conveyor akan sangat lambat sehingga membutuhkan waktu yang lama dalam proses pengenalan bentuk dan warna benda. Conveyor dua menggunakan tegangan 24v untuk menggerakan kedua motor dc tersebut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67 kekiri dan kekanan. Berdasarkan percobaan tersebut, apabila conveyor dua menggunakan
Range Data Biner Antara Kotak & Bola (Perbandingan Data)
tegangan dibawa 24v maka motor dc tidak bisa aktif bergerak.
Perbandingan Bentuk Benda Antara Kotak dan Bola 45 40 35 30 25 20
15 10 5 0 1
2
3
4
5
6
7
8
9
10
10 Kali Pengambilan Data Biner Bentuk Benda (Kotak & Bola) Benda Kotak
Benda Bola
Gambar 4.15. Grafik Perbandingan Antara Bentuk Kotak Dan Bola
Data Nilai Citra (Perbandingan Warna R & G)
Perbandingan Nilai Citra R & G Khusus Untuk Kotak Merah 18 16 14 12 10 8 6 4 2 0 1
2
3
4
5
6
7
8
9
10
10 kali Pengambilan Data Nilai Citra Khusus Kotak Merah Warna Merah
Warna Hijau
Gambar 4.16. Grafik Perbandingan Merah Dan Hijau Untuk Benda Kotak Merah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68
Data Nilai Citra (Perbandingan Warna R & G)
Perbandingan Nilai Citra R & G Khusus Untuk Bola Merah 18 16 14 12 10 8 6 4 2 0 1
2
3
4
5
6
7
8
9
10
10 Kali Pengambilan Data Nilai Citra Khusus Bola Merah Warna Merah
Warna Hijau
Gambar 4.17. Grafik Perbandingan Merah Dan Hijau Untuk Benda Bola Merah
Data Nilai Citra (Perbandingan Warna R & G)
Perbandingan Nilai Citra R & G Khusus Untuk Kotak Hijau 18 16 14 12 10 8 6 4 2 0 1
2
3
4
5
6
7
8
9
10
10 Kali Pengambilan Data Nilai Citra Khusus Kotak HIjau Warna Merah
Warna Hijau
Gambar 4.18. Grafik Perbandingan Merah Dan Hijau Untuk Benda Kotak Hijau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69
Data Nilai Citra (Perbandingan Warna R & G)
Perbandingan Nilai Citra R & G Khusus Untuk Bola Hijau 20 18 16 14 12 10 8 6 4 2 0 1
2
3
4
5
6
7
8
9
10
10 Kali Pengambila Data Nilai Citra Khusus Bola Hijau Warna Merah
Warna Hijau
Gambar 4.19. Grafik Perbandingan Merah Dan Hijau Untuk Benda Bola Hijau
4.3.
Analisis dan Pembahasan Perangkat Lunak Pada sub bab ini akan dibahas mengenai listing program dan CodeVision AVR,
MATLAB dan analisis.
4.3.1. Aplikasi CodeVision AVR Pada sub bab ini akan dijabarkan dan dijelaskan masing-masing fungsi pada listing program yang diprogram menggunakan software CodeVision AVR diantaranya program pengendali sensor photodioda menggunakan ADC (Analog to Digital Converter), dan program untuk komunikasi serial menggunakan USART (Universal Synchronous Asynchronous Receiver Transmitter).
4.3.1.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 benda.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70
// ADC initialization // ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00;
Gambar 4.20. Listing Program ADC Pada listing program yang ditunjukan gambar 4.15, menggunakan PORTA.0 sebagai PORT masukan untuk mengubah tegangan analog menjadi tegangan digital. 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.
//= Ada Objek di PD 1 pd1=read_adc(0); if(pd1>=900){ flag1=1; } else if(pd1<900){ flag1=0; }
Gambar 4.21. Listing Program Pengendali Conveyor Pada bagian listing program gambar 4.21 fungsinya yaitu untuk mengendalikan motor penggerak conveyor yang dikontrol menggunakan PORTA.0. Terdapat nilai pd1< 900 ini dimaksudkan untuk membuat PORTA.0 bernilai “1”yang mengidentifikasi adanya benda dan jika nilai sensor kurang dari atau sama dengan 900 maka tidak ada objek yang menghalang yang artinya motor conveyor akan terus berputar sampai ada benda yang menghalang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71
4.3.1.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 “getString()” yaitu untuk menjalankan fungsi baca komunikasi dari laptop agar mikrokontroler dapat mengerti apa yang dimaksud oleh laptop saat mengirimkan karakter yang mendefinisikan bentuk benda. Sedangkan fungsi “bacasensor()” yaitu untuk menjalankan fungsi baca sensor dan untuk terakhirnua “kondisi()”untuk mengkondisikan sensor yang terbaca apakah ada objek atau tidak ada objek yang terdeteksi. Listing program dapat dilihat pada gambar 4.22.
//Fungsi Komunikasi USART // Membersihkan variabel penampung untuk menerima data selanjutnya void clearStringBuffer(){ unsigned char i=0; for (i=0;i<16;i++){ dataString[i]=''; } Gambar 4.22. Listing Program Komunikasi USART
4.3.1.3.Pengendali Motor DC Program pengendali motor dc. Ini lisiting program untuk mengerakan motor 1 dan 2 sesuai dengan input yang di kenali. Listing program pengendali motor dc ditunjukan pada gambar 4.23. // Konveyor1ON void konOn(){ relay5ON(); } // Konveyor 1OFF void konOff(){ relay5OFF(); }
Gambar 4.23 Program Pengerak Conveyor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72
// Motor Searah Jarum Jam ON void kananOn(){ relay1ON(); relay2ON(); } // Motor Searah Jarum Jam OFF void kananOff(){ relay1OFF(); relay2OFF(); } // Motor Berlawanan Arah Jarum Jam ON void kiriOn(){ relay3ON(); relay4ON(); } Gambar 4.23 (Lanjutan) Program Pengerak Conveyor // Motor Berlawanan Arah Jarum Jam OFF void kiriOff(){ relay3OFF(); Listing program pada gambar 4.21 adalah pergerakan motor dc untuk conveyor 1 relay4OFF(); dan conveyor 2 dalam}kegiatan memilah benda. “Void()” adalah perintah untuk membuat suatu fungsi agar ketika dieksekusi salam proses tidak perlu menulis ulang subrutin yang terdapat didalam void. Gambar 4.24 merupakan listing program untuk memilah benda reject, Gambar 4.25 merupakan listing program untuk memilah bola benda, Gambar 4.26 merupakan listing program untuk memilah bola hijau, Gambar 4.27 merupakan listing program untuk memilah benda kotak merah, Gambar 4.28 merupakan listing program untuk memilah benda kotak hijau. // Barang Reject void barangReject(){ // Jika Limit switch ditekan if (flag7==1){ kiriOff(); // Motor OFF
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73 // Bola Merah void bolaMerah(){ // Jika Limit Switch ditekan if(flag7==1){ kiriOff(); // Motor OFF x=1; // Mengatur objek } // Jika Limit Switch tidak ditekan else if(flag7==0){ // Jika Objek belum diatur if(x==0){ kiriOn(); // Motor ON <} // Jika Objek telah diatur else if(x==1){ // Jika tidak ada objek di PD2 dan ada objek di PD1 if(flag1==1){ cleanObjek(); // Menjauhkan objek dari sensor kananOff(); // Motor OFF -> kiriOff(); // Motor OFF
Gambar 4.25 Listing Program Benda Bola Merah // Bola Hijau void bolaHijau(){ //Jika Limit switch tertekan if(flag7==1){ kiriOff(); // Motor OFF x=1; // Mengatur Objek } // Jika limit switch tidak ditekan else if(flag7==0){ Gambar 4.26 Listing Program Benda Bola Hijau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74
// Jika objek belum teratur if(x==0){ kiriOn(); // Motor ON <} // Jika objek telah diatur else if(x==1){ // Jika Objek telah berada pada PD2 if(flag2==1){ cleanObjek(); // Delay untuk menjauhkan objek dengan sensor kananOff(); // Motor OFF -> kiriOff(); // Motor OFF
Gambar 4.26 (Lanjutan) Listing Program Benda Bola Hijau // Kotak Merah void kotakMerah(){ // Jika limit switch tertekan if(flag7==1){ kiriOff(); kananOn(); x=1; } // Jika limit switch tidak ditekan else if(flag7==0){ if(x==0){ kiriOn(); } else if(x==1){ if(flag3==1){ cleanObjek(); kananOff(); kiriOff();
Gambar 4.27 Listing Program Benda Kotak Merah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75
// Kotak Hijau void kotakHijau(){ if(flag7==1){ kiriOff(); kananOn(); x=1; } else if(flag7==0){ if(x==0){ kiriOn(); } else if(x==1){ if(flag4==1){ cleanObjek(); kananOff(); kiriOff(); konOn(); // Jalankan kembali konveyor 1 cleanObjek(); o=0; x=0; } } } }
Gambar 4.27 Listing Program Benda Kotak Hijau
4.3.1.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 dibawah ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76
while (1) // Program yang terus menerus berjalan sehingga Minsis Powernya dimatin { // Status komunikasi OFF if (status==0){ bacaSensor(); if(flag6==1){ konOff(); //matikan konveyor status=1; fungsiPanggil(); } //Jika tidak ada objek di konveyor 1 else if(flag6==0){ konOn(); status=0; } } // Status komunikasi ON else if(status==1){ Objek(); } } }
Pada bagian listing program diatas, nilai variabel ‘a’ berisi nilai wadah reject yang dikirim oleh laptop melalui modul USB TO TTL converter. Sama halnya dengan variabel ‘b’ untuk bola merah, variabel ‘c’ untuk bola hijau, variabel ‘d’ untuk kotak merah dan terakhir untuk variabel ‘e’ untuk kotak hijau Subrutin yang terdapat didalam “while(1)” akan dieksekusi secara terus menerus sehingga 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 bentuk dan warna benda.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77
4.3.2.1.Tampilan Gui MATLAB GUI (Graphical User Interface) yaitu suatu tampila 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.24.
Gambar 4.29 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 digunaka untuk menampilkan gambar dari benda yang telah diproses. Selain axes, terdapat fasilitas edit text yang berfungsi untuk menampilkan jumlah benda yang telah terdeteksi, nilai data citra biner, 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 diekseusi 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78
perangkat tidak memiliki baudrate yang sama, maka sudah dapat dipastikan kedua perangkat ini tidak akan dapat berkomunikasi satu sama lainnya. Program inisialisasi komunikasi serial ditunjukan gambar 4.30.
%Hardware Setting set(komunikasi,'BaudRate',baudr,'DataBits',databit,'parity','none','StopBits',stopbit ,'FlowControl','none'); % Open Port fopen(komunikasi); %--open the serial port to the PIC % Send Serial Data fprintf(komunikasi,'d#'); %'d' = untuk kotak merah pause(0.5) % Close Connection fclose(komunikasi); guidata(hObject,handles); Gambar 4.30. Inisialisasi Komunikasi Serial
4.3.2.3.Inisialisasi Webcam Untuk melakukan proses pengolahan citra, maka dibutuhkan perangkat keras berupa webcam. Oleh karena itu, diperlukannya proses inisialisasi perangkat keras tersebut agar dapat dikenali oleh MATLAB. Inisialisasi webcam dapat dilihat pada gambar 4.31 % ----- Proses inisialisasi webcam ----- % vid=videoinput('winvideo',2,'YUY2_320x240'); Gambar 4.31. Inisialisasi Webcam Perintah program “2,’YUY2” 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. Gambar 4.32. Adalah fungsi yang dipakai.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79
function newdata=yuy2torgb(data) Y=single(data(:,:,1)); U=single(data(:,:,2)); V=single(data(:,:,3)); C=Y-16; D=U-128; E=V-128; R=uint8((298*C+409*E+128)/256); G=uint8((298*C-100*D-208*E+128)/256); B=uint8((298*C+516*D+128)/256); newdata=uint8(zeros(size(data))); newdata(:,:,1)=R; newdata(:,:,2)=G; newdata(:,:,3)=B; Gambar 4.32 Adalah Fungsi Yang Dipakai Untuk Komunikasi Antara Webcam Dan Matlab
4.3.2.4.Proses Pengolahan Citra 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 mulamula gambar diambil dengan fungsi “getsnapshoot”, kemudian gambar yang telah diambil diproses dan diubah menjadi gambar grayscale dengan tujuan untuk pemrosesan. Langkah selanjutnya yaitu mengubah citra grayscale menjadi citra biner, hal ini dikarenakan saat pengenalan bentuk benda menggunakan metode citra biner. Setelah citra biner, langkah selanjutnya yaitu proses pemotongan gambar. Hal ini bertujuan untuk menghilangkan background atau latar belakang yang tidak dibutuhkan untuk diproses. Fungsi “imresize” bertujuan untuk memperkecil kualitas citra yang telah diolah agar memiliki nilai yang tidak terlalu besar kemudian gambar diubah kembali menjadi gambar RGB dengan tujuan yamg sama dan selanjutnya pengubahan ke matrik real agar citra RGB dapat dihitung. Kemudian langkah terakhir yaitu proses penjumlahan data nilai citra RGB yang diubah ke matrik real menjadi sebuah nilai yang nantinya nilai tersebut mewakili sebuah benda kemudian akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80
ditampilan pada layar axes benda apa yang dikenali oleh webcam. seperti yang ditunjukan pada gambar 4.33.
% ----- Proses inisialisasi webcam ----- % vid=videoinput('winvideo',2,'YUY2_320x240'); % ----- Proses capture gambar ----- % gambar1=getsnapshot(vid); %--Ambil gambar--% gambar=yuy2torgb(gambar1); %--Kemudian di ubah ke RGB--% % ----- Proses rgb ke gray ----- % grey=rgb2gray(gambar); % ----- Proses grey ke biner ----- % biner=im2bw(grey); % ----- Proses cropping ----- % crop1=imcrop(biner,[17.51 60.51 255.98 176.98]); crop2=imcrop(gambar,[125.51 140.51 31.98 27.98]); crop3=imcrop(gambar,[17.51 60.51 255.98 176.98]); % ----- Proses resizing ----- % y=imresize(crop1,[16 16]); c=double(y); % ----- Menjumlahkan keseluruhan ----- % data=sum(sum(c)); % ----- Proses merubah ke bentuk rgb ----- % red=crop2(:,:,1); green=crop2(:,:,2); % ----- Ubah ke nilai matrik real ----- % c1=double(red)/255; c2=double(green)/255; merah=sum(sum(c1/50)); hijau=sum(sum(c2/50)); % ----- Tampilkan pada axes ----- % axes(handles.axes1); imshow(crop3);
Gambar 4.33. Proses Pengolahan Citra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81
4.3.2.5.Proses Pengenalan Bentuk dan Warna Benda Berdasarkan nilai-nilai dari tabel 4.10, maka dibuat sebuah range yang menentukan bentuk benda tersebut. Untuk benda kotak range data yang digunakan yaitu untuk warna kotak merah ((R > G) dan (data>30)&&(data<=45)), bola merah ((R > G) dan (data>=15)&&(data<=30)), kotakhijau ((R30)&&(data<=45)), bola hijau ((R>G) dan (data>=15)&&(data<=30)), maka dapat dibuat range nilai untuk mengetahui dan mengenali dari masing-masing bentuk benda. Listing program ditunjukan gambar 4.31. % ----- Proses pengenalan Warna dan Bentuk ----- % if(((merah>hijau))&&((data>30)&&(data<=45))) set(handles.edit9, 'String', 'KOTAK MERAH'); kotakmerah=kotakmerah +1; set(handles.edit1,'String', kotakmerah); guidata(hObject,handles); elseif(((merah>hijau))&&((data>=15)&&(data<=30))) set(handles.edit9, 'String', 'BOLA MERAH'); bolamerah=bolamerah +1; set(handles.edit2,'String', bolamerah); guidata(hObject,handles); set(handles.edit9, 'String', 'KOTAK HIJAU'); kotakhijau=kotakhijau +1; set(handles.edit3,'String', kotakhijau); guidata(hObject,handles); elseif(((merah=15)&&(data<=30))) set(handles.edit9, 'String', 'BOLA HIJAU'); bolahijau=bolahijau +1; set(handles.edit4,'String', bolahijau); guidata(hObject,handles); else set(handles.edit9, 'String', 'REJECT'); reject=reject +1; set(handles.edit5,'String', reject); guidata(hObject,handles); % Open Port fopen(komunikasi); %--open the serial port to the PIC % Send Serial Data fprintf(komunikasi,'a#'); %'a' = untuk Reject Gambarpause(0.5) 4.34. Listing Program Pengenalan Bentuk dan Warna
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82
Proses
akan beroperasi
jika
data
memiliki
nilai antara
((R>G)
dan
(data>30)&&(data<=45)) maka ditampilan pada “edit9” bahwa benda yang terdeteksi adalah kotak merah, kemudian menjumlahkan nilai warna dan nilai biner benda yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit1” lalu mengirimkan karakter ‘d’ secara serial dan memberi jeda selama satu detik. Jika data memiliki nilai ((R>G) dan (data>=15)&&(data<=30)) maka akan ditampilkan pada “edit9“ bahwa benda yang terdeteksi adalah bola merah, kemudian menjumlahkan nilai warna dan nilai biner benda yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit2” lalu mengirimkan karakter ‘b’ secara serial dan memberi jeda selama satu detik. Jika data memiliki nilai ((R30)&&(data<=45)) maka akan ditampilkan pada “edit9” bahwa yang terdeteksi adalah kotak hijau kemudian menjumlahkan nilai warna dan nilai biner benda yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit3” lalu mengirimkan karakter ‘e’ secara serial
dan
memberi
jeda
selama
satu
detik.
Bila
nilai
((R
dan
(data>=15)&&(data<=30)), maka akan ditampilkan pada “edit9” bahwa yang terdeteksi adalah bola hijau kemudian menjumlahkan nilai warna dan nilai biner benda yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit4” lalu mengirimkan karakter ‘c’ secara serial dan memberi jeda selama satu detik. Apabila data berada pada nilai selain data yang telah disebutkan maka akan ditampilkan “edit9” bahwa yang terdeteksi reject kemudian menjumlahkan nilai warna dan nilai biner benda yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit5” lalu mengirimkan karakter ‘a’ secara serial dan memberi jeda selama satu detik.
4.3.3. Analisis a. Sumber tegangan yang digunakan untuk menghidupkan conveyor diperolehi dari inverter yang menghasilkan tegangan 24v kemudian disambungkan ke regulator 12v
kemudian digunakan untuk mengaktifkan mikrokontroler,motor dc serta
komponen-komponen pendukung lainnya. b. Benda yang dipakai sebagai input masukan terbuat dari styrofoam yang dibagian luarnya dibungkus kertas payung untuk bentuk kotak dan untuk bentuk bola terbuat dari plastik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83 c. Pada proses pengambilan data yaitu proses pengenalan bentuk benda dan warna menggunakan aplikasi matlab berhasil diperolehi sesuai dengan keinginan. d. Pada bagian mekanik alat conveyor pintar ini sudah sepenuhnya berhasil dioperasikan secara otomatis. Komunikasi serialnya berjalan sesuai dengan perancangan.
4.4.
Pembahasan Software Pada tugas akhir ini software yang digunakan antara lain: a. CodeVision AVR Evalution versi 2.05.0 dengan Compiler Bahasa C. IC (Integrated Circuit) yang digunakan adalah ATMega32 jenis DT-AVR Low Cost Micro System Merk Innovattive Electronics. b. Software simulasi yang digunakan adalah Proteus ISIS 7.1 SPO (Build 12325). Simulasi ini bertujuan untuk mengetahui rangkaian yang akan digunakan telah berkerja dengan baik atau belum. c. Proses pembuatan PCB juga menggunakan Proteus ISIS 7.1 SPO (Build 12325). Jenis komponen yang digunakan sampai desain rangkaian sudah dirancang dengan baik, selanjutnya membuat rangkaian PCB hingga rapi. d. Program Mikrokontroler yang sudah dibuat lalu disimulasikan, kemudian dimasukkan kedalam ATMega32. Downloder yang digunakan adalah USBasp for Atmel AVR controller 2011. Proses download program ke mikrokontroler menggunakan program Extreme Burner. e. Program Matlab R2010a digunakan untuk menunjukkan benda tersebut memiliki bentuk dan warna apa. Selain itu, program ini juga mampu melakukan perhitungan berapa banyak benda yang telah terdeteksi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V KESIMPULAN DAN SARAN 5.1.
Kesimpulan Dari hasil pengujian serta pengambilan data pada aplikasi pengenalan benda
menggunakan webcam untuk conveyor pintar pemilah benda berdasarkan warna dan bentuk benda, dapat diambil kesimpulan: 1. Program Matlab Gui untuk proses pengenalan bentuk dan warna benda yang menggunakan webcam sebagai pengenal benda sudah mampu untuk mengenali bentuk serta warna benda sehingga mampu melakukan proses pemilah dan berhasil melakukan counting sesuai dengan jumlah benda yang terdeteksi.
Memiliki
tingkat
keberhasilan
100%
dalam
proses
pengindentifikasi benda. 2. Program avr untuk menggerakan conveyor sudah berhasil sepenuhnya dan bisa diterapkan pada hardware sehingga bisa membuat conveyor bergerak sesuai dengan perancangan dan bagian mekanik ini juga sama memiliki tingkat keberhasilan 100% dalam proses memilah benda berdasarkan bentuk dan warna benda. Untuk komunikasi serial juga sudah mampu mengirim data string dari program Matlab ke mikrokontroler untuk mengendalikan gerakkan conveyor 1 dan conveyor 2. 3. Sistem conveyor pintar ini sudah mampu berkerja sesuai dengan perancangan awal dan memiliki tingkat keberhasilan 100%.
5.2.
Saran Saran bagi pengembangan selanjutnya adalah: 1. Menyiapkan lebih banyak lagi variasi bentuk benda serta warna benda agar dalam proses pembandingkan memiliki tingkat keakuratan nilai RGB di dalam sistem. 2. Waktu untuk proses pengenalan benda dibuat dengan lebih cepat. 3. Kecepatan conveyor dibuat lebih cepat lagi agar bisa menghemat waktu.
84
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Daftar Pustaka [1]
Bagus Dean Mahendra, Richard. 2011. Aplikasi Pengenalan Warna Menggunakan Webcam Untuk Lengan Robot Pemisah Benda Brdasarkan warna, Skripsi, Universitas Sanata Dharma, Yogyakarta.
[2]
Hasan, Irvan. 2011. Aplikasi Pengenalan Objek Untuk Lengan Robot Pemisah Benda Berdasarkan Bentuk Benda, Skripsi, Universitas Sanata Dharma, Yogyakarta.
[3]
http://www.automatedconveyors.com/slider-bed-belt, diakses pada tanggal 29 Juli 2016
[4]
https://pccontrol.wordpress.com/2013/07/04/pengetahuan-dasar-pemrogramanusart-serial-komunikasi-avr-microcontroller/, diakses pada tanggal 10 Agustus 2016
[5]
Winato, A,, 2002, Mikrokontroler AVR ATMEGA8/32/8532 dan pemrograman dengan Bahasa C pada WinAVR, INFORMATIKA, Bandung.
[6]
Heryanto, M.A., ST., Ir. Wisni Adi P., 2008, Pemrograman Bahasa C untuk Mikrokontroler ATMEGA32, 1st ed, C.V ANDI OFFSET, Yogyakarta.
[7]
Bejo, A., 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontrol ATMEGA32, 1st ed, GRAHA ILMU, Yogyakarta.
[8]
Adrianto, H., 2008, Pemrograman Mikrokontroler AVR ATMEGA 16, 1st ed, INFORMATIKA, Bandung.
[9]
Sumbodo, W ., 2008, Jilid 3, Teknik Produksi Mesin Industri, Direktorat Pembinaan Sekolah Menengah Kejurusan, Dirjen Manajemen Pendidikan Dasar dan Menengah, Hak Cipta Depdiknas.
[10]
http://www.learningaboutelectronics.com/Articles/How-to-connect-a-voltageregulator-in-a-circuit/, diakes pada tanggal 29 Juli 2016
[11]
Honeycutt, R.A., 1988, Op Amps and Linear Integrated Circuits, Delmar Publishers Inc., New York
[12]
Boylestad, R and Nashelsky. L., Electronic Devices and Circuit Theory, seventh edition, Prentice Hall, New Jersey Columbus, Ohio.
[13]
http://elektronika-dasar.web.id/model-warna-citra-digital/ diakses pada tanggal 29 Juli 2016
[14]
http://elektronika-dasar.web.id/limit-switch-dan-saklar-push-on/, tanggal 05 Juli 2016.
85
diakses
pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
[15]
http://rumahshaleh.com/pengertian-webcam-dan-jenisnya/, diakses pada tanggal 07 Juli 2016.
[16]
http://zonaelektro.net/motor-dc/, diakses pada tanggal 09 Juli 2016.
[17]
http://www.rumusmatematika.org/2015/06/bangun-ruang.html/,
diakses
pada
tanggal 10 Juli 2016. [18]
http://www.romlisapermana.com/2015/07/pengertian-citra-dan-pengolahancitra.html, diakses pada tanggal 10 Juli 2016.
[19]
Ervi, J., 2010, Pembuatan Perangkat Lunak Menggunakan Paradigma Perangkat Lunak Secara Waterfall, UNIKOM.
[20]
Alfatah, H., 2007, Konversi Format Citra RGB ke Grayscale Menggunakan Visual Basic, STIMK AMIKOM Yogyakarta.
[21]
http://www.mathworks.com/help/images/ref/imcrop.html, diakses pada tanggal 10 Juli 2016
[22]
Putra, D., 2010, Pengolahan Citra Digital, Andi Offset, Yogyakarta.
[23]
---, 2013, Data sheet Ic LM7805
[24]
http://www.rangkaianelektronika.org/rangkaian-sensor-sederhana.htm,
diakses
pada tanggal 30 Juli 2016 [25]
https://kurangsangu.wordpress.com/2011/04/19/sistem-minimum-atmega16/, diakses pada tanggal 30 Juli 2016
[26]
http://elektronikadasar.info/sensor-cahaya.htm/, diakses pada tanggal 30 Juli 2016
[27]
http://teknikelektronika.com/jenis-ic-voltage-regulator-pengatur-tegangan/, diakses pada tanggal 30 Juli 2016
[28]
http://elektronika-dasar.web.id/driver-motor-dc-h-bridge-transistor/ diakses pada tanggal 30 Juli 2016
[29]
http://teknikelektronika.com/pengertian-relay-fungsi-relay/ diakses pada tanggal 18 maret 2017
[30]
https://rohmadi.com/2013/12/09/modul-relay-2-channel-arduino/ tanggal 18 maret 2017
86
diakses
pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L2
Rangkaian Minimum System ATmega32 Rangkaian Untuk Sensor
Saklar J10 CONN-SIL3
VI
J1
2
1 2 3 4
CONN-DIL8
1 2 3 4 5 6 7 8
3 10 9 8 7 6
8 7 6 5
1N4001
J2
CONN-SIL3
DC Source
VO GND
1
+VDC
1 2 3
U2 Regulator Tegangan 7805
D1 3 2 1
C1
C2
100uF
100uF
J1
R1
PORT C
CONN-DIL10
J2
330
D2
GND
1 2 3 4 5
J11
1 2 3 4 5 6 7 8
5V DC
LED PORT B
J4 1 2 3 4 5
MOSI Reset SCK MISO
10 9 8 7 6
+5V GND
CONN-DIL10
J7
PB
Downloader
J8
R2 4k7
U1 8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8
CONN-SIL8 8 7 6 5 4 PD 3 2 1
14 15 16 17 18 19 20 21
CONN-SIL8
13 12 9
X1
PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2 XTAL1 XTAL2 RESET ATMEGA8535
J5 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0/SCL PC1/SDA PC2 PC3 PC4 PC5 PC6/TOSC1 PC7/TOSC2
AREF AVCC
40 39 38 37 36 35 34 33
1 2 3 4 5 6 7 8
22 23 24 25 26 27 28 29
1 CONN-SIL8 2 3 4 5 PC 6 7 8
32 30
1 CONN-SIL8 2 ARev 3
PA
J3 1 PORT D.2
J6
R1 100R
R3
R2
100
20k
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
100R
20K
100R
25k
100R
25k
100R
25k
100R
20k
R15
R16
100R
20k
20k
D1
D2
D3
D4
D5
D6
D7
D8
IR
PHOTO
IR
PHOTO
iR
photo
IR
PHOTODIODE
D9
D10
IR
PHOTODIODE
D11
D12
IR
PHOTODIODE
D13
D14
IR
PHOTODIODE
D15
D16
IR
PHOTODIODE
J3
CONN-SIL3
J9 C6 1uF
1 2 3
Push Button CONN-SIL3
CRYSTAL
C4
C5
22pF
22pF
J4 1 CONN-SIL1
Rangkaian Relay 5v Rangkaian Regulator 12v
Rangkaian Reset ATmega32 Rangkaian Osilator ATmega32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L3
Webcam Logitech C170h [15] Spesifikasi Webcam Logitech C170h :
1GHz (1.6GHz ) 512 MB RAM atau lebih 200 MB hard drive Internet koneksi Usb 1.1 port (2.0)
Modul Relay 5vdc Deskripsi Produk : Modul Relay 2-ch 5vdc Arduino dan Relay 1-ch5vdc.
Motor Dc Conveyor 1
Spesifikasi : Motor Dc 24v, 2amp Gear ratio = 1:20.26 Teg = 12v, arus = 0,26amp, kecep = 65rpm (test motor) Teg = 24v, arus = 0,48amp, kecep = 139rpm (test motor) Panjang = 12,5cm Diameter = 7,7cm
Motor Dc Conveyor 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L4
Limit Switch Spesifikasi limit switch : -
Bisa berkerja pada tegangan 5 vdc Sebagai saklar Memiliki berbagai bentuk
LISTING PROGRAM GUI MATLAB /***************************************************** Project : PROTOTIPE PEMILAH BENDA BERDASARKAN BENTUK DAN WARNA MENGGUNAKAN CONVEYOR Date : 18-Dec-2016 / 16:16:32 Project : Mesin Konveyor Version : v2.5 Pencipta : Erik Firmanto Da Loves / 125114013 ******************************************************/ function varargout = untitled(varargin) % UNTITLED M-file 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 % Edit the above text to modify the response to help untitled % Last Modified by GUIDE v2.5 18-Dec-2016 16:16:32 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L5
'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @untitled_OpeningFcn, ... 'gui_OutputFcn', @untitled_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT end % --- Executes just before untitled is made visible. function untitled_OpeningFcn(hObject, ~, 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) % Choose default command line output for rgb and realtime %clean Terminal & Set The Parameter clc; cla; set(handles.edit1, 'String','0'); set(handles.edit2, 'String','0'); set(handles.edit3, 'String','0'); set(handles.edit4, 'String','0'); set(handles.edit5, 'String','0'); set(handles.edit6, 'String','' ); set(handles.edit7, 'String','' ); set(handles.edit8, 'String','' ); set(handles.edit9, 'String','' ); handles.output = hObject; % Global Variable global kotakmerah global bolamerah global kotakhijau global bolahijau global reject %Set Global Variabel kotakmerah=0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L6
bolamerah=0; kotakhijau=0; bolahijau=0; reject=0; guidata(hObject,handles); % Update handles structure guidata(hObject, handles); end % UIWAIT makes untitled wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = untitled_OutputFcn(~, ~, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; end % Set PORT Communication % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, ~, handles) 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';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L7
case 11 handles.PORT='COM11'; case 12 handles.PORT='COM12'; case 13 handles.PORT='COM13'; case 14 handles.PORT='COM14'; case 15 handles.PORT='COM15'; case 16 handles.PORT='COM16'; case 17 handles.PORT='COM17'; end guidata(hObject,handles); end % 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 % contents{get(hObject,'Value')} returns selected item from popupmenu1 % --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, ~, ~) % 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 % ---------- Executes on button press in pushbutton5 --------- % function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc; global kotakmerah global bolamerah global kotakhijau global bolahijau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L8
global reject guidata(hObject,handles); %Serial setting baudrate and etc komunikasi=serial(handles.PORT); baudr=9600; databit=8; stopbit=1; guidata(hObject,handles); %Hardware Setting set(komunikasi,'BaudRate',baudr,'DataBits',databit,'parity','none','StopBits',stopbit,'FlowCo ntrol','none'); % ----- Proses inisialisasi webcam ----- % vid=videoinput('winvideo',2,'YUY2_320x240'); % ----- Proses capture gambar ----- % gambar1=getsnapshot(vid); %--Ambil gambar--% gambar=yuy2torgb(gambar1); %--Kemudian di ubah ke RGB--% % ----- Proses rgb ke gray ----- % grey=rgb2gray(gambar); % ----- Proses grey ke biner ----- % biner=im2bw(grey); % ----- Proses cropping ----- % crop1=imcrop(biner,[17.51 60.51 255.98 176.98]); crop2=imcrop(gambar,[125.51 140.51 31.98 27.98]); crop3=imcrop(gambar,[17.51 60.51 255.98 176.98]); % ----- Proses resizing ----- % y=imresize(crop1,[16 16]); c=double(y); % ----- Menjumlahkan keseluruhan ----- % data=sum(sum(c)); % ----- Proses merubah ke bentuk rgb ----- % red=crop2(:,:,1); green=crop2(:,:,2); % ----- Ubah ke nilai matrik real ----- % c1=double(red)/255; c2=double(green)/255; merah=sum(sum(c1/50)); hijau=sum(sum(c2/50));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L9
% ----- Tampilkan pada axes ----- % axes(handles.axes1); imshow(crop3); set(handles.edit1,'string','0'); set(handles.edit2,'string','0'); set(handles.edit3,'string','0'); set(handles.edit4,'string','0'); set(handles.edit5,'string','0'); set(handles.edit8,'string',data); set(handles.edit9,'string',''); set(handles.edit6,'string',merah); set(handles.edit7,'string',hijau); % ----- Proses pengenalan Warna dan Bentuk ----- % if(((merah>hijau))&&((data>30)&&(data<=45))) set(handles.edit9, 'String', 'KOTAK MERAH'); kotakmerah=kotakmerah +1; set(handles.edit1,'String', kotakmerah); guidata(hObject,handles); % Open Port fopen(komunikasi); %--open the serial port to the PIC % Send Serial Data fprintf(komunikasi,'d#'); %'d' = untuk kotak merah pause(0.5) % Close Connection fclose(komunikasi); guidata(hObject,handles); elseif(((merah>hijau))&&((data>=15)&&(data<=30))) set(handles.edit9, 'String', 'BOLA MERAH'); bolamerah=bolamerah +1; set(handles.edit2,'String', bolamerah); guidata(hObject,handles); % Open Port fopen(komunikasi); %--open the serial port to the PIC % Send Serial Data fprintf(komunikasi,'b#'); %'b' = untuk bola merah pause(0.5) % Close Connection fclose(komunikasi); guidata(hObject,handles); elseif(((merah30)&&(data<=45)))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L10
set(handles.edit9, 'String', 'KOTAK HIJAU'); kotakhijau=kotakhijau +1; set(handles.edit3,'String', kotakhijau); guidata(hObject,handles); % Open Port fopen(komunikasi); %--open the serial port to the PIC % Send Serial Data fprintf(komunikasi,'e#'); pause(0.5)
%'e' = untuk kotak hijau
% Close Connection fclose(komunikasi); guidata(hObject,handles); elseif(((merah=15)&&(data<=30))) set(handles.edit9, 'String', 'BOLA HIJAU'); bolahijau=bolahijau +1; set(handles.edit4,'String', bolahijau); guidata(hObject,handles); % Open Port fopen(komunikasi); %--open the serial port to the PIC % Send Serial Data fprintf(komunikasi,'c#'); pause(0.5)
%'c' = untuk bola hijau
% Close Connection fclose(komunikasi); guidata(hObject,handles); else set(handles.edit9, 'String', 'REJECT'); reject=reject +1; set(handles.edit5,'String', reject); guidata(hObject,handles); % Open Port fopen(komunikasi); %--open the serial port to the PIC % Send Serial Data fprintf(komunikasi,'a#'); pause(0.5) % Close Connection fclose(komunikasi);
%'a' = untuk Reject
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L11
guidata(hObject,handles); end % ----- menghapus koneksi ----- % delete(komunikasi); clear komunikasi clc; end % --- Executes on button press in pushbutton6. ----- % function pushbutton6_Callback(hObject, ~, handles) global kotakmerah global bolamerah global kotakhijau global bolahijau global reject guidata(hObject,handles); cla; kotakmerah=0; set(handles.edit1,'String',kotakmerah); set(handles.edit6,'String',kotakmerah); bolamerah=0; set(handles.edit2,'String',bolamerah); set(handles.edit6,'String',bolamerah); kotakhijau=0; set(handles.edit3,'String',kotakhijau); set(handles.edit7,'String',kotakhijau); bolahijau=0; set(handles.edit4,'String',bolahijau); set(handles.edit7,'String',bolahijau); reject=0; set(handles.edit5,'String',reject); set(handles.edit9,'String',reject); nilaibinearbenda=0; set(handles.edit8,'String',nilaibinearbenda); end % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton7. --- % function pushbutton7_Callback(hObject, ~, handles)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L12
guidata(hObject,handles); close all; clear all; % hObject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) end % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(~, ~, ~) % 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 end
LISTING PROGRAM CVAVR /***************************************************** Project : PROTOTIPE PEMILAH BENDA BERDASARKAN BENTUK DAN WARNA MENGGUNAKAN CONVEYOR Date : 03/01/2017 Project : Mesin Conveyor Version : 2.0 Pencipta : Erik Firmanto Da Loves / 125114013 Chip type : ATmega32A Program type : Application AVR Core Clock frequency : 11.059200 MHz Memory model : Small External RAM size :0 Data Stack size : 512 **********************************************************/ //Library yang digunakan #include <mega32a.h> // Library Atmega32A #include <delay.h> // Library Delay #include <stdio.h> // Library Standar Input Output // Mengaktifkan fungsi ADC #define ADC_VREF_TYPE 0x40 //========================================================= // PORT YANG DIGUNAKAN //=========================================================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L13
// Port yang digunakan //define PORTA.0 pd1 // Photodioda Konveyor 2 pertama //define PORTA.1 pd2 // Photodioda konveyor 2 ke-dua //define PORTA.2 pd3 // Photodioda Konveyor 2 ke-tiga //define PORTA.3 pd4 // Photodioda konveyor 2 ke-empat //define PORTA.4 pd5 // Photodioda Konveyor 2 ke-lima //define PORTA.5 pd6 // Photodioda konveyor 1 pertama //define PORTA.6 ls // Limit Switch //========================================================== // 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|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; }
// Variabel yang digunakan int pd1,pd2,pd3,pd4,pd5,pd6,ls,status,k,l,m,n,o,x=0; // Menampung photodioda dan limit switch int flag1,flag2,flag3,flag4,flag5,flag6,flag7=0; // penanda objek char dataString[2]; // Penampung untuk komunikasi USART
//Fungsi Komunikasi USART // Membersihkan variabel penampung untuk menerima data selanjutnya void clearStringBuffer(){ unsigned char i=0; for (i=0;i<16;i++){ dataString[i]=''; } } // Menerima dan memeriksa karakter kemudian mengubahnya kedalam string void getString(){ unsigned char i=0,temp; clearStringBuffer(); temp = getchar(); while (temp!='#'){ dataString[i]=temp;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L14
i++; temp = getchar(); } } //Relay1 //ON void relay1ON(){ PORTC.0=0; // Kondisi port yang digunakan } //OFF void relay1OFF(){ PORTC.0=1; // Kondisi port yang digunakan } //Relay2 // ON void relay2ON(){ // kekiri start PORTC.1=0; // Kondisi port yang digunakan } // OFF void relay2OFF(){ // stop PORTC.1=1; // Kondisi port yang digunakan } //Relay3 // ON void relay3ON(){ // kekanan start PORTC.2=0; // Kondisi port yang digunakan } // OFF void relay3OFF(){ // stop PORTC.2=1; // Kondisi port yang digunakan } //Relay4 //ON void relay4ON(){ PORTC.3=0; // Kondisi port yang digunakan } //OFF void relay4OFF(){ PORTC.3=1; // Kondisi port yang digunakan }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L15
//Relay 5 //ON void relay5ON(){ PORTC.4=1; // Kondisi port yang digunakan } //OFF void relay5OFF(){ PORTC.4=0; // Kondisi port yang digunakan }
// Konveyor1ON void konOn(){ relay5ON(); } // Konveyor 1OFF void konOff(){ relay5OFF(); } // Motor Searah Jarum Jam ON void kananOn(){ relay1ON(); relay2ON(); } // Motor Searah Jarum Jam OFF void kananOff(){ relay1OFF(); relay2OFF(); } // Motor Berlawanan Arah Jarum Jam ON void kiriOn(){ relay3ON(); relay4ON(); } // Motor Berlawanan Arah Jarum Jam OFF void kiriOff(){ relay3OFF(); relay4OFF(); } void bacaSensor(){
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L16
//=============================================================== === //= Ada Objek di PD 1 //=============================================================== === pd1=read_adc(0); //Membaca adc 0 kemudian disimpan pada pd1 if(pd1>=900){ // Angka diubah sesuai kalibrasi flag1=1; // flag=1 berarti ada objek } else if(pd1<900){ // Angka diubah sesuai kalibrasi flag1=0; // flag=0 berarti tidak ada objek } //=============================================================== ===
//=============================================================== === //= Ada Objek di PD 2 //=============================================================== === pd2=read_adc(1); //Membaca adc 1 kemudian disimpan pada pd2 if(pd2>=1000){ // Angka diubah sesuai kalibrasi flag2=1; // flag=1 berarti ada objek } else if(pd2<1000){ // Angka diubah sesuai kalibrasi flag2=0; // flag=0 berarti tidak ada objek } //=============================================================== ===
//=============================================================== === //= Ada Objek di PD 3 //=============================================================== === pd3=read_adc(2); //Membaca adc 2 kemudian disimpan pada pd3 if(pd3>=1000){ // Angka diubah sesuai kalibrasi flag3=1; // flag=1 berarti ada objek } else if(pd3<1000){ // Angka diubah sesuai kalibrasi flag3=0; // flag=0 berarti tidak ada objek }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L17
//=============================================================== ===
//=============================================================== === //= Ada Objek di PD 4 //=============================================================== === pd4=read_adc(3); //Membaca adc 3 kemudian disimpan pada pd4 if(pd4>=1000){ // Angka diubah sesuai kalibrasi flag4=1; // flag=1 berarti ada objek } else if(pd4<1000){ // Angka diubah sesuai kalibrasi flag4=0; // flag=0 berarti tidak ada objek } //=============================================================== ===
//=============================================================== === //= Ada Objek di PD 5 //=============================================================== === pd5=read_adc(4); //Membaca adc 4 kemudian disimpan pada pd5 if(pd5>=1000){ // Angka diubah sesuai kalibrasi flag5=1; // flag=1 berarti ada objek } else if(pd5<1000){ // Angka diubah sesuai kalibrasi flag5=0; // flag =0 berarti tidak ada objek } //=============================================================== ===
//=============================================================== === //= Ada Objek di Konveyor 1 //=============================================================== === pd6=read_adc(5); //Membaca adc 5 kemudian disimpan pada pd6 if(pd6>=900){ // Angka diubah sesuai kalibrasi if(pd6>=900){ // Angka diubah sesuai kalibrasi flag6=1; // flag=1 berarti ada objek
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L18
} else if(pd6<900){ // Angka diubah sesuai kalibrasi flag6=0; // flag=0 berarti tidak ada objek } //=============================================================== ===
//=============================================================== === //= Ada Objek di LIMIT SWITCH //=============================================================== === ls=PINA.6; //Membaca adc 6 limit switch kemudian disimpan pada ls if(ls==1){ // Angka sesuai kalibrasi flag7=1; // flag=1 berarti ada objek } else if(ls==0){ // Angka diubah sesuai kalibrasi flag7=0; // flag=0 berarti tidak ada objek } } //=============================================================== ==== // Fungsi untuk menyingkirkan Objek void cleanObjek(){ delay_ms(3000); //Memberikan delay agar objek tidak terbaca sensor } // Barang Reject void barangReject(){ // Jika Limit switch ditekan if (flag7==1){ kiriOff(); // Motor OFF
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L19
// Jika Limit Switch ditekan if(flag7==1){ kiriOff(); // Motor OFF x=1; // Mengatur objek } // Jika Limit Switch tidak ditekan else if(flag7==0){ // Jika Objek belum diatur if(x==0){ kiriOn(); // Motor ON <} // Jika Objek telah diatur else if(x==1){ // Jika tidak ada objek di PD2 dan ada objek di PD1 if(flag1==1){ cleanObjek(); // Menjauhkan objek dari sensor kananOff(); // Motor OFF -> kiriOff(); // Motor OFF x=1; // Mengatur Objek } // Jika limit switch tidak ditekan else if(flag7==0){ // Jika objek belum teratur if(x==0){ kiriOn(); // Motor ON <-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L20
} // Jika objek telah diatur else if(x==1){ // Jika Objek telah berada pada PD2 if(flag2==1){ cleanObjek(); // Delay untuk menjauhkan objek dengan sensor kananOff(); // Motor OFF -> kiriOff(); // Motor OFF
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L21
} } // Kotak Hijau void kotakHijau(){ if(flag7==1){ kiriOff(); kananOn(); x=1; } else if(flag7==0){ if(x==0){ kiriOn(); } else if(x==1){ if(flag4==1){ cleanObjek(); kananOff(); kiriOff(); konOn(); // Jalankan kembali konveyor 1 cleanObjek(); o=0; x=0; } } } } // Objek void Objek(){ // Membaca Objek dari PC getString(); //Barang Reject if(dataString[0]=='a'||dataString[1]=='a'){ printf("Barang Reject!\n"); k=1; // Mengaktifkan fungsi barang reject status=0; // Mengaktifkan ADC } //Bola Merah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L22
else if(dataString[0]=='b'||dataString[1]=='b'){ printf("Bola Merah!\n"); l=1; // Mengaktifkan fungsi bola merah status=0; // Mengaktifkan ADC } //Bola hijau else if(dataString[0]=='c'||dataString[1]=='c'){ printf("Bola Hijau!\n"); m=1; // Mengaktifkan fungsi bola hijau status=0; // Mengaktifkan ADC } //Kotak Merah else if(dataString[0]=='d'||dataString[1]=='d'){ printf("Kotak Merah!\n"); n=1; // Mengaktifkan fungsi kotak merah status=0; // Mengaktifkan ADC } //Kotak Hijau else if(dataString[0]=='e'||dataString[1]=='e'){ printf("Kotak Hijau!\n"); o=1; // Mengaktifkan kotak hijau status=0; // Mengaktifkan ADC } } void fungsiPanggil(){
//fungsi iini
//Fungsi barang Reject while(k==1){ // Mengaktifkan fungsi barang reject bacaSensor(); // Membaca Sensor barangReject(); // Memanggil fungsi reject status=0; } //Fungsi bola Merah while(l==1){ // Mengaktifkan fungsi bola merah bacaSensor(); // Membaca Sensor bolaMerah(); // Memanggil fungsi kotak bola merah status=0; } //Fungsi bola hijau while(m==1){ // Mengaktifkan fungsi bola hijau bacaSensor(); // Membaca Sensor bolaHijau(); // Memanggil fungsi kotak bola hijau status=0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L23
} //Fungsi Kotak Merah while(n==1){ // Mengaktifkan fungsi kotak merah bacaSensor(); // Membaca Sensor kotakMerah(); // Memanggil fungsi kotak merah status=0; } //Fungsi kotak hijau while(o==1){ // Mengaktifkan fungsi kotak hijau bacaSensor(); // Membaca Sensor kotakHijau(); // Memanggil fungsi kotak hijau status=0; } } void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P PORTA=0xFF; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1 PORTC=0xFF; DDRC=0xFF; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L24
// Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // 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=0x00; TCCR1B=0x00; 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 // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L25
// USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x06; UBRRH=0x00; UBRRL=0x47; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; while (1) // Program yang terus menerus berjalan sehingga Minsis Powernya dimatin { // Status komunikasi OFF if (status==0){ bacaSensor(); if(flag6==1){ konOff(); //matikan konveyor status=1; fungsiPanggil(); } //Jika tidak ada objek di konveyor 1 else if(flag6==0){ konOn(); status=0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L26
} } // Status komunikasi ON else if(status==1){ Objek(); } } }