Anda di halaman 1dari 135

PLAGIAT

PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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
2015

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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
2015

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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
YOGYAKARTA
2015
ii

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

HALAMAN PERSETUJUAN
TUGAS AKHIR

APLIKASI PENGENALANI OBJEK


UT{TUK LENGAN ROBOT PEMISAH BENDA
BERDASARKAN BENTUK BENDA

(OBJECT IDE
ROBOTIC

IRVAN HASAN
NIM : 115114018

Pembimbing

r
/1 ,t^ .rv:?-

ranggar,

Dr. Linggo Sumarno

ilt

ru

/-(f

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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. Prima Ari Setiyani, M. T.

Sekertaris

Dr. Linggo Sumarno

Anggota

Dr.Iswanjono
Yogyakmta. 21

Afichrr-

Fakultas Sains dan Teknologi


iversitas Sanata Dharma

iv

ZotS

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

PERNYATAAI\ KEASLTAI\ KARYA


Saya menyatakan dengan sesungguhnya bahwa tugas akhir yatrg berjudul

*APLIKASI PENGENALATI OBJEK UNTUK LENGAI[ ROBOT PEMISAH


BENDA 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

Irvan Hasan

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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
Yogyakarta

vi

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

HALAMAN PERNYATAAN PERSETUJUAI\


PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS
Yang bertandatangan di bawah ini, saya mahasiswa Universitas Sanata Dharma

Nama

IRVAN HASAN

NomorMahasiswa : 115114018

Demi 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

tanpa perlu meminta

ijin dari

di internet atau media lain untuk kepentingan akademis

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

vii

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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.
Kata kunci: Image Processing, Lengan Robot, Metode Citra Biner.

viii

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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.
Keywords: Image Processing, Robotic Arm, Binary Image Method.

ix

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

KATA PENGANTAR
Puji dan Syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala berkat
dan rahmat-Nya, sehingga penulis dapat menyelesaikan tugas akhir ini dengan baik.
Penulis menyadari bahwa banyak pihak yang telah memberikan doa, dukungan, perhatian
serta bantuan kepada penulis sehingga dapat menyelesaikan tugas akhir ini. Oleh karena
itu, penulis mengucapkan terima kasih yang sebesar-besarnya kepada:
1) Paulina Heruningsih Prima Rosa, S.Si., M.Sc selaku dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
2) Petrus Setyo Prabowo, S.T.,M.T., Ketua Program Studi Teknik Elektro Universitas
Sanata Dharma Yogyakarta.
3) Theresia Prima Ari Setiyani S.T., M.T selaku dosen pembimbing akademik yang
telah mendampingi dan membimbing penulis selama perkuliahan.
4) Dr. Linggo Sumarno, dosen pembimbing yang dengan penuh pengertian, sabar dan
ketulusan hati memberi bimbingan, kritik, saran, serta motivasi dalam penulisan
tugas akhir ini.
5) Ibu 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.
10) Staff sekretariat Teknik Elektro yang telah membantu dalam hal administrasi.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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 banyak

kekurangan, 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

xi

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR ISI
HALAMAN JUDUL ............................................................................................... i
HALAMAN PERSETUJUAN ............................................................................... iii
HALAMAN PENGESAHAN ................................................................................ iv
PERNYATAAN KEASLIAN KARYA ................................................................. v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ..................................... vi
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA
ILMIAH UNTUK KEPENTINGAN AKADEMIS ............................................. vii
INTISARI ................................................................................................................ viii
ABSTRACT ............................................................................................................ ix
KATA PENGANTAR ............................................................................................ x
DAFTAR ISI ........................................................................................................... xii
DAFTAR 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
2.6. Regulator ic 78xx dan Transistor Penguat Arus .......................................... 20

xii

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
3.4.5. Flowchart Menghitung Jumlah Benda yang telah Terdeteksi ......... 54

xiii

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
Lampiran ................................................................................................................. L1

xiv

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
Tabel 4.5. Pemberian Nilai OCR ............................................................................ 72

xv

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
Gambar 3.4. Komponen 2 ...................................................................................... 33

xvi

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
Gambar 3.32. Langkah Keempat exe File ................................................................ 53

xvii

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
Gambar 4.31. Pengujian Benda Balok ..................................................................... 64

xviii

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
Gambar 4.50. Listing Program Pengenalan Bentuk Benda ..................................... 79

xix

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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
kemudian meletakan pada tempat yang telah ditentukan.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
software MATLAB 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 laptop dengan ATmega32 menggunakan komunikasi serial USART
yang dihubungkan dengan modul yang sudah tersedia di pasaran yaitu modul USB to
TTL converter.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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
tingkat keberhasilan lengan robot saat memisahkan benda.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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
telah dilakukan.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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.

Pergelangan (wrist)
Lengan (arm)

Dasar (base)

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-

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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.
Data dalam memori dapat di keluarkan atau di edit sesuai dengan yang dibutuhkan.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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
berhenti (kontrol posisi) [1].

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Motor servo terdiri dari dua macam, yaitu motor servo standar dan motor servo
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 VegardsRiscProcessor) 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].

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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 inline 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]

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

10

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 8bit 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=RxC

(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
boot program dan bagian aplikasi program [6].

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

11

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
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
bit), Timer/Counter 1 (16 bit), dan Timer/Counter 2 (8 bit) [7].

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

12

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

= periode

= 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.

Gambar 2.6. Mode Phase Correct PWM [6]

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

13

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
hampir sama, data dikirim disertai informasi sinkronisasi [6].

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

14

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)

Gambar 2.9. Register UCSRA [6]

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

15

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
oleh USART tidak mengandung informasi alamat akan diabaikan.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

16

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
untuk memilih tipe lebar data bit yang digunakan.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

17

Tabel 2.2. Penentuan Ukuran Karakter [6]


UCSZ[2..0]
0
1
10
11
100-110
111

Ukuran Karakter dalam


bit
5
6
7
8
Tidak dipergunakan
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[10] (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.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
e)

18

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.

Gambar 2.12. Contoh LCD 16x2

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 2.3. Operasi Dasar LCD 16x2 [8]
Operasi

RS

R/W

Input instruksi ke LCD

Membaca status flag (DB7) dan alamat counter (DB0-DB6)

Menulis data

Membaca data

Tabel 2.4. Konfigurasi Pin LCD 16x2 [8]


Pin No. Keterangan
Konfigurasi hubung
1

GND

Ground

VCC

Tegangan +5Vdc

VEE

Ground

RS

Kendali RS

RW

Ground

Kendali E/Enable

D0

Bit 0

D1

Bit 1

D2

Bit 2

10

D3

Bit 3

11

D4

Bit 4

12

D5

Bit 5

13

D6

Bit 6

14

D7

Bit 7

15

Anoda (+5Vdc)

16

Katoda (Ground)

19

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

20

Tabel 2.5. Konfigurasi Setting LCD 16x2 [8]


Pin
Bilangan biner
Keterangan
0

Inisialisasi

Data

Tulis LCD/W (Write)

Baca LCD/R (Read)

Pintu data terbuka

Pintu data tertutup

RS

RW

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]
VIN (Volt)
Type

VOUT (Volt)

7805
7806
7808
7810
7812
7815
7818
7824

5
6
8
10
12
15
18
24

Min

Maks

7,3
8,3
10,5
12,5
14,6
17,7
21
27,1

20
21
23
25
27
30
33
38

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

21

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,


Vo = Vreg VBE

(2.8)

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

22

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 elektronelektron 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 photodioda [9].
Photodioda digunakan sebagai penangkap gelombang cahaya yang dipancarkan
oleh infrared. Besarnya tegangan atau arus listrik yang dihasilkan oleh photodioda
tergantung besar kecilnya radiasi yang dipancarkan oleh infrared.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

23

Gambar 2.15. Simbol dan Bentuk Photodioda

Gambar 2.16. Respon Relatif Spektral Untuk Si, Ge, dan Selenium Dibandingkan Dengan
Mata Manusia.[9]

Gambar 2.17. Hubungan I Dengan Fc Pada Photodioda[9]

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

24

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)
200
400
600
800

HAMBATAN (K)
25
12,5
8,33
6,25

Rangkaian umum sensor photodioda dapat ditunjukan pada gambar 2.18.

Gambar 2.18. Rangkaian Sensor Photodioda

Gambar 2.19. Aplikasi Sensor Photodioda [9]

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

25

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
(saklar tertutup, sehingga arus mengalir). Dengan menggunakan persamaan dibawah, maka

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

26

kita dapat menghitung nilai masing-masing komponen agar transistor tersebut dapat mendrive 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
webcam ditunjukan gambar 2.22 yaitu webcam Logitech c270h.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

27

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
meningkatnya kapasitas dan kecepatan proses komputer, serta munculnya ilmu-ilmu

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

28

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. Elemenelemen 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
derajat keabuan yang memiliki nilai 0-255.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

29

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.

Gambar 2.26. Contoh Citra Biner

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

30

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 masingmasing 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. Angka 0 tersebut membentuk huruf Y sehingga dapat disimpulkan
bahwa warna hitam merepresentasikan nilai 0 dan putih merepresentasikan nilai 1.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

BAB III
PERANCANGAN PENELITIAN
Dalam bab III ini akan dibahas mengenai perancangan perangkat keras dan
perancangan perangkat lunak. Pembahasan ini meliputi :
a) Proses kerja dan mekanisme lengan robot
b) Perancangan mekanik lengan robot
c) Perancangan perangkat keras (hardware)
d) Perancangan perangkat lunak (software)

3.1. Proses Kerja dan Mekanisme Lengan Robot


Pada pembuatan tugas akhir ini, akan dibuat sebuah lengan robot yang dapat
mengenali empat macam benda dan meletakan pada suatu tempat yang telah ditentukan.
Komponen yang digunakan dalam pembuatan tugas akhir ini meliputi webcam untuk
mendeteksi dan mengenali benda, aktuator berupa motor servo standar untuk menggerakan
lengan robot, conveyor untuk membawa benda, regulator sebagai sumber tegangan, USB to
TTL converter, dan rangkaian minimum system ATmega32.
Cara kerja lengan robot yaitu mula-mula benda diletakan pada conveyor yang akan
membawa benda mendekati webcam. Webcam akan mendeteksi benda, kemudian akan
diproses oleh laptop melalui software matlab untuk mengenali bentuk benda. Setelah
objek dikenali, maka laptop melalui MATLAB akan mengirimkan kode benda yang
dikomunikasikan secara serial kepada minimum system ATmega32 menggunakan modul
USB to TTL untuk menggerakan motor servo pada lengan robot. Lcd 16 x 2 digunakan
sebagai penampil bentuk benda yang terdeteksi oleh webcam. Gambar 3.1 merupakan
diagram blok sistem.

31

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

32

Gambar 3.1. Blok Diagram Sistem

3.2. Perancangan Mekanik Lengan Robot


Pada tahap ini dilakukan perancangan mekanik dari robot tersebut, antara lain
mendesain ukuran robot, penggunaan bahan dasar untuk lengan robot yaitu akrilik setebal
3mm. Pendesainan robot menggunakan software Google SketchUp. Lengan robot terdiri
dari lima bagian utama yaitu poros, gripper, komponen 1, komponen 2, komponen 3.
Gambar 3.2 menunjukan anatomi lengan robot secara keseluruhan.
Berikut adalah gambar detail dari bagian-bagian lengan robot, yaitu: komponen 1
ditunjukan Gambar 3.3, komponen 2 ditunjukan Gambar 3.4, komponen 3 ditunjukan
Gambar 3.5, gripper tampak atas ditunjukan Gambar 3.6.

Gambar 3.2. Anatomi Lengan Robot

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Gambar 3.3. Komponen 1

Gambar 3.4. Komponen 2

Gambar 3.5. Komponen 3

Gambar 3.6. Gripper Tampak Atas

33

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

34

Gambar 3.7. Peletakan Seluruh Komponen

3.3.

Perancangan Perangkat Keras (hardware)


Ada beberapa komponen dalam perancangan subsistem perangkat keras lengan

robot pemisah benda, diantaranya yaitu :


a) Minimum System ATmega32 + LCD 16x2
b) Motor servo
c) Regulator ic 7805 + penguat arus
d) Webcam Logitech seri C270h
e) Sensor photodioda
f) Benda

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 serta sebagai pengolah data serial yang dikirimkan dari
komputer melalui USB to TTL converter. Mikrokontroler membutuhkan minimum system
yang terdiri dari rangkaian eksternal yaitu rangkaian osilator dan rangkaian reset.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

35

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.8 menunjukan rangkaian osilator.

Gambar 3.8. Rangkaian Osilator ATmega32 [6]


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.9 adalah rangkaian reset untuk ATmega32.

Gambar 3.9. Rangkaian Reset ATmega32 [6]


Pada gambar 3.9 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 rangkaia 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 benar.
Rangkaian LCD dapat dilihat pada gambar 3.10. Penentuan konfigurasi kaki LCD menuju

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

36

mikrokontroler ditentukan dengan melihat pada software compiler CodeVisionAVR seperti


pada Gambar 3.11.

Gambar 3.10. Skematik LCD 16x2

Gambar 3.11. Setting Port LCD

3.3.2. Perhitungan Torsi Motor Servo


Untuk menghitung besar torsi pada masing-masing motor servo, digunaka rumus [4] :

Dengan :
F = Gaya (N)

r = jari-jari link (m)

m = Masa benda (kg)


2

g = Grafitasi (m/s )

= sudut (derajat)
= Torsi (kg-cm)

Gambar 3.12 merupakan gambar kontruksi lengan robot untuk menghitung besar torsi
masing-masing motor servo. Tabel 3.1 merupakan tabel perhitungan torsi motor servo.

Gambar 3.12. Konstruksi Lengan Robot

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Tabel 3.1. Perhitungan Torsi Motor Servo


TORSI
Motor servo 1 (m = 190 gr)
F=mxg
= 0,190 x 9,8
= 1,862 N
Ket : servo 1 bergerak 0o, 45o , 135o, dan 180o
Ket: 1 N-m = 10.1971621298 Kg-cm

Sudut 0o (r = 370 mm)

= 1,862 x 0,370 x sin(0)


= 0 N-m = 0 kg-cm

Sudut 45o (r = 370 mm)

= 1,862 x 0,370 x sin(45)


= 0,4871 N-m = 4,967 kg-cm

Sudut 135o (r = 370 mm)

= 1,862 x 0,370 x sin(135)


= 0,4871 N-m = 4,967 kg-cm

Sudut 180o (r = 370 mm)

= 1,862 x 0,370 x sin(180)


= 0 N-m = 0 kg-cm
Motor servo 2 (m = 130 gr)
F=mxg
= 0,130 x 9,8
= 1,274 N
Ket : servo 2 bergerak 700 dan 110o

Sudut 70o (r = 370 mm)

= 1,274 x 0,370 x sin(70)


= 0,4429 N-m = 4.5168 kg-cm

Sudut 110o (r = 370 mm)

= 1,274 x 0,370 x sin(110)


= 0,443 N-m = 4.517 kg-cm

Motor servo 3 (m = 70 gr)


F=mxg
= 0,070 x 9,8

Sudut 90o (r = 230 mm)

= 0,686 x 0,230 x sin(90)


= 0,15778 N-m = 1.6089 kg-cm

= 0,686 N
Ket : servo 3 bergerak 90o
Motor servo 4 (m = 50 gr)
F=mxg
= 0,050 x 9,8
= 0,49 N
Ket : servo 4 bergerak 0o dan 50o

Sudut 0o (r = 60 mm)

= 0,49 x 0,060 x sin(0)


= 0 N-m = 0 kg-cm

Sudut 50o (r = 60 mm)

= 0,49 x 0,060 x sin(50)


= 0,022 N-m = 0.224 kg-cm

37

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

38

3.3.3. Motor Servo


Motor servo digunakan untuk menggerakan lengan robot. Motor servo yang
digunakan yaitu Towerpro MG946R untuk servo 1, servo 2, dan servo 3 sebanyak tiga
buah, dan Towerpro SG90 untuk servo 4 sebanyak satu buah. Alasan menggunakan servo
Towerpro MG946R yaitu karena memiliki torsi yang kuat mencapai 12 kg-cm dan
harganya tidak begitu mahal, sedangkan servo Towerpro SG90 digunakan karena pada
bagian gripper tidak membutuhkan torsi yang besar yaitu berdasarkan perhitungan hanya
0,299 kg-cm sehingga servo Towerpro SG90 dapat digunakan untuk menggerakan gripper.
Spesifikasi servo Towerpro MG946R dan spesifikasi servo Towerpro SG90 dapat dilihat
pada lampiran.
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.13 merupakan
rangkaian pin untuk motor servo.

Gambar 3.13. Rangkaian Pin Motor Servo


Digunakan interrupt timer sebagai pembangkit PWM. 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 microcontroller, 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

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

39

servo selama T= 20ms adalah nilai OCR, yang merupakan cacahan pulsa selama 1ms
sampai 2ms. Berikut perhitungan overflow interrupt sebagai pembangkit PWM untuk
mengatur sudut putar motor servo.
Frekuensi crystal yang digunakan yaitu 11,059200 MHz, sehingga untuk
mendapatkan periode dari frekuensi tersebut digunakan rumus :

= (1/11059200)
= 0,090422 x 10-6 s.

Dengan menggunakan timer0/8bit(256) dan nilai prescaler 1 sebagai pengatur


kecepatan clock maka timer overflow yang dihasilkan (0,090422 x 10-6 ) x 256 x 1 =
23,148 x 10-6. Sehingga pemberian nilai untuk membuat interrupt dapat mencacah selama
20ms yaitu (20ms/23,148x10-6 ) = 864. Tabel 3.2 menunjukan pemberian nilai OCR untuk
mengontrol pergerakan motor servo secara umum. Dan Gambar 3.14 menunjukan lebar
pulsa motor servo. Rumus yang digunakan untuk mendapatkan nilai OCR yaitu :

Tabel 3.2. Perhitungan Nilai OCR


NILAI OCR
SUDUT

LEBAR PULSA

0o

1 ms

OCR =

= 43,20

90o

1,5 ms

OCR =

= 64,8

180o

2 ms

OCR =

= 86,40

Gambar 3.14. Lebar Pulsa Motor Servo [5]

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

40

3.3.4. Regulator ic 7805 dan Penguat Arus


Pada pembuatan tugas akhir ini, regulator digunakan sebagai pemberi daya pada
motor servo, minimum system ATmega32, conveyor, sensor photodioda. Regulator terdiri
dari ic 7805, 2N3055, kapasitor, dan diode. Sumber yang digunakan untuk regulator yaitu
menggunakan adaptor switching yang telah tersedia di pasaran dengan spesifikasi keluaran
tegangan 19Vdc dan arus 4A.
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 ic 7805 yang memiliki tegangan keluaran sebesar 5
volt menjadi lebih besar. Tegangan 5 volt merupakan tegangan kerja pada masing-masing
servo yaitu kurang lebih 4 volt-7,2 volt. Komponen yang digunakan pada gambar 3.15
mengacu pada landasan teori [10].

Gambar 3.15. Rangkaian Regulator 7805 Dengan Penguatan Arus

3.3.5. Webcam
Webcam yang digunakan adalah webcam Logitech seri C270h karena output
keluaran gambar merupakan gambar RBG (Red Green Blue). 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. Spesifikasi webcam dapat dilihat pada lampiran.

3.3.6. Sensor Photodioda dan Transistor Sebagai Saklar


Sensor photodioda digunakan untuk mendeteksi benda yang diletakan pada
conveyor. Cara kerjanya yaitu jika sensor photodioda terhalang oleh benda atau mendeteksi

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

