INTISARI
Perkembangan dunia teknologi sangat berpengaruh bagi kehidupan manusia. Perkembangan teknologi dapat mempermudah kinerja manusia dan meningkatkan efisieni tenaga dan waktu untuk mendukung proses operasional suatu usaha. Salah satunya adalah lengan robot untuk mengenali bentuk benda agar dapat mengambil dan memisahkan benda berdasarkan bentuk dengan menggunakan teknologi image processing. Proses pemisahan benda menggunakan lengan robot masih banyak dilakukan secara manual atau dioperasikan oleh operator. Hal ini dirasa kurang efisien dan memerlukan waktu yang lama.
Berdasarkan hal tersebut, dibutuhkan adanya lengan robot yang dapat mengenali bentuk benda secara otomatis agar dapat mengambil dan memisahkan benda secara otomatis tanpa dioperasikan operator. Urutan pengenalan bentuk benda yaitu citra RGB benda diubah menjadi citra grayscale untuk mempermudah proses pengenalan. Kemudian memproses citra grayscale menjadi citra biner, proses pemotongan citra (croping),
resizing, menjumlahkan nilai citra biner, dan pengenalan bentuk benda berdasarkan range
jumlah nilai citra biner berdasarkan masing-masing bentuk benda. Lengan robot digerakan oleh motor servo yang dikendalikan ATmega32 menggunakan fasilitas interrupt dan komunikasi serial antara komputer dengan ATmega32 menggunakan komunikasi serial USART yang diprogram menggunakan CodeVision AVR.
Hasil dari penelitian ini adalah sistem dapat membedakan 4 macam bentuk benda secara realtime serta lengan robot dapat mengambil dan memisahkan benda berdasarkan bentuk. Setelah melakukan percobaan sebanyak 40 kali, sistem dan lengan robot dapat bekerja 100% dengan toleransi kemiringan benda 10o dan tata peletakan benda sesuai dengan batasan masalah. Namun apabila tidak sesuai dengan batasan masalah, maka sistem dan lengan robot tidak dapat bekerja secara baik. Hal ini disebabkan gripper tidak dapat menjangkau objek untuk proses pemindahan.
ABSTRACT
The development of the technology very influential for human life. Technology development to simplify the human pershapeance and increase efficient of time and energy to support the process of operational a business. One is robotic arm for acquainted object shape in ordet to take and separate object base on object shape using image processing technology. Object separation process using robotic arm still operation with manually or operated by operator. This is not efficient and need more time. This is less efficient and requires a long time.
Based on this, it takes the robot arm that can automatically recognize the shape of the object in order to extract and separate objects automatically without operator operated. Object shape identification step is RGB image of object change to grayscale image for facilitate identification process. After that processing grayscale image to binary image, cropping process, resizing, counting binary image value, and identification object shape based on range binary image value for respectively object shape. Robotic arm movement by servo motor controlled ATmega32 using interrupt facilities and serial communication between computer and ATmega32 using USART serial communication programed with
CodeVision AVR.
The results of the research is the system can dicrimination four kinds of realtime objects and the robotic arm can pick up and separate objects based on shape. After experimenting as much as 40 times, system and the robotic arm can work 100% with a tolerance of 10o tilt objects and layout objects laying in accordance with problem definition. But, if the problem is not in accordance with the limits, then the system and the robotic arm can not work properly. This is due to the gripper can not reach the object to the moving process.
TUGAS AKHIR
APLIKASI PENGENALAN OBJEK
UNTUK LENGAN ROBOT PEMISAH BENDA
BERDASARKAN BENTUK BENDA
Diajukan untuk memenuhi salah syarat memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh :
IRVAN HASAN
Nim : 115114018
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
i
TUGAS AKHIR
APLIKASI PENGENALAN OBJEK
UNTUK LENGAN ROBOT PEMISAH BENDA
BERDASARKAN BENTUK BENDA
Diajukan untuk memenuhi salah syarat memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh :
IRVAN HASAN
Nim : 115114018
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
FINAL PROJECT
OBJECT IDENTIFICATION APPLICATION FOR
ROBOTIC ARM OBJECT SEPARATOR BASED ON
OBJECT SHAPE
In partial fulfilment of the requirements for the degree of Sarjana Teknik
in Electrical Engineering Study Program
Faculty of Science and Technology Sanata Dharma University
IRVAN HASAN
Nim : 115114018
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTEMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
HALAMAN
PERSETUJUAN
TUGAS
AKHIR
APLIKASI
PENGENALANI
OBJEK
UT{TUK
LENGAN ROBOT PEMISAH BENDA
BERDASARKAN BENTUK BENDA
(OBJECT IDE
ROBOTIC
Pembimbing
r
/1
v:?-
,t^
.-r
Dr.
Linggo
Sumarnoranggar,
b
ru
/-(f
ilt
HALAMAN
PENGESAHAN
TUGAS
AKHIR
APLIKASI
PENGENALAN OBJEK
UNTUK LENGAN ROBOT PEMISAH BENDA
BERDASARKAI\ BENTUK
BEI\DA
(OBJECT
IDENTIFICATION
APPLICATION FOR
ROBOTIC
ARM
OBJECT
SEPARATOR BASED
ON
OBJECT
SHAPE)
Oleh :
IRVAN
HASAN
NIM:115114018
Telah dipertahankan di depan panitia penguji pada tanggal:
dan dinyatakan memenuhi syarat
susunan panitia
Nama lengkap
Ketua
: Ir. Th. PrimaAri Setiyani,
M. T.Sekertaris
: Dr. Linggo SumarnoAnggota
: Dr.IswanjonoYogyakmta.
21
Afichrr-
ZotS Fakultas Sains dan Teknologiiv
PERNYATAAI\ KEASLTAI\
KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas
akhir
yatrg berjudul*APLIKASI
PENGENALATIOBJEK UNTUK LENGAI[
ROBOT
PEMISAHBENDA BERDASARKAI{ BENTUK BENDA' tidak memuat karya atau bagian karya
orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana
layaknya karya ilmiah.
Apabila dikemudian hari ditemukan indikasi plagiatisme dalam naskah ini, maka
saya bersedia menanggung segala sanksi sesuai peraturan perundang-undangan yang
berlaku.
Yogyakarta, 27 lunt20l5
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO :
“Tidak ada orang yang terlahir dengan
kepintaran yang luar biasa, melainkan
orang terlahir dengan semangat juang yang
luar biasa
”
Skripsi ini kupersembahkan untuk :
Tuhan Yesus Kristus penyelamatku
Bunda Maria dan Malaikat pelindungku…
Papa dan Mama tercinta, untuk doanya, serta
dukungannya secara moral maupun materi
Almamaterku Teknik Elektro Universitas Sanata Dharma
HALAMAN
PERNYATAAN PERSETUJUAI\
PUBLIKASI
KARYA
ILMIAH
UNTUK
KEPENTINGAN
AKADEMIS
Yang bertandatangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama
: IRVAN HASAN NomorMahasiswa : 115114018Demi
pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :APLIKASI PENGENALAI\ OBJEK
UNTUK LENGAN ROBOT PEMISAH BENDA
BEDA.SARKAN BENTUK BENDA
beserta perangkat yang dipedukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya dalam bentuk pangkalan datq 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 setenarnya.Yogyakarta, 27 Juni 2015
Irvan Hasan
viii
INTISARI
Perkembangan dunia teknologi sangat berpengaruh bagi kehidupan manusia. Perkembangan teknologi dapat mempermudah kinerja manusia dan meningkatkan efisieni tenaga dan waktu untuk mendukung proses operasional suatu usaha. Salah satunya adalah lengan robot untuk mengenali bentuk benda agar dapat mengambil dan memisahkan benda berdasarkan bentuk dengan menggunakan teknologi image processing. Proses pemisahan benda menggunakan lengan robot masih banyak dilakukan secara manual atau dioperasikan oleh operator. Hal ini dirasa kurang efisien dan memerlukan waktu yang lama.
Berdasarkan hal tersebut, dibutuhkan adanya lengan robot yang dapat mengenali bentuk benda secara otomatis agar dapat mengambil dan memisahkan benda secara otomatis tanpa dioperasikan operator. Urutan pengenalan bentuk benda yaitu citra RGB benda diubah menjadi citra grayscale untuk mempermudah proses pengenalan. Kemudian memproses citra grayscale menjadi citra biner, proses pemotongan citra (croping),
resizing, menjumlahkan nilai citra biner, dan pengenalan bentuk benda berdasarkan range
jumlah nilai citra biner berdasarkan masing-masing bentuk benda. Lengan robot digerakan oleh motor servo yang dikendalikan ATmega32 menggunakan fasilitas interrupt dan komunikasi serial antara komputer dengan ATmega32 menggunakan komunikasi serial USART yang diprogram menggunakan CodeVision AVR.
Hasil dari penelitian ini adalah sistem dapat membedakan 4 macam bentuk benda secara realtime serta lengan robot dapat mengambil dan memisahkan benda berdasarkan bentuk. Setelah melakukan percobaan sebanyak 40 kali, sistem dan lengan robot dapat bekerja 100% dengan toleransi kemiringan benda 10o dan tata peletakan benda sesuai dengan batasan masalah. Namun apabila tidak sesuai dengan batasan masalah, maka sistem dan lengan robot tidak dapat bekerja secara baik. Hal ini disebabkan gripper tidak dapat menjangkau objek untuk proses pemindahan.
ix
ABSTRACT
The development of the technology very influential for human life. Technology development to simplify the human pershapeance and increase efficient of time and energy to support the process of operational a business. One is robotic arm for acquainted object shape in ordet to take and separate object base on object shape using image processing technology. Object separation process using robotic arm still operation with manually or operated by operator. This is not efficient and need more time. This is less efficient and requires a long time.
Based on this, it takes the robot arm that can automatically recognize the shape of the object in order to extract and separate objects automatically without operator operated. Object shape identification step is RGB image of object change to grayscale image for facilitate identification process. After that processing grayscale image to binary image, cropping process, resizing, counting binary image value, and identification object shape based on range binary image value for respectively object shape. Robotic arm movement by servo motor controlled ATmega32 using interrupt facilities and serial communication between computer and ATmega32 using USART serial communication programed with
CodeVision AVR.
The results of the research is the system can dicrimination four kinds of realtime objects and the robotic arm can pick up and separate objects based on shape. After experimenting as much as 40 times, system and the robotic arm can work 100% with a tolerance of 10o tilt objects and layout objects laying in accordance with problem definition. But, if the problem is not in accordance with the limits, then the system and the robotic arm can not work properly. This is due to the gripper can not reach the object to the moving process.
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 Theresia Prima Ari Setiyani S.T., M.T dan Bapak Dr.Iswanjono selaku dosen
penguji yang telah bersedia memberikan masukan, bimbingan, dan saran dalam
memperbaiki tugas akhir ini.
6) Bapak/ Ibu dosen yang telah mengajarkan banyak hal selama penulis menempuh
pendidikan di Program Studi Teknik Elektro, Fakultas Sains dan Teknologi,
Universitas Sanata Dharma.
7) Kedua orang tua tercinta, papah Hasan Hamdan dan mamah Rina Wati atas kasih
sayang, dukungan dan doa yang tiada henti.
8) Adik-adik tercinta Erwin Kristiawan Hasan, Aldo Alfonsus Hasan, dan Putri
Juliana Hasan yang selalu mendukung dan mendoakan saya, sehingga dapat
menyelesaikan tugas belajar dengan baik.
9) Angeline Syahputri Fransiskus sebagai teman, sahabat, dan kekasih yang selalu
menyemangati dan mendukung penulis sampai terselesaikannya tugas akhir ini.
ll)Staff
dan petugas laboratorium Teknik Elektro yang telah membantu banyak hal untuk kelancaran tugas-tugas perkuliahan.12) Teman-teman seperjuangan angkatan 2011 Teknik Elektro yang selalu mendukung
dan menyemangati saya dalam menyelesaikan tugas akhfu ini.
13) Semua pihak yang tidak dapat disebutkan satu persatu atas semua dukungan yang
telah diberikan dalam penyelesaian tugas akhir ini.
Penulis menyadari bahwa datam penulisan tugas
akhir ini
masih banyakkekurangan, kelemahan dan jauh dari sempurna. Oleh sebab itu, dengan segala kerendahan
hati, penulis mengharapkan kdtik dan saran yang membangun untuk penyempwnaan tugas
akhir ini. Dan semoga tugas akhir ini dapat bernranfaat sebagaimana mestinya.
Yogyakarta 27 Juni 2015
W
Penulis
Irvan Hasan
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 TABEL ... xv
DAFTAR GAMBAR ... xvi
BAB I PENDAHULUAN 1.1. Latar Belakang ... 1
1.2. Tujuan dan Manfaat ... 2
1.3. Batasan Masalah ... 2
1.4. Metodologi Penelitian ... 3
1.5. Sistematika Penulisan ... 4
BAB II DASAR TEORI 2.1. Lengan Robot ... 5
2.2. Torsi/Momen Gaya ... 7
2.3. Motor Servo ... 7
2.4. Mikrokontroler AVR ATmega32 ... 8
2.4.1. Arsitektur AVR ATmega32 ... 9
2.4.2. Deskripsi Mikrokontroler ATmega32 ... 9
2.4.3. Organisasi Memori AVR ATmega32 ... 10
2.4.4. Interupsi ... 11
2.4.5. Timer/Counter ... 11
2.4.6. Komunikasi Serial USART ... 13
2.5. LCD 16x2 ... 18
xiii
2.7. Photodioda ... 22
2.8. Infrared ... 25
2.9. Transistor Sebagai Saklar ... 25
2.10. Relay ... 26
2.11. Webcam ... 26
2.12. Benda Tiga Dimensi ... 27
2.13. Pengolahan Citra Digital ... 27
2.14. Pemrosesan Citra ... 28
2.14.1.Citra Grayscale ... 28
2.14.2.Cropping ... 29
2.14.3.Citra Biner ... 29
2.14.4.Resizing ... 30
2.15. Metode Pengenalan Benda ... 30
BAB III PERANCANGAN PENELITIAN 3.1. Proses Kerja dan Mekanisme Lengan Robot ... 31
3.2. Perancangan Mekanik Lengan Robot ... 32
3.3. Perancangan Perangkat Keras ... 34
3.3.1. Minimum System ATmega32 + LCD 16x2 ... 34
3.3.1.1. Minimum System ATmega32 ... 34
3.3.1.2. Rangkaian Konfigurasi LCD 16x2 ... 35
3.3.2. Perhitungan Torsi Motor Servo ... 36
3.3.3. Motor Servo ... 38
3.3.4. Regulator ic 7805 dan Penguat Arus ... 40
3.3.5. Webcam ... 40
3.3.6. Sensor Photodioda dan Transistor Sebagai Saklar ... 41
3.3.7. Benda Tiga Dimensi ... 42
3.4. Perancangan Perangkat Lunak ... 43
3.4.1. Flowchart Program Interrupt Lengan Robot ... 45
3.4.2. Flowchart Program Pengenalan Bentuk Benda Pada MATLAB ... 49
3.4.3. Perancangan GUI MATLAB ... 50
3.4.4. Perubahan m-file Menjadi exe file ... 51
xiv
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.Sudut Motor Servo ... 58
4.2.2.Pengujian Nilai Citra Biner Bentuk Benda ... 61
4.2.3.Tata Peletakan Benda ... 62
4.2.4.Pengujian Keberhasilan Sistem Mendeteksi Bentuk Benda ... 63
4.2.5.Pengujian Keberhasilan Lengan Robot Saat Mengambil dan Memindahkan Benda ... 68
4.2.6.Pengujian Sistem Dalam Proses Pengenalan Benda dan Proses Pemindahan Benda ... 68
4.2.6.1. Menggunakan Lopping ... 68
4.2.6.2. Tidak Menggunakan Lopping ... 69
4.3. Analisa dan Pembahasan Perangkat Lunak ... 69
4.3.1.Aplikasi CodeVision AVR ... 69
4.3.1.1. Pengendali Sensor Photodioda ... 69
4.3.1.2. Pengendali Komunikasi USART ... 70
4.3.1.3. Pengendali Motor Servo ... 71
4.3.1.4. Subrutin Program Utama ... 74
4.3.2.Aplikasi MATLAB ... 76
4.3.2.1. Tampilan Gui MATLAB ... 76
4.3.2.2. Inisialisasi Komunikasi Serial ... 77
4.3.2.3. Inisialisasi Webcam ... 77
4.3.2.4. Proses Pengolahan Citra ... 78
4.3.2.5. Proses Pengenalan Bentuk Benda ... 78
Kesimpulan dan Saran ... 80
Daftar Pustaka ... 81
xv
DAFTAR TABEL
Tabel 2.1. Hubungan PIN dan Interupsi ... 11
Tabel 2.2. Penentuan Ukuran Karakter ... 17
Tabel 2.3. Operasi Dasar LCD 16x2 ... 19
Tabel 2.4. Konfigurasi Pin LCD 16x2 ... 19
Tabel 2.5. Konfigurasi Setting LCD 16x2 ... 20
Tabel 2.6. Karakteristik Regulator Tegangan ic 78xx ... 20
Tabel 2.7. Hubungan Arus Dengan Hambatan ... 24
Tabel 3.1. Perhitungan Torsi Motor Servo ... 37
Tabel 3.2. Perhitungan Nilai OCR ... 39
Tabel 3.3. Pemberian sudut motor servo ... 45
Tabel 4.1. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R ... 60
Tabel 4.2. Data Citra Biner Masing-Masing Bentuk Benda ... 61
Tabel 4.3. Pengujian Keberhasilan Sistem Mendeteksi Bentuk Benda ... 63
Tabel 4.4. Pengujian Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda ... 68
xvi
DAFTAR GAMBAR
Gambar 2.1. Manipulator Pada Lengan Robot ... 5
Gambar 2.2. Contoh Gripper ... 6
Gambar 2.3. Model Fisik Motor Servo ... 7
Gambar 2.4. Cara Pengontrolan Motor Servo ... 8
Gambar 2.5. Konfigurasi Pin Mikrokontroler ATmega32 ... 9
Gambar 2.6. Mode Phase Correct PWM ... 12
Gambar 2.7. Mode fast PWM ... 13
Gambar 2.8. Register UDR ... 14
Gambar 2.9. Register UCSRA ... 14
Gambar 2.10. Register UCSRB ... 16
Gambar 2.11. Register UCSRC ... 17
Gambar 2.12. Contoh LCD 16x2 ... 18
Gambar 2.13. Rangkaian Umum Regulator 78xx ... 21
Gambar 2.14. Rangkaian Catu Daya Dengan Penguat ... 21
Gambar 2.15. Simbol Dan Bentuk Photodioda ... 23
Gambar 2.16. Respon Relatif Spektral Untuk Si, Ge, Dan Selenium Dibandingkan Dengan Mata Manusia ... 23
Gambar 2.17. Hubungan Iλ Dengan Fc Pada Photodioda ... 23
Gambar 2.18. Rangkaian Sensor Photodioda ... 24
Gambar 2.19. Aplikasi Sensor Photodioda ... 24
Gambar 2.20. Contoh Rangkaian Transistor Sebagai Saklar ... 25
Gambar 2.21. Bentuk Fisik Relay ... 26
Gambar 2.22. Contoh Webcam ... 27
Gambar 2.23. Contoh Benda Tiga Dimensi ... 27
Gambar 2.24. Contoh Koordinat Citra Digital ... 28
Gambar 2.25. Citra Skala Keabuan ... 29
Gambar 2.26. Contoh Citra Biner ... 29
Gambar 2.27. Aplikasi Citra Biner ... 30
Gambar 3.1. Blok Diagram Sistem ... 32
Gambar 3.2. Anatomi Lengan Robot ... 32
Gambar 3.3. Komponen 1 ... 33
xvii
Gambar 3.5. Komponen 3 ... 33
Gambar 3.6. Gripper Tampak Atas ... 33
Gambar 3.7. Peletakan Seluruh Komponen ... 34
Gambar 3.8. Rangkaian Osilator ATmega32 ... 35
Gambar 3.9. Rangkaian Reset ATmega32 ... 35
Gambar 3.10. Skematik LCD 16x2 ... 36
Gambar 3.11. Setting Port LCD ... 36
Gambar 3.12. Konstruksi Lengan Robot ... 36
Gambar 3.13. Rangkaian Pin Motor Servo ... 38
Gambar 3.14. Lebar Pulsa Motor Servo ... 39
Gambar 3.15. Rangkaian Regulator 7805 Dengan Penguat Arus ... 40
Gambar 3.16. Rangkaian Sensor Photodioda ... 41
Gambar 3.17. Rangkaian Transistor Sebagai Saklar dan Relay ... 42
Gambar 3.18. Benda Tiga Dimensi ... 42
Gambar 3.19. Flowchart Keseluruhan Sistem ... 44
Gambar 3.20. Flowchart Program Interrupt Lengan Robot Saat Posisi Siaga ... 46
Gambar 3.21. Flowchart Program Interrupt Lengan Robot Saat Mengambil Benda ... 46
Gambar 3.22. Flowchart Program Interrupt Lengan Robot Saat Meletakan Benda Kubus ... 47
Gambar 3.23. Flowchart Program Interrupt Lengan Robot Saat Meletakan Benda Balok ... 47
Gambar 3.24. Flowchart Program Interrupt Lengan Robot Saat Meletakan Benda Tabung ... 48
Gambar 3.25. Flowchart Program Interrupt Lengan Robot Saat Meletakan Benda Bola ... 48
Gambar 3.26. Flowchart Pengenalan Bentuk Benda Pada MATLAB ... 50
Gambar 3.27. Perancangan GUI pada MATLAB ... 51
Gambar 3.28. Langkah Pertama exe File ... 52
Gambar 3.29. Langkah Kedua exe File ... 52
Gambar 3.30. Langkah Ketiga exe File ... 53
Gambar 3.31. (Lanjutan) Langkah Ketiga exe File ... 53
xviii
Gambar 3.33. (Lanjutan) Langkah Keempat exe File ... 54
Gambar 3.34. Flowchart Menghitung Jumlah Benda yang Telah Terdeteksi ... 55
Gambar 4.1. Conveyor ... 56
Gambar 4.2. Minimum System ... 56
Gambar 4.3. Regulator ... 56
Gambar 4.4. Benda ... 57
Gambar 4.5. Lengan Robot ... 57
Gambar 4.6. Tempat Peletakan Benda ... 57
Gambar 4.7. Sudut 0o ... 59
Gambar 4.8. Sudut 10o ... 59
Gambar 4.9. Sudut 20o ... 59
Gambar 4.10. Sudut 30o ... 59
Gambar 4.11. Sudut 40o ... 59
Gambar 4.12. Sudut 50o ... 59
Gambar 4.13. Sudut 60o ... 59
Gambar 4.14. Sudut 70o ... 59
Gambar 4.15. Sudut 80o ... 59
Gambar 4.16. Sudut 90o ... 59
Gambar 4.17. Sudut 100o ... 59
Gambar 4.18. Sudut 110o ... 59
Gambar 4.19. Sudut 120o ... 60
Gambar 4.20. Sudut 130o ... 60
Gambar 4.21. Sudut 140o ... 60
Gambar 4.22. Sudut 150o ... 60
Gambar 4.23. Sudut 160o ... 60
Gambar 4.24. Sudut 170o ... 60
Gambar 4.25. Sudut 180o ... 60
Gambar 4.26. Grafik Data Citra Biner ... 62
Gambar 4.27. Peletakan Benda Kubus ... 62
Gambar 4.28. Peletakan Benda Balok ... 62
Gambar 4.29. Peletakan Benda Tabung ... 63
Gambar 4.30. Peletakan Benda Bola ... 63
xix
Gambar 4.32. Pengujian Benda Kubus ... 65
Gambar 4.33. Pengujian Benda Tabung ... 66
Gambar 4.34. Pengujian Benda Bola ... 67
Gambar 4.35. Listing Program ADC ... 69
Gambar 4.36. Listing Program Pengendali Conveyor ... 70
Gambar 4.37. Listing Program Komunikasi USART ... 70
Gambar 4.38. Listing program pengendali sudut putar motor servo ... 71
Gambar 4.39. Pemberian Nilai OCR Motor Servo ... 71
Gambar 4.40. Listing Program Gerakan Mengambil Benda ... 72
Gambar 4.41. Listing Program Memindahkan Benda Kubus ... 73
Gambar 4.42. Listing Program Memindahkan Benda Balok ... 73
Gambar 4.43. Listing Program Memindahkan Benda Tabung ... 74
Gambar 4.44. Listing Program Memindahkan Benda Bola ... 74
Gambar 4.45. Subrutin Program Utama ... 75
Gambar 4.46. Tampilan GUI MATLAB ... 76
Gambar 4.47. Inisialisasi Komunikasi Serial ... 77
Gambar 4.48. Inisialisasi Webcam ... 77
Gambar 4.49. Proses Pengolahan Citra ... 78
1
BAB I
PENDAHULUAN
1.1.
Latar Belakang
Pada masa kini teknologi memiliki peranan penting dalam aktivitas yang dilakukan
manusia untuk mempermudah melakukan pekerjaan. Salah satu hasil perkembangan
teknologi yaitu adanya teknologi yang dinamakan lengan robot [1] dan computer vision
[2]. Lengan robot atau biasa disebut robot manipulator adalah gabungan dari beberapa
segmen dan joint yang secara umum dibagi menjadi tiga bagian yaitu arm, wrist, dan
gripper [1]. Sedangkan computer vision merupakan bidang pengetahuan yang berfokus
pada bidang sistem kecerdasan buatan dan berhubungan dengan akuisisi data dan
pemrosesan citra [2].
Lengan robot memiliki banyak fungsi diantaranya yaitu untuk memindahkan
material, benda, alat, atau peralatan tertentu lewat pergerakan yang terprogram untuk
melakukan berbagai macam tugas [1] seperti pada penelitian terdahulu yang dilakukan
oleh Arismarjito[3] mengenai lengan robot pemisah benda berdasarkan warna
menggunakan sensor warna TCS3200. Dari penelitian tersebut dan berdasarkan manfaat
lengan robot serta computer vision, maka peneliti memiliki gagasan membuat lengan robot
untuk memisahkan benda berdasarkan bentuk dengan menggunakan webcam sebagai
sensor.
Cara kerja lengan robot secara keseluruhan yaitu mula-mula benda diletakan diatas
conveyor yang akan membawa benda ke arah webcam untuk diproses dan dikenali
bentuknya. Setelah benda dikenali, maka lengan robot akan mengambil benda tersebut
1.2.
Tujuan dan Manfaat
Tujuan penulisan tugas akhir ini yaitu membuat lengan robot yang dapat
membedakan 4 macam bentuk benda secara realtime. Manfaat dari penulisan tugas akhir
ini adalah untuk membantu pekerjaan manusia, khususnya memisahkan beberapa jenis
benda yang memiliki bentuk berbeda. Pengembangan dari pembuatan tugas akhir ini yaitu
lengan robot industri otomatis untuk memisahkan benda-benda maupun material tertentu
yang memiliki bentuk berbeda secara otomatis.
1.3.
Batasan Masalah
Pada perancangan alat ini, penulis berfokus pada pembuatan lengan robot beserta
programnya dengan menggunakan codevision AVR dan image processing menggunakan
software MATLAB. Sedangkan untuk hardware berupa webcam, conveyor, dan USB to
TTL converter menggunakan modul yang sudah jadi dan tersedia di pasaran. Penulis
menetapkan beberapa batasan masalah pada perancangan ini, yaitu sebagai berikut:
1) Masukan berupa empat buah benda yaitu kubus, balok, tabung, bola yang terbuat dari
styrofoam.
2) Benda disusun secara acak diatas conveyor dengan jarak antara masing-masing benda
yaitu +10 cm.
3) Posisi peletakan benda sesuai dengan batasan penulis yaitu maksimal toleransi sudut
kemiringan benda sebesar 10o.
4) Menggunakan webcam untuk mengidentifikasi bentuk benda yang terhubung dengan
softwareMATLAB melalui “Image Processing Toolbox”.
5) Menggunakan webcam logitech c270h yang diletakan 24 cm diatas benda.
6) Lengan robot dan gripper terbuat dari bahan akrilik dengan tebal 3mm yang di desain
dengan menggunakan google sketchup.
7) Lengan robot terdiri dari empat buah servo standar yang diprogram menggunakan
codevision AVR melalui ATmega32.
8) Komunikasi antara laptopdengan ATmega32 menggunakan komunikasi serial USART
yang dihubungkan dengan modul yang sudah tersedia di pasaran yaitu modul USB to
9) Benda berada 15cm didepan lengan robot dan tempat peletakan benda berada
disamping lengan robot. Terdapat empat buah tempat untuk meletakan benda yaitu
tempat untuk benda berbentuk kubus, tempat untuk benda berbentuk balok, tempat
untuk benda berbentuk tabung, dan tempat untuk benda berbentuk bola yang telah
ditetapkan tempatnya pada saat perancangan.
10) Keluaran berupa nama benda yang terdeteksi pada LCD 16x2.
11) Terdapat tampilan GUI pada MATLAB sebagai user interface agar dapat melihat data
benda yang akan dikenali, dan jumlah benda yang terdeteksi.
1.4.
Metodologi Penelitian
Langkah-langkah yang dilakukan dalam pengerjaan tugas akhir ini yaitu :
1) Pengumpulan bahan-bahan referensi berupa buku dan jurnal ilmiah yang membahas
mengenai image processing dengan MATLAB, lengan robot, pemrograman dengan
code vision AVR, ATmega32, serta buku-buku pendukung lainnya.
2) Perancangan hardware dan software
Tahap ini merupakan perancangan desain lengan robot beserta skema-skema
rangkaian pendukung dan pembuatan flowchart untuk memprogram Atmega32 dan
MATLAB.
3) Pembuatan hardware dan software. Tahapan ini berisi tentang pembuatan alat sesuai
dengan desain lengan robot yang telah dirancang beserta program-program yang
mengacu pada flowchart yang telah dibuat pada perancangan.
4) Proses pengambilan data. Teknik pengambilan data dilakukan dengan mencari data
pada masing-masing benda, melihat tanggapan sistem dalam mendeteksi benda, sudut
motor servo pada lengan robot, dan keakuratan lengan robot saat memisahkan benda.
5) Analisa dan penyimpulan hasil percobaan. Analisa dan penyimpulan hasil percobaan
dapat dilakukan dengan melihat persentase error alat saat mendeteksi benda, dan
1.5.
Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I: PENDAHULUAN
Bab ini berisi latar belakang masalah, tujuan dan manfaat, batasan masalah,
metodologi penelitian dan sistematika penulisan.
BAB II : DASAR TEORI
Bab ini berisi teori-teori yang mendukung kerja sistem dan teori yang digunakan
dalam perancangan lengan robot.
BAB III : PERANCANGAN PENELITIAN
Bab ini berisi penjelasan alur perancangan lengan robot serta flow chart program
pendukung.
BAB IV : HASIL PENGAMATAN DAN PEMBAHASAN
Bab ini berisi pengamatan dan pembahasan data yang diperoleh, berupa data
tingkat keberhasilan sistem mendeteksi benda, data motor servo dan tingkat keberhasilan
keseluruhan sistem lengan robot.
BAB V : KESIMPULAN DAN SARAN
Bab ini berisi ringkasan hasil penelitian yang telah dilakukan dan usulan yang
berupa gagasan-gagasan untuk perbaikan atau pengembangan terhadap penelitian yang
5
BAB II
DASAR TEORI
Pada bab ini akan dibahas mengenai landasan-landasan teori yang digunakan dalam
pembuatan tugas akhir “Aplikasi Pengenalan Objek Untuk Lengan Robot Pemisah Benda
Bedasarkan Bentuk Benda”.
2.1.
Lengan Robot
Lengan robot atau biasa disebut robot manipulator adalah gabungan dari beberapa
segmen dan joint yang secara umum dibagi menjadi tiga bagian yaitu arm, wrist, dan
gripper. Konfigurasi robot biasanya digunakan untuk mengklasifikasikan robot-robot
idustri. Konfigurasi robot mengarah pada bentuk geometri dari manipulator robot, yaitu
informasi hubungan dari setiap joint pada manipulator [1]. Sistem lengan robot memiliki
empat komponen dasar, yaitu: manipulator, end effector, aktuator, dan kontroler.
a.
Manipulator
Manipulator pada robot lengan memiliki tiga bagian, yaitu bagian dasar (base),
bagian lengan (arm), dan bagian pergelangan (wrist). Bagian-bagian manipulator pada
lengan robot dapat dilihat pada gambar 2.1.
Gambar 2.1. Manipulator Pada Lengan Robot
Bagian dasar (base) manipulator bisa secara paten terpasang pada dasar area kerja
ataupun terpasang pada rel. Bagian lengan (arm) berfungsi untuk memposisikan end-
effector, dan bagian pergelangan (wrist) berfungsi untuk mengatur orientasi dari end
effector. Bagian ujung pada robot lengan terpasang end effector atau yang sering disebut
dengan gripper yang berfungsi sebagai alat mencengkram pada lengan robot.
b.
End Effector
End effector dapat ditemukan hampir di semua aplikasi robot, walaupun
keberadaannya bukan merupakan komponen dasar dari sistem robot. End effector
berfungsi sebagai bagian terakhir yang menghubungkan antara manipulator dengan objek.
Sebagai contoh efektor dapat berupa peralatan las, penyemprot cat ataupun hanya berupa
pencekam objek[2].
Gambar 2.2. Contoh Gripper [2]
c.
Kontroler
Kontroler merupakan otak dari sistem robot sehingga keberadaannya sangat
penting. Kontroler menyimpan informasi yang berkaitan dengan data-data robot, dalam hal
ini data gerakan robot yang telah diprogram sebelumnya.
Kontroler berfungsi untuk mengontrol pergerakan dari manipulator. Kontroler
sendiri diatur oleh sebuah informasi atau program yang diisikan dengan menggunakan
bahasa pemrograman tertentu. Informasi tersebut kemudian disimpan didalam memori.
2.2.
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 [4].
Rumus :
τ = F r sin ϴ (2.1)
keterangan : τ = Torsi (N-m)
r = Jarak dari titik pangakal gaya sampai sumbu putar
F = Gaya (N), F = m x g ϴ = Derajat sumbu putar
2.3.
Motor Servo
Motor servo merupakan motor DC yang seudah dilengkapi dengan sistem kontrol
didalamnya. Pada aplikasinya, motor servo sering digunakan sebagai kontrol loop tertutup,
sehingga dapat menangani perubahan posisi secara tepat dan akurat [1].
Gambar 2.3. Model Fisik Motor Servo [5]
Bentuk fisik motor servo dapat dilihat pada gambar 2.3. sistem pengkabelan motor
servo terdiri dari tiga bagian, yaitu Vcc, Gnd, dan Kontrol (PWM). Penggunaan PWM
pada motor servo berbeda dengan penggunaan PWM pada motor DC. Pada motor servo,
pemberian nilai PWM akan membuat motor servo bergerak pada posisi tertentu lalu
Motor servo terdiri dari dua macam, yaitu motor servo standar dan motor servo
[image:30.595.92.498.176.402.2]continuous. Motor servo standar yaitu motor servo yang hanya bergerak mulai dari 0o sampai dengan 180o, sedangkan motor servo continuous merupakan motor servo yang dapat berputar 360o sehingga memungkinka untuk bergerak rotasi seperti pada motor DC pada umumnya.
Gambar 2.4. Cara Pengontrolan Motor Servo [5]
Prinsip utama pengontrolan motor servo yaitu dengan memberikan nilai PWM pada
kontrolnya. Perubahan duty cycle akan menentukan perubahan posisi dari motor servo.
Motor servo memiliki frekuensi sebesar 50 Hz sehingga pulsa yang dihasilkan yaitu setiap
20 ms. Lebar pulsa akan menentukan posisi motor servo yang dikehendaki seperti contoh
pada gambar 2.4 yaitu jika ingin menggerakan servo pada sudut 180o, maka lebar pulsa yang diperlukan yaitu 1ms. Artinya yaitu dengan memberikan pulsa high selama 1ms dan
kemudian diberikan pulsa low selama 19ms[1].
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
2.4.1.
Arsitektur AVR ATmega32
Mikrokontroler ATmega32 memiliki arsitektur sebagai berikut :
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 32 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)
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
[image:31.595.94.501.105.424.2]berikutnya diambil dari memori program [6].
Mikrokontroler ATmega32 memiliki konfigurasi Pin sebagai berikut:
a. VCC (power supply)
b. GND (ground)
c. Port A (PA7..PA0) Port A berfungsi sebagai input analog pada ADC (analog
digital converter). Port A juga berfungsi sebagai suatu Port I/O 8-bit dua arah.
d. Port B (PB7..PB0) Port B adalah suatu Port I/O 8-bit dua arah dengan resistor
internal pull-up (yang dipilih untuk beberapa bit).
e. Port C (PC7..PC0) Port C adalah suatu Port I/O 8-bit dua arah dengan resistor
internal pull-up (yang dipilih untuk beberapa bit).
f. Port D (PD7..PD0) Port D adalah suatu Port I/O 8-bit dua arah dengan resistor
internal pull-up (yang dipilih untuk beberapa bit).
g. RESET (Reset input)
h. XTAL1 (Input Oscillator)
i. XTAL2 (Output Oscillator)
j. AVCC adalah pin penyedia tegangan untuk Port A dan ADC.
k. AREF adalah pin referensi analog untuk ADC.
Port A berfungsi sebagai input analog pada A/D Konverter (ADC) 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.9 [7].
T = R x C (2.9)
2.4.3.
Organisasi Memori AVR ATmega32
Arsitektur AVR mempunyai dua ruang memori utama, yaitu ruang memori data
dan memori program. ATmega32 juga memiliki fitur EEPROM Memori untuk
penyimpanan data [6].
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
Memori Data
Memori data adalah memori RAM (Random Access Memory) yang digunakan
untuk keperluan program. Memori data terbagi menjadi empat bagian yaitu 32 General
Purphose Register adalah register khusus yang bertugas untuk membantu eksekusi
program oleh ALU (Arithmatich Logic Unit). Dalam istilah processor komputer sehari-hari
GPR dikenal sebagai “chace memory”. I/O register dan Aditional I/O register adalah
register yang difungsikan khusus untuk mengendalikan berbagai pheripheral dalam
mikrokontroler seperti pin, port, timer/counter [6].
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
[image:33.595.86.528.282.516.2]dikerjakan.
Table 2.1. Hubungan PIN dan Interupsi [6]
Jenis interupt PIN pada ATmega32
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 [6].
2.4.5.
Timer/Counter
Timer/Counter pada mikrokontroler AVR dapat digunakan untuk melakukan
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. ATmega32 memiliki tiga unit Timer/Counter yaitu Timer/Counter 0 (8
TIMER/COUNTER 0
Fitur-fitur yang dimiliki:
1. Satu buah unit Compare Counter (Unit ini akan meng-count dan meng-compare)
2. Clear timer pada saat compare match (Auto reload)
3. Phase Correct PWM yang bebas glitch
4. Frequency generator
5. External event counter
6. Prescaler clock hingga 10 bit
7. Membangkitkan interupsi saat timer overflow dan atau compare match
Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.2,
2.3, dan 2.4 berikut [6].
(2.2)
(2.3)
(2.4)
Keterangan :
f = frekuensi yang digunakan untuk eksekusi program
T = periode
N = prescaller yang digunakan
OCR = nilai cacahan pulsa
Pulse = lebar pulsa
Berikut merupakan mode-mode operasi timer [7]:
a) Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan
mengitung selang waktu.
b) 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. Hasil
perbandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal
PWM yang dikeluarkan pada OC0 seperti ditunjukan Gambar 2.6.
c) 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.
d) 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.
Gambar 2.7. Mode Fast PWM [6]
2.4.6.
Komunikasi Serial USART
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 dua
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
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
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:
USART I/O Data Register (UDR)
UDR merupakan register 8 bit yang terdiri dari dua 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 [6].
Gambar 2.8. Register UDR [6]
USART Control and Status Register A (UCSRA)
Penjelasan bit penyusun UCSRA [6]:
a) RXC (USART Receive Complete)
Bit ini akan set ketika data yang masuk ke dalam UDR belum dibaca dan akan
berlogika nol ketika sudah dibaca. Flag ini dapat digunakan untuk membangkitkan
interupsi RX jika diaktifkan dan akan 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
USART Control and Status Register B (UCSRB)
Gambar 2.10. Register UCSRB [6]
Penjelasan bit penyusun UCSRB [6]:
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
Tabel 2.2. Penentuan Ukuran Karakter [6]
UCSZ[2..0] Ukuran Karakter dalam bit
0 5
1 6
10 7
11 8
100-110 Tidak dipergunakan
111 9
g) RXB8 (Receive Data Bit 8)
Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit
ini harus dibaca dahulu sebelum membaca UDR.
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.
USART Control and Status Register C (UCSRC)
Gambar 2.11. Register UCSRC [6]
Penjelasan bit penyusun UCSRC [6]:
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)
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.
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.
LCD 16x2
LCD merupakan salah satu perangkat penampil yang sekarang ini banyak
digunakan. Kontruksi LCD yaitu memanfaatkan silikon atau galium dalam bentuk kristal
cair sebagai pemendar cahaya. Kelebihan LCD 16x2 yaitu [8] :
1. Dapat menampilkan karakter ASCII, sehingga dapat memudahkan untuk
membuat program tampilan.
2. Mudah dihubungkan dengan port I/O karena hanya menggunakan delapan bit data
dan tiga bit kontrol.
3. Ukuran modul yang proporsional.
4. Daya yang digunaka relatif kecil.
Operasi dasar pada LCD 16x2 terdiri dari empat, yaitu instruksi mengakses proses
internal, instruksi menulis data, instruksi membaca kondisi sibuk, dan instruksi membaca
data [8]. Operasi dasar LCD 16x2 dapat dilihat pada tabel 2.3.
Tabel 2.3. Operasi Dasar LCD 16x2 [8]
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.4. Konfigurasi Pin LCD 16x2 [8] Pin No. Keterangan Konfigurasi hubung
1 GND Ground
2 VCC Tegangan +5Vdc
3 VEE Ground
4 RS Kendali RS
5 RW Ground
6 E Kendali E/Enable
7 D0 Bit 0
8 D1 Bit 1
9 D2 Bit 2
10 D3 Bit 3
11 D4 Bit 4
12 D5 Bit 5
13 D6 Bit 6
14 D7 Bit 7
15 A Anoda (+5Vdc)
Tabel 2.5. Konfigurasi Setting LCD 16x2 [8] 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.6.
Regulator IC 78xx dan Transistor Penguat Arus
Pengatur tegangan (voltage regulator) berfungsi menyediakan suatu tegangan
keluaran dc tetap yang tidak dipengaruhi oleh perubahan tegangan masukan. Salah satu
tipe regulator tegangan tetap adalah 78xx. 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. Spesifikasi ic regulator seri 78xx dapat dilihat pada tabel 2.6.
Tabel 2.6. Karakteristik Regulator Tegangan ic 78xx [9]
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
Gambar 2.13. Rangkaian Umum Regulator 78xx [9]
Nilai komponen c1 dan c2 difungsikan sebagai filter capasitor yang bertujuan untuk
menghilangkan tegangan ripple agar tegangan keluaran menjadi lebih stabil. Untuk
mendapatkan nilai capasitor yang sesuai, dapat mengacu pada persamaan 2.5 dan 2.6 [9].
√ (2.5)
(2.6)
Komponen eksternal yang digunakan yaitu transistor 2N3055 karena kemampuan
arus maksimal adalah 15 A [10]. Untuk gambar rangkaian lengkap dengan ic regulator
dapat ditunjukan gambar 2.14.
Gambar 2.14. Rangkaian Catu Daya Dengan Penguat [10]
Dari gambar 2.14, maka diperleh persamaan-persamaan sebagai berikut [10] :
VB = Vreg + VD (2.7)
Tegangan keluaran rangkaian menjadi,
Jika VD VBE, maka
Vo = Vreg (2.9)
Tegangan diantara kolektor dan emittor transistor 2N3055 adalah,
VCE = VIN– VR1 (2.10)
Disipasi daya transistor NPN 2N3055 adalah,
PD = VCE x IC (2.11)
Untuk nilai penguatan arus diperoleh dengan persamaan dibawah ini [9] :
Ic = β IB (2.12)
Ie = (β+1) IB (2.13)
2.7.
Photodioda
Photodioda adalah dioda yang bekerja berdasarkan intensitas cahaya, jika
photodioda terkena cahaya maka photodioda bekerja seperti dioda pada umumnya, tetapi
jika tidak mendapat cahaya maka photodioda akan berperan seperti resistor dengan nilai
tahanan yang besar sehingga arus listrik tidak dapat mengalir.
Photodioda merupakan sensor cahaya semikonduktor yang dapat mengubah
besaran cahaya menjadi besaran listrik. Photodioda merupakan sebuah dioda dengan
sambungan p-n yang dipengaruhi cahaya dalam kerjanya. Cahaya yang dapat dideteksi
oleh photodioda ini mulai dari cahaya infra merah, cahaya tampak, ultra ungu sampai
dengan sinar-X.
Karena photodioda terbuat dari semikonduktor p-n junction maka cahaya yang
diserap oleh photodioda akan mengakibatkan terjadinya pergeseran foton yang akan
menghasilkan pasangan electron-hole dikedua sisi dari sambungan. Ketika
elektron-elektron yang dihasilkan itu masuk ke pita konduksi maka elektron-elektron-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 photodioda [9].
Photodioda digunakan sebagai penangkap gelombang cahaya yang dipancarkan
oleh infrared. Besarnya tegangan atau arus listrik yang dihasilkan oleh photodioda
Gambar 2.15. Simbol dan Bentuk Photodioda
Gambar 2.16. Respon Relatif Spektral Untuk Si, Ge, dan Selenium Dibandingkan Dengan
Mata Manusia.[9]
Grafik pada gambar 2.17 menunjukan bahwa arus maksimal pada sensor
photodioda adalah sebesar 800 µA, sehingga untuk penentuan nilai hambatan agar arus
sensor photodioda tidak terlalu besar yaitu [9]:
(2.14)
Sehingga nilai hambatan untuk sensor photodioda dengan asumsi bahwa Vcc = 5 Volt
dapat dilihat pada tabel 2.7.
Tabel 2.7. Hubungan Arus Dengan Hambatan
ARUS (µA) HAMBATAN KΩ 200 25 400 12,5 600 8,33 800 6,25
Rangkaian umum sensor photodioda dapat ditunjukan pada gambar 2.18.
Gambar 2.18. Rangkaian Sensor Photodioda
2.8.
Infrared
Infrared merupakan suatu komponen elektronika yang merupakan sumber cahaya
dengan panjang gelombang 750nm-1000nm dan arus maksimal sebesar 100 mA [8].
Aplikasi infrared biasa dijumpai pada modul sensor yang berhubungan dengan cahay
seperti photodioda dan photo transistor. Menurut gambar 2.19, infrared merupakan sumber
cahaya yang paling baik untuk sumber sensor cahaya. Penentuan nilai hambatan untuk
infrared dengan asumsi Vcc = 5 Volt yaitu :
sehingga, R =
= 50 Ω
Agar aman, maka digunakan resistor sebesar 100 Ω yang bertujuan untuk membuat
infra red tidak berlebihan arus.
2.9.
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.20 [11].
Gambar 2.20. Contoh Rangkaian Transistor Sebagai Saklar [11]
Transistor dapat digunakan sebagai saklar elektronika dengan membuat transistor
tersebut berada dalam kondisi cut-off (saklar terbuka, arus tidak mengalir) atau saturasi
kita dapat menghitung nilai masing-masing komponen agar transistor tersebut dapat
men-drive komponen lain yang membutuhkan arus yang besar [11].
IB(saturasi) = IC(saturasi)/βDC (2.15) Untuk memastikan bahwa transistor sudah saturasi, diperlukan setidaknya arus overdrive 4
sampai 10 kali dari IB(saturasi), sehingga [11]:
IB = (di isi angka 4 sampai 10) x IB(saturasi) (2.16)
Dengan diperolehnya IB, maka hambatan basis dapat dihitung dengan persamaan [11]:
RB = (Vin-VBE)/IB (2.17)
2.10.
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 dua macam relay berdasarkan tegangan
untuk menggerakan koilnya yaitu AC dan DC [8].
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 [8].
Gambar 2.21. Bentuk Fisik Relay [8]
2.11.
Webcam
Web camera atau biasa disingkat webcam adalah kamera video digital kecil yang
dihubungkan ke komputer melalui port USB atau serial. Fungsi webcam yang paling
populer saat ini yaitu untuk melakukan video conference melalui internet. Dalam
perkembangan selanjutnya, webcam tidak hanya difungsikan sebagai video conference
tetapi juga untuk home monitoring atau memantau rumah selama 24 jam [12]. Contoh
Gambar 2.22. Contoh Webcam [13]
2.12.
Benda Tiga Dimensi
Benda 3 dimensi merupakan benda yang memiliki ruang atau volume sehingga
benda akan tampak lebih nyata. Benda 3 dimensi memiliki ukuran panjang, lebar, dan
tinggi. Contoh benda 3 dimensi dapat dilihat pada gambar 2.23.
Gambar 2.23. Contoh Benda Tiga Dimensi [14]
2.13.
Pengolahan Citra Digital
Pengolahan citra atau Image Processing adalah suatu sistem dimana proses
dilakukan dengan masukan (input) berupa citra (image) dan hasilnya (output) juga berupa
citra (image). Pada awalnya pengolahan citra ini dilakukan untuk memperbaiki kualitas
citra, namun dengan berkembangnya dunia komputasi yang ditandai dengan semakin
komputer yang memungkinkan manusia dapat mengambil informasi dari suatu citra, maka
image processing tidak dapat dilepaskan dengan bidang computer vision [2].
Sebuah citra dapat didefinisikan sebagai fungsi dua dimensi f(x,y), dimana x dan y
adalah koordinat spasial dan amplitude dari f. Citra digital terdiri dari sejumlah elemen
tertentu, setiap elemen mempunyai lokasi dan nilai tertentu. Elemen–elemen ini disebut
picture element, image element, pels dan pixels. Sumber noise pada citra digital bisa terjadi
sejak pengambilan atau transmisi citra. Kinerja dari sensor citra atau kamera dipengaruhi
oleh banyak faktor seperti kondisi lingkungan selama pengambilan citra dengan kamera
webcam, level pencahayaan dan suhu sensor adalah faktor utama yang mempengaruhi
tingkat noise pada citra yang dihasilkan [15].
Gambar 2.24. Contoh Koordinat Citra Digital
2.14.
Pemrosesan Citra
2.14.1.
Citra Grayscale
Proses awal yang banyak dilakukan dalam image processing adalah mengubah citra
berwarna (citra RGB) menjadi citra grayscale, hal ini bertujuan untuk menyederhanakan
model citra tersebut karena citra berwarna terdiri dari tiga layer matrik yaitu Red- layer,
Green-layer dan Blue-layer. Sehingga untuk melakukan proses-proses selanjutnya tetap
harus memperhatikan tiga layer di tersebut. Bila setiap proses perhitungan dilakukan
menggunakan tiga layer, berarti dilakukan tiga perhitungan yang sama, sehingga konsep
itu diubah dengan mengubah tiga layer di atas menjadi satu layer matrik grayscale dan
hasilnya adalah citra grayscale. Dalam citra ini tidak ada lagi warna, yang ada adalah
Citra grayscale merupakan citra digital yang hanya memiliki suatu nilai kanal pada
setiap piksel. Warna yang dimiliki adalah keabuan, hitam dan putih. Citra hitam putih
mempunyai nilai kuantisasi derajat keabuan sampai tingkatan ke 256 artinya mempunyai
skala abu dari 0 sampai 255 atau selang [0 255]. Citra ini membutuhkan 1 byte (8 bit)
untuk representasi setiap pikselnya (256 =28) [3]. Gambar 2.25 menunjukkan contoh citra
skala keabuan [15].
Gambar 2.25. Citra Skala Keabuan [16]
2.14.2.
Cropping
Cropping citra merupakan salah satu langkah dalam pengolahan citra yang
dilakukan untuk memotong satu bagian dari citra tertentu untuk memperoleh bagian yang
diinginkan untuk diolah. Hal ini dilakukan untuk mendapatkan data yang tepat sehingga
memudahkan dalam proses pengolahan data.
2.14.3.
Citra Biner
Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai piksel
yaitu hitam dan putih. Citra biner juga bisa disebut sebagai citra B&W (black and white)
atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap piksel dari citra
biner. [15]
Citra biner sering kali muncul sebagai hasil dari proses pengolahan seperti
segmentasi, pengambangan, morfologi, ataupun dithering. Contoh citra biner dapat dilihat
pada gambar 2.26.
2.14.4.
Resizing
Rezising citra adalah mengubah besarnya ukuran citra dalam piksel. Tampilan citra
tidak ada yang berubah tetapi hanya ukuran pixel dan matriksnya yang dirubah. Ukuan
resizing menentukan kualitas gambar yang akan diproses.
2.15.
Metode Pengenalan Benda
Untuk dapat mengenali suatu citra atau gambar, maka diperlukan suatu metode
yang digunakan untuk melihat perbedaan data atau nilai yang dimiliki oleh masing-masing
citra atau gambar yang akan dikenali. Metode yang digunakan yaitu dengan melihat data
nilai citra biner dari masing-masing bentuk benda.
Langkah untuk mengenalinya yaitu dengan terlebih dahulu mengamati dan melihat
nilai citra biner dari masing-masing citra yang akan dikenali. Setelah mendapatkan data
yang diinginkan, maka dibuat sebuat range data yang merepresentasikan citra dari
masing-masing benda yang akan dikenali. Gambar 2.27 akan menjelaskan penerapan citra biner
saat pengenalan citra digital.
Gambar 2.27. Aplikasi Citra Biner
Dari gambar 2.27 dapat diperhatikan bahwa huruf “Y” memiliki jumlah angka 0
sebanyak 10 buah.