Page 1
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 2
i
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 3
ii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 4
HALAMAN PERSETUJUAN
TUGAS AKHIR
APLIKASI PENGENALAN WARNA MENGGT]NAKAN WEBCAMUNTUKLENGAN ROBOT PEMISAH BEIYDA
BERDASARKAN WARNA(col,oR RECOGMTION APPLTCATTON USING A WEBCAM FOR
0BJECT SEPARATTON ROBOTTC ARM BY COLOR)
Pembimbing
/'wDr. Linggo Sumarno
llt
Tanggal:L6/e/?-o(y
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 5
HALAMAN PENGESAHAN
TUGAS AKHIR
APLIKASI PENGENALAN WARNA S{ENGGT'NAKAN WEBCA1UUNTUK 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 AEFakulks Sains dan Teknologi
tv
/^€glrl
weruningsih Prima Rosa, S.Si., M.Sc
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 6
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 7
vi
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…
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 8
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 9
viii
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 10
ix
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 11
x
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 12
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 13
xii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 14
xiii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 15
xiv
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 16
xv
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 17
xvi
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 18
xvii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 19
xviii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 20
xix
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 21
1
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 22
2
1.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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 23
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 24
4
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 25
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 26
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 27
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(𝑥2+𝑦2−𝑙12−𝑙22
2𝑙1𝑙2) (2.1)
𝜃1 = arcsin(𝑙2sin(𝜃2)
√𝑥2+𝑦2 ) + arctan(
𝑦
𝑥) (2.2)
2.4. 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 In-
System 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 28
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 29
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 = R x C (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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 30
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. Masing-
masing 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 berbeda-
beda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu semua
timer/counter juga dapat difungsikan sebagai pencacahan waktu seperti pada jam digital
maupun untuk menghasilkan sinyal PWM (Pulse Width Modulation) yakni sinyal kotak
dengan frekuensi dan duty cycle yang nilainya bisa diatur [7].
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 31
11
Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.4,
2.5, dan 2.6 berikut [7].
𝑇 =1
𝑓 (2.4)
𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤𝑖𝑛𝑡𝑒𝑟𝑟𝑢𝑝𝑡 = 𝑁 × 256 × 𝑇 (2.5)
OCR =𝑝𝑢𝑙𝑠𝑒
𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤𝑖𝑛𝑡𝑒𝑟𝑟𝑢𝑝𝑡 (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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 32
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 33
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 34
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 35
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]
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.
UCSZ[2..0] Ukuran Karakter dalam bit
0 5
1 6
10 7
11 8
100-110 Tidak dipergunakan
111 9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 36
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 37
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 38
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 39
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 karakter-
karakter 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 40
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 41
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
RS 0 Inisialisasi
1 Data
RW 0 Tulis LCD/W (Write)
1 Baca LCD/R (Read)
E 0 Pintu data terbuka
1 Pintu data tertutup
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 42
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 43
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 44
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 45
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 46
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]
Type VOUT (Volt)
VIN (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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 47
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)
Jika VD≈VBE, maka
Vo = Vreg (2.12)
Tegangan diantara kolektor dan emittor transistor 2N3055 adalah[22],
VCE = VIN – VR1 (2.13)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 48
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 49
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 50
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
Biru = 8,1087
Benda berwarna
hijau
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 51
31
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 52
32
3.2. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 53
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 54
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 55
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 56
36
Dengan melihat konfigurasi robot pada gambar 3.10 didapat rumus untuk
mendapatkan nilai 𝜃1 dan 𝜃2 adalah sebagai berikut [4] :
𝜃2 = arccos(𝑥2+𝑦2−𝑙12−𝑙22
2𝑙1𝑙2)
𝜃1 = arcsin(𝑙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(152+32−142−172
2𝑥14𝑥17) = 121,824º = 122º
𝜃1 = arcsin(17sin(122)
√152+32) + arctan(
3
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 57
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 58
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 59
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 60
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 61
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
SUDUT
LEBAR PULSA
NILAI OCR
OCR =lebarpulsamotorservo
Tx𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟𝑥256
0o 1 ms OCR = 1×10−3
0,090422×10−6×1×256 = 43,20
90o 1,5 ms OCR = 1,5×10−3
0,090422×10−6×1×256 = 64,8
180o 2 ms OCR = 2×10−3
0,090422×10−6×1×256 = 86,40
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 62
42
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 TORSI
Motor servo 1 (m = 150 gr)
F = m x g
= 0,150 x 9,8
= 1,47 N
Ket : servo 1 bergerak 45o , 135o, dan 180o
Ket : 1 N-m = 10,1971621298 Kg-cm
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
Motor servo 2 (m = 90 gr)
F = m x g
= 0,090 x 9,8
= 0,882 N
Ket : servo 2 bergerak 82o dan 110o
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
Motor servo 3 (m = 30 gr)
F = m x g
= 0,030 x 9,8
= 0,294 N
Ket : servo 3 bergerak 90º dan 122o
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
Motor servo 4 (m = 20 gr)
F = m x g
= 0,020 x 9,8
= 0,196 N
Ket : servo 4 bergerak 90o dan 180o
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 63
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 men-
supply 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] :
𝑅 =𝑉𝑐𝑐
𝐼 R =
5
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 64
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 65
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 nilai-
nilai 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 masing-
masing 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
1
Merah = 16,5477
Hijau = 3,6244
Biru = 2,9525
Benda berwarna
merah
2
Merah = 0
Hijau = 10,6929
Biru = 6,9174
Benda berwarna
hijau
3
Merah = 3,9344
Hijau = 7,9253
Biru = 12,1942
Benda berwarna biru
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 66
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 67
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 68
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 nilai-
nilai 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 masing-
masing 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 69
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 70
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 71
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
11059200)∗256
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 72
52
a. Gerak Servo Mode Merah
Gambar 3.28. Diagram Alir Gerak Servo Mode Merah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 73
53
b. Gerak Servo Mode Hijau
Gambar 3.29. Diagram Alir Gerak Servo Mode Hijau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 74
54
c. Gerak Servo Mode Biru
Gambar 3.30. Diagram Alir Gerak Servo Mode Biru
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 75
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 76
56
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 Gambar 4.2. Regulator Tegangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 77
57
Gambar 4.3. Lengan Robot Keseluruhan Gambar 4.4. Conveyor
Gambar 4.5. Lengan Robot 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 78
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 79
59
pengambilan data pada ruangan TTL. Berikut tabel 4.1 adalah Data pengujian nilai batasan
RGB.
Tabel 4.1. Data Pengujian Nilai Batasan RGB
Warna
Benda
Ruang TTL Nilai Rata - Rata
R G B R G B
Merah
17,58 6,093 6,712
17,58 6,142 6,775 17,58 6,127 6,775
17,59 6,205 6,838
Range Data Merah >=15 <=8 <=8
Hijau
0,652 16,2 9,997
0,654 16,24 10,05 0,611 16,38 10,11
0,7 16,14 10,03
Range Data Hijau <=3 >=14 <=12
Biru
6,262 9,828 16,71
7,32 10,87 17,27 7,88 11,51 17,57
7,817 11,28 17,54
Range Data Biru <=9 <=13 >=15
Hitam
5,127 5,224 5,446
5,849 6,229 6,29 6,296 6,784 6,834
6,123 6,677 6,591
Kuning
17,92 17,13 7,066
17,92 17,28 6,978 17,92 17,62 6,771
17,92 17,09 7,098
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 80
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-
Warna
Benda
Pengambilan
Data ke-
Nilai Citra RGB
R G B
1 Merah
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 81
61
Tabel 4.2. (Lanjutan) Data Citra RGB Masing – Masing Warna Benda
Benda
Ke-
Warna
Benda
Pengambilan
Data ke-
Nilai Citra RGB
R G B
1 Merah 9 17,5988 5,4543 6,3312
10 17,604 5,8325 6,1967
2 Merah
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 Hijau
1 0,5006 14,6417 9,1878
2 0,446 14,6638 9,0195
3 0,679 14,5263 9,176
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
2 Hijau
1 0,6081 14,6984 9,0104
2 0,5723 14,595 9,1636
3 0,6131 14,8419 9,4337
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 82
62
Tabel 4.2. (Lanjutan) Data Citra RGB Masing – Masing Warna Benda
Benda
Ke-
Warna
Benda
Pengambilan
Data ke-
Nilai Citra RGB
R G B
2 Hijau
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 10,914
9 0,6495 16,2951 10,0659
10 0,0034 13,5121 8,6284
1 Biru
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 17,5809
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
2 Biru
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 83
63
Tabel 4.2. (Lanjutan) Data Citra RGB Masing – Masing Warna Benda
Benda
Ke-
Warna
Benda
Pengambilan
Data ke-
Nilai Citra RGB
R G B
2 Biru 9 7,5482 11,3247 17,5948
10 7,418 11,4338 17,5917
1 Hitam
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
2 Hitam
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 Kuning
1 17,92 17,92 8,87
2 17,92 17,92 8,1316
3 17,8501 16,8146 7,1481
4 17,92 17,2542 7,368
5 17,592 17,261 7,362
2 Kuning
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 84
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 85
65
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 86
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 87
67
Tabel 4.3. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R
SUDUT
Nilai OCR
Lebar Pulsa = OCR x T x 𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟 x 256
Error
(%)
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 Sudut Error (%)
Servo 1 Servo 2 Servo 3 Servo 4 Servo 2 Servo 3
Siaga 90º 75º 115º 90º 31,84% 27,78%
Ambil Benda 90º 105º 100º 180º 28,05% 18,03%
Meletakan Benda
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 88
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 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)
Gambar 4.27. Pengujian Benda Warna Merah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 89
69
Gambar 4.27. (Lanjutan) Pengujian Benda Warna Merah
Gambar 4.28. Pengujian Benda Warna Hijau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 90
70
Gambar 4.29. Pengujian Benda Warna Biru
Gambar 4.30. Pengujian Benda Bukan Warna Dasar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 91
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 92
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 93
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 94
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 95
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 96
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.
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()
{
if (sensor>=200)
{PORTD.2=0;delay_ms(5);}
else
{PORTD.2=1;delay_ms(5);}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 97
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<data1){servo1=1;}
else{servo1=0;}
if (i<data2) {servo2=1;}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 98
78
else{servo2=0;}
if (i<data3){servo3=1;}
else{servo3=0;}
if (i<data4) {servo4=1;}
else{servo4=0;}
}
}
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 99
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 100
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 101
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 102
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 nilai-
nilai tertentu. Nilai-nilai yang telah didapat kemudian diproses untuk mengklasifikasikan
gambar-gambar tertentu. Proses secara berurutan yaitu mula-mula gambar diambil dengan
fungsi “getsnapshoot”, kemudian proses cropping atau pemotongan gambar. Hal ini bertujuan
untuk menghilangkan background atau latar belakang yang tidak dibutuhkan untuk diproses.
gambar yang telah diambil diproses dan diubah menjadi gambar RGB dengan tujuan untuk
mempermudah dalam pemrosesan. Langkah selanjutnya yaitu mengubah ke matrik real agar
nilai citra RGB dapat dihitung. Kemudian langkah terakhir yaitu proses penjumlahan data nilai
citra RGB yang telah diubah ke matrik real menjadi sebuah nilai.
%proses capture gambar
gambar=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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 103
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 masing-
masing 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 104
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 105
85
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil pengujian serta pengambilan data pada aplikasi pengenalan objek
menggunakan webcam untuk lengan robot pemisah benda berdasarkan warna, dapat diambil
kesimpulan:
1. Lengan robot sudah dapat bekerja dengan baik dalam proses pengambilan dan
pemindahan benda berdasarkan warnanya sesuai dengan tempat yang telah
ditentukan. Tingkat keberhasilannya adalah 100% untuk posisi benda berada di
tengah conveyor dan jarak antar benda minimal 2 cm, sedangkan jika jarak
kurang dari 2 cm tingkat keberhasilan 62,5%.
2. Metode pengenalan warna benda dengan menggunakan nilai citra RGB pada
masing-masing warna benda dapat berfungsi sesuai dengan rencana. Dan sistem
berhasil melakukan counting sesuai dengan jumlah warna benda yang telah
terdeteksi.
3. Waktu yang dibutuhkan keseluruhan sistem tanpa looping untuk menyelesaikan
proses yaitu 25 detik sedangkan waktu yang dibutuhkan sistem dengan
menggunakan looping untuk menyelesaikan proses yaitu 33 detik.
5.2. Saran
Saran-saran bagi pengembangan selanjutnya adalah:
1. Memberikan tambahan variasi warna pada benda agar dapat membandingkan
tingkat keakuratan nilai RGB yang range nilainya sudah ditentukan.
2. Menggunakan metode pengenalan warba benda lain untuk mendeteksi benda
berwarna dengan webcam.
3. Waktu keseluruhan sistem untuk proses pengenalan benda dibuat lebih cepat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 106
86
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/#more-
585, diakses tanggal 27 November 2014.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 107
87
[15] Laksmito, B., 2010, Pengertian webcam dan jenis – 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 108
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 109
L1
Berat benda setelah ditimbang
Rangkaian Regulator
Rangkaian Sensor Photodioda
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 110
L2
Rangkaian Minimum System Atmega8535
Spesifikasi Servo Towerpro MG946R [17]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 111
L3
Spesifikasi Servo Towerpro SG90 [26]
Spesifikasi Webcam Logitech C270h [15]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 112
L4
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 113
L5
*****************************************************/
#include <mega32.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
// 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<data1)
{servo1=1;}
else
{servo1=0;}
if (i<data2)
{servo2=1;}
else
{servo2=0;}
if (i<data3)
{servo3=1;}
else
{servo3=0;}
if (i<data4)
{servo4=1;}
else
{servo4=0;}
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 114
L6
#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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 115
L7
}
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);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 116
L8
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);
};
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 117
L9
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 118
L10
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 119
L11
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 120
L12
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 121
L13
// 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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 122
L14
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, ...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 123
L15
'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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 124
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 125
L17
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 126
L18
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';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 127
L19
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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 128
L20
% 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 129
L21
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 130
L22
% 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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 131
L23
% 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 132
L24
% --- 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI