PERANCANGAN ROBOT LINE FOLLOWER SORTIR BENDA DENGAN MENGGUNAKAN KAMERA SKRIPSI Oleh Roqiqul Ma'ani...

81
PERANCANGAN ROBOT LINE FOLLOWER SORTIR BENDA DENGAN MENGGUNAKAN KAMERA SKRIPSI Oleh Roqiqul Ma’ani NIM 081910201052 PROGRAM STUDI STRATA SATU JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS JEMBER 2013

Transcript of PERANCANGAN ROBOT LINE FOLLOWER SORTIR BENDA DENGAN MENGGUNAKAN KAMERA SKRIPSI Oleh Roqiqul Ma'ani...

PERANCANGAN ROBOT LINE FOLLOWER SORTIR BENDADENGAN MENGGUNAKAN KAMERA

SKRIPSI

Oleh

Roqiqul Ma’aniNIM 081910201052

PROGRAM STUDI STRATA SATUJURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIKUNIVERSITAS JEMBER

2013

ii

PERANCANGAN ROBOT LINE FOLLOWER SORTIR BENDADENGAN MENGGUNAKAN KAMERA

SKRIPSI

diajukan guna melengkapi tugas akhir dan memenuhi salah satu syaratuntuk menyelesaikan Program Studi Teknik Elektro (S1)

dan mencapai gelar Sarjana Teknik

Oleh

Roqiqul Ma’aniNIM 081910201052

PROGRAM STUDI STRATA SATUJURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIKUNIVERSITAS JEMBER

2013

iii

PERSEMBAHAN

Alhamdulillah, segala puji bagi Allah SWT yang telah memberikan limpahan

nikmat yang sangat luar biasa kepada penulis dan tidak lupa juga sholawat kepada

Nabi besar Muhammad SAW yang telah membawa kita semua menuju peradaban

manusia yang lebih baik. Skripsi bagi saya adalah salah satu fase kehidupan dimana

saya berada di titik terendah dengan berbagai cobaan hidup sehingga butuh banyak

dukungan agar saya mampu bangkit dan akhirnya menyelesaikannya. Oleh karena

itu, dengan kerendahan hati penulis mempersembahkan karya tulis ini untuk :

1. Kedua orang tuaku, Ibunda Maftuha dan Ayahanda Abd. Hamid Syam yang

selalu mendoakan dan selalu mendukung baik secara moral maupun materi.

2. Kakakku Ach. Habanal Huda dan Adikku Fina Wildaniyah yang selalu

menjadi motivasi, penulis selalu mendoakan agar sukses selalu.

3. Semua Dosen Jurusan Teknik Elektro Fakultas Teknnik Universitas Jember

yang telah membimbing dan memberikan ilmu. Terutama Bapak H. Samsul

Bachri M, S.T.,MM.T selaku DPU dan Bapak Sumardi, ST., MT selaku DPA

yang telah meluangkan waktu dan pikirannya seta perhatiannya guna

memberikan bimbingan dan pengarahan demi terselesainya skripsi ini.

4. Seluruh Guru-guruku dari TK, MI, SMP, SMA dan Guru Mengaji yang telah

membimbing dengan sabar dan memberikan ilmu.

5. Teman-teman teknik, khususnya Teknik Elektro angkatan 2008.

6. Teman-teman para penghuni COSAMI, punggawa BIBOT beserta

komponen-komponen pendukungnya.

7. Teman-teman KKT desa Keting : AKWS, MPA, TAL, NS, AM, MID, IM.

8. Teman-teman Asisten Laboratorium Dasar dan Optik, UKM RISTEK dan

UKM ROBOTIKA.

9. Para dewan guru dan murid-muridku di MA. Annuriyyah.

10. Almamater Universitas Jember yang kubanggakan.

iv

MOTTO

“Karena sesungguhnya sesudah kesulitan itu ada kemudahan. Sesungguhnyasesudah kesulitan itu ada kemudahan.”(Terjemahan Q.S Al Insyirah 5-6)

“Knowledge is love and light and vision.”(Hellen Keller)

“Pendidikan adalah rangkaian pelajaran yang semakin lama malah semakintinggi nilainya.”(Sherlock Holmes)

“Optimisme adalah jalan yang membawamu pada keberhasilan”(Roqiqul Ma’ani)

v

PERNYATAAN

Saya yang bertanda tangan dibawah ini:

nama : Roqiqul Ma’ani

NIM : 081910201052

menyatakan dengan sesungguhnya bahwa karya ilmiah yang berjudul “Perancangan

Robot Line Follower Sortir Benda dengan Menggunakan Kamera” adalah benar-

benar hasil karya sendiri, kecuali kutipan yang sudah saya sebutkan sumbernya,

belum pernah diajukan pada institusi mana pun, dan bukan karya jiplakan. Saya

bertanggung jawab atas keabsahan dan kebenaran isinya sesuai dengan sikap ilmiah

yang harus dijunjung tinggi.

Demikian pernyataan ini saya buat dengan sebenarnya, tanpa ada tekanan dan

paksaan dari pihak mana pun serta bersedia mendapat sanksi akademik jika ternyata

di kemudian hari pernyataan itu tidak benar.

Jember, 27 Mei 2013

Yang menyatakan,

Roqiqul Ma’ani

NIM 081910201052

vi

SKRIPSI

PERANCANGAN ROBOT LINE FOLLOWER SORTIR BENDA

DENGAN MENGGUNAKAN KAMERA

Oleh:

Roqiqul Ma’ani

NIM 081910201052

Pembimbing :

Dosen Pembimbing Utama : H. Samsul Bachri M., ST., M.MT.

Dosen Pembimbing Anggota : Sumardi, S.T.,M.T.

vii

PENGESAHAN

Skripsi berjudul “Perancangan Robot Line Follower Sortir Benda dengan

Menggunakan Kamera “ telah diuji dan disahkan pada :

Hari, tanggal : Senin, 27 Mei 2013

Tempat : Fakultas Teknik Universitas Jember.

Tim Penguji:

Mengetahui,

MengesahkanDekan Fakultas Teknik,

Ir. Widyono Hadi, M.T.NIP 19610414 198902 1 001

Pembimbing Utama,

H. Samsul Bachri M., S.T.,M.MT.NIP. 19640317 199802 1 001

.NIP. 19690608 199903 1 002

Pembimbing Anggota,

Sumardi, S.T., M.T.NIP. 19670113 199802 1 001

Penguji I,

Satriyo Budi Utomo, S.T., M.T.NIP 19850126 200801 1 002

.

Penguji II,

Suprihadi Prasetyono, S.T., M.T.NIP 19700404 199601 1 001

viii

Perancangan Robot Line Follower Sortir Benda dengan Menggunakan Kamera

Roqiqul Ma’ani

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Jember

ABSTRAK

Computer vision merupakan kombinasi dari Pengolahan Citra dan Pengenalan Pola.Computer vision pada bidang robotik biasa disebut juga dengan vision robot. Visionrobot dapat didefinisikan sebagai proses ekstraksi, karakteristik serta menafsirkaninformasi dari dunia gambar tiga-dimensi dan dapat dibagi menjadi enam wilayahprinsip yang meliputi sensing, preproses, segmentasi, deskripsi, pengenalan daninterpretasi. Dalam penelitian ini aplikasi Computer vision digunakan untukmengenali warna benda yang kemudian diterapkan pada robot line follower untukmengambil dan membawa benda ke tempat yang ditentukan sesuai dengan warnanya.Sensor yang digunakan adalah kamera CMUcam4. Pengujian dilakukan denganmemberi bola warna merah dan biru masing – masing sebanyak delapan kali dankombinasi antara warna merah atau biru secara acak sebanyak sepuluh kali. Darihasil pengujian didapatkan nilai presentase keberhasilan robot dalam mengenaliwarna biru sebesar 75 % dan warna merah 87,5 %. Secara keseluruhan, sistem robotdalam mengenali warna benda memiliki nilai presentase keberhasilan sebesar 80 %.

Kata kunci : sensor kamera, computer vision , line follower, CMUcam4

ix

Sorter Line Follower Robot Design Using Camera

Roqiqul Ma’ani

Department of Electrical Engineering. Engineering Faculty, Jember University

ABSTRACT

Computer vision is a combination of Image Processing and Pattern Recognition.Computer vision on robotics commonly referred to as robot vision. Robot vision canbe defined as the process of extraction, characteristics and interpreting informationfrom the world of three-dimensional images and can be divided into six regionscovering the principles of sensing, preprocessing, segmentation, description,recognition and interpretation. In this study the application of Computer vision isused to identify the color of objects which are then applied to a line follower robot topick up and carry objects to the specified place in accordance with the color. Thesensor is using a camera CMUcam4. Testing is done by giving the ball red and bluerespectively - each as much as eight times and the combination of red or blue colorten times randomly. From the test results obtained percentage value in recognizingblue color by 75% and 87.5% for red color. Overall, the robotic system to recognizecolors of objects have a value equal to 80% the percentage of success.

Keyword : camera sensor, computer vision , line follower, CMUcam4

x

RINGKASAN

Perancangan Robot Line Follower Sortir Benda Dengan Menggunakan

Kamera; Roqiqul Ma’ani, 081910201052; 2013: 48 halaman; Jurusan Teknik

Elektro Fakultas Teknik Universitas Jember.

Robot merupakan suatu perangkat mekanik yang mampu menjalankan tugas-

tugas fisik, baik di bawah kendali dan pengawasan manusia, ataupun yang dijalankan

dengan serangkaian program yang telah didefinisikan terlebih dahulu atau

kecerdasan buatan atau biasa disebut dengan artificial intelligence.

Computer vision pada bidang robotik biasa disebut juga dengan vision robot.

Vision robot dapat didefinisikan sebagai proses ekstraksi, karakteristik serta

menafsirkan informasi dari dunia gambar tiga-dimensi. Proses ini disebut juga

sebagai mesin atau vision komputer ( Computer vision ) dan dapat dibagi menjadi

enam wilayah prinsip yang meliputi sensing, preproses, segmentasi, deskripsi,

pengenalan dan interpretasi.

Dalam dunia robotika aplikasi penggunaan Computer vision kebanyakan

digunakan dalam sebuah kontes robot misalnya robot soccer yang mampu mengejar

objek yang diinginkan. Namun, dalam hal pengenalan warna masih sedikit yang

menerapkan sistem ini pada robot. Umumnya sensor yang digunakan untuk

mengenali warna adalah sensor konvensional yang memiliki kekurangan yaitu jarak

antara sensor dengan objek yang akan diamati harus sangat dekat. Oleh karena itu,

dalam proyek akhir ini akan dibuat suatu aplikasi Computer vision yang mampu

menggantikan peranan sensor konvensional dalam pengenalan warna.

Perancangan robot line follower sortir benda ini dibagi menjadi tiga bagian,

yaitu bagian navigasi robot, gripper dan kamera. Navigasi robot menggunakan

sensor garis untuk membaca garis lintasan yang sudah ditentukan. Gripper

menggunakan sebuah mini motor servo untuk mengambil benda yang akan dibawa.

xi

Kamera menggunaka modul CMUcam4 untuk mengenali warna benda yang akan

dibawa.

Pergerakan robot line follower dipengaruhi letak sensor terhadap garis. Jika

sensor bagian kanan berada pada garis maka robot akan melakukan aksi untuk serong

ke kanan. Jika sensor bagian kiri berada pada garis maka robot akan melakukan aksi

untuk serong ke kiri. Pada lintasan yang berbentuk persimpangan, robot akan

melakukan aksi untuk berbelok ke kanan atau ke kiri sesuai dengan warna benda

yang sedang dibawa.

Sistem kerja gripper menggunakan sebuah motor servo. Jika motor servo

diberi perintah untuk melakukan pergerakan putaran sebesar 180 derajat, maka

kondisi gripper dalam keadaan terbuka. Jika diberi perintah untuk melakukan

pergerakan putaran sebesar 0 derajat, maka kondisi gripper dalam keadaan tertutup.

Kamera CMUcam4 yang digunakan untuk mengenali warna benda

menggunakan komunikasi serial. Port serial yang digunakan adalah port serial 3

yaitu pada pin 14 (Tx) dan 15 (Rx). Nilai yang didapat dari kamera adalah berupa

nilar rata-rata R (merah), G (hijau), B (biru). Dari perbedaan nilai tersebut nantinya

bisa digunakan untuk mengenali warna benda yang ada di depan kamera.

Dari hasil pengujian sistem robot dalam mengenali warna, didapatkan

presentase keberhasilan sebesar 75 % dalam mengenali bola berwarna biru dengan

delapan kali percobaan dan didapatkan presentase keberhasilan sebesar 87,5 % dalam

mengenali bola berwarna merah dengan delapan kali percobaan. Secara keseluruhan

jika robot diberi bola berwarna secara acak, presentase keberhasilan sebesar 80 %