41

benda, maka motor pada conveyor akan berhenti. Rangkaian sensor photodioda ditunjukan
oleh Gambar 3.16.

Gambar 3.16. Rangkaian Sensor Photodioda


Dengan nilai vcc sebesar 5 volt dan arus maksimal infrared 100mA, maka
hambatan dapat dihitung menggunakan rumus :
sehingga,
R=

= 50

Karena nilai resistor sebesar 50 tidak tersedia di pasaran dan agar infrared tidak
kelebihan arus, maka digunakan resistor sebesar 100 . Sedangkan untuk nilai hambatan
sensor photodioda menggunakan resistor yang mengacu pada gambar 2.17 dan persamaan
2.14 sehingga diperoleh nilai hambatan antara 6,25 K 25 K. Pada perancangan ini
menggunakan resistor 20 K untuk sensor photodioda.
Output mikrokontroller ATmega32 memiliki arus yang kecil sehingga tidak bisa
digunakan untuk mengendalikan motor dc yang membutuhkan arus cukup besar. Oleh
karena itu dibutuhkan rangkaian external agar keluaran dari mikrokontroller dapat
mengendalikan motor dc. Rangkaian yang digunakan yaitu berupa rangkaian transistor
yang difungsikan sebagai saklar menggunakan transistor 2N3904 dan relay. Gambar 3.17
menunjukan rangkaian transistor sebagai saklar beserta relay. Alasan menggunakan
transistor 2N3904 yaitu karena transistor 2N3904 merupakan transistor switching dan nilai
R2 menggunakan 10 K didapat dari datasheet yang terlampir. Sedangkan dioda yang
tersusun secara paralel dengan relay bertujuan untuk mencegah terjadinya arus balik pada
rangkaian yang bisa merusak gulungan relay (koil).

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

42

Gambar 3.17. Rangkaian Transistor Sebagai Saklar dan Relay

3.3.7. Benda Tiga Dimensi


Benda yang dapat dikenali oleh webcam yaitu kubus, balok, tabung, dan bola.
Desain benda menggunakan google SchetchUp dapat dilihat pada Gambar 3.18. Ukuran
masing-masing benda yaitu :
1. Kubus

: 5cm x 5cm x 5cm (p x l x t)

2. Balok

: 7cm x 5cm x 5cm (p x l x t )

3. Tabung

: 5cm x 5cm (diameter x tinggi)

4. Bola

: 5cm (diameter)

Gambar 3.18. Benda Tiga Dimensi

3.4. Perancangan Perangkat Lunak (Software)


Pada perancangan perangkat lunak ini akan dibahas mengenai program kendali
lengan robot secara keseluruhan diantaranya :
1) Flowchart program interrupt lengan robot

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

43

2) Flowchart program pengenalan bentuk benda


3) Perancangan GUI pada MATLAB
4) Perubahan m-file menjadi exe file
5) Flowchart menghitung jumlah benda yang telah terdeteksi

Pada pembuatan flowchart program interrupt lengan robot akan dibahas dan
dipaparkan mengenai cara menggerakan motor servo agar memiliki sudut sesuai dengan
apa yang diinginkan. Pada pembuatan flowchart ini digunakan software CodeVision AVR
yang merupakan suatu perangkat lunak untuk mem-program ic keluarga AVR
menggunakan bahasa c. Flowchart yang akan dibuat yaitu flowchart lengan roobot siaga,
flowchart lengan robot mengambil benda, flowchart lengan robot meletakan benda saat
benda kubus, flowchart lengan robot meletakan benda saat benda balok, flowchart lengan
robot meletakan benda saat benda tabung, dan flowchart lengan robot meletakan benda
saat benda bola.
Pada pembuatan flowchart program pengenalan bentuk benda akan dibahas dan
dipaparkan mengenai pembuatan program image processing dengan menggunakan metode
citra biner dengan software MATLAB.
Secara keseluruhan sistem kerja pada perancangan tugas akhir ini dapat ditunjukan
flowchart pada gambar 3.19. Cara kerja dari lengan robot pemisah benda ini yaitu mulamula benda diletakan pada conveyor. Ketika benda dideteksi oleh sensor photodioda yang
artinya benda berada dibawah webcam, maka mikrokontroler ATmega32 akan
mengirimkan suatu karakter secara serial kepada laptop untuk menjalankan program image
processing agar benda dapat dikenali. Setelah objek dikenali, maka laptop melalui software
MATLAB akan mengirimkan karakter secara serial kepada minimum system ATmega32
untuk menggerakan motor servo pada lengan robot. Lengan robot akan mengambil benda
tersebut dan meletakan benda ke tempat yang sudah disediakan sesuai bentuk benda.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

44

Gambar 3.19. Flowchart Keseluruhan Sistem

3.4.1. Flowchart Program Interrupt Lengan Robot


Untuk mengendalikan motor servo, maka dibutuhkan suatu sinyal PWM agar sudut
motor servo dapat diatur sedemikian rupa. Karena keterbatasan pin keluaran OCR pada

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

45

ATmega32, maka dimanfaatkan suatu timer yang digunakan untuk mencacah pulsa
tersebut sehingga seluruh PORT pada ATmega32 dapat berfungsi seperti PWM yaitu
dengan menggunakan perintah interrupt. Gambar 3.20 merupakan flowchart penulisan
program menggunakan interrupt saat lengan robot pada posisi siaga.
Untuk mendapatkan nilai sudut motor servo, penulis menggunakan lengan robot
yang telah dibuat sebelumnya. Kemudian dari lengan robot tersebut, dicari nilai masingmasing sudut motor servo menggunakan busur derajat pada saat lengan robot siaga,
lengan robot mengambil benda, lengan robot meletakan benda saat benda kubus, lengan
robot meletakan benda saat benda balok, lengan robot meletakan benda saat benda tabung,
dan lengan robot meletakan benda saat benda bola. Pemberian sudut dapat dilihat pada
tabel 3.3.
Tabel 3.3. Pemberian sudut motor servo
Posisi
Siaga
Ambil Benda

Sudut
Servo 1 Servo 2 Servo 3
90
145
140
90
75
100
Meletakan Benda

Servo 4
90
160

Benda Kubus

145

130

90

Benda Balok

45

80

80

90

Benda Tabung

135

80

80

90

Benda Bola

180

145

130

90

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Gambar 3.20. Flowchart Program Interrupt Lengan Robot Saat Posisi Siaga

Gambar 3.21. Flowchart Program Interrupt Lengan Robot Saat Mengambil Benda

46

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

47

Gambar 3.22. Flowchart Program Interrupt Lengan Robot Saat Meletakan Benda Kubus

Gambar 3.23. Flowchart Program Interrupt Lengan Robot Saat Meletakan Benda Balok

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

48

Gambar 3.24. Flowchart Program Interrupt Lengan Robot Saat Meletakan Benda Tabung

Gambar 3.25. Flowchart Program Interrupt Lengan Robot Saat Meletakan Benda Bola

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

49

3.4.2. Flowchart Program Pengenalan Bentuk Benda Pada MATLAB


Program image processing diproses oleh software MATLAB. Cara kerja proses
secara keseluruhan yaitu mula-mula webcam harus dikenali terlebih dahulu oleh software
MATLAB. Setelah dikenali maka langkah selanjutnya yaitu mengambil gambar RGB
benda yang akan dikenali dan menonaktifkan webcam. Ketika gambar telah di capture,
maka langkah selanjutnya yaitu merubah gambar RGB tersebut menjadi gambar grayscale
agar gambar lebih mudah untuk diproses. Langkah selanjutnya yaitu proses croping
(pemotongan), 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 yaitu mengubah citra grayscale menjadi citra
biner agar bentuk benda dapat dikenali sesuai dengan yang diinginkan. Setelah itu
kemudian merubah ukuran piksel gambar menjadi lebih rendah. Hal ini berfungsi untuk
merubah ukuran matrik gambar agar mudah untuk diamati perbedaan antar masing-masing
gambar yang akan dikenali. Matrik yang telah diubah ukurannya kemudian 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 nilai data biner.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

50

Gambar 3.26. Flowchart Pengenalan Bentuk Benda Pada MATLAB


3.4.3. Perancangan GUI MATLAB
Tujuan pembuatan GUI (Graphical User Interface) yaitu agar mempermudah
dalam pengawasan program yang sedang terjadi atau dieksekusi. GUI memiliki peran yang
sangat baik karena dengan adanya GUI, pengguna akan dapat melihat apa yang sedang
terjadi didalam program seperti pemrosesan data dan lain-lain. Perancangan GUI yang
akan dibuat dapat ditunjukan pada gambar 3.27.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

51

Gambar 3.27. Perancangan GUI pada MATLAB


3.4.4. Perubahan m-file Menjadi exe file
Perubahan m-file menjadi exe file yaitu bertujuan agar file yang telah dibuat mudah
di eksekusi pada perangkat komputer lain yang tidak memiliki software MATLAB.
Langkah perubahannya yaitu:
1.

Buka aplikasi MATLAB kemudian ketik deploytool pada bagian command window
kemudian tekan enter. Seperti ditunjukan pada gambar 3.28.

2.

Akan muncul jendela deployment project seperti ditunjukan pada gambar 3.29,
kemudian pilih windows standalone application dan beri nama file sesuai dengan
keinginan serta direktori yang akan dituju lalu ok.

3.

Setelah proses tersebut akan muncul jendela Window Standalone Application. Pada
bagian Build terdapat [Add Main File] yang berfungsi untuk memasukan file
utama dalambentuk mfile. Kemudian klik [Add files/directories] untuk
menambahkan file-file pendukung yang dibutuhkan seperti file figure, database,
fungsi ekternal dan lain-lain yang ditunjukan pada gambar 3.30. Setelah seluruh file
tersebut telah dimasukan kedalam satu project, maka klik tab package seperti pada

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

52

