rizky dwi septanto tugas akhir rancang bangun robot shape fo

126
TUGAS AKHIR RANCANG BANGUN ROBOT SHAPE FOLLOWER DENGAN METODE IMAGE PROCESSING LAPORAN TUGAS AKHIR Diajukan untuk memenuhi sebagian persyaratan memperoleh gelar Ahli Madya Disusun oleh : RIZKY DWI SEPTANTO NIM : 9123100013 Dosen Pembimbing : Aditya Kurniawan, S.ST. NIK : 101 01 005 Redi Bintarto, ST., M. Eng. Pract. NIK : 081 01 002 PROGRAM STUDI TEKNIK MEKATRONIKA POLI TEKNIK KOTA MALANG MALANG 2013

Upload: aditya-kurniawan

Post on 26-Mar-2016

237 views

Category:

Documents


0 download

DESCRIPTION

Final Project Book Report

TRANSCRIPT

Page 1: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

TUGAS AKHIR

RANCANG BANGUN ROBOT SHAPE FOLLOWER DENGAN METODE IMAGE PROCESSING

LAPORAN TUGAS AKHIR

Diajukan untuk memenuhi sebagian persyaratan

memperoleh gelar Ahli Madya

Disusun oleh :

RIZKY DWI SEPTANTO NIM : 9123100013

Dosen Pembimbing :

Aditya Kurniawan, S.ST. NIK : 101 01 005

Redi Bintarto, ST., M. Eng. Pract. NIK : 081 01 002

PROGRAM STUDI TEKNIK MEKATRONIKA POLITEKNIK KOTA MALANG

MALANG 2013

Page 2: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

Rancang Bangun Robot Shape Follower Dengan Metode

Image Processing

LAPORAN TUGAS AKHIR

Diajukan kepada

Politeknik Kota Malang

untuk memenuhi salah satu persyaratan dalam menyelesaikan program Ahli Madya

Teknik Mekatronika

OLEH

RIZKY DWI SEPTANTO

NIM : 9123100013

PROGRAM STUDI TEKNIK MEKATRONIKA

POLITEKNIK KOTA MALANG

Februari 2013

i

Page 3: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

1

LEMBAR PERSETUJUAN PEMBIMBING TUGAS AKHIR

Laporan Tugas Akhir oleh Rizky Dwi Septanto ini telah diperiksa dan disetujui

untuk diuji

Malang, 13 Februari 2013

Pembimbing I

Aditya Kurniawan, S.ST.

NIK. 101 01 005

Malang, 13 Februari 2013

Pembimbing II

Redi Bintarto, ST., M. Eng. Pract.

NIK. 081 01 002

Page 4: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

LEMBAR PERSETUJUAN DAN PENGESAHAN TUGAS AKHIR

Laporan Tugas Akhir oleh Rizky Dwi Septanto ini telah disidangkan di depan

dewan penguji pada tanggal 18 Februari 2013

Dewan Penguji :

Penguji 1

Rizki Priya Pratama, ST., MT., MSc.

NIK. 081 02 002

Penguji 2

M. Fahmi Hakim, ST., MT.

NIK. 101 01 006

Mengetahui,

Pembantu Direktur 1 Ketua Program Studi

M. Fahmi Hakim, ST., MT. Aditya Kurniawan, S.ST.

NIK. 101 01 006 NIK. 101 01 005

Page 5: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

1

ABSTRAK

Teknologi di bidaang robotika saat ini telah berkembang dengan pesat dan luas, terbukti

dengan sudah diaplikasikannya robot pada berbagai bidang. Robot juga dapat

menggantikan pekerjaan yang tidak dapat dikerjakan oleh manusia. Adanya perkembangan

teknologi tersebut menuntut munculnya suatu inovasi dari robot agar dapat lebih bermanfaat,

salah satunya sebagai sistem kemanan.

Pada proyek akhir ini, telah dibuat robot Shape Follower. Robot tersebut adalah salah satu

kajian dalam bidang robotika yang mampu mengenali objek yang akan

dideteksi dengan menggunakan Visual Basic 6.0 dan OpenCV untuk membandingkan

hasil image processing. Dalam penggunaannya robot dapat mendeteksi objek

menggunakan melalui webcam

yang terpasang sebagai sensor, kemudian melakukan tracking untuk menangkap dan

mengikuti gerak obyek yang terdeteksi.

Pada Proses tersebut didapatkan data mengenai koordinat obyek dan luasan obyek

yang terdeteksi. Aktuator yang digunakan adalah motor servo. Sedangkan otak dari

sistem tersebut menggunakan PC. Robot ini mampu diharapkan untuk aplikasi security system.

Kata kunci : Mikrokontroler, Visual Basic, OpenCV, Robot Vision, Motor Servo.

Page 6: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

ABSTRACT

Technology in robotics field today has grown rapidly and spacious, it has been proved by

robots are used in the many sector. Robots also can replace the jobs that can not

be done by humans. The development of technology demand the appearance of an innovation

of robotsto be more beneficial, one of them as a security system.

In this final project, has make Shape Follower Robot. The robot is one of robotics fields

that can recognize the object which will be detected by applying visual basic 6.0 and opencv for

comparing result of image processing. In that applicating robot can detection the

object using webcam that pair as a sensor, then tracking for catch and following the object

detection.

In that case get data about object coordinate and object area that detected. actuator used

servo motor, and that brain of the system using PC. The expectation from this robot

it can for security system application.

Keyword : Microcontroller, Visual Basic, OpenCV, Robot Vision, Servo Motor.

Page 7: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

3

KATA PENGANTAR

Puji syukur kehadirat ALLAH SWT atas karunia, rahmat, dan hidayahnya,

sehingga penulis dapat menyelesaikan tugas akhir dengan judul :

Rancang Bangun Robot Shape Follower Dengan Metode Tugas akhir

ini merupakan merupakan salah satu syarat yang harus dipenuhi oleh

setiap mahasiswa D3

Politeknik Kota Malang untuk mendapatkan gelar Ahli Madya (A.md.).

Dalam menyelesaikan tugas akhir ini, penulis berpegang pada teori

yang pernah didapatkan pada saat menempuh perkuliahan di Politeknik Kota

Malang dan bimbingan dari dosen-dosen pembimbing tugas akhir. Juga dari

pihak-pihak lain yang sangat membantu hingga tugas akhir ini dapat

diselesaikan.

Penulis telah berusaha semaksimal mungkin dalam menyelesaikan

tugas akhir ini, walaupun demikian penulis menyadari tugas akhir ini masih

jauh dari sempurna oleh karena itu, saran dan kritik yang membangun

sangat penulis nantikan guna perbaikan selanjutnya, dan semoga

tugas akhir ini

dapat bermanfaat bagi penulis khususnya dan bagi pembaca pada umumya.

Malang, 13 Februari 2013

Penulis

Page 8: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

UCAPAN TERIMA KASIH

Penulis menyadari bahwa terlaksananya tugas akhir dan terwujudnya karya

ilmiah ini tidak terlepas dari bantuan, dukungan dan bimbingan dari

berbagai pihak. Oleh karena itu, secara khusus penulis menyampaikan

rasa terima kasih secara tulus kepada :

1. ALLAH SWT yang telah memberikan taufik, rahmat, hidayah, dan kasih

sayangnya.

2. Kedua orang tuaku Bapak dan Ibu yang banyak

memberikan doa, motivasi, kasih sayangnya hingga sampai saat

ini, terima kasih banyak atas semua yang bapak ibu berikan selama ini.

3. Kedua saudaraku Septian dan Wahyu dan juga Luki Megah Putri

yang telah menjadi semangatku dalam belajar.

4. Bapak Bagus Gunawan S.pd., M.Si. selaku Direktur Politeknik Kota

Malang.

5. Bapak Aditya Kurniawan, S.ST selaku pembimbing

pertama yang dengan sabar, tulus dan ikhlas telah

memberikan bimbingan, ilmu, tenaga, waktu, dan motivasi sehingga

penulis dapat menyelesaikan tugas akhir dengan baik.

6. Bapak Redi Bintarto, ST., M.Eng.Pract selaku pembimbing kedua

yang dengan sabar, tulus dan ikhlas telah memberikan

bimbingan, ilmu, tenaga, waktu, dan motivasi sehingga penulis dapat

menyelesaikan tugas akhir dengan baik.

7. Temen-temen TM 2010 dan anak-anak PROBE yang telah

memberikan motivasi, saran, dan masukan yang positif dalam

penyelesaian tugas akhir.

8. Berbagai pihak yang tidak dapat penulis sebutkan satu-persatu, penulis

ucapkan terimakasih atas bantuan dan dukungannya sehingga

penulis

dapat menyelesaikan tugas akhir ini dengan baik.

vii

Page 9: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

DAFTAR ISI

Halaman

LEMBAR PERSETUJUAN PEMBIMBING TUGAS AKHIR........................ ii

LEMBAR PERSETUJUAN DAN PENGESAHAN TUGAS AKHIR ............ iii

ABSTRAK ............................................................................................................ iv

ABSTRACT ........................................................................................................... v

KATA PENGANTAR .......................................................................................... vi

UCAPAN TERIMA KASIH .............................................................................. vii

DAFTAR ISI....................................................................................................... viii

DAFTAR TABEL ................................................................................................ xi

DAFTAR GAMBAR ........................................................................................... xii

DAFTAR LAMPIRAN ....................................................................................... xv

BAB I PENDAHULUAN ...................................................................................... 1

1.1 Latar Belakang ......................................................................................... 1

1.2 Rumusan Masalah .................................................................................... 1

1.3 Tujuan Tugas Akhir.................................................................................. 2

1.4 Batasan Masalah ....................................................................................... 2

1.5 Sistematika Penulisan ............................................................................... 2

BAB II TINJAUAN PUSTAKA........................................................................... 4

2.1 Konsep Sistem Object Tracking ............................................................... 4

2.2 Image Processing ..................................................................................... 4

2.2.1 Pengolahan Citra ............................................................................... 4

2.2.2 Color Extraction ................................................................................ 5

2.2.3 Binarisasi Warna ............................................................................... 6

2.2.4 Color Filtering ................................................................................... 7

2.2.5 Sistem Warna RGB ........................................................................... 8

2.3 Metode Gaussian Matrix .......................................................................... 9

2.4 Mikrokontroler ATMEGA8 ................................................................... 10

2.5 Webcam .................................................................................................. 13

2.6 Motor Servo Standart ............................................................................. 14

2.7 Komunikasi Serial PC to Mikrokontroller ............................................. 15

2.8 Visual Basic 6.0...................................................................................... 16

2.8.1 Menu Toolbar.................................................................................. 18

viii

Page 10: Rizky dwi septanto tugas akhir rancang bangun robot shape fo
Page 11: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

1

2.8.2 Menu Toolbox ................................................................................. 19

2.9 Open CV ................................................................................................. 19

BAB III PERENCANAAN SISTEM ................................................................. 21

3.1 Deskripsi Umum Mengenai Perancangan Sistem .................................. 21

3.1.1 Gambaran Umum Alat .................................................................... 21

3.2 Perancangan Sistem Mekanik................................................................. 21

3.3 Perancangan Sistem Elektrik .................................................................. 23

3.3.1 Analisis Kebutuhan Sistem ............................................................. 23

3.3.2 Perancangan Alat ............................................................................ 24 3.2.2.1 Minimum Sistem ATMEGA8 ................................................. 24

3.3.3.1 Akses Motor Servo .................................................................. 29

3.4 Perancangan Software Image Understanding pada Visual Basic .......... 30

3.4.2 Gaussian Matriks............................................................................. 34

3.4.3 Brightness Enhancement ................................................................. 43

3.4.4 Contrast Enhancement .................................................................... 45

3.4.5 Colour Filtering ............................................................................... 47

3.4.6 Center Detection.............................................................................. 49

BAB IV PENGUJIAN DAN ANALISA ............................................................ 51

4.1 Pengujian Mikrokontroler ...................................................................... 51

4.1.2 Peralatan .......................................................................................... 51

4.1.3 Langkah Pengujian .......................................................................... 51

4.1.4 Hasil dan Analisa ............................................................................ 52

4.1.5 Kesimpulan ..................................................................................... 52 4.2 Pengujian Motor Servo ........................................................................... 53

4.2.1 Tujuan ............................................................................................. 53

4.2.2 Peralatan .......................................................................................... 53

4.2.3 Langkah pengujian .......................................................................... 53

4.2.4 Hasil dan Analisa ............................................................................ 54

4.2.5 Kesimpulan ..................................................................................... 57

4.3 Pengujian komunikasi serial antara PC dengan mikrokontroler ............ 57 4.3.1 Tujuan ............................................................................................. 57

4.3.2 Peralatan .......................................................................................... 58

4.3.3 Langkah Pengujian .......................................................................... 58

4.3.4 Analisa data ..................................................................................... 61

4.3.5 Kesimpulan ..................................................................................... 63

4.4 Pengujian Aplikasi pada Visual Basic................................................... 63

4.4.1 Tujuan ............................................................................................. 63

4.4.2 Peralatan .......................................................................................... 63

4.4.3 Langkah Pengujian .......................................................................... 63

4.4.4 Analisa Data .................................................................................... 63

4.4.5 Kesimpulan ..................................................................................... 64

4.5 Pengujian Aplikasi Image Processing pada OpenCV ............................ 64

4.5.1 Tujuan ............................................................................................. 64

4.5.2 Peralatan .......................................................................................... 65

Page 12: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

2

4.5.3 Langkah Pengujian .......................................................................... 65

4.5.4 Analisa Data .................................................................................... 65

4.5.5 Kesimpulan ..................................................................................... 66

4.6 Pengujian sistem secara keseluruhan...................................................... 67

BAB V PENUTUP............................................................................................... 68

5.1 Kesimpulan............................................................................................. 68

5.2 Saran ....................................................................................................... 68

DAFTAR PUSTAKA .......................................................................................... 70

LAMPIRAN......................................................................................................... 71

PERNYATAAN KEASLIAN TULISAN .......................................................... 95

RIWAYAT HIDUP PENULIS........................................................................... 96

Page 13: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

1

DAFTAR TABEL

Halaman

Tabel 2.1. Kombinasi Warna Dalam Hexadesimal ................................................. 9

Tabel 3.1 Daftar komponen minimum sistem....................................................... 26

Tabel 3.2 Port Designation.................................................................................... 27

Tabel 4.1 Logika port pada led ............................................................................. 52

Tabel 4.2 data penguuran kondisi motor berdasarkan nilai sinyal PWM ............. 57

Tabel 4.3 Kondisi Image Processing terhadap hardware...................................... 67

Page 14: Rizky dwi septanto tugas akhir rancang bangun robot shape fo
Page 15: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

1

DAFTAR GAMBAR

Halaman

Gambar 2.1. Contoh binarisasi api pada gambar. ................................................... 6

Gambar 2.2 Contoh Derajat Keabuan ..................................................................... 7

Gambar 2.3. Nilai Warna RGB dalam Hexadesimal .............................................. 8

Gambar 2.4. Komposisi Warna RGB...................................................................... 9

Gambar 2.5. Konfigurasi Pin AT-MEGA8 ........................................................... 11

Gambar 2.6. Kamera Video/Webcam ................................................................... 14

Gambar 2.7. Kendali Motor Servo 180° ............................................................... 15

Gambar 2.8 Dekstop Visual basic 6.0 ................................................................... 17

Gambar 2.9 Menu Bar........................................................................................... 18

Gambar 2.10 Menu Toolbar.................................................................................. 18

Gambar 2.11 Menu Toolbox Standart EXE........................................................... 19

Gambar 3.1 Blok diagram kerja sistem ................................................................. 21

Gambar 3.2 Desain mekanik 3 Dimensi ............................................................... 22

Gambar 3.3 Desain mekanik 2 Dimensi ............................................................... 23

Gambar 3.4 Rangkaian Minimum sistem Robot Shape Follower ........................ 25

Gambar 3.5 Skematik keseluruhan Minimum System robot shape follower ......... 26

Gambar 3.6 Konstruksi motor sumbu X ............................................................... 28

Gambar 3.7 Konstruksi motor sumbu Y ............................................................... 29

Gambar 3.8 Flowchart kerja sistem image understanding pada visual basic........ 31

Gambar 3.9 Proses Colour Extraction................................................................... 32

Gambar 3.10 Contoh gambar yang akan di blur ................................................... 35

Gambar 3.11 Proses colour extraction sebelum melalui gaussian ........................ 37

Page 16: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

2

Gambar 3.12 Hasil bluring pada pixel 3x3 ........................................................... 40

Gambar 3.13 Grafik perubahan colour extraction menjadi Gaussian ................... 41

Gambar 3.14 Hasil enhancement ......................................................................... 44

Gambar 3.15 Perbedaan grafik antara Gaussian dan ........................................... 45

Gambar 3.16 Hasil Contrast enhancemet ............................................................. 47

Gambar 3.17 Grafik perubahan antara dan Kontras............................................. 47

Gambar 3.18 Grafik Rk sebelum difilter .............................................................. 48

Gambar 3.19 Grafik Rk setelah di filter................................................................ 48

Gambar 3.20 Proses menentukan titik tengah objek ............................................. 50

Gambar 4.1 Pengaturan Timer 1 pada wizard CodeVision AVR ......................... 53

Gambar 4.2 Sinyal pwm dengan periode 20 ms ................................................... 55

Gambar 4.3 Sinyal pwm sudut terbesar ................................................................ 55

Gambar 4.4 Sudut terbesar pada motor servo X ................................................... 56

Gambar 4.5 Sinyal pwm sudut terkecil ................................................................. 56

Gambar 4.6 sudut terkecil pada motor servo X..................................................... 57

Gambar 4.7 Konfigurasi USART pada CodeWizard AVR .................................. 59

Gambar 4.8 Konfigurasi terminal pada Codevision AVR .................................... 60

Gambar 4.9 Contoh tampilan aplikasi komunikasi PC-Mikrokontroler ............... 60

Gambar 4.8 Contoh program komunikasi serial pada visual basic ....................... 60

Gambar 4.10 Pengiriman angka 1 pada VB.......................................................... 61

Gambar 4.11 Hasil data yang diterima pada percobaan pertama .......................... 61

Gambar 4.12 Pengiriman angka 2 pada VB.......................................................... 62

Gambar 4.13 Hasil data yang diterima pada percobaan kedua ............................. 62

Gambar 4.14 Pengiriman angka 3 pada VB.......................................................... 62

Page 17: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

3

Gambar 4.15 Hasil data yang diterima pada percobaan ketiga ............................. 62

Gambar 4.16 Pengujian Image Processing pada Visual Basic 1 .......................... 64

Gambar 4.17 Pengujian Image Processing pada Visual Basic 2 .......................... 64

Gambar 4.18 Pengujian Image Processing pada OpenCV 1 ................................ 65

Gambar 4.19 Pengujian Image Processing pada OpenCV 2 ................................ 66

Gambar 4.20 Aplikasi konsol................................................................................ 66

Page 18: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

4

DAFTAR LAMPIRAN

Halaman

Lampiran 1 Foto hasil rancang bangun robot shape follower............................... 72

Lampiran 2 Desain PCB Minimum system robot Shape Follower. ...................... 73

Lampiran 3 Desain aplikasi Image Processing dengan visual basic.................... 74

Keterangan Lampiran 3 ........................................................................................ 75

Lampiran 4 List program aplikasi image processing dengan visual basic............ 76

Lampiran 5 List program aplikasi image processing dengan OpenCV. ............... 82

Lampiran 6 List program kontroler untuk OpenCV. ............................................ 87

Lampiran 7 List program kontroler untuk Visual Basic. ...................................... 91

Page 19: Rizky dwi septanto tugas akhir rancang bangun robot shape fo
Page 20: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

BAB I

PENDAHULUAN

1.1 Latar Belakang

Robot Shape Follower bisa dipahami sebagai sebuah contoh kasus

yang cukup istimewa dari sekian banyak permasalahan umum yang

dipelajari dalam bidang computer vision. Tingginya perkembangan

kemampuan dari suatu komputer saat ini dan meningkatnya

kebutuhan akan analisis video yang dilakukan secara otomatis telah

banyak menghasilkan sesuatu yang hebat dan menarik dalam algoritma

tracking objek.

Penggunaan Robot Shape Follower merupakan sebuah hal yang

penting bagi sejumlah aplikasi yang menguntungkan dalam penerapannya, seperti

security system, sistem navigasi robot, aplikasi penting lainnya terutama

dalam bidang robotika yaitu mobile robot maupun robotic soccer serta masih

banyak lagi yang bisa diaplikasikan.

Sudah diketahui bahwa vision mampu digunakan sebagai sebuah

sensor robot yang handal dikarenakan kemampuannya untuk nonkontak

dengan media dan penghitungan langsung dari lingkungan dan juga

ketentuan dari beberapa informasi

Pada proyek akhir ini penulis akan membuat sistem yang betujuan dalam

penggunaan sebuah alat untuk melakukan tracking / pelacakan sebuah

sebuah bentuk benda lalu mengikutinya pada jarak yang bisa berubah-ubah.

Setiap prosedur tracking dibagi dalam dua blok utama yang

berperan dalam mencari objek dan mengikutinya. Yang pertama adalah

permasalahan deteksi objek yang bisa diselesaikan melalui pemrosesan

data sensor (kamera). Sedangkan untuk tugas yang kedua adalah mengenai

pengendalian.

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas, maka dapat di ambil rumusan masalah

sebagai berikut :

a. bagaimana cara mengontrol pergerakan Robot Shape Follower

sehingga

target tetap berada dipandangan kamera ?

Page 21: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

1

Page 22: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

2

b. bagaimana cara menemukan obyek yang dimaksud sebagai

target jika terdapat benda lain di sekitarnya ?

c. bagaimana cara menentukan obyek mana yang harus dideteksi?

d. bagaimana cara mengaplikasikan pembacaan gambar yang ditangkap kamera?

1.3 Tujuan Tugas Akhir

Setelah merumuskan masalah yang didapat. Maka dapat

disimpulkan bahwa tujuan dari Tugas Akhir ini adalah :

a. dapat mengontrol pergerakan Robot Shape Follower sehingga target

tetap berada dipandangan kamera .

b. dapat menemukan obyek yang dimaksud sebagai target jika terdapat

benda lain di sekitarnya.

c. dapat menentukan obyek mana yang harus dideteksi.

d. dapat mengaplikasikan pembacaan gambar yang ditangkap kamera.

1.4 Batasan Masalah

Karena kompleksnya permasalahan yang terdapat dalam sistem ini, maka

perlu adanya batasan-batasan untuk menyederhanakan permasalahan ini, yaitu:

1. sensor yang digunakan untuk menentukan dimana tempat benda

menggunakan kamera

2. sebagai penghasil penggerak kamera digunakan motor servo.

3. kamera telah diseting pada sudut maksimum 0-180°.

4. background menggunakan warna monochrome atau satu warna.

5. iluminasi yang mengenai obyek harus dalam sebaran yang rata.

6. objek benda berwarna dan kontras terhadap background.

1.5 Sistematika Penulisan

Yang digunakan dalam laporan Tugas Akhir ini adalah sebagai berikut:

BAB I PENDAHULUAN

Bab ini berisi latar belakang permasalahan, perumusan masalah, tujuan,

batasan masalah, definisi istilah, dan sistematika penulisan laporan Tugas Akhir.

Page 23: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

3

BAB II TINJAUAN PUSTAKA

Pada bab ini akan dijelaskan tentang teori – teori serta penjelasan yang dibutuhkan

dalam pembuatan Robot Shape Follower sebagai modul praktikum sistem kendali.

BAB III METODE PENELITIAN

Bab ini berisi tentang analisa dan perancangan Robot Shape Follower

sebagai modul praktikum sistem kendali.

BAB IV PENGUJIAN ALAT

Bab ini berisi tentang jadwal pelaksanaan tugas akhir.

DAFTAR PUSTAKA

Bab ini berisi tentang literatur sebagai teori pendukung pembahasan pada laporan

Tugas Akhir ini.

Page 24: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

BAB II

TINJAUAN PUSTAKA

Tinjauan pustaka dalam bab II ini membahas tentang teori-teori

yang mendukung dalam perencanaan dan pembuatan alat, yang meliputi : Web

Kamera, Mikrokontroller, motor servo, komunikasi serial.

2.1 Konsep Sistem Object Tracking

Tugas dari suatu penangkapan / deteksi obyek didefinisikan

sebagai mengenali suatu obyek tertentu, sedangkan tracking / pelacakan

didefinisikan sebagai mendekati sebuah obyek (juga disebut target) sampai

cocok lokasinya. Kedua tugas tersebut memiliki kegunaan dalam lingkup

yang luas dari suatu aplikasi seperti contohnya sebagai robot sepakbola.

Untuk kasus tracking, terdapat dua kasus yang bisa timbul. Pada

kasus pertama, ketika gerakan target diketahui,

permasalahannya yaitu untuk merencanakan robot bergerak

menuju ke titik tempat yang sesuai. Pada kasus kedua, ketika background

bukan monochrome ataupun objek memiliki lebih dari 1 warna, maka perlu

bergantung pada beberapa jenis estimasi dari posisi dan kecepatan

yang datang dari data sensor.

2.2 Image Processing

2.2.1 Pengolahan Citra

Pengolahan Citra adalah suatu metode yang digunakan

untuk mengolah gambar sehingga menghasilkan gambar yang

sesuai dengan yang keinginkan kita. Pengambilan gambar

bisa dilakukan dengan menggunakan kamera atau alat

lain yang bisa digunakan untuk mentransfer

gambar misalnya scanner atau kamera digital.

Bahasan kali ini berfokus pada pengambilan gambar menggunakan

web kamera. Sehingga gambar yang dihasilkan sudah berbentuk

sinyal

digital dan mudah dikenali atau dibaca komputer.

Page 25: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

4

Page 26: Rizky dwi septanto tugas akhir rancang bangun robot shape fo
Page 27: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

5

2.2.2 Color Extraction

Dalam sebuah image terdiri dari banyak pixel. Pixel

secara konseptual, satu warna, mewakili daerah kecil kecil gambar.

Sebuah pixel warna digital gambar hanya angka mewakili data nilai RGB

(Red, Green, Blue). Sampel warna setiap pixel memiliki tiga komponen

numerik RGB (Red, Green, Blue) untuk mewakili warna wilayah

pixel kecil. Ketiga komponen RGB tiga adalah tiga nomor 8-bit untuk

setiap pixel. Tiga byte

8-bit (satu byte untuk masing-masing RGB) disebut 24 bit warna. Setiap

komponen RGB 8 bit dapat memiliki 256 nilai yang mungkin, mulai dari 0

hingga 255. Sebagai contoh, tiga nilai seperti (250, 165, 0), berarti (Red =

250, Green = 165, Blue = 0) untuk menunjukkan satu pixel

Orange. Program foto Editor memiliki EyeDropper tool untuk

menunjukkan 3 komponen warna RGB untuk setiap pixel gambar.

Dalam sistem biner basis 2, sebuah byte 8 bit dapat berisi salah satu

dari 256 nilai berkisar dari 0 hingga 255, karena 2 pangkat 8 adalah 256,

seperti yang terlihat dalam urutan 2,4,8,16,32,64,128,256.

Kedelapan tersebut adalah 256. Ini adalah konsep yang sama dalam basis

10, bahwa 3 angka desimal dapat menyimpan satu nilai dari 1000,

0 sampai 999. 10 pangkat 3 adalah 1000, ide yang sama seperti 2

pangkat 8 adalah 256.

Tetapi titik hanya di sini adalah bahwa 255 adalah

jumlah maksimum yang mungkin yang dapat disimpan dalam sebuah

byte 8 bit. Angka yang lebih besar memerlukan beberapa byte, misalnya

dua byte (16 bit) dapat menyimpan hingga 256x256 =65536 nilai

yang unik. 24 bit RGB gambar berwarna menggunakan 3 byte,

dan dapat memiliki 256 warna merah, dan 256 warna hijau,

dan 256 warna biru. Ini adalah

256x256x256 = 16,7 juta kemungkinan kombinasi atau warna untuk 24 bit

RGB gambar berwarna. Pixel RGB nilai data menunjukkan

"berapa banyak" Merah, dan Hijau, dan Biru, dan tiga warna dan tingkat

intensitas akan dikombinasikan pada saat itu pixel gambar, di lokasi pixel.

Page 28: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

6

Komposit dari tiga nilai RGB menciptakan warna akhir

untuk satuarea pixel. Dalam sistem RGB, kita tahu Red dan

Green membuat Kuning. Jadi, (255, 255, 0) berarti Merah dan

Hijau, masing-masing sepenuhnya jenuh (255 adalah seterang 8 bit

dapat), dengan tidak ada Biru (nol), dengan warna yang dihasilkan menjadi

kuning.

Hitam adalah nilai RGB (0, 0, 0) dan putih adalah (255, 255, 255).

Gray menarik juga, karena memiliki sifat yang memiliki nilai RGB yang

sama. Jadi (220, 220, 220) adalah abu-abu terang (mendekati putih), dan

(40,40,40) adalah abu-abu gelap (mendekati hitam). Gray tidak

memiliki cetakan warna yang tidak seimbang.

Karena abu-abu memiliki nilai sama di RGB, Black &

White gambar grayscale hanya menggunakan satu byte dari 8 bit data

per pixel bukannya tiga.. Byte masih memegang nilai-nilai 0

hingga 255, untuk mewakili 256 warna abu-abu.

Baris piksel seni diwakili oleh satu bit biner dengan nilai 0 atau 1,

yang digunakan untuk menunjukkan Hitam atau Putih (2 warna,

bukan abu-abu). Baris data seni disimpan dikemas 8 bit menjadi satu 8-bit

byte.

2.2.3 Binarisasi Warna

Binarisasi merupakan proses untuk memisahkan obyek yang

kita ambil dengan latar belakang menggunakan teknik Color

Filtering pada warna-warna yang mendekati warna obyek yang

kita tentukan pada

Gambar 2.1.

Gambar 2.1. Contoh binarisasi api pada gambar.

Page 29: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

7

2.2.4 Color Filtering

Color Filtering adalah metode yang berguna untuk

menemukan sebuah warna yang terdapat pada sebuah gambar.

Dengan ditemukannya warna yang kita cari pada sebuah gambar, kita

dapat menentukan proses apa yang selanjutnya harus dilakukan.

Pada dasarnya pencarian ini menggunakan kombinasi dari

komponen Red, Green, dan Blue yang terdapat pada gambar.

Nilai dari masing-masing komponen ini didapat dari hasil beberapa kali

eksperimen. Hasil dari eksperimen ini adalah sebuah kombinasi dari

komponen warna Red, Green, dan Blue. Kombinasi warna ini yang

kemudian dijadikan filter yang merupakan penentu sebuah warna

diloloskan atau tidak.

Keluaran dari metode ini langsung akan menghasilkan

sebuah gambar biner. Gambar biner sendiri adalah sebuah gambar

yang hanya memiliki 2 derajat keabuan yaitu hitam dan putih seperti pada

Gambar 2.2. Warna putih pada gambar adalah merupakan representasi dari

sebuah pixel yang warnanya

diloloskan. Sedangkan warna hitam pada

gambar merupakan representasi dari pixel yang

warnanya tidak diloloskan.

Sehingga dari proses di atas, kita dapat menyimpulkan

bahwa warna putih pada gambar adalah objek yang sedang kita

cari. Karena warna putih pada gambar merupakan warna pada pixel yang

sesuai dengan

filter yang kita dapat dari hasil eksperimen pada Gambar 2.2.

Gambar 2.2 Contoh Derajat Keabuan

Page 30: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

8

2.2.5 Sistem Warna RGB

Dalam pengolahan citra warna dipresentasikan dengan

nilai hexadesimal dari 0x00000000 sampai 0x00ffffff. Warna hitam

adalah

0x00000000 dan warna putih adalah 0x00ffffff. Definisi nilai warna di atas

seperti Gambar 2.3 di bawah, variabel 0x00 menyatakan

angka di belakangnya adalah hexadesimal.

Terlihat pada Gambar bahwa setiap warna memiliki range nilai 00

(angka desimalnya adalah 0) dan ff (angka desimalnya adalah 256), atau

mempunyai nilai derajat keabuan 256 = 28. Dengan demikian range warna

yang digunakan adalah (28)(28)(28) = 224, 2 (atau yang dikenal

dengan istilah True Colour pada Windows). Nilai warna yang

digunakan di atas merupakan gabungan warna cahaya merah, warna

hijau dan warna biru seperti yang terlihat pada gambar di bawah.

Sehingga untuk menentukan nilai dari suatu warna yang bukan warna

dasar digunakan gabungan skala kecerahan dari setiap warnanya.

Dari definisi Gambar 2.3 di bawah untuk menyajikan

warna tertentu dapat dengan mudah dilakukan, yaitu dengan

mencampurkan ketiga warna dasar RGB. Berikut merupakan

contoh-contoh kombinasi warna yang bisa digunakan dapat dilihat

pada Gambar 2.4 dan

dapat

menentukan kombinasi warna dengan melihat Tabel 2.1.

Gambar 2.3. Nilai Warna RGB dalam Hexadesimal

Page 31: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

9

Gambar 2.4 Komposisi Warna RGB

Tabel 2.1. Kombinasi Warna Dalam Hexadesimal

2.3 Metode Gaussian Matrix

Sebuah blur Gaussian (juga dikenal sebagai Gaussian

smoothing) adalah hasil dari mengaburkan gambar dengan fungsi

Gaussian. Ini adalah efek banyak digunakan dalam perangkat

lunak grafis, biasanya untuk mengurangi noise gambar dan

mengurangi detail. Efek visual teknik blurring adalah blur halus

menyerupai gambar yang dilihat melalui layar transparan, jelas berbeda

dari bokeh efek yang dihasilkan oleh lensa out-

of-focus atau bayangan obyek di bawah pencahayaan yang biasa. Gaussian

smoothing juga digunakan sebagai tahap pra-pengolahan di

computer vision algoritma dalam rangka meningkatkan struktur citra

pada skala yang berbeda-lihat representasi ruang skala dan skala

implementasi ruang .

Secara matematis, menerapkan Gaussian blur untuk gambar adalah

sama dengan convolving gambar dengan fungsi Gaussian , ini juga dikenal

Page 32: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

10

2

1

sebagai two-dimensional Weierstrass transform. Sebaliknya,

convolving oleh lingkaran (yaitu, circular box blur ) akan lebih akurat

mereproduksi bokeh efek. Sejak Transformasi Fourier dari

Gaussian Gaussian lain, menerapkan blur Gaussian memiliki efek

mengurangi komponen gambar dengan frekuensi tinggi,

dengan demikian sebuah blur Gaussian

merupakan low pass filter.

1

2 1

2 1

4

2

1

atau 0

1 0

1 0

4

1 0

Matriks 3×3

Gaussian blur memilki nilai matriks seperti yang di atas.

Dalam penerapannya matriks yang digunakan hanya salah satu dari kedua

matriks tersebut. Pemilihan matriks digunakan sesuai dengan

kebutuhan yang diinginkan. Sedangkan rumus umum dari Gaussian

adalah sebagai berikut

:

Matriks Umum Gaussian

Ket : = nilai matriks dengan bobot paling ringan

= nilai matriks dengan bobot sedang

= nilai matriks dengan bobot paling berat

2.4 Mikrokontroler ATMEGA8

AVR merupakan salah satu jenis mikrokontroler yang di dalamnya

terdapat berbagai macam fungsi. Perbedaannya pada mikrokontroler MCS51 dengan

AVR adalah, jika AVR tidak perlu menggunakan oscillator eksternal karena

di dalamnya sudah terdapat internal oscillator. Selain itu kelebihan dari AVR

adalah memiliki Power-On Reset, yaitu tidak perlu ada tombol reset dari luar karena

cukup hanya dengan mematikan supply, maka secara otomatis AVR akan

Page 33: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

11

melakukan reset. Untuk beberapa jenis AVR

Page 34: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

12

terdapat beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan

512 byte. AVR AT-MEGA8 adalah mikrokontroler CMOS 8-bit berarsitektur AVR RISC

yang memiliki 8K byte in-System Programmable Flash. Mikrokontroler dengan konsumsi

daya rendah ini mampu mengeksekusi instruksi dengan kecepatan maksimum 16 MIPS

pada frekuensi 16 MHz. Jika dibandingkan dengan AT-MEGA8L perbedaannya

hanya terletak pada besarnya tegangan yang diperlukan untuk bekerja. Untuk AT-

MEGA8 tipe

L, mikrokontroler ini dapat bekerja dengan tegangan antara 2,7 - 5,5 V sedangkan untuk

AT-MEGA8 hanya dapat bekerja pada tegangan antara 4,5 – 5,5 V.

Konfigurasi Pin AT-MEGA8 dapat dilihat pada Gambar 2.5.

Gambar 2.5. Konfigurasi Pin AT-MEGA8

AT-MEGA8 memiliki 28 Pin, yang masing-masing pin nya memiliki

fungsi yang berbeda-beda baik sebagai port maupun fungsi yang lainnya.

Berikut akan dijelaskan fungsi dari masing-masing kaki AT-MEGA8.

1. VCC

Merupakan supply tegangan digital.

Page 35: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

13

2. GND

Merupakan ground untuk semua komponen yang

membutuhkan

grounding.

3. Port B (PB7...PB0)

Di dalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2.

Jumlah Port B adalah 8 buah pin, mulai dari Pin B.0 sampai dengan Pin

B.7. Tiap pin dapat digunakan sebagai input maupun output. Port B

merupakan sebuah

8-bit bi-directional I/O dengan internal pull-up resistor. Sebagai input, pin-

pin yang terdapat pada port B yang secara eksternal diturunkan, maka akan

mengeluarkan arus jika pull-up resistor diaktifkan. Khusus PB6

dapat digunakan sebagai input Kristal (inverting oscillator amplifier) dan

input ke rangkaian clock internal, bergantung pada pengaturan

Fuse bit yang digunakan untuk memilih sumber clock.

Sedangkan untuk PB7 dapat digunakan sebagai output Kristal

(output oscillator amplifier) bergantung pada pengaturan Fuse bit yang

digunakan untuk memilih sumber clock. Jika sumber clock yang dipilih

dari oscillator internal, PB7 dan PB6 dapat digunakan sebagai I/O

atau jika menggunakan Asyncronous Timer/Counter2 maka PB6 dan PB7

(TOSC2 dan TOSC1) digunakan untuk saluran input timer.

4. Port C (PC5…PC0)

Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam

masing-masing pin terdapat pull-up resistor. Jumlah pin nya hanya 7

buah mulai dari pin C.0 sampai dengan pin C.6. Sebagai

keluaran/output port C memiliki karakteristik yang sama dalam hal

menyerap arus (sink) ataupun mengeluarkan arus (source).

5. RESET / PC6

Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi

sebagai pin I/O. Pin ini memiliki karakteristik yang berbeda dengan

pin-pin yang terdapat pada port C lainnya. Namun jika RSTDISBL Fuse

tidak diprogram, maka pin ini akan berfungsi sebagai input reset.

Jika level tegangan yang masuk ke pin ini rendah dan pulsa

yang ada lebih pendek dari pulsa minimum, maka akan

menghasilkan suatu kondisi reset meskipun clock-nya tidak bekerja.

6. Port D (PD7…PD0)

Page 36: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

14

Port D merupakan 8-bit bi-directional I/O dengan internal

pull-up resistor. Fungsi dari port ini sama dengan port-port yang

lain. Hanya saja pada port ini tidak terdapat kegunaan-kegunaan

yang lain. Pada port ini hanya berfungsi sebagai masukan dan keluaran

saja atau biasa disebut dengan I/O.

7. AVCC

Pin ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini

harus dihubungkan secara terpisah dengan VCC karena pin ini

digunakan untuk analog saja. Bahkan jika ADC pada AVR tidak

digunakan tetap saja disarankan untuk menghubungkannya secara

terpisah dengan VCC. Jika ADC digunakan, maka AVCC harus

dihubungkan ke VCC melalui low pass filter.

8. AREF

Merupakan pin referensi jika menggunakan ADC.

2.5 Webcam

Webcam (singkatan dari web camera) adalah sebutan bagi kamera

real- time ataun online (bermakna keadaan pada saat ini juga) yang

gambarnya bisa diakses atau dilihat melalui internet, PC, atau aplikasi video

call. Istilah webcam merujuk pada teknologi secara umumnya, sehingga

kata web kadang-kadang diganti dengan kata lain yang mendeskripsikan

pemandangan yang ditampilkan di kamera, misalnya StreetCam yang

memperlihatkan pemandangan jalan. Ada juga Metrocam yang

memperlihatkan pemandangan panorama kota dan pedesaan, TraffiCam

yang digunakan untuk memonitor keadaan jalan raya, cuaca dengan

Weather Cam, bahkan keadaan gunung berapi dengan VolcanoCam. Webcam atau

web camera adalah sebuah kamera video digital kecil yang

dihubungkan ke komputer melalui (biasanya) port USB ataupun port

COM. Pada gambar 2.6.

merupakan contoh bentuk fisik dari webcam.

Page 37: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

15

Gambar 2.6. Kamera Video/Webcam

2.6 Motor Servo Standart

Motor servo standart 180° merupakan motor servo

standart yang hanya mampu berputar 180°. Motor ini sering digunakan

dalam pengendalian lengan atau kaki robot. Motor jenis ini hanya mampu

bergerak dua arah (CW dan CCW) dengan defleksi masing-masing sudut

mencapai 90° sehingga total defleksi sudut dari kanan – tengah – kiri adalah

180°. Operasional motor servo dikendalikan oleh lebar pulsa sebesar ± 20

ms, dimana lebar pulsa antara 1 ms dan

2 ms menyatakan akhir dari range sudut maksimum. Apabila motor

servo diberikan pulsa dengan besar 1.5 ms mencapai gerakan 90°, maka

bila kita berikan pulsa kurang dari 1.5 ms maka posisi medekati 0° dan bila

kita berikan pulsa lebih dari

1.5 ms maka posisi mendekati 180°. Untuk lebih jelasnya dapat dilihat

dari

Gambar 2.7 pulsa kendali motor servo standart 180°.

Page 38: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

16

Gambar 2.7. Kendali Motor Servo 180°

Motor servo akan bekerja secara baik jika pada bagian pin

kontrolnya diberikan sinyal PWM dengan frekuensi 50 Hz . Dimana pada saat

sinyal dengan frekuensi 50 Hz tersebut dicapai kurang dari pada kondisi

Duty Cycle 1.5 ms, maka rotor akan berputar ke kiri dengan membentuk

sudut yang besarnya linier terhadap besarnya duty cycle, dan akan

bertahan di posisi tersebut. Dan sebaliknya, jika duty cycle dari sinyal

yang diberikan lebih dari 1.5 ms, maka rotor akan berputar ke arah kanan dengan

membentuk sudut yang linier pula terhadap besarnya duty cycle, dan bertahan di

posisi tersebut.

2.7 Komunikasi Serial PC to Mikrokontroller

Komunikasi serial merupakan komunikasi data dengan pengiriman secara

satu persatu dengan menggunakan satu jalur kabel data. Sehingga

komunikasi

Page 39: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

17

serial hanya menggunakan 2 kabel data yaitu kabel data untuk pengiriman

yang disebut transmit (Tx) dan kabel data untuk penerimaan disebut receive.

Kelebihan dari komunikasi serial adalah jarak pengiriman dan penerimaan

dapat dilakukan dalam jarak yang cukup jauh dibandingkan komunikasi

parallel tetapi

kekurangannya adalah kecepatannya lebih lambat daripada komunikasi

parallel, untuk saat ini sedang dikembangkan teknologi baru yang

dinamakan USB (Universal Serial Bus) yang memiliki kecepatan pengiriman

dan penerimaan data lebih cepat disbanding serial biasa.

2.8 Visual Basic 6.0

Visual basic adalah salah satu bahasa pemrograman computer.

Bahasa pemrograman adalah perintah-perintah yang dimengerti oleh

computer untuk melakukan tugas-tugas tertentu. Bahasa pemrograman

Visual basic, yang dikembangkan oleh Microsoft sejak tahun 1991,

merupakan pengembangan dari pendahulunya yaitu bahasa

pemrograman BASIC (Beginner’s All-purpose

Symbolic Instruction Code) yang dikembangkan ada era 1950-an. Visual

basic merupakan salah satu Development Tool yaitu alat bantu untuk membuat

berbagai macam program computer, khususnya yang menggunakan

sistem operasi Windows. Visual basic merupakan salah satu bahasa

pemrograman computer yang mendukung object (Object Oriented Programming =

OOP)

Microsoft visual basic 6.0 yang lebih sering disebut VB Merupakan sebuah

bahasa pemrograman yang bersifat event driven dan menawarkan

Integrated Development Environment (IDE) visual untuk membuat program

aplikasi berbasis sistem operasi microsoft windows dengan menggunakan

model pemrograman Common Object Model (COM). Visual basic merupakan

turunan bahasa basic dan menawarkan pengembangan aplikasi computer

berbasis grafik dengan cepat, akses ke basis data menggunakan Data

Access Object (DAO), Remote Data Object (RDO), atau ActiveX Data

Object (ADO), serta menawarkan pembuatan control ActiveX dan objek

ActiveX.

Dalam pemrograman berbasis object (OOP), kita perlu memahami

istilah

object, property, method dan event sebagai berikut :

Page 40: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

18

Object : komponen di dalam sebuah program

Page 41: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

19

Property : karakteristik yang dimiliki object

Method : aksi yang dapat dilakukan oleh object

Event : kejadian yang dapat dialami oleh object

Secara keseluruhan penampilan desktop Visual basic adalah seperti yang pada

Gambar 2.5 yang terdiri atas bagian bagian sebagai berikut :

Toolbar, shortcut yang dipergunakan untuk membuat perintah

Menu Bar, menu untuk perintah Visual basic

Tool Box, komponen yang dipergunakan untuk membuat form

Form, bidang yang akan ditampilkan sebagai visual

Editor Code, bidang tempat menulis program

Property, daftar setting untuk setiap komponen

Form Layout, penampakan pada layer

Project Explorer

Gambar 2.8 Dekstop Visual basic 6.0

Menu bar terdiri dari menu File, Edit, View, Project,

Format, Debug, Run,Query, Diagram, Tools,Add-Ins, Window dan Help.

Page 42: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

20

10

Gambar 2.9 Menu Bar

2.8.1 Menu Toolbar

Menu Toolbar merupakan menu berbentuk icon yang berisi

perintah. Setiap menu toolbar terdapat juga pada menu

utama Visual basic.

Gambar 2.10 Menu Toolbar

Page 43: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

21

2.8.2 Menu Toolbox

Setiap pembuatan project baru dan pilihan project

adalah Standard EXE maka akan muncul menu toolbox

standard seperti pada Gambar 2.12 berikut

Gambar 2.11 Menu Toolbox Standart EXE

Pada pembuatan program aplikasi instrumentasi dan control

kita tidak mempergunakan menu toolbox standard karena

kita masih memerlukan komponen lain untuk keperluan mengakses

port juga mengolah serta menyimpan.

Meskipun kita juga masih dapat menambahkan

komponen baru sesuai kebutuhan proses control dengan cara

menambahkan komponen yang tersedia dalam Visual

Component Library dan komponen control OCX, tetapi

sebenarnya kita tidak perlu repot dengan hal tersebut

melainkan dengan cara membuat project baru menggunakan

wizard yang tersedia.

2.9 Open CV

Open CV adalah singakatan dari Open Computer Vision, yaitu

library- library opensource yang dikhususkan untuk melakukan

Image Processing. Tujuannya adalah agar komputer mempunyai kemampuan

yang mirip dengan cara pengolahan visual pada manusia. Library ini dibuat

untuk bahasa C/C++ sebagai optimasi realtime aplikasi, API(Aplication

Programming Interface) untuk High level maupun low level, terdapat

fungsi-fungsi yang siap pakai untuk loading , saving, akuisisi gambar dan

video.

Pada library OpenCV ini mempunyai fitur sebagai berikut :

Manipulasi data gambar (alokasi memori, melepaskan memori,

kopi gambar, seting, serta konversi gambar).

Page 44: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

22

Image/Video I/O (bisa menggunakan kamera yang sidah didukung oleh

library ini).

Manipulasi matrix dan vektor serta terdapat juga routines linear algebra

(products, solvers, eigenvalues, SVD)

Image Processing dasar (filtering, edge detection,

sampling dan interpolasi, konversi warna operasi morfologi,

histogram, image pyramid)

Analisis struktural

Kalibrasi kamera

Pendeteksian gerak

Pengenalan objek

Basic GUI (display gambar/video, mouse/keyboard kontrol, scroll bar)

Image labelling (line, conic, polygon, text drawing)

Page 45: Rizky dwi septanto tugas akhir rancang bangun robot shape fo
Page 46: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

BAB III

PERENCANAAN SISTEM

3.1 Deskripsi Umum Mengenai Perancangan Sistem

Dalam perancangan ini, robot shape follower ini nantinya akan

dijadikan sebagai media pembelajaran perkuliahan Image Processing dan sistem

kendali.

3.1.1 Gambaran Umum Alat

Gambar 3.1 Blok diagram kerja sistem

Cara kerja dari masing-masing blok diagram di atas adalah sebagai berikut :

1. Webcam : alat berupa kamera untuk PC yang biasa

digunakan untuk mengambil gambar digital.

2. PC : alat yang berfungsi untuk memprogram sekaligus

menerima dan mengirim data.

3. Mikrokontroler : sebuah device yang berfungsi sebagai

pemroses data input atau output.

4. Motor servo : sebagai aktuator penggerak kamera

3.2 Perancangan Sistem Mekanik

Rangka utama pada robot ini menggunakan akrilik 3mm. Pada robot

ini dapat bergerak sejajar sumbu X dan Y dengan menggunakan motor servo.

Berikut

ini dijelaskan tentang penggunaan bahan, bentuk dan ukuran yang

digunakan dalam tugas akhir ini :

1. Papan dasar menggunakan bahan triplek dengan ukuran 225 x 225 mm

sebagai penopang rangkaian elektronik serta mekanik.

Page 47: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

21

Page 48: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

22

2. Papan landasan menggunakan bahan akrilik dengan ukuran 200mm x

200mm dengan tebal 3mm sebagai penopang motor sumbu X.

3. Rangka mekanik dinamis sumbu X menggunakan bahan akrilik

dengan ukuran 165 x 150 x 65 mm dengan model huruf U

dengan penopang miring sebagai penyangga..

4. Kemudian rangka dinamis sumbu Y menggunakan bahan akrilik

dengan ukuran 135 x 130 x 65 mm dengan model huruf U

sebagai penopang kamera.

5. Kamera diletakkan tepat Ditengah rangka mekanik sumbu Y agar dapat