dengan sepuluh kali percobaan.

xii

PRAKATA

Puji syukur ke hadirat Allah SWT atas segala rahmat dan karunia- Nya

sehingga penulis dapat menyelesaikan skripsi yang berjudul “Perancangan Robot

Line Follower Sortir Benda dengan Menggunakan Kamera”. Skripsi ini disusun

untuk memenuhi salah satu syarat menyelesaikan pendidikan strata satu (S1) pada

Jurusan Teknik Elektro Fakultas Teknik Universitas Jember dan mencapai gelar

sarjana teknik pada Fakultas Teknik Universitas Jember.

Penyusunan skripsi ini tidak lepas dari bantuan berbagai pihak. Oleh karena

itu, penulis menyampaikan terima kasih kepada:

1. Ir. Widyono Hadi, M.T., selaku Dekan Fakultas Teknik dan Sumardi, S.T., M.T.,

selaku Ketua Jurusan Teknik Elektro Universitas Jember yang telah memberi

kemudahan bagi penulis untuk menyelesaikan skripsi ini;

2. H. Samsul Bachri M., S.T.,MM.T. selaku Dosen Pembimbing Utama, Sumardi,

S.T.,M.T. selaku Dosen Pembimbing Anggota dan Satriyo Budi Utomo,

S.T.,M.T. serta Agus Irwan K., S.T. selaku dosen pembimbing pembantu dan

Teknisi Laboratorium yang memberikan arahan dalam penyelesaian skripsi ini ;

3. Seluruh dosen dan staf akademik yang telah banyak membantu selama penulis

menempuh kuliah di Jurusan Teknik Elektro Fakultas Teknik Universitas Jember;

4. Kedua orang tua, kakak dan adikku tercinta yang telah memberikan dorongan dan

doanya demi terselesaikannya skripsi ini;

5. Semua guru-guruku yang telah sudi menurunkan ilmunya kepadaku, semoga

bermanfaat bagi kehidupanku dan kehidupan umat manusia;

6. Rekan seperjuanganku Tri Bagus Rahmad K., S.T. yang telah membantu dan

bekerja sama dalam menyelesaikan skripsi ini;

7. Dimas Agus P. sekeluarga yang telah bersedia memfasilitasi tempat dan

peralatannya untuk menyelesaikan skripsi ini;

xiii

8. Teman-temanku semua, khususnya Hemi, Yudis, Wahyu, Abi, Rizal, Rahman,

Mirza, Trian, Fajri, Ricak, Nayla, Lita, Annisa K., terima kasih atas segala kisah

yang pernah kita ukir bersama, sedih, senang semua itu akan jadi cerita tersendiri

dan kesan yang tidak akan pernah terlupakan selama hidup;

9. Semua jajaran guru di MA. Annuriyyah yang telah bersedia menerima dan

mendukung penulis dalam menyelesaikan skripsi ini.

10. Semua pihak yang telah menyalurkan bantuan kepada penulis dalam penulisan

skripsi ini baik langsung maupun tidak langsung yang tidak dapat saya sebutkan

satu persatu.

Penulis juga menerima segala kritik dan saran dari semua pihak demi

kesempurnaan skripsi ini. Akhirnya penulis berharap, semoga skripsi ini dapat

bermanfaat.

Jember, Juni 2013 Penulis

xiv

DAFTAR ISI

Halaman

HALAMAN SAMPUL.......................................................................................... i

HALAMAN JUDUL ............................................................................................. ii

HALAMAN PERSEMBAHAN ........................................................................... iii

HALAMAN MOTTO ........................................................................................... iv

HALAMAN PERNYATAAN............................................................................... v

HALAMAN PEMBIMBINGAN.......................................................................... vi

HALAMAN PENGESAHAN............................................................................... vii

ABSTRAK ............................................................................................................. viii

ABSTRACT ............................................................................................................ ix

RINGKASAN ........................................................................................................ x

PRAKATA............................................................................................................. xii

DAFTAR ISI.......................................................................................................... xiv

DAFTAR GAMBAR............................................................................................. xvii

DAFTAR TABEL ................................................................................................. xviii

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

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

1.2 Rumusan Masalah .................................................................................. 3

1.3 Batasan Masalah..................................................................................... 4

1.4 Tujuan ..................................................................................................... 4

1.5 Manfaat ................................................................................................... 4

BAB 2. TINJAUAN PUSTAKA........................................................................... 5

2.1 Sistem Visual ........................................................................................... 5

2.2 Citra warna digital RGB ....................................................................... 6

2.3 ADC ......................................................................................................... 7

2.4 Sensor ...................................................................................................... 9

2.4.1 Sensor Proximity ............................................................................... 9

xv

2.4.2 Sensor Kamera .................................................................................. 10

2.5 Arduino IDE ........................................................................................... 11

2.5.1 Arduino Hardware ............................................................................ 12

2.5.2 Arduino Software .............................................................................. 12

BAB 3. METODE PENELITIAN........................................................................ 14

3.1 Lokasi dan Tempat Penelitian............................................................... 14

3.2 Tahapan Perencanaan ........................................................................... 14

3.3 Alat dan Bahan ....................................................................................... 16

3.4 Mekanik robot ........................................................................................ 16

3.5 Blok Perangkat Keras ............................................................................ 17

3.5.1 Sensor Garis ...................................................................................... 17

3.5.2 Sensor Warna .................................................................................... 17

3.5.3 Gripper .............................................................................................. 18

3.5.4 Driver Motor ..................................................................................... 19

3.6 Arduino Mega 1250 (Sistem Minimum AVR ATMega 1250) ............ 20

3.7 Desain Perangkat Lunak ....................................................................... 21

3.7.1 Pembacaan Sensor Garis ................................................................... 22

3.7.2 Pengenalan Warna............................................................................. 24

3.8 Instalasi CMUcam .................................................................................. 26

3.8.1 Instalasi Hardware............................................................................. 26

3.8.2 Instalasi software............................................................................... 27

3.9 Blok Diagram, Alogaritma dan Flowchart Sistem............................... 28

BAB 4. PEMBAHASAN ....................................................................................... 30

4.1 Pengujian Robot Linefollower .............................................................. 30

4.1.1 Pengujian bagian pembacaan ADC................................................... 30

4.1.2 Pengujian Navigasi Robot................................................................. 35

4.2 Pengujian Motor Servo .......................................................................... 36

4.3 Pengujian Kamera CMUcam4 .............................................................. 37

xvi

4.3.1 Pengujian Komunikasi Serial CMUcam4 dengan Arduino .............. 39

4.3.2 Pengujian Penggolongan Warna ....................................................... 41

4.3.3 Pengujian Jarak Jangkauan ............................................................... 43

4.4 Pengujian keseluruhan sistem ............................................................... 44

BAB 5. KESIMPULAN ........................................................................................ 47

5.1 Kesimpulan ............................................................................................. 47

5.2 Saran........................................................................................................ 47

DAFTAR PUSTAKA............................................................................................ 48

xvii

DAFTAR GAMBAR

Halaman

Gambar 2.1 Model warna RGB .............................................................................. 7

Gambar 2.2 ADC dengan kecepatan sampling rendah dan sampling tinggi........... 8

Gambar 2.3 Ilustrasi sensor garis ............................................................................ 9

Gambar 2.4 Board Arduino..................................................................................... 12

Gambar 3.1 Chassis Rover X5 ................................................................................ 16

Gambar 3.2 Rangkaian sensor garis pada robot line follower ............................... 17

Gambar 3.3 Model Rancangan Pembuatan Gripper ............................................... 18

Gambar 3.4 Bentuk Jadi Model Gripper................................................................. 19

Gambar 3.5 Rangkaian H-Bridge............................................................................ 19

Gambar 3.6 Pin Map Arduino Mega 1250.............................................................. 21

Gambar 3.7 Diagram alir pembacaan garis............................................................. 22

Gambar 3.8 Lintasan robot...................................................................................... 24

Gambar 3.9 Blok Diagram Proses Pengenalan Warna .......................................... 25

Gambar 3.10 Flowchart Pencitraan ........................................................................ 26

Gambar 3.11 Blok Diagram Proses Pengenalan Warna.......................................... 28

Gambar 3.12 Flowchart robot line follower sortir benda ....................................... 29

Gambar 4.1 Nilai adc pada bidang putih ................................................................ 32

Gambar 4.2 Nilai adc pada bidang abu-abu ........................................................... 32

Gambar 4.3 Nilai adc pada bidang hitam ............................................................... 32

Gambar 4.4 Aktifitas kamera pada saat mengirimkan data Color Statistic ............ 38

Gambar 4.5 Gambar yang dihasilkan kamera ......................................................... 38

xviii

DAFTAR TABEL

Halaman

Tabel 3.1 Tahapan Perencanaan ............................................................................. 14

Tabel 3.2 Kombinasi sensor dan aksi robot ........................................................... 23

Tabel 4.1 Perbandingan tegangan pada bidang putih ............................................. 33

Tabel 4.2 Perbandingan tegangan pada bidang abu-abu ........................................ 33

Tabel 4.3 Perbandingan tegangan pada bidang hitam ............................................ 33

Tabel 4.4 Pengujian navigasi robot ........................................................................ 36

Tabel 4.5 Pengujian motor servo ........................................................................... 37

Tabel 4.6 Perbandingan Nilai Data CMUcam4 GUI dengan Serial Monitor ........ 40

Tabel 4.7 Pengaruh nilai Brightness pada nilai RGB benda warna biru ................ 42

Tabel 4.8 Pengaruh nilai Brightness pada nilai RGB benda warna merah ............ 42

Tabel 4.9 Pengujian Jarak Jangkauan ..................................................................... 43

Tabel 4.10 Percobaan pemberian bola merah ........................................................ 44

Tabel 4.11 Percobaan pemberian bola biru ............................................................ 45

Tabel 4.12 Percobaan pemberian bola secara acak ................................................ 46

1

BAB 1. PENDAHULUAN

1.1 Latar Belakang

Robot merupakan suatu perangkat mekanik yang mampu menjalankan tugas-

tugas fisik, baik di bawah kendali dan pengawasan manusia, ataupun yang dijalankan

dengan serangkaian program yang telah didefinisikan terlebih dahulu atau

kecerdasan buatan atau biasa disebut dengan artificial intelligence. Perkembangan

robot di negara-negara maju seperti Amerika, Jepang, Korea, dan Jerman mengalami

peningkatan yang tajam. Saat ini robot telah digunakan sebagai alat untuk membantu

pekerjaan manusia. Seiring dengan berkembangnya teknologi, khususnya teknologi

elektronik, peran robot menjadi semakin penting tidak saja dibidang sains, tapi juga

di berbagai bidang lainnya, seperti di bidang kedokteran, pertanian, industri, bahkan

militer. Secara sadar atau tidak, saat ini robot telah masuk dalam kehidupan manusia

sehari-hari dalam berbagai bentuk dan jenis. Ada jenis robot sederhana yang

dirancang untuk melakukan kegiatan yang sederhana, mudah dan berulang-ulang,

ataupun robot yang diciptakan khusus untuk melakukan sesuatu yang rumit, sehingga

dapat berperilaku sangat kompleks dan secara otomatis dapat mengontrol dirinya

sendiri sampai batas tertentu (Wikipedia,2011).

Machine vision merupakan salah satu cabang ilmu yang sering digunakan

untuk pengembangan bidang robotik. Cabang ilmu ini lebih dikenal dengan sebutan

computer vision. Cabang ilmu ini mempelajari bagaimana komputer dapat mengenali

objek yang diamati / diobservasi. Computer vision merupakan kombinasi dari

Pengolahan Citra (Image Processing) dan Pengenalan Pola (Pattern Recognition).

Secara keseluruhan tujuan dari sistem computer vision adalah membuat model dunia

nyata dari sebuah gambar. Sebuah sistem computer vision memperbaiki informasi

yang berguna mengenai scene dari proyeksi dua-dimensi. Gambar proyeksi dua-

dimensi berasal dari dunia tiga-dimesi, maka informasi yang didapat tidak langsung

2

tersedia dan harus diperbaiki. Pengetahuan mengenai objek-objek pada scene dan

proyeksi geometri sangat diperlukan dalam memperbaiki informasi tersebut.

Salah satu contoh aplikasi dari Computer vision di bidang kesehatan atau medis

adalah untuk mendiagnosa suatu penyakit. Sistem computer vision membantu dokter

untuk mendiagnosa suatu penyakit dengan menggunakan gambar tomografi yang

diolah oleh komputer. Gambar-gambar medis dapat diproses oleh sistem yang ada

didalam komputer ( machine vision ) untuk membantu dalam hal diagnosa sebuah

penyakit. Sistem tersebut telah dikembangkan untuk semua mode pencitraan yang

berguna dalam berbagai aspek kesehatan. Aplikasi serupa sedang dikembangkan

untuk pemeriksaan industri, pertanian, dan produk lainnya. Sistem computer vision

telah digunakan untuk pengendalian kualitas produk misalnya, robot yang berbasis

vision yang mengecek penyegelan pada sebuah tutup botol, hingga untuk pemilihan

buah jeruk atau apel yang berkualitas.

Computer vision tidak hanya berlaku pada pemprosesan gambar saja, tetapi

juga dapat diterapkan pada mobile robot. Seperti halnya pada manusia, kemampuan

vision mempengaruhi robot, dengan mekanisme pengindraan yang mutakhir yang

memungkinkan suatu mesin untuk merespon lingkungannya dengan menggunakan

kecerdasan (inteligent).

Computer vision pada bidang robotik biasa disebut juga dengan vision robot.

Vision robot dapat didefinisikan sebagai proses ekstraksi, karakteristik serta

menafsirkan informasi dari dunia gambar tiga-dimensi. Proses ini disebut juga

sebagai mesin atau vision komputer ( Computer vision ) dan dapat dibagi menjadi

enam wilayah prinsip yang meliputi sensing, preproses, segmentasi, deskripsi,

pengenalan dan interpretasi.

Sudah banyak peneliti yang menerapkan teori computer vision di berbagai

terapan, seperti bidang keamanan, medis, lingkungan, industri maupun game

(permainan). Mulai dari pendeteksi wajah sampai dengan pendeteksi produk di

industri sudah memanfaatkan computer vision. Dalam dunia robotika aplikasi

3

penggunaan computer vision kebanyakan digunakan dalam sebuah kontes robot

misalnya robot soccer yang mampu mengejar objek yang diinginkan. Namun, dalam

hal pengenalan warna masih sedikit yang menerapkan sistem ini pada robot.

Umumnya sensor yang digunakan untuk mengenali warna adalah sensor

konvensional yang memiliki kekurangan yaitu jarak antara sensor dengan objek yang

akan diamati harus sangat dekat. Jarak antara objek yang dibaca haruslah antara 10

mm sampai 25 mm di depan sensor (Widodo, 2010). Oleh karena itu, dalam proyek

akhir ini akan dibuat suatu aplikasi computer vision yang mampu menggantikan

peranan sensor konvensional dalam pengenalan warna yaitu robot line follower sortir

benda menggunakan kamera. Perangkat yang digunakan dalam proyek ini adalah

modul kamera CMUcam4. Diharapkan dengan menggunakan kamera ini obyek dapat

dikenali dengan cepat, tepat dan akurat. Dalam kasus ini benda yang dimaksud

adalah benda berbentuk bola dengan dua warna berbeda yaitu biru dan merah. Secara

garis besar, proses dalam proyek akhir ini adalah bagaimana cara kamera mengenali

objek untuk diproses melalui mikrokontroler kemudian di eksekusi dengan

memungut dan menempatkan objek bersangkutan ke tempat yang telah ditentukan.

1.2 Rumusan Masalah

Dalam penelitian ini dirumuskan suatu permasalahan mengenai bagaimana

menggunakan sistem computer vision untuk proses pengenalan warna dan bagaimana

aplikasi penggunaan sensor kamera pada robot line follower untuk mengenali warna

objek dan mempengaruhi aktifitas navigasi dari robot line follower. Robot line

follower di pilih karena dapat mengikuti garis, dengan kata lain garis tersebut

digunakan sebagai jalur dari robot untuk mendekati objek yang akan diambil dan

menempatkan objek sesuai pada tempatnya dengan cara navigasi yang dipetakan.

4

1.3 Batasan Masalah

Di dalam permasalahan tersebut akan diberi batasan-batasan masalah sebagai

berikut :

1. Kamera yang digunakan adalah CMUcam4

2. Obyek yang digunakan adalah benda berbentuk bola berwarna merah dan

biru.

3. Latar belakang tempat harus berbeda dengan warna obyek yang disensor

4. Obyek berada di depan kamera dan tidak terhalang obyek lain

5. Lintasan atau arena sudah ditentukan

6. Jarak antara kamera dengan objek sudah ditentukan

1.4 Tujuan

Tujuan dari proyek akhir ini adalah membuat robot line follower yang dapat

mengenali warna objek (benda) dengan kamera dan menempatkan benda sesuai

dengan warna yang telah ditentukan menggunakan cara pemetaan serta untuk

mengetahui cara penggunaan sistem computer vision pada modul CMUcam4 sebagai

sensor warna.

1.5 Manfaat

Pemanfaatan alat ini diharapkan dapat digunakan dan dikembangkan dalam

dunia robotika untuk mengganti peran dan fungsi sensor konvensional menjadi

sensor yang didalamnya terdapat pengolahan citra dalam pengenalan warna benda

dan diharapkan dapat membantu pengembangan dunia robotik dalam industri

kedepan.

5

BAB 2. TINJAUAN PUSTAKA

2.1 Sistem Visual

Pengertian Pengolahan Citra (image processing) sedikit berbeda dengan

pengertian mesin visual (machine vision), meskipun keduanya seolah-olah dapat

dipergunakan dengan maksud yang sama. Terminologi pengolahan citra

dipergunakan bila hasil pengolahan data yang berupa citra, adalah juga bentuk citra

yang lain, yang mengandung atau memperkuat informasi khusus pada citra hasil

pengolahan sesuai dengan tujuan pengolahannya. Sedangkan terminologi mesin

visual digunakan bila data hasil pengolahan citra langsung diterjemahkan dalam

bentuk lain, misalnya grafik yang siap diinterpretasikan untuk tujuan tertentu, gerak

peralatan atau bagian dari peralatan mekanis, atau aksi lainnya yang berarti bukan

merupakan citra lagi. Dengan demikian jelaslah bahwa pengolahan citra merupakan

hasil bagian dari mesin visual, karena untuk menghasilkan keluaran selain citra,

informasi dari citra yang ditangkap oleh kamera juga perlu diolah dan dipertajam

pada bagian-bagian tertentu. (Usman Ahmad, 2005).

Sebagaimana layaknya mata dan otak, sistem visual adalah sistem yang

mempunyai kemampuan untuk menganalisa objek secara visual, setelah data objek

yang bersangkutan dimasukkan dalam bentuk citra (image). Secara umum tujuan dari

sistem visual adalah untuk membuat model nyata dari sebuah citra. Citra yang

dimaksud adalah citra digital hasil konversi suatu objek menjadi citra melalui sensor

yang prosesnya disebut digitasi. (Usman Ahmad, 2005) Sistem visual mepunyai

kemampuan untuk memperbaiki informasi yang berguna dari sebuah pemandangan

(scene) hasil proyeksi dua-dimensi. Kata memperbaiki dipakai disini karena citra

merupakan hasil proyeksi dua-dimensi dari objek atau benda 3 dimensi, sehingga

informasi tidak bisa didapat begitu saja. Melainkan harus diperbaiki karena

sesungguhnya ada bagian informasi yang hilang setelah benda diproyeksikan ke

dalam citra. Untuk memperbaiki informasi, diperlukan pengetahuan dan proyeksi

6

geometri dari obyek dalam suatu pemandangan. Contoh yang mudah dipaparkan

dalam hal ini misalnya jarak antara sensor (biasanya kamera) dengan obyek tertentu

dalam sebuah citra tidak dapat diketahui langsung karena informasi kedalaman

(depth) yang merupakan jarak itu sendiri hilang saat obyek dalam ruang (tiga-

dimensi) dikonversi menjadi citra dalam bidang (dua-dimensi). Dengan demikian

bila ada dua atau lebih obyek yang bertumpukan dalam suatu bidang pandang, suatu

obyek tidak dapat langsung diketahui apakah ia berada di depan atau dibelakang

obyek-obyek lainnya. Namun demikian persoalan ini dapat dijawab setelah

dilakukan satu atau beberapa proses pada citra tersebut dengan memanfaatkan

informasi yang tersedia sehingga informasi yang hilang tadi dapat kembali. (Usman

Ahmad, 2005)

2.2 Citra warna digital RGB

Pemodelan warna digunakan untuk menggambarkan sifat-sifat warna secara

matematis, sehingga dengan demikian dapat dilakukan pengolahan citra digital

dengan cara memanipulasi nilai-nilai warna dari citra tersebut secara matematis.

Model warna yang paling banyak digunakan di bidang computer maupun elektronika

adalah model RGB(red-green-blue). Model RGB ini cocok digunakan dalam

implementasi perangkat keras elektronik dan penyimpanan data secara digital.

(Anymous,2005) .

Di dalam model warna RGB, setiap warna dapat didefinisikan dalam tiga

komponen warna yaitu komponen R (merah), G (hijau), dan B (biru). Warna-warna

yang lain dapat diperoleh dengan melakukan kombinasi dari masing-masing

komponen R, G, dan B dengan nilainya masing-masing. Dalam penerapannya di

bidang komputer, harga dari tiap-tiap komponen R, G, dan B berkisar dari 0 sampai

255. Sebagai contoh, warna merah murni memiliki komponen R=255, G=0, B=0,

warna hijau murni memiliki harga R=0, G=255, B=0, dan seterusnya. Untuk warna

7

hitam memiliki harga R=0, G=0, dan B=0, sedangkan warna putih memiliki harga

R=255, G=255, dan B=255. (Anymous,2005)

Model warna RGB ini dapat digambarkan sebagai sebuah kubus dalam

koordinat Cartesian, di mana masing-masing sumbu mewakili harga dari komponen-

komponen R, G, dan B.

Gambar 2.1 Model warna RGB

Sumber: Anymous (2005)

Pada kubus warna RGB ini, warna hitam terletak pada sudut kubus di posisi (0,

0, 0), dan warna putih pada posisi (255, 255, 255). Sudut-sudut kubus yang berimpit

dengan sumbu-sumbu koordinat ditempati oleh warna-warna merah, hijau, dan biru

yang disebut juga dengan warna primer. Sedangkan sudut- sudut kubus yang lainnya

ditempati oleh warna-warna sian, magenta, dan kuning yang disebut juga dengan

warna sekunder. (Anymous,2005)

2.3 ADC

ADC (Analog to Digital Converter) adalah salah satu fasilitas mikrokontroller

dari AVR yang berfungsi untuk mengubah data analog menjadi data digital. ADC

memiliki 2 karakter prinsip, yaitu kecepatan sampling dan resolusi. Kecepatan

8

sampling suatu ADC menyatakan seberapa sering sinyal analog dikonversikan ke

bentuk sinyal digital pada selang waktu tertentu. Kecepatan sampling biasanya

dinyatakan dalam sample per second (SPS).

Gambar 2.2. ADC dengan kecepatan sampling rendah dan sampling tinggi

Sumber: Widodo (2010)

Resolusi ADC menentukan ketelitian nilai hasil konversi ADC. Sebagai

contoh: ADC 8 bit akan memiliki output 8 bit data digital, ini berarti sinyal input

dapat dinyatakan dalam 255 (2n – 1) nilai diskrit. ADC 12 bit memiliki 12 bit output

data digital, ini berarti sinyal input dapat dinyatakan dalam 4096 nilai diskrit. Dari

contoh diatas ADC 12 bit akan memberikan ketelitian nilai hasil konversi yang jauh

lebih baik daripada ADC 8 bit (B. Arifianto, 2009).

Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk

besaran yang merupakan rasio perbandingan sinyal input dan tegangan referensi.

Sebagai contoh, bila tegangan referensi 5 volt, tegangan input 3 volt, rasio input

terhadap referensi adalah 60%. Jadi, jika menggunakan ADC 8 bit dengan skala

maksimum 255, akan didapatkan sinyal digital sebesar 60% x 255 = 153 (bentuk

decimal) atau 10011001 (bentuk biner).

Signal = (sample / max_value) * reverence_voltage

= (153 / 255) * 5 = 3 Volts

9

2.4 Sensor

Sensor adalah sesuatu yang digunakan untuk mendeteksi adanya perubahan

lingkungan fisik atau kimia, sedangkan transduser adalah pengubah variable keluaran

dari sensor menjadi besaran listrik (Wikipedia, 2011). Sensor sering digunakan untuk

pendeteksian pada saat melakukan pengukuran atau pengendalian.

2.4.1 Sensor Proximity

Sensor garis atau sensor proximity adalah sensor yang berfungsi mendeteksi

warna garis hitam atau putih. Biasanya sensor garis ini terdapat pada robot line

follower atau line tracking. Sensor tersebut memiliki bagian pemancar dan bagian

penerima, LED superbright sebagai pemancar cahaya, dan photodetector atau

photodiode sebagai penerima, sistem kerja dari sensor tersebut adalah LED akan

memancarkan cahaya ke sebuah bidang datar, dan jika bidang tersebut berwarna

putih maka cahaya yang dipantulkan dari LED ke photodiode akan banyak dan jika

LED memcancarkan cahaya ke bidang datar yang memiliki warna gelap, maka akan