gambar 3.30. selanjutnya klik [add MCR] kemudian akan muncul pilihan seperti
ditunjukan pada gambar 3.31 lalu pilih Embed the MCR in the package akan muncul
MCRinstaller.exe seperti ditunjukan gambar 4. langkah selanjutnya yaitu klik build
the project.
4.

Tunggu sampai proses compile selesai seperti pada gambar 3.32. Jika telah selesai
akan muncul jendela deployment tool output seperti pada gambar 3.33.

Gambar 3.28. Langkah Pertama exe File

Gambar 3.29. Langkah Kedua exe File

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Gambar 3.30. Langkah Ketiga exe File

Gambar 3.31. (Lanjutan) Langkah Ketiga exe File

Gambar 3.32. Langkah Keempat exe File

53

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

54

Gamba 3.33. (Lanjutan) Langkah Keempat exe File


Setelah seluruh langkah diatas telah selesai dilakukan, maka selanjutnya copy file
MCRinstaller.exe yang terdapat pada keterangan dibawah ini ke file direktori tempat
aplikasi yang telah dibuat sebelumnya.
C:\ProgramFiles\MATLAB\R2012a\toolbox\compiler\deploy\win32\MCRInstaller.exe
Untuk menjalankan aplikasi yang telah dibuat pada komputer lain yang tidak terinstal
MATLAB, maka pertama-tama harus menginstal terlebih dahulu file MCRinstaller.exe
sebelum menjalankan aplikasi yang telah dibuat. Setelah proses instalasi selesai, maka
aplikasi bisa dibuka dan berfungsi dengan baik.
3.4.5. Flowchart Menghitung Jumlah Benda yang Telah Terdeteksi
Pembuatan flowchart ini bertujuan agar user atau pengguna dapat mengetahui
berapa jumlah benda yang telah terdeteksi dan dipindahkan oleh lengan robot. Cara
kerjanya yaitu jika MATLAB telah mengenali benda yang dimaksud, maka akan
mengirimkan sebuah karakter secara serial kepada mikrokontroller ATmega32. Setelah itu
akan diproses oleh mikrokontroller agar setiap ada karakter yang diterima akan dikenali,
maksud dari karakter tersebut yakni balok, kubus, tabung, dan bola. Cara melihat berapa
jumlah benda yang telah dideteksi yaitu dengan menekan sebuah tombol yang telah
disediakan untuk menampilkan jumlah masing-masing benda yang telah dideteksi pada

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

55

LCD 16x2. Gambar 3.34 merupakan flowchart menghitung jumlah benda yang telah
terdeteksi.

Gambar 3.34. Flowchart Menghitung Jumlah Benda yang Telah Terdeteksi

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

BAB IV
HASIL PENGAMATAN DAN PEMBAHASAN
Pada bab ini akan dibahas mengenai hasil pengamatan dari lengan robot sebagai
pemisah barang berdasarkan bentuk benda. Hasil pengamatan berupa data sudut motor
servo, data pengenalan bentuk benda berdasarkan nilai citra biner, tingkat keberhasilan
pengenalan objek, dan tingkat keberhasilan lengan robot ketika mengambil dan
memindahkan benda ke tempat yang telah disiapkan berdasarkan masing-masing bentuk.

4.1. Bentuk Fisik dan Sistem Kerja Lengan Robot


Perangkat keras lengan robot terdiri atas conveyor yang dapat ditunjukan pada
gambar 4.1, minimum system ATmega32 yang telah dilengkapi dengan LCD 16x2 dan
port untuk motor servo yang ditunjukan pada gambar 4.2, regulator sebagai penguat arus
yang dapat ditunjukan pada gambar 4.3, benda ditunjukan gambar 4.4, lengan robot
ditunjukan pada gambar 4.5, tempat peletakan benda ditunjukan gambar 4.6.

Gambar 4.1. Conveyor

Gambar 4.2. Minimum System

Gambar 4.3. Regulator

56

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Gambar 4.4. Benda

Gambar 4.5. Lengan Robot

Gambar 4.6. Tempat Peletakan Benda

57

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

58

Mekanisme kerja sistem lengan robot adalah robot bekerja secara otomatis sesuai
dengan perintah yang telah diprogram. Proses yang terjadi ketika power atau catu daya
regulator pada posisi ON yaitu mula-mula conveyor akan berjalan membawa benda
menuju tepat dibawah webcam yang akan dideteksi oleh sensor photodioda. Ketika sensor
photodioda 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 akan secara otomatis menjalankan program
pengenalan bentuk benda. Setelah benda telah dikenali, maka laptop akan mengirimkan
sebuah karakter yang mendefinisikan bentuk benda. Karakter a yang dikirim merupakan
benda yang terdeteksi yaitu kubus, Karakter b yang dikirim merupakan benda yang
terdeteksi yaitu balok, Karakter c yang dikirim merupakan benda yang terdeteksi yaitu
tabung, Karakter d yang dikirim merupakan benda yang terdeteksi yaitu bola, dan
Karakter e yang dikirim merupakan benda tidak terdeteksi.
Setelah mikrokontroler ATmega32 menerima karakter tersebut, maka lengan robot
akan mengambil benda dan memindahkan benda tersebut ke tempat peletakan sesuai
dengan bentuk masing-masing. Proses ini akan terus berlangsung hingga tombol pada GUI
MATLAB ditekan atau catu daya pada posisi OFF.

4.2. Hasil Data Pengujian dan Pembahasan


Pada sub bab ini, dilakukan pengujian dan pembahasan terhadap sudut motor servo,
nilai citra biner dari masing-masing bentuk benda sebanyak 10 kali pengambilan data,
tingkat keberhasilan sistem saat mendeteksi bentuk benda sebanyak 10 kali pengambilan
data, dan tingkat keberhasilan lengan robot saat mengambil dan memindahkan benda
berdasarkan bentuk yang dilakukan sebanyak 10 kali percobaan.

4.2.1. Sudut Motor Servo


Berdasarkan data pengujian sudut motor servo yang diukur menggunakan busur
derajat, didapat nilai OCR seperti pada gambar 4.7 hingga gambar 4.25 dibawah ini.
Pengujian sudut dilakukan dengan melihat nilai OCR pada masing-masing sudut motor
servo yang dilakukan setiap 10o yang akan dibandingkan dengan perhitungan secara teori.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Gambar 4.7. Sudut 0o

Gambar 4.10. Sudut 30o

Gambar 4.13. Sudut 60o

Gambar 4.16. Sudut 90o

Gambar 4.8 Sudut 10o

Gambar 4.9. Sudut 20o

Gambar 4.11. Sudut 40o Gambar 4.12. Sudut 50o

Gambar 4.14. Sudut 70o Gambar 4.15. Sudut 80o

Gambar 4.17. Sudut 100o Gambar 4.18. Sudut 110o

59

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

60

Gambar 4.19. Sudut 120o Gambar 4.20. Sudut 130o Gambar 4.21. Sudut 140o

Gambar 4.22. Sudut 150o

Gambar 4.23. Sudut 160o Gambar 4.24. Sudut 170o

Gambar 4.25. Sudut 180o


Perhitungan besar nilai error diperoleh dengan membandingkan nilai OCR praktek
dan nilai OCR teori. Kemudian jika digunakan T(periode) sebesar 0,090422 x 10-6 s dan
prescaler sebesar 1, maka hasil dapat dilihat pada tabel 4.1.
Tabel 4.1. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R
Nilai
Nilai
OCR
OCR
SUDUT
Teori Praktek
0o
90o
180o

43,20
64,8
86,40

29
69
111

Lebar Pulsa

0,671 ms
1,59 ms
2,57 ms

Error
(%)

32,87 %
6,48 %
28,47 %

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

61

Berdasarkan gambar 4.7 hingga gambar 4.25, 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. Error yang terjadi pada nilai OCR sudut motor servo tidak mempengaruhi
kinerja lengan robot dalam mengambil dan memisahkan benda. Tetapi error pada nilai
OCR mempengaruhi dalam penentuan sudut motor servo selama perancangan.

4.2.2. Pengujian Nilai Citra Biner Bentuk Benda


Pengujian nilai citra biner dari masing-masing bentuk benda dimaksudkan untuk
mengetahui data citra biner dari masing-masing bentuk benda yang akan diproses dan
dikenali. Dilakukan sebanyak 10 kali percobaan dari masing-masing benda. Dari pengujian
tersebut, diperoleh tabel 4.2 sebagai berikut.
Tabel 4.2. Data Citra Biner Masing-Masing Bentuk Benda
Nilai Data
Pengambilan
KUBUS BALOK
Data ke1
85
124
2
85
125
3
88
123
4
88
116
5
92
116
6
81
122
7
99
129
8
88
120
9
86
129
10
84
125
Rerata
87,6
122,9
Range Data
81-110 111-140

TABUNG

BOLA

73
67
73
74
69
70
75
79
68
73
72,1
65-80

53
55
55
51
53
52
60
46
50
54
52,9
42-64

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

62

140
120
100
BENDA KUBUS

80

BENDA BALOK
60

BENDA TABUNG

40

BENDA BOLA

20
0
1

10

Gambar 4.26. Grafik Data Citra Biner


Range data yang digunakan sengaja dibuat lebih dengan alasan untuk
mengantisipasi apabila data yang terdeteksi lebih besar atau lebih kecil dari data yang telah
diambil sampelnya. Hal ini dapat terjadi karena pengaruh cahaya ruangan yang berbedabeda.

4.2.3. Tata Peletakan Benda


Peletakan benda saat dibawa conveyor adalah sesuai dengan batasan masalah.
Apabila peletakan benda tidak sesuai dengan batasan masalah, maka sistem dan lengan
robot tidak dapat bekerja maksimal. Hal ini dikarenakan kemampuan sistem dalam
mendeteksi atau mengenali bentuk benda terbatas dan lengan robot memiliki batasanbatasan tertentu agar dapat menjalankan tugas untuk mengambil dan meletakan benda
dengan baik. Tata peletakan dapat dilihat pada gambar 4.27, gambar 4.28, gambar 4.29,
dan gambar 4.30.

Gambar 4.27. Peletakan Benda Kubus

Gambar 4.28. Peletakan Benda Balok

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

63

Gambar 4.29. Peletakan Benda Tabung Gambar 4.30. Peletakan Benda Bola

4.2.4. Pengujian Keberhasilan Sistem Mendeteksi Bentuk Benda


Pada tugas akhir ini, dilakukan analisa tingkat keberhasilan robot saat proses
pengenalan objek berbentuk kubus, balok, tabung, dan bola. Namun apabila terdapat benda
selain benda tersebut yang memiliki data sesuai range yang telah ditentukan sebelumnya,
maka sistem akan tetap membandingkan dengan range yang ada. Tingkat keberhasilan
sistem ditunjukan tabel 4.3 dan gambar benda yang terdeteksi dapat ditunjukan gambar
4.31, gambar 4.32, gambar 4.33, dan gambar 4.34.
Tabel 4.3. Pengujian Keberhasilan Sistem Mendeteksi Bentuk Benda
PENGUJIAN KEBERHASILAN SISTEM MENDETEKSI
BENTUK BENDA
BENDA
1 2 3 4 5 6 7 8 9 10
KUBUS
V V V V V V V V V V
BALOK
V V V V V V V V V V
TABUNG
V V V V V V V V V V
BOLA
V V V V V V V V V V
Keterangan : V(Berhasil) X(Tidak Berhasil)

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Gambar 4.31. Pengujian Benda Balok

64

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Gambar 4.32. Pengujian Benda Kubus

65

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Gambar 4.33. Pengujian Benda Tabung

66

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

67

Gambar 4.34. Pengujian Benda Bola


Berdasarkan tabel 4.3, gambar 4.31, gambar 4.32, gambar 4.33 dan gambar 4.34,
maka dapat disimpulkan bahwa sistem mampu mengenali benda 100% apabila sesuai
dengan batasan masalah yang telah ditentukan. Selain itu, sistem berhasil melakukan
counting terhadap jumlah benda yang telah terdeteksi.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

68

4.2.5. Pengujian Keberhasilan Lengan Robot Saat Mengambil dan


Memindahkan Benda
Pada pengujian lengan robot mengambil dan memindahkan benda dilakukan
sebanyak sepuluh kali percobaan dari masing-masing bentuk benda. Ketika sistem telah
mengenali bentuk benda, maka sistem akan mengirimkan sebuah karakter secara serial
kepada mikrokontroler ATmega32 untuk selanjutnya mengontrol pergerakan lengan robot
mengambil dan memindahkan benda sesuai dengan peletakan yang telah ditentukan
sebelumnya.
Tabel 4.4. Pengujian Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda
PENGUJIAN KEBERHASILAN LENGAN ROBOT
MENGAMBIL DAN MELETAKAN BENDA
BENDA
1 2 3 4 5 6 7 8 9 10
KUBUS
V V V V V V V V V V
BALOK
V V V V V V V V V V
TABUNG
V V V V V V V V V V
BOLA
V V V V V V V V V V
Keterangan : V(Berhasil) X(Tidak Berhasil)
Berdasarkan tabel 4.4 maka dapat dianalisa bahwa lengan robot dapat mengambil
dan memindahkan benda sesuai bentuk dengan baik. Hal ini dapat dibuktikan dengan
melihat tingkat keberhasilan lengan robot mengambil dan memindahkan benda seperti
tabel 4.4. Tingkat keberhasilan lengan robot yaitu 100% dengan catatan peletakan dan
jarak benda sesuai dengan batasan masalah.

4.2.6. Pengujian Sistem Dalam Proses Pengenalan Benda dan Proses


Pemindahan Benda
4.2.6.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 bentuk
benda dan proses pemindahan benda menjadi lebih lama. Waktu yang diperlukan untuk
proses pengenalan bentuk benda dan proses pemindahan benda yaitu + 33 detik.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

69

4.2.6.2. Tidak Menggunakan Looping


Sistem tidak menggunakan looping memiliki kelebihan dan kelemahan. Kelebihan
dari sistem tanpa menggunakan looping yaitu sistem dan lengan robot dapat menyelesaikan
tugas pengenalan bentuk benda dan proses pemindahan benda lebih cepat dibanding
menggunakan looping yaitu + 27 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 bentuk
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 Photodioda


Program pengendali sensor photodioda menggunakan fasilitas yang dimiliki oleh
mikrokontroler ATmega32 yaitu ADC (Analog to Digital Converter). Fungsinya yaitu
untuk mengubah tegangan analog menjadi tegangan digital. Tegangan digital tersebut akan
digunakan untuk mengontrol conveyor saat membawa benda.

Gambar 4.35. Listing Program ADC


Pada listing program yang ditunjukan gambar 4.35, 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

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

70

tegangan masukan 0 Volt sampai 5 Volt, akan diubah melalui ADC menjadi 0 desimal
hingga 511 desimal.

Gambar 4.36. Listing Program Pengendali Conveyor


Pada bagian listing program gambar 4.36, 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 bentuk benda. Sedangkan fungsi putchar() yaitu untuk
mengirimkan suatu karakter kepada laptop agar laptop dapat memulai proses pengenalan
benda. Listing program dapat dilihat pada gambar 4.37.

Gambar 4.37. Listing Program Komunikasi USART

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

71

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 ditunjukan gambar 4.38.

Gambar 4.38. Listing program pengendali sudut putar motor servo


Listing program pada gambar 4.38 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.

Gambar 4.39. Pemberian Nilai OCR Motor Servo

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

72

Listing program yang ditunjukan pada gambar 4.39 merupakan pemberian nilai
OCR pada masing-masing motor servo pada saat posisi siaga. Sedangkan untuk posisi lain
seperti posisi siaga_grip, pengambilan benda, penyimpanan benda kubus, penyimpanan
benda balok, penyimpanan benda tabung, dan penyimpanan benda bola dapat dilihat pada
tabel 4.5.
Tabel 4.5. Pemberian Nilai OCR
Fungsi

Nilai OCR
Data 1

Data 2

Data 3

Data 4

Siaga

71

53

94

89

Siaga_grip

71

53

94

122

Ambil_benda

71

84

76

122

Kubus

33

53

90

89

Balok

48

67

82

89

Tabung

92

67

82

89

Bola

111

53

90

89

Gripper

89

Gambar 4.40. Listing Program Gerakan Mengambil Benda


Listing program pada gambar 4.40 adalah pergerakan motor servo saat mengambil
benda 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

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

73

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. Gambar 4.41
merupakan listing program memindahkan benda kubus, gambar 4.42 merupakan listing
program memindahkan benda balok, gambar 4.43 merupakan listing program
memindahkan benda tabung, dan gambar 4.44 merupakan listing program memindahkan
benda bola.

Gambar 4.41. Listing Program Memindahkan Benda Kubus

Gambar 4.42. Listing Program Memindahkan Benda Balok

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

74

Gambar 4.43. Listing Program Memindahkan Benda Tabung

Gambar 4.44. Listing Program Memindahkan Benda Bola

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
pada gambar 4.45.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

75

Gambar 4.45. Subrutin Program Utama


Pada bagian listing program gambar 4.45. Karakter 'a' yang dikirim laptop
merupakan karakter yang mendeskripsikan bahwa benda yang terdeteksi merupakan kubus,
sedangkan karakter 'b' yang dikirim laptop merupakan karakter yang mendeskripsikan
bahwa benda yang terdeteksi merupakan balok, sedangkan karakter 'c' yang dikirim laptop
merupakan karakter yang mendeskripsikan bahwa benda yang terdeteksi merupakan
tabung, kemudian nilai karakter 'd' yang dikirim laptop merupakan karakter yang
mendeskripsikan bahwa benda yang terdeteksi merupakan bola, kemudian jika karakter 'e'
yang dikirim laptop adalah karakter yang mendeskripsikan bahwa tidak ada benda yang
terdeteksi.
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.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

76

4.3.2. Aplikasi MATLAB


Pada sub bab ini akan dijabarkan listing program yang diprogram menggunakan
software MATLAB diantaranya penjelasan tampilan GUI, inisialisasi komunikasi serial,
inisialisasi webcam, proses pengolahan citra, dan proses pengenalan bentuk benda.

4.3.2.1. Tampilan Gui MATLAB


GUI (Graphical User Interface) yaitu suatu tampila yang berfungsi untuk
mempermudah dalam pengawasan program yang sedang terjadi atau dieksekusi. GUI
memiliki peran yang sangat baik karena dengan adanya GUI, pengguna akan dapat melihat
apa yang sedang terjadi didalam program seperti pemrosesan data dan lain-lain. Tampilan
GUI yang dibuat dapat ditunjukan pada Gambar 4.46.

Gambar 4.46. Tampilan GUI MATLAB


Terdapat beberapa fasilitas pada tampilan GUI yang digunakan yaitu axes, edit text,
popupmenu, dan push butoon. Fasilitas axes berfungsi untuk menampilkan gambar, grafik,
ataupun diagram. Axes digunaka untuk menampilkan gambar dari benda yang telah
diproses menjadi gambar biner. Selain axes, terdapat fasilitas edit text yang berfungsi
untuk menampilkan jumlah benda yang telah terdeteksi, nilai data citra biner, dan
menampilkan hasil deteksi sistem. Sedangkan popupmenu berfungsi untuk menampilkan

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

77

daftar pilihan PORT komunikasi yang digunakan untuk melakuan komunikasi serial agar
laptop dan mikrokontroler dapat saling berhubungan. Bagian yang terakhir yaitu push
button. Push button berfungsi sebagai sebuah tombol yang digunakan untuk mengontrol
suatu program yang akan diekseusi dengan cara diklik.

4.3.2.2. Inisialisasi Komunikasi Serial


Sebelum menghubungkan laptop dengan mikrokontroler Atmega32, maka pada
bagian program MATLAB harus di inisialisasi terlebih dahulu. Hal ini dikarenakan pada
bagian laptop dengan mikrokontroler harus memiliki baudrate yang sama. Jika kedua
perangkat tidak memiliki baudrate yang sama, maka sudah dapat dipastikan kedua
perangkat ini tidak akan dapat berkomunikasi satu sama lainnya. Program inisialisasi
komunikasi serial ditunjukan gambar 4.47.

Gambar 4.47. Inisialisasi Komunikasi Serial

4.3.2.3. Inisialisasi Webcam


Untuk melakukan proses pengolahan citra, maka dibutuhkan perangkat keras
berupa kamera atau webcam. Oleh karena itu, maka diperlukannya proses inisialisasi
perangkat keras tersebut agar dapat dikenali oleh MATLAB. Inisialisasi webcam dapat
dilihat pada gambar 4.48.

Gambar 4.48. Inisialisasi Webcam


Perintah program imaqhwinfo adalah perintah program untuk menampilkan
informasi yang akan disampaikan oleh webcam dan kemudian informasi tersebut akan
diinisialisasi ke dalam program. Hal ini bertujuan agar antara webcam dengan software
Matlab dapat melakukan komunikasi. Informasi yang tampil adalah adaptor kamera, port
webcam, jenis warna dan resolusi piksel.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

78

4.3.2.4. Proses Pengolahan Citra


Proses pengolahan citra merupakan suatu proses untuk mengolah suatu kualitas
gambar atau citra yang telah diambil kamera atau webcam agar gambar tersebut dapat
dikenali dan memiliki nilai-nilai tertentu. Nilai-nilai yang telah didapat kemudian diproses
untuk mengklasifikasikan gambar-gambar tertentu. Proses secara berurutan yaitu mulamula gambar diambil dengan fungsi getsnapshoot, kemudian gambar yang telah diambil
diproses dan diubah menjadi gambar grayscale dengan tujuan untuk mempermudah dalam
pemrosesan. Langkah selanjutnya yaitu mengubah citra grayscale menjadi citra biner, hal
ini dikarenakan saat pengenalan bentuk benda menggunakan metode citra biner. Setelah
citra biner, langkah selanjutnya yaitu proses cropping atau pemotongan gambar. Hal ini
bertujuan untuk menghilangkan background atau latar belakang yang tidak dibutuhkan
untuk diproses. Fungsi imresize bertujuan untuk memperkecil kualitas citra yang telah
diolah agar memiliki nilai yang tidak terlalu besar. Kemudian langkah terakhir yaitu proses
penjumlahan data nilai citra biner yang telah dipotong menjadi sebuah nilai. Proses
pengolahan citra ditunjukan gambar 4.49.

Gambar 4.49. Proses Pengolahan Citra

4.3.2.5. Proses Pengenalan Bentuk Benda


Berdasarkan nilai-nilai dari tabel 4.3, maka dibuat sebuah range yang menentukan
bentuk benda tersebut. Untuk benda kubus range data yang digunakan yaitu antara 81
sampai 110, sedangkan untuk benda balok range data yang digunakan yaitu antara 111
sampai 140, kemudian untuk benda tabung range data yang digunakan yaitu antara 65
sampai 80, dan untuk benda bola range data yang digunakan yaitu antara 42 sampai 64.
Dari data tersebut, maka dapat dibuat range nilai untuk mengetahui dan mengenali dari
masing-masing bentuk benda. Listing program ditunjukan gambar 4.50.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

79

Gambar 4.50. Listing Program Pengenalan Bentuk Benda


Proses berjalannya program jika data memiliki nilai antara 81-110 maka akan
tampil pada edit6 benda yang terdeteksi yaitu kubus, kemudian menjumlahkan nilai
kubus yang terdeteksi sebanyak 1 dan hasil penjumlahan tersebut ditampilkan pada edit1
lalu mengirimkan karakter a secara serial. Jika data memiliki nilai antara 111-140 maka
akan tampil pada edit6 benda yang terdeteksi yaitu balok, kemudian menjumlahkan nilai
balok yang terdeteksi sebanyak 1 dan hasil penjumlahan tersebut ditampilkan pada edit2
lalu mengirimkan karakter b secara serial.
Jika data memiliki nilai antara 65-80 maka akan tampil pada edit6 benda yang
terdeteksi yaitu tabung, kemudian menjumlahkan nilai tabung yang terdeteksi sebanyak 1
dan hasil penjumlahan tersebut ditampilkan pada edit3 lalu mengirimkan karakter c
secara serial. Jika data memiliki nilai antara 42-64 maka akan tampil pada edit6 benda
yang terdeteksi yaitu bola, kemudian menjumlahkan nilai bola yang terdeteksi sebanyak 1
dan hasil penjumlahan tersebut ditampilkan pada edit4 lalu mengirimkan karakter b
secara serial. Apabila data tidak berada didalam range yang ada, maka itu berarti benda
tidak terdeteksi oleh sistem kemudian sistem akan mengirimkan karakter e secara serial.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

BAB V
KESIMPULAN DAN SARAN
5.1.

Kesimpulan
Dari hasil pengujian serta pengambilan data pada aplikasi pengenalan objek untuk

lengan robot pemisah benda berdasarkan bentuk benda, dapat diambil kesimpulan:
1. Sistem dapat mengenali bentuk benda dengan baik ketika mendeteksi benda.
2. Waktu yang dibutuhkan sistem tanpa looping untuk menyelesaikan proses
yaitu + 27 detik sedangkan waktu yang dibutuhkan sistem dengan
menggunakan looping untuk menyelesaikan proses yaitu + 33 detik.
3. Sistem mampu mengenali bentuk benda dan berhasil melakukan counting
jumlah benda yang telah terdeteksi.
4. Peletakan dan posisi benda sesuai dengan batasan masalah, membuat sistem
dan lengan robot bekerja dengan baik.
5. Posisi benda yang tidak sesuai dengan batasan masalah membuat gripper
lengan robot tidak dapat mencengkram benda untuk memindahkannya.
6. Motor servo berfungsi dengan baik sebagai aktuator lengan robot dalam
mengerjakan proses pengambilan dan peletakan benda. Tetapi lebar pulsa
motor servo jenis Towerpro MG946R berbeda dengan lebar pulsa pada teori.

5.2.

Saran
Saran-saran bagi pengembangan selanjutnya adalah:
1. Lebih banyak variasi bentuk benda yang dideteksi.
2. Peletakan dan posisi benda dibuat bebas.
3. Waktu sistem untuk proses pengenalan objek dibuat lebih cepat.
4. Lengan robot dibuat lebih baik lagi agar pergerakan menjadi fleksibel dan
mampu mengambil benda pada posisi apapun.
5. Menggunakan jenis motor servo yang sesuai dengan dasar teori dan memiliki
spesifikasi lebar pulsa yang lengkap agar selama penentuan sudut motor servo
tidak mengalami kesulitan.

80

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

Daftar Pustaka
[1]

Budiharto, W., 2014, Robotika Modern Teori dan Implementasi, edisi revisi, C.V
Andi Offset, Yogyakarta.

[2]

Budiharto, W. dan Purwanto, D., 2012, Robot Vision Teknik Membangun Robot
Cerdas Masa Depan, C.V Andi Offset, Yogyakarta.

[3]

Arismarjito, 2011, Robot Lengan Otomatis Sebagai Pemisah Barang Berdasarkan


Warna Dengan Menggunakan ATmega8535, Skripsi, Universitas Sanata Dharma,
Yogyakarta.

[4]

Paul A. Tipler, 1998, FISIKA Untuk Sains dan Teknik, edisi 3 jilid 1, Erlangga,
Bandung.

[5]

http://www.servodatabase.com , diakses pada tanggal 20 November 2014.

[6]

----, 2011,Data Sheet Mikrokontroler ATmega32, Atmel.

[7]

Agus Bejo, 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokonroler
ATMEGA8535, 1st ed, GRAHA ILMU, Yogyakarta.

[8]

Setiawan, A., 2011, 20 Aplikasi Mikrokontroler ATmega8535 dan ATmega16,


Andi, Yogyakarta.

[9]

Boylestad, R. and Nashelsky. L., Electronic Devices and Circuit Theory, seventh
edition, Prentice Hall, New Jersey Columbus, Ohio.

[10]

Fathoni, Oktober 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass Element
Transistor NPN dan PNP, Jurnal Neutrino, Vol.3, No.1.

[11]

Budiharto, W., 2008, Panduan Praktikum Mikrokontroler AVR Atmega16, PT Elex


Media Komputindo, Jakarta.

[12]

Enterprise, Jubilee, 2010, Teknik Mengendalikan PC dari Jarak Jauh, PT Elex


Media Komputindo, Jakarta.

[13]

http://www.logitech.com/en-in/product/hd-webcam-c270h ,diakses pada tanggal 20


November 2014.

[14]

http://cantiknyailmu.com/daftar-lengkap-rumus-bangun-ruang.html , diakses pada


tanggal 21 November 2014.

[15]

Putra, D., 2010, Pengolahan Citra Digital, Andi Offset, Yogyakarta.

81

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
[16]

82

Wijaya, M.Ch., dan Prijono, A., 2007, Pengolahan Citra Digital Menggunakan
MATLAB, Informatika, Bandung.

[17]

http://www.servodatabase.com/servo/towerpro/mg946r,

diakses

20

November

2014.
[18]

http://www.vcc2gnd.com/2014/05/sg90-tower-pro-9g-micro-servo.html, diakses 20
November 2014.

[19]

----, 2002, Data Sheet Transistor 2N3904, KEC.

[20]

----, 1999, Data Sheet Transistor 2N3055, STMicroelectronics.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

LAMPIRAN

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Rangkaian Minimum System Atmega8535

Rangkaian Regulator

Rangkaian Sensor Photodioda