bergerak sesuai gerakan motor.

6. Untuk mengubah gerakan rangka digunakan motor servo standar.

1. Desain rancangan robot shape follower (3Dimensi)

Kamera

Motor servo Y

Rangka sumbu X

Rangka Motor Y

Landasan mekanik Motor servo X

Papan triplek

Gambar 3.2 Desain mekanik 3 Dimensi

Page 49: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

23

2. Desain Rancangan Mekanik (2 dimensi)

Gambar 3.3 Desain mekanik 2 Dimensi

3.3 Perancangan Sistem Elektrik

Desain perancangan robot ini terdiri dari

beberapa sistem, yaitu menggerakkan

kamera sejajar sumbu X dan sumbu Y menggunakan motor servo, robot ini juga

menggunakan kamera sebagai sensor agar dapat melihat objek atau yang sering

disebut dengan robot vision. Kemudian untuk menggerakkan kedua motor

servo tersebut dibutuhkan mikrokontroler ATmega8. Mikrokontroler

ATmega8 tersebut bertugas sebagai otak dari robot ini

3.3.1 Analisis Kebutuhan Sistem

Pembuatan keseluruhan sistem robot shape follower ini

perlu diperinci semua kebutuhan sistem mekanik maupun elektrik yang

dibuat, antara lain :

Page 50: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

24

1. mikrokontroler sebagai pemroses dan pengendali motor.

2. pengendali putaran motor servo menggunakan timer mikrokontroler.

3. sensor menggunakan kamera webcam.

4. rangka robot menggunakan bahan akrilik dengan tebal 3mm.

5. komunikasi serial antar PC dan Mikrokontroler

menggunakan

Max232.

6. sumber tegangan DC +5V digunakan untuk men-suplay

minimum system dan motor servo.

3.3.2 Perancangan Alat

3.2.2.1 Minimum Sistem ATMEGA8

Proses kerja dari sistem otomasi mutlak memerlukan

sistem kontrol baik menggunakan sebuah sistem mekanik,

sistem elektrik ataupun menggunakan PC (Personal Computer).

Apabila suatu sistem otomasi dikatakan layaknya semua organ

tubuh manusia seutuhnya maka sistem kontrol merupakan bagian

otak / pikiran, yang mengatur dari keseluruhan gerak tubuh.

Sebagai sistem kontrol pada robot shape follower

digunakan Mikrokontroler ATMega8. Desain dari minimum

system rangkaian Mikrokontroler ATMega8 dapat dilihat pada

Gambar 3.1. Untuk memanfaatkan clock exsternal dalam

perancangan harus menambahkan beberapa komponen

pendukung yaitu dua buah kapasitor (C1, C2) dan crystal

maksimal 16 MHZ (X-TAL), dan Push Button (PB1) untuk tombol

reset microcontroller ATMega8. Dengan rangkaian ini program

yang sudah dibuat dapat dimasukkan ke dalam Microcontroller

ATMega8, yang nantinya akan menjadi sistem kontrol

pergerakan dari robot tersebut.

Page 51: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

25

Rangkaian komunikasi

serial

ATmega8

Gambar 3.4 Rangkaian Minimum sistem Robot Shape Follower

Pada gambar di atas, ditunjukkan kesesuaian antara

rancangan minimum sistem yang telah berbentuk blok diagram

pada gambar 3.1 dengan rangkaian yang telah direalisasikan.

Pada gambar 3.4 di atas, terdapat beberapa bagian dengan tugas-tugas

tersendiri diantaranya :

A. Komunikasi Serial Max232

Rangkaian ini berfungsi sebagai pengubah sinyal digital

level tegangan TTL yaitu 0V untuk logika low dan 5V untuk

logika high menjadi sinyal untuk komunikasi serial RS232

yaitu –12V untuk logika high dan 12V untuk logika low ataupun

sebaliknya. Rangkaian ini dibutuhkan karena output dari

microcontroller adalah sinyal level tegangan TTL yang mana untuk

komunikasi serial dibutuhkan sinyal dengan level RS232 sehingga

dibutuhkan rangkaian pengubah dari level TTL menjadi RS232

ataupun sebaliknya data dari komunikasi serial RS232 berupa

sinyal level RS232 harus dirubah dahulu ke sinyal TTL agar

bisa dibaca oleh microcontroller.

Page 52: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

26

B. Kontroler ATMEGA8

Kontroler ATMEGA8 Disini berfungsi sebagai

koordinator dari rangkaian yang terpasang pada

masing-masing portnya. Mikrokontroler ini memiliki

wewenang untuk mengendalikan motor dan menerima perintah dari

PC melalui komunikasi serial.

Gambar 3.5 Skematik keseluruhan Minimum System robot shape follower

Untuk dapat bekerja secara maksimum, mikrokontroler ini

membutuhkan rangkaian clock yang terdiri dari sebuah crystal serta

sebuah rangkaian power supply. Rangkaian clock Disini

berfungsi sebagai jantung untuk menghasilkan detak atau clock.

Dalam merancang sebuah minimum system ATMega8 yang

menggunakan komunikasi serial antara PC dengan

mikrokontroler memerlukan beberapa komponen pendukung

seperti device IC Max232, konektor DB9 female dan

lain-lain. Minimum system tersebut menggunakan komponen

seperti yang terlihat pada tabel

3.1.

Tabel 3.1 Daftar komponen minimum sistem

No Inisialisasi Tipe Komponen

1 R1 10KΩ ¼

W

2 R2,R3 330Ω ¼

W

Page 53: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

27

No Inisialisasi Tipe Komponen

3 D1,D2 Led 3mm

4 D3 1N4001

5 C1 10uF/16V

6 C2 1000uF/16V

7 C3,C4 22pF

8 C5, C6, C7, C8 0.1uF/16V

9 J1 Header 6 Pin

10 J2 Connector DB9 Female

11 U1 ATMega8

12 U2 7805

13 U3 MAX232

Mikrokontroler ATMega8 memiliki 28-pin dengan 3 PORT input

dan output. Setiap pin mikrokontroler ATmega8 yang

digunakan pada robot shape follower memiliki fungsi dan

kegunaan yang berbeda, fungsi dari setiap pin tersebut dapat

dilihat pada Tabel 3.2.

Tabel 3.2 Port Designation

PORT Fungsi PORT Fungsi

PORTB.0 NC (not connected) PORTD.0 Tx

PORTB.1 Sinyal kabel Servo X PORTD.1 Rx

PORTB.2 Sinyal kabel Servo Y PORTD.2 NC (not connected)

PORTB.3 ISP/Mosi PORTD.3 NC (not connected)

PORTB.4 ISP/Miso PORTD.4 XTAL1

PORTB.5 ISP/SCK PORTD.5 XTAL2

PORTD.6 NC (not connected)

PORTC.0 NC (not connected) PORTD.7 NC (not connected)

PORTC.1 NC (not connected)

PORTC.2 NC (not connected)

PORTC.3 NC (not connected)

Page 54: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

28

PORT Fungsi PORT Fungsi

PORTC.4 NC (not connected)

PORTC.5 NC (not connected)

PORTC.6 Reset Button

3.3.3 Motor Servo Standar

Alat yang digunakan sebagai penggerak kamera

menggunakan motor servo standar 180 derajat, menggunakan motor

tersebut karena robot didesain menyerupai kepala manusia yang

hanya dapat melihat kekanan

dan kekiri maupun ke atas dan ke bawah.

Gambar 3.6 Konstruksi motor sumbu X

Page 55: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

29

Gambar 3.7 Konstruksi motor sumbu Y

3.3.3.1 Akses Motor Servo

Untuk mengakses motor servo tidak seperti mengakses motor

DC pada umumnya. Motor servo diakses atau digerakkan

dengan memasukkan sinyal PWM melalui kabel kontrol yang ada

pada motor servo. Berikut akan dijelaskan tentang cara

mengakses motor servo menggunakan sinyal PWM dengan

memanfaatkan crystal external sebesar 11.0592MHz, crystal

tersebut digunakan untuk menghitung periode sekitar 20ms

untuk menggerakkan motor servo dan untuk mengetahui sudut

terbesar dan terkecil.

Page 56: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

30

Karena nilai periode 20ms adalah 27662 maka digunakkan

timer1 16 bit karena timer tersebut mampu menampung data

hingga

65535. Untuk menghasilkan sinyal PWM pada

mikrokontroler dibutuhkan OCR dan menggunakan TOP ICR sebagai

batas atas nilai PWM. Dan untuk menggerakkan motor servo

hanya dibutuhkan

periode antara 1 – 2ms dari 20 ms atau sekitar 5 – 10%.

3.4 Perancangan Software Image Understanding pada Visual Basic

Pada tahap ini akan dijelaskan secara terperinci tentang bagian utama dari

tugas akhir ini.

Page 57: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

31

Start

Colour Extraction

Gaussian Matrix

Brightness

Enhancement

Contrast

Enhancement

Colour Filtering

Center Detection

Finish

Gambar 3.8 Flowchart kerja sistem image understanding pada visual basic

3.4.1 Colour Extraction

Colour extraction merupakan sebuah langkah atau tahap

untuk memisahkan warna dasar Red, Green, dan, Blue dari data mentah yang

ada

di setiap pixel. Dengan R untuk varian nilai warna merah, G untuk varian

nilai warna hijau, dan B untuk varian nilai warna biru. Pixel

sendiri merupakan bagian terkecil dari sebuah gambar (picture

element) yang membentuk/membangun citra secara keseluruhan.

Proses colour extraction yaitu proses dimana sebuah nilai

varian dari sebuah warna, dipisahkan berdasarkan 3 komposisi warna yaitu

(R, G, B). dengan menggunakan rumus sebagai berikut:

R Merah =

G Hijau =

Page 58: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

32

B Biru =

Dari keterangan di atas maka didapat rumus umum untuk colour

extraction.

Ket : V = Varian Value.

R(x,y) = Varian nilai warna merah pada kolom x, baris y

G(x,y) = Varian nilai warna hijau pada kolom x, baris y

B(x,y) = Varian nilai warnabiru pada kolom x, baris y

P(x,y) = Varian nilai warnaper pixel pada kolom x, baris y

Int = Pembulatan suatu bilangan

R(1,1)

G(1,1)

B(1,1)

R(1,2)

G(1,2)

B(1,2)

R(2,1)

G(2,1)

a b B(2,1)

c R(2,2)

d G(2,2)

B(2,2)

Gambar 3.9 Proses Colour Extraction

Dari rumus di atas jika kita terapkan pada sebuah

gambar berukuran 2x2 pixel dengan warna yang berbeda maka hasilnya

adalah :

P(a) = 2366445

R Merah = (2366445 Mod (216

)) Mod(28) = 237

G Hijau = Int((2366445 Mod (216

))/(28)) = 27

Page 59: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

33

B Biru = Int(2366445)/ (2

16)) = 36

Nilai P(a) adalah nilai yang terdapat pada pixel a :

1. Untuk R adalah nilai warna merah, nilai P(a) dimodulus dengan 216

setelah itu dimodulus kembali dengan 28

maka nilai R=237.

2. Untuk nilai G adalah nilai warna Hijau, P(a) dimodulus

dengan 216

setelah itu dibagi dengan 28

kemudian agar nilainya

berbentuk desimal maka di Int kan maka diperoleh nilai 27.

3. Kemudian untuk nilai B adalah nilai warna biru, nilai P(a)

dibagi dengan 216

, agar nilainya tidak ber-koma maka hasilnya di Int

kan maka diperoleh nilai 36.

P(b) = 5091619

R Merah = (5091619 Mod (216

)) Mod(28) = 35

G Hijau = Int((5091619 Mod (216

))/(28)) = 177

B Biru = Int(5091619)/ (216

)) = 77

Nilai P(b) adalah nilai yang terdapat pada pixel b.

1. Untuk R adalah nilai warna merah, nilai P(b) dimodulus dengan

216

setelah itu dimodulus kembali dengan 28

maka nilai R=35.

2. Untuk nilai G adalah nilai warna Hijau, P(b) dimodulus

dengan 216

setelah itu dibagi dengan 28

kemudian agar nilainya

berbentuk desimal maka di Int kan maka diperoleh nilai 177.

3. Kemudian untuk nilai B adalah nilai warna biru, nilai P(b)

dibagi dengan 216

, agar nilainya tidak ber-koma maka hasilnya

di Int kan maka diperoleh nilai 77.

P(c) = 15246080

R Merah = (15246080 Mod (216

)) Mod(28) = 0

G Hijau = Int((15246080 Mod (216

))/(28)) = 163

B Biru = Int(15246080)/ (216

)) = 232

Nilai P(c) adalah nilai yang terdapat pada pixel c.

1. untuk R adalah nilai warna merah, nilai P(c) dimodulus dengan

216

setelah itu dimodulus kembali dengan 28

maka nilai R=0.

Page 60: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

34

2. untuk nilai G adalah nilai warna Hijau, P(c) dimodulus

dengan 216

setelah itu dibagi dengan 28

kemudian agar nilainya

berbentuk desimal maka di Int kan maka diperoleh nilai 163.

3. kemudian untuk nilai B adalah nilai warna biru, nilai

P(c) dibagi dengan 216

, agar nilainya tidak ber-koma maka

hasilnya di Int kan maka diperoleh nilai 232.

P(d) = 16777216

R Merah = (16777215 Mod (216

)) Mod(28) = 256

G Hijau = Int((16777215 Mod (216

))/(28)) = 256

B Biru = Int(16777215)/ (216

)) = 256

Nilai P(d) adalah nilai yang terdapat pada pixel d.

1. untuk R adalah nilai warna merah, nilai P(d) dimodulus dengan

216

setelah itu dimodulus kembali dengan 28

maka nilai R=255.

2. untuk nilai G adalah nilai warna Hijau, P(d) dimodulus

dengan 216

setelah itu dibagi dengan 28

kemudian agar nilainya

berbentuk desimal maka di Int kan maka diperoleh nilai 255.

3. kemudian untuk nilai B adalah nilai warna biru, nilai

P(d) dibagi dengan 216

, agar nilainya tidak ber-koma maka

hasilnya di Int kan maka diperoleh nilai 255.

3.4.2 Gaussian Matriks

Setelah Color Extraction proses selanjutnya adalah

Gaussian Matriks. Proses ini digunakan untuk

memperbaiki citra dengan menghilangkan efek noise

yang ada pada citra sehingga citra yang dihasilkan akan lebih

mudah dibaca oleh PC. Walaupun secara kasat mata gambar terlihat blur,

tetapi oleh PC citra tersebut dapat dibaca secara jelas karena tidak ada

titik-titik kecil(noise) pada citra.

Proses Gaussian Matriks adalah proses menghilangkan warna RGB

pada suatu pixel menggunakan warna RGB pada pixel-pixel yang ada pada

tetangganya(neighborhood). Dalam proses ini sama saja dengan

Page 61: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

35

2

menghilangkan jatidirinya dan mengisi dirinya dengan yang

ada di sekitarnya. Pada proses ini menggunakan matriks 3X.

Matriks Umum Gaussian

Ket : = nilai matriks dengan bobot paling ringan

= nilai matriks dengan bobot paling berat

= nilai matriks dengan bobot sedang

Nilai yang paling mempengaruhi pixel yang akan di gaussian

adalah pixel yang terdapat pada matriks yang bertanda , nilai

yang mempengaruhi pixel yang akan di Gaussian tetapi

tidak terlalu

mempengaruhi adalah pixel yang terdapat pada matriks yang bertanda

, sedangkan nilai yang tidak mempengaruhi samasekali pixel yang

akan di Gaussian adalah pixel yang terdapat pada matriks

yang

bertanda seperti yang ada pada matriks di atas.

1

Mgauss 2

1

2 1

4

2 1

Matriks yang akan digunakan dalam pengoperasian ini adalah

matriks 3×3 yang ada di atas menggunakan format 1, 2, 1 dst.

Gambar 3.10 Contoh gambar yang akan di blur

Untuk mendapatkan hasil bluring pengoperasian dimulai

dari pixel a (pixel pada baris ke-1, kolom ke-1) sampai pixel yang

terakhir,

Page 62: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

36

R

G

1

1

dalam contoh kali ini sampai P(i) (pixel pada baris ke-3, kolom ke-3).

Dengan mengalikan R, G, B pada masing-masing pixel

dengan matriks Gaussian 3×3 :

1. Rgauss merupakan hasil perkalian R pada pixel di

baris x, kolom y dengan matriks

Gaussian 3×3 seperti pada pengoperasian

di bawah ini, sehingga didapatkan suatu nilai R

baru untuk pixel (x, y).

n n

R Mgauss

Rgauss

x 1 y 1

( x , y )

( x , y ) 1 2 1 2 4 2 1 2 1

n n

1

2

1

R( x , y ) 2 4 2

x 1 y 1

1 2 1

Rgauss ( x , y )

16

R (x , y)

1 n n

R (x 1, y)

2 R (x 2, y)

1

R (x , y 1) 2 R (x 1, y 1)

4 R (x 2, y 1) 2

Rgauss

( x , y )

x 1 y 1

(x , y 2)