menyebabkan nilai pantulan cahaya dari LED ke photodiode sedikit, perubahan

banyak tidaknya cahaya yang diterima photodiode tersebut yang menyebabkan

perubahan resistensi pada photodiode .

Gambar 2.3. Ilustrasi sensor garis

Sumber: Widodo (2010)

10

2.4.2 Sensor Kamera

Dalam hal pengolahan citra terdapat penelitian mengenai hal tersebut

menggunakan mikrokontroler diawali oleh Carneige Mellon University yang

membuat modul kamera CMUCam untuk pemakaian pada mobile robot (Bruce,

2000). Modul CMUCam didesain sebagai modul pengolah citra yang murah dan bisa

dihubungkan dengan berbagai mikrokontroler lewat jalur serial (Rowe, 2001). Sensor

kamera yang dipakai pada CMUcam adalah OV9665. CMUcam menggunakan

mikrokontroler 8 bit SX28 sebagai pengolah citranya. Karena keterbatasan RAM,

maka total citra yang bisa diproses hanya sampai 80 X 143 piksel (Horizontal X

Vertikal). Akuisisi dan pemrosesan citra dilakukan secara per baris karena RAM

yang ada tidak mencukupi untuk menampung semua piksel dari kamera. CMUcam

memiliki fitur penjejak warna dengan metode pengambangan terhadap nilai RGB

piksel yang dideteksi. Frame rate maksimal yang dapat dicapai oleh CMUcam

adalah 16.7 frame per detik.

CMUcam4 merupakan versi terbaru dari seri CMUcam sebelumnya. Pada versi

terbaru ini cukup banyak perubahan yang dilakukan agar modul camera ini dapat

digunakan untuk berbagai macam aplikasi dan mampu dihubungkan dengan berbagai

macam kontroler utama, seperti PC, Arduino(AVR), MCS-51, BASIC Stamp, PIC,

dll. Berbasiskan prosesor Parallax P8X32A yang merupakan propeller chip dimana

terdapat 8 buah prosesor di dalam chip tersebut, membuat modul kamera ini mampu

mengakomodasi pengolahan gambar digital dengan cepat dan data tersebut dapat

dibaca dengan mudah oleh mikrokontroler, seperti Arduino (AVR), BASIC Stamp 2,

dll. Selain memiliki prosesor utama yang mumpuni, CMUcam4 juga menggunakan

sensor kamera CMOS OV9665 1.3 MegaPixel yang telah dilengkapi dengan lensa

kamera dengan ukuran yang lebih kecil jika dibangdingkan dengan CMUcam versi

sebelumnya. Contoh aplikasi yang dapat dengan mudah diimplementasikan adalah

"RoboSoccer (mengejar bola bewarna)", hal ini dikarenakan adanya fitur untuk

pembacaan warna gambar pada objek berwarna (contoh : merah) di sumbu X-Y

11

dengan hanya menggunakan mikrokontroler AVR, MCS-51, BASIC Stamp, dll.

Selain perbaikan dari sisi fitur dari pengolahan gambar digital, CMUcam4 juga

menyediakan tambahan fitur TV-Out yang mampu menampilkan gambar di TV.

2.5 Arduino IDE

Arduino merupakan modul single board berbasis mikrokontroler yang berifat

open source (baik hardware maupun software), diturunkan dari Wiring Platform,

dan dirancang untuk memudahkan user dalam penggunaan elektronik dalam berbagai

bidang. Arduino dapat dikatakan sebagai sebuah platform dari physical computing

yang bersifat open source. Arduino tidak hanya sekedar sebuah alat pengembangan,

tetapi merupakan kombinasi dari hardware, bahasa pemrograman dan Integrated

Development Environment (IDE). IDE adalah sebuah software yang sangat berperan

untuk menulis program, meng-compile menjadi kode biner dan meng-upload ke

dalam memory mikrokontroler.

Arduino bersifat open source, baik untuk hardware maupun software-nya.

Skematik, Bill of Material (BoM), dan desain PCB (berbasis EAGLE Software)

Arduino dapat di-download secara bebas. Software untuk pemrograman Arduino

(IDE Arduino) yang berupa executable file juga dapat di-download dan diinstalasi

secara bebas pada komputer user. Saat ini Arduino cukup menjadi pilihan sebagai

modul pengembangan mikrokontroler baik untuk pemula (begginer) hingga tingkat

lanjut (advance). Arduino menawarkan beberapa fitur yang cukup menarik antara

lain:

1. Open source, baik hardware maupun software.

2. Ekonomis, artinya investasi yang cukup murah untuk modul pengembangan

mikrokontroler yang cukup handal.

3. Lintas Platform Sistem Operasi. IDE Arduino dapat dijalankan pada sistem

operasi Windows, Linux, maupun Macintosh.

12

4. Cukup mudah dipelajari dan digunakan. IDE Arduino berbasis IDE

Processing yang menggunakan bahasa pemrograman tingkat tinggi yang

dialeknya sangat mirip dengan C++ dan Java sehingga mudah dipelajari dan

diaplikasikan jika dibandingkan dengan bahasa pemrograman tingkat rendah

seperti Assembler.

5. Konektor standar Arduino yang memungkinkan berbagai add-on (disebut

Shield) dipasangkan dengan Arduino board.

2.5.1 Arduino Hardware

Arduino Hardware hingga saat ini berbasis mikrokontroler AVR 8-bit RISC

(seri ATmega) seperti ATmega168, ATmega328, ATmega1280 dan ATmega2560

yang telah dilengkapi bootloader untuk membantu proses pengisian program.

Gambar 2.4 Board Arduino

Sumber: Massimo

2.5.2 Arduino Software

Software Arduino dikembangkan dengan basis IDE Processing yang

menggunakan bahasa yang mirip dengan C++ dan Java. Bahasa dan alur

13

pemrogramannya cukup mudah dimengerti walupun cukup “Case Sensitive” dan

belum dilengkapi dengan Code Completion (AutoComplete). Software Arduino dapat

dijalankan pada OS multi platform seperti Windows, Linux, dan Macintosh. Software

Arduino bersifat Executable File dan dapat langsung dijalankan tanpa harus

melakukan proses instalasi terlebih dahulu asalkan pada komputer telah terinstalasi

Java Runtime. IDE Arduino Alpha terdiri dari:

1. Editor program, sebuah window yang memungkinkan user menulis dan

melakukan proses editing program dalam bahasa Processing.

2. Compiler, sebuah modul yang mengubah kode program (bahasa Processing)

menjadi kode biner.

3. Uploader, sebuah modul yang berfungsi memuat (meng-upload) kode biner

dari komputer ke dalam memory di dalam Arduino board.

14

BAB 3. METODE PENELITIAN

3.1 Lokasi dan Tempat Penelitian

Kegiatan ini akan dilakukan setelah pelaksanaan seminar proposal dan

pelaksanaannya akan dilakukan pada dua tempat yaitu tempat tinggal pelaksana dan

kampus Fakultas Teknik.

3.2 Tahapan Perencanaan

Dalam pembuatan dibutuhkan langkah-langkah perancangan sebagai berikut:

Tabel 3.1 Tahapan Pernecanaan

JENIS

KEGIATAN

BULAN

I II III IV V VI VII VIII

STUDI

LITERATUR

PERENCANAAN

DAN

PERANCANGAN

KONSTRUKSI

ROBOT

PERANCANGAN

SENSOR

KAMERA

PEMROGRAMAN

UJI COBA DAN

PENGAMATAN

PENYUSUNAN

LAPORAN

1. Studi literatur

Tahap ini merupakan tahap awal dari proses kesuluruhan penelitian, pada

tahap ini digunakan untuk mencari literatur dari penelitian sebelumnya,

15

diharapkan dengan menemukan literatur dari penelitian sebelumnya dapat

memberikan keyakinan bahwa penelitian ini dapat dilaksanakan dan

memberikan arahan untuk mengurangi kesalahan dalam penelitian.

2. Pembelian bahan kebutuhan pembuatan

Tahap kedua adalah mempersiapkan bahan yang diperlukan untuk proses

penelitian, bahan ini meliputi komponen-kompenen elektronika dan bahan

untuk pembuatan mekanik robot

3. Pengerjaan alat baik mekanik dan rangkaian

Tahap ketiga adalah proses pengerjaan untuk membuat robot, pengerjaan

dilakukan mulai dari pembuatan mekanik robot, pembuatan rangkaian

elektronik robot, dan pembuatan sistem control yang telah ditransfer dalam

bentuk listing program.

4. Pengujian alat

Pengujian dilakukan mulai dari mekanik robot, mekanik yang diharapkan

adalah sistem mekanik yang memiliki tingkat presisi yang tinggi, yang

berikutnya adalah melakukan uji coba pada rangkaian elektronika seperti

misalnya rangkaian mikrokontroler (sistem minimum) dan driver motor, dan

yang terakhir melakukan uji coba pada listing program.

5. Penggabungan perangkat yang telah dibuat

Tahap ini akan menggabungkan dari keseluruhan perangkat yaitu mulai dari

sistem mekanik robot, rangkaian elektronik, dan listing program yang telah di

transfer ke memori mikrokontroler.

6. Pengujian alat dan analisa

Menguji sistem yang telah digabungkan secara menyeluruh lebih dahulu,

selanjutnya menganalisis data yang didapatkan pada saat pengujian.

Diharapkan pada tahap ini dapat ditemukan sebuah gagasan baru dalam

mengurangi kesalahan pada tiap tahapan diatasnya.

16

3.3 Alat dan Bahan

Alat dan bahan yang digunakan dalam proyek akhir ini adalah :

A. Hardware

1. Unit Komputer

2. Kamera CMUcam4

3. Kabel serial / USB

4. Motor Servo

5. Arduino Mega 1250

6. Driver Motor

B. Software

1. Propeller tool

2. CMUcam4 GUI

3. Arduino IDE

3.4 Mekanik robot

Mekanik robot menggunakan chassis rover x5 yang dimodifikasi sesuai

kebutuhan. Komponen gerak robot terdiri dari dua buah motor penggerak roda

kanan dan kiri. Di bagian depan body robot terdapat Gripper yang terintegrasi

dengan motor servo. Fungsi Gripper adalah untuk mengambil bola yang akan

diseleksi.

.

Gambar 3.1 Chassis Rover X5

Sumber : dfrrobot.com

17

3.5 Blok Perangkat Keras

3.5.1 Sensor Garis

Sensor garis atau sensor proximity adalah sensor yang berfungsi mendeteksi

warna garis hitam atau putih. Sensor tersebut memiliki bagian pemancar dan bagian

penerima. LED superbright sebagai pemancar cahaya dan photodiode sebagai

penerima. Sistem kerja dari sensor tersebut adalah LED akan memancarkan cahaya

ke sebuah bidang datar, dan jika bidang tersebut berwarna putih maka cahaya yang

dipantulkan dari LED ke photodiode akan banyak dan sebaliknya. Perubahan

banyak tidaknya cahaya yang diterima photodiode tersebut yang menyebabkan

perubahan resistensi pada photodiode . Sinyal sensor ini kemudian diterima oleh

mikrokontroller untuk diolah sehingga dapat diterjemahkan sebagai perintah untuk

aksi robot dalam bergerak.

Gambar 3.2 Rangkaian sensor garis pada robot linefollower

3.5.2 Sensor Warna

Sensor warna yang digunakan adalah kamera CMUcam4. CMUcam modul

sudah terintegrasi dengan sensor kamera OmniVision 9665 CMOS. Setelah sensor

tersebut mendeteksi obyek yang dibutuhkan maka akan dikirim ke prosesor 8 core

(Parallax P8X32 ) yang sudah tertanam pula di CMUcam modul. Setelah itu ada

komunikasi antara CMUcam modul dengan mikrokontroller, kemudian

mikrokontroller yang sudah melakukan pengolahan data memberi logika pada

gerakan robot ke aktuator berupa motor roda kanan dan kiri sebagai penggerak robot.

18

3.5.3 Gripper

Aktuator ini digunakan untuk mengambil benda yang ada di depan robot.

Gripper terdiri dari servo yang dirangkai dengan bentuk menyerupai lengan. Gripper

ini bekerja sesuai perintah yang dikirim dari mikrokontroller. Data dari posisi servo

juga digunakan untuk menentukan perintah aksi robot selanjutnya.

Berikut rancangan pembuatan Gripper.

Gambar 3.3 Model Rancangan Pembuatan Gripper

Keterangan :

1. Titik Warna Merah = sisi lekukan

2. Titik Warna Hitam = lubang untuk pengait

Dari model rancangan tersebut hasilnya akan nampak seperti gambar berikut :

18

3.5.3 Gripper

Aktuator ini digunakan untuk mengambil benda yang ada di depan robot.

Gripper terdiri dari servo yang dirangkai dengan bentuk menyerupai lengan. Gripper

ini bekerja sesuai perintah yang dikirim dari mikrokontroller. Data dari posisi servo