L1

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Spesifikasi Servo Towerpro MG946R [17]

Spesifikasi Servo Towerpro SG90 [18]

L2

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Towerpro MG946R [5]

Spesifikasi Webcam Logitech C270h [13]

Webcam Logitech C270h [13]

Towerpro SG90 [5]

L3

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Datasheet Transistor 2N3904 [19]

Datasheet Transistor 2N3055 [20]

HASIL DETEKSI BENTUK BENDA

L4

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L5

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L6

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L7

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L8

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L9

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L10

LISTING PROGRAM CVAVR


/*****************************************************
Project : APLIKASI PENGENALAN OBJEK MENGGUNAKAN WEBCAM UNTUK LENGAN ROBOT
PEMISAH BENDA BERDASARKAN BENTUK BENDA
Date : 19/03/2015
Chip type
: ATmega32
Program type
: Application
Clock frequency
: 11,059200 MHz
Memory model
: Small
External RAM size
:0
Data Stack size
: 512
*****************************************************/
#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;
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;}

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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;}
}
}
#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(3000);
lcd_clear();delay_ms(10);
}
void siaga()
{
data1=71;
delay_ms(100);
data3=94;
delay_ms(100);
data2=53;
delay_ms(100);
data4=89;
delay_ms(100);
}
void siaga_grip()
{

L11

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
data1=71;
delay_ms(100);
data2=53 ;
delay_ms(100);
data3=94;
delay_ms(100);
data4=122;
delay_ms(100);
}
void ambil_benda()
{
data1=71;
delay_ms(100);
data3=76;
delay_ms(100);
data2=84;
delay_ms(100);
data4=122;
delay_ms(100);
}
void kubus()
{
data1=33;
delay_ms(100);
data2=53 ;
delay_ms(100);
data3=90;
delay_ms(100);
data4=89;
delay_ms(100);
}
void balok()
{
data1=48;
delay_ms(100);
data3=67;
delay_ms(100);
data2=82 ;
delay_ms(100);
data4=89;
delay_ms(100);
}
void tabung()
{
data1=92;
delay_ms(100);
data3=67;
delay_ms(100);
data2=82 ;
delay_ms(100);
data4=89;
delay_ms(100);
}
void bola()

L12

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
{
data1=111;
delay_ms(100);
data2=53 ;
delay_ms(100);
data3=90;
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<=122;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);};
siaga_grip();
delay_ms(500);
}
void gerak_kubus()
{
//kubus
gerak_ambil();
delay_ms(500);
for (data3=94;data3>=90;data3--)
{delay_ms(50);};
for (data1=71;data1>=33;data1--)
{delay_ms(50);};
for (data4=122;data4>=89;data4--)
{delay_ms(50);};
kubus();
delay_ms(500);
gripper();
delay_ms(500);

L13

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

for (data1=33;data1<=71;data1++)
{delay_ms(50);};
for (data3=90;data3<=94;data3++)
{delay_ms(50);};
}
void gerak_balok()
{
//balok
gerak_ambil();
delay_ms(500);
for (data3=94;data3>=67;data3--)
{delay_ms(50);};
for (data1=71;data1>=48;data1--)
{delay_ms(50);};
for (data2=53;data2<=82;data2++)
{delay_ms(50);};
for (data4=122;data4>=89;data4--)
{delay_ms(50);};
balok();
delay_ms(500);
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 gerak_tabung()
{
//tabung
gerak_ambil();
delay_ms(500);
for (data3=94;data3>=67;data3--)
{delay_ms(50);};
for (data1=71;data1<=92;data1++)
{delay_ms(50);};
for (data2=53;data2<=82;data2++)
{delay_ms(50);};
for (data4=122;data4>=89;data4--)
{delay_ms(50);};
tabung();
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++)

L14

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
{delay_ms(50);};
}
void gerak_bola()
{
//bola
gerak_ambil();
delay_ms(500);
for (data3=94;data3>=90;data3--)
{delay_ms(50);};
for (data1=71;data1<=111;data1++)
{delay_ms(50);};
for (data4=122;data4>=89;data4--)
{delay_ms(50);};
bola();
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 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

L15

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
// OC0 output: Disconnected
TCCR0=0x01;
TCNT0=0x00;
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
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;

L16

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

// 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)
{
photodioda();
delay_ms(10);
if (sensor>=200)
{
delay_ms(100);
PORTD.2=0;delay_ms(5);
putchar('a');delay_ms(1000);
putchar('a');delay_ms(1000);
putchar('a');delay_ms(1000);
z=1;delay_ms(100);
while(z)
{
a=getchar();
delay_ms(5);
if(a=='a')
{
lcd_gotoxy(0,1);lcd_putsf("BENDA KUBUS");delay_ms(1000);
gerak_kubus();delay_ms(10);
lcd_clear();delay_ms(10);z=0;
}
else if(a=='b')
{
lcd_gotoxy(0,1);lcd_putsf("BENDA BALOK");delay_ms(1000);
gerak_balok();delay_ms(10);
lcd_clear();delay_ms(10);z=0;
}
else if(a=='c')
{
lcd_gotoxy(0,1);lcd_putsf("BENDA TABUNG");delay_ms(1000);
gerak_tabung();delay_ms(10);
lcd_clear();delay_ms(10);z=0;
}
else if(a=='d')

L17

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
{
lcd_gotoxy(0,1);lcd_putsf("BENDA BOLA");delay_ms(1000);
gerak_bola();delay_ms(10);
lcd_clear();delay_ms(10);z=0;
}
else if(a=='e')
{
lcd_gotoxy(0,1);lcd_putsf("TIDAK TERDETEKSI");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 DENGAN MENGGUNAKAN LOOPING


function varargout = realtime(varargin)
% REALTIME MATLAB code for realtime.fig
% REALTIME, by itself, creates a new REALTIME or raises the existing
% singleton*.
%
% H = REALTIME returns the handle to a new REALTIME or the handle to
% the existing singleton*.
%
% REALTIME('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in REALTIME.M with the given input arguments.
%
% REALTIME('Property','Value',...) creates a new REALTIME or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before realtime_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to realtime_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 realtime
% Last Modified by GUIDE v2.5 02-Jul-2015 18:45:25
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @realtime_OpeningFcn, ...
'gui_OutputFcn', @realtime_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);

L18

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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 realtime is made visible.
function realtime_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to realtime (see VARARGIN)
% Choose default command line output for realtime
clc;
set(handles.edit1, 'String','0' );
set(handles.edit2, 'String','0');
set(handles.edit3, 'String','0' );
set(handles.edit4, 'String','0' );
set(handles.edit5, 'String','' );
set(handles.edit6, 'String','' );
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes realtime wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = realtime_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)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, 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)

L19

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L20

clc;
global z
global kubus
global balok
global tabung
global bola
z=1;
kubus=0;
balok=0;
tabung=0;
bola=0;
guidata(hObject,handles);
while z
%data yang dikirimkan
komunikasi=serial(handles.PORT);
guidata(hObject,handles);
%setting hardware diperlukan
set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopBits',1,'FlowControl','none'
);
%membuka port untuk komunikasi
fopen(komunikasi);
out=fscanf(komunikasi);
out1=sprintf('%s',out);
pause(0.5);
if(out1==161)
%proses inisialisasi webcam
vid=videoinput('winvideo',1,'RGB24_320x240');
%proses capture gambar
gambar=getsnapshot(vid);
%proses merubah ke grayscale
grey=rgb2gray(gambar);
%proses merubah ke biner
biner=im2bw(grey);
%croping
crop=imcrop(biner,[17.51 60.51 255.98 176.98]);
%proses resizing
y=imresize(crop,[16 16]);
c=double(y);
%menjumlahkan keseluruhan
data=sum(sum(c));
%tampilkan pada axes
axes(handles.axes1);
imshow(crop);
set(handles.edit6, 'string', '');
set(handles.edit5, 'string', data);

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
if ((data>=81)&&(data<=110))
set(handles.edit6, 'string', 'KUBUS');
kubus=kubus +1;
set(handles.edit1, 'String', kubus);
guidata(hObject,handles);
fprintf(komunikasi,'a');
guidata(hObject,handles);
elseif ((data>=111)&&(data<=140))
set(handles.edit6, 'string', 'BALOK');
balok=balok +1;
set(handles.edit2, 'String', balok);
guidata(hObject,handles);
fprintf(komunikasi,'b');
guidata(hObject,handles);
elseif ((data>=65)&&(data<=80))
set(handles.edit6, 'string', 'TABUNG');
tabung=tabung +1;
set(handles.edit3, 'String', tabung);
guidata(hObject,handles);
fprintf(komunikasi,'c');
guidata(hObject,handles);
elseif ((data>=42)&&(data<=64))
set(handles.edit6, 'string', 'BOLA');
bola=bola +1;
set(handles.edit4, 'String', bola);
guidata(hObject,handles);
fprintf(komunikasi,'d');
guidata(hObject,handles);
elseif (data<=30)
set(handles.edit6, 'string', 'TIDAK TERDETEKSI');
fprintf(komunikasi,'e');
guidata(hObject,handles);
end
end
fclose(komunikasi);
delete(komunikasi)
clear komunikasi
clc;
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% 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)

L21

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
global z
global kubus
global balok
global tabung
global bola
z=0;
kubus=0;
balok=0;
tabung=0;
bola=0;
set(handles.edit1, 'String', kubus);
set(handles.edit2, 'String', balok);
set(handles.edit3, 'String', tabung);
set(handles.edit4, 'String', bola);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% 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)
global z
z=0;
close all;
clear all;
function edit5_Callback(hObject, eventdata, handles)
% hObject handle to edit5 (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 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

L22

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
% 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 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.
%
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)

L23

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
% 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)
% 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.