R (x 1, y 2)

2

16

R (x 2, y 2) 1

2. Ggauss merupakan hasil perkalian G pada pixel di baris x,

kolom y dengan matriks Gaussian 3×3, seperti pada

pengoperasian di bawah ini, sehingga didapatkan suatu nilai G

baru untuk pixel (x, y).

n n

G Mgauss

Ggauss

x 1 y 1

( x , y )

( x , y ) 1 2 1 2 4 2 1 2 1

n n

1

2

1

G( x , y ) 2 4 2

x 1 y 1

1 2 1

Ggauss( x , y )

16

G (x , y)

1 n n

G(x 1, y)

2 G(x 2, y)

1

G (x , y 1) 2 G(x 1, y 1)

4 G (x 2, y 1) 2

Ggauss( x , y )

x 1 y 1

(x , y 2)

G(x 1, y 2)

2

16

G(x 2, y 2)

1

3. Bgauss merupakan hasil perkalian B pada pixel di baris x,

kolom y dengan matriks Gaussian 3×3, seperti pada

Page 63: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

37

pengoperasian di bawah ini, sehingga didapatkan suatu nilai B

baru untuk pixel (x, y).

Page 64: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

38

B

1

n n

B Mgauss

Bgauss

x 1 y 1

( x , y )

( x , y ) 1 2 1 2 4 2 1 2 1

n n

1 2

1

B( x , y ) 2 4 2

x 1 y 1

1 2

1

Bgauss ( x , y )

16

B (x , y)

1 n n

B (x 1, y) 2 B(x 2, y)

1

B (x , y 1) 2 B (x 1, y 1) 4 B (x 2, y 1) 2

Bgauss

( x , y )

x 1 y 1

(x , y 2)

B (x 1, y 2) 2

16

B (x 2, y 2) 1

Contoh proses Gaussian matriks pada suatu citra dengan

menggunakan matriks 3×3:

P(2,1) = (R(2,1), G(2,1), B(2,1))

P(1,1) = (R(1,1), G(1,1), B(1,1)) P(3,1) = (R(3,1), G(3,1), B(3,1))

P(1,3) = (R(1,3), G(1,3), B(1,3)) P(3,3) = (R(3,3), G(3,3), B(3,3))

Gambar 3.11 Proses colour extraction sebelum melalui gaussian

Page 65: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

39

(1 ,1)

R 2

R

(1 ,1)

G 2

G

R

1

G

1

Berikut adalah contoh Gaussian matriks pada P(a) :

Rgauss

n 3 n 3

x 1 y 1

( x , y ) Mgauss

( x , y ) 1 2 1 2 4 2 1 2 1

R 1 n 3 n 3

R (1 , 2) 2

R ( 2, 1) 2

R ( 2, 2) 4

R (3, 1) 1

(3, 2)

Rgauss x 1 y 1

(1 , 3)

R (2 , 3) 2 R (3 , 3) 1

Rgauss

(1,1)

(1,1)

36 1

n 3 n 3

38 2 x 1 y 1

178

1

16

184 2

0 4

0 2

16

213 1

31 2

15 1

Rgauss

36 n 3 n 3

76 x 1 y

1 178

368

0

0

213

62

15

Rgauss

Rgauss

(1,1)

(1,1)

(1,1)

16

36 368 213 76 0 62 178 0 15

16

886 16

Rgauss (1,1) 53,375Integer 53

Ggauss

n 3 n 3

x 1 y 1

( x , y ) Mgauss

( x , y ) 1 2 1 2 4 2 1 2 1

G 1 n 3 n 3

G (1 , 2)

2

G ( 2, 1)

2

G ( 2, 2)

4

G (3, 1) 1

(3, 2)

Ggauss x 1 y 1

(1 , 3)

G

(2 , 3) 2 G

(3 , 3) 1

Ggauss

(1,1)

(1,1)

211

n 3 n 3

149 2 x 1 y 1

178 1

16

24 2

102 4

0 2

16

96 1

175 2

811

Ggauss

(1,1)

21 n 3 n 3

298 x 1 y 1

178

16

48

416

0

96

350

81

Ggauss

Ggauss

(1,1)

(1,1)

21 + 48 + 96 + 298 + 416 + 350 + 178 + 0 + 81

16

1392

16

Ggauss(1,1)

87

Page 66: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

40

(1 ,1)

B 2

B

B

1

Bgauss

n 3 n 3

x 1 y 1

( x , y )

Mgauss

( x , y ) 1 2 1 2 4 2 1 2 1

B 1 n 3 n 3

B (1 , 2) 2

B ( 2, 1) 2

B ( 2, 2) 4

B (3, 1)

1

(3, 2)

Bgauss x 1 y 1

(1 , 3)

B (2 , 3) 2 B (3 , 3)

1

(1,1)

147 1 n 3 n 3

19 2

16

150 2

255 4

250 1

179 2

Bgauss (1,1)

x 1 y 1 44 1 102 2

16

189 1

147 n 3 n 3

38

300

1020

250

358

Bgauss (1,1)

x 1 y 1 44 204

16

189

Bgauss

Bgauss

(1,1)

(1,1)

147 + 300 + 250 + 38 + 1020 + 358 + 44 + 204 + 189

16

2550 16

Bgauss(1,1) 159,375Integer 159

Untuk gaussian pada pixel b (P(b))sampai dengan pixel i, proses

Gaussian nya sama dengan contoh di atas. Hasilnya adalah :

P(b) = P(1,2) = (R(1,2), G(1,2), B(1,2)) = (22, 54, 99)

P(c) = P(1,3) = (R(1,3), G(1,3), B(1,3)) = (12, 97, 27)

P(d) = P(2,1) = (R(2,1), G(2,1), B(2,1)) = (47, 80, 147)

P(e) = P(2,2) = (R(2,2), G(2,2), B(2,2)) = (8, 98, 48)

P(f) = P(2,3) = (R(2,3), G(2,3), B(2,3)) = (2, 10, 30)

P(g) = P(3,1) = (R(3,1), G(3,1), B(3,1)) = (18, 33, 50)

P(h) = P(3,2) = (R(3,2), G(3,2), B(3,2)) = (3, 21, 35)

P(i) = P(3,3) = (R(3,3), G(3,3), B(3,3)) = (0, 5, 12)

Page 67: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

41

Dari contoh di atas dapat dilihat bahwa semakin pojok

pixel, semakin rendah nilai RGBnya. Jika Gaussian matriks ini

dilakukan berulang pada pixel yang sudah dieksekusi, maka semakin

lama citra yang dihasilkan akan semakin berwarna gelap pada pojok-

pojok citra.

Dan berikut ini adalah contoh gambar yang telah di gaussian :