juga digunakan untuk menentukan perintah aksi robot selanjutnya.

Berikut rancangan pembuatan Gripper.

Gambar 3.3 Model Rancangan Pembuatan Gripper

Keterangan :

1. Titik Warna Merah = sisi lekukan

2. Titik Warna Hitam = lubang untuk pengait

Dari model rancangan tersebut hasilnya akan nampak seperti gambar berikut :

18

3.5.3 Gripper

Aktuator ini digunakan untuk mengambil benda yang ada di depan robot.

Gripper terdiri dari servo yang dirangkai dengan bentuk menyerupai lengan. Gripper

ini bekerja sesuai perintah yang dikirim dari mikrokontroller. Data dari posisi servo

juga digunakan untuk menentukan perintah aksi robot selanjutnya.

Berikut rancangan pembuatan Gripper.

Gambar 3.3 Model Rancangan Pembuatan Gripper

Keterangan :

1. Titik Warna Merah = sisi lekukan

2. Titik Warna Hitam = lubang untuk pengait

Dari model rancangan tersebut hasilnya akan nampak seperti gambar berikut :

19

Gambar 3.4 Bentuk Jadi Model Gripper

3.5.4 Driver Motor

Rangkaian driver digunakan untuk mengatur arah putar motor DC dengan

arah searah jarum jam atau berlawanan. Terdiri dari empat buah transistor, dengan

dua buah transistor kanal N dan dua buah transistor dengan kanal P. Pada saat

transistor A dan D aktif, dan transistor B dan C non aktif, maka sisi kiri motor akan

terhubug dengan kutub positif dari catu daya, sedangkan sisi kanan akan terhubung

dengan negative catu daya, sehingga motor akan bergerak searah jarum jam atau

clock wise. Jika transistor B dan C aktif, dan transistor A dan D non aktif, maka sisi

kanan motor akan terhubung ke catu daya positif, sedangkan sisi kirinya akan

terhubung ke catu daya negative, sehingga motor akan berputar berlawanan arah

jarum jam atau counter clock wise.

Gambar 3.5 Rangkaian H-Bridge

20

3.6 Arduino Mega 1250 (Sistem Minimum AVR ATMega 1250)

Sistem minimum mikrokontroler adalah sistem elektronika yang terdiri dari

komponen-komponen dasar yang dibutuhkan oleh suatu mikrokontroler untuk dapat

berfungsi dengan baik. Pada umumnya, suatu mikrokontoler membutuhkan dua

elemen (selain power supply) untuk berfungsi yakni Kristal Oscillator (XTAL), dan

Rangkaian RESET. Analogi fungsi Kristal Oscillator adalah jantung pada tubuh

manusia. Perbedaannya, jantung memompa darah dan seluruh kandungannya,

sedangkan XTAL memompa data. Dan fungsi rangkaian RESET adalah untuk

membuat mikrokontroler memulai kembali pembacaan program, hal tersebut

dibutuhkan pada saat mikrokontroler mengalami gangguan dalam meng-

eksekusi program. Pada sistem minimum AVR khususnya ATMEGA 1250

terdapat elemen tambahan (optional), yaitu rangkaian pengendalian ADC: AGND

(= GND ADC), AVCC (VCC ADC), dan AREF (= Tegangan Referensi ADC).

21

Gambar 3.6 Pin Map Arduino Mega 1250

Sumber :Digiware

3.7 Desain Perangkat Lunak

Pada program robot line follower sortir benda ini diperlukan beberapa metode

pembacaan garis dan penggunaan kamera agar tangkapan kamera dapat

menghasilkan informasi yang dibutuhkan oleh robot untuk menentukan arah navigasi

21

Gambar 3.6 Pin Map Arduino Mega 1250

Sumber :Digiware

3.7 Desain Perangkat Lunak

Pada program robot line follower sortir benda ini diperlukan beberapa metode

pembacaan garis dan penggunaan kamera agar tangkapan kamera dapat

menghasilkan informasi yang dibutuhkan oleh robot untuk menentukan arah navigasi

21

Gambar 3.6 Pin Map Arduino Mega 1250

Sumber :Digiware

3.7 Desain Perangkat Lunak

Pada program robot line follower sortir benda ini diperlukan beberapa metode

pembacaan garis dan penggunaan kamera agar tangkapan kamera dapat

menghasilkan informasi yang dibutuhkan oleh robot untuk menentukan arah navigasi

22

robot. Metode-metode yang digunakan disini adalah metode untuk membuat

pergerakan robot tetap pada garis yang dilalui dan metode untuk membuat citra hasil

tangkapan menjadi sesederhana mungkin agar mudah untuk menentukan logika

pergerakan robot.

3.7.1 Pembacaan Sensor Garis

Pembacaan sensor garis memanfaatkan perubahan nilai resistansi pada

komponen photo diode, dengan terjadinya perubahan nilai resistansi pada photo

diode maka tegangan yang diterima oleh pin ADC pada mikrokontroler akan berbeda

juga, hal tersebut yang akan digunakan untuk menentukan sensor ketika berada di

garis hitam atau putih. Berikut diagram alir pembacaan sensor.

T

Y

Gambar 3.7 Diagram alir pembacaan garis

Start

Baca ADC

Baca ADC padabidang abu dansimpan nilai ADC

ADC sekarang> nilai ADC

Garis hitam

Garis putih

End

23

Dari pembacaan sensor tesebut, didapat beberapa kemungkinan-kemungkinan

kondisi sensor di atas garis. Berikut tabel kombinasi sensor.

Tabel 3.2 Kombinasi sensor dan aksi robot

No Kombinasi sensor Aksi robot PWM kanan PWM kiri1 000001 Serong kanan 0 2552 000011 Serong kanan 50 2003 000010 Serong kanan 100 1754 000110 Serong kanan 100 1505 000100 Maju 255 2556 001100 Maju 255 2557 001000 Maju 255 2558 011000 Serong kiri 150 1009 010000 Serong kiri 175 10010 110000 Serong kiri 200 5011 100000 Serong kiri 255 012 111111 Maju 255 255

Robot menggunakan 7 titik sensor dengan kombinasi 3 berada pada sisi kiri dan 3

pada sisi kanan. Posisi sensor terhadap garis menentukan nilai PWM motor yang

mempengaruhi kecepatan gerak roda. Kecepatan gerak roda akan menentukan posisi

robot terhadap track yang akan dilewati. Jika posisi robot berada pada sisi kanan

garis maka roda kanan akan berputar lebih cepat daripada roda kiri sehingga robot

berjalan serong ke keri sampai posisi robot tepat berada di tengah-tengah garis.

Sebaliknya jika posisi robot berada pada sisi kiri garis maka roda kiri akan berputar

lebih cepat dari pada roda kanan dengan tujuan posisi robot berada pada tengah-

tengah garis. Satu sensor dibagian paling kiri digunakan untuk membaca apakah

robot melalu titik simpangan atau tidak. Dari diketahuinya nilai titik simpangan ini

nantinya robot akan memiliki navigasi sesuai dengan apa yang diperintahkan.

Berikut gambar lintasan yang digunakan untuk pengujian robot:

24

Gambar 3.8 Lintasan robot

Keterangan :

1. Titik Start

2. Titik Simpangan

3. Titik Pengambilan Bola

4. a. Titik penempatan bola warna merah

b. Titik penempatan bola warna biru

3.7.2 Pengenalan Warna

Proses pengenalan warna dimulai dari inisialisasi sistem dan device. Disini

akan diset UART serial, sistem warna RGB, resolusi, dll. Setelah sistem sudah siap,

maka divais akan mulai menangkap gambar melalui sensor kamera lalu nilainya

disimpan pada buffer. Setelah nilai-nilai tiap pixel dan titik tengah benda sudah

tersimpan pada buffer maka mulai dilakukanlah proses pengolahan citra sehingga

didapat nilai komponen RGB dari yang dilihat kamera. Untuk menentukan apakah

4 a2

3

1

4 b

25

benda yang ada di depan kamera merah atau biru, digunakan perbandingan antara

nilai R mean dan B mean. Jika nilai R mean lebih besar dari B mean maka benda

yang ada di depan kamera adalah merah dan sebaliknya.

Gambar 3.9 Blok Diagram Proses Pengenalan Warna

Dalam menentukan warna nilai Rmean dan Bmean diambil untuk dibandingkan yang

kemudian diproses ke dalam mikrokontroller. Berikut flowchart proses pencitraan

benda.

Pengenalan (Recognition)

Output ke Mikrokontroller

Pengolahan Citra

Pengambilan gambar (capture)

Inisialisasi sistem dan device

26

Gambar 3.10 Flowchart Pencitraan

3.8 Instalasi CMUcam

3.8.1 Instalasi Hardware

Sebelum perakitan perlu diketahui terlebih dahulu bagian-bagian dari

CMUcam yaitu :

a. Modul kamera CMOS

Start

Inisialisasi

Setting brightness

Ambil gambar (capture)

Rmean > Bmean

Warna biru

Warna merah

End

Y

T

27

Didalamnya terhadap sensor cahaya yang berfungsi untuk

menangkap intensitas cahaya dan warna yang akan diteruskan ke

prosesor untuk diolah lebih lanjut.

b. MainboardBerisi mikroprosesor yang akan melakukan semua proses pengolahan

citra yang telah diprogramkan (firmware).

c. Power adaptorBisa berupa baterai atau AC adaptor untuk menyuplai daya yang

dibutuhkan mainboard. Tegangan haruslah antara 5.5 – 10 volt DC.

d. MMCMemory yang berfungsi sebagai tempat penyimpanan data hasil dari

pemrosesan yang dilakukan oleh Flowchart sebelumnya.

Setelah mengetahui bagian-bagian dari CMUcam. Berikut langkah-langkah

instalasi hardware pada CMUcam4 :

1. Pasang MMC card pada main board

2. Pasang kabel port serial pada modul di pin UART

3. Pasang ujung lain dari kabel port serial ke komputer.

4. Pasang power adaptor pada konektornya.

5. Nyalakan tombol power pada posisi on untuk memastikan CMUcam

sudah berjalan dengan baik (lampu indikator merah akan menyala bila

CMUcam telah terpasang dengan baik).

3.8.2 Instalasi software

Seperti yang dijelaskan pada kajian pustaka bahwa CMUcam ini sudah

mempunyai kemampuan untuk menjalankan pemrosesan citra langsung dari modul

mikroprosesor yang sudah terembbed pada modul. Dengan kemampuan itu kita dapat

mengembangkan sendiri firmware CMUcam agar CMUcam dapat bekerja dan

menghasilkan output sesuai dengan kebutuhan kita. Kita dapat mengembangkan

28

firmware yang akan kita tanamkan pada mikroprosesor dengan menginstalasi dulu

beberapa software yang sudah tersedia pada modul kamera CMUcam.

3.9 Blok Diagram, Alogaritma dan Flowchart Sistem

Konsep dari perancangan sistem robot adalah merancang sebuah robot yang

dapat mengenali warna objek dan setelah robot mengenali warna objek tersebut

dengan perintah yang diberikan, robot akan mengambil objek tersebut dan

meletakkannya sesuai pada tempatnya. Algoritma untuk robot line follower sortir

benda adalah sebagai berikut :

1. Robot menuju tempat benda yang akan diambil

2. Kamera mendeteksi benda di depannya.

3. Warna benda diproses untuk penentuan keputusan aksi robot

4. Gripper bekerja mengambil benda

5. Robot membaca garis dan titik simpangan tempat peletakan benda

6. Aktuator bekerja untuk meletakkan benda

Gambar 3.11 Blok Diagram Sistem

Sensor Garis

Kamera

Roda Kanan dan Roda KiriMotor Servo

Pemrosesan Citra

Mikrokontroller

29

Gambar 3.12 Flowchart robot linefollower sortir benda

start

Scaning sensor

garis

Sensor membaca titik

simpangan/pemberhentian

Konter = B

Konter = D

Konter = A

Konter = C

Konter ++

Posisi servo = 45Konter = 0

Gerak lurus

maju

Robot StopkameraServo = 0,konter + 1

Robot StopServo = 45,konter + 1 Belok kanan,

konter + 1

Benda merah

Gerak lurusmundur

Belok kiri,konter + 1

End

Y

TY

Y

Y

Y

Y

T

T

T

T

T

30

BAB 4. PEMBAHASAN

Dalam pengujian algoritma pengendali dilakukan dengan menggunakan

bantuan tampilan Serial Monitor yang sudah tersedia dalam Arduino IDE (Integrated

Development Environment), sehingga dengan menggunakan Serial Monitor tersebut

dapat mengetahui aktifitas dari sistem yang dibuat. Data yang diambil dalam

pengujian robot linefollower diantaranya adalah data nilai ADC sensor ketika seluruh

sensor berada di garis warna hitam dan ketika sensor berada di warna putih,