L24

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L25

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, 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 = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenu1
contents = get(hObject,'Value');
switch contents
case 1
handles.PORT='COM1';
case 2
handles.PORT='COM2';
case 3
handles.PORT='COM3';
case 4
handles.PORT='COM4';
case 5
handles.PORT='COM5';
case 6
handles.PORT='COM6';
case 7
handles.PORT='COM7';
case 8
handles.PORT='COM8';
case 9
handles.PORT='COM9';
case 10
handles.PORT='COM10';
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';
end
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L26

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
LISTING PROGRAM GUI MATLAB TANPA MENGGUNAKAN LOOPING
function varargout = realtime(varargin)
% REALTIME MATLAB code for realtime.fig
%
REALTIME, by itself, creates a new REALTIME or raises the existing
%
singleton*.
%
%
H = REALTIME returns the handle to a new REALTIME or the handle to
%
the existing singleton*.
%
%
REALTIME('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in REALTIME.M with the given input
arguments.
%
%
REALTIME('Property','Value',...) creates a new REALTIME or raises
the
%
existing singleton*. Starting from the left, property value pairs
are
%
applied to the GUI before realtime_OpeningFcn gets called. An
%
unrecognized property name or invalid value makes property
application
%
stop. All inputs are passed to realtime_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 realtime
% Last Modified by GUIDE v2.5 02-Jul-2015 18:45:25
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @realtime_OpeningFcn, ...
'gui_OutputFcn', @realtime_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{:});

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
end
% End initialization code - DO NOT EDIT
% --- Executes just before realtime is made visible.
function realtime_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to realtime (see VARARGIN)
% Choose default command line output for realtime
clc;
cla;
set(handles.edit1, 'String','0' );
set(handles.edit2, 'String','0');
set(handles.edit3, 'String','0' );
set(handles.edit4, 'String','0' );
set(handles.edit5, 'String','' );
set(handles.edit6, 'String','' );
handles.output = hObject;
global kubus
global balok
global tabung
global bola
kubus=0;
balok=0;
tabung=0;
bola=0;
guidata(hObject,handles);
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes realtime wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = realtime_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)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, 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)
clc;
global kubus
global balok
global tabung
global bola
guidata(hObject,handles);
%proses inisialisasi webcam
vid=videoinput('winvideo',1,'RGB24_320x240');
%proses capture gambar

L27

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
gambar=getsnapshot(vid);
%proses merubah ke grayscale
grey=rgb2gray(gambar);
%proses merubah ke biner
biner=im2bw(grey);
%croping
crop=imcrop(biner,[17.51 60.51 255.98 176.98]);
%proses resizing
y=imresize(crop,[16 16]);
c=double(y);
%menjumlahkan keseluruhan
data=sum(sum(c));
%tampilkan pada axes
axes(handles.axes1);
imshow(crop);
set(handles.edit6, 'string', '');
set(handles.edit5, 'string', data);
if ((data>=83)&&(data<=110))
set(handles.edit6, 'string', 'KUBUS');
kubus=kubus +1;
set(handles.edit1, 'String', kubus);
guidata(hObject,handles);
fprintf(komunikasi,'a');
guidata(hObject,handles);
elseif ((data>=111)&&(data<=140))
set(handles.edit6, 'string', 'BALOK');
balok=balok +1;
set(handles.edit2, 'String', balok);
guidata(hObject,handles);
fprintf(komunikasi,'b');
guidata(hObject,handles);
elseif ((data>=65)&&(data<=82))
set(handles.edit6, 'string', 'TABUNG');
tabung=tabung +1;
set(handles.edit3, 'String', tabung);
guidata(hObject,handles);
fprintf(komunikasi,'c');
guidata(hObject,handles);
elseif ((data>=42)&&(data<=64))
set(handles.edit6, 'string', 'BOLA');
bola=bola +1;
set(handles.edit4, 'String', bola);
guidata(hObject,handles);
fprintf(komunikasi,'d');
guidata(hObject,handles);
elseif (data<=40)
set(handles.edit6, 'string', 'TIDAK TERDETEKSI');
fprintf(komunikasi,'e');
guidata(hObject,handles);
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton1 (see GCBO)

L28

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L29

% eventdata reserved - to be defined in a future version of MATLAB


% handles
structure with handles and user data (see GUIDATA)
cla;
global kubus
global balok
global tabung
global bola
kubus=0;
balok=0;
tabung=0;
bola=0;
set(handles.edit1, 'String', kubus);
set(handles.edit2, 'String', balok);
set(handles.edit3, 'String', tabung);
set(handles.edit4, 'String', bola);
set(handles.edit6, 'string', '');
set(handles.edit5, 'string', '');
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% 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)
close all;
clear all;
function edit5_Callback(hObject, eventdata, handles)
% hObject
handle to edit5 (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 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

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L30

% --- 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 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.
%
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');

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

L31

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)
% 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
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, 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 = cellstr(get(hObject,'String')) returns popupmenu1
contents as cell array
%
contents{get(hObject,'Value')} returns selected item from
popupmenu1

PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
contents = get(hObject,'Value');
switch contents
case 1
handles.PORT='COM1';
case 2
handles.PORT='COM2';
case 3
handles.PORT='COM3';
case 4
handles.PORT='COM4';
case 5
handles.PORT='COM5';
case 6
handles.PORT='COM6';
case 7
handles.PORT='COM7';
case 8
handles.PORT='COM8';
case 9
handles.PORT='COM9';
case 10
handles.PORT='COM10';
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';
end
guidata(hObject,handles);
% --- 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

L32

Anda mungkin juga menyukai

  • ITS Undergraduate 9302 Paper
    ITS Undergraduate 9302 Paper
    Dokumen10 halaman
    ITS Undergraduate 9302 Paper
    Raden Galih
    Belum ada peringkat
  • Materi Building
    Materi Building
    Dokumen20 halaman
    Materi Building
    Raden Galih
    Belum ada peringkat
  • Format Penulisan Skripsi - Edita Rosana W
    Format Penulisan Skripsi - Edita Rosana W
    Dokumen5 halaman
    Format Penulisan Skripsi - Edita Rosana W
    Raden Galih
    Belum ada peringkat
  • 281 161 1 PB
    281 161 1 PB
    Dokumen5 halaman
    281 161 1 PB
    Aliem Punya Rinvor
    Belum ada peringkat
  • All Skripsi
    All Skripsi
    Dokumen95 halaman
    All Skripsi
    Raden Galih
    Belum ada peringkat
  • 30 TK Ta 2014 PDF
    30 TK Ta 2014 PDF
    Dokumen16 halaman
    30 TK Ta 2014 PDF
    Raden Galih
    Belum ada peringkat
  • Bab I
    Bab I
    Dokumen4 halaman
    Bab I
    Raden Galih
    Belum ada peringkat
  • Proses Lanjut FINISHING
    Proses Lanjut FINISHING
    Dokumen66 halaman
    Proses Lanjut FINISHING
    Raden Galih
    Belum ada peringkat
  • Lesson 10 - Evaluasi
    Lesson 10 - Evaluasi
    Dokumen24 halaman
    Lesson 10 - Evaluasi
    Raden Galih
    Belum ada peringkat
  • Bab Iv
    Bab Iv
    Dokumen10 halaman
    Bab Iv
    Raden Galih
    Belum ada peringkat
  • Lembar Pengesahan
    Lembar Pengesahan
    Dokumen2 halaman
    Lembar Pengesahan
    Raden Galih
    Belum ada peringkat
  • Daftar Pustaka
    Daftar Pustaka
    Dokumen1 halaman
    Daftar Pustaka
    Raden Galih
    Belum ada peringkat
  • Bab Iv
    Bab Iv
    Dokumen10 halaman
    Bab Iv
    Raden Galih
    Belum ada peringkat
  • Materi PLC PDF
    Materi PLC PDF
    Dokumen39 halaman
    Materi PLC PDF
    Marina Natsir
    Belum ada peringkat
  • Proses Lanjut FINISHING
    Proses Lanjut FINISHING
    Dokumen66 halaman
    Proses Lanjut FINISHING
    Raden Galih
    Belum ada peringkat
  • Bab Ii
    Bab Ii
    Dokumen14 halaman
    Bab Ii
    Raden Galih
    Belum ada peringkat
  • Bab I
    Bab I
    Dokumen31 halaman
    Bab I
    chemical_yayang2932
    Belum ada peringkat
  • 469 1176 1 PB
    469 1176 1 PB
    Dokumen6 halaman
    469 1176 1 PB
    Raden Galih
    Belum ada peringkat
  • Sensor Chapter 2
    Sensor Chapter 2
    Dokumen9 halaman
    Sensor Chapter 2
    radenricky
    Belum ada peringkat
  • DLLC
    DLLC
    Dokumen34 halaman
    DLLC
    Raden Galih
    Belum ada peringkat
  • 469 1176 1 PB
    469 1176 1 PB
    Dokumen6 halaman
    469 1176 1 PB
    Raden Galih
    Belum ada peringkat
  • M
    M
    Dokumen8 halaman
    M
    Muchamad Syamsudin
    Belum ada peringkat
  • Imk 02 Lama
    Imk 02 Lama
    Dokumen41 halaman
    Imk 02 Lama
    Raden Galih
    Belum ada peringkat
  • Bab Ii
    Bab Ii
    Dokumen7 halaman
    Bab Ii
    Raden Galih
    Belum ada peringkat
  • Sheet 2
    Sheet 2
    Dokumen1 halaman
    Sheet 2
    Raden Galih
    Belum ada peringkat
  • Tugas Rumah Modul 2
    Tugas Rumah Modul 2
    Dokumen1 halaman
    Tugas Rumah Modul 2
    Raden Galih
    Belum ada peringkat
  • Pola Makan Diet Bos
    Pola Makan Diet Bos
    Dokumen11 halaman
    Pola Makan Diet Bos
    Raden Galih
    100% (1)
  • Sosiologi
    Sosiologi
    Dokumen15 halaman
    Sosiologi
    Anisa Utami ica'u
    100% (4)
  • 1
    1
    Dokumen9 halaman
    1
    Raden Galih
    Belum ada peringkat