P(2,1) = (Rgauss (2,1), Ggauss (2,1), Bgauss(2,1)

P(1,1) = (Rgauss (1,1), Ggauss (1,1), Bgauss(1,1) P(3,1) = (Rgauss (3,1), Ggauss (3,1), Bgauss(3,1)

P(1,3) = (Rgauss (1,3), Ggauss (1,3), Bgauss(1,3) P(3,3) = (Rgauss (3,3), Ggauss (3,3), Bgauss(3,3)

Gambar 3.12 Hasil bluring pada pixel 3x3

Page 68: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

42

R Rg

G Gg

B Bg

Gambar 3.13 Grafik perubahan colour extraction menjadi Gaussian

Dari contoh di atas maka didapat rumus umum sebagai berikut :

n n

P( x , y ) M OD(216

) M OD(28 ) 1 P(x 1, y)

M OD(216

) M OD(28 ) 2 P(x 2, y ) M OD(2

16 ) M OD(2

8 ) 1

P

M OD(2 ) M OD(2 ) 2

P

M OD(2 ) M OD(2 ) 4

P

M OD(2 ) M OD(2 ) 2

x 1 y 1 16

(x , y 1)

16

8 16

(x 1, y

1)

8 16

8 16

(x 2, y 1)

8 16

8

8

Rgauss( x , y )

P(x , y 2) M OD(2 ) M OD(2 )

1

P(x 1, y 2 ) M OD(2 ) M OD(2 )

2

16

P(x 2, y 2) M OD(2 ) M OD(2 ) 1

Ket : Rgauss(x, y) = Nilai warna merah gaussian pada kolom x, baris y

P = Value Image pada pixel (Raw data)

MOD = Modulus

Page 69: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

43

P M OD(2 ) P M OD(2

) P M OD(2 )

Int

n n

P( x , y )

P

M OD(21 6

) 1

(28 )

M OD(216

)

Int P

(x 1, y)

P

M OD(216

) 2

(28 )

M OD(21 6

)

Int P

(x 2 , y)

P

M OD(216

)

(28 )

M OD(21 6

)

1

Int (x , y 1)

8

2 Int

(x 1, y 1)

8

4 Int

(x 2 , y 1)

8 2

1 1

(2

) (2 )

(2 )

x y

Int

16

(x , y 2)

8

1 Int

16

(x 1, y 2)

8

2 Int

16

(x 2 , y 2)

8

1

(2 )

Ggauss( x , y )

(2 )

16

(2 )

Ket : Ggauss(x, y) = Nilai warna hijau gaussian pada kolom x, baris y

P = Value Image pada pixel (Raw data)

MOD = Modulus

n n

Int

P( x , y )

1 (2

16 )

P

Int P(x 1, y)

2 (2

16 )

P

Int P

(x 2, y)

(216

)

P

1

Int (x , y 1)

2

Int (x 1, y 1)

4

Int (x 2, y 1) 2

x 1 y 1

(2

16 ) (2

16 ) (2

16 )

Int

P(x , y 2)

1 Int

P(x 1, y 2)

2 Int

P(x 2, y 2)

1

Bgauss( x , y )

(216

) (216

)

16

(216

)

Ket : Bgauss(x, y) = Nilai warna biru gaussian pada kolom x, baris y

P = Value Image pada pixel (Raw data)

MOD = Modulus

Page 70: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

44

3.4.3 Brightness Enhancement

Brightness enhancement merupakan proses untuk

memperbaiki gambar dengan cara mencerahkan atau mempergelap

gambar jika suatu gambar terdapat noise. Proses ini dapat dilakukan

dengan cara menambah atau mengurangi nilai varian warna yang telah

dibaca sehingga tiap warna akan menghasilkan kecerahan sesuai dengan

nilai Kb. Pada proses ini jika terdapat gambar seperti gambar 3.3 maka

dengan melakukan proses akan

menghasilkan gambar seperti gambar 3.4 dengan rumus sebagai berikut :

Merah Rb =

Rg+Kb Hijau Gb

= Gg+Kb Biru Bb

= Bg+Kb

Dari keterangan di atas, maka didapatkan rumus untuk

brightness enhancement sebagai berikut :

Ket : Rb = nilai warna merah

Gb = nilai warna

hijau Bb = nilai

warna biru Kb =

konstanta

Rgaus = nilai warna merah yang telah di gaussian

Ggaus = nilai warna hijau yang telah di gaussian

Bgaus = nilai warna merah yang telah di gaussian

(x,y) = pixel pada kolom x dan baris y

Range adalah -255 hingga 255

Jika Kb <0 maka iluminasi warna cenderung gelap, begitu

juga senaliknya.

Sebagai contoh jika nilai koefisien adalah 60 maka

nilai varian warna dari tiap pixel akan bertambah 60.

Page 71: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

45

P(1 ,1) Rb (1 ,1)

, Gb (1 ,1)

, Bb (1 ,1)

P(1 ,1) Rgauss

(1 ,1)

Kb, Ggauss (1 ,1)

Kb, Bgauss (1 ,1) Kb

P(1 ,1)

53 60, 87 60, 159 60

P(1 ,1)

113, 147, 219

Cara tersebut dapat diterapkan pada pixel selanjutnya dengan

menggunakan koefisien yang sama.

P(1,1)=(Rb(1,1),Gb(1,1),Bb(1,1)) P(1,3)=(Rb(1,3),Gb(1,3),Bb(1,3))

P(3,1)=(Rb(3,1),Gb(3,1),Bb(3,1)) P(3,3)=(Rb(3,3),Gb(3,3),Bb(3,3))

Gambar 3.14 Hasil brightness enhancement

Page 72: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

46

Gambar 3.15 Perbedaan grafik antara Gaussian dan brightness

Pada gambar di atas terlihat jelas bahwa pada proses ini

sebuah gambar menjadi cerah jika mendapat perlakuan brightness

enhacement.

3.4.4 Contrast Enhancement

Contrast enhancement adalah proses memperbaiki gambar dengan

caramempertajam nilalai-nilai varian warna yang telah di sehingga

warna yang telah diproses akan semakin terlihat jelas

perbedaan warnanya. Proses ini dapat dilakukan dengan cara

mengalikan warna dengan range nilai 0.9 – 1.9 dengan menggunakan

cara sebagai berikut :

Merah Rk = Rb x

Kk Hijau Gk = Gb

x Kk Biru Bb =

Bb x Kk

Dari keterangan di atas maka didapatkan rumus umum

untuk

Page 73: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

47

contrast enhancement sebagai berikut :

Page 74: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

48

Rk ( x, y )

, Gk( x, y )

, Bk ( x, y )

(Rb( x, y )

Kk, Gb( x , y )

Kk, Bb( x, y )

Kk )

Ket : Rk = nilai contrast warna merah

Gk = nilai contrast warna hijau

Bk = nilai contrast warna biru

Kk = konstanta contrast

(x,y) = pixel pada kolom x dan baris y

Lebar batas nilai contrast yang dapat digunakan adalah 0

hingga

1,9

Contoh jika nilai Kk diisi dengan 0.5 maka nilai varian warna dari

tiap pixel akan dikalikan dengan nilai konstanta kontras tersebut. Berikut di

bawah ini adalah contoh proses image enhancement contrast

setelah di bringhtness pada pixel 3×3 :

Image enhancement contrast pada P(a) dengan Koefisien Kontras (Kk) = 0,5

P(1 ,1) Rk (1 ,1)

, Gk (1 ,1)

, Bk (1 ,1)

P(1 ,1) Rb (1 ,1) .Kk, Gb

(1 ,1) .Kk, Bb

(1 ,1) .Kk

P(1 ,1)

Int113.0,5, 147.0,5,

P(1 ,1)

57, 74, 110

219.0,5

Pixel pada kolom 1 baris 1 samadengan Rb (R) dikalikan dengan

koefisien kontras, Gb (G) dikalikan dengan koefisien kontrast ,

Bb (B) dikalikan dengan koefisien kontras. Jika hasil perkalian

tersebut bukan bilangan bulat maka bilangan tersebut harus dibulatkan,

karena nilai R, G,

B bukan merupakan bilangan decimal.

Cara tersebut dapat diterapkan pada pixel selanjutnya dengan

menggunakan koefisien kontras (Kk) yang sama.

Page 75: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

49

P(1,1)=(Rk(1,1),Gk(1,1),Bk(1,1)) P(1,3)=(Rk(1,3),Gk(1,3),Bk(1,3))

P(3,1)=(Rk(3,1),Gk(3,1),Bk(3,1)) P(3,3)=(Rk(3,3),Gk(3,3),Bk(3,3))

Gambar 3.16 Hasil Contrast enhancemet

Gambar 3.17 Grafik perubahan antara dan Kontras

3.4.5 Colour Filtering

Color filtering merupakan proses mengambil suatu komposisi

warna, dan membuang komposisi warna yang tidak diinginkan. Dengan

cara memberikan ambang batas(Threshold) atas dan bawah pada setiap

varian nilai warna :

Batas bawah R → merah ≥ (RTh - bandwith)

Page 76: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

50

Batas atas R → merah < (RTh + bandwidth)

Batas bawah G → hijau ≥ (GTh - bandwidth)

Batas atas G → hijau < (GTh + bandwidth)

Batas bawah B → biru ≥ (BTh - bandwidth)

Batas atas B → biru < (BTh + bandwidth)

kemudian menampilkan warna yang diinginkan : RGB ( merah,

hijau, biru)

Berikut ini adalah sebuah contoh grafik colour filtering untuk Rk :

Gambar 3.18 Grafik Rk sebelum difilter

Gambar di atas merupakan grafik Rk sebelum sebelum

melalui filter. Selanjutnya nilai Rk diberi threshold antara batas

atas dan batas bawah seperti yang terlihat di bawah ini :

Gambar 3.19 Grafik Rk setelah di filter

Page 77: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

51

Dengan adanya bandwidth maka titik filter dapat melebar

sesuai besar bandwidth. Seperti yang terlihat pada gambar di atas

warna yang

diloloskan adalah yang terdapat dalam range batas atas dan batas bawah.

Rc

(x , y)

N : Rth Bandwidth Rc (x , y)

Rth Bandwidth

Rf (x , y)

, Gf (x , y)

, Bf (x , y)

Gc

Bc

(x , y)

N : Gth

N : B Bandwidth Gc

Bandwidth Bc

(x , y)

Gth

B Bandwidth

Bandwidth

(x , y) th (x , y) th

Ket : Rf(x, y) = Warna merah yang telah di filter

Gf(x, y) = Warna hijau yang telah di filter

Bf(x, y) = Warna biru yang telah di filter

Rth = Ambang batas (threshold) nilai warna

merah Gth = Ambang batas (threshold) nilai

warna hijau Bth = Ambang batas (threshold) nilai

warna biru

Bandwidth = Area varian nilai warna yang diinginkan

3.4.6 Center Detection

Center detection adalah proses untuk menentukan titik

tengah objek yang telah dipilih. Untuk mengetahui titik tengah sebuah

objek yang harus dilakukan adalah men-scan tiap pixel x dan y

mulai dari titik 0 hingga akhir pixel.

Page 78: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

52

ULx

URx

ULy

BLy

x

(0,0) (160,0)

y

(0,160) (160,160)

Gambar 3.20 Proses menentukan titik tengah objek

Pada Gambar di atas cara untuk menentukan titik tengah x dengan

contoh gambar seperti tersebut adalah apabila pada pixel x terdapat warna

hitam setelah membaca putih maka buatlah garis pada titik tersebut dan

beri nama ULx kemudian apabila menemukan putih setelah hitam maka

buatlah garis lagi dan beri nama URx, dengan teori tersebut maka

didapatkan cara sebagai berikut:

Cara tersebut dapat digunakan untuk menetukan titik tengah pada

pixel y dengan cara :

Page 79: Rizky dwi septanto tugas akhir rancang bangun robot shape fo
Page 80: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

BAB IV

PENGUJIAN DAN ANALISA

Pada bab ini akan dijelaskan tentang pengujian dan analisa

sistem berdasarkan bab yag menjelaskan tentang perencanaan dan

pembuatan sistem. Pengujian dan analinsa yang akan dilaksanakan meliputi :

1. Pengujian Mikrontroler

2. Pengujian motor servo

3. Pengujian rangkaian komunikasi serial

4. Pengujian Aplikasi image processing pada Visual Basic

5. Pengujian Aplikasi image processing pada OpenCV

6. Pengujian keseluruhan sistem

4.1 Pengujian Mikrokontroler

4.1.1 Tujuan

Pengujian ini bertujuan agar untuk mengetahui kegunaan unit input

dan output dengan menggunakan lampu led sebagai output.

Pengujian ini dilakukan dengan menggunakan 2 port yaitu PORTD.0 dan

PORTD.1.

4.1.2 Peralatan

Untuk memenuhi kebutuhan yang digunakan dalam pengujian ini,

maka dibutuhkan peralatan sebagai berikut :

1. Adaptor/Power Supply 12 Volt

2. Lampu led

3. Multimeter

4. Downloader

4.1.3 Langkah Pengujian

Pada pengujian berikut ini perlu diadakan langkah-langkah sebagai

berikut ;

1. Gunakan IC 7805 agar tegangan masukan yang dihasilkan

menjadi 5 Volt.

51

Page 81: Rizky dwi septanto tugas akhir rancang bangun robot shape fo
Page 82: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

52

2. Ukur tegangan masukan pada mikrokontroler.

3. Hubungkan salah satu pin output dengan led.

4. Masukkan program dengan memberi logika nyala dan mati

pada pin output.

4.1.4 Hasil dan Analisa

Pengujian dengan pemberian program pada mikrokontroler

untuk menentukan salah satu pin output sangat diperlukan untuk

mengetahui apakah pada pin tersebut dapat bekerja dengan baik atau tidak.

Data Pengukuran

Tabel 4.1 Logika port pada led

PORT Logika Kondisi Led

PORTD.0 1 Nyala

PORTD.0 0 Mati

PORTD.1 1 Nyala

PORTD.1 0 Mati

Pada tabel 4.1 terdapat perbedaan hasil nyala dan mati. Hal ini

disebabkan karena pada port diberi logika 1 dan 0.

4.1.5 Kesimpulan

Dari pengujian yang telah dilakukan untuk dapat menyalakan

dan mematikan led adalah dengan memberikan logika 1 dan 0

pada port. Sehingga dapat disimpulkan bahwa mikrokontroler yang

digunakan dapat bekerja dengan baik.

Page 83: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

53

4.2 Pengujian Motor Servo

4.2.1 Tujuan

Pengujian ini bertujuan untuk mengetahui sudut

tebesar dan terkecil, serta menentukan batas nilai OCR yang

dibutuhkan untuk membangkitkan sinyal PWM.

4.2.2 Peralatan

Untuk memenuhi kebutuhan yang digunakan dalam pengujian ini,

maka dibutuhkan peralatan sebagai berikut :

1. Osciloscope

2. Motor Servo Standar

3. Rangkaian minimum sistem

4. Power Supply

4.2.3 Langkah pengujian

Pada pengujian berikut ini perlu diadakan langkah-langkah sebagai

berikut ;

1. Tancapkan kabel motor servo pada pin output pwm yang tersedia

pada rangkaian.

2. Buatlah program untuk menghasilkan sinyal PWM

dengan menggunakan wizard yang ada pada CodeVision AVR

seperti di bawah ini :

Gambar 4.1 Pengaturan Timer 1 pada wizard CodeVision AVR

Page 84: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

54

3. Setelah melakukan pengaturan pada wizard, generate

program tersebut dengan menambahkan beberapa program

seperti di bawah ini :

#include <mega8.h>

#include <delay.h>

#define sx OCR1A

#define sy OCR1B

void main(void)

PORTB=0x00;

DDRB=0x06;

TCCR1A=0xA2;

TCCR1B=0x1A;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1=27648;

TIMSK=0x00;

while (1)

sx=3317;

sy=2142;

4. Lihat sinyal yang dihasilkan dengan menggunakan osciloscope.

5. Lakukan langkah no 3 dengan memberikan sinyal pwm

yang berbeda-beda.

4.2.4 Hasil dan Analisa

Berdasarkan pengujian yang dilakukan maka didapatkan data hasil

pengukuran sebagai berikut :

1. Diketahui bahwa periode sinyal PWM yang dihaslikan

adalah

2,5ms x 8 = 20 ms dengan frekuensi sebesar 50 Hz.

Page 85: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

55

Gambar 4.2 Sinyal pwm dengan periode 20 ms

2. Sudut terbesar yang dihasilkan adalah dengan sinyal OCR1A =

967, sehingga sinyal PWM yang dihasilkan adalah

sinyal dengan periode terkecil yaitu : 700us x 1000 =

0,7ms sesuai

yang terlihat pada gambar berikut :

Gambar 4.3 Sinyal pwm sudut terbesar

Page 86: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

56

Gambar 4.4 Sudut terbesar pada motor servo X

3. Sudut terbesar yang dihasilkan adalah dengan sinyal OCR1A =

3317, sehingga sinyal PWM yang dihasilkan adalah

sinyal dengan periode terkecil yaitu : 2.32ms sesuai yang terlihat

pada

gambar berikut :

Gambar 4.5 Sinyal pwm sudut terkecil

Page 87: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

57

Gambar 4.6 sudut terkecil pada motor servo X

Data Pengukuran

Tabel 4.2 Data penguuran kondisi motor berdasarkan nilai sinyal PWM

No Nilai OCR Periode (ms) Kondisi Servo X Kondisi Servo Y

1. 967 0.7 Terbesar Terbesar

2. 2142 1.52 Tengah Tengah

3. 3317 2.32 Terkecil Terkecil

Pada Tabel 4.2 jika nilai OCR dirubah maka kondisi motor servo

berubah sesuai besar nilai OCR tersebut.

4.2.5 Kesimpulan

Dari pengujian yang telah dilakukan, dapat diperoleh

kesimpulan bahwa untuk mengendalikan motor servo X dan

motor servo Y dapat dilakukan dengan memberikan nilai OCR

yang sama seperti yang terlihat pada Tabel 4.2.

4.3 Pengujian komunikasi serial antara PC dengan mikrokontroler

4.3.1 Tujuan

Tujuan dari pengujian ini adalah untuk mengetahui kinerja

rangkaian komunikasi serial.

Page 88: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

58

4.3.2 Peralatan

Peralatan yang dibutuhkan dalam pengujian berikut ini antara lain

adalah :

1. rangkaian minimum sistem yang telah terintegrasi rangkaian

MAX232;

2. kabel RS232 USB to Serial converter.

3. PC yang telah terinstal driver kabel RS232, Visual Basic dan

CodeVision AVR;

4. power Supply

5. downloader

4.3.3 Langkah Pengujian

Langkah-langkah yang harus dilakuan dalam melakukan pengujian

ini adalah :

1. hubungkan rangkaian minimum sistem dengan power

supply yang telah tersedia, kemudian tancapkan soket DB9

male pada soket DB9 female pada rangkaian.

2. buat program sederhana dengan memanfaatkan code wizard yang

ada pada CodeVision AVR seperti pada gambar berikut :

Page 89: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

59

Gambar 4.7 Konfigurasi USART pada CodeWizard AVR

3. masukkan potongan program sederhana berikut ini ke

dalam while(1) :

putchar(rx_buffer[0]);

4. compile program di atas kemudian download program

tersebut ke dalam mikrokontroler.

5. lakukan Seting konfigurasi terminal pada CodeVision

AVR

seperti gambar di bawah ini :

Page 90: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

60

Gambar 4.8 Konfigurasi terminal pada Codevision AVR

6. buat aplikasi sederhana pada visual basic untuk mengirim

data pada mikrokontroler seperti gambar berikut :

Gambar 4.9 Contoh tampilan aplikasi komunikasi PC-Mikrokontroler

buat program sederhana untuk mengirim data seperti

gambar berikut :

Gambar 4.8 Contoh program komunikasi serial pada visual basic

Page 91: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

61

7. tampilkan jendela terminal pada CodeVision AVR kemudian

klik “connect” kemudian klik “HEX”, secara otomatis akan

merubah angka menjadi hexadesimal.

8. jalanan program pada visual basic, kemudian isi nilai

pada textbox sesuai keinginan dan klik “Kirim”.

9. lihat hasil pada jendela terminal pada CodeVision AVR.

10. berikan nilai yang berbeda pada textbox yang terdapat

pada aplikasi di visual basic, kemudian amati perbedaan tersebut.

4.3.4 Analisa data

Setelah melakukan langkah pengujian di atas maka didaptkan hasil

sebagai berikut :

1. Pengiriman pertama :

Gambar 4.10 Pengiriman angka 1 pada VB

Gambar 4.11 Hasil data yang diterima pada percobaan pertama

Page 92: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

62

2. Pengiriman kedua :

Gambar 4.12 Pengiriman angka 2 pada VB

Gambar 4.13 Hasil data yang diterima pada percobaan kedua

3. Pengiriman ketiga :

Gambar 4.14 Pengiriman angka 3 pada VB

Gambar 4.15 Hasil data yang diterima pada percobaan ketiga

Page 93: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

63

4.3.5 Kesimpulan

Dari analisa data yang telah dilakukan pada langkah

pengujian di atas dapat disimpulkan bahwa data yang dikirimkan

melalui visual basic tidak mengalami perubahan sedikitpun.

4.4 Pengujian Aplikasi pada Visual Basic

4.4.1 Tujuan

Tujuan dari pengujian ini adalah untu mengetahui kondisi

webcam apakah dapat berfungsi secara normal, kemudian untuk

mengetahui cara kerja Image Processing pada visual basic yang

diaplikasikan pada alat ini.

4.4.2 Peralatan

Peralatan yang dibutuhkan dalam pengujian berikut ini antara lain

adalah :

Peralatan yang dibutuhkan untuk pengujian ini antara lain :

1. Webcam

2. Laptop/PC yang telah terinstal Visual Basic.

3. Objek berwarna.

4.4.3 Langkah Pengujian

Langkah-langkah yang harus dilakuan dalam melakukan pengujian

ini adalah :

Langah-langkah yang harus dilakukan dalam pengujian ini adalah :

1. Hungungkan webcam pada laptop melalui soket USB yang

tersedia.

2. Play/jalankan program Image Processing pada visual basic

4.4.4 Analisa Data

Berikut adalah screen shot pengujian deteksi benda :

Page 94: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

64

Gambar 4.16 Pengujian Image Processing pada Visual Basic 1

Gambar 4.17 Pengujian Image Processing pada Visual Basic 2

4.4.5 Kesimpulan

Dari analisa data yang telah dilakukan pada langkah pengujian

di atas dapat disimpulkan bahwa dari hasil pengujian 1 di atas,

program berhasil mendeteksi objek yang diinginkan. Dari hasil pengujian

2 di atas, program berhasil memprioritaskan satu objek yang diinginkan

saja sebagai target. Pada pengujian di atas juga terdapat informasi tentang

posisi target terhadap titik pusat kamera.

4.5 Pengujian Aplikasi Image Processing pada OpenCV

4.5.1 Tujuan

Tujuan dari pengujian ini adalah untu mengetahui kondisi webcam

apakah dapat berfungsi secara normal, kemudian untuk mengetahui

cara kerja Image Processing pada OpenCV yang diaplikasikan pada alat

ini.

Page 95: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

65

4.5.2 Peralatan

Peralatan yang dibutuhkan untuk pengujian ini antara lain :

1. Webcam

2. Bola berwarna hitam

3. Laptop / PC yang sudah terinstal program Cygwin, OpenCV-

2.0.0a-win32_1, CV-AVR dan software “Virtual Serial Port

Driver”

4.5.3 Langkah Pengujian

Langah-langkah yang harus dilakukan dalam pengujian ini adalah :

1. Hungungkan webcam pada laptop melalui soket USB yang

tersedia.

2. Play/jalankan program Image Processing pada OpenCV yang

telah dibuat.

4.5.4 Analisa Data

Berikut adalah screen shot pengujian deteksi benda :

Gambar 4.18 Pengujian Image Processing pada OpenCV 1

Page 96: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

66

Gambar 4.19 Pengujian Image Processing pada OpenCV 2

Gambar 4.20 Aplikasi konsol

4.5.5 Kesimpulan

Dari analisa data yang telah dilakukan pada langkah pengujian

di atas dapat disimpulkan bahwa dari hasil pengujian 1, program

berhasil mendeteksi objek yang diinginkan. Dari hasil

pengujian 2, program berhasil memprioritaskan satu objek yang

diinginkan saja sebagai target. Pada pengujian di atas juga

terdapat aplikasi konsol yang menjelaskan kondisi objek yang

terdeteksi, koordinat pusat objek yang terdeteksi.

Page 97: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

67

4.6 Pengujian sistem secara keseluruhan

Setelah melakukan beberapa pengujian terhadap minimum sistem

hingga aplikasi Image Processing maka selanjutnya adalah menguji

sistem meliputi program pada PC dan kontroler serta komunikasi di antaranya.

Tabel 4.3 Kondisi Image Processing terhadap hardware

No

Posisi Target

Respon

pada

OpenCV

Respon

Pada VB

Hasil Citra

Pada

OpenCV

Hasil Citra

Pada VB

1. Kanan, Atas Cepat Lambat Biasa Bagus

2. Kanan, Tengah Cepat Diam Biasa Bagus

3. Kanan, Bawah Cepat Lambat Biasa Bagus

4. Kiri, Atas Cepat Lambat Biasa Bagus

5. Kiri, Tengah Cepat Diam Biasa Bagus

6. Kiri, Bawah Cepat Lambat Biasa Bagus

7. Tengah, Atas Cepat Diam Biasa Bagus

8. Tengah, Tengah Diam Diam Biasa Bagus

9. Tengah, Bawah Cepat Diam Biasa Bagus

Dari percobaan di atas, program berjalan sesuai dengan apa yang

diinginkan. Pada saat objek berada pada posisi yang jauh dari pusat frame maka

motor akan bergerak menuju pusat frame dan ketika menemui titik pusat

frame motor akan mempertahankan posisinya.

Page 98: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

BAB V

PENUTUP

Pada bab ini akan dibahas mengenai hasil, kelebihan dan kelemahan tiap

metode yang dipakai oleh penulis. Setelah melakukan

perencanaan dan pembuatan serta implementasi sistem robot ini,

kemudian dilakukan pengujian dan analisa maka dapat dimabil kesimpulan dan

saran-saran sebagai berikut:

5.1 Kesimpulan

Setelah melakukan berbagai tahapan dalam pengerjaan dan

pengujian tugas akhir ini, maka penulis memiliki beberapa

kesimpulan sebagai berikut:

1) Cara kerja sistem dalam tracking target adalah dengan

membandingkan titik pusat target dengan titik pusat gambar

yang diperoleh kamera, kemudian memperkecil selisih error secara

terus menerus sampai didapatkan nilai yang sama.

2) Kecepatan tracking menggunakan visual basic kurang

responsif sehingga proses menuju target seringkali terlewati,

namun hasil pemrosesan citra cukup bagus.

3) Kecepatan tracking menggunakan OpenCV cukup responsif,

namun citra yang dihasilkan kurang maksimal sehingga

seringkali objek tidak terdeteksi.

4) Iluminasi sangat berpengaruh dalam penggunaan alat ini.

5.2 Saran

Untuk peningkatan kemampuan alat ini maka ada beberapa hal yang harus

diperhatikan :

1. Untuk mengimbangi kecepatan program Image Processing diperlukan

webcam dengan frame per second (fps) yang tinggi pula, agar gambar

yang diperoleh ketika objek bergerak tetap jelas.

68

Page 99: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

69

2. Program perlu diperbaiki lagi sehingga antara proses pengolahan citra

dengan respon motor seimbang.

3. Bahan kontruksi rangka dibuat dengan bahan dasar logam,

sehingga robot dapat bergerak lebih stabil.

4. Harapan kedepan alat ini dapat dikembangkan dengan menggunakan

kamera inframerah untuk deteksi pada malam hari.

Page 100: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

70

DAFTAR PUSTAKA

Arihutomo, Muhas. 2010. Rancang Bangun Sistem Penjejakan Objek

Menggunakan Metode Viola Jones Untuk Aplikasi Eyebot. Jurusan Teknik

Telekomunikasi Politeknik Elektronika Negeri Surabaya Institut Teknologi

Sepuluh Nopember, Surabaya.

Kustiawan, Dedi. 2009. Kendali Raket Pada Game Serangga Nakal

Menggunakan Kamera. Jurusan Teknologi Informasi Politeknik Elektronika

Negeri Surabaya Institut Teknologi Sepuluh Nopember, Surabaya.

Kurniawan, Aditya. 2009. Aplikasi Computer Vision Dengan Metode Fuzzy

Pada Text Reader. Jurusan Teknik Elektronika Politeknik

Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember,

Surabaya.

“openCVsources”, (http://sourceforge.net/projects/opencvlibrary.)

“openCV”, (http://osc.ugm.ac.id/site/index.php/2008/06/opencv/.)

Rusiana, Endang. 2011 ”Simple Color Tracking Menggunakan Webcam Dengan

Library AForge.NET” Ciamis.

Rusmadi, Dedi. 2006. Teknik Interfacing Port Serial dan Paralel.

Yogyakarta: Graha Ilmu.

Page 101: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

LAMPIRAN

71

Page 102: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

72

Lampiran 1:

Foto hasil rancang bangun robot shape follower.

Page 103: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

73

Lampiran 2:

Desain PCB Minimum system robot Shape Follower.

Page 104: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

74

Lampiran 3:

Desain aplikasi Image Processing dengan visual basic.

2 4 5 3

1

6

7 8

9 20

10

11 19

12

13 14 15 16 17 18

Page 105: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

75

Keterangan Lampiran 3 :

1. display pembacaan kamera.

2. display Image Processing.

3. display colour filtering dan center detection.

4. informasi ekstraksi warna pada pada display .

5. informasi threshold pada display .

6. informasi koordinat pada display colour filtering.

7. informasi posisi horizontal (sumbu X).

8. informasi posisi vertical (sumbu Y).

9. tombol start untuk menjalankan aplikasi.

10. tombol stop untuk menghentikan aplikasi.

11. tombol untuk menghubungkan koneksi antara kabel serial dengan aplikasi.

12. tombol untuk memutuskan koneksi antara kabel serial dengan aplikasi.

13. horizontal scroll sebagai pengubah nilai .

14. horizontal scroll sebagai pengubah nilai kontras.

15. daftar comm. port yang disediakan.

16. nilai bandwidth untuk colour filtering.

17. daftar driver yang terinstal.

18. daftar format resolusi yang tersedia.

19. komponen timer untuk proses .

20. komponen Microsoft common control sebagai media penghubung

komunikasi serial.

Page 106: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

76

Lampiran 4:

List program aplikasi image processing dengan visual basic.

Dim red, green, blue As Integer

Dim R(200, 200), G(200, 200), B(200, 200) As Integer

Dim Rb(200, 200), Gb(200, 200), Bb(200, 200) As Integer

Dim Rc(200, 200), Gc(200, 200), Bc(200, 200) As Integer

Dim koefB, koefC As Double

Dim rcf(200, 200), gcf(200, 200), bcf(200, 200) As Integer

Dim rth, gth, bth As Integer

Dim xglob, yglob As Single

Dim GM(3, 3), Rgauss(200, 200), Ggauss(200, 200), Bgauss(200, 200)

As Integer

Dim H(500), V(500) As Integer

Dim P(500, 500) As Integer

Dim Hpast, Vpast As Integer

Dim ULx, URx, BLx, BRx As Integer

Dim ULy, URy, BLy, BRy As Integer

Dim CenterPointX As Integer

Dim CenterPointY As Integer

Private Type mRGB

R As Long

G As Long

B As Long

End Type

Private Function GetRGBFromRef(ByVal MyColor As Long) As mRGB

Dim CurrColor As Long

Dim RedShade As Long

Dim GreenShade As Long

Dim BlueShade As Long

Dim ret As mRGB

CurrColor = MyColor

RedShade = (CurrColor Mod (2 ^ 16)) Mod (2 ^ 8)

GreenShade = (CurrColor Mod (2 ^ 16)) / (2 ^ 8)

BlueShade = (CurrColor / (2 ^ 16))

ret.R = RedShade

ret.G = GreenShade

ret.B = BlueShade

GetRGBFromRef = ret

End Function

Sub load()

For Each Device In VideoCap1.Devices

cbodrivervid.AddItem Device.Name

Next

cbodrivervid.ListIndex = 0

For Each VideoFormat In VideoCap1.VideoFormats

cboformatvid.AddItem VideoFormat.Name

Next

cboformatvid.ListIndex = 6

LblSelDrv = cbodrivervid.ListIndex

End Sub

Sub ambil()

Page 107: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

77

VideoCap1.Device = cbodrivervid.ListIndex

VideoCap1.VideoFormat = cboformatvid.ListIndex

VideoCap1.SampleBufferMode = 3

VideoCap1.UseOverlay = False

VideoCap1.FrameRate = 1500

VideoCap1.ShowDateTime = False

VideoCap1.Start

End Sub

Private Sub cbodrivervid_Click()

ambil

End Sub

Private Sub cboformatvid_Click()

ambil

End Sub

Private Sub cmdstart_Click()

TmrExecute.Enabled = True

cmdstart.Enabled = False

CmdDisconnect.Enabled = False

cmdstop.Enabled = True

CmdConnect.Enabled = False

End Sub

Private Sub cmdstop_Click()

TmrExecute.Enabled = False

cmdstart.Enabled = False

CmdDisconnect.Enabled = True

cmdstop.Enabled = False

CmdConnect.Enabled = False

End Sub

Private Sub CmdConnect_Click()

MSComm1.CommPort = CboCom.Text

MSComm1.PortOpen = True

CmdConnect.Enabled = False

CmdDisconnect.Enabled = True

cmdstart.Enabled = True

End Sub

Private Sub CmdDisconnect_Click()

MSComm1.PortOpen = False

cmdstart.Enabled = False

cmdstop.Enabled = False

CmdDisconnect.Enabled = False

CmdConnect.Enabled = True

End Sub

Private Sub Form_Load()

MSComm1.Settings = "9600,n,8,1"

CboCom.AddItem (1)

CboCom.AddItem (2)

CboCom.AddItem (3)

CboCom.AddItem (4)

cmdstart.Enabled = False

cmdstop.Enabled = False

CmdDisconnect.Enabled = False

load

Page 108: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

78

ambil

End Sub

Private Sub MnuAbout_Click()

FrmAbout.Show

End Sub

Private Sub PicOutRk_Click()

rth = Rc(xglob, yglob)

gth = Gc(xglob, yglob)

bth = Bc(xglob, yglob)

Label9 = rth & " , " & gth & " , " & bth

End Sub

Private Sub PicOutRk_MouseMove(Button As Integer, Shift As

Integer, X As Single, Y As Single)

xglob = X

yglob = Y

LblColExt = Rc(X, Y) & " , " & Gc(X, Y) & " , " & Bc(X, Y)

End Sub

Private Sub TmrExecute_Timer()

PicOutRk.Cls

Dim ImageArray As Variant

Dim MyRGB As mRGB

Dim i As Long

Dim j As Long

Dim iWidth As Long

Dim iHeight As Long

ImageArray = VideoCap1.GetSampleBufferRGB(iWidth, iHeight)

For i = 0 To iWidth - 1

For j = 0 To iHeight - 1

MyRGB = GetRGBFromRef(ImageArray(i, j))

With MyRGB

R(iWidth - i, j) = .R G(iWidth - i, j) = .G B(iWidth - i, j) = .B End With Next j

Next i

'gaussian

GM(1, 1) = 1

GM(1, 2) = 2

GM(1, 3) = 1

GM(2, 1) = 2

GM(2, 2) = 4

GM(1, 3) = 2

GM(3, 1) = 1

GM(3, 2) = 2

GM(3, 3) = 1

For k = 1 To 1

For i = 0 To iWidth

For j = 0 To iHeight

R(i, j) = ((R(i, j) * GM(1, 1)) + (R(i + 1, j) * GM(2, 1)) +

(R(i + 2, j) * GM(3, 1)) + (R(i, j + 1) * GM(1, 2)) + (R(i + 1, j

Page 109: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

79

+ 1) * GM(2, 2)) + (R(i + 2, j + 1) * GM(3, 2)) + (R(i, j + 2) *

GM(1, 3)) + (R(i + 1, j + 2) * GM(2, 3)) + (R(i + 2, j + 2) *

GM(3, 3))) / 16

G(i, j) = ((G(i, j) * GM(1, 1)) + (G(i + 1, j) * GM(2, 1)) +

(G(i + 2, j) * GM(3, 1)) + (G(i, j + 1) * GM(1, 2)) + (G(i + 1, j

+ 1) * GM(2, 2)) + (G(i + 2, j + 1) * GM(3, 2)) + (G(i, j + 2) *

GM(1, 3)) + (G(i + 1, j + 2) * GM(2, 3)) + (G(i + 2, j + 2) *

GM(3, 3))) / 16

B(i, j) = ((B(i, j) * GM(1, 1)) + (B(i + 1, j) * GM(2, 1)) +

(B(i + 2, j) * GM(3, 1)) + (B(i, j + 1) * GM(1, 2)) + (B(i + 1, j

+ 1) * GM(2, 2)) + (B(i + 2, j + 1) * GM(3, 2)) + (B(i, j + 2) *

GM(1, 3)) + (B(i + 1, j + 2) * GM(2, 3)) + (B(i + 2, j + 2) *

GM(3, 3))) / 16

Next j

Next i

Next k

'

koefB = HSBBVal.Value

Label10 = HSBBVal.Value

For i = 0 To iWidth

For j = 0 To iHeight

Rb(i, j) = (R(i, j) + koefB)

Gb(i, j) = (G(i, j) + koefB)

Bb(i, j) = (B(i, j) + koefB)

If Rb(i, j) < 0 Then Rb(i, j) = 0

If Gb(i, j) < 0 Then Gb(i, j) = 0

If Bb(i, j) < 0 Then Bb(i, j) = 0

Next j

Next i

'contrast

koefC = (HSBCVal.Value / 10)

Label11 = HSBCVal.Value

For i = 0 To iWidth

For j = 0 To iHeight

Rc(i, j) = Int(Rb(i, j) * koefC)

Gc(i, j) = Int(Gb(i, j) * koefC)

Bc(i, j) = Int(Bb(i, j) * koefC)

If Rc(i, j) < 0 Then Rc(i, j) = 0

If Gc(i, j) < 0 Then Gc(i, j) = 0

If Bc(i, j) < 0 Then Bc(i, j) = 0

If Rc(i, j) > 255 Then Rc(i, j) = 255

If Gc(i, j) > 255 Then Gc(i, j) = 255

If Bc(i, j) > 255 Then Bc(i, j) = 255

Next j

Next i

For i = 0 To iWidth

For j = 0 To iHeight

PicOutRk.PSet (i, j), RGB(Rc(i, j), Gc(i, j), Bc(i, j))

Next j

Next i

'filter

bw = Val(TxtBW)

For i = 0 To iWidth

Page 110: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

80

For j = 0 To iHeight

If Rc(i, j) > (rth - bw) And Gc(i, j) > (gth - bw) And Bc(i, j) >

(bth - bw) And Rc(i, j) < (rth + bw) And Gc(i, j) < (gth + bw) And

Bc(i, j) < (bth + bw) Then rcf(i, j) = 0 gcf(i, j) = 0 bcf(i, j) = 0 Else rcf(i, j) = 255 gcf(i, j) = 255 bcf(i, j) = 255 End If Next j Next i

For i = 0 To iWidth

For j = 0 To iHeight

PicFilter.PSet (i, j), RGB(rcf(i, j), gcf(i, j), bcf(i, j))

Next j

Next i

'center

PicFilter.Cls

For i = 0 To PicFilter.ScaleWidth

For j = 0 To PicFilter.ScaleHeight

If rcf(i, j) = 0 Then P(i, j) = 0

If rcf(i, j) = 255 Then P(i, j) = 1

Next j

Next i

For i = 0 To PicFilter.ScaleWidth

H(i) = 1

Next i

For j = 0 To PicFilter.ScaleHeight

V(j) = 1

Next j

For i = 0 To PicFilter.ScaleWidth

For j = 0 To PicFilter.ScaleHeight

PicFilter.PSet (i, j), RGB(rcf(i, j), gcf(i, j), bcf(i, j))

Next j

Next i

For i = 1 To PicFilter.ScaleWidth

Hpast = H(i - 1)

For j = 1 To PicFilter.ScaleHeight

H(i) = H(i) * P(i, j)

Next j

If H(i) = 0 And Hpast = 1 Then

PicFilter.Line (i, 0)-(i, 120), vbRed

ULx = i

BLx = i

ElseIf H(i) = 1 And Hpast = 0 Then

PicFilter.Line (i, 0)-(i, 120), vbRed

URx = i

BRx = i

Else

End If

Next i

For j = 1 To PicFilter.ScaleHeight

Vpast = V(j - 1)

For i = 1 To PicFilter.ScaleWidth

Page 111: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

81

V(j) = V(j) * P(i, j)

Next i

If V(j) = 0 And Vpast = 1 Then

PicFilter.Line (0, j)-(160, j), vbBlue

ULy = j

URy = j

ElseIf V(j) = 1 And Vpast = 0 Then

PicFilter.Line (0, j)-(160, j), vbBlue

BLy = j

BRy = j

Else

End If

Next j

CenterPointX = ((URx - ULx) / 2) + ULx

CenterPointY = ((BLy - ULy) / 2) + ULy

PicFilter.Line (CenterPointX - 5, CenterPointY)-(CenterPointX + 5,

CenterPointY), vbGreen

PicFilter.Line (CenterPointX, CenterPointY - 5)-(CenterPointX,

CenterPointY + 5), vbGreen

PicOutRk.Line (CenterPointX - 5, CenterPointY)-(CenterPointX + 5,

CenterPointY), vbGreen

PicOutRk.Line (CenterPointX, CenterPointY - 5)-(CenterPointX,

CenterPointY + 5), vbGreen

LblKoor = CenterPointX & " , " & CenterPointY

'position

If CenterPointX < 70 Then

LblCtrX = "Berada di Kiri,"

MSComm1.Output = "3"

End If

If CenterPointX > 90 Then

LblCtrX = "Berada di Kanan,"

MSComm1.Output = "1"

End If

If CenterPointX < (80 + 10) And CenterPointX > (80 - 10) Then

LblCtrX = "Berada di Tengah,"

MSComm1.Output = "2"

End If

If CenterPointY < 50 Then

LblCtrY = "Atas"

MSComm1.Output = "1"

End If

If CenterPointY > 70 Then

LblCtrY = "Bawah"

MSComm1.Output = "3"

End If

If CenterPointY < (60 + 10) And CenterPointY > (60 - 10) Then

LblCtrY = "Tengah"

MSComm1.Output = "2"

End If

End Sub

Page 112: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

82

Lampiran 5:

List program aplikasi image processing dengan OpenCV.

#include "cv.h"

#include "highgui.h"

#include <stdlib.h>

#include <stdio.h>

#include <unistd.h>

#include <fcntl.h>

#include <termios.h>

#include <string.h>

#include "serial.h"

#define umax 3217

#define umin 1000

int rPos,gPos,bPos,rentang=80,rThreshold=200,gThreshold=,bThreshold

=;

int rx,ry,oca,ocb,spx=320,spy=,kp =3,ki= 2,kd= 0;

unsigned char oc1ah,oc1al,oc1bh,oc1bl, tracking=0;

// PID

double xerr_old, xerr, xP_err, xI_err, xD_err;

double yerr_old, yerr, yP_err, yI_err, yD_err;

float kp2,ki2,kd2;

int radius = 60;

CvScalar blue = CV_RGB(0,0,); CvScalar blk = CV_RGB(1,,);

int connectivity = 8;

int thickness = 2;

// Text variables

double hscale = 0.7;

double vscale = 0.4;

double shear = 0.2;

int thickness2 = 2;

int line_type = 8;

IplImage *frame = 0, *filter=;

char* WindowName = "Jendela color filtering";

const char* text = "Objek tidak terdeteksi...";

/******************************************************/

void mouseHandler( int event, int xm, int ym, int flags, void

*param )

/* user clicked the image, save subimage as template */

if( event == CV_EVENT_LBUTTONDOWN )

uchar *data = ( uchar* )frame->imageData;

Page 113: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

83

uchar* ptr=(uchar*)(frame->imageData+ym*frame-

>widthStep);

bPos = ptr[3*xm];

gPos = ptr[*xm+];

rPos = ptr[3*xm+];

cvSetTrackbarPos("RED","control panel",rPos );

cvSetTrackbarPos("GREEN","control panel",gPos );

cvSetTrackbarPos("BLUE","control panel",bPos );

/* template is available, start tracking! */

fprintf( stdout, " warna yang difilter >> R=%d

;G=%d ;B=%d \n",rPos,gPos,bPos );

tracking=0;

spx=spx;

spy=spy;

fprintf( stdout, " setting point >> x=%i ;y=%i

\n",spx,spy );

if( event == CV_EVENT_LBUTTONUP )

tracking=1;

/******************************************************/

//XPID

double XPID(double spx, double maxLocx)

double xu;

xerr_old = xerr;

xerr = spx - maxLocx;

xP_err = xerr;

xI_err +=xerr_old;

xD_err = xerr - xerr_old;

xu = (kp2) * xP_err + (ki2)* xI_err + (kd2) * xD_err;

xu = 2150-xu;

if (xu > umax) xu = umax;

if (xu < umin) xu = umin;

if (xI_err > 2000) xI_err = 2000;

if (xI_err < -) xI_err = -;

return xu;

/******************************************************/

//YPID

double YPID(double spy, double maxLocy)

double yu;

yerr_old = yerr;

yerr = maxLocy - spy;

yP_err = yerr;

yI_err +=yerr_old;

yD_err = yerr - yerr_old;

Page 114: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

84

yu = (kp2) * yP_err + (ki2) * yI_err + (kd2) * yD_err;

yu = yu+2050;

if (yu > umax) yu = umax;

if (yu < umin) yu = umin;

if (yI_err > 2000) yI_err = 2000;

if (yI_err < -) yI_err = -;

return yu;

/***********************************************/

int main( int argc, char **argv )

CvCapture *capture = 0;

int key = 0;

int x,y,r,g,b,dr,dg,db;

fd = open_port();

init_port(fd);

/* initialize camera */

capture = cvCaptureFromCAM( 1 );

CvScalar blue = CV_RGB(0,,0);

CvFont font1;

cvInitFont(&font1,

CV_FONT_HERSHEY_SIMPLEX,hscale,vscale,shear,thickness2,line_type);

/* always check */

if ( !capture )

fprintf( stderr, "Cam\n" );

return 1;

/* create a window for the video */

cvNamedWindow( "normal cam", CV_WINDOW_AUTOSIZE );

cvNamedWindow( "control panel", CV_WINDOW_AUTOSIZE );

cvResizeWindow( "control panel", 420,);

cvSetMouseCallback( "normal cam", mouseHandler, NULL );

cvNamedWindow(WindowName, CV_WINDOW_AUTOSIZE);

cvResizeWindow( WindowName, 640,);

filter=cvCreateImage(cvSize(640,480), 8, 1);

cvCreateTrackbar("KP","control panel",&kp,,);

cvCreateTrackbar("KI","control panel",&ki,,);

cvCreateTrackbar("KD","control panel",&kd,,);

cvCreateTrackbar("RED","control panel",&rThreshold,5,);

cvCreateTrackbar("GREEN","control panel",&gThreshold,255,);

cvCreateTrackbar("BLUE","control panel",&bThreshold,5,);

cvCreateTrackbar("BANDWIDTH","control panel",&rentang,200,);

while( key != 'q' )

//Create Controls & Windows

/* get a frame */

frame = cvQueryFrame( capture );

Page 115: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

85

cvSmooth(frame,frame,CV_GAUSSIAN,3,);

uchar *filterData = (uchar *)filter->imageData;

for(y=; y<; y++)

>widthStep);

uchar* ptr=(uchar*)(frame->imageData+y*frame-

for(x=; x<; x++)

b=ptr[*x];

g=ptr[*x+1];

r=ptr[*x+2];

dr=rThreshold-r;

dg=gThreshold-g;

db=bThreshold-b;

int delta=rentang/2;

if(dr<=delta && dg<=delta && db<=delta &&

dr>=~delta && dg>=~delta && db>=~delta)

filterData[y*filter-

>widthStep+x*filter->nChannels]=;

else

filterData[y*filter-

>widthStep+x*filter->nChannels]=5;

cvSmooth(filter,filter,CV_GAUSSIAN,3,);

cvErode(filter,filter,0,);

cvDilate(filter,filter,0,);

double minVal,maxVal;

CvPoint minLoc,maxLoc;

cvMinMaxLoc(filter,&minVal,&maxVal,&minLoc,&maxLoc,0);

char buffer[33];

sprintf(buffer, "X=%i Y=%i", minLoc.x,minLoc.y);

kp2=kp*0.10;ki2=ki*.10;kd2=kd*.10;

if (minLoc.x< || minLoc.y<3 || tracking != 1)

cvRectangle(frame,cvPoint(320,),cvPoint(,),cvScalar

(,,,),1,,);

cvPutText(frame,text,cvPoint(220,),&font1,blue);

else

Page 116: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

86

cvRectangle(frame,cvPoint(minLoc.x,minLoc.y),cvPoint(minLoc.

x+,minLoc.y+50),cvScalar(,,0,),,,);

cvPutText(frame,buffer,cvPoint(minLoc.x,minLoc.y),&font1,blu

e);

cvCircle(frame,cvPoint(spx,spy),radius,blue,thickness,connec

tivity);

oca=XPID(spx,minLoc.x);

ocb=YPID(spy,minLoc.y+40);

//oc1ah,oc1al,oc1bh,oc1bl;

oc1bh=ocb>>8;

oc1bl=ocb&0xFF;

oc1ah=oca>>8;

oc1al=oca&0xFF;

write(fd,&oc1ah ,1);

write(fd,&oc1al ,1);

write(fd,&oc1bh ,1);

write(fd,&oc1bl ,1);

printf(("x=%4i ; y=%4i ; sx=%5i ; sy=%5i

\n"),minLoc.x,minLoc.y,ocb,oca);

cvShowImage(WindowName,filter);

cvShowImage("normal cam",frame);

//char *filterDataOrigin;

/* always check

/* exit if user press 'q' */

key = cvWaitKey( 1 );

close(fd);

/* free memory */

cvReleaseCapture( &capture );

cvReleaseImage( &frame );

cvReleaseImage( &filter );

cvDestroyWindow( "normal cam" );

cvDestroyWindow( "WindowName" );

return 0;

Page 117: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

87

Lampiran 6:

List program kontroler untuk OpenCV.

#include <mega8.h>

#ifndef RXB8

#define RXB8 1

#endif

#ifndef TXB8

#define TXB8 0

#endif

#ifndef UPE

#define UPE 2

#endif

#ifndef DOR

#define DOR 3

#endif

#ifndef FE

#define FE 4

#endif

#ifndef UDRE

#define UDRE 5

#endif

#ifndef RXC

#define RXC 7

#endif

#define FRAMING_ERROR (1<<FE)

#define PARITY_ERROR (1<<UPE)

#define DATA_OVERRUN (1<<DOR)

#define DATA_REGISTER_EMPTY (1<<UDRE)

#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer

#define RX_BUFFER_SIZE 4

char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE <= 256

unsigned char rx_wr_index,rx_rd_index,rx_counter;

#else

unsigned int rx_wr_index,rx_rd_index,rx_counter;

#endif

// This flag is set on USART Receiver buffer overflow

bit rx_buffer_overflow;

// USART Receiver interrupt service routine

interrupt [USART_RXC] void usart_rx_isr(void)

char status,data;

Page 118: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

88

status=UCSRA;

data=UDR; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)

rx_buffer[rx_wr_index++]=data;

#if RX_BUFFER_SIZE == 256

// special case for receiver buffer size=256

if (++rx_counter == 0)

#else

if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;

if (++rx_counter == RX_BUFFER_SIZE)

rx_counter=0;

#endif

rx_buffer_overflow=1;

#ifndef _DEBUG_TERMINAL_IO_

// Get a character from the USART Receiver buffer

#define _ALTERNATE_GETCHAR_

#pragma used+ char getchar(void)

char data; while (rx_counter==0);

data=rx_buffer[rx_rd_index++];

#if RX_BUFFER_SIZE != 256

if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;

#endif

#asm("cli")

--rx_counter;

#asm("sei")

return data;

#pragma used-

#endif

// Standard Input/Output functions

#include <stdio.h>

#include <delay.h>

#define periode 27647

#define tmax 3200

#define tmin 1100

#define delta 2100

#define mx PORTB.1

#define my PORTB.2

unsigned int s1,s2,s3,s4;

// Timer1 overflow interrupt service routine

interrupt [TIM1_OVF] void timer1_ovf_isr(void)

// Place your code here

mx=1; my=1;

Page 119: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

89

if (rx_buffer[0]>12 || rx_buffer[0]<3.5 || rx_buffer[2]>12 ||

rx_buffer[2]<3.5)

OCR1A=2142;

OCR1B=2142;

else

OCR1AH=s1;//rx_buffer[0];

OCR1AL=s2;//rx_buffer[1];

OCR1BH=s3;//rx_buffer[2];

OCR1BL=s4;//rx_buffer[3];

//delay_ms(5);

// Timer1 output compare A interrupt service routine

interrupt [TIM1_COMPA] void timer1_compa_isr(void)

// Place your code here

mx=0;

// Timer1 output compare B interrupt service routine

interrupt [TIM1_COMPB] void timer1_compb_isr(void)

// Place your code here

my=0;

void main(void)

PORTB=0x00;

DDRB=0x06;

PORTC=0x00;

DDRC=0x3F;

PORTD=0x00;

DDRD=0x00;

TCCR1A=0x02;

TCCR1B=0x1A;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1=periode;

OCR1A=2142;

OCR1B=2142;

TIMSK=0x1C;

UCSRA=0x00;

UCSRB=0x98;

UCSRC=0x86;

UBRRH=0x00;

UBRRL=0x47;

ACSR=0x80;

SFIOR=0x00;

#asm("sei")

while (1)

s1=rx_buffer[0];

s2=rx_buffer[1];

Page 120: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

90

s3=rx_buffer[2];

s4=rx_buffer[3];

Page 121: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

91

Lampiran 7:

List program kontroler untuk Visual Basic.

#include <mega8.h>

#define tmax 3217

#define tmin 1000

#ifndef RXB8

#define RXB8 1

#endif

#ifndef TXB8

#define TXB8 0

#endif

#ifndef UPE

#define UPE 2

#endif

#ifndef DOR

#define DOR 3

#endif

#ifndef FE

#define FE 4

#endif

#ifndef UDRE

#define UDRE 5

#endif

#ifndef RXC

#define RXC 7

#endif

#define FRAMING_ERROR (1<<FE)

#define PARITY_ERROR (1<<UPE)

#define DATA_OVERRUN (1<<DOR)

#define DATA_REGISTER_EMPTY (1<<UDRE)

#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer

#define RX_BUFFER_SIZE 2 char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE <= 256

unsigned char rx_wr_index,rx_rd_index,rx_counter;

#else

unsigned int rx_wr_index,rx_rd_index,rx_counter;

#endif

// This flag is set on USART Receiver buffer overflow

bit rx_buffer_overflow;

// USART Receiver interrupt service routine

interrupt [USART_RXC] void usart_rx_isr(void)

Page 122: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

92

char status,data;

status=UCSRA;

data=UDR;

if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)

rx_buffer[rx_wr_index++]=data;

#if RX_BUFFER_SIZE == 256

// special case for receiver buffer size=256

if (++rx_counter == 0)

#else

if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;

if (++rx_counter == RX_BUFFER_SIZE)

rx_counter=0;

#endif

rx_buffer_overflow=1;

#ifndef _DEBUG_TERMINAL_IO_

// Get a character from the USART Receiver buffer

#define _ALTERNATE_GETCHAR_

#pragma used+

char getchar(void)

char data;

while (rx_counter==0);

data=rx_buffer[rx_rd_index++];

#if RX_BUFFER_SIZE != 256 if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;

#endif

#asm("cli")

--rx_counter;

#asm("sei") return data;

#pragma used-

#endif

// Standard Input/Output functions

#include <stdio.h>

#include <delay.h>

#define sx OCR1A

#define sy OCR1B

unsigned char t;

void main(void)

PORTB=x00;

DDRB=x06;

PORTC=x00;

DDRC=x3F;

PORTD=x00;

DDRD=x00;

TCCR1A=xA2;

Page 123: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

93

TCCR1B=x1A;

TCNT1H=x00;

TCNT1L=x00;

ICR1=;

OCR1AH=x00;

OCR1AL=x00;

OCR1BH=x00;

OCR1BL=x00;

TIMSK=x1C;

UCSRA=x00;

UCSRB=x98;

UCSRC=x86;

UBRRH=x00;

UBRRL=x47;

ACSR=x80;

SFIOR=x00;

#asm("sei")

t=;

sx=; sy=2;

delay_ms();

while (1)

if( rx_buffer[0]==x31 && rx_buffer[1]==x31)

if (sx>=tmin)sx--;

if (sy>=tmin)sy--;

delay_ms(t);

else if( rx_buffer[0]==0x33 && rx_buffer[1]==0x33)

if (sx<=tmax)sx++; if (sy<=tmax)sy++;

delay_ms(t);

else if( rx_buffer[0]==0x31 && rx_buffer[1]==0x33)

if (sx>=tmin)sx--;

if (sy<=tmax)sy++;

delay_ms(t);

else if( rx_buffer[0]==0x33 && rx_buffer[1]==0x31)

if (sy<=tmax)sx++;

if (sx>=tmin)sy--;

delay_ms(t);

else if( rx_buffer[0]==0x31 && rx_buffer[1]==0x32)

if (sx>=tmin)sx--;

delay_ms(t);

else if( rx_buffer[0]==0x33 && rx_buffer[1]==0x32)

if (sx<=tmax)sx++;

delay_ms(t);

else if( rx_buffer[0]==0x32 && rx_buffer[1]==0x31)

Page 124: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

94

if (sy>=tmin)sy--;

delay_ms(t);

else if( rx_buffer[0]==0x32 && rx_buffer[1]==0x33)

if (sy<=tmax)sy++;

delay_ms(t);

else ;

putchar(rx_buffer[0]);

putchar(rx_buffer[1]);

putchar(OCR1AL);

putchar(OCR1BL);

Page 125: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

95

PERNYATAAN KEASLIAN TULISAN

Saya yang bertanda tangan di bawah ini:

Nama : Rizky Dwi Septanto

NIM : 9123100013

Program Studi : Teknik Mekatronika

Menyatakan dengan sebenarnya bahwa laporan tugas akhir ini

benar-benar merupakan hasil karya saya sendiri, bukan merupakan

pengambilalihan tulisan atau pikiran orang lain yang saya akui sebagai

hasil tulisan atau pikiran saya sendiri.

Apabila di kemudian hari terbukti atau dapat dibuktikan tugas akhir ini

hasil jiplakan, maka saya bersedia menerima sanksi atas perbuatan tersebut.

Malang, 13 Februari 2013

Yang Membuat pernyataan,

Rizky Dwi Septanto

Page 126: Rizky dwi septanto tugas akhir rancang bangun robot shape fo

96

RIWAYAT HIDUP PENULIS

Rizky Dwi Septanto dilahirkan di Mojokerto tanggal 12

September 1992, putra kedua dari tiga

bersaudara dari pasangan Bapak Irianto dan Ibu

Sugiarti. Setelah menempuh pendidikan formal di SDN

Balongsari 2 dan lulus tahun 2004, SMP Negeri 8 dan

lulus tahun 2007 dan SMK Tamansiswa Mojokerto lulus

tahun 2010 penulis melanjutkan pendidikan

Diploma 3 di POLITEKNIK KOTA MALANG pada tahun 2010 dan dilanjutkan

dengan mengerjakan tugas akhir dengan judul Rancang Bangun Robot

Shape Follower dengan Metode .

Pada saat menempuh pendidikan mulai dari SD penulis sangat menyukai

musik, pada duduk di bangku SMP hingga SMK penulis aktif dalam

kegiatan ektrakurikuler musik. Dilanjutkan masuk perguruan tinggi penulis juga

aktif dan ikut serta dalam organisasi kemahasiswan UKM Robotika dan penulis

dipercaya sebagai wakil ketua UKM Robotika (2012-2013). Semoga

ilmu yang penulis dapatkan dari bangku SD hingga Perguruan Tinggi

dapat menjadi bekal untuk mengarungi kehidupan selanjutnya. Dan ilmu yang

didapatkan menjadi ilmu yang bermanfaat, dan barokah, Amin.

Dengan ketekunan dan motivasi untuk terus belajar, berusaha

dan dukungan dari semuanya, penulis telah berhasil menyelesaikan pengerjaan

tugas akhir ini. Semoga dengan penulisan tugas akhir ini dapat

bermanfaat bagi

semuanya.

Data Riwayat Penulis

Nama : Rizky Dwi Septanto

Email : [email protected]