kombinasi sensor yang mungkin terjadi sehingga mempengaruhi kondisi perputaran

motor kanan dan motor kiri dan untuk selanjutnya melakukan pengujian robot pada

lintasan. Untuk pengambilan benda yang akan disortir, dalam hal ini bola berwarna,

menggunakan motor servo yang terpasang pada Gripper. Sedangkan untuk

penentuan warna yang akan di eksekusi menggunakan sensor kamera CMUcam4.

Data dari kamera tersebut berupa nilai rata-rata (mean) dari komponen RGB benda

yang akan diambil.

4.1 Pengujian Robot Linefollower

Dalam pengujian robot linefollower ini terdapat beberapa pengujian bagian-

bagian yang mempengaruhi nilai output dari sistem.

4.1.1 Pengujian bagian pembacaan ADC

Pengujian dilakukan untuk mengetahui berhasil tidaknya pembacaan ADC oleh

mikrokontroler, prosesnya adalah menempatkan seluruh sensor garis robot pada

sebuah bidang warna gelap dan warna bidang terang, dan selanjutnya mikrokontroler

akan melakukan proses pengambilan nilai maksimal yang terbaca dari setiap nilai

ADC sensor pada bidang dengan memberi perlakuan bidang yang berbeda. Berikut

adalah bentuk listing program untuk pembacaan nilai ADC pada sensor dan

pengambilan nilai minimum dan maksimum dari nilai ADC yang di peroleh tiap

31

sensor dengan memanfaatkan fitur Serial Monitor yang ada pada compiler dari

Arduino IDE.

while (millis() < 5000)

{

// ambil nilai maksimal sensor

nilai0 = analogRead(sensor0);

if (nilai0 > max0) {

max0 = nilai0; }

.

.

.

.

nilai7 = analogRead(sensor7);

if (nilai7 > max7) {

max7 = nilai7; }

// ambil nilai minimal sensor

if (nilai0 < min0) {

min0 = nilai0; }

.

.

.

.

if (nilai7 < min7) {

min7 = nilai7; }

}

delay(5000);

32

Fungsi dari millis di atas adalah untuk memberi waktu sensor selama 5 detik

pertama saat mikrokontroller dijalankan. Pada saat 5 detik pertama tersebut

mikrokontroller merekam nilai adc yang terbaca dari sensor yang kemudian nilainya

disimpan untuk proses selanjutnya.

Berikut nilai adc yang ditampilkan dalam Serial Monitor

Gambar 4.1 Nilai adc pada bidang putih

Gambar 4.2 Nilai adc pada bidang abu-abu

Gambar 4.3 Nilai adc pada bidang hitam

33

Untuk mendapatkan nilai tegangan dari yang dibaca mikrokontroller, nilai ADC yang

didapat dikonversi menjadi nilai tegangan. Berikut tabel perbandingan tegangan hasil

konversi ADC dengan tegangan yang terukur pada sensor.

Tabel 4.1 Perbandingan tegangan pada bidang putihNo Sensor Nilai

ADCTegangan konversiADC (mV)

TeganganSensor (mV)

Error

1 0 64 312 300 3,8 %2 1 65 317 304 4,1 %3 2 65 317 304 4,1 %4 3 64 312 300 3,8 %5 4 64 312 300 3,8 %6 5 65 317 305 3,7 %7 6 63 307 297 3,2 %8 7 63 307 298 2,9 %

Tabel 4.2 Perbandingan tegangan pada bidang abu-abuNo Sensor Nilai

ADCTegangan konversiADC (mV)

TeganganSensor (mV)

Error

1 0 72 352 337 4,2 %2 1 72 352 337 4,2 %3 2 75 366 351 4,1 %4 3 74 361 347 3,8 %5 4 74 361 347 3,8 %6 5 75 366 351 4,1 %7 6 72 352 337 4,2 %8 7 73 356 343 3,6 %

Tabel 4.3 Perbandingan tegangan pada bidang hitamNo Sensor Nilai

ADCTegangan konversiADC (mV)

TeganganSensor (mV)

Error

1 0 78 381 366 3,9 %2 1 78 381 366 3,9 %3 2 83 406 389 4,2 %4 3 84 410 394 3,9 %5 4 86 420 403 4,0 %6 5 87 425 408 4,0 %7 6 79 386 371 3,8 %8 7 78 381 366 3,9 %

34

Dari ketiga tabel di atas terdapat perbedaan nilai tegangan antara tegangan

nilai konversi ADC secara teori dengan tegangan yang terukur pada sensor. Hal ini

disebabkan tegangan referensi yang terukur pada sensor tidak bernilai 5 V melainkan

bernilai 4,8 V.

Dari nilai adc tersebut nantinya digunakan untuk memberi nilai sensor yang

terbaca secara digital. Nilai satu (1) atau high menandakan bahwa sensor berada pada

bidang berwarna hitam sedangkan nilai nol (0) atau low menandakan bahwa sensor

berada pada bidang berwarna putih. Untuk membaca apakah sensor berada pada

bidang hitam atau putih dicari nilai tengah dengan menempatkan sensor berada pada

bidang yang berwarna abu-abu. Berikut listing program untuk memberi nilai digital

pada tiap-tiap sensor.

void baca(){nilai0 = analogRead(sensor0);nilai0 = map(nilai0, min0, max0, 0, 1);nilai0 = constrain(nilai0, 0, 1);Status0 = nilai0;....nilai7 = analogRead(sensor7);nilai7 = map(nilai7, min7, max7, 0, 1);nilai7 = constrain(nilai7, 0, 1);Status7 = nilai7;}

map(value, fromLow, fromHigh, toLow, toHigh)

Fungsi dari map digunakan untuk memberi nilai dari range yang telah

ditentukan. Value adalah nilai hasil map, fromLow adalah nilai yang akan di petakan

menjadi nilai yang diinginkan yaitu toLow. Begitu juga dengan nilai fromHigh akan

35

dipetakan menjadi nilai toHigh. Sedangkan fungsi constrain digunakan untuk

memberi batasan nilai yang dihasilkan.

4.1.2 Pengujian Navigasi Robot

Pemberian variabel konter robot line follower difungsikan sebagai sistem

penanda robot untuk melakukan gerakan atau navigasi yang diinginkan agar berjalan

sesuai dengan tujuan. Selain itu konter digunakan untuk robot agar bisa kembali ke

tempat robot mengambil bola. Berikut listing program untuk konter.

void ngonter()

{if (Status0 == 1)

{x = 1;}

else {x = 0;}

presentStatus = x;

if (presentStatus != lastStatus) {

if (presentStatus == HIGH)

{konter++;} }

lastStatus = presentStatus;

}

Pembacaan konter berdasarkan perhitungan nilai sensor 0 yang akan bertambah

jika mendapatkan sinyal perubahan dari low ke high (rising edge). Kondisi ini akan

terpenuhi jika robot melewati lintasan simpang empat atau seluruh sensor garis

berada pada garis hitam. Berikut tabel hasil percobaan navigasi robot.

36

Tabel 4.4 Pengujian navigasi robot

Percobaanke

Tujuandi titik

Aksi di titiksimpangan (titik 2)

Ketercapaian Waktu tempuh

1 4a Belok kanan Berhasil 7 detik2 4a Belok kanan Berhasil 7 detik3 4a Belok kanan Berhasil 8 detik4 4b Belok kiri Berhasil 9 detik5 4b Belok kiri Berhasil 10 detik6 4b Belok kiri Berhasil 10 detik

Dari hasil tabel di atas, secara keseluruhan robot sudah mampu mencapai titik

yang dituju dengan waktu tempuh rata – rata 8,5 detik.

4.2 Pengujian Motor Servo

Motor servo digunakan untuk mengambil bola yang akan di sortir menuju

tempat yang sudah ditentukan. Motor servo yang terhubung dengan Gripper akan

membuat pergerakan lengan Gripper dalam mencapit bola. Berikut listing program

untuk menggerakkan servo.

#include <Servo.h>

Servo myservo;

int pos = 0;

void setup()

{ myservo.attach(9); }

void loop()

