PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
TUGAS AKHIR APLIKASI PENGENALAN WARNA MENGGUNAKAN WEBCAM UNTUK LENGAN ROBOT PEMISAH BENDA BERDASARKAN WARNA Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
Oleh : RICHARD BAGUS DEAN MAHENDRA NIM : 115114003
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
TUGAS AKHIR APLIKASI PENGENALAN WARNA MENGGUNAKAN WEBCAM UNTUK LENGAN ROBOT PEMISAH BENDA BERDASARKAN WARNA Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
Oleh : RICHARD BAGUS DEAN MAHENDRA NIM : 115114003
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
FINAL PROJECT PROPOSAL COLOR RECOGNITION APPLICATION USING A WEBCAM FOR OBJECT SEPARATION ROBOTIC ARM BY COLOR In partial fulfilment of the requirements for the degree of Sarjana Teknik In Electrical Engineering Study Program
RICHARD BAGUS DEAN MAHENDRA NIM : 115114003
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTMENT FALCUTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY 2015
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSETUJUAN TUGAS AKHIR
APLIKASI PENGENALAN WARNA MENGGT]NAKAN WEBCAM UNTUKLENGAN ROBOT PEMISAH BEIYDA BERDASARKAN WARNA (col,oR RECOGMTION APPLTCATTON USING A WEBCAM FOR 0BJECT SEPARATTON ROBOTTC ARM BY COLOR)
Pembimbing
w /'
Dr. Linggo Sumarno
Tanggal:
llt
L6/e/?-o(y
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PENGESAHAN TUGAS AKHIR
APLIKASI PENGENALAN WARNA S{ENGGT'NAKAN WEBCA1U UNTUK LENGAN ROBOT PEMISAH BENDA BERDASAAI(AI* WARI{A
(col,oR
RECOGNTTTON APPLTCATTON USrNG A WEBCAM F',OR 0BJECT SEPARATION ROBOTTC ARM By COLOR)
2015
Ketua Sekretaris
Anggota
: lYiwien Widyastuti, S.T.,M.T.
Yogyakarta, 27 A$urtttr Fakulks Sains dan Teknologi
AE
/^€ g lrl
w eruningsih Prima Rosa, S.Si., M.Sc tv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERTI"YATAAh{ KEASLIAN KARYA Saya menyatakan dengan sesrmgguhnya bahwa tugas akhir yang berjudul
*APLIKASI PENGENALAI\T OBJEK MENGGT]NAKAI\I WEBCAM
T}NTUK
LENGAI{ ROBOT PEI{ISAH BENDA BERDASARKAIY WARNA" tidak memuatkarya atau bagian orang lain,
keuali yang telah disebutkan dalam kutipan dan daftar pustak4
sebagaimana layaknya karya ilmiah.
Apabila dikemudian hari ditemukan indikasi plagiatisme dalam naskah ini, maka saya bersedia m€nanggung segala sanksi sesuai peraturan perundang
-
undangan yang berlaku.
Yogyakarta, 4 Agustus 2015
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP MOTTO : “Keluar dan buat ceritamu sendiri maka kamu akan mendapatkan cerita baru dan pengalamanmu yang sesungguhnya” Atas rahmat Yesus Kristus dan Bunda Maria dengan segala kerendahan hati kupersembahkan skripsi ini kepada : Papa (Sebastian Trobus Rahardjo) dan Mama (Rosalia Kartikawati) tercinta. Terimakasih atas segala lelah, pengorbanan, kasih saying, doa, dan dukungan dalam setiap langkah yang kupilih. Kakak (Marsya Arista) dan Adek (Aji Pangestu). Terimakasih untuk semangat, motivasi, dukungan, serta tawa yang kalian berikan. Kepada segenap keluarga besarku, trimakasih atas segalanya semoga kelak saya dapat membahagiakan, membanggakan, dan bisa membuat kalian tersenyum dalam kebahagiaan. Almamaterku tercinta Teknik Elektro Universitas Sanata Dharma. Tempatku memperoleh ilmu dan merancang mimpi yang menjadi sebagian jejak langkahku menuju kesuksesan…
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERI\IYATAAII PERSE TUJUAII PUBLIKASI KARYA ILMIAH T]NTUK KEPENTINGAII AKADEMIS Yang bertandatangan di bawah ini, saya mahasiswa Universitas Sanata Dharma
Nama
:
:
RICHARD BAGUS DEAN MAHENDRA
NomorMahasiswa : 115114003 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul
:
APLIKASI PENGENALAI\ OBJEK MENGGUNAKAN WEBCAM UNTUK LENGAN ROBOT PEMISAII BENDA BEDASARKAN WARNA
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan
mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta
ijin dari saya maupun memberikan royalti kepada
saya selama tetap mencantumkan
nama saya sebagai penulis. Demikian pernyataan ini yang saya buat dengan sebenamya.
Yogyakarta, 4 Agustus 20 1 5
fuchard Bagus Dean Mahendra
vlt
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
INTISARI Dunia teknologi maupun kehidupan manusia sehari – hari, saat ini penggunaan robot sangat membantu dalam menyelesaikan tugas atau pekerjaan yang tidak bisa dilakukan oleh manusia. Oleh karena itu, agar dapat membantu manusia, lengan robot pemisah benda dibuat dengan tujuan untuk menghemat waktu dalam menyelesaikan pekerjaan dalam mengambil dan memisahkan benda berdasarkan warna, dan mengurangi resiko yang dapat membahayakan manusia. Lengan robot otomatis sebagai pemisah benda berdasarkan warna ini menggunakan ATmega32 yang terdiri dari minimum sistem berfungsi untuk mengontrol pergerakan motor servo, GUI pada software MATLAB digunakan untuk tampilan nilai warna benda, warna benda dan jumlah warna benda terdeteksi. Data citra RGB yang dihasilkan oleh webcam Logitecth C270H. Benda tersebut akan dibawa menggunakan conveyor. Hasil dari penelitian ini adalah sistem lengan robot yang dapat mengambil dan memindahkan benda berdasarkan warna secara realtime. Dalam pengujian untuk pengenalan warna pada benda menggunakan range yang digunakan penulis untuk dapat membedakan warnanya. Tingkat keberhasilan 100% untuk posisi benda berada di tengah conveyor dan jarak antar benda minimal 2 cm, sedangkan jika jarak kurang dari 2 cm tingkat keberhasilan 62,5%. Kata kunci : Lengan robot, webcam, MATLAB, citra RGB, ATmega32.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT The world of technology and human daily life, nowadays the use of robots is very helpful for completing a task or job that can not be done by humans. Therefore, in order to help humans, the robot arm separator objects created with the purpose to save time in completing the work in taking and separating objects by color, and reduce the risks that can be harmful to humans. Automatic robot arm as the sepatator objects by color using ATmega32 minimum system consisting of functions to control the movement of servo motors, the GUI in MATLAB software is used to display color values of objects, color of objects and the number of colors of objects detected. RGB image data produced will be taken by the webcam Logitecth C270H. The item will be carried using a conveyor. Results from this research is the robotic arm system that can pick up and move objects based on color in real time. In testing for the introduction of color on the object using a range that is used by the author to be able to distinguish colors. Rate of success is 100% for the position of objects in the middle of the conveyor and the distance between objects at least 2 cm, at the same time if the distance is less than 2 cm rate of success is 62.5%.
Keywords: Robotic arm, webcam, MATLAB, RGB image, ATmega32.
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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) Paulina Heruningsih Prima Rosa, S.Si., M.Sc 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) Theresia Prima Ari Setiyani S.T., M.T., 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 Wiwin Widyastuti S.T., M.T., dan Bapak Martanto S.T., M.T., 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, papah Sebastian Trobus Rahardjo dan mamah Rosalia Kartikawati atas kasih sayang, dukungan dan doa yang tiada henti. 8) Kakak tercinta Marcia Arista dan adik tercinta Aji Pangestu yang selalu mendukung dan mendoakan saya, sehingga dapat menyelesaikan tugas belajar dengan baik. 9) Yacinta Laksmi Mayang Nariswari sebagai teman, sahabat, dan kekasih yang selalu menyemangati dan mendukung penulis sampai terselesaikannya tugas akhir ini. 10) Staff sekretariat Teknik Elektro yang telah membantu dalam hal administrasi. x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
l1) Staff
dan petugas laboratorium Teknik Elektro yang telah membantu banyak hal untuk
kelancaran tugas-tugas pedculiahan. 12) Teman-teman seperjuangan angkatan 2011 Teknik Elektro yang selalu mendukung dan
menyemangati saya dalam menyelesaikan tugas akhir ini. 13) Semua pihak yang tidak dapat disebutkan satu persatu atas semua dukungan yang telah
diberikan dalam penyelesaian tugas akhir ini. Penulis menyadari bahwa dalam penulisan tugas alctrir ini masih banyak kekurangan, kelemahan dan jauh dari sempurna. Oleh sebab itu, dengan segala kerendahan hati, penulis mengharapkan kritik dan saran yang membangun untuk penyempurnaan tugas akhir ini. Dan semoga tugas akfiir ini dapat bermanfaat sebagaimana mestinya.
Richard Bagus Dean Mahendra
xt
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 .............................................................................................. xvi DAFTAR TABEL ................................................................................................... xix
BAB I PENDAHULUAN 1.1. Latar Belakang ............................................................................................. 1 1.2. Tujuan dan Manfaat ..................................................................................... 2 1.3. Batasan Masalah .......................................................................................... 2 1.4. Metodologi Penelitian ................................................................................. 3
BAB II DASAR TEORI 2.1. Lengan Robot .............................................................................................. 4 2.2. Gripper ........................................................................................................ 5 2.3. Inverse Kinematics ...................................................................................... 6 2.4. Mikrokontroler AVR ATmega32 ................................................................ 7 2.4.1. Arsitektur AVR ATmega32 ............................................................... 7 2.4.2. Deskripsi Mikrokontroler ATmega32 ................................................ 8 2.4.3. Organisasi Memori AVR ATmega32 ................................................. 9 2.4.3.1. Memori Program. .................................................................... 9 2.4.3.1. Memori Data. ........................................................................... 9
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4.4. Interupsi .............................................................................................. 9 2.4.5. Timer/Counter .................................................................................... 10 2.4.5.1. Timer/Counter0. ...................................................................... 10 2.4.5.2. Mode Operasi . ........................................................................ 11 2.4.6. Komunikasi Serial USART ................................................................ 12 2.4.6.1. Inisialisasi USART. ................................................................. 13 2.5. Motor Servo ................................................................................................. 16 2.5.1. Torsi / Momen Gaya ........................................................................... 19 2.6. LCD (Liquid Crystal Display) ..................................................................... 19 2.7. Webcam ....................................................................................................... 21 2.8. Photodiode ................................................................................................... 22 2.9. Led Infrared ................................................................................................. 24 2.10. Transistor Sebagai Saklar .......................................................................... 24 2.11. Relay .......................................................................................................... 25 2.12. Regulator Tegangan IC 78xx dan Transistor Penguat Arus ...................... 26 2.13. Citra ........................................................................................................... 28 2.13.1. Definisi Citra .................................................................................. 28 2.14. Pengolahan Citra Digital ........................................................................... 28 2.15. Pemrosesan Citra ....................................................................................... 29 2.15.1. RGB ................................................................................................ 29 2.15.2. Cropping ......................................................................................... 29 2.16. Metode Pengenalan Warna ........................................................................ 30
BAB III PERANCANGAN PENELITIAN 3.1. Proses Kerja dan Mekanisme Lengan Robot ............................................... 31 3.2. Perancangan Mekanik .................................................................................. 32 3.3. Perancangan Perangkat Keras ..................................................................... 37 3.3.1. Minimum System ATmega32 + LCD 16x2 ........................................ 37 3.3.1.1. Minimum System ATmega32 .................................................. 37 3.3.1.2. Rangkaian Konfigurasi LCD 16x2 ......................................... 38 3.3.2. Webcam Logitech Seri C270H........................................................... 39 3.3.3. Motor Servo ...................................................................................... 39 3.3.4. Regulator Tegangan IC 7805 dan Penguat Arus .............................. 43
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.3.5. Sensor Photodiode ............................................................................ 43 3.3.6. Metode Pengenalan Warna ............................................................... 44 3.4. Perancangan Perangkat Lunak ..................................................................... 45 3.4.1. Program Mikrokontroler ................................................................... 47 3.4.2. Program Pengenalan Warna Benda Pada MATLAB ........................ 48 3.4.3. Program Pengaturan Awal Posisi Siaga Lengan Robot .................... 49 3.4.4. Program
Pengendalian
Sudut
Putar
Motor
Servo
dalam
Pengambilan dan Peletakan Benda ................................................... 50 3.4.5. Perancangan GUI Matlab .................................................................. 55
BAB IV HASIL PENGAMATAN DAN PEMBAHASAN 4.1. Bentuk Fisik dan Sistem Kerja Lengan Robot ............................................ 56 4.2. Hasil Data Pengujian dan Pembahasan ....................................................... 58 4.2.1. Pengujian Nilai Batasan pada RGB ............................................. 58 4.2.2. Pengujian Nilai Citra RGB Warna Benda ..................................... 60 4.2.3. Sudut Motor Servo ........................................................................ 64 4.2.4. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Warna Benda ............................................................................................ 67 4.2.5. Pengujian Tingkat Keberhasilan Lengan Robot Saat Mengambil dan Memindahkan Benda Berdasarkan Warna ......... 71 4.2.6. Pengujian Sistem Dalam Proses Pengenalan Benda dan Proses Pemindahan Benda ....................................................................... 74 4.2.7.1. Menggunakan Looping ................................................... 74 4.2.7.2. Tidak Menggunakan Looping ........................................ 75 4.3. Analisa dan Pembahasan Perangkat Lunak ................................................. 75 4.3.1. Aplikasi CodeVision AVR ............................................................ 75 4.3.1.1. Pengendali Sensor Photodiode ....................................... 75 4.3.1.2. Pengendali Komunikasi USART ................................... 76 4.3.1.3. Pengendali Motor Servo ................................................. 77 4.3.1.4. Subrutin Program Utama ............................................... 79 4.3.2. Aplikasi MATLAB ...................................................................... 80 4.3.2.1. Tampilan Gui MATLAB ............................................... 80 4.3.2.2. Inisialisasi Komunikasi Serial ........................................ 81
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.3.2.3. Inisialisasi Webcam ........................................................ 81 4.3.2.4. Proses Pengolahan Citra ................................................. 82 4.3.2.5. Proses Pengenalan Warna Benda ................................... 82 Kesimpulan dan Saran ........................................................................................... 85 Daftar Pustaka ........................................................................................................ 86 Lampiran ................................................................................................................. L1
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR Gambar 1.1.
Diagram Blok Sistem ........................................................................ 3
Gambar 2.1. Anatomi Lengan Robot ..................................................................... 4 Gambar 2.2. Sistem Lengan Robot ........................................................................ 5 Gambar 2.3. Jenis Gripper Mekanik ...................................................................... 6 Gambar 2.4. Konfigurasi Robot ............................................................................. 6 Gambar 2.5. Konfigurasi Pin Mikrokontroler ATmega32 .................................... 8 Gambar 2.6. Mode Phase Correct PWM ............................................................... 11 Gambar 2.7. Mode fast PWM ................................................................................ 12 Gambar 2.8. Register UDR .................................................................................... 13 Gambar 2.9. Register UCSRA ............................................................................... 13 Gambar 2.10. Register UCSRB ............................................................................... 14 Gambar 2.11. Register UCSRC ............................................................................... 16 Gambar 2.12. Motor Servo ...................................................................................... 17 Gambar 2.13. Konfigurasi Pin Motor Servo ............................................................ 17 Gambar 2.14. Sinyal untuk Mengendalikan Motor Servo ....................................... 18 Gambar 2.15. Lebar Pulsa dan Posisi Servo ............................................................ 18 Gambar 2.16. Baris dan Kolom Karakter pada LCD 16x2 ...................................... 19 Gambar 2.17. Konfigurasi Kaki Pin LCD 16x2 ...................................................... 20 Gambar 2.18. Webcam Logitech Seri C270H .......................................................... 21 Gambar 2.19. Simbol dan Bentuk Photodiode ........................................................ 22 Gambar 2.20. Respon
Relatif
Spektral
Untuk
Si,
Ge,
dan
Selenium
Dibandingkan dengan Mata Manusia ............................................... 23 Gambar 2.21. Hubungan Iλ Dengan Fc Pada Photodiode ....................................... 23 Gambar 2.22. Rangkaian Sensor Photodiode .......................................................... 24 Gambar 2.23. Aplikasi Sensor Photodiode .............................................................. 24 Gambar 2.24. Contoh Rangkaian Transistor sebagai Saklar ................................... 25 Gambar 2.25. Bentuk Fisik Relay ............................................................................ 25 Gambar 2.26. Konfigurasi Pin IC Regulator ........................................................... 26 Gambar 2.27. Rangkaian Umum Regulator 78xx .................................................... 27 Gambar 2.28. Rangkaian Catu Daya dengan Penguat ............................................. 27
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 2.29. Pengaturan Citra RGB ...................................................................... 29 Gambar 2.30. (a) Citra sebelum di Crop, (b) Citra Sesudah Cropping ................... 30 Gambar 3.1. Blok Diagram Sistem ........................................................................ 31 Gambar 3.2. Keseluruhan Sistem Lengan Robot ................................................... 32 Gambar 3.3. Model Anatomi Lengan Robot ......................................................... 32 Gambar 3.4. Komponen 1 ...................................................................................... 33 Gambar 3.5. Komponen 2 ...................................................................................... 33 Gambar 3.6. Komponen 3 ...................................................................................... 33 Gambar 3.7. Gripper Tampak Atas ....................................................................... 34 Gambar 3.8. Benda Berbentuk Kotak 3x3x3cm .................................................... 34 Gambar 3.9. Jarak Lengan Robot dengan Benda dan Wadahnya .......................... 35 Gambar 3.10. Konfigurasi Robot ............................................................................. 35 Gambar 3.11. Rangkaian Osilator ATmega32 ......................................................... 37 Gambar 3.12. Rangkaian Reset ATmega32 ............................................................. 38 Gambar 3.13. Rangkaian LCD 16x2 ....................................................................... 38 Gambar 3.14. Setting Port LCD ............................................................................... 38 Gambar 3.15. Webcam Logitech C270H ................................................................. 39 Gambar 3.16. Towerpro MG946R ........................................................................... 39 Gambar 3.17. Towerpro SG90 ................................................................................. 39 Gambar 3.18. Pin Motor Servo ke Mikrokontroler ................................................. 40 Gambar 3.19. Lebar Pulsa Motor Servo .................................................................. 41 Gambar 3.20. Konstruksi Lengan Robot ................................................................. 42 Gambar 3.21. Rangkaian Regulator 7805 Dengan Penguat Arus ............................ 43 Gambar 3.22. Rangkaian Sensor Photodiode .......................................................... 44 Gambar 3.23. Rangkaian Transistor Sebagai Saklar dan Relay .............................. 44 Gambar 3.24. Diagram Alir Utama ......................................................................... 46 Gambar 3.25. Diagram Alir Pengendalian Motor servo pada Mikrokontroler ........ 47 Gambar 3.26. Diagram Alir Pengenalan Warna Pada Matlab ................................. 49 Gambar 3.27. Diagram Alir Pengaturan Awal Posisi Siaga Lengan Robot ............ 50 Gambar 3.28. Diagram Alir Gerak Servo Mode Merah .......................................... 52 Gambar 3.29. Diagram Alir Gerak Servo Mode Hijau ............................................. 53 Gambar 3.30. Diagram Alir Gerak Servo Mode Biru ............................................... 54 Gambar 3.31. Perancangan GUI pada MATLAB..................................................... 55
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 3.32. Flowchart Menghitung Jumlah Benda yang Telah Terdeteksi ......... 55 Gambar 4.1. Sistem Minimum ATmega32 ............................................................ 56 Gambar 4.2. Regulator Tegangan .......................................................................... 56 Gambar 4.3. Lengan Robot Keseluruhan ............................................................... 57 Gambar 4.4. Conveyor ........................................................................................... 57 Gambar 4.5. Lengan Robot .................................................................................... 57 Gambar 4.6. Benda Berwarna ................................................................................ 57 Gambar 4.7. Wadah Benda Berwarna ................................................................... 57 Gambar 4.8. Sudut 0o ............................................................................................. 65 Gambar 4.9. Sudut 10o ........................................................................................... 65 Gambar 4.10. Sudut 20o ........................................................................................... 65 Gambar 4.11. Sudut 30o ........................................................................................... 65 Gambar 4.12. Sudut 40o ........................................................................................... 65 Gambar 4.13. Sudut 50o ........................................................................................... 65 Gambar 4.14. Sudut 60o ........................................................................................... 65 Gambar 4.15. Sudut 70o ........................................................................................... 65 Gambar 4.16. Sudut 80o ........................................................................................... 65 Gambar 4.17. Sudut 90o ........................................................................................... 65 Gambar 4.18. Sudut 100o ......................................................................................... 65 Gambar 4.19. Sudut 110o ......................................................................................... 65 Gambar 4.20. Sudut 120o ......................................................................................... 66 Gambar 4.21. Sudut 130o ......................................................................................... 66 Gambar 4.22. Sudut 140o ......................................................................................... 66 Gambar 4.23. Sudut 150o ......................................................................................... 66 Gambar 4.24. Sudut 160o ......................................................................................... 66 Gambar 4.25. Sudut 170o ......................................................................................... 66 Gambar 4.26. Sudut 180o ......................................................................................... 66 Gambar 4.27. Pengujian Benda Warna Merah ........................................................ 68 Gambar 4.28. Pengujian Benda Warna Hijau .......................................................... 69 Gambar 4.29. Pengujian Benda Warna Biru ............................................................ 70 Gambar 4.30. Pengujian Benda Bukan Warna Dasar .............................................. 70 Gambar 4.31. Tampilan GUI MATLAB ................................................................. 80
xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Tabel 2.1. Hubungan PIN dan Interupsi ................................................................. 10 Tabel 2.2. Penentuan Ukuran Karakter ................................................................... 15 Tabel 2.3. Konfigurasi Kaki Pin LCD 16x2 ........................................................... 19 Tabel 2.4. Operasi Dasar LCD 16x2 ....................................................................... 21 Tabel 2.5. Konfigurasi Setting LCD 16x2 .............................................................. 21 Tabel 2.6. Karakteristik Regulator Tegangan ic 78xx ............................................ 26 Tabel 2.7. Contoh Nilai Matriks Setelah dijumlahkan ........................................... 30 Tabel 3.1. Nilai Sudut Tiap Motor Servo ............................................................... 36 Tabel 3.2. Perhitungan Nilai OCR .......................................................................... 41 Tabel 3.3. Perhitungan Torsi Motor Servo ............................................................. 42 Tabel 3.4. Contoh Nilai RGB pada Benda .............................................................. 45 Tabel 4.1. Data Pengujian Nilai Batasan RGB ....................................................... 59 Tabel 4.2. Data Citra RGB Masing – masing Warna Benda .................................. 60 Tabel 4.3. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R .................. 67 Tabel 4.4. Nilai Sudut Tiap Motor Servo ............................................................... 67 Tabel 4.5. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Warna Benda ..... 68 Tabel 4.6. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Posisi Benda 0,5 cm ke Atas ............ 72 Tabel 4.7. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Posisi Benda 0,5 cm ke Bawah ........ 72 Tabel 4.8. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Posisi Benda di Tengah .................... 72 Tabel 4.9. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Jarak 0 cm ........................................ 73 Tabel 4.10. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Jarak 1 cm ....................................... 73 Tabel 4.11. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Jarak 2 cm ....................................... 73 Tabel 4.12. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Jarak 3 cm ....................................... 74
xix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN 1.1.
Latar Belakang Perkembangan teknologi robotika saat ini telah membuat kualitas kehidupan manusia
semakin tinggi. Saat ini perkembangan teknologi robotika telah mampu meningkatkan kualitas maupun kuantitas produksi di berbagai industri. Teknologi robotika juga telah menjangkau sisi hiburan dan pendidikan bagi manusia. Salah satunya topik yang saat ini sedang dikembangkan dan banyak aplikasinya di industri adalah robot dan image processing. Penggunaan robot sebagai alat bantu kerja merupakan alternatif yang aman bagi manusia untuk bekerja. Selain itu, penggunaan image processing memudahkan manusia untuk mengetahui jenis suatu benda secara jelas. Sebagian besar industri hanya menggunakan sensor untuk mengetahui keberadaan benda, namun tidak dapat mengidentifikasi warna, bentuk dan ukurannya dengan menggunakan satu sensor. Saat ini diketahui industri sekarang berusaha meminimalkan man power untuk memproduksi suatu benda dalam jangka besar, salah satunya adalah aktivitas pengelompokan benda. Pengelompokan benda yang dilakukan manual oleh manusia membutuhkan waktu yang lama, disamping itu manusia tidak dapat melakukan suatu aktivitas secara terus menerus dengan waktu istirahat yang singkat, apabila manusia dipaksa melakukan hal itu maka ketelitiannya akan berkurang secara otomatis dan mengakibatkan kekeliruan dalam aktivitas tersebut. Sistem pengenalan benda berdasarkan warna menggunakan lengan robot sudah pernah dilakukan, antara lain oleh Rio Arismarjito[1]. Metode yang digunakan untuk dapat mendeteksi warna menggunakan sensor TCS3200. Peneliti lainnya adalah Syarifah Hamidah yang membuat sistem pengendalian lengan robot menggunakan pemrograman visual basic[2]. Pada Penulisan ini, penulis membuat sistem aplikasi pengenalan benda berdasarkan warna menggunakan lengan robot dengan webcam sebagai sensor untuk image processing yang akan diproses dan dikenali warnanya. Prinsip kerja sistem ini, input berupa benda berbentuk kubus berupa citra RGB yang akan diletakan di atas conveyor berjalan. Proses pengambilan warna dan bentuk tersebut menggunakan webcam di proses pada program matlab, kemudian data dikirim menggunakan komunikasi serial ke mikrokontroler dan lengan robot mulai menjalankan perintah mengambil dan meletakan benda ke wadah sesuai dengan warna yang terdeteksi oleh webcam.
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1.2.
2
Tujuan dan Manfaat Tujuan yang ingin dicapai dalam penulisan tugas akhir ini adalah membuat lengan robot
sebagai pemindah dan menempatkan benda pada wadahnya berdasarkan warna menggunakan webcam secara realtime. Manfaat dari penelitian ini adalah : a. Membantu memudahkan pekerjaan manusia pada industri-industri besar baik dari segi efisiensi waktu, tenaga, kualitas, dan hasil yang didapat. b. Untuk penelitian awal pengenalan benda menggunakan webcam dengan lengan robot pemindah dan menempatkannya pada wadah berdasarkan warna. c. Untuk media pembelajaran mengenai image processing dan pengenalan warna dasar seperti merah, hijau, dan biru.
1.3.
Batasan Masalah Penulis menetapkan beberapa batasan masalah pada perancangan ini, yaitu : 1. Mikrokontroler ATmega32 menggunakan AVR Code Vision untuk memogram empat buah servo pada lengan robot. 2. Menggunakan laptop mengoprasikan aplikasi matlab untuk pengenalan warna dasar dan bukan warna dasar pada benda dengan menggunakan webcam Logitech C270h sebagai sensor untuk image processing. Webcam akan diletakan 20cm di atas benda yang diletakkan pada conveyor. Menggunakan GUI untuk menampilkan warna benda, menghitung banyak benda sesuai warna, dan nilai warna pada benda. Terdapat tiga tombol yaitu start, reset dan stop. 3. Benda berbentuk kubus berwarna merah, hijau, dan biru. Tambahan warna bukan warna dasar ditentukan oleh penulis. Berukuran 3x3x3 cm terbuat dari akrilik dengan berat masing- masing benda berwarna adalah 20gram. 4. Lengan robot serta gripper terbuat dari bahan akrilik dengan tebal 3mm terdiri dari empat buah servo. Didesain menggunakan aplikasi google sketchup. 5. Conveyor yang dapat menampung enam buah benda kubus berwarna yang diletakkan di tengahnya secara rapi dan tersusun pada tiap benda. Sensor photodiode yang digunakan untuk mendeteksi benda. 6. Jarak lengan robot dengan benda yang diletakkan di atas conveyor serta lengan robot dengan wadah benda adalah 15cm.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3
7. USB TO TTL Converter sebagai komunikasi serial laptop dengan mikrokontroler ATmega32 dan barang sudah tersedia dipasaran. 8. Keluaran yang akan ditampilkan pada LCD 16 x 2 berupa warna benda.
1.4.
Metodologi Penelitian Metodologi yang digunakan dalam penelitian ini adalah sebagai berikut : 1. Studi pustaka mengenai penggunaan webcam untuk image processing pada matlab, pengendalian motor servo, serta penggunaan mikrokontroler ATmega32. 2. Perancangan subsistem hardware dan software. Tahap ini bertujuan untuk mencari bentuk model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan dari berbagai faktor permasalahan dan kebutuhan yang telah ditentukan. Gambar 1.1 adalah model diagram blok.
Gambar 1.1. Diagram Blok Sistem 3. Membuat program GUI menggunakan aplikasi matlab untuk pengolahan citra digital RGB menggunakan webcam Logitech C270h sebagai pengidentifikasi warna pada benda. 4. Merancang serta menguji minimum system mikrokontroler ATmega32 dengan software CodeVision AVR sebagai pengendali sistem secara keseluruhan. 5. Proses pengambilan data. Teknik pengambilan data dilakukan dengan mendata pada masing – masing warna benda, melihat tanggapan sistem dalam mendeteksi warna benda, serta sudut motor pada lengan robot. 6. Analisa dan penyimpulan hasil percobaan. Analisa dan penyimpulan hasil percobaan dapat dilakukan dengan melihat presentase error yang terjadi pada kinerja sistem secara keseluruhan, yaitu kondisi webcam Logitech C270H terhadap nilai citra RGB, dan tingkat keberhasilan lengan robot saat memindahkan benda sesuai warnanya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II DASAR TEORI 2.1.
Lengan Robot Lengan robot merupakan gabungan dari beberapa segmen dan sendi yang secara umum
dibagi menjadi tiga bagian , yaitu : arm, wirst, dan gripper. Robotic Industries Association (RIA) mendefinisikan lengan robot sebagai lengan yang didesain untuk memindahkan material, benda, alat tertentu lewat pergerakan yang terprogram untuk melakukan berbagai macam tugas [3].
Gambar 2.1. Anatomi Lengan robot [3] Lengan robot diilustrasikan pada Gambar 2.1 adalah lengan robot yang memiliki dua lengan dan pergelangan. Di ujung pergelangan dapat diinstal berbagai tool sesuai dengan fungsi yang diharapakan. Jika dipandang dari sudut pergerakan maka terdiri dari tiga pergerakan utama yaitu badan robot yang dapat berputar ke kiri dan ke kanan, lengan masing-masing dapat bergerak ke atas dan ke bawah, dan gerak pergelangan sesuai dengan sifat tool [3]. Perangkat pendukung lengan robot secara umum dapat ditunjukan pada Gambar 2.2 yang terdiri dari beberapa komponen, yaitu : 1. Manipulator 2. Sensor 3. Kontroler 4. Aktuator 4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5
Gambar 2.2. Sistem Lengan robot
Manipulator adalah bagian mekanik yang dapat difungsikan untuk memindah, mengangkat dan memanipulasi benda kerja. Sensor adalah komponen berbasis instrumentasi (pengukuran) yang berfungsi sebagai pemberi informasi tentang berbagai keadaan atau kedudukan dari bagian-bagian robot. Kontroler adalah rangkaian elekronik berbasis mikroprosesor yang berfungsi sebagai pengatur seluruh komponen. Aktuator adalah komponen penggerak yang jika dilihat dari prinsip penghasil geraknya dapat dibagi menjadi tiga bagian yaitu penggerak berbasi motor listrik (motor servo, motor steper, motor DC dan sebagainya), penggerak pneumatik (berbasis kompresi: udara, nitrogen) dan penggerak hidrolik (berbasis benda cair: minyak pelumas).
2.2.
Gripper Gripper adalah sebuah efektor yang berfungsi untuk menggenggam dan menahan
objek. Objek merupakan sebuah komponen yang akan dipindahkan oleh robot dapat berupa kertas, botol, bahan mentah dan peralatan – peralatan lain. Menurut
jumlah
peralatan
penggenggam dan penahan, gripper dapat diklasifikasikan menjadi dua, yaitu: gripper tunggal dan gripper ganda, masing – masing memiliki kelebihan dan kekurangan sesuai dengan tujuan sistem robot. Gripper tunggal diartikan bahwa hanya ada satu peralatan untuk menggenggam dan menahan yang dipasang pada wrist. Gripper ganda diartikan bahwa ada dua peralatan yang berfungsi sebagai penggenggam dan penahan objek yang dipasang pada wrist [5].
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6
Gambar 2.3. Jenis Gripper Mekanik [5]
Ada 3 jenis gripper yang dikenal seperti Gripper mekanik, gripper vacuum dan gripper magnetic. Mechanical gripper didesain untuk menggenggam dan menahan objek dengan memberikan kontak pada objek. Biasanya menggunakan finger/jari mekanik yang disebut dengan jaws. Finger ini dapat dilepas dan dipasang sehingga sangat fleksibel pemakaiannya. Sumber tenaga yang diberikan pada gripper ini bisa berupa pneumatic, hidrolik, dan elektrik.
2.3.
Inverse Kinematics Kinematika robot adalah studi analitis pergerakan lengan robot terhadap sistem
kerangka koordinat acuan yang diam/bergerak tanpa memperhatikan gaya yang menyebabkan pergerakan tersebut. Lengan robot 2 sendi yaitu sebuah lengan robot yang terdiri dari 2 buah lengan dan 2 buah derajat kebebasan. Ilustrasi dari lengan robot ini ditunjukan oleh gambar 2.4.
Gambar 2.4. Konfigurasi Robot [4]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
Pada inverse kinematics, nilai koordinat x dan y serta l1 dan l2 sudah ditentukan sehingga hanya dicari nilai 𝜃1 dan 𝜃2. Rumus untuk mendapatkan nilai 𝜃1 dan 𝜃2 ditunjukan pada persamaan 2.1 dan 2.2 [4].
𝜃2 = arccos( 𝜃1 = arcsin(
2.4.
𝑥 2 +𝑦 2 −𝑙12 −𝑙22 2𝑙1𝑙2
𝑙2sin(𝜃2) √𝑥 2 +𝑦 2
)
(2.1) 𝑦
) + arctan(𝑥 )
(2.2)
Mikrokontroler AVR ATmega32 AVR (Alf and Vegard’sRiscProcessor) merupakan seri mikrokontroler CMOS 8-bit
yang diproduksi oleh Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer). Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega32. Hampir semua instruksi dieksekusi dalam satu siklus clock dan mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interupsi internal dan eksternal, serial UART, programmable Watchdog Timer, dan power saving mode. AVR juga mempunyai ADC, PWM internal dan InSystem Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang [6].
2.4.1. Arsitektur AVR ATmega32 Mikrokontroler ATmega32 memiliki arsitektur sebagai berikut [6]: a. Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D. b. ADC 10 bit sebanyak 8 Channel. c. Tiga buah timer/counter yaitu Timer 0, Timer 1, dan Timer 2. d. Watchdog Timer dengan osilator internal. e. SRAM sebanyak 512 byte. f. Memori Flash sebesar 8 kb. g. Sumber Interupsi internal dan eksternal. h. Port SPI (Serial Pheriperal Interface) i. EEPROM on board sebanyak 512 byte. j. Komparator analog. k. Port USART (Universal Shynchronous Ashynchronous Receiver Transmitter)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
8
2.4.2. Deskripsi Mikrokontroler ATmega32 Konfigurasi Pin Mikrokontroller ATmega32 dengan kemasan 40-pin DIP (dual in-line package) dapat dilihat pada Gambar 2.5. Untuk memaksimalkan performa 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 [6].
Gambar 2.5. Konfigurasi Pin Mikrokontroler ATmega32 [6] Mikrokontroler Atmega 32 memiliki konfigurasi Pin sebagai berikut [6]: a. VCC (power supply) b. GND (ground) c. Port A (PA7..PA0) Port A berfungsi sebagai input analog pada ADC (analog i. 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 i. 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 i. 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 i. resistor internal pull-up (yang dipilih untuk beberapa bit). g. RESET (Reset input) h. XTAL1 (Input Oscillator) i. XTAL2 (Output Oscillator) j. AVCC adalah pin penyedia tegangan untuk Port A dan ADC. k. AREF adalah pin referensi analog untuk ADC.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
Port A berfungsi sebagai input analog pada A/D Konverter dan port I/O 8-bit dua arah. Port B, Port C, Port D adalah suatu port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Pada rangkaian reset, waktu pengosongan kapasitor dapat dihitung dengan persamaan 2.3.
T=RxC
(2.3)
2.4.3. Organisasi Memori AVR ATmega32 Mikrokontroler ATmega32 memiliki 3 jenis memori yaitu memori program, memori data dan EEPROM. Ketiganya memiliki ruang sendiri dan terpisah.
2.4.3.1.Memori Program Kode program disimpan dalam flash memory, yaitu memori jenis non-volatile yang tidak akan hilang datanya meskipun catu daya dimatikan [7]. Dalam ATmega32 terdapat 8Kbyte On-Chip di dalam sistem Memory Flash Reprogrammable untuk penyimpanan program. Untuk keamanan perangkat lunak, flash memori dibagi menjadi dua bagian, yaitu boot program dan bagian aplikasi program [6].
2.4.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, port, timer/counter, USART. ATmega32 memiliki kapasitas memori data sebesar 608 Byte yang terbagi menjadi 3 bagian yaitu register serba guna, register I/O dan SRAM [8].
2.4.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 [9].
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
Tabel 2.1. Hubungan PIN dan Interupsi [9]
Jenis interrupt
PIN pada Atmega 32
INT0
PORTD.2
INT1
PORTD.3
INT2
PORTB.2
ATmega32 menyediakan tiga interupsi eksternal yaitu, INT0, INT1, dan INT2. Masingmasing interupsi tersebut terhubung dengan pin ATmega32 seperti ditunjukan pada Tabel 2.1. Interupsi eksternal bisa dilakukan dengan memberikan logika 0 atau perubahan logika (rissing edge dan falling edge) pada pin interupsi yang bersangkutan.
2.4.5. Timer/Counter Atmega 32 memiliki tiga modul timer yang terdiri dari dua buah timer/counter 8 bit dan satu buah timer/counter 16 bit. Ketiga modul ini dapat diatur dalam mode yang berbedabeda 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].
2.4.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.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.4, 2.5, dan 2.6 berikut [7]. 1
𝑇=𝑓
(2.4)
𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤𝑖𝑛𝑡𝑒𝑟𝑟𝑢𝑝𝑡 = 𝑁 × 256 × 𝑇 𝑝𝑢𝑙𝑠𝑒
OCR = 𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤𝑖𝑛𝑡𝑒𝑟𝑟𝑢𝑝𝑡
(2.5)
(2.6)
Keterangan : f
= frekuensi yang digunakan untuk eksekusi program
T
= periode
N
= prescaller yang digunakan
OCR = nilai cacahan pulsa Pulse = lebar pulsa
2.4.5.2.Mode Operasi 1. Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan mengitung selang waktu [10]. 2. Mode phase correct PWM (PCP), digunakan untuk menghasilkan sinyal PWM dimana nilai register counter (TCNT0) yang mencacah naik dan turun secara terus menerus akan selalu dibandingakan dengan register pembanding OCR0 [5]. Hasil perbandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal PWM yang dikeluarkan pada OC0 seperti ditunjukan Gambar 2.6.
Gambar 2.6. Mode Phase Correct PWM [6]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12
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.7 [7].
Gambar 2.7. Mode Fast PWM [6]
2.4.6 Komunikasi Serial USART [6] Komunikasi data adalah perpindahan data antara dua atau lebih peranti, baik yang berjauhan maupun yang berdekatan. Perpindahan data antara dua atau lebih peranti dapat dilaksanakan secara paralel atau seri. Komunikasi seri dapat dibedakan menjadi 2 macam, yaitu komunikasi dara seri sinkron dan komunikasi data asinkron. Dikatakan sinkron jika sisi pengirim dan sisi penerima ditabuh (clocked) oleh penabuh (clock) yang sama, satu sumber penabuh, data dikirim beserta penabuh. Dikatakan asinkron jika sisi pengirim dan sisi penerima ditabuh oleh penabuh yang terpisah dengan frekuensi yang hampir sama, data dikirim disertai informasi sinkronisasi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki baudrate yang sama. Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut: a) Operasi full duplex (mempunyai register receive dan transmit yang terpisah) b) Mendukung kecepatan multiprosesor c) Mode kecepatan berorde Mbps d) Operasi asinkron atau sinkron e) Operasi master atau slave clock sinkron f) Dapat menghasilkan baud-rate (laju data) dengan resolusi tinggi g) Modus komunikasi kecepatan ganda pada asinkron
2.4.6.1.Inisialisasi USART Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi USART. Register-register yang digunakan untuk komunikasi USART antara lain: 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.
Gambar 2.8. Register UDR [6]
Gambar 2.9. Register UCSRA [6]
Penjelasan bit penyusun UCSRA : 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
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
jika diaktifkan dan akan berlogika nol secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan. b) TXC (USART Transmit Complete) Bit ini akan set ketika data yang dikirim telah keluar. Flag ini akan membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan. c) UDRE (USART Data Register Empty) Flag ini sebagai indikator isi UDR. Jika bernilai satu maka UDR dalam keadaan kosong dan siap menerima data berikutnya, jika flag bernilai nol berarti sebaliknya. d) FE (Frame Error) Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika stop bit pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan bernilai 0 ketika stop bit data yang diterima berlogika nol. e) DOR (Data OverRun) Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag akan bernilai satu ketika terjadi tumpang tindih data. f) PE (Parity Error) Bit yang menentukan apakah terjadi kesalahan paritas. Bit ini berfungsi jika ada kesalahan paritas. Bit akan berlogika satu ketika terjadi bit parity error apabila bit paritas digunakan. g) U2X (Double the USART Transmission Speed) Bit yang berfungsi untuk menggandakan laju data manjadi dua kalinya. Hanya berlaku untuk modus asinkron, untuk mode sinkron bit ini diset nol. h) MPCM (Multi Processor Communication Mode) Bit untuk mengaktifkan modus multi prosesor, dimana ketika data yang diterima oleh USART tidak mengandung informasi alamat akan diabaikan.
2. USART CONTROL AND STATUS REGISTER B (UCSRB)
Gambar 2.10. Register UCSRB [6]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
Penjelasan bit penyusun UCSRB : a) RXCIE (RX Complete Interrupt Enable) Bit pengatur aktivasi interupsi penerimaan data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan. b) TXCIE (TX Complete Interrupt Enable) Bit pengatur aktivasi pengiriman data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan. c) UDRIE (USART Data Register Empty Interrupt Enable) Bit ini berfungsi untuk mengaktifkan interupsi data register kosong, berlogika satu jika diaktifkan dan sebaliknya. d) RXEN (Receiver Enable) Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran penerima USART. e) TXEN (Transmitter Enable) Bit ini berfungsi untuk mengaktifkan pin TX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran pengirim USART. f) UCSZ2 (Character Size) Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk memilih tipe lebar data bit yang digunakan.
Tabel 2.2. Penentuan Ukuran Karakter [6] UCSZ[2..0]
Ukuran Karakter dalam bit
0
5
1
6
10
7
11
8
100-110
Tidak dipergunakan
111
9
g) RXB8 (Receive Data Bit 8) Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus dibaca dahulu sebelum membaca UDR.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
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.
3. USART CONTROL AND STATUS REGISTER C (UCSRC)
Gambar 2.11. Register UCSRC [6] Penjelasan bit penyusun UCSRC : a) URSEL (Register Select) Bit ini berfungsi untuk memilih register UCSRC dengan UBBRH, dimana untuk menulis atau membaca register UCSRC maka bit harus berlogika satu. b) UMSEL (USART Mode Select) Bit pemilih mode komunikasi serial antara sinkron dan asinkron. c) UPM[1…0] (Parity Mode) Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan. Transmittter USART akan membuat paritas yang akan digunakan secara otomatis. d) USBS (Stop Bit Select) Bit yang berfungsi untuk memilih jumlah stop bit yang akan digunakan. e) UCSZ1 dan UCSZ0 Merupakan bit pengatur jumlah karakter serial Bit yang berfungsi untuk memilih lebar data yang digunakan dikombinasikan dengan bit UCSZ2 dalam register UCSRB [13]. f) UCPOL (Clock Parity) Bit yang berguna hanya untuk modus sinkron. Bit in berhubungan dengan perubahan data keluaran dan sampel masukkan, dan clock sinkron (XCK).
2.5.
Motor Servo Motor servo biasanya digunakan untuk robot berkaki, lengan robot atau actuator pada
mobil robot. Motor servo adalah sebuah motor dengan sistem umpan balik tertutup dimana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor servo terdiri dari sebuah motor DC, beberapa gear, sebuah potensiometer, sebuah output shaft dan sebuah rangakaian kontrol elektronik [11].
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
17
Gambar 2.12. Motor Servo [12]
Motor servo dikemas dalam bentuk kotak segiempat seperti ditunjukan pada Gambar 2.12, terdiri dari tiga kabel konektor yaitu power (Vdd), control (I/O pin) dan ground (Vss) seperti ditunjukan pada gambar 2.13. Gear motor servo ada yang terbuat dari plastik, metal atau titanium. Di dalam motor servo terdapat potensiometer yang digunakan sebagai sensor posisi. Potensiometer tersebut dihubungkan dengan output shaft untuk mengetahui posisi aktual shaft. Ketika motor dc berputar maka output shaft juga berputar dan sekaligus memutar potensiometer. Rangkaian kontrol dapat membaca kondisi potensiometer tersebut untuk mengetahui posisi akutal shaft. Jika posisinya sesuai dengan yang diingikan , maka motor dc akan berhenti [9].
Gambar 2.13. Konfigurasi Pin Motor Servo [12]
Ada dua jenis motor servo yaitu : 1. Motor servo standard, yaitu yang mampu bergerak CW (clockwise) dan CCW (counter clockwise) dengan sudut operasi tertentu, misalnya 60°, 90°, atau 180°. 2. Motor servo continous, motor servo yang mampu bergerak CW dan CCW tanpa batasan sudut operasi (berputar secara kontiyu)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
Motor servo biasanya menggunakan tegangan 4,8 V hingga 7,2 V. Motor servo dikendalikan dengan cara mengirimkan sebuah pulsa yang lebarnya bervariasi. Lebar pulsa antara 1 ms sampai 2 ms dengan periode pulsa sebesar 20 ms.
Gambar 2.14. Sinyal untuk Mengendalikan Motor Servo [9]
Lebar pulsa akan mengakibatkan perubahan posisi pada motor servo. Misalnya sebuah pulsa 1,5 ms akan memutar motor pada posisi 90° (posisi netral). Agar posisi servo tetap pada posisi maka pulsa harus terus diberikan pada servo. Jadi mesikipun ada gaya yang melawan, servo akan tetap bertahan pada posisinya. Gaya maksimum servo tergantung dari rentang torsi servo.
Gambar 2.15. Lebar Pulsa dan Posisi Servo [10] Ketika sebuah pulsa yang dikirim ke servo kurang dari 1 ms servo akan berputar CCW menuju ke posisi tertentu dari posisi netral. Jika pulsa yang dikirim lebih dari 1,5 ms servo akan berputar CW menuju posisi tertentu dari posisi netral seperti di tunjukan pada gambar 2.15. Setiap servo memiliki spesifikasi lebar pulsa minimum dan maksimum sendiri – sendiri, tergantung jenis dan merk servo. Umumnya antara 1 ms sampai 2 ms. Parameter lain yang
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
19
berbeda antara servo satu dengan servo lainnya adalah kecepatan servo untuk berubah dari posisi satu ke posisi lainnya (operating speed) [9].
2.5.1 Torsi / Momen Gaya Momen Gaya (Torsi (τ)) adalah kemampuan gaya F memutar/merotasi benda terhadap poros diam. Sehingga semakin besar torsi (τ) maka gaya F memutar benda pun semakin besar [13].
Rumus : τ = F r sin θ
(2.7)
τ = Torsi (N-m) F = Gaya (N), F = m x g r = Jarak dari titik pangakal gaya sampai sumbu putar θ = Derajat sumbu putar
2.6.
LCD (Liquid Crystal Display) Terdapat 2 jenis LCD yaitu LCD karakter dan LCD grafik. LCD karakter, adalah LCD
yang tampilannya terbatas pada tampilan karakter, khususnya karakter ASCII (seperti karakterkarakter yang tercetak pada keyboard komputer). Sedangkan LCD grafik, adalah LCD yang tampilannya tidak terbatas, bahkan dapat menampilkan foto. LCD grafik inilah yang terus berkembang seperti layar LCD yang biasa dilihat di notebook/laptop [14]. Jenis LCD karakter yang beredar di pasaran biasa dituliskan dengan bilangan matriks dari jumlah karakter yang dapat dituliskan pada LCD tersebut, yaitu jumlah kolom karakter dikali jumlah baris karakter. Sebagai contoh, LCD16x2, artinya terdapat 16 kolom dalam 2 baris ruang karakter seperti ditunjukan pada Gambar 2.16, yang berarti total karakter yang dapat dituliskan adalah 32 karakter [14].
Gambar 2.16. Baris dan Kolom Karakter pada LCD 16x2 [14]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
Agar dapat mengendalikan LCD karakter dengan baik, tentu diperlukan koneksi yang benar. Untuk itu perlu diketahui pin-pin antarmuka yang dimiliki oleh LCD karakter seperti yang ditunjukan pada Gambar 2.17 dan Tabel 2.3.
Gambar 2.17. Konfigurasi kaki pin LCD 16x2
Tabel 2.3. Konfigurasi kaki pin LCD 16x2 Nomor PIN
PIN
Keterangan
1
VSS
GND
2
VDD
5V
3
Vo
Kontras
4
RS
5
R/W
Read / Write
6
EN
Enable
7
DB0
Data 0
8
DB1
Data 1
9
DB2
Data 2
10
DB3
Data 3
11
DB4
Data 4
12
DB5
Data 5
13
DB6
Data 6
14
DB7
Data 7
15
-
-
16
-
-
Operasi dasar pada LCD 16x2 terdiri dari empat, yaitu instruksi mengakses proses internal, instruksi menulis data, instruksi membaca kondisi sibuk, dan instruksi membaca data [14]. Operasi dasar LCD 16x2 dapat dilihat pada tabel 2.4 dan tabel 2.5 adalah konfigurasi setting LCD 16x2.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
21
Tabel 2.4. Operasi Dasar LCD 16x2 RS
R/W
Operasi
0
0
Input instruksi ke LCD
0
1
Membaca status flag (DB7) dan alamat counter (DB0-DB6)
1
0
Menulis data
1
1
Membaca data
Tabel 2.5. Konfigurasi Setting LCD 16x2 Pin
Bilangan biner
Keterangan
0
Inisialisasi
1
Data
0
Tulis LCD/W (Write)
1
Baca LCD/R (Read)
0
Pintu data terbuka
1
Pintu data tertutup
RS
RW
E
2.7.
Webcam Logitech Seri C270h Webcam adalah kamera digital yang dikoneksikan ke computer, digunakan untuk
telekonferensi video atau tujuan lain. Pengoperasian webcam cukup mudah karena webcam memiliki fitur fungsionalitas USB untuk koneksi menggunakan computer. Sehingga banyak digunakan 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 C270h [15] 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
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
22
dilengkapi dengan software yang digunakan untuk mengambil citra hasil tangkapan kamera digital secara terus menerus ataupun dalam interval waktu tertentu.
2.8.
Photodiode Photodiode adalah dioda yang bekerja berdasarkan intensitas cahaya, jika photodiode
terkena cahaya maka photodiode bekerja seperti dioda pada umumnya, tetapi jika tidak mendapat cahaya maka photodiode akan berperan seperti resistor dengan nilai tahanan yang besar sehingga arus listrik tidak dapat mengalir. Photodiode merupakan sensor cahaya semikonduktor yang dapat mengubah besaran cahaya menjadi besaran listrik. Photodiode merupakan sebuah dioda dengan sambungan p-n yang dipengaruhi cahaya dalam kerjanya. Cahaya yang dapat dideteksi oleh photodiode ini mulai dari cahaya infra merah, cahaya tampak, ultra ungu sampai dengan sinar-X. Karena photodiode terbuat dari semikonduktor p-n junction maka cahaya yang diserap oleh photodiode akan mengakibatkan terjadinya pergeseran foton yang akan menghasilkan pasangan electron-hole dikedua sisi dari sambungan. Ketika elektron-elektron yang dihasilkan itu masuk ke pita konduksi maka elektron-elektron itu akan mengalir ke arah positif sumber tegangan sedangkan hole yang dihasilkan mengalir ke arah negatif sumber tegangan sehingga arus akan mengalir di dalam rangkaian. Besarnya pasangan elektron ataupun hole yang dihasilkan tergantung dari besarnya intensitas cahaya yang diserap oleh photodiode [28]. Photodiode digunakan sebagai penangkap gelombang cahaya yang dipancarkan oleh infrared. Besarnya tegangan atau arus listrik yang dihasilkan oleh photodiode tergantung besar kecilnya radiasi yang dipancarkan oleh infrared.
Gambar 2.19. Simbol dan Bentuk Photodiode
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
23
Gambar 2.20. Respon Relatif Spektral Untuk Si, Ge, Dan Selenium Dibandingkan Dengan Mata Manusia.[28]
Gambar 2.21. Hubungan Iλ Dengan Fc Pada Photodiode[28]
Grafik pada gambar 2.21 menunjukan bahwa arus maksimal pada sensor photodiode adalah sebesar 800 µA, sehingga untuk penentuan nilai hambatan agar arus sensor photodiode tidak terlalu besar yaitu [28]: 𝑅=
𝑉𝑐𝑐 𝐼
(2.8)
Sehingga nilai hambatan untuk sensor photodiode dengan asumsi bahwa Vcc = 5 Volt yaitu : 200 µA 25 KΩ 400 µA 12,5 KΩ 600 µA 8,33 KΩ 800 µA 6,25 KΩ
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
Rangkaian umum sensor photodiode dapat ditunjukan pada gambar 2.22.
Gambar 2.22. Rangkaian Sensor Photodiode
Gambar 2.23. Aplikasi Sensor Photodiode [28]
2.9.
Led InfraRed Led infrared merupakan sumber cahaya dengan panjang gelombang 750nm-1000nm dan arus maksimal sebesar 100 mA [28]. Aplikasi led infrared biasa dijumpai pada modul sensor yang berhubungan dengan cahaya seperti photodiode dan photo transistor. Menurut gambar 2.23, led infrared merupakan sumber cahaya yang paling baik untuk sumber sensor cahaya. Penentuan nilai hambatan untuk led infrared dengan rumus : 𝑅=
𝑉𝑐𝑐 𝐼
(2.9)
2.10. Transistor Sebagai Saklar Keluaran dari op-amp memiliki arus yang kecil, oleh karena itu biasanya dipergunakan suatu penguat untuk menguatkan arus keluaran dengan menggunakan transistor atau ic penguat. Contoh rangkaia dapat dilihat pada gambar 2.24 [24].
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
Gambar 2.24. Contoh Rangkaian Transistor sebagai Saklar [24]
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.11. Relay Relai merupakan suatu komponen elektronika yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik yang dikontrol dengan memberikan tegangan dan arus tertentu pada koilnya. Ada 2 macam relay berdasarkan tegangan untuk menggerakan koilnya yaitu AC dan DC [23]. Pada dasarnya relay adalah sebuah kumparan yang dialiri arus listrik, sehingga kumparan mempunyai sifat seperti magnet. Magnet sementara tersebut digunakan untuk menggerakan suatu sistem saklar yang terbuat dari logam sehingga pada saat relay dialiri arus listrik maka kumparan akan terjadi kemagnetan dan menarik logam tersebut. Saat arus listrik diputus, maka logam akan kembali pada posisi semula [23].
Gambar 2.25. Bentuk Fisik Relay
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
2.12. 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. kongifurasi pin IC regulator ditunjukan pada Gambar 2.26.
Gambar 2.26. Konfigurasi Pin IC Regulator [20]
Tabel 2.6 menunjukan spesifikasi IC regulator seri 78xx denga keluaran dan masukan minimum dan maksimum. Tabel 2.6 Karakteristik Regulator Tegangan IC 78xx [21] 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
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
27
Gambar 2.27. Rangkaian Umum Regulator 78xx [21]
Komponen eksternal yang digunakan yaitu transistor 2N3055 karena kemampuan arus maksimal adalah 15 A [22]. Untuk gambar rangkaian lengkap dengan ic regulator dapat ditunjukan gambar 2.28.
Gambar 2.28. Rangkaian Catu Daya dengan Penguat [22] Dari gambar 2.28, maka diperleh persamaan-persamaan sebagai berikut[22] : VB = Vreg + VD
(2.10)
Tegangan keluaran rangkaian menjadi[22], Vo = VB – VBE
(2.11)
Vo = Vreg
(2.12)
Jika VD≈VBE, maka
Tegangan diantara kolektor dan emittor transistor 2N3055 adalah[22], VCE = VIN – VR1
(2.13)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28
Disipasi daya transistor NPN 2N3055 adalah[22],
PD = VCE x IC
(2.14)
Untuk nilai penguatan arus diperoleh dengan persamaan dibawah ini[21] : Ic = β IB
(2.15)
Ie = (β+1) IB
(2.16)
2.13. Citra 2.13.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. Contohnya adalah gambar/titik diskrit pada baris n dan kolom m disebut dengan piksel[n,m] [16]. Definisi lain dari citra menurut Kamus Webster adalah “suatu representasi, kemiripan, atau imitasi dari suatu objek atau benda”. Secara harafiah, citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Sedangkan ditinjau dari sudut pandang matematis, citra 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 ditangkap oleh alat – alat optik, misalnya mata pada manusia, kamera pemindai (scanner), dan sebaginya, sehingga bayangan objek yang disebut citra tersebut terekam [17].
2.14. Pengolahan Citra Digital Pengolahan citra digital adalah kegiatan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia/mesin(komputer).Inputannya adalah citra dan keluarannya juga citra tapi dengan kualitas lebih baik daripada citra masukan. Misal citra warnanya kurang tajam, kabur (blurring), mengandung noise (misal bintik-bintik putih), dll sehingga perlu ada pemrosesan untuk memperbaiki citra karena citra tersebut menjadi sulit diinterpretasikan karena informasi yang disampaikan menjadi berkurang.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29
Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain. Jadi, masukkannya adalah suatu citra dan keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik dari pada citra masukkan [17].
2.15. Pemrosesan Citra 2.15.1.RGB [18] Suatu citra biasanya mengacu ke citra RGB. Sebenarnya bagaimana citra disimpan dan dimanipulasi dalam komputer diturunkan dari teknologi televisi, yang pertama kali mengaplikasikannya untuk tampilan grafis komputer. Jika dilihat dengan 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 apak titik tersebut merupakan titik bulat atau kotak kecil, tetapi akan selalu terdiri dari 3 triplet red, green dan blue. Citra dalam komputer tidak lebih dari sekumpulan sejumlah triplet 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 direpresentasikan dengan dengan 24 bit, 8 bit untuk R, 8 bit untuk G dan 8 bit untuk B. Pengaturan citra RGB dapat dilihat pada gambar 2.29.
Gambar 2.29. Pengaturan Citra RGB
2.15.2.Cropping Cropping citra bertujuan untuk memotong bagian tertentu dari suatu citra yang tidak diperlukan dalam proses pengolahan citra. Penentuan 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. [19].
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
30
Contoh cropping dapat dilihat pada gambar 2.30.
(a)
(b) Gambar 2.30. (a) Citra sebelum di Crop, (b) Citra sesudah Cropping
2.16. Metode Pengenalan Warna Metode yang digunakan adalah untuk melihat nilai hasil jumlah matriks red, green, dan blue. Dari hasil jumlah tersebut dicari nilai terbesar pada penjumlahan masing - masing nilai matriks. Jumlah nilai terbesar menunjukan warna pada benda. Pada table 2.7 adalah contoh nilai yang didapat setelah di jumlahkan.
Tabel 2.7. Contoh Nilai Matriks setelah dijumlahkan Gambar benda berwarna
Gambar setelah di crop
Nilai RGB benda
Pengenalan warna benda
Merah = 0,0344 Hijau = 10,8446
Benda berwarna hijau
Biru = 8,1087 Dapat dilihat pada tabel 2.7 menunjukan nilai RGB pada benda yang lebih besar yaitu hijau, sehingga dapat disimpulkan bahwa gambar pada benda berwarna hijau.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 lengan robot b. Perancangan mekanik c. Perancangan perangkat keras (hardware) d. Perancangan perangkat lunak (software)
3.1.
Proses Kerja dan Mekanisme Gerak Lengan Robot Sistem dirancang menggunakan lengan robot yang mampu memindahkan dan
menempatkan benda secara otomatis berdasarkan warna. Dengan menggunakan conveyor sebagai pembawa benda, sensor photodiode yang akan memberhentikan conveyor apabila mendeteksi benda, lalu webcam sebagai sensor untuk image processing mengenali warna dan bentuk pada benda yang akan di proses melalui laptop, USB to TTL converter yang akan mentransfer data ke mikrokontroler dan akan memerintahkan lengan robot dalam mengambil dan meletakan benda pada wadah sesuai warnanya. Seperti ditunjukan pada gambar 3.1 yang merupakan diagram blok sistem.
Gambar 3.1. Diagram Blok Sistem
31
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.2.
32
Perancangan Mekanik Pada perancangan mekanik dari robot tersebut, antara lain mendesain ukuran robot,
penggunaan bahan dasar untuk mekanik robot yaitu akrilik setebal 3mm. Desain robot menggunakan software Google Sketchup untuk gambar robotnya. Lengan robot terdiri dari empat bagian utama yaitu poros, gripper, komponen 1, komponen 2, komponen 3.
Gambar 3.2. Keseluruhan Sistem Lengan Robot.
Gambar 3.3. Model Anatomi Lengan Robot
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
Perancangan mekanik lengan robot menggunakan metode puzzle dalam membentuk setiap bagian dari anatomi lengan robot. Berikut adalah gambar dua dimensi menggunakan software Google Sketchup untuk setiap bagian dari lengan robot seperti terlihat pada gambar 3.4, gambar 3.5, gambar 3.6.
Gambar 3.4. Komponen 1
Gambar 3.5. Komponen 2
Gambar 3.6. Komponen 3
Gambar 3.7 adalah model Gripper penjepit benda, untuk bahan gripper digunakan akrilik 3 mm dan motor servo towerpro SG90 yang digunakan untuk menggerakan gripper dalam menjepit benda. Penggunaan engsel bertujuan agar gripper memiliki sendi gerak dalam membuka dan menutup.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
Gambar 3.7. Gripper Tampak Atas
Gambar 3.8 adalah benda yang berbentuk kubus dengan ukuran 3x3x3cm yang terbuat dari akrilik dengan berat 20gram. Benda berwarna merah, hijau dan biru.
Gambar 3.8. Benda Berbentuk Kotak 3x3x3cm
Jarak antara lengan robot dengan benda dan conveyor diatur sedemikian rupa sehingga robot dapat menjangkau benda dalam proses pengambilan dan peletakan benda. Dengan menggunakan software Google Sketchup sebagai gambar tiga dimensi lengan robot dapat dilihat dan memperkirakan posisi lengan robot dengan benda dan wadah penampungnya. Gambar 3.9 menunjukan jarak antara lengan robot dengan benda dan wadahnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
Gambar 3.9. Jarak Lengan Robot dengan Benda dan Wadahnya
Pada gambar 3.9 dapat dilihat penentuan sudut peletakan benda yang telah ditentukan sendiri. Pada proses ini motor servo satu pada poros robot mempunyai peran utama, motor tersebut akan menggerakan poros lengan robot dengan sudut putar yang telah diatur sesuai dengan warna benda yang telah terdeteksi. Jika benda berwarna merah maka sudut putar motor servo satu bergerak dari 90º ke 135º, jika benda berwarna hijau maka sudut putar motor servo satu bergerak dari 90º ke 180º, jika benda berwarna biru maka sudut putar motor servo satu bergerak dari 90º ke 45º. Nilai tiap motor servo terdapat pada tabel 3.1. Saat posisi siaga sudut motor servo pada lengan robot ditentukan sendiri sesuai keinginan dan saat posisi pengambilan dan peletakan benda dilakukan perhitungan menggunakan inverse kinematics, nilai koordinat x dan y serta l1 dan l2 sudah ditentukan sehingga hanya dicari nilai 𝜃1 dan 𝜃2 [4].
Gambar 3.10. Konfigurasi Robot
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
Dengan melihat konfigurasi robot pada gambar 3.10 didapat rumus untuk mendapatkan nilai 𝜃1 dan 𝜃2 adalah sebagai berikut [4] : 𝜃2 = arccos( 𝜃1 = arcsin(
𝑥 2 +𝑦 2 −𝑙12 −𝑙22 2𝑙1𝑙2
𝑙2sin(𝜃2) √𝑥 2 +𝑦 2
) 𝑦
) + arctan(𝑥 )
Keterangan : x = jarak antara robot dan benda y = tinggi benda l1 = panjang lengan 1 l2 = panjang lengan 2 Pemberian nilai : x = 15cm, y = 3cm, l1 = 14cm, l2 = 17cm sehingga didapat nilai : 𝜃2 = arccos( 𝜃1 = arcsin(
152 +32 −142 −172 2𝑥14𝑥17
) = 121,824º = 122º
17sin(122) √152 +32
3
) + arctan(15) = 81,778º = 82º
Nilai sudut pada motor servo dapat dilihat pada tabel 3.1. Tabel 3.1. Nilai Sudut Tiap Motor Servo
Posisi
Sudut Servo 1
Servo 2
Servo 3
Servo 4
Siaga
90º
110º
90º
90º
Ambil Benda
90º
82º
122º
180º
Meletakan Benda Benda Merah
135º
82º
122º
90º
Benda Hijau
180º
82º
122º
90º
Benda Biru
45º
82º
122º
90º
Pada tabel 3.1 servo empat nilai sudut motor servonya adalah 90º posisi membuka gripper, sedangkan saat nilai sudut motor servo adalah 180º posisi gripper mencengkram
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
benda. Dan posisi mengambil dengan meletakan bendanya berdasarkan warna adalah sama yang berbeda hanya pada poros motor satu sesuai dengan warna benda yang dituju.
3.3.
Perancangan Perangkat Keras Ada beberapa bagian utama dalam perancangan subsistem perangkat keras lengan
robot otomatis, yaitu : a. Minimum system ATmega32 + LCD 16x2 b. Webcam Logitech seri C270h c. Motor servo d. Regulator Tegangan IC 7805 + penguat arus e. Sensor photodiode f. Metode pengenalan warna
3.3.1. Minimum System ATmega32 + LCD 16x2 3.3.1.1.Minimum System ATmega32 Rangkaian minimum system berfungsi sebagai I/O untuk mengontrol/ atau mengendalikan sudut putar motor servo yang telah diprogram dalam mikrokontroler ATmega32 pada lengan robot. Mikrokontroler membutuhkan minimum system yang terdiri dari rangkaian eksternal yaitu, rangkaian osilator, rangkaian reset. Untuk rangkaian osilator digunakan crystal dengan frekuensi sebesar 11,0592 MHz dan menggunakan kapasitor 22 pf pada pin XTAL1 dan XTAL2 di mikrokontroler. Rangkaian osilator ini berfungsi sebagai sumber clock bagi mikrokontroler. Pemberian kapasitor bertujuan untuk memperbaiki kestabilan frekuensi yang diberikan oleh osilator eksternal. Gambar 3.11 menunjukan rangkaian osilator.
Gambar 3.11. Rangkaian Osilator ATmega32[6]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
Perancangan rangkaian reset bertujuan untuk memaksa proses kerja pada mikrokontroler dapat diulang dari awal. Saat tombol reset ditekan maka mikrokontroler mendapat input logika rendah, sehingga akan me-reset seluruh proses yang sedang dilakukan mikrokontroler. Gambar 3.12 adalah rangkaian reset untuk ATmega32.
Gambar 3.12. Rangkaian Reset ATmega32[6] Pada gambar 3.12 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 disengaja. Kapasitor 10nF digunakan untuk menghilangkan noise yang disusun seri dengan resistor. Rangkaian reset minimum system ATmega32 merupakan gabungan dari rangkaian push-button dan low-pass filter.
3.3.1.2.Rangkaian Konfigurasi LCD 16x2 Rangkaian LCD berfungsi untuk menampilkan nama benda yang terdeteksi oleh webcam agar user dapat melihat apakah webcam mendeteksi benda dengan baik. Rangkaian LCD dapat dilihat pada gambar 3.13. Penentuan konfigurasi kaki LCD menuju mikrokontroler ditentukan dengan melihat pada software compiler CodeVisionAVR seperti pada Gambar 3.14.
Gambar 3.13. Rangkaian LCD 16x2
Gambar 3.14. Setting Port LCD
Secara keseluruhan rangkaian Minimum System Atmega32 + LCD 16x2 dapat dilihat pada lampiran.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
39
3.3.2. Webcam Logitech Seri C270h Webcam yang digunakan adalah webcam Logitech seri C270h. Fungsinya untuk melakukan capture benda dan output dari gambar data yang diambil merupakan nilai matriks citra RGB (Red Green Blue) sudah dalam bentuk digital yang datanya akan diolah menggunakan aplikasi matlab. Dapat dilihat pada gambar 3.15. Webcam ini sudah mempunyai dudukan sendiri serta mempunyai software pendukung yang bisa zoom in dan zoom out sehingga memudahkan pengaturan dari komputer. Pada proses pengambilan citra menggunakan resolusi 320 x 240 piksel. Spesifikasinya webcam bisa dilihat pada lampiran. Instalasi webcam dengan laptop menggunakan aplikasi matlab, yaitu : imaqhinfo; Vid = videoinput (‘winvideo’,1,’RGB24_320X240’); preview(vid);
Gambar 3.15. Webcam Logitech Seri C270h
3.3.3. Motor Servo Motor servo digunakan untuk menggerakan lengan robot. Motor servo yang digunakan yaitu Towerpro MG946R sebanyak tiga buah, dan Towerpro SG90 sebanyak satu buah. Spesifikasi servo Towerpro MG946R dan spesifikasi servo Towerpro SG90 dapat dilihat pada lampiran. Servo Towerpro MG946R dapat dilihat pada Gambar 3.16, dan servo Towerpro SG90 dapat dilihat pada Gambar 3.17.
Gambar 3.16. Towerpro MG946R
Gambar 3.17. Towerpro SG90
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
Rangkaian servo terdiri dari tiga port yaitu vcc, ground, dan data. Jalur data terhubung dengan port pada mikrokontroler sebagai jalur pengiriman pulsa PWM untuk mengaktifkan motor servo dan mengatur sudut putarnya. Gambar 3.18 berikut merupakan pin motor servo yang terhubung ke mikrokontroler.
Gambar 3.18. Pin Motor Servo ke Mikrokontroler
Digunakan interrupt timer sebagai pembangkit PWM. Secara prinsip, sebuah timer adalah sebuah counter (penghitung). Tugas timer hanya menghitung, timer selalu menyimpan hitungannya saat menghitung “satu, dua, tiga, …” hingga 255 (8 bit). Naiknya hitungan timer dan berapa lama jeda antar hitungan ini ditentukan dari siklus pencacah mikrokontroler, mode timer. Pada perancangan motor servo, timer diset agar menghitung sampai 255. Dan jika sudah mencapai 255, maka timer (overflow) akan memberikan sinyal, disinilah PWM bekerja dan mengintruksikan timer untuk menghitung lagi dari 0. Demikian seterusnya terjadi jika nilai 255 tercapai. Perbandingan nilai lebar pulsa terhadap nilai overflow motor servo selama T= 20ms adalah nilai OCR, yang merupakan cacahan pulsa selama 1ms dan 2ms. Sebagai berikut perhitung overflow interrupt sebagai pembangkit PWM untuk mengatur sudut putar motor servo. Rumus yang digunakan untuk mendapatkan nilai periode dari frekuensi yaitu[7] : 𝑇=
1 f
Frekuesi kristal = 11,059200 MHz
Dengan menggunakan timer0/8bit dan nilai prescaler sebagai pengatur kecepatan clock maka timer overflow yang dihasilkan (0,09 x 10−6) x 256 = 23,04 x 10−6. Sehingga pemberian nilai untuk membuat interrupt dapat mencacah selama 20ms yaitu (20ms/23,148 x 10-6 ) = 864. Tabel 3.2 menunjukan pemberian nilai OCR untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
mengontrol pergerakan motor servo secara umum. Dan gambar 3.19 menunjukan lebar pulsa motor servo. Rumus yang digunakan untuk mendapatkan nilai OCR yaitu[7] :
OCR =
lebarpulsamotorservo Tx𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟𝑥256
Tabel 3.2. Perhitungan nilai OCR NILAI OCR lebarpulsamotorservo OCR = Tx𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟𝑥256
SUDUT
LEBAR PULSA
0o
1 ms
OCR = 0,090422×10−6 ×1×256 = 43,20
90o
1,5 ms
OCR = 0,090422×10−6 ×1×256 = 64,8
180o
2 ms
OCR = 0,090422×10−6 ×1×256 = 86,40
1×10−3
1,5×10−3 2×10−3
Gambar 3.19. Lebar Pulsa Motor Servo
Perhitungan Torsi Motor Servo Untuk menghitung besar torsi pada masing-masing motor servo, digunakan rumus[13] : 𝐹 =𝑚×𝑔 𝜏 = 𝐹 × 𝑟 × sin 𝜃 Dengan : F = Gaya (N)
r = jari-jari link (m)
m = Masa benda (kg)
ϴ= sudut (derajat)
g = Grafitasi (m/s2)
τ = Torsi (kg-cm)
Gambar 3.20 merupakan gambar konstruksi lengan robot untuk menghitung besar torsi masing-masing motor servo. Tabel 3.3 merupakan tabel perhitungan torsi motor servo.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Keterangan : Berat benda
= 20 Gram
Berat servo 1,2,3
= 60 Gram
Berat servo 4
= 10 Gram
Gambar 3.20. Konstruksi Lengan Robot
Tabel 3.3. Perhitungan Torsi Motor Servo GAYA Motor servo 1 (m = 150 gr) F=mxg = 0,150 x 9,8 = 1,47 N Ket : servo 1 bergerak 45o , 135o, dan 180o Ket : 1 N-m = 10,1971621298 Kg-cm
Motor servo 2 (m = 90 gr) F=mxg = 0,090 x 9,8 = 0,882 N Ket : servo 2 bergerak 82o dan 110o Motor servo 3 (m = 30 gr) F=mxg = 0,030 x 9,8 = 0,294 N Ket : servo 3 bergerak 90º dan 122o Motor servo 4 (m = 20 gr) F=mxg = 0,020 x 9,8 = 0,196 N Ket : servo 4 bergerak 90o dan 180o
TORSI Sudut 45o (r = 370 mm) Τ = 1,47 x 0,370 x sin(45) = 0,3846 N-m = 3,922 kg-cm Sudut 135o (r = 370 mm) Τ = 1,47 x 0,370 x sin(135) = 0,3846 N-m = 3,922 kg-cm Sudut 180o (r = 370 mm) Τ = 1,47 x 0,370 x sin(180) = 0 N-m = 0 kg-cm Sudut 82o (r = 370 mm) Τ = 0,882 x 0,370 x sin(82) = 0,323 N-m = 3,294 kg-cm Sudut 110o (r = 370 mm) Τ = 0,882 x 0,370 x sin(110) = 0,3067 N-m = 3,127 kg-cm Sudut 90o (r = 230 mm) Τ = 0,294 x 0,230 x sin(90) = 0,068 N-m = 0,6934 kg-cm Sudut 122o (r = 230 mm) Τ = 0,294 x 0,230 x sin(122) = 0,057 N-m = 0,5812 kg-cm Sudut 0o (r = 60 mm) Τ = 0,196 x 0,060 x sin(90) = 0,0105 N-m = 0,1071 kg-cm Sudut 50o (r = 60 mm) Τ = 0,196 x 0,060 x sin(180) = 0,009 N-m = 0,092 kg-cm
42
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
43
3.3.4. Regulator Tegangan IC 7805 dan Penguat Arus Pada pembuatan tugas akhir ini, regulator digunakan sebagai pemberi daya pada motor servo, minimum system ATmega32, conveyor, dan sensor photodiode. Untuk mensupply motor servo Towerpro MG946R dibutuhkan arus sebesar 500 mA-900 mA dan servo Towerpro SG90 50 mA. Dengan demikian maka digunakan transistor 2N3055 agar arus keluaran ic7805 menjadi lebih besar. Tegangan 5 Volt merupakan tegangan kerja pada masing-masing servo yaitu kurang lebih 4 volt-7,2 volt. Sumber yang digunakan untuk regulator menggunakan adaptor switching yang telah tersedia di pasaran dengan spesifikasi keluaran tegangan 19Vdc dan arus 4A.
Gambar 3.21. Rangkaian Regulator 7805 dengan Penguat Arus
3.3.5. Sensor Photodiode Sensor photodiode digunakan untuk mendeteksi benda yang diletakan pada conveyor. Cara kerjanya yaitu jika sensor photodiode terhalang oleh benda atau mendeteksi benda, maka motor pada conveyor akan berhenti. Sensor photodiode ditunjukan oleh Gambar 3.22. Penentuan nilai hambatan untuk led infrared dengan asumsi Vcc = 5 Volt dan arus maksimal pada led infrared sebesar 100mA yaitu [28] : 𝑅=
𝑉𝑐𝑐 𝐼
5
R = 100𝑚𝐴 = 50 Ω
Agar aman, maka digunakan resistor sebesar 100 Ω yang bertujuan untuk membuat led infrared tidak berlebihan arus. Sedangkan untuk nilai hambatan sensor photodiode menggunakan resistor yang mengacu pada dasar teori yang ada, sehingga diperoleh nilai hambatan antara 6,25 KΩ – 25 KΩ. Pada perancangan ini menggunakan resistor 20 KΩ untuk sensor photodiode.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
Gambar 3.22. Rangkaian Sensor Photodiode Output pada mikrokontroler ATmega32 memiliki arus yang kecil sehingga tidak bisa digunakan untuk mengendalikan motor dc yang membutuhkan arus satu ampere untuk dapat berputar. Oleh sebab itu dibutuhkan rangkaian external agar keluaran dari mikrokontroler dapat mengendalikan motor dc. Rangkaian yang digunakan yaitu berupa rangkaian transistor sebagai saklar menggunakan transistor 2N3904 karena merupakan transistor switching dengan nilai R2 10 KΩ didapat pada datasheet dilampirkan dan dioda yang tersusun secara parallel dengan relay bertujuan agar mencegah arus balik pada rangkaian yang bisa merusak gulungan relay (koil). Gambar 3.23 menunjukan rangkaian transistor sebagai saklar beserta relay.
Gambar 3.23. Rangkaian transistor sebagai saklar dan relay
3.3.6. Metode Pengenalan Warna Metode ini dilakukan untuk melihat nilai hasil jumlah 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 satu nilai terbesar untuk mendapatkan warna sesungguhnya pada gambar. Langkah selanjutnya yaitu proses croping (pemotongan) yang sudah ditentukan x=124,51 y=140,51 Δx=31,98 Δy=27,98, proses ini
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
45
berfungsi untuk menentukkan bagian citra yang dibutuhkan untuk proses selanjutnya sehingga untuk bagian citra yang tidak dibutuhkan akan dipotong atau 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 matrik agar memiliki suatu nilai yang digunakan untuk mereprentasikan nilai suatu gambar. Karena ingin mengetahui warna dari benda. Setelah mendapatkan suatu nilai akhir dari selisih masingmasing gambar, maka selanjutnya menentukan selisih yang paling terbesar dari nilai-nilai yang telah diperoleh. Kemudian warna benda akan dikenali dan ditampilkan. Tabel 3.4. Contoh Nilai RGB pada Benda No.
Gambar benda berwarna
Gambar setelah di crop
Nilai RGB benda
Pengenalan warna benda
Merah = 16,5477 1
Hijau = 3,6244
Benda berwarna merah
Biru = 2,9525 Merah = 0 2
Hijau = 10,6929
Benda berwarna hijau
Biru = 6,9174 Merah = 3,9344 3
Hijau = 7,9253
Benda berwarna biru
Biru = 12,1942
3.4.
Perancangan Perangkat Lunak Perancangan perangkat lunak merupakan tahap pembuatan program yang nantinya
difungsikan untuk menjalankan robot lengan agar sesuai dengan tugas dan tujuannya. Perancangan perangkat lunak meliput program utama dan program perantara. Gambar 3.24 menunjukan program utama proses kerja secara keseluruhan. Proses diawali dengan inisialisasi seluruh alat, posisi robot siaga, conveyor aktif dengan membawa benda yang akan dideteksi oleh sensor photodiode sehingga conveyor berhenti, pada proses ini motor servo dalam posisi siaga diatur pada posisi sudut putar yang berbeda-beda,motor 1 pada
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
46
posisi 90°, motor 2 pada posisi 110°, motor 3 pada posisi 90° dan motor 4 pada posisi 0°. Kemudian dilanjutkan proses pengenalan warna benda oleh webcam Logitech C270h. Setelah webcam mendeteksi warna benda maka, data pada komputer akan di transfer melalui USB to TTL converter ke mikrokontroler dan mulai menjalankan intruksi untuk menggerakan motor servo. Pengaturan sudut putar motor 1 tergantung pada warna benda yang dideteksi oleh webcam. Proses selanjutnya lengan robot mengambil benda dan meletakannya pada wadah yang telah tersedia sesuai dengan warna benda tersebut. Proses akan terus berjalan selama webcam masih mengidentifikasi adanya benda berwarna merah, biru, dan hijau dan akan selesai jika benda yang dibawa conveyor telah habis dan jika sensor tidak mendeteksi adanya benda maka robot kembali pada posisi awal.
Gambar 3.24. Diagram Alir Utama
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
47
3.4.1. Program Mikrokontroler Pada mikrokontroler digunakan sebagai proses pengaturan servo pada lengan robot. Awalnya mikrokontroler memposisikan lengan robot dalam posisi siaga, kemudian mengaktifkan dan mematikan conveyor saat photodiode mendeteksi benda. Setelah itu mikrokontroler akan memproses karakter sesuai dengan perintah karakter yang dikirimkan pada laptop. Apabila mikrokontroler menerima karakter a maka mikrokontroler akan mengaktifkan conveyor kembali karena karakter tersebut merupakan warna bukan warna dasar. Dan apabila menerima karakter r atau g atau b maka mikrokontroler akan menjalankan lengan robot untuk mengambil dan memindahkan benda pada tempatnya sesuai dengan warna yang telah diperintahkan. Ditunjukkan pada gambar 3.25.
Gambar 3.25. Diagram Alir Pengendalian Motor servo pada Mikrokontroler
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
48
3.4.2. Program Pengenalan Warna Benda Pada MATLAB Program image processing diproses oleh software MATLAB. Pada gambar 3.26 menunjukkan cara kerja dimana awalnya webcam harus dikenali terlebih dahulu oleh software MATLAB. Setelah dikenali maka langkah selanjutnya yaitu mengambil gambar RGB benda yang akan dikenali dan menonaktifkan webcam. Ketika gambar telah di capture, maka didapat yaitu 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=124,51 y=140,51 Δx=31,98 Δy=27,98, proses ini berfungsi untuk menentukkan bagian citra yang dibutuhkan untuk proses selanjutnya sehingga untuk bagian citra yang tidak dibutuhkan akan dipotong atau 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 matrik agar memiliki suatu nilai yang digunakan untuk mereprentasikan nilai suatu gambar. Karena ingin mengetahui warna dari benda. Setelah mendapatkan suatu nilai akhir dari selisih masingmasing gambar, maka selanjutnya menentukan selisih yang paling terbesar dari nilai-nilai yang telah diperoleh. Apabila nilai yang didapat tidak sesuai dengan warna dasar yang sudah ditentukan maka warna pada benda tersebut dapat dikatakan benda bukan warna dasar. Kemudian warna benda akan dikenali dan ditampilkan nilai serta jumlah benda yang telah terdeteksi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
Gambar 3.26. Diagram Alir Pengenalan Warna Pada Matlab
3.4.3. Program Pengaturan Awal Posisi Siaga Lengan Robot Gambar 3.27 menunjukan proses pengaturan awal posisi siaga lengan robot. Pada proses ini, semua motor servo diatur dengan sudut putar yang berbeda karena posisi peletakan motor pada lengan robot tidak sama, motor 1 pada sudut 90°, motor 2 pada sudut 110°, motor 3 pada sudut 90° dan motor 4 pada sudut 90°. Hal ini bertujuan agar lengan robot berada pada posisi siaga untuk menjangkau benda yang akan diambil dan dapat bergerak dalam proses peletakan benda pada tempatnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50
Gambar 3.27. Diagram Alir Pengaturan Awal Posisi Siaga Lengan Robot
3.4.4 Program Pengendali Sudut Putar Motor Servo dalam Pengambilan dan Peletakan Benda Pada perancangan program untuk mengendalikan motor servo dibagi dalam tiga bagian berdasarkan warna benda, yaitu : a) Gerak Servo mode merah b) Gerak Servo mode hijau c) Gerak Servo mode biru
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
51
Data cacahan yang diberikan untuk menggerakan motor servo memiliki range yang disesuaikan dengan penggunaan Kristal 11,059200Mhz dan mode timer0 adalah 8bit dengan nilai prescaller adalah 256. Dengan periode servo selama 20ms maka diperoleh nilai frekuensi 50hz, sehingga didapat nilai cacahan overflow dengan persamaan sebagai berikut[7] : Cacahan =
1/50 1 ( )∗256 𝑓𝑟𝑒𝑘𝑢𝑒𝑛𝑠𝑖𝑘𝑟𝑖𝑠𝑡𝑎𝑙
Cacahan =
1/50 (
1 )∗256 11059200
Cacahan = 864 Pada proses pengambilan benda, pergerakan motor servo mode merah, mode hijau, dan mode biru adalah sama. Diawali dengan pergerakan motor 2 dengan sudut dari 110° menuju 82° kemudian motor 3 dengan sudut pergerakan 122° , lalu dilanjutkan dengan proses pencengkraman benda yang dilakukan oleh motor 4 dengan sudut 180° . Setelah proses pengambilan dilakukan, motor 2 bergerak kembali ke posisi awal lalu motor 1 sebagai penggerak poros bergerak sesuai dengan warna benda yang telah dideteksi oleh webcam. Untuk benda berwarna merah sudut putar motor 1 adalah 135° , benda berwarna hijau sudut putar motor poros adalah 180° dan benda berwarna biru sudut putar motor poros adalah 45° . Proses tersebut akan berjalan terus sampai webcam masih mendeteksi adanya benda berwarna. Dan untuk lebih detailnya sebagai berikut diagram alir servo, Gambar 3.28 menunjukan diagram alir servo mode merah, Gambar 3.29 menunjukan diagram alir servo mode hijau, Gambar 3.30 menunjukan diagram alir servo mode biru.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI a. Gerak Servo Mode Merah
Gambar 3.28. Diagram Alir Gerak Servo Mode Merah
52
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI b. Gerak Servo Mode Hijau
Gambar 3.29. Diagram Alir Gerak Servo Mode Hijau
53
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI c. Gerak Servo Mode Biru
Gambar 3.30. Diagram Alir Gerak Servo Mode Biru
54
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
3.4.5. 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 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.31. Terdapat tombol start untuk memulai proses, tombol stop untuk menghentikan proses, dan terdapat tampilan benda berdasarkan warna dimana nantinya benda serta warnanya dapat terlihat dan diketahui nilainya. Ditampilkan pula jumlah pada masing – masing warna yang telah terdeteksi.
Gambar 3.31. Perancangan GUI pada MATLAB
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV HASIL PENGAMATAN DAN PEMBAHASAN Pada bab ini akan dibahas mengenai hasil pengamatan dari lengan robot sebagai pemindah barang berdasarkan warna. Hasil pengamatan berupa pengujian webcam Logitech C270H terhadap warna dasar seperti merah, hijau dan biru serta warna bukan dasar pada ketepatan menganalisis warna benda dengan benda di bawa oleh konveyor yang diletakan tepat di bawah webcam berjarak 20cm,tingkat keberhasilan lengan robot serta pengamatan terhadap pergerakan motor servo sebagai aktuator lengan robot.
4.1.
Bentuk Fisik dan Sistem Kerja Lengan Robot Perangkat keras lengan robot tersusun atas sistem minimum ATmega32 berserta LCD
16x2 dan regulator sebagai penguat arus seperti pada gambar 4.1 dan gambar 4.2 dan bentuk fisik lengan robot ditunjukkan pada gambar 4.3, gambar 4.4, gambar 4.5, gambar 4.6, dan gambar 4.7.
Gambar 4.1. Sistem Minimum ATmega32
56
Gambar 4.2. Regulator Tegangan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.3. Lengan Robot Keseluruhan
Gambar 4.5. Lengan Robot
57
Gambar 4.4. Conveyor
Gambar 4.6. Benda Berwarna
Gambar 4.7. Wadah Benda Berwarna Gambar 4.1 menunjukan board dari sistem minimum ATmega32 sebagai pemrosesan data yang diterima dari hasil pengolahan data yang dikirim oleh computer/laptop untuk menjalankan lengan robot, gambar 4.2 menunjukan board dari regulator tegangan sebagai penguat arus, gambar 4.3, 4.4, 4.5, 4.6, 4.7 menunjukan sistem keseluruhan lengan robot dan bagian – bagiannya yang terdiri dari penempatan benda, webcam Logitech C270H, sistem minimum, regulator, lengan robot, letak webcam terhadap benda berwarna, konveyor, benda berwarna dasar dan bukan warna dasar yang berbentuk kotak, dan wadah penampung benda berwarna.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
Mekanisme kerja sistem lengan robot adalah robot bekerja secara otomatis sesuai dengan perintah yang telah diprogram. Proses yang terjadi ketika catu daya regulator pada posisi “ON” yaitu mula – mula conveyor akan berjalan membawa benda menuju tepat dibawah webcam yang akan dideteksi oleh sensor photodiode. Ketika sensor photodiode terhalang benda, maka mikrokontroler ATmega32 akan mengirimkan karakter ‘a’ secara serial melalui komunikasi serial USART. Kemudian laptop akan merima karakter tersebut sebagai isyarat bahwa benda telah berada tepat dibawah webcam. Proses selanjutnya yaitu GUI pada MATLAB dengan menekan tombol START akan menjalankan program pengenalan warna benda. Setelah warna benda telah dikenali, maka laptop akan mengirimkan sebuah karakter yang mendefinisikan warna benda. Karakter ‘r’ yang dikirim merupakan benda berwarna yang terdeteksi yaitu “merah”, Karakter ‘g’ yang dikirim merupakan benda berwarna yang terdeteksi yaitu “hijau”, Karakter ‘b’ yang dikirim merupakan benda berwarna yang terdeteksi yaitu “biru”, dan karakter ‘a’ yang dikirim merupakan benda berwarna yang terdeteksi yaitu “bukan warna dasar. Setelah mikrokontroler ATmega32 menerima karakter tersebut, maka lengan robot akan mengambil benda dan memindahkan benda tersebut ke tempat peletakan sesuai dengan warna benda yang terdeteksi. Proses ini akan terus berlangsung hingga photodiode tidak mendeteksi adanya benda atau catu daya pada posisi “OFF”.
4.2.
Hasil Data Pengujian dan Pembahasan Pada sub bab ini, dilakukan pengujian dan pembahasan terhadap nilai batasan pada
RGB, nilai citra RGB dari masing-masing warna benda sebanyak 20 kali pengambilan data, sudut motor servo, tingkat keberhasilan sistem saat mendeteksi warna benda dan counting benda yang terdeteksi sebanyak 10 kali pengambilan data, tingkat keberhasilan lengan robot saat mengambil dan memindahkan benda berdasarkan warna yang dilakukan sebanyak 10 kali percobaan, dan pengujian sistem dalam proses pengenalan warna benda dan pengambilan benda.
4.2.1. Pengujian Nilai Batasan pada RGB Pemberian nilai batasan pada RGB dilakukan dengan membandingkan nilai di ruang TTL. Pengujian dilakukan dengan tiga kali pengambilan data karena nilai tiap pengambilan data tidak jauh berbeda atau dapat dikatakan cukup dalam pembandingan nilai yang nantinya akan dicari nilai rata – rata kemudian membandingkannya dan membuat nilai batasan dengan mencari nilai terbaik pada nilai tiap RGB. Nilai tersebut yang nantinya akan digunakan untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
pengambilan data pada ruangan TTL. Berikut tabel 4.1 adalah Data pengujian nilai batasan RGB. Tabel 4.1. Data Pengujian Nilai Batasan RGB
Ruang TTL
Warna Benda
Merah
Nilai Rata - Rata
R
G
B
17,58
6,093
6,712
17,58
6,127
6,775
17,59
6,205
6,838
Range Data Merah
Hijau
0,652
16,2
9,997
0,611
16,38
10,11
0,7
16,14
10,03
Range Data Hijau
Biru
6,262
9,828
16,71
7,88
11,51
17,57
7,817
11,28
17,54
Range Data Biru
Hitam
Kuning
5,127
5,224
5,446
6,296
6,784
6,834
6,123
6,677
6,591
17,92
17,13
7,066
17,92
17,62
6,771
17,92
17,09
7,098
R
G
B
17,58
6,142
6,775
>=15
<=8
<=8
0,654
16,24
10,05
<=3
>=14
<=12
7,32
10,87
17,27
<=9
<=13
>=15
5,849
6,229
6,29
17,92
17,28
6,978
Pada data tabel 4.1 menunjukan nilai batasan RGB pada masing – masing tempat yang berbeda. Terlihat adanya perbedaan data yang dihasilkan, hal ini dipengaruhi oleh ketidakmerataan warna pada saat proses pengecatan, ataupun pengaruh dari cahaya tiap ruangan. Rata – rata nilai tersebut diperoleh dengan menjumlahkan setiap nilai RGB dan dibagi terhadap banyaknya jumlah warna tiap sisi yang terdeteksi. Dengan memasukan dua warna bukan warna dasar yaitu warna hitam dan kuning sebagai pembanding. Pada range data adalah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
nilai pembulatan dari rata – rata batasan RGB, maka, untuk mempermudah sistem mengenali warna benda, dibuat sebuah range dengan nilai terbaik dari rata – rata nilai tiap tempat yang nantinya digunakan dalam menentukan warna benda tersebut. Untuk benda berwarna merah range data yang digunakan yaitu R>=15 && G<=8 && B<=8, sedangkan untuk benda berwarna hijau range data yang digunakan yaitu R<=3 && G>=14 && B<=12, kemudian untuk benda berwarna biru range data yang digunakan yaitu R<=9 && G<=13 && B>=15 dan untuk bukan warna dasar yaitu selain dari range ketiga warna dasar tersebut. Range data yang digunakan sengaja dibuat lebih dengan alasan mengantisipasi apabila data yang terdeteksi lebih besar atau lebih kecil dari data yang telah diambil sampelnya.
4.2.2. Pengujian Nilai Citra RGB Warna Benda Pengujian nilai citra RGB dari masing-masing warna benda dimaksudkan untuk mengetahui data citra RGB dari masing-masing warna benda yang akan diproses dan dikenali. Dilakukan sebanyak 20 kali percobaan dari masing-masing warna benda. Terdapat lima warna benda dalam pengambilan data tersebut, tiga warna dasar yaitu benda merah, benda hijau, dan benda biru, dan dua warna bukan warna dasar yang sudah ditentukan oleh penulis yaitu benda hitam dan benda kuning. Menggunakan nilai range yang sudah ditentukan sebelumnya pada batasan warna benda sehingga pada saat pengambilan data tidak terjadi kesalahan warna saat proses pengenalan warna. Dari pengujian tersebut, diperoleh tabel 4.2 sebagai berikut.
Tabel 4.2. Data Citra RGB Masing – Masing Warna Benda Benda Ke-
1
Warna Benda
Nilai Citra RGB
Pengambilan Data ke-
R
G
B
1
17,591
6,1662
6,8262
2
17,5892
6,1607
6,8676
3
17,5867
6,1993
6,4038
4
17,6001
6,0133
6,1932
5
17,5993
5,5835
6,4367
6
17,6079
5,7005
6,2758
7
17,92
5,087
5,8419
8
17,5973
5,9313
6,2509
Merah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Tabel 4.2. (Lanjutan) Data Citra RGB Masing – Masing Warna Benda Benda Ke-
1
2
1
2
Warna Benda
Nilai Citra RGB
Pengambilan Data ke-
R
G
B
9
17,5988
5,4543
6,3312
10
17,604
5,8325
6,1967
1
17,4843
6,6135
6,807
2
17,5885
6,2325
6,9177
3
17,5791
6,0931
6,7115
4
17,5836
6,1269
6,775
5
17,5854
6,2053
6,8381
6
17,5949
6,2214
6,5359
7
17,5913
5,7478
6,4057
8
17,599
6,1969
6,4252
9
17,5963
5,6587
6,2706
10
17,5976
5,6965
6,3763
1
0,5006
14,6417 9,1878
2
0,446
14,6638 9,0195
3
0,679
14,5263
4
0,5955
14,5511 9,2585
5
0,4733
14,5969 9,1945
6
0,6156
14,5661 9,2384
7
0,4922
14,5438 9,2173
8
0,4721
14,7035 8,8192
9
0,446
14,6105 9,2403
10
0,5482
14,7079 9,0576
1
0,6081
14,6984 9,0104
2
0,5723
14,595
3
0,6131
14,8419 9,4337
Merah
Merah
9,176
Hijau
Hijau
9,1636
61
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Tabel 4.2. (Lanjutan) Data Citra RGB Masing – Masing Warna Benda Benda Ke-
2
1
2
Warna Benda
Hijau
Nilai Citra RGB
Pengambilan Data ke-
R
G
B
4
0,6169
14,2976
9,0559
5
0,6517
16,2019
9,9969
6
0,6113
16,3841 10,1071
7
0,7005
16,1389 10,0291
8
0,6429
16,2422
9
0,6495
16,2951 10,0659
10
0,0034
13,5121
8,6284
1
6,1005
9,8613
16,9451
2
6,262
9,8275
16,7101
3
7,8795
11,5133 17,5736
4
7,8165
11,2808 17,5379
5
7,7646
11,276
6
7,6632
11,3547 17,5635
7
7,7392
11,3867 17,5675
8
7,5963
11,398
17,4273
9
7,7795
11,5096
17,572
10
6,3823
9,2222
14,8201
1
7,4246
11,3354
17,607
2
7,4858
11,43
17,5904
3
7,4299
11,5484 17,5773
4
7,272
11,4993 17,5936
5
7,2991
11,3775 17,6148
6
7,4786
11,4435 17,5898
7
6,907
11,4167
17,92
8
7,5708
11,446
17,583
10,914
17,5809
Biru
Biru
62
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
63
Tabel 4.2. (Lanjutan) Data Citra RGB Masing – Masing Warna Benda Benda Ke-
2
1
2
1
2
Warna Benda
Nilai Citra RGB
Pengambilan Data ke-
R
9
7,5482
11,3247 17,5948
10
7,418
11,4338 17,5917
1
6,078
6,6365
6,6539
2
5,0169
5,1145
5,2639
3
5,1342
5,2861
5,4945
4
5,1518
5,2722
5,4776
5
5,1266
5,2235
5,446
1
6,2964
6,7842
6,8343
2
6,1231
6,6767
6,5907
3
6,3493
6,9965
6,7278
4
6,3231
6,7936
6,8427
5
6,3284
6,6925
6,7241
1
17,92
17,92
8,87
2
17,92
17,92
8,1316
G
B
Biru
Hitam
Hitam
Kuning
Kuning
3
17,8501 16,8146
7,1481
4
17,92
17,2542
7,368
5
17,592
17,261
7,362
1
17,692
17,92
7,237
2
17,92
17,9003
7,2682
3
17,92
17,1318
7,0657
4
17,92
17,6211
6,7709
5
17,92
17,0909
7,0975
Dari tabel 4.2 menunjukan data citra RGB masing – masing warna benda yang telah diambil datanya pada ruangan TTL (teknik tenaga listrik). Terlihat adanya beberapa perbedaan nilai yang dihasilkan, hal ini dipengaruhi oleh ketidakmerataan warna pada masing – masing
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
64
benda dan 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. Misalnya untuk nilai B pada benda biru pengambilan data ke-10 pada benda pertama dan data pertama pada benda kedua, nilai B pada benda kedua data pertama lebih besar dari benda biru pertama data ke-10 yang artinya benda biru data pertama pada benda kedua memiliki tingkat warna dan pencahayaan yang lebih bagus dibandingkan dengan benda biru pertama data ke-10 . Nilai pada tabel 4.2 tersebut diperoleh dari nilai batasan pada RGB. Untuk benda berwarna merah range data yang digunakan yaitu R>=15 && G<=8 && B<=8, sedangkan untuk benda berwarna hijau range data yang digunakan yaitu R<=3 && G>=14 && B<=12, kemudian untuk benda berwarna biru range data yang digunakan yaitu R<=9 && G<=13 && B>=15. Misalnya untuk membuktikan nilai merah pada data citra RGB benda merah sesuai dengan nilai range data merah adalah dengan mencari nilai minimal pada data R=17,4843, nilai maksimal pada data G=6,6135 dan nilai maksimal pada data B=6,9177, maka dari data citra RGB benda merah dapat disimpulkan bahwa nilai batasan range data merah yang diperoleh sesuai pada nilai citra RGB benda merah. Begitu juga dengan nilai citra RGB pada benda hijau dengan mencari nilai minimal pada data G, nilai maksimal pada data R dan B, sedangkan pada benda biru dengan mencari nilai minimal pada data B, nilai maksimal pada data R dan G, sehingga dapat disimpulkan juga bahwa dengan nilai batasan range data dari masing – masing warna adalah sesuai pada data yang diperoleh. Melihat nilai data citra RGB yang diperoleh pada ruangan TTL, maka nilai RGB yang dihasilkan adalah stabil atau relatif sama artinya kondisi pencahayaan dan kemerataan warna pada benda tidak berdampak pada kinerja webcam saat mendeteksi warna suatu benda. Berdasarkan nilai – nilai dari tabel 4.1, maka dapat dipastikan bahwa dari masing – masing warna benda dapat dibedakan menggunakan metode nilai dari citra RGB.
4.2.3. Sudut Motor Servo Berdasarkan data pengujian sudut motor servo yang diukur menggunakan busur derajat, didapat nilai OCR seperti pada gambar 4.8 hingga gambar 4.26 dibawah ini. Pengujian sudut dilakukan dengan melihat nilai OCR pada masing-masing sudut motor servo yang dilakukan setiap 10o yang akan dibandingkan dengan perhitungan secara teori.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.8. Sudut 0o
Gambar 4.9. Sudut 10o
Gambar 4.10. Sudut 20o
Gambar 4.11. Sudut 30o
Gambar 4.12. Sudut 40o
Gambar 4.13. Sudut 50o
Gambar 4.14. Sudut 60o
Gambar 4.15. Sudut 70o
Gambar 4.16. Sudut 80o
Gambar 4.17. Sudut 90o
Gambar 4.18. Sudut 100o Gambar 4.19. Sudut 110o
65
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
66
Gambar 4.20. Sudut 120o Gambar 4.21. Sudut 130o Gambar 4.22. Sudut 140o
Gambar 4.23. Sudut 150o Gambar 4.24. Sudut 160o Gambar 4.25. Sudut 170o
Gambar 4.26. Sudut 180o Pada teori yang diperlihatkan tabel 3.2, terdapat perbedaan antara perhitungan nilai OCR secara teori dan praktek. Menurut tabel 3.2 pada saat sudut 0o nilai OCR yang didapat yaitu 43,20, sedangkan sudut 90o nilai OCR yang didapat yaitu 64,8, dan pada sudut 180o nilai OCR yang didapat yaitu 86,40. Hal ini berbeda ketika saat praktek, yakni pada saat sudut 0o nilai OCR yang didapat yaitu 29, sedangkan sudut 90o nilai OCR yang didapat yaitu 69, dan pada sudut 180o nilai OCR yang didapat yaitu 111. Untuk mengetahui lebar pulsa, maka digunakan T sebesar 0,090422 x 10-6 dan prescaler sebesar 1. Lebar Pulsa = OCR x T x 𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟 x 256
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
67
Tabel 4.3. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R Error SUDUT
Nilai OCR
Lebar Pulsa = OCR x T x 𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟 x 256
(%)
0o
29
0,671 ms
32,87 %
90o
69
1,59 ms
6,48 %
180o
111
2,57 ms
28,47 %
Dari gambar 4.8 hingga gambar 4.26, maka dapat dianalisa bahwa perhitungan secara teori dan praktek terjadi perbedaan atau tidak sesuai tetapi terdapat satu kondisi saat motor servo berada pada sudut 90o yang memiliki lebar pulsa tidak jauh berbeda dengan teori yakni 1,59 ms sedangkan pada teori memiliki lebar pulsa 1,5 ms. Hal tersebut dikarenakan setiap motor servo memiliki karakteristik yang berbeda-beda sesuai dengan jenisnya. Pada tabel 4.4 menunjukan nilai sudut tiap servo yang sudah ditentukan dari penataan seluruh sistem lengan robot. Tabel 4.4. Nilai Sudut Tiap Motor Servo Posisi Siaga Ambil Benda
Sudut Servo 1 Servo 2 Servo 3 90º 75º 115º 90º 105º 100º Meletakan Benda
Servo 4 90º 180º
Error (%) Servo 2 Servo 3 31,84% 27,78% 28,05% 18,03%
Benda Merah
135º
100º
90º
90º
21,95%
26,23%
Benda Hijau
180º
75º
110º
90º
8,54%
9,84%
Benda Biru
45º
100º
90º
90º
21,95%
26,23%
Dari tabel 3.1 dan tabel 4.4 maka dapat dianalisa bahwa perhitungan secara teori dan percobaan saat praktek terjadi perbedaan atau tidak sesuai karena posisi sudut yang didapat saat perhitungan teori tidak sama dengan keseluruhan sistem lengan robot yang sudah dibuat, sehingga dicari nilai sudut yang sesuai agar lengan robot dapat mengambil benda dan menempatkannya berdasarkan warna dengan tepat dan benar.
4.2.4. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Warna Benda Pada tugas akhir ini, dilakukan analisa tingkat keberhasilan robot saat proses pengenalan benda berwarna merah, hijau, dan biru. Namun jika tidak ada benda lain selain
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
68
warna tersebut atau webcam tidak mendeteksi apa – apa maka tidak akan terdeteksi. Untuk mengenalinya digunakan range data yang sudah dibikin sesuai ruangan TTL (teknik tenaga listrik). Tetapi apabila terdapat warna benda selain warna tersebut, maka yang terdeteksi adalah benda bukan warna dasar. Tingkat keberhasilan sistem ditunjukan tabel 4.5 dan gambar 4.27, gambar 4.28, gambar 4.29, dan gambar 4.30 adalah gambar benda terdeteksi dengan visualisasi lima kali hasil counting benda masing – masing warna. Tabel 4.5. Pengujian Tingkat Keberhasilan Sistem Mendeteksi Warna Benda PENGUJIAN TINGKAT KEBERHASILAN SISTEM MENDETEKSI WARNA BENDA WARNA BENDA 1 2 3 4 5 6 7 8 MERAH V V V V V V V V HIJAU V V V V V V V V BIRU V V V V V V V V BUKAN WARNA DASAR V V V V V V V V Keterangan : V(Berhasil) X(Tidak Berhasil)
Gambar 4.27. Pengujian Benda Warna Merah
9 10 V V V V V V V V
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.27. (Lanjutan) Pengujian Benda Warna Merah
Gambar 4.28. Pengujian Benda Warna Hijau
69
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.29. Pengujian Benda Warna Biru
Gambar 4.30. Pengujian Benda Bukan Warna Dasar
70
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
71
Gambar 4.30. (Lanjutan) Pengujian Benda Bukan Warna Dasar
Peletakan benda saat dibawa conveyor adalah urut, rapi dan tersusun. Artinya yaitu mulai dari warna merah, hijau, biru dan bukan warna dasar yang berada didalam conveyor sampai pengujian tingkat keberhasilan hingga sepuluh kali. Berdasarkan tabel 4.5, gambar 4.27, gambar 4.28, gambar 4.29, dan gambar 4,30, maka dapat disimpulkan bahwa sistem mampu mengenali warna benda dengan benar dan sudah termasuk sistem yang handal dalam mendeteksi warna benda yang dilakukan sebanyak sepuluh kali pengambilan data. Selain itu, sistem berhasil melakukan counting terhadap jumlah benda yang telah terdeteksi yang di visualisasikan sebanyak lima kali pngambilan data.
4.2.5. Pengujian Tingkat Keberhasilan Lengan Robot saat Mengambil dan Memindahkan benda Berdasarkan Warna Pada pengujian lengan robot mengambil dan memindahkan benda berdasarkan warna dilakukan sebanyak sepuluh kali percobaan dari masing-masing warna benda. Ketika sistem telah mengenali warna dari benda, maka sistem akan mengirimkan sebuah karakter secara serial kepada mikrokontroler ATmega32 untuk selanjutnya mengontrol pergerakan lengan robot mengambil dan memindahkan benda sesuai warna peletakan yang telah ditentukan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
72
Tabel 4.6. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Peletakan Posisi Benda 0,5 cm ke Atas Dari Tengah PENGUJIAN TINGKAT KEBERHASILAN LENGAN ROBOT MENGAMBIL DAN MINDAHKAN BENDA WARNA BENDA 1 2 3 4 5 6 7 8 9 10 MERAH V V V V V V V V V V HIJAU X X V X V V V V V X BIRU X X X X V V V X V X BUKAN WARNA DASAR V V V V V V V V V V Keterangan : V(Berhasil) X(Tidak Berhasil) Tabel 4.7. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Peletakan Posisi Benda 0,5 cm ke Bawah Dari Tengah PENGUJIAN TINGKAT KEBERHASILAN LENGAN ROBOT MENGAMBIL DAN MINDAHKAN BENDA WARNA BENDA 1 2 3 4 5 6 7 8 9 10 MERAH V V V V V V V V V V HIJAU V V V V V V V V V V BIRU V V V V V V V V V V BUKAN WARNA DASAR V V V V V V V V V V Keterangan : V(Berhasil) X(Tidak Berhasil) Tabel 4.8. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Peletakan Posisi Benda di Tengah PENGUJIAN TINGKAT KEBERHASILAN LENGAN ROBOT MENGAMBIL DAN MINDAHKAN BENDA WARNA BENDA 1 2 3 4 5 6 7 8 9 10 MERAH V V V V V V V V V V HIJAU V V V V V V V V V V BIRU V V V V V V V V V V BUKAN WARNA DASAR V V V V V V V V V V Keterangan : V(Berhasil) X(Tidak Berhasil) Pada tabel 4.6, tabel 4.7, dan tabel 4.8 dilakukan pengujian peletakan posisi benda dengan membedakan peletakan posisi benda berwarna yang diletakan diatas conveyor. Data pengujian yang diperoleh, benda dapat berada dibawah webcam dengan posisi terbaik pada benda adalah diletakan di tengah conveyor dengan toleransi 0,5 cm ke bawah dari posisi tengah. Karena pada posisi ini saat conveyor membawa benda akan tepat berada dibawah webcam dan pada saat lengan robot mencengkram benda tersebut memiliki tingkat keberhasilan 100% sedangkan tabel 4.6 memiliki tingkat keberhasilan 75%, sehingga pada tugas akhir ini posisi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
73
yang disarankan benda berada diatas conveyor adalah di tengah dengan toleransi 0,5 cm ke bawah dari posisi tengah.
Tabel 4.9. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Jarak 0 cm PENGUJIAN TINGKAT KEBERHASILAN LENGAN ROBOT MENGAMBIL DAN MEMINDAHKAN BENDA WARNA BENDA 1 2 3 4 5 6 7 8 9 10 MERAH V X V X V X V X V X HIJAU V X V X V X V X V X BIRU V X V X V X V X V X BUKAN WARNA DASAR V V V V V V V V V V Keterangan : V(Berhasil) X(Tidak Berhasil) Tabel 4.10. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Jarak 1 cm PENGUJIAN TINGKAT KEBERHASILAN LENGAN ROBOT MENGAMBIL DAN MEMINDAHKAN BENDA WARNA BENDA 1 2 3 4 5 6 7 8 9 10 MERAH V X V X V X V X V X HIJAU V X V X V X V X V X BIRU V X V X V X V X V X BUKAN WARNA DASAR V V V V V V V V V V Keterangan : V(Berhasil) X(Tidak Berhasil) Tabel 4.11. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Jarak 2 cm PENGUJIAN TINGKAT KEBERHASILAN LENGAN ROBOT MENGAMBIL DAN MEMINDAHKAN BENDA WARNA BENDA 1 2 3 4 5 6 7 8 9 10 MERAH V V V V V V V V V V HIJAU V V V V V V V V V V BIRU V V V V V V V V V V BUKAN WARNA DASAR V V V V V V V V V V Keterangan : V(Berhasil) X(Tidak Berhasil)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
74
Tabel 4.12. Pengujian Tingkat Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda dengan Jarak 3 cm PENGUJIAN TINGKAT KEBERHASILAN LENGAN ROBOT MENGAMBIL DAN MEMINDAHKAN BENDA WARNA BENDA 1 2 3 4 5 6 7 8 9 10 MERAH V V V V V V V V V V HIJAU V V V V V V V V V V BIRU V V V V V V V V V V BUKAN WARNA DASAR V V V V V V V V V V Keterangan : V(Berhasil) X(Tidak Berhasil) Berdasarkan tabel 4.9, tabel 4.10, tabel 4.11, dan tabel 4.12 data pengujian yang diperoleh, benda dapat berada dibawah webcam dengan jarak terbaik pada benda selanjutnya adalah 2 cm. Karena pada jarak ini saat conveyor membawa benda selanjutnya akan tepat berada dibawah webcam kembali dan benda disebelahnya pada saat lengan robot mencengkram benda tersebut tidak mengganggu atau tersentuh oleh lengan robot, sehingga pada tugas akhir ini jarak yang disarankan antar benda adalah 2 cm. Maka dapat dianalisa bahwa lengan robot dapat mengambil dan memindahkan benda sesuai warna dengan baik. Hal ini dapat dibuktikan dengan melihat tingkat keberhasilan lengan robot mengambil dan memindahkan benda dengan jarak terbaik seperti tabel 4.11, dan tabel 4.12 Tingkat keberhasilan lengan robot yaitu 100% untuk posisi benda berada di tengah conveyor dan jarak antar benda minimal 2 cm, sedangkan pada tabel 4.9 dan tabel 4.10 jika jarak kurang dari 2 cm tingkat keberhasilan 62,5%.
4.2.6. Pengujian Sistem Dalam Proses Pengenalan Warna Benda dan Proses Pemindahan Benda
4.2.7.1. Menggunakan Looping Looping merupakan suatu proses dimana sistem akan terus bekerja dan selalu mengeksekusi program secara otomatis sampai tombol atau pemicu berhenti ditekan. Kelebihan dari sistem yang menggunakan looping yaitu sistem dan lengan robot mampu bekerja secara otomatis tanpa harus menekan tombol untuk memberikan isyarat tertentu. Namun sistem menggunakan looping memiliki kelemahan yaitu proses pengenalan warna benda dan proses pemindahan benda menjadi lebih lama. Waktu yang diperlukan untuk proses pengenalan warna benda dan proses pemindahan benda yaitu 33 detik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
75
4.2.7.2. Tidak Menggunakan Looping Sistem tidak menggunakan looping memiliki kelebihan dan kelemahan. Kelebihan dari sistem tanpa menggunakan looping yaitu keseluruhan sistem dan lengan robot dapat menyelesaikan tugas pengenalan warna benda dan proses pemindahan benda lebih cepat dibanding menggunakan looping yaitu 25 detik. Kelemahan dari sistem tanpa menggunakan looping yaitu sistem dan lengan robot tidak mampu bekerja secara otomatis karena dibutuhkan peran user untuk menekan tombol untuk memulai proses pengenalan warna benda.
4.3.
Analisa dan Pembahasan Perangkat Lunak Pada sub bab ini akan dibahas mengenai listing program pada CodeVision AVR dan
MATLAB.
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 fasilitas ADC (Analog to Digital Converter), program untuk komunikasi serial menggunakan USART (Universal Synchronous Asynchronous Receiver Transmiter), program pengendali motor servo menggunakan fasilitas interrupt.
4.3.1.1. Pengendali Sensor Photodiode 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. #define ADC_VREF_TYPE 0x40 // 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;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
76
return ADCW; } void photodioda() { sensor=read_adc(0)/2; lcd_gotoxy(0,1); sprintf(sens,"sensor=%d",sensor); lcd_puts(sens); delay_ms(10); }
Pada listing program diatas, digunakan read_adc(0) yang artinya menggunakan PORTA.0 sebagai PORT masukan untuk mengubah tegangan analog menjadi tegangan digital. Pada bagian sensor= read_adc(0)/2 maksud dari pembagian 2 yaitu agar nilai desimal ADC maksimal yaitu 1023 dibagi 2 yaitu 511. Sehingga apabila tegangan masukan 0 Volt sampai 5 Volt, akan diubah melalui ADC menjadi 0 desimal hingga 511 desimal. if (sensor>=200) {PORTD.2=0;delay_ms(5);} else {PORTD.2=1;delay_ms(5);}
Pada bagian listing program diatas, fungsinya yaitu untuk mengendalikan motor penggerak conveyor yang dikontrol menggunakan PORTD.2. Terdapat nilai 200 pada bagian if (sensor>=200) ini dimaksudkan untuk membuat PORTD.2 bernilai “0” jika nilai sensor lebih besar sama dengan dari 200 desimal ADC. Hal ini berarti menyebabkan motor pada conveyor berhenti berputar. Jika kondisi sensor kurang dari 200, maka PORTD.2 akan bernilai “1” yang artinya motor conveyor akan terus berputar.
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 “getchar()” yaitu untuk menerima karakter dari laptop agar mikrokontroler dapat mengerti apa yang dimaksud oleh laptop saat mengirimkan karakter yang mendefinisikan warna benda. Sedangkan fungsi “putchar()” yaitu untuk mengirimkan suatu karakter kepada laptop agar laptop dapat memulai proses pengenalan warna benda. int a; unsigned char b[16]; void komunikasi() {
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
77
a=getchar(); lcd_gotoxy(0,0); sprintf(b,"komunikasi= %d" ,a); lcd_puts(b); delay_ms(100); lcd_clear();delay_ms(10); } void main(void) { // 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=0x86; UBRRH=0x00; UBRRL=0x47; } if (sensor>=200) {PORTD.2=0;delay_ms(5);putchar(‘a’);delay_ms(1000);} else {PORTD.2=1;delay_ms(5);}
4.3.1.3. Pengendali Motor Servo Program pengendali motor servo menggunakan interrupt timer0 sebagai pembangkit pulsa untuk menggerakan motor servo. Listing program pengendali sudut putar motor servo sebagai berikut : #define servo1 PORTB.0 #define servo2 PORTB.1 #define servo3 PORTB.2 #define servo4 PORTB.3 signed int i=0,data1=0,data2=0,data3=0,data4=0; // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { i++; if (i>864){i=0;} else { if (i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
78
else{servo2=0;} if (i
Listing program di atas adalah penyetingan port yang digunakan motor servo. Kodisi nilai i++ artinya adalah timer mulai mencacah dari 0 hingga 255, jika lebih dari itu maka timer overflow dan mulai mengaktifan PWM. Nilai 864 adalah nilai overflow selama perioda motor servo yaitu 20ms. Kemudian pemberian logika high pada tiap port, jika kondisi nilai i lebih kecil dari pada nilai variabel data1, data2, data3, data4 sehingga mulai memberikan pulsa agar motor servo bergerak dan logika low jika kondisinya tidak terpenuhi maka portb akan direset.
void siaga() { data1=72; delay_ms(100); data3=94; delay_ms(100); data2=53; delay_ms(100); data4=89; delay_ms(100); } ……………………… Listing program di atas adalah pemberian nilai OCR yang merupakan cacahan pulsa selama 1ms dan 2ms untuk menggerakan motor servo sesuai dengan sudut yang diinginkan. Pergerakan motor servo tersebut adalah secara bertahap satu persatu. Untuk mempermudah dalam penentuan tahapan sudut motor servo, digunakan fungsi for untuk mencacah nilai OCR secara satu per satu. Dengan cara ini, maka tidak diperlukan menulis nilai OCR secara satu per satu. Tujuannya yaitu agar pergerakan motor servo menjadi lebih halus ketika menggerakan lengan robot. “Void()” merupakan perintah untuk membuat suatu fungsi agar ketika dieksekusi selama proses tidak perlu menulis ulang subrutin yang terdapat didalam void. Untuk lanjutan listing program diatas dapat dilihat pada lampiran program CVAVR.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
79
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: while (1) { photodioda(); delay_ms(10); if (sensor>=200) { delay_ms(100); PORTD.2=0;delay_ms(5); z=1; while(z) { a=getchar( ); if(a==114) { lcd_gotoxy(0,1);lcd_putsf("BENDA MERAH");delay_ms(1000); gerak_merah();delay_ms(10); lcd_clear();delay_ms(10);z=0; } else if(a==103) { lcd_gotoxy(0,1);lcd_putsf("BENDA HIJAU");delay_ms(1000); gerak_hijau();delay_ms(10); lcd_clear();delay_ms(10); z=0; } else if(a==98) { lcd_gotoxy(0,1);lcd_putsf("BENDA BIRU");delay_ms(1000); gerak_biru();delay_ms(10); lcd_clear();delay_ms(10); z=0; } else if(a==97) { lcd_gotoxy(0,1);lcd_putsf("BUKAN WARNA DASAR");delay_ms(1000); PORTD.2=1;delay_ms(10); lcd_clear();delay_ms(10); z=0; } } else {PORTD.2=1;delay_ms(5);} }; Pada bagian listing program diatas, nilai variabel ‘a’ berisi nilai suatu karakter yang dikirim oleh laptop melalui modul USB TO TTL converter. Nilai karakter 114 yang dikirim laptop merupakan nilai yang mendeskripsikan bahwa warna benda yang terdeteksi merupakan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
80
merah, sedangkan nilai karakter 103 yang dikirim laptop merupakan nilai yang mendeskripsikan bahwa warna benda yang terdeteksi merupakan hijau, sedangkan nilai karakter 98 yang dikirim laptop merupakan nilai yang mendeskripsikan bahwa warna benda yang terdeteksi merupakan biru, kemudian nilai karakter 97 yang dikirim laptop merupakan nilai yang mendeskripsikan bahwa warna benda yang terdeteksi merupakan bukan warna dasar. Subrutin yang terdapat didalam “while(1)” akan dieksekusi secara terus menerus hingga power “OFF” atau tombol reset ditekan. Hal ini dikarenakan didalam kurung while diberi angka “1” yang berarti bernilai true atau akan dieksekusi secara terus menerus.
4.3.2. Aplikasi MATLAB Pada sub bab ini akan dijabarkan listing program yang diprogram menggunakan software MATLAB diantaranya penjelasan tampilan GUI, inisialisasi komunikasi serial, inisialisasi webcam, proses pengolahan citra, dan proses pengenalan warna benda.
4.3.2.1. Tampilan GUI MATLAB GUI (Graphical User Interface) yaitu suatu tampilan yang berfungsi untuk mempermudah dalam pengawasan program yang sedang terjadi atau dieksekusi. GUI memiliki peran yang sangat baik karena dengan adanya GUI, pengguna akan dapat melihat apa yang sedang terjadi didalam program seperti pemrosesan data dan lain-lain. Tampilan GUI yang dibuat dapat ditunjukan pada Gambar 4.31.
Gambar 4.31. Tampilan GUI MATLAB
Terdapat beberapa fasilitas pada tampilan GUI yang digunakan yaitu axes, edit text, popupmenu, dan push butoon. Fasilitas axes berfungsi untuk menampilkan gambar, grafik,
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
81
ataupun diagram. Axes digunakan untuk menampilkan gambar dari benda yang telah diproses menjadi gambar berwarna. Selain axes, terdapat fasilitas edit text yang berfungsi untuk menampilkan jumlah benda yang telah terdeteksi, nilai data citra RGB, dan menampilkan hasil deteksi sistem. Sedangkan popupmenu berfungsi untuk menampilkan daftar pilihan PORT komunikasi yang digunakan untuk melakuan komunikasi serial agar laptop dan mikrokontroler dapat saling berhubungan. Bagian yang terakhir yaitu push button. Push button berfungsi sebagai sebuah tombol yang digunakan untuk mengontrol suatu program yang akan diesekusi dengan cara diklik.
4.3.2.2. Inisialisasi Komunikasi Serial Sebelum menghubungkan laptop dengan mikrokontroler Atmega32, maka pada bagian program MATLAB harus di inisialisasi terlebih dahulu. Hal ini dikarenakan pada bagian laptop dengan mikrokontroler harus memiliki baudrate yang sama. Jika kedua perangkat tidak memiliki baudrate yang sama, maka sudah dapat dipastikan kedua perangkat ini tidak akan dapat berkomunikasi satu sama lainnya. Program inisialisasi adalah sebagai berikut: %data yang dikirimkan komunikasi=serial(‘COM13’); set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopBits',1,'FlowControl','none'); fopen(komunikasi); %membuka port untuk komunikasi out=fscanf(komunikasi); %melihat komunikasi yang diterima out1=sprintf('%s',out); fclose(komunikasi) %menutup komunikasi delete(komunikasi) %menghapus komunikasi clear komunikasi
4.3.2.3. Inisialisasi Webcam Untuk melakukan proses pengolahan citra, maka dibutuhkan perangkat keras berupa webcam. Oleh karena itu, maka diperlukannya proses inisialisasi perangkat keras tersebut agar dapat dikenali oleh MATLAB. %proses inisialisasi webcam Imaqhwinfo; vid=videoinput('winvideo',1,'RGB24_320x240');
Perintah program “imaqhwinfo” adalah perintah program untuk menampilkan informasi yang akan disampaikan oleh webcam dan kemudian informasi tersebut akan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
82
diinisialisasi ke dalam program. Hal ini bertujuan agar antara webcam dengan software Matlab dapat melakukan komunikasi. Informasi yang tampil adalah adaptor kamera, port webcam, jenis warna dan resolusi piksel.
4.3.2.4. Proses Pengolahan Citra Proses pengolahan citra merupakan suatu proses untuk mengolah suatu kualitas gambar atau citra yang telah diambil webcam agar gambar tersebut dapat dikenali dan memiliki nilainilai tertentu. Nilai-nilai yang telah didapat kemudian diproses untuk mengklasifikasikan gambar-gambar tertentu. Proses secara berurutan yaitu mula-mula gambar diambil dengan fungsi “getsnapshoot”, kemudian proses cropping atau pemotongan gambar. Hal ini bertujuan untuk menghilangkan background atau latar belakang yang tidak dibutuhkan untuk diproses. gambar yang telah diambil diproses dan diubah menjadi gambar RGB dengan tujuan untuk mempermudah dalam pemrosesan. Langkah selanjutnya yaitu mengubah ke matrik real agar nilai citra RGB dapat dihitung. Kemudian langkah terakhir yaitu proses penjumlahan data nilai citra RGB yang telah diubah ke matrik real menjadi sebuah nilai. %proses capture gambar gambar=getsnapshot(vid); %croping crop=imcrop(gambar,[124,51 140,51 31,98 27,98]); %proses merubah ke bentuk rgb red=crop(:,:,1); green=crop(:,:,2); blue=crop(:,:,3); %ubah ke matrik real c=double(red)/255; c1=double(green)/255; c2=double(blue)/255; merah=sum(sum(c/50)) hijau=sum(sum(c1/50)) biru=sum(sum(c2/50))
4.3.2.5. Proses Pengenalan Warna Benda Berdasarkan nilai-nilai dari tabel 4.2, maka dibuat sebuah range yang menentukan warna benda tersebut.
Untuk benda merah range data yang digunakan
yaitu
((merah>=15)&&(hijau<=8)&&(biru<=8)), sedangkan untuk benda hijau range data yang digunakan yaitu ((merah<=3)&&(hijau>=13)&&(biru<=12)), kemudian untuk benda biru range data yang digunakan yaitu ((merah<=9)&&(hijau<=13)&&(biru>=15)), dan untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
83
benda bukan warna dasar range data yang digunakan yaitu selain warna merah, hijau dan biru. Dari data tersebut, maka dapat dibuat range nilai untuk mengetahui dan mengenali dari masingmasing warna benda. Listing programnya adalah sebagai berikut: if ((merah>=15)&&(hijau<=8)&&(biru<=8)) set(handles.edit4, 'string', 'MERAH'); merah1=merah1 +1; set(handles.edit5, 'String', merah1); guidata(hObject,handles); fprintf(komunikasi,'r'); pause(1); guidata(hObject,handles); elseif ((merah<=3)&&(hijau>=14)&&(biru<=12)) set(handles.edit4, 'string', 'HIJAU'); hijau1=hijau1 +1; set(handles.edit6, 'String', hijau1); guidata(hObject,handles); fprintf(komunikasi,'g'); pause(1); guidata(hObject,handles); elseif ((merah<=9)&&(hijau<=13)&&(biru>=15)) set(handles.edit4, 'string', 'BIRU'); biru1=biru1 +1; set(handles.edit7, 'String', biru1); guidata(hObject,handles); fprintf(komunikasi,'b'); pause(1); guidata(hObject,handles); else set(handles.edit4, 'string', 'BUKAN WARNA DASAR'); bukandasar=bukandasar +1; set(handles.edit8, 'String', bukandasar); guidata(hObject,handles); fprintf(komunikasi,'a'); pause(1); guidata(hObject,handles); end
Proses berjalannya program jika data memiliki nilai R>=15 && G<=8 && B<=8 maka akan tampil pada “edit4” bahwa benda yang terdeteksi yaitu merah, kemudian menjumlahkan nilai merah yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit5” lalu mengirimkan karakter ‘r’ secara serial dan memberi jeda selama satu detik. Jika data memiliki nilai R<=3 && G>=14 && B<=12 maka akan tampil pada “edit4” bahwa benda yang terdeteksi yaitu hijau, kemudian menjumlahkan nilai hijau yang terdeteksi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
84
sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit6” lalu mengirimkan karakter ‘g’ secara serial dan memberi jeda selama satu detik. Jika data memiliki nilai R<=9 && G<=13 && B>=15 maka akan tampil pada “edit4” bahwa benda yang terdeteksi yaitu biru, kemudian menjumlahkan nilai biru yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit7” lalu mengirimkan karakter ‘b’ secara serial dan memberi jeda selama satu detik. apabila data tidak berada didalam range yang ada maka akan tampil pada “edit4” bahwa benda yang terdeteksi yaitu bukan warna dasar, kemudian menjumlahkan nilai bukan warna dasar yang terdeteksi sebanyak satu kemudian hasil penjumlahan tersebut ditampilkan pada “edit8” lalu mengirimkan karakter ‘a’ secara serial dan memberi jeda selama satu detik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V KESIMPULAN DAN SARAN 5.1.
Kesimpulan Dari hasil pengujian serta pengambilan data pada aplikasi pengenalan objek
menggunakan webcam untuk lengan robot pemisah benda berdasarkan warna, dapat diambil kesimpulan: 1. Lengan robot sudah dapat bekerja dengan baik dalam proses pengambilan dan pemindahan benda berdasarkan warnanya sesuai dengan tempat yang telah ditentukan. Tingkat keberhasilannya adalah 100% untuk posisi benda berada di tengah conveyor dan jarak antar benda minimal 2 cm, sedangkan jika jarak kurang dari 2 cm tingkat keberhasilan 62,5%. 2. Metode pengenalan warna benda dengan menggunakan nilai citra RGB pada masing-masing warna benda dapat berfungsi sesuai dengan rencana. Dan sistem berhasil melakukan counting sesuai dengan jumlah warna benda yang telah terdeteksi. 3. Waktu yang dibutuhkan keseluruhan sistem tanpa looping untuk menyelesaikan proses yaitu 25 detik sedangkan waktu yang dibutuhkan sistem dengan menggunakan looping untuk menyelesaikan proses yaitu 33 detik.
5.2.
Saran Saran-saran bagi pengembangan selanjutnya adalah: 1. Memberikan tambahan variasi warna pada benda agar dapat membandingkan tingkat keakuratan nilai RGB yang range nilainya sudah ditentukan. 2. Menggunakan metode pengenalan warba benda lain untuk mendeteksi benda berwarna dengan webcam. 3. Waktu keseluruhan sistem untuk proses pengenalan benda dibuat lebih cepat.
85
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PUSTAKA
[1]
Arismarjito, R., 2011, Robot Lengan Otomatis Sebagai Pemisah Barang Berdasarkan Warna dengan Menggunakan ATmega8535, Skripsi, Universitas Sanata Dharma Yogyakarta.
[2]
Hamidah, S., 2013, Sistem Pengendalian Robot Lengan Menggunakan Pemrograman Visual Basic, Skripsi, Universitas Tanjungpura Pontianak.
[3]
Suyantoro, F.S., 2010, Robotika – Teori dan implementasinya, 1st ed, C.V ANDI OFFSET, Yogyakarta.
[4]
Goto, S., 2011, Robot Arms, InTech, Croatia.
[5]
Sumbodo, W., 2008, Jilid 3, Teknik Produksi Mesin Industri, Direktorat Pembinaan Sekolah Menengah Kejuruan, Dirjen Manajemen Pendidikan Dasar dan Menengah, Hak Cipta Depdiknas.
[6]
---, 2014, Data sheet Mikrokontroler Atmega32, Atmel
[7]
Bejo, A., 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler ATMEGA32, 1st ed, GRAHA ILMU, Yogyakarta.
[8]
Winoto, A., 2002, Mikrokontroler AVR ATEMEGA8/8535/32 dan Pemrogramannya dengan Bahasa C pada WinAVR, INFORMATIKA, Bandung.
[9]
Heryanto M.A., ST., Ir. Wisni Adi P., 2008, Pemrograman Bahasa C untuk Mikrokontroler ATMEGA32, 1st ed, C.V ANDI OFFSET, Yogyakarta.
[10]
Adrianto, H., 2008, Pemrograman Mikrokontroler AVR ATMEGA 16, 1st ed, INFORMATIKA, Bandung.
[11]
http://www.electroniclab.com, diakses 27 November 2014.
[12]
http://www.parralax.com/motor servo, diakses 27 November 2014.
[13]
Tipler, P.A., 1998, FISIKA Untuk Sains dan Teknik, edisi 3 jilid 1, Erlangga, Bandung.
[14]
http://depokinstruments.com/2010/02/08/teknik-pengendalian-lcd-karakteri/#more585, diakses tanggal 27 November 2014.
86
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI [15]
Laksmito,
B.,
2010,
Pengertian
webcam
dan
jenis
–
87
jenisnya,
http://shaleholic.com/pengertian-webcam-dan-jenisnya, diakses 27 November 2014. [16]
http://thesis.binus.ac.id/Doc/Bab2/, diakses 1 Desember 2014
[17]
Erwi, J., 2010, Pembuatan Perangkat Lunak Menggunakan Paradigma Perangkat Lunak Secara Waterfall, UNIKOM.
[18]
Alfatah, H., 2007, Konversi Format Citra RGB ke Grayscale Menggunakan Visual Basic, STMIK AMIKOM Yogyakarta.
[19]
Matlab, 2012, Cara Crop Gambar, http://matlab-cara-crop-gambar.html, diakses 1 Desember 2014
[20]
http://www.fairchildsemi.com/regulator7805, diakses 27 November 2014.
[21]
Honeycutt, R.A., 1988, Op Amps and Linear Integrated Circuits, Delmar Publishers Inc., New York.
[22]
Fathoni, 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass Element Transistor NPN dan PNP, Politeknik Negeri Malang.
[23]
Zuhal, dan Zhanggischan, 2004, Prinsip Dasar Elektroteknik, PT Gramedia Pustaka Utama, Jakarta.
[24]
Budiharto, W., 2008, Panduan Praktikum Mikrokontroler AVR ATmega16, PT Elex Media Komputindo, Jakarta.
[25]
www.modmypi.com/mg996r-servo-motor, diakses 29 November 2014.
[26]
http://www.vcc2gnd.com/2014/05/sg90-tower-pro-9g-micro-servo.html, diakses 29 November 2014.
[27]
----, 2002, Data Sheet Transistor 2N3904, KEC.
[28]
Boylestad, R. and Nashelsky. L., Electronic Devices and Circuit Theory, seventh edition, Prentice Hall, New Jersey Columbus, Ohio.
[29]
----, 1999, Data Sheet Transistor 2N3055, STMicroelectronics.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Berat benda setelah ditimbang
Rangkaian Regulator
Rangkaian Sensor Photodioda
L1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Rangkaian Minimum System Atmega8535
Spesifikasi Servo Towerpro MG946R [17]
L2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Spesifikasi Servo Towerpro SG90 [26]
Spesifikasi Webcam Logitech C270h [15]
L3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Datasheet Transistor 2N3904 [22]
Datasheet Transistor 2N3055 [29]
Listing Program CVAVR /***************************************************** Project : APLIKASI PENGENALAN OBJEK MENGGUNAKAN WEBCAM UNTUK LENGAN ROBOT PEMISAH BENDA BERDASARKAN WARNA Date : 22/06/2015 Chip type : ATmega32 Program type : Application Clock frequency : 11,059200 MHz Memory model : Small External RAM size : 0 Data Stack size : 512
L4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI *****************************************************/ #include <mega32.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include
// Standard Input/Output functions #include <stdio.h> #define servo1 PORTB.0 #define servo2 PORTB.1 #define servo3 PORTB.2 #define servo4 PORTB.3 signed int i=0,data1=0,data2=0,data3=0,data4=0; int sensor,a,z; unsigned char sens[16],b[16]; // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { // Place your code here i++; if (i==864) {i=0;} else { if (i
L5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
#include <delay.h> #define ADC_VREF_TYPE 0x40 // 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; } // Declare your global variables here void photodioda() { sensor=read_adc(0)/2; lcd_gotoxy(0,1); sprintf(sens,"sensor=%d",sensor); lcd_puts(sens); delay_ms(10); } void komunikasi() { a=getchar(); lcd_gotoxy(0,0); sprintf(b,"komunikasi= %d" ,a); lcd_puts(b); delay_ms(100); lcd_clear();delay_ms(10); } void siaga() { data1=72; delay_ms(100); data3=94; delay_ms(100); data2=53; delay_ms(100); data4=89; delay_ms(100);
L6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI } void siaga_grip() { data1=72; delay_ms(100); data2=53; delay_ms(100); data3=94; delay_ms(100); data4=129; delay_ms(100); } void ambil_benda() { data1=72; delay_ms(100); data3=80; delay_ms(100); data2=84; delay_ms(100); data4=129; delay_ms(100); } void merah() { data1=92; delay_ms(100); data3=67; delay_ms(100); data2=82 ; delay_ms(100); data4=89; delay_ms(100); } void hijau() { data1=111; delay_ms(100); data2=53 ; delay_ms(100); data3=90; delay_ms(100); data4=89; delay_ms(100); }
L7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
void biru() { data1=48; delay_ms(100); data3=67; delay_ms(100); data2=82 ; delay_ms(100); data4=89; delay_ms(100); } void gripper() { data4=89; delay_ms(100); } void gerak_ambil() { siaga(); delay_ms(500); for (data3=94;data3>=78;data3--) { delay_ms(50); }; for (data2=53;data2<=84;data2++) { delay_ms(50); }; for (data4=89;data4<=111;data4++) { delay_ms(50); }; ambil_benda(); delay_ms(500); for (data2=84;data2>=53;data2--) { delay_ms(50); }; delay_ms(50); for (data3=72;data3<=94;data3++) { delay_ms(50); };
L8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI siaga_grip(); delay_ms(500); } void gerak_merah() { //merah gerak_ambil(); delay_ms(500); for (data3=94;data3>=67;data3--) { delay_ms(50); }; for (data1=72;data1<=92;data1++) { delay_ms(50); }; for (data2=53;data2<=82;data2++) { delay_ms(50); }; for (data4=129;data4>=89;data4--) { delay_ms(50); }; merah(); delay_ms(500); gripper(); delay_ms(500); for (data2=82;data2>=53;data2--) { delay_ms(50); }; for (data1=92;data1>=71;data1--) { delay_ms(50); }; for (data3=67;data3<=94;data3++) { delay_ms(50); }; } void gerak_hijau() { //hijau gerak_ambil(); delay_ms(500);
L9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI for (data3=94;data3>=90;data3--) { delay_ms(50); }; for (data1=72;data1<=111;data1++) { delay_ms(50); }; for (data4=129;data4>=89;data4--) { delay_ms(50); }; hijau(); delay_ms(500); gripper(); delay_ms(500); for (data1=111;data1>=71;data1--) { delay_ms(50); }; for (data3=90;data3<=94;data3++) { delay_ms(50); }; } void gerak_biru() { //biru gerak_ambil(); delay_ms(500); for (data3=94;data3>=67;data3--) { delay_ms(50); }; for (data1=72;data1>=48;data1--) { delay_ms(50); }; for (data2=53;data2<=82;data2++) { delay_ms(50); }; for (data4=129;data4>=89;data4--) { delay_ms(50); }; biru(); delay_ms(500);
L10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI gripper(); delay_ms(500); for (data2=82;data2>=53;data2--) { delay_ms(50); }; for (data1=48;data1<=71;data1++) { delay_ms(50); }; for (data3=67;data3<=94;data3++) { delay_ms(50); }; } 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=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; 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=0xFF; // Port C 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 PORTC=0x00; DDRC=0x00; // 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=0xFF; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 11059,200 kHz // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x01; TCNT0=0x00;
L11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 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: Timer 2 Stopped // Mode: Normal top=FFh // 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=0x01; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous
L12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; 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; // LCD module initialization lcd_init(16); // Global enable interrupts #asm("sei") siaga(); delay_ms(500); while (1) { // Place your code here photodioda(); delay_ms(10); if (sensor>=200) { delay_ms(100); PORTD.2=0;delay_ms(5); z=1; while(z) { a=getchar(); if(a==114) { lcd_gotoxy(0,1);lcd_putsf("BENDA MERAH");delay_ms(1000); gerak_merah();delay_ms(10); lcd_clear();delay_ms(10);z=0; } else if(a==103) { lcd_gotoxy(0,1);lcd_putsf("BENDA HIJAU");delay_ms(1000); gerak_hijau();delay_ms(10);
L13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd_clear();delay_ms(10); z=0; } else if(a==98) { lcd_gotoxy(0,1);lcd_putsf("BENDA BIRU");delay_ms(1000); gerak_biru();delay_ms(10); lcd_clear();delay_ms(10); z=0; } else if(a==97) { lcd_gotoxy(0,1);lcd_putsf("BUKAN WARNA DASAR");delay_ms(1000); PORTD.2=1;delay_ms(500); lcd_clear();delay_ms(10); z=0; } } } else {PORTD.2=1;delay_ms(5);} }; } Listing Program GUI Matlab function varargout = rgb(varargin) % RGB M-file for rgb.fig % RGB, by itself, creates a new RGB or raises the existing % singleton*. % % H = RGB returns the handle to a new RGB or the handle to % the existing singleton*. % % RGB('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in RGB.M with the given input arguments. % % RGB('Property','Value',...) creates a new RGB or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before rgb_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to rgb_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 rgb % Last Modified by GUIDE v2.5 25-Jun-2015 01:08:56 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ...
L14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @rgb_OpeningFcn, ... 'gui_OutputFcn', @rgb_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 % --- Executes just before rgb is made visible. function rgb_OpeningFcn(hObject, eventdata, handles, varargin) clc; global merah1 global hijau1 global biru1 global bukandasar merah1=0; hijau1=0; biru1=0; bukandasar=0; guidata(hObject, handles); % 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 rgb (see VARARGIN) % Choose default command line output for rgb handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes rgb wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = rgb_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
L15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L16
% Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) global merah1 global hijau1 global biru1 global bukandasar guidata(hObject,handles); %komunikasi serial setting baudrate and etc baudr=9600; databit=8; stopbit=1; %data yang dikirimkan komunikasi=serial(handles.PORT); guidata(hObject,handles); %setting hardware diperlukan set(komunikasi,'BaudRate',baudr,'DataBits',databit,'parity','none','StopBits',stopbit,'FlowCo ntrol','none'); %membuka port untuk komunikasi fopen(komunikasi); if (out1==97) %proses inisialisasi webcam vid=videoinput('winvideo',1,'RGB24_320x240'); %proses capture gambar gambar=getsnapshot(vid); crop=imcrop(gambar,[124.51 140.51 31.98 27.98]); imshow(crop); %proses merubah ke bentuk rgb red=crop(:,:,1); green=crop(:,:,2); blue=crop(:,:,3); %ubah ke matrik real c=double(red)/255; c1=double(green)/255; c2=double(blue)/255; merah=sum(sum(c/50)); hijau=sum(sum(c1/50)); biru=sum(sum(c2/50)); %tampilkan pada axes axes(handles.axes1); imshow(crop); set(handles.edit4, 'string', ''); set(handles.edit1, 'string', merah); set(handles.edit2, 'string', hijau); set(handles.edit3, 'string', biru); if ((merah>=15)&&(hijau<=8)&&(biru<=8))
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI set(handles.edit4, 'string', 'MERAH'); merah1=merah1 +1; set(handles.edit5, 'String', merah1); guidata(hObject,handles); fprintf(komunikasi,'r'); guidata(hObject,handles); elseif ((merah<=3)&&(hijau>=14)&&(biru<=12)) set(handles.edit4, 'string', 'HIJAU'); hijau1=hijau1 +1; set(handles.edit6, 'String', hijau1); guidata(hObject,handles); fprintf(komunikasi,'g'); guidata(hObject,handles); elseif ((merah<=9)&&(hijau<=13)&&(biru>=15)) set(handles.edit4, 'string', 'BIRU'); biru1=biru1 +1; set(handles.edit7, 'String', biru1); guidata(hObject,handles); fprintf(komunikasi,'b'); guidata(hObject,handles); else set(handles.edit4, 'string', 'BUKAN WARNA DASAR'); bukandasar=bukandasar +1; set(handles.edit8, 'String', bukandasar); guidata(hObject,handles); fprintf(komunikasi,'a'); guidata(hObject,handles); end %menghapus koneksi pause(0.5); fclose(komunikasi); delete(komunikasi) clear komunikasi clc; end % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) global merah global hijau global biru
L17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI global bukandasar guidata(hObject,handles); cla; merah=0; set(handles.edit5, 'String', merah); set(handles.edit1, 'String', merah); hijau=0; set(handles.edit6, 'String', hijau); set(handles.edit2, 'String', hijau); biru=0; set(handles.edit7, 'String', biru); set(handles.edit3, 'String', biru); bukandasar=0; set(handles.edit8, 'String', bukandasar); set(handles.edit4, 'String', bukandasar); guidata(hObject,handles); % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) guidata(hObject,handles); close all; clear all; % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, 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';
L18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI case 7 handles.PORT='COM7'; case 8 handles.PORT='COM8'; case 9 handles.PORT='COM9'; case 10 handles.PORT='COM10'; case 11 handles.PORT='COM11'; case 12 handles.PORT='COM12'; case 13 handles.PORT='COM13'; case 14 handles.PORT='COM14'; case 15 handles.PORT='COM15'; case 16 handles.PORT='COM33'; case 17 handles.PORT='COM34'; case 18 handles.PORT='COM35'; end guidata(hObject,handles); % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = 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, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO)
L19
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit5 as text % str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit6_Callback(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit6 as text % str2double(get(hObject,'String')) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit7_Callback(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit7 as text % str2double(get(hObject,'String')) returns contents of edit7 as a double % --- Executes during object creation, after setting all properties.
L20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI function edit7_CreateFcn(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit8_Callback(hObject, eventdata, handles) % hObject handle to edit8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit8 as text % str2double(get(hObject,'String')) returns contents of edit8 as a double
% --- Executes during object creation, after setting all properties. function edit8_CreateFcn(hObject, eventdata, handles) % hObject handle to edit8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.
L21
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit4_Callback(hObject, eventdata, handles)
L22
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit4 as text % str2double(get(hObject,'String')) returns contents of edit4 as a double
% --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit9_Callback(hObject, eventdata, handles) % hObject handle to edit9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit9 as text % str2double(get(hObject,'String')) returns contents of edit9 as a double % --- Executes during object creation, after setting all properties. function edit9_CreateFcn(hObject, eventdata, handles) % hObject handle to edit9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit10_Callback(hObject, eventdata, handles) % hObject handle to edit10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit10 as text % str2double(get(hObject,'String')) returns contents of edit10 as a double
L23
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
% --- Executes during object creation, after setting all properties. function edit10_CreateFcn(hObject, eventdata, handles) % hObject handle to edit10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit11_Callback(hObject, eventdata, handles) % hObject handle to edit11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit11 as text % str2double(get(hObject,'String')) returns contents of edit11 as a double % --- Executes during object creation, after setting all properties. function edit11_CreateFcn(hObject, eventdata, handles) % hObject handle to edit11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
L24