{

if(pos == 0 && pos < 90)

{

pos += 45;

myservo.write(pos);

delay(2000); }

37

if (pos ==5)

{pos += 40;

myservo.write(pos);

delay(2000); }

else

{

pos -= 40;

myservo.write(pos);

delay(2000);

}

Tabel 4.5 Pengujian motor servo

No Nilai posisi servo Berhasil Tidak1 0 V -2 45 V -3 90 V -4 135 V -5 180 V -

Dari data hasil pengujian motor servo di atas bahwa motor servo bekerja

dengan baik. Untuk posisi servo dengan nilai 0, Gripper dalam kondisi menutup dan

untuk posisi servo dengan nilai 180 Gripper dalam kondisi terbuka. Namun nilai

posisi servo yang ideal untuk membuka Gripper adalah 45.

4.3 Pengujian Kamera CMUcam4

Untuk menguji kinerja dari sensor kamera ini, digunakan beberapa software

bawaan yang sudah disediakan oleh pengembang kamera ini. GUI (Graphic User

Interface) dari CMUcam4 digunakan untuk melihat aktifitas kamera yang sedang

berjalan. Berikut tampilan GUI dari CMUcam4:

38

Gambar 4.4 Aktifitas kamera pada saat mengirimkan data Color Statistic

CMUcam4 GUI memiliki fasilitas untuk mengambil gambar dapat yang

disimpan dalam format JPEG dan Bitmap yaitu dengan menggunakan Dump Frame

atau Dump Bitmap. Adapun gambar yang dihasilkan kamera ini tidak terlalu bagus

namun sudah cukup untuk digunakan sebagai sensor warna. Berikut gambar yang

dihasilkan oleh ka mera CMUcam4.

Gambar 4.5 Gambar yang dihasilkan kamera

39

4.3.1 Pengujian Komunikasi Serial CMUcam4 dengan Arduino

Berikut listing program untuk mendapatkan Color Statistic kamera

void camera()

{ Serial.begin(19200);

cam.begin();

cam.LEDOn(LED_BLINK);

delay(WAIT_TIME);

cam.autoGainControl(false);

cam.autoWhiteBalance(false);

cam.LEDOn(CMUCAM4_LED_ON);

{ CMUcam4_statistics_data_t data;

cam.getMean(); {

cam.getTypeSDataPacket(&data);

Serial.print(data.RMean); Serial.print('\t');

Serial.print(data.BMean); Serial.print('\t');

delay(5000); }}

Data dari kamera dikirim ke mikrokontroller menggunakan komunikasi serial.

Port serial yang digunakan adalah port serial 3 yaitu pada pin 14 (Tx) dan 15 (Rx).

Setting default baudrate yang digunakan untuk komunikasi antara kamera dengan

mikrokontroller adalah 19200 bps namun baudrate ini bisa dirubah sesuia dengan

kebutuhan. Agar tidak terjadi overflow disarankan untuk menggunakan baudrate

yang tinggi. Saat ini baudrate yang telah disediakan yaitu mencapai 19200 bps

dengan menggunakan port serial 1 pada pin 0 (Tx) dan pin 1 (Rx).

40

Tabel 4.6 Perbandingan Nilai Data CMUcam4 GUI dengan Serial Monitor

No CMU GUI Serial Monitor Error GambarRmean Gmean Bmean Rmean Gmean Bmean Rmean Gmean Bmean

1 131 137 148 123 133 148 6,1 % 2,9 % 0 %

2 123 129 139 130 135 140 5,6 % 4,6 % 0,7 %

3 123 129 148 135 145 167 9,7 % 12,4 % 12,8 %

4 123 129 139 115 129 148 6,5 % 10,8 % 6,4 %

5 148 133 139 148 121 131 0 % 9 % 5,7 %

6 158 135 141 172 149 156 8,8 % 10,3 % 10,6 %

7 148 125 131 139 129 139 6 % 3,2 % 6,1 %

8 139 121 131 156 129 139 12,2 % 6,6 % 6,1 %

Dari gambar dan data komponen RGB di atas, bisa dilihat bahwa error

terbesar adalah pada saat pengujian benda berwarna biru. Kondisi ini bisa disebabkan

oleh intensitas cahaya yang dpantulkan oleh benda dan penempatan benda yang

berbeda pada saat pengambilan data dengan GUI dan dengan Serial Monitor. Selain

itu, error yang terjadi bisa juga disebabkan kecepatan frame kamera dalam mengirim

data. Kondisi ini bisa berpengaruh pada pengiriman data jika data yang dikirim oleh

41

kamera mengalami overflow sehingga data yang terbaca di mikrokontroller bisa

berbeda.

Terlihat bahwa pada percobaan terakhir, nilai komponen dari warna merah

memiliki perbedaan yang sedikit dengan komponen warna yang lain jika dilihat dari

GUI. Namun pada Serial Monitor terlihat bahwa nilai komponen merah memliki

perbedaan yang jauh. Hal ini bisa disebabkan oleh penempatan benda pada saat

pengambilan data dengan GUI yang tidak sama dengan penempatan benda pada saat

pengambilan data dengan Serial Monitor.

4.3.2 Pengujian Penggolongan Warna

Dalam proses penentuan warna benda yang dilihat kamera, data yang

digunakan untuk menentukan keputusan adalah dengan melihat nilai rata-rata indeks

RGB yang dikirim oleh kamera. Dalam frame ukuran 80 x 60 pixel, kamera

menghitung komponen nilai RGB tiap-tiap pixel dan memberikan informasi data

statistik yang ada di depan kamera. Konsep yang digunakan yaitu dengan melihat

dan membandingkan nilai dari tiap-tiap komponen RGB. Jika komponen R lebih

besar dengan komponen lainnya yaitu komponen G dan B, maka bisa

diidentifikasikan bahwa benda yang ada di depan kamera memiliki warna merah.

Jika komponen B lebih besar dari komponen R dan G, bisa diartikan benda di depan

kamera memiliki warna biru.

Namun dalam prakteknya, kondisi cahaya dan posisi penempatan bola sangat

mempengaruhi data RGB yang dilihat kamera. Untuk melihat pengaruh cahaya pada

kamera, diatur komposisi nilai brightness dengan bantuan GUI dari CMUcam4.

Berikut tabel hasil pengambilan gambar dengan kondisi brightness yang berbeda-

beda.

42

Tabel 4.7 Pengaruh nilai Brightness pada nilai RGB benda warna biru

No Brightness R Mean B Mean Selisih1 -127 24 41 172 -112 32 49 173 -96 49 57 84 -80 65 74 95 -64 74 90 166 -48 90 98 87 -32 98 115 178 -16 115 131 169 0 131 148 1710 16 148 164 1611 32 164 172 812 48 180 189 913 64 189 205 1614 80 205 213 815 96 213 222 916 112 222 230 817 127 230 238 8

Tabel 4.8 Pengaruh nilai Brightness pada nilai RGB benda warna merah

No Brightness R Mean B Mean Selisih1 -127 32 32 02 -112 49 41 83 -96 57 57 04 -80 74 65 95 -64 90 82 86 -48 106 98 87 -32 123 115 88 -16 139 123 169 0 148 139 910 16 164 156 811 32 180 172 812 48 205 189 1613 64 213 197 1614 80 230 213 1715 96 238 222 1616 112 246 230 1617 127 246 230 16

43

Dari tabel pengujian di atas, terlihat bahwa kondisi pencahayaan pada kamera

sangat memengaruhi data komponen RGB yang dikirim dari kamera. Semakin kecil

nilai brightness yang diberikan maka nilai RGB semakin kecil. Semakin besar nilai

brightness yang diberikan, semakin besar pula nilai RGB yang terbaca. Dari kedua

komponen RGB di atas, yaitu komponen Rmean dan komponen Bmean nantinya bisa

dikenali warna benda yang ada di depan kamera. Jika komponen Rmean lebih besar

dai komponen Bmean maka mikrokontroller akan mendefinisikan benda berwarna

merah, sebaliknya jika komponen Bmean lebih besar dari Rmean mikrokontroller

akan mendefinisikan warna benda adalah biru.

4.3.3 Pengujian Jarak Jangkauan

Pengujian selanjutnya adalah untuk jarak jangkauan sistem dalam melihat

objek yang berada di depannya. Pengujian dilakukan dengan meletakkan objek

utama berada di depan dengan jarak mulai 5 cm hingga 10 cm.

Berikut data hasil percobaan pengujian jarak jangkauan kamera terhadap

benda.

Tabel 4.9 Pengujian Jarak Jangkauan

NilaiJarak (cm)

5 6 7 8 9 10R mean 135 130 120 113 98 81B mean 96 95 95 92 90 80Selisih 39 35 25 21 8 1

Dari data di atas terlihat bahwa jarak kamera terhadap benda mempunyai

pengaruh terhadap nila Rmean dan Bmean. Semakin jauh jarak benda terhadap

kamera maka selisih nilai Rmean dan Bmean akan semakin kecil. Nilai selisih yang

kecil ini bisa membuat kamera tidak bisa mengenali warna. Oleh karena jarak

maksimal antara kamera dan benda agar kamera mampu mengenali objek dengan

baik adalah 9 cm.

44

4.4 Pengujian keseluruhan sistem

Pengujian sistem ini dilakukan dengan beberapa cara untuk mengetahui

tingkat keberhasilan dari sistem mekanik dan program yang telah dibuat sebelumnya.

Dari hasil pengujian keseluruhan sistem ini dilakukan dengan beberapa cara dan

didapatkan hasil sebagai berikut :

1. Pengujian pemberian bola merah

Dalam pengujian ini robot diberi bola warna merah dan menempatkannya

pada titik 4a seperti yang terlihat pada lintasan yang dijelaskan pada bab 3. Dari hasil

pengujian ini diperoleh data sebagai berikut

Tabel 4.10 Percobaan pemberian bola merah

KeberhasilanUji ke-

Berhasil Tidak

1 V -2 V -3 V -4 - V5 V -6 V -7 V -8 V -

Dari hasil pengujian di atas diperoleh bahwa pada pengujian pertama hingga

ketiga untuk mengambil bola berwarna merah robot berhasil mendeteksinya dan

kemudian menempatkannya sesuai aturan. Namun pada pengujian keempat robot

gagal untuk mengenali bola merah dan menempatkan bola pada sisi yang salah. Pada

pengujian yang kelima hingga kedelapan robot berhasil kembali mengambil bola

merah dan menempatkan bola pada posisi yang benar. Dari hasil ini dapat dikatakan

bahwa tingkat keberhasilan robot untuk mengambil bola merah adalah sebesar 87,5

%. Kegagalan dalam pengambilan bola merah ini dapat dikarenakan oleh

penempatan posisi bola yang kurang tepat.

45

2. Pengujian pemberian bola biru

Dalam pengujian ini robot diberi bola warna biru dan diharapkan robot dapat

menempatkannya sesuai dengan aturan. Dari hasil pengujian ini diperoleh data

sebagai berikut

Tabel 4.11 Percobaan pemberian bola biru

KeberhasilanUji ke-

Berhasil Tidak

1 V -2 - V3 V -4 - V5 V -6 V -

7 V -

8 V -

Dari hasil pengujian diperoleh bahwa pada pengujian pertama robot berhasil

mendeteksinya dan kemudian menempatkan bola biru sesuai aturan. Namun pada

pengujian kedua dan keempat robot gagal untuk mengambil bola biru dan pada

pengujian yang kelima hingga kedelapan robot berhasil kembali mengambil bola biru

dan menempatkannya sesuai dengan aturan. Dari hasil ini dapat dikatakan bahwa

tingkat keberhasilan robot untuk mengambil bola biru adalah sebesar 75 %.

Kegagalan dalam pengambilan bola biru ini dapat disebabkan oleh penempatan bola

yang kurang tepat dan juga bisa disebabkan interferensi cahaya led dari kamera

CMU.

3. Pemberian bola secara acak

Pada bagian ini robot diberi bola secara acak dan kemudian menempatkannya

pada tempat sesuai aturan. dari proses pengambilan data ini diperoleh data sebagai

berikut.

46

Tabel 4.12 Pemberian bola secara acak

No Pemberian Bola Berhasil Tidak1 Biru V -2 Biru V -3 Merah V -4 Biru - V5 Merah V -6 Merah V -7 Biru V -8 Merah V -9 Merah V -10 Biru - V

Dari tabel percobaan di atas diperoleh bahwa robot mampu mengenali warna

benda dan menempatkannya sesuai dengan aturan. Namun pada pemberian bola

keempat dan kesepuluh robot gagal meletakkan bola pada sisi yang benar. Hal ini

disebabkan perintah yang didapat robot dari hasil scan kamera tidak sesuai dengan

warna bola yang dideteksi. Kegagalan kamera dalam mendeteksi warna bila bisa

disebabkan posisi penempatan bola yang kurang tepat atau bisa disebabkan kamera

gagal mengirim informasi ke mikrokontroller. Pantulan dari cahaya LED kamera saat

scanning benda juga mempengaruhi hasil dari penentuan warna benda. Dari hasil ini

dapat dikatakan bahwa tingkat keberhasilan robot untuk menempatkan bola yang

diberi secara acak adalah sebesar 80%.

47

BAB 5. KESIMPULAN

5.1 Kesimpulan

1. Secara keseluruhan sistem navigasi pada robot linefollower sortir benda

mampu bekerja dengan baik. Tingkat keberhasilan robot dalam menempatkan

bola warna biru adalah 75 %, sedangkan untuk bola warna merah adalah 87,5

% dan untuk pemberian bola secara acak sebesar 80 %.

2. Nilai brightness yang diberikan mempengaruhi nilai komponen Rmean dan

Bmean yang didapat. Semakin besar nilai brightness semakin besar pula nila

komponen Rmean dan Bmean yang didapat. Nilai Rmean pada kondisi

brightness 127 adalah 246 sedangkan pada kondisi -127 nilainya adalah 32.

3. Semakin besar selisih komponen Rmean dengan Bmean semakin bagus kinerja

kamera dalam mengenali warna benda. Perbedaan nilai Rmean dengan Bmean

yang besar bisa diartikan kamera mampu membedakan waena benda. Nilai

selisih terbesar Rmean dengan Bmean adalah 17.

5.2 Saran

Adapun saran yang dapat diberikan penulis adalah :

1. Perlu dikembangkan lebih lanjut algoritma penentuan dan pengenalan warna

dari data-data yang didapat dari sensor kamera agar kesalahan dalam

mengenali warna dapat ditanggulangi.

2. Perlu dilakukan penelitian lanjutan tentang sinkronisasi kamera dengan robot.

48

DAFTAR PUSTAKA

Ahmad, Usman. 2005. Pengolahan Citra Digital dan Teknik

Pemrogramannya. Yogyakarta : Graha Ilmu.

Agyeman, Kwabena W. 2012. CMUcam4 Reference. Carnegie Mellon

University.

Anymous, Fakultas Teknik Informatika Universitas Kristen Duta Wacana.

2005. Kompresi citra. http://fmipa.usu.ac.id/bahankuliah.

html?download=7%3Abahan-kim-dan-cs

Banzi, Massimo. 2007. Arduino Learning. San Francisco : Creative

Commons.

Budiharto, Widodo. 2010. 10 Proyek Robot Spektakuler. Yogyakarta : Elex

Media Komputindo.

Digiware. 2012. Panduan Basic Arduino Training 2012. Surabaya : Digiware

Unlimited Innovation.

Rowe, Anthony. 2007. CMUcam4: An Open Programmable Embedded

Vision Sensor. http://www.CMUcam3.org/.

Sigit, Riyanto. 2006. Praktikum Pengolahan Citra Bab Pendahuluan. H

http://lecturer.eepis-its.edu/~riyanto/citra-bab1.pdf

Sigit, Riyanto. 2006. praktikum pengolahan citra bab dasar pengolahan

citra(1). http://lecturer.eepis-its.edu/~riyanto/citra-bab2.pdf

Sigit, Riyanto. 2006. praktikum pengolahan citra bab dasar pengolahan

citra(2). Hhttp://lecturer.eepis-its.edu/~riyanto/citra-bab3.pdf

Sutoyo,T, Edy Mulyanto, Vincent Suhartono, Oky DN, Wijanarto. 2009.

Teori Pengolahan Citra Digital. Yogyakarta : Andi Publisher.

Lampiran . Listing program line follower robot

#include <CMUcam4.h>#include <CMUcom4.h>#include <Servo.h>Servo servoku; //buat objek servo utk ngontrol servoint pos = 0 ; // variabel utk menyimpan posisi servo#define LED_BLINK 5 // 5 Hz#define WAIT_TIME 5000 // 5 secondsCMUcam4 cam(CMUCOM4_SERIAL3);const int sensor0 = A0;const int sensor1 = A1; //pin sensor A0 - A7const int sensor2 = A2;const int sensor3 = A3;const int sensor4 = A4;const int sensor5 = A5;const int sensor6 = A6;const int sensor7 = A7;const int ledPin = 10;const int led1 = 26; //led konter 1const int led2 = 30; //led konter 2const int en1 = 6;const int en2 = 7;const int maju1 = 38;const int maju2 = 39;const int mundur1 = 40;const int mundur2 = 41;const int ledR = 15;const int ledG = 16;const int ledB = 17;int Status0, Status1, Status2, Status3, Status4, Status5,Status6, Status7, x, y, B, R, a, simpan ;int lastStatus, konter, presentStatus = 0;

void setup() {Serial.begin(19200);servoku.attach(9); //menentukan pin untuk servoservoku.write(45);delay(2000);servoku.write(0);pinMode(13, OUTPUT); //mode output

pinMode(led1, OUTPUT);pinMode(led2, OUTPUT);pinMode(maju1, OUTPUT);pinMode(maju2, OUTPUT);pinMode(mundur1, OUTPUT);pinMode(mundur2, OUTPUT);pinMode(ledR, OUTPUT);pinMode(ledG, OUTPUT);pinMode(ledB, OUTPUT);digitalWrite(13, HIGH);while (millis() < 5000){ nilai0 = analogRead(sensor0);if (nilai0 > max0) {max0 = nilai0; }

nilai1 = analogRead(sensor1);if (nilai1 > max1) {max1 = nilai1; }

nilai2 = analogRead(sensor2);if (nilai2 > max2) {max2 = nilai2; }

nilai3 = analogRead(sensor3);if (nilai3 > max3) {max3 = nilai3; }

nilai4 = analogRead(sensor4);if (nilai4 > max4) {max4 = nilai4; }

nilai5 = analogRead(sensor5);if (nilai5 > max5) {max5 = nilai5; }

nilai6 = analogRead(sensor6);if (nilai6 > max6) {max6 = nilai6; }

nilai7 = analogRead(sensor7);if (nilai7 > max7) {max7 = nilai7; }

// record the minimum sensor valueif (nilai0 < min0) {min0 = nilai0; }

if (nilai1 < min1) {min1 = nilai1; }

if (nilai2 < min2) {min2 = nilai2; }

if (nilai3 < min3) {min3 = nilai3; }

if (nilai4 < min4) {min4 = nilai4; }

if (nilai5 < min5) {min5 = nilai5; }

if (nilai6 < min6) {min6 = nilai6; }

if (nilai7 < min7) {min7 = nilai7; }

}Serial.print(min0);Serial.print("

");Serial.print(min1);Serial.print(" ");Serial.print(min2);Serial.print("

");Serial.print(min3);Serial.print(" ");Serial.print(min4);Serial.print("

");Serial.print(min5);Serial.print(" ");Serial.print(min6);Serial.print("

");Serial.println(min7);Serial.print(max0);Serial.print("

");Serial.print(max1);Serial.print(" ");Serial.print(max2);Serial.print("

");Serial.print(max3);Serial.print(" ");Serial.print(max4);Serial.print("

");Serial.print(max5);Serial.print(" ");Serial.print(max6);Serial.print("

");Serial.println(max7);delay(5000);digitalWrite(13, LOW);servoku.write(48);

}void loop() {{baca();ngonter();scan();{if (konter == 11){konter=3;}if (konter % 2 == 0){digitalWrite(led1,HIGH);digitalWrite(led2,LOW);}

else{digitalWrite(led1,LOW);digitalWrite(led2,HIGH);}

}if

((konter==0)||(konter==1)||(konter==2)||(konter==6)||(konter==10) )

{jalanmaju();}

else if ((konter==4)||(konter==8)){ jalanmundur();}

else if (((konter==9)&&(B==1))||((konter==5)&&(R==1)))

{delay(50);kanan();delay(2000);konter+=1;maju();delay(200);}

else if (konter==3){ digitalWrite(ledB,LOW);digitalWrite(ledR,LOW);B=0;R=0;ambilbola();delay(200);mundur();delay(250);

}else if (

((konter==5)&&(B==1))||((konter==9)&&(R==1))){ delay(150);kiri();delay(1550);konter += 1;maju();delay(200);

}else if (konter==7){

lepasbola();delay(200);mundur();delay(250);

}{Serial.print(Status0);Serial.print(Status1);Serial.print(Status2);Serial.print(Status3);Serial.print(Status4);Serial.print(Status5);Serial.print(Status6);Serial.println(Status7);Serial.print(a); Serial.print(" ");Serial.print("konter= ");Serial.println(konter);delay(100);}

}}void scan (){if((Status2==0)&&(Status3==0)&&(Status4==0)&&(Status5==0))

{a=0;}else if((Status2==1)&&(Status3==1)&&(Status4==0)&&(Status5==0))

{a=1;}else if((Status2==0)&&(Status3==1)&&(Status4==0)&&(Status5==0))

{a=2;}else if((Status2==0)&&(Status3==1)&&(Status4==1)&&(Status5==0))

{a=4;}else if((Status2==1)&&(Status3==1)&&(Status4==1)&&(Status5==0))

{a=5;}else if((Status2==0)&&(Status3==1)&&(Status4==1)&&(Status5==0))

{a=6;}else if((Status2==1)&&(Status3==1)&&(Status4==1)&&(Status5==0))

{a=7;}else if((Status2==0)&&(Status3==1)&&(Status4==0)&&(Status5==1))

{a=8;}

else if((Status2==1)&&(Status3==1)&&(Status4==0)&&(Status5==1))

{a=9;}else if((Status2==1)&&(Status3==1)&&(Status4==0)&&(Status5==1))

{a=11;}else if((Status2==0)&&(Status3==1)&&(Status4==1)&&(Status5==1))

{a=12;}else if((Status2==1)&&(Status3==0)&&(Status4==1)&&(Status5==1))

{a=13;}else if((Status2==0)&&(Status3==1)&&(Status4==1)&&(Status5==1))

{a=14;}else if((Status2==1)&&(Status3==1)&&(Status4==1)&&(Status5==1))

{a=15;}else if((Status1==1)&&(Status2==1)&&(Status3==1)&&(Status4==0)&&(Status5==0))

{a=16;}else if((Status1==1)&&(Status2==0)&&(Status3==1)&&(Status4==0)&&(Status5==0))

{a=17;}else if((Status2==0)&&(Status3==1)&&(Status4==0)&&(Status5==1)&&(Status6==1))

{a=18;}else if((Status2==0)&&(Status3==1)&&(Status4==0)&&(Status5==0)&&(Status6==1))

{a=19;}else {a=20;}}void jalanmaju(){switch (a){case 1:analogWrite(en1, 100);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);

analogWrite(en2, 245);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);break;case 2:analogWrite(en1, 200);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 245);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);break;case 4:maju();break;case 5:maju();break;case 6:maju();break;case 7:analogWrite(en1, 255);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 200);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);break;case 8:analogWrite(en1, 255);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 100);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);break;case 9:if (simpan<0){kiri();}

if (simpan>0){kanan();}

break;case 11:analogWrite(en1, 255);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 100);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);break;case 12:analogWrite(en1, 255);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 100);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);delay(15);break;case 13:analogWrite(en1, 200);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 245);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);break;case 14:analogWrite(en1, 200);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 245);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);break;case 15:maju();break;case 16:kiri();delay(100);maju();delay(100);

break;case 17:mundur();delay(300);kiri();delay(300);maju();delay(100);break;case 18:kanan();delay(300);maju();delay(100);break;case 19:mundur();delay(300);kanan();delay(300);maju();delay(100);break;}

}void jalanmundur(){switch (a){case 1:serongkanan1();break;case 2:analogWrite(en1, 175);digitalWrite(maju1,LOW);digitalWrite(mundur1, HIGH);analogWrite(en2, 245);digitalWrite(maju2,LOW);digitalWrite(mundur2, HIGH);break;case 4:mundur();break;case 5:

mundur();break;case 6:mundur();break;case 7:analogWrite(en1, 255);digitalWrite(maju1,LOW);digitalWrite(mundur1, HIGH);analogWrite(en2, 200);digitalWrite(maju2,LOW);digitalWrite(mundur2, HIGH);break;case 8:serongkiri1();break;case 9:if (simpan<0){kiri();}

if (simpan>0){kanan();}

break;case 11:analogWrite(en1, 255);digitalWrite(maju1,LOW);digitalWrite(mundur1, HIGH);analogWrite(en2, 125);digitalWrite(maju2,LOW);digitalWrite(mundur2, HIGH);break;case 12:analogWrite(en1, 255);digitalWrite(maju1,LOW);digitalWrite(mundur1, HIGH);analogWrite(en2, 125);digitalWrite(maju2,LOW);digitalWrite(mundur2, HIGH);break;case 13:analogWrite(en1, 175);digitalWrite(maju1,LOW);digitalWrite(mundur1, HIGH);

analogWrite(en2, 245);digitalWrite(maju2,LOW);digitalWrite(mundur2, HIGH);break;case 14:analogWrite(en1, 175);digitalWrite(maju1,LOW);digitalWrite(mundur1, HIGH);analogWrite(en2, 245);digitalWrite(maju2,LOW);digitalWrite(mundur2, HIGH);break;case 15:mundur();break;case 16:kanan();delay(300);mundur();delay(100);break;case 17:kanan();delay(300);mundur();delay(100);break;case 18:kiri();delay(300);mundur();delay(100);break;case 19:kiri();delay(300);mundur();delay(100);break;}

}void serongkanan()

{ Serial.print("serong kanan");mundur();delay (100);kanan();delay(100);maju();delay(100);

}void serongkiri(){ Serial.print("serong kiri");mundur();delay(100);kiri();delay(100);maju();delay(100);

}void serongkanan1(){ Serial.print("serong kanan");maju();delay(100);kanan();delay(100);mundur();delay(100);

}void serongkiri1(){ Serial.print("serong kiri");maju();delay(100);kiri();delay(100);mundur();delay(100);

}void maju(){ Serial.print("maju");analogWrite(en1, 255);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 175);digitalWrite(maju2,HIGH);

digitalWrite(mundur2, LOW);delay(15);

}void mundur (){ Serial.print("mundur");analogWrite(en1, 255);digitalWrite(maju1,LOW);digitalWrite(mundur1, HIGH);analogWrite(en2, 175);digitalWrite(maju2,LOW);digitalWrite(mundur2, HIGH);delay(15);

}void kanan(){ simpan = 1;analogWrite(en1, 255);digitalWrite(maju1,HIGH);digitalWrite(mundur1, LOW);analogWrite(en2, 200);digitalWrite(maju2,LOW);digitalWrite(mundur2, HIGH);Serial.println("kanan");

}void kiri(){ simpan = -1;analogWrite(en1, 255);digitalWrite(maju1,LOW);digitalWrite(mundur1, HIGH);analogWrite(en2, 255);digitalWrite(maju2,HIGH);digitalWrite(mundur2, LOW);Serial.println("kiri");

}void ambilbola(){analogWrite(en1,0);analogWrite(en2,0);delay(100);camera();delay(100);pos-=23;servoku.write(23);delay(1000);

konter+=1;}void lepasbola(){analogWrite(en1,0);analogWrite(en2,0);delay(1000);pos+=23;servoku.write(48);delay(1000);konter+=1;}void baca(){ nilai0 = analogRead(sensor0);nilai0 = map(nilai0, min0, max0, 0, 1);nilai0 = constrain(nilai0, 0, 1);Status0 = nilai0;nilai1 = analogRead(sensor1);nilai1 = map(nilai1, min1, max1, 0, 1);nilai1 = constrain(nilai1, 0, 1);Status1 = nilai1;nilai2 = analogRead(sensor2);nilai2 = map(nilai2, min2, max2, 0, 1);nilai2 = constrain(nilai2, 0, 1);Status2 = nilai2;nilai3 = analogRead(sensor3);nilai3 = map(nilai3, min3, max3, 0, 1);nilai3 = constrain(nilai3, 0, 1);Status3 = 1;nilai4 = analogRead(sensor4);nilai4 = map(nilai4, min4, max4, 0, 1);nilai4 = constrain(nilai4, 0, 1);Status4 = nilai4;nilai5 = analogRead(sensor5);nilai5 = map(nilai5, min5, max5, 0, 1);nilai5 = constrain(nilai5, 0, 1);Status5 = nilai5;nilai6 = analogRead(sensor6);nilai6 = map(nilai6, min6, max6, 0, 1);nilai6 = constrain(nilai6, 0, 1);Status6 = nilai6;nilai7 = analogRead(sensor7);nilai7 = map(nilai7, min7, max7, 0, 1);

nilai7 = constrain(nilai7, 0, 1);Status7 = nilai7;}void ngonter(){if ((Status0 == 1)&&(Status1==1))

{x = 1;}else {x = 0;}presentStatus = x;if (presentStatus != lastStatus) {if (presentStatus == HIGH)

{konter++;} }lastStatus = presentStatus;

}void camera(){ Serial.begin(19200);cam.begin();cam.LEDOn(LED_BLINK);delay(WAIT_TIME);cam.autoGainControl(false);cam.autoWhiteBalance(false);cam.cameraBrightness (-16);cam.LEDOn(CMUCAM4_LED_ON);{ CMUcam4_statistics_data_t data;cam.getMean(); // Start streaming statistics data.{ cam.getTypeSDataPacket(&data);Serial.print(data.RMean);Serial.print('\t');Serial.print(data.BMean);Serial.println('\t');

}if (data.RMean < BMean){digitalWrite(ledB,HIGH);B=1;}else{digitalWrite(ledR,HIGH);R=1;}

/*else if (data.BMean < data.RMean){digitalWrite(ledR,HIGH);R=1;}// Do something else here.*/

}delay(1000);}