RANCANG BANGUN ROBOT CERDAS SEMUT MENGGUNAKAN MIKROKONTROLER AVR ATMEGA 16 UNTUK MENENTUKAN LINTASAN TERPENDEK
SKRIPSI
OLEH MUHAMAD DWISNANTO PUTRO NIM: 050213037
UNIVERSITAS SAM RATULANGI FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO MANADO 2010
RANCANG BANGUN ROBOT CERDAS SEMUT MENGGUNAKAN MIKROKONTROLER AVR ATMEGA 16 UNTUK MENENTUKAN LINTASAN TERPENDEK
SKRIPSI
Disusun Sebagai Salah Syarat untuk Memperoleh Gelar sarjana Teknik Pada Program Studi S1 Teknik Elektro di Jurusan Teknik Elektro Fakultas Teknik Universitas Sam Ratulangi
Oleh Muhamad Dwisnanto Putro NIM : 050213037
UNIVERSITAS SAM RATULANGI FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO MANADO
2010
i
LEMBAR PENGESAHAN
Judul Skripsi
:
Rancang Bangun Robot Cerdas Semut Menggunakan Mikrokontroler AVR ATMEGA 16 Untuk Menentukan Lintasan Terpendek
Nama
:
Muhamad Dwisnanto Putro
NIM
:
050213037
Program Studi
:
S1 Teknik Elektro
Jurusan
:
Teknik Elektro Universitas Sam Ratulangi
Menyetujui: Pembimbing I,
Pembimbing II,
Vecky C. Poekoel, ST, MT. NIP: 19670510 199702 1 001
Jane Litouw,ST NIP: 19800611 200312 2 002
Ketua Jurusan Teknik Elektro Unsrat,
Ir. Hans Wowor, M.Kom NIP: 19581017 198303 1 001
Dekan Fakultas Teknik Universitas Sam Ratulangi
Prof. DR. Ir. Ellen J. Kumaat, MSc, DEA NIP: 19600709 198603 2 001
Tanggal Lulus :
ii
Skripsi ini dipersembahkan kepada setiap insan yang dapat dengan tulus dan ikhlas menghargai setiap Pengorbanan .
Untuk ALLAH SWT Untuk Rasulullah Muhammad SAW Untuk Papa dan Mama Tercinta Untuk Keluarga Tercinta Untuk Kekasih Hati Tercinta
Motto: “Tak Ada Yang Tak Mungkin Di Dunia Ini”
iii
ABSTRAK
Robot cerdas semut merupakan robot line follower otomatis yang memiliki kemampuan untuk mengikuti garis yang telah ditandai pada permukaan. Lintasan robot dengan pola persimpangan berwarna putih digambarkan dalam bidang kartesian (3x3) dengan 9 titik sebagai titik asal dan titik tujuan. Metode yang digunakan Depth – First Search. Sedangkan untuk mempresentasikan keadaan menggunakan pohon
pencarian dalam mencari lintasan dari suatu titik asal menuju titik tujuannya. Robot cerdas semut menggunakan mikrokontroler AVR ATMEGA16 sebagai pengontrol, sensor proximity berupa 6 pasang led dan photodiode, SPC DC motor sebagai pengendali motor DC dan untuk mekaniknya menggunakan sistem kaki hexapod dengan motor servo HS-311 continous sebagai aktuatornya. Bahasa pemrograman yang digunakan adalah bahasa C Code vision AVR. Robot cerdas semut dapat berjalan secara stabil dan handal untuk mencari lintasan terpendek dalam bidang kartesian (3x3) dengan 9 titik sebagai titik asal dan titik tujuan dari robot semut pada lintasan garis berwarna putih.
Kata kunci: Robot Cerdas Semut , Mikrokontroler AVR ATMEGA16, Depth – First Search
iv
ABSTRACT
Intelligent robot ant are line follower robot automatically have the ability to follow the marked lines on the surface. Robot circuit with white crossing pattern described in the field kartesian (3x3) with 9 points as the home and goal point. The method used Depth - First Search. As for present situation using a search tree in finding a path from a point of origin to point of goal. Intelligent robot ants using AVR microcontroller ATMEGA16 as controllers, proximity sensors in the form of 6 pairs led and Photodiode, SPC DC motor as a DC motor controller and for mechanical hexapod leg system with servo motor HS-311 continuous as aktuator. Programming language used was C Code AVR vision. Intelligent robot ants can walk at a steady and reliable search for the shortest path in circuit kartesian (3x3) with 9 points as the home and the goal point of robot ants on the path of the white lines.
Keywords: intelligent robots ants, ATMEGA16 AVR microcontroller, Depth - First Search
v
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada ALLAH SWT, karena atas segala rahmat, hidayah dan anugerahnya, sehingga penulis dapat menyelesaikan penulisan skripsi ini. Tujuan penulisan skripsi ini adalah sebagai salah satu syarat untuk memperoleh gelar Sarjana Teknik pada program studi S1 Teknik Elektro fakultas Teknik Universitas Sam Ratulangi Manado. Skripsi ini merupakan hasil penelitian yang dilakukan penulis dengan judul “ RANCANG BANGUN ROBOT CERDAS SEMUT
MENGGUNAKAN
UNTUK
MENENTUKAN
MIKROKONTROLER LINTASAN
AVR
TERPENDEK
”.
ATMEGA
Penulis
16
dapat
menyelesaikan penelitian ini atas bantuan dari berbagai pihak, untuk itu pada kesempatan ini penulis ingin mengucapkan terima kasih dan penghargaan kepada: 1. Vecky C. Poekoel, ST, MT. dan Jane Litouw,ST. selaku dosen pembimbing yang telah memberi banyak bantuan, saran, dan kritikan dalam penulisan skripsi ini. 2. Prof. DR. Ir. Ellen J. Kumaat, MSc, DEA., selaku Dekan Fakultas Teknik Unsrat. 3. Ir. Hans F. Wowor, M.Kom., selaku Ketua Jurusan Teknik Elektro Fakultas Teknik Unsrat. 4. Alwin Sambul, S.T., selaku Ketua Program Studi S1 Teknik Elektro Fakultas Teknik Unsrat. 5. Enci Olvie dan staff administrasi jurusan teknik elektro fakultas teknik, atas segala bantuan dalam pengurusan administrasi. 6. Seluruh dosen konsentrasi minat teknik kendali UNSRAT, yang memberikan dukungan dan masukan terhadap penulisan skripsi ini. 7. Papa dan ibu tercinta, yang telah berkorban begitu banyak baik materi dan tenaga serta yang selalu mendoakan dan memberi dukungan kalian tidak sia-sia….)
vi
(pengorbanan
8. Eyang, Kakak dan saudara-saudara (keluarga) tercinta lainnya, yang selalu memberi perhatian lebih untuk menyelesaikan skripsi ini 9. Seseorang yang menjadi sumber inspirasi dalam pembuatan skripsi ini, terimakasih telah mendampingi penulis dengan sabar dan penuh dukungan. 10. Teman-teman komunitas teknik kendali angkatan 2004, 2005, 2006 dan 2007, untuk segala bantuan dan kritikan kalian dalam penulisan skripsi ini 11. Seluruh angkatan 2005 Fakultas Teknik Jurusan Teknik Elektro atas segala kenangan selama studi. 12. Semua pihak yang tidak tersebut namanya yang selalu membantu dan mendoakan penulis dalam penulisan skripsi ini. Penulis menyadari bahwa masih banyak terdapat kekurangan di dalam penulisan ini yang disebabkan karena terbatasnya kemampuan penulis, untuk itu masukan berupa saran dan perbaikan sangat penulis harapkan untuk lebih baiknya tulisan ini dan semoga tulisan ini akan bermanfaat bagi kita sekalian.
Manado, 5 Januari 2010
Penulis
vii
DAFTAR ISI
KATA PENGANTAR.....................................................................................
vi
DAFTAR ISI...... ................................................................................... ..........
viii
DAFTAR TABEL...........................................................................................
xii
DAFTAR GAMBAR......................................................................................
xiv
DAFTAR NOTASI.........................................................................................
xvii
DAFTAR ISTILAH........................................................................................
xviii
DAFTAR LAMPIRAN...................................................................................
xvix
BAB I
BAB II
PENDAHULUAN 1.1. Latar Belakang ......................................................................
1
1.2.
Rumusan Masalah.................................................................
2
1.3. Batasan Masalah…...............................................................
2
1.4. Tujuan………………............................................................
2
1.5. Manfaat………………..........................................................
3
DASAR TEORI 2.1. Sistem Kontrol Robotik….....................................................
4
2.1.1. Sistem Kontrol ON – OF...……………………………
5
2.1.2. Sistem Kontrol Proposional…………………………..
6
2.1.3. Sistem Kontrol Integral (I) dan Kontrol PI……………
6
2.1.4. Sistem Kontrol Derivatif, Kontrol PD dan Kontrol PID……………………………………….. 8 2.2. Kecerdasan buatan.................................................................
8
2.2.1. Pengertian Kecerdasan Buatan.....................................
8
2.2.2. Perbedaan Kecerdasan Buatan & Kecerdasan Alami…
8
2.2.3. Aplikasi-aplikasi Dari kecerdasan buatan…………….
9
2.2.4. Graph Keadaan………………………………………...
10
2.2.5. Pohon Pelacakan / Pencarian …………………………. 11 2.3. Teknik-Teknik Kecerdasan Buatan…………………………... 11 2.3.1. Metode Pelacakan/Pencarian ( Searching )……………... 12
viii
2.3.1.1 Pencarian Buta ( blind search) ………………………... 13 2.3.1.2 Heuristic Search ……………………………………… 15 2.4. Sistem Aktuator Pada Robot…………………………………. 15 2.4.1. Sistem Roda……………………………………………. 15 2.4.2. Sistem Kaki……………………………………………. 16 2.4.3. Sistem Tangan…………………………………………. 17 2.4.4. Mekanik Robot………………………………………… 19 2.4.5. Motor Servo DC……………………………………….
20
2.5. DT-AVR Low Cost Micro System…………………………….
21
2.5.1. Mikrokontroler AVR ATMEGA16…………………… 23 2.5.1.1. Arsitektur ATMEGA16……………………………..
24
2.5.1.2. Fitur ATMEGA16…………………………………...
24
2.5.1.3. Konfigurasi Pin ATMEGA16………………………
25
2.6. SPC DC Motor………………………………………………… 26 2.7.1. Dirver H-Bridge IC L293d…………………………… 27 2.7. Sensor proximity………………………………………………
29
2.8. Bahasa Pemrograman Code Vision AVR…………………….
31
2.9. Bahasa Pemograman C………………………………………..
32
2.9.1. Tipe Data Dasar……………………………………….
32
2.9.2. Aturan pendefinisian variable…………………………
33
2.9.3. Operator……………………………………………….. 34 2.9.4. Preprocessor…………………………………………… 35
BAB III
METODE PENELITIAN 3.1. Tempat Dan Waktu Penelitian……………………………….
37
3.2. Prosedur Penelitian…………………………………………..
37
3.3. Alat dan Bahan………………...…………………………….
37
3.4. Konsep dasar perancangan alat……………………………. .
38
3.5. Desain robot cerdas semut……………….…………………..
40
3.5.1. Perancangan Perangkat Keras…………………………
40
3.5.1.1. Perancangan Perangkat Keras Pengontrol Robot Cerdas Semut……………….……………….. 42
ix
3.5.1.2. Perancangan Perangkat Keras Sensor Robot Cerdas Semut…………………….…………….
46
3.5.1.3. Perancangan Perangkat Keras Aktuator Robot Cerdas Semut..……………..………………..
50
3.5.1.4. Perancangan Perangkat Keras Mekanik Robot Cerdas Semut………………………………. .
51
3.5.1.5. Perancangan Perangkat Keras Catu Daya Robot Cerdas Semut………………………………..
51
3.5.1.6. Perancangan Perangkat Keras Push Button Robot Cerdas Semut………………………………..
52
3.5.2. Perancangan Perangkat Lunak dan Diagram Alir……….…….
53
3.5.2.1. Perancangan Perangkat Lunak Code Vision AVR…………………………………..
53
3.5.2.2. Perancangan Perangkat Lunak Pengontrol Robot Cerdas Semut ...………………………………
56
3.5.2.3. Perancangan Perangkat Lunak Sensor Robot Cerdas Semut…………………….…………….
61
3.5.2.4. Perancangan Perangkat Lunak Aktuator Robot Cerdas Semut..……………..………………..
66
3.5.1.6. Perancangan Perangkat Lunak Push Button
BAB IV
Robot Cerdas Semut………………………………..
72
3.6. Lintasan Robot Cerdas Semut……………………………….
73
3.7. Perancangan Robot Secara Keseluruhan…………………….
73
HASIL DAN PEMBAHASAN 4.1. Pengujian Sistem Input………………………………….….... 76 4.2. Pengujian Sistem Output…………………………………...… 78 4.3. Pengujian Strategi Robot Cerdas Semut..……………………
83
4.3.1. Pencarian Rute Terpendek Untuk Titik A…………….
83
4.3.1.1. Titik A ke Titik B……………………………………
83
4.3.1.2. Titik A ke Titik C……………………………………
85
x
4.3.1.3. Titik A ke Titik D……………………………………
87
4.3.1.4. Titik A ke Titik E……………………………………
89
4.3.1.5. Titik A ke Titik F……………………………………
91
4.3.1.6. Titik A ke Titik G……………………………………
93
4.3.1.7. Titik A ke Titik H……………………………………
95
4.3.1.8. Titik A ke Titik I…………………………………….. 97 4.3.2. Pencarian Rute Terpendek Untuk Titik B…………….
100
4.3.3. Pencarian Rute Terpendek Untuk Titik C…………….
100
4.3.4. Pencarian Rute Terpendek Untuk Titik D……………
101
4.3.5. Pencarian Rute Terpendek Untuk Titik E…………….
102
4.3.6. Pencarian Rute Terpendek Untuk Titik F…………….
102
4.3.7. Pencarian Rute Terpendek Untuk Titik G…………….
103
4.3.8. Pencarian Rute Terpendek Untuk Titik H…………….
104
4.3.9. Pencarian Rute Terpendek Untuk Titik I……………..
104
4.4. Pembahasan……………………………………………………. 105
BAB V
4.4.1. Pembahasan Sistem Input……………………………..
105
4.4.2. Pembahasan Sistem Output……………………………
106
4.4.3. Pembahasan Strategi Robot Cerdas Semut……………
107
PENUTUP 5.1. Kesimpulan………………………………………………………..
109
5.2.
110
Saran……………………………………………………………….
DAFTAR PUSTAKA…………………………………………………………… 111
LAMPIRAN……………………………………………………………………… 113
xi
DAFTAR TABEL
Nomor
Teks
Halaman
2.1
Fungsi Pin-Pin Pada IC L293D………………………
29
2.2
Ukuran tipe memori data…………………………….. 32
2.3
Ukuran tipe memori data int…………………………. 33
3.1
Hubungan SPC DC motor dengan DT AVR Low Cost Micro System……………………………….…… 44
3.2
Hubungan sensor proximity dengan DT AVR Low Cost Micro System …………………………………… 48
3.3
Hubungan 9 push button dengan DT AVR Low Cost Micro System …………………..……………….. 52
3.4
Posisi Sensor ………………………………………… 61
3.5
Aksi Pergerakan Robot……………………………….. 66
4.1
Pembacaan sensor menggunakan LED………………. 77
4.2
Pengujian Gerak Motor DC dengan PWM…………… 79
4.3
Pengujian Motor DC dengan PWM………………….. 81
4.4
Lintasan titik A ke titik B…………………………….. 83
4.5
Lintasan titik A ke titik C…………………………….. 85
4.6
Lintasan titik A ke titik D…………………………….. 87
4.7
Lintasan titik A ke titik E…………………………….. 89
4.8
Lintasan titik A ke titik F…………………………….. 91
4.9
Lintasan titik A ke titik G…………………………….. 93
4.10
Lintasan titik A ke titik H…………………………….. 95
4.11
Lintasan titik A ke titik I……………………………..
4.12
Lintasan terpendek untuk titik B……………………... 100
4.13
Lintasan terpendek untuk titik C……………………... 100
4.14
Lintasan terpendek untuk titik D……………………... 101
4.15
Lintasan terpendek untuk titik E……………………... 102
4.16
Lintasan terpendek untuk titik F……………………... 102
xii
97
4.17
Lintasan terpendek untuk titik G……………………... 103
4.18
Lintasan terpendek untuk titik H……………………... 104
4.19
Lintasan terpendek untuk titik I…………………….... 105
4.20
Performansi Metode Pencarian Untuk Titik A………... 107
xiii
DAFTAR GAMBAR
Nomor
Teks
Halaman
2.1
Kontrol Robot Loop Terbuka...........................................
2.2
Kontrol Robot Loop Tertutup……………………………… 5
2.3
Kontrol Robot Loop Tertutup ON/OFF.............................
2.4
Kontrol Robot Proporsional………………………………... 6
2.5
Kontrol PI pada motor DC ………………………………... 7
2.6
Kontrol PD pada Motor DC ………………………………. 7
2.7
Kontrol PID pada Motor DC……………………………… 8
2.8
Contoh Graph Keadaan...................................................
2.9
Contoh Pohon Pencarian….……………………………….. 11
2.10
Contoh Breadth First Search….………………………….... 13
2.11
Contoh Depth First Search………………………………… 14
2.12
Sistem Roda Pada Robot Mobil…..……………………...... 16
2.13
Sistem Kaki Pada Robot Hexapod..………………………... 16
2.14
Sistem Tangan……………...………………………………. 17
2.15
Penggunaan Transmisi Gear Hubungan Langsung……….... 18
2.16
Penggunaan Transmisi Gear Dengan Hubungan Ohmic...... 18
2.17
Gear Belt……………………..……………………………. 19
2.18
Motor Servo HS-311………………………………………. 20
2.19
Nilai Pulsa Untuk Menggerakan Motor Servo.…………...
2.20
Tata Letak DT-AVR Low Cost Micro System …………… 22
2.21
Blok Diagram Fungsional ATMEGA16….…………….…. 23
2.22
Pin ATMEGA16……..………………………………..…... 25
2.23
Tata Letak Komponen SPC DC Motor ..…………………. 26
2.24
IC L293D ………………………….……………………… 28
2.25
Diagram Blok IC L293D …………………………………. 29
2.26
Prinsip Kerja Sensor Proximity ……………………..……. 30
2.27
Rangkaian Infrared Proximity Sebagai Sensor Garis .……. 30
xiv
4
5
10
21
2.28
Sensor Dengan Rangkaian Pembanding …….…….……… 31
3.1
Diagram Blok Robot Cerdas Semut……………………..… 39
3.2
Gambaran Sistem Robot Cerdas Semut.………….……….. 39
3.3
Plat Almunium Bawah Robot Cerdas Semut Tampak Atas. 40
3.4
Plat Almunium Atas Robot Cerdas Semut Tampak Atas…. 41
3.5
Robot Line Follower Tampak Atas…..……………………. 41
3.6
Robot Line Follower Tampak Samping..………………….. 42
3.7
Skema DT-AVR Low Coast Micro System……………….. 43
3.8
Skema SPC DC Motor…………………………………….. 45
3.9
Jarak Antara Sensor Proximity………..……………………. 46
3.10
Robot Dengan 6 Sensor…………………………………….. 47
3.11
Rangkaian Sensor Proximity...............................................
3.12
Hubungan Motor DC dengan SPC DC Motor..................... 50
3.13
Sistem Kaki Robot Cerdas Semut........................................ 51
3.14
Rangkaian Baterai Untuk Mikrokontroler….………………. 52
3.15
Rangkaian 9 Push Button………………….……………….. 53
3.16
Diagam Alir Program Utama…….…………………………. 56
3.17
Diagram Alir Inisialisasi………..…………………..………. 58
3.18
Diagram Alir Persimpangan……..…………………………. 59
3.19
Diagram Alir Pencarian Lintasan Terpendek...…………….. 60
3.20
Kemungkinan Posisi Sensor Proximity Pada Garis …...….. 61
3.21
Diagram Alir Baca Sensor…...…………………………….. 62
3.22
Diagram Alir Jalankan Robot ……………………………... 67
3.23
Diagram Alir Sub Rutin Belok Kanan Dan Belok Kiri…… 71
3.24
Diagram Alir Sub Rutin Pushbutton ………………………. 72
3.25
Lintasan Robot Cerdas Semut……………………………... 73
3.26
Diagram Skematik Sistem Robot Cerdas Semut.……….…. 74
3.27
Foto Robot Cerdas Semut Yang Dirancang Tampak Atas… 75
3.28
Foto Robot Cerdas Semut Yang Dirancang Tampak
49
Samping…………………………………………………….. 75
xv
4.1
Rangkaian Sensor Proximity Dan LED…………………….. 77
4.2
Pohon Pencarian Rute Terpendek Titik A Ke Titik B..….... 84
4.3
Strategi Penentuan Rute Terpendek Titik A Ke Titik C.….. 84
4.4
Pohon Pencarian Rute Terpendek Titik A Ke Titik C…….. 86
4.5
Strategi Penentuan Rute Terpendek Titik A Ke Titik C…... 86
4.6
Pohon Pencarian Rute Terpendek Titik A Ke Titik D..…… 88
4.7
Strategi Penentuan Rute Terpendek Titik A Ke Titik D….. 88
4.8
Pohon Pencarian Rute Terpendek Titik A Ke Titik E..…… 90
4.9
Strategi Penentuan Rute Terpendek Titik A Ke Titik E…… 90
4.10
Pohon Pencarian Rute Terpendek Titik A Ke Titik F..…… 92
4.11
Strategi Penentuan Rute Terpendek Titik A Ke Titik F…… 92
4.12
Pohon Pencarian Rute Terpendek Titik A Ke Titik G..…… 94
4.13
Strategi Penentuan Rute Terpendek Titik A Ke Titik G…… 94
4.14
Pohon Pencarian Rute Terpendek Titik A Ke Titik H..…… 96
4.15
Strategi Penentuan Rute Terpendek Titik A Ke Titik H…… 96
4.16
Pohon Pencarian Rute Terpendek Titik A Ke Titik I..…….. 98
4.17
Strategi Penentuan Rute Terpendek Titik A Ke Titik I……. 99
4.18
Grafik Pengujian Motor DC dengan PWM………………… 106
xvi
DAFTAR NOTASI
G(s)
=
Fungsi Alih Kontroler
H(s)
=
Fungsi Alih Dinamik Robot
r
=
Input
u
=
Sinyal Output Kontroler
y
=
Output
θ ref
=
Kecepatan Referensi
θ act
=
Kecepatan Aktual
Kp
=
Konstanta Proporsional
Ki
=
Konstanta Integral
Kd
=
Konstanta Derivatif
b
=
Faktor Percabangan
m
=
Kedalaman Maksimum Dari Pohon Pencarian
n
=
Jumlah Level
N1
=
Jumlah Gigi Pada Gir Poros Motor
N2
=
Jumlah Gigi Pada Poros Output
T1
=
Torsi Pada Poros Motor
T2
=
Torsi Pada Poros Output
Vout
=
Tegangan Output
Vcc
=
Tegangan Referensi
Vs
=
Tegangan Sumber
xvii
DAFTAR ISTILAH
Line Follower
: Pengikut Garis
Continous
: Putaran Kontinyu
Nonflexible
: Tidak Flexible
Proximity
: Sensor Pendekatan
Steady State
: Keadaan Tenang
Artificial Intelegence : Kecerdasan Buatan Graph
: Grafik
Fuzzy logic
: Logika Fuzzy
Level
: Tingkatan
Power
: Tegangan sumber
Average speed
: Kecepatan Rata-Rata
Weight
: Tinggi
Torque
: Torsi
Size
: Ukuran
Centre
: Tengah
Delay
: Waktu Tunda
Int
: Tipe Data Integer
open loop
: Lup terbuka
close loop
: Lup Tertutup
Input
: Masukan
Output
: Keluaran
Software
: Perangkat Lunak
Hardware
: Perangkat Keras
PWM
: Pulse Wide Modulation
xviii
DAFTAR LAMPIRAN
Lampiran 1
Listing Program Untuk mencari lintasan terpendek pada titik A
Lampiran 2
Data Sheet ATMEGA16
Lampiran 3
Data Sheet L293D
xix
BAB I PENDAHULUAN
1.1.
Latar Belakang
Semut merupakan mahluk mungil yang sangat terampil, sangat sosial, dan sangat cerdas. teknologi, kerja gotong-royong, strategi militer, jaringan komunikasi yang maju, hierarki yang rasional dan cerdik, disiplin, perencanaan kota yang sempurna dalam bidang-bidang ini, yang manusia mungkin jarang cukup berhasil, namun semut selalu sukses. Secara alamiah koloni semut mampu menemukan rute terpendek dalam perjalanan dari sarang ke tempat-tempat sumber makanan. Koloni semut dapat menemukan rute terpendek antara sarang dan sumber makanan berdasarkan jejak kaki pada lintasan yang telah dilalui. Teknologi robot pada masa sekarang ini berkembang dengan pesat mengimbangi kemajuan teknologi yang ada. Perkembangan robot tidak hanya pada
kecanggihan
mekaniknya
saja,
melainkan
juga
sistem
kendalinya
menggunakan sistem komputerisasi. Pembuatan robot-robot dengan keistimewaan khusus sangat berkaitan erat dengan adanya kebutuhan dalam dunia industri modern yang menuntut adanya suatu alat dengan kemampuan yang tinggi yang dapat membantu menyelesaikan pekerjaan manusia ataupun untuk menyelesaikan pekerjaan yang tidak mampu diselesaikan oleh manusia. Salah satu jenis robot sederhana adalah robot line follower . Namun berbagai macam kekurangan yang dimiliki dari sistem robot ini antara lain robot line follower belum mampu menentukan jalan sendiri, yang cenderung kaku atau nonflexible. Dalam perkembangannnya robot line follower dikembangkan lebih cerdas dan mampu berfikir kembali atas apa yang robot ini kerjakan. Seiring dengan perkembangan teknik pemrograman robot, maka makin mempermudah manusia untuk membuat robot semakin cerdas yang mengikuti kehendak serta kemauan dari manusia itu sendiri. Semakin pendek dan singkat intruksi dalam suatu pemrograman maka dibutuhkan interpretasi yang banyak. Sehingga membuat bahasa mesin tak sesulit yang dibayangkan setiap manusia dalam hal ini programmer .
1
Perancangan robot cerdas semut menggunakan mikrokontroler ATmega16 dan sensor proximity sebagai pendeteksi garis berwarna putih. Sumber cahaya sensor proximity menggunakan LED (Light Emiting Diode) yang memancarkan cahaya merah, sedangkan untuk menangkap pantulan cahaya LED digunakan photodioda. Sistem gerak kaki yang dipakai menyerupai kaki semut, berjumlah 6 kaki, dengan sistem mekanik roda gila. Dengan adanya sistem gerak ini maka robot ini dinamakan robot semut. Tujuan dari robot cerdas semut ini adalah dapat berjalan secara stabil dan handal mengikuti lintasan garis berwarna putih dengan begitu banyak jalan dan lintasan yang ada, robot akan mencari jalan dan lintasan terpendek.
1.2.
Perumusan Masalah
Bagaimana robot cerdas semut menentukan lintasan atau rute terpendek pada 9 titik asal dan tujuan?
1.3.
Pembatasan Masalah
Ruang lingkup pembahasan dari Tugas Akhir ini hanya terbatas pada : 1.
Sistem kerja robot cerdas semut mengikuti garis pada lintasan berwarna putih
2.
Pembahasan dibatasi pada analisis pencarian jalan terpendek dari robot semut.
3.
Lintasan robot digambarkan dalam bidang kartesian (3x3) dengan 9 titik sebagai titik asal dan titik tujuan dari robot semut.
4.
Posisi awal robot menghadap kanan pada lintasan
5.
Perancangan
robot
cerdas
semut
menggunakan
mikrokontroler
ATMEGA 16, dengan sensor proximity untuk mendeteksi garis putih.
1.4.
Tujuan
Tujuan dari tugas akhir ini adalah merancang robot cerdas semut mengikuti lintasan garis putih dengan metode penentuan jarak terpendek.
2
1.5.
Manfaat
Manfaat yang diharapkan akan diperoleh dari tugas akhir ini antara lain: 1. Memperkenalkan aplikasi metode pencarian jarak terpendek pada robot Line Follower sebagai salah satu sistem cerdas kepada
masyarakat khususnya mahasiswa elektro. 2. Memperkaya penelitian dan literatur dalam bidang robotika. 3. Sebagai
referensi
khususnya
aplikasi
metode
pencarian
jarak
terpendek dalam sistem pengendalian cerdas serta perancangan aplikasi robot line follower khususnya robot cerdas semut 4. Memperkenalkan kemampuan penalaran yang ada pada manusia ke dalam perangkat mesin. 5. Aplikasi pada pemrograman kontes robot indonesia
3
BAB II LANDASAN TEORI
2.1.
Sistem Kontrol Robotik
Sistem kontrol adalah suatu proses pengaturan / pengendalian terhadap satu atau beberapa besaran (variable, parameter) sehingga berada pada suatu harga atau dalam rangkuman harga (range) tertentu. Dalam istilah lain disebut juga sistem pengaturan, sistem pengendalian atau sistem pengontrolan. Ditinjau dari segi peralatan dan instrumen yang digunakan, sistem kontrol terdiri dari berbagai susunan komponen fisik yang digunakan untuk mengarahkan aliran energi ke suatu mesin atau proses agar dapat menghasilkan prestasi yang diinginkan. Tujuan utama dari suatu sistem kontrol adalah untuk mendapatkan optimasi, dalam hal ini dapat diperoleh berdasarkan fungsi dari sistem kontrol itu sendiri,
yaitu
pengukuran
(measurement ),
membandingkan
(comparison),
pencatatan dan perhitungan (computation) dan perbaikan (correction). sehingga memudahkan pengoperasian, peningkatan efisiensi dan kualitas kerja suatu sistem, meniadakan pekerjaan rutin yang harus dilakukan oleh manusia, serta masih banyak lagi pengaruh yang disebabkan oleh perkembangan dari pengendalian otomatik (Ogata, 1995). Sistem kontrol robotik pada dasarnya terbagi menjadi dua kelompok, yaitu sistem kontrol loop terbuka (open loop)
dan loop tertutup (close loop)
(Pitowarno, 2006). Diagram kontrol loop terbuka pada sistem robot dapat dinyatakan dalam gambar 2.1 berikut ini. Hasil Gerak
Referensi Gerak
Pengontrol
Robot
Gambar 2.1. Kontrol Robot Loop Terbuka. (Pitowarno, 2006).
Kontrol loop terbuka atau umpan maju ( feedfoward control) dapat dinyatakan sebagai sistem kontrol yang keluarannya tidak diperhitungkan ulang
4
oleh pengontrol. Keadaan apakah robot benar – benar telah mencapai target seperti yang dikehendaki sesuai referensi, adalah tidak dapat mempengaruhi kerja pengontrol. Kontrol ini sesuai untuk sistem operasi robot yang memiliki aktuator yang beroprasi berdasarkan logika berbasis konfigurasi langkah sesuai urutan, misalnya motor stepper. Motor stepper tidak perlu dipasangi sensor pada porosnya untuk mengetahui posisi akhir. Jika dalam keadaan berfungsi baik dan tidak ada masalah beban lebih maka stepper motor akan berputar sesuai dengan perintah pengontrol dan mencapai posisi target dengan cepat. Kontrol robot loop tertutup dapat dinyatakan seperti dalam gambar 2.2. Error = Gerak referensi – Gerak aktual
Hasil gerak Sesungguhnya (dibaca oleh sensor)
Referensi Gerak
Pengontrol +
Robot
-
Gerak Aktual
Gambar 2.2. Kontrol Robot Loop Tertutup. (Pitowarno, 2006).
Pada gambar diatas, jika gerak hasil gerak aktual telah sama dengan referensi maka input pengontrol akan nol. Artinya pengontrol tidak lagi memberikan sinyal aktusi kepada robot karena target akhir perintah gerak telah diperoleh. Makin kecil error maka makin kecil pula sinyal pengemudian pengontrol terhadap robot, sampai akhirnya mencapai kondisi tenang (steady state).
2.1.1. Sistem Kontrol ON – OF Gambar
berikut
mengilustrasikan
diagram
kontrol
loop
tertutup
berdasarkan ON/OFF. /0
1/0
1
+
Pengontrol ON/Off
1/0
Robot
1/0
-
Gambar 2.3. Kontrol Robot Loop Tertutup ON/OFF. (Pitowarno, 2006).
5
Pada sistem kontrol on-off ada dua keadaan yang akan dihasilkan output yaitu keadaan on atau keadaan off. Sistem kontrol On/Off, kadangkala disebut sebagai “bang-bang control ” adalah kontrol yang paling dasar dalam robotik. Input sensor dan output pada aktuator dinyatakan dalam dua keadaan yaitu
ON/OFF atau logika 1 dan 0. Kestabilan gerak yang diperoleh hanya berdasarkan pada rule sederhana tetapi mampu menjaga robot dari gerakan yang menyebabkan tracking error (TE) menjadi membesar. Sebagai contoh, robot - robot yang dibuat
untuk mengikuti garis atau line follower , serta robot pada Kontes Robot Indonesia (KRI).
2.1.2. Sistem Kontrol Proporsional Kontroler proporsional menggunakan prinsip umpan balik di dalamnya. Seperti pada gambar, r adalah input, e adalah error , u adalah sinyal output kontroler, G(s) adalah kontroler, H(s) adalah dinamik robot, dan y adalah output.
r
+
e
u G(s) = Kp
H(s)
y
-
Gambar.2.4. Kontrol Robot Proporsional. (Pitowarno, 2006).
2.1.3. Sistem Kontrol Integral (I) dan Kontrol PI Kontrol integral memiliki plant yang fungsi alihnya memiliki integrator 1/s, memiliki fungsi menghilangkan offset atau kesalahan keadaan tunak (steady state). Gabungan kontrol I dengan kontrol P untuk sebuah motor DC dapat
digambarkan sebagai berikut:
6
Sinyal aktuasi
error
e r
u Kp
ref (rpm) atau (0+5)V θ
-
Poros motor
MOTOR DC
Sensor Kece atan
y act (rpm) atau (0+5)V θ
Gambar 2.5. Kontrol PI pada motor DC
2.1.4. Sistem Kontrol Derivatif, Kontrol PD dan Kontrol PID Kontrol derivatif atau kontrol turunan memiliki Umpan balik yang diberikan sebanding dengan kecepatan perubahan sehingga kontroler dapat mengantisipasi error yang akan terjadi. Karena kontrol turunan bekerja berdasarkan laju perubahan kesalahan penggerak, bukan berdasarkan pada kesalahan penggerak itu sendiri, maka jenis aksi ini tidak dapat digunakan sendirian. Kontrol turunan digunakan secara bersamaan dengan aksi proporsional.
r
error
Sinyal aktuasi
e
u
MOTOR DC
Kp
θ ref (rpm) atau (0+5)V
Poros motor
-
Sensor Kecepatan
y act (rpm) atau (0+5)V θ
s. Kd
Gambar 2.6. Kontrol PD pada Motor DC
Kontrol PID menggabungkan kontrol P, I dan D maka masing – masing kelebihannya dapat disatukan guna mendapatkan kontrol yang ideal. Pada motor DC blok diagramnya adalah sebagai berikut:
7
Poros motor
Kp e
u
r
MOTOR DC
-
Sensor Kecepatan
y act (rpm) atau (0+5)V θ
s. Kd
Gambar 2.7. Kontrol PID pada Motor DC
2.2. Kecerdasan Buatan
2.2.1. Pengertian Kecerdasan Buatan Definisi Kecerdasan buatan ( Artificial Intelligence) adalah bagian dari ilmu komputer yang mempelajari bagaimana membuat mesin (computer ) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia bahkan bisa lebih baik daripada yang dilakukan manusia. Cerdas adalah memiliki pengetahuan ditambah pengalaman, penalaran (bagaimana membuat keputusan & mengambil tindakan), moral yang baik agar mesin bisa cerdas (bertindak seperti & sebaik manusia) maka harus diberi bekal pengetahuan & mempunyai kemampuan untuk menalar.
2.2.2. Perbedaan Kecerdasan Buatan & Kecerdasan Alami Kelebihan kecerdasan buatan antara lain: 1. Lebih bersifat permanen. Kecerdasan alami bisa berubah karena sifat manusia pelupa. Kecerdasan buatan tidak berubah selama sistem komputer & program tidak mengubahnya. 2. Lebih mudah diduplikasi & disebarkan. Mentransfer pengetahuan manusia dari 1 orang ke orang lain membutuhkan proses yang sangat lama & keahlian tidak akan pernah dapat diduplikasi dengan lengkap.Jadi jika pengetahuan terletak pada suatu sistem komputer, pengetahuan tersebut
8
dapat disalin dari komputer tersebut & dapat dipindahkan dengan mudah ke komputer yang lain. 3. Lebih murah. Menyediakan layanan komputer akan lebih mudah & murah dibandingkan mendatangkan seseorang untuk mengerjakan sejumlah pekerjaan dalam jangka waktu yang sangat lama. 4. Bersifat konsisten dan teliti karena kecerdasan buatan adalah bagian dari teknologi komputer sedangkan kecerdasan alami senantiasa berubah-ubah. 5. Dapat
didokumentasi.
Keputusan
yang
dibuat
komputer
dapat
didokumentasi dengan mudah dengan cara melacak setiap aktivitas dari sistem tersebut. Kecerdasan alami sangat sulit untuk direproduksi. 6. Dapat mengerjakan beberapa task lebih cepat dan lebih baik dibanding manusia. Kelebihan kecerdasan alami antara lain: 1. Kreatif manusia memiliki kemampuan untuk menambah pengetahuan, sedangkan pada kecerdasan buatan untuk menambah pengetahuan harus dilakukan melalui sistem yang dibangun. 2. Memungkinkan orang untuk menggunakan pengalaman atau pembelajaran secara langsung. Sedangkan pada kecerdasan buatan harus mendapat masukan berupa input-input simbolik. 3. Pemikiran manusia dapat digunakan secara luas, sedangkan kecerdasan buatan sangat terbatas.
2.2.3. Aplikasi-aplikasi Dari kecerdasan buatan Kecerdasan buatan (AI) telah dipelajari selama kira-kira 40 tahun. Hingga saat ini telah dihasilkan beberapa produk aplikasi kecerdasan buatan secara komersial. Aplikasi-aplikasi kecerdasan buatan antara lain game playing, sistem bahasa alami, manajemen data cerdas, analisa kecerdasan militer, kendali robot dan masih banyak lagi aplikasi dari kecerdasan buatan. Ada beberapa cara untuk merepresentasikan Ruang Keadaan, antara lain : a. Graph keadaan b. Pohon Pelacakan / Pencarian
9
2.2.4. Graph Keadaan Graph terdiri dari node-node yang menunjukkan keadaan yaitu keadaan
awal dan keadaan baru yang akan dicapai dengan menggunakan operator. Nodenode dalam graph keadaan saling dihubungkan dengan menggunakan arc (busur) yang diberi panah untuk menunjukkan arah dari suatu keadaan ke keadaan berikutnya.
Gambar 2.8. Contoh Graph Keadaan
Berdasarkan gambar diatas Graph keadaan dengan node M menunjukkan keadaan awal, node T adalah tujuan. Ada 4 lintasan dari M ke T yaitu: M-A-B-C-E-T M-A-B-C-E-H-T M-D-C-E-T M-D-C-E-H-T Lintasan buntu atau lintasan yang tidak sampai ke tujuan yaitu : M-A-B-C-E-F-G M-A-B-C-E-I-J M-D-C-E-F-G M-D-C-E-I-J M-D-I-J
10
2.2.5. Pohon Pelacakan / Pencarian Struktur pohon digunakan untuk menggambarkan keadaan secara hirarkis. Node yg terletak pada level-o disebut ’akar’. Node akar : menunjukkan keadaan awal & memiliki beberapa percabangan yang terdiri atas beberapa node yg disebut ’anak’. Node-node yg tidak memiliki anak disebut ’daun’ menunjukkan akhir dari suatu pencarian, dapat berupa tujuan yang diharapkan (goal) atau jalan buntu (dead end ). ). Gambar berikut menunjukkan pohon pencarian untuk graph keadaan dengan 6 level.
Gambar 2.9. Contoh Pohon Pencarian
2.3. Teknik-Teknik Kecerdasan Buatan
Tiga Teknik kecerdasan buatan yang penting antara lain: 1. Pencarian/penelusuran (Search ) Menyediakan sebuah jalan untuk memecahkan persoalan yang lebih dari beberapa pendekatan tidak langsung yang tersedia. 2. Penggunaan dari Pengetahuan (Use of Knowledge) Memberikan sebuah jalan untuk memecahkan struktur-struktur dari objek yang dilibatkan.
11
3. Abstraksi ( Abstraction) Memberikan sebuah jalan yang mengutamakan pemisahan dan variasi dari beberapa yang tidak penting.
2.3.1.Metode Pelacakan/Pencarian (Searching) Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian. Pencarian merupakan suatu proses mencari solusi dari suatu permasalahan melalui sekumpulan kemungkinan ruang keadaan (state space). Ruang keadaan merupakan suatu ruang yang berisi semua keadaan yang
mungkin. Untuk mengukur perfomansi metode pencarian, terdapat empat kriteria yang dapat digunakan antara lain: •
Completeness
Apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada? •
Time complexity
Berapa lama waktu yang diperlukan? (b^m). Diasumsikan b sebagai Faktor Percabangan dan m adalah kedalaman maksimum dari pohon pencarian •
Space complexity
Berapa banyak memori yang diperlukan?(b x m) •
Optimality
Apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda? Teknik pencarian terbagi atas dua metode yaitu : 1. Pencarian buta (blind search) tidak ada informasi awal yang digunakan dalam proses pencarian a. Pencarian melebar pertama ( Breadth – First Search ) b. Pencarian mendalam pertama ( Depth – First Search ) 2. Pencarian terbimbing (heuristic search ) adanya informasi awal yang digunakan dalam proses pencarian a. Pendakian Bukit ( Hill Climbing) b. Pencarian Terbaik Pertama ( Best First Search )
12
2.3.1.1 Pencarian Buta (blind search) Pencarian buta (blind search) terdiri atas Pencarian melebar pertama ( Breadth – First Search) dan Pencarian mendalam pertama ( Depth – First Search ).
1. Breadth – First Search Semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level 1 dari kiri ke kanan, kemudian berpindah ke level berikutnya dari kiri ke kanan hingga solusi ditemukan.
Gambar 2.10. Contoh Breadth First Search
Keuntungan Breadth – First Search yaitu : •
Tidak akan menemui jalan buntu, menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti yang paling baik
•
Jika ada satu solusi, maka breadth – first search akan menemukannya,jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.
•
Kesimpulan : complete dan optimal
Kelemahan Breadth – First Search yaitu : •
membutuhkan memori yang banyak, karena harus menyimpan semua simpul yang pernah dibangkitkan. Hal ini harus dilakukan agar Breadth – First Search dapat melakukan penelusuran simpul-simpul sampai di level
bawah •
membutuhkan waktu yang cukup lama
13
2. Depth – First Search Pencarian dilakukan pada suatu simpul dalam setiap level dari yang paling kiri. Pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari memori. Pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.
Gambar 2.11. Contoh Depth First Search
Keuntungan Depth – First Search yaitu: •
Penggunaan memori relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan
•
Secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan, jadi jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka Depth – First Search akan
menemukannya dengan cepat. Kelemahan Depth – First Search yaitu : •
Memungkinkan tidak ditemukannya tujuan yang diharapkan, karena jika pohon yang dibangkitkan mempunyai level yang sangat dalam (tak terhingga) uncomplete karena tidak ada jaminan menemukan solusi
•
Hanya mendapat 1 solusi pada setiap pencarian, karena jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka Depth – First Search tidak menjamin untuk menemukan solusi yang paling
baik tidak optimal.
14
2.3.1.2 . Heuristic Search Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu aksesnya yang cukup lama & besarnya memori yang diperlukan. Untuk masalah dengan ruang masalah yang besar, teknik pencarian buta bukan metode yang baik karena keterbatasan kecepatan komputer dan memori. Metode heuristic search diharapkan bisa menyelesaikan permasalahan yang lebih besar.
Metode heuristic search menggunakan suatu fungsi yang
menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke simpul tujuan
disebut fungsi heuristic Aplikasi yang menggunakan fungsi
heuristic : Google, Deep Blue Chess Machine
2.4.
Sistem Aktuator Pada Robot
Robot berdasarkan mobilitasnya terbagi dalam dua kelompok. Kelompok yang pertama merupakan robot yang dioperasikan pada lingkungan yang tetap dengan pergerakan yang cenderung tetap dan tertentu (sebagai robot industri atau stationary robot ). Pada kelompok yang kedua, robot dapat bergerak secara
otonomi, memiliki navigasi, dan pergerakannya yang tidak tetap tergantung dari medan jelajah (dikenal dengan mobile robot ). (Halim, 2007).
2.4.1. Sistem Roda Sistem roda adalah sistem mekanik yang dapat menggerakan robot untuk berpindah posisi. Dapat terdiri dari sedikitnya sebuah roda penggerak (drive dan steer ), dua roda differensial (kiri-kanan independen ataupun sistem belt seperti
tank), tiga roda (synchro drive atau sistem holonomic), empat roda ( Ackermann model / car like mobile robot ataupun sistem macanum wheels) ataupun lebih.
Gambar 2.12. Sistem Roda Pada Mobile Robot (Halim, 2007)
15
2.4.2. Sistem Kaki Pada dasarnya sisitem kaki adalah gerakan “roda” yang didesain sedemikian rupa hingga memiliki kemampuan gerak seperti mahluk hidup. Robot berjalan dengan sistem dua kaki atau biped robot memiliki struktur kaki seperti manusia setidak-tidaknya mempunyai sendi-sendi yang mewakili pergelangan kaki, lutut dan pinggul. Dalam konfigurasi yang ideal pergerakan pada pinggul dapat terdiriri dari multi DOF dengan kemampuan gerakan memutar seperti orang menari jaipong. Demikian juga pada pergelangan kaki, idealnya juga adalah memiliki kemampuan gerakan bipolar. Untuk robot binatang (animaloid ) seperti serangga, jumlah kaki dapat desain lebih dari empat. Bahkan robot ular dapat memiliki DOF yang lebih dari 8 sesuai dengan panjang robot (ular) yang didefinisikan.
Gambar 2.13. Sistem Kaki Pada Robot Hexapod (Halim, 2007)
2.4.3. Sistem Tangan Sistem tangan adalah bagian atau anggota badan robot selain sistem roda atau kaki. Dalam konteks mobile robot , bagian tangan ini dikenal sebagai manipulator yaitu sistem gerak yang berfungsi untuk memanipulasi (memegang, mengambil, mengangkat, memindah atau mengolah) obyek. Pada robot industri fungsi
mengolah
dapat
berupa
perputaran
16
(mamasang
mur-baut,
mengebor/drilling, milling, dan lain-lain), tracking (mengelas, membubut, dan sebagainya), ataupun mengaduk (kontrol proses).
Gambar 2.14. Sistem Tangan (Halim, 2007)
2.4.4. Mekanik Robot Struktur robot sebagian besar dibangun berdasarkan konstruksi mekanik. Robot yang memiliki kemampuan navigasi dan manipulasi secara relatif memiliki konstruksi mekanik yang lebih rumit dibandingkan dengan yang berkemampuan navigasi saja, seperti mobile robot tanpa tangan yang hanya memiliki roda penggerak. Namun demikian robot berjalan (walking robot ) seperti misalnya biped (dua kaki) dapat memiliki konstruksi mekanik yang rumit dibandingkan dengan robot tangan planar. Hal yang mendasar yang harus di perhatikan dalam mendisain
mekanik
robot
adalah
perhitungan
kebutuhan
torsi
untuk
menggerakkan sendi atau roda. Motor sebagai penggerak utama (prime – mover ) yang paling sering dipakai umumnya akan bekerja optimal (torsi dan kecepatan yang paling ideal) pada putaran yang relatif tinggi yang hal ini tidak sesuai bila porosnya dihubungkan langsung ke sendi gerak atau roda. Sebab kebanyakan gerakan yang diperlukan pada sisi anggota badan robot adalah relatif pelan namun bertenaga. Untuk itu diperlukan transmisi daya motor (atau aktuaktor secara umum) secara tepat. Salah satu metoda yang umum adalah menggunakan sistem
17
gear . Gambar
mengilustrasikan sebuah mekanisme peningkatan torsi motor
menggunakan dua buah gear .
Gambar 2.15. Penggunaan Transmisi Gear Hubungan Langsung
(Pitowarno, 2006)
Arah puaran poros pada transmisi gear hubungan langsung seperti pada gambar adalah selalu berlawanan untuk setiap sambungan serial. Untuk mendapatkan arah putaran yang sama seperti pada poros motor maka gear harus disusun dengan jumlah yang ganjil. Untuk mendapatkan rasio gear yang besar dengan
hanya
menggunakan
dua
susunan gear dapat
dicapai
dengan
menggunakan tipe ohmic atau worm gear seperti pada gambar berikut.
Gambar 2.16 . Penggunaan Transmisi Gear Dengan Hubungan Ohmic
(Pitowarno, 2006)
Tipe worm gear seperti diatas memiliki ke unggulan dari segi efisiensi mekanik karena rasio gear yang di hasilkan dari perbandingan antara jumlah gigi gear pada poros motor dan poros output dapat dibuat relatif sangat besar dengan hanya sekali konversi.
18
Sistem transmisi tipe gear - belt merupakan salah satu tipe yang sering di gunakan pada robot. Gear terbuat dari material plastik komposit serta belt terbuat dari karet berserat nilon. Tipe ini memiliki keunggulan dari segi back - lash karena konstruksi belt yang ketat dapat menghilangkan jeda dalam pengemudian arah berlawanan. Selain itu daat menghindari pemakaian pelumas dalam sistem gear tanpa kawatir timbul friksi yang berlebihan. Hanya saja dimensi ruang penempatan gear relatif menjadi lebih besar dibanding dengan tipe – tipe lain.
Gambar 2.17. Gear Belt (Pitowarno, 2006)
2.4.5. Motor Servo DC Motor servo adalah motor yang mampu bekerja dua arah (CW dan CCW), arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin kontrol. Motor servo DC merupakan sebuah motor DC yang memiliki rangkaian control elektronic dan internal gear yang mengendalikan pergerakan dan sudut angularnya. Motor servo DC adalah motor yang berputar lambat, biasanya ditunjukan oleh rate putarannya yang lambat, namun demikian memiliki torsi yang kuat karena terdapat internal gearnya. Sebuah motor servo DC memiliki antara lain: •
3 jalur kabel : power, ground , dan control
•
Sinyal control mengendalikan posisi
•
Operasional dari servo motor dikendalikan oleh sebuah pulsa selebar ± 20 ms, lebar pulsa antara 0,5 ms dan 2 ms menyatakan akhir dari range sudut maksimum.
•
Kontruksi dalamnya meliputi internal gear , potensiometer, dan feedback control.
19
Adapun jenis – jenis motor servo DC adalah: •
Motor servo standar 180º Motor servo DC 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º. Servo motor DC tipe standar hanya mampu berputar 180 derajat.
•
Motor servo continous Motor servo DC jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batasan defleksi sudut putar ( dapat berputar secara kontinyu) Servo motor DC continuous dapat berputar sebesar 360 derajat.
Gambar 2.18. Motor Servo HS-311
Berdasarkan gambar diatas, spesifikasi dari motor servo DC continuous parallax antara lain:
Power 6vdc max Average Speed 60 rpm - Note: with 5vdc and no torque
Weight 45.0 grams/1.59oz
Torque 3.40 kg-cm/47oz-in
Size mm (L x W x H) 40.5x20.0x38.0
Size in (L x W x H) 1.60x.79x1.50
Manual adjustment port.
20
Servo motor DC banyak digunakan sebagai aktuator pada mobile robot atau lengan robot. Servo motor DC yang umum digunakan ialah Continuous Parallax. Servo motor DC yang berkekuatan besar dan cepat, idealnya ada pada
servo HS-311 (continuos ) dan servo HS-322HD (standar). Untuk menggerakkan motor servo ke kanan atau ke kiri, tergantung dari nilai delay yang kita berikan. Untuk membuat servo pada posisi centre, berikan pulsa 1.3ms. Untuk memutar servo ke kanan, berikan pulsa = 1.7ms untuk berputar ke kiri dengan delay 20ms, seperti ilustrasi berikut:
Gambar 2.19. Nilai Pulsa Untuk Menggerakkan Motor Servo
2.5.
DT-AVR Low Cost Micro System
DT-AVR Low Cost Micro System merupakan sebuah modul single chip dengan basis mikrokontroler AVR dan memiliki kemampuan untuk melakukan komunikasi data serial secara UART RS-232 serta pemrograman memori melalui ISP ( In-System Programming ).
21
ATMEGA 16
Gambar 2.20. Tata Letak DT-AVR Low Cost Micro System
Spesifikasi dari DT-AVR Low Cost Micro System antara lain : 1. Mendukung varian AVR 40 pin, antara lain: ATMEGA16, ATMEGA 8535, ATMEGA8515, AT90S8515, AT90S8535, dan lain-lain. Untuk tipe AVR tanpa internal ADC membutuhkan Conversion socket . 2. Memiliki jalur Input/Output hingga 32 pin. 3. Terdapat Eksternal Brown Out Detector sebagai rangkaian reset. 4. Konfigurasi
jumper
untuk
melakukan
pemilihan
beberapa
model
pengambilan tegangan referensi untuk tipe AVR dengan internal ADC. 5. LED Programming Indicator. 6. Frekuensi Osilator sebesar 4MHz. 7. Tersedia jalur komunikasi serial UART RS-232 dengan konektor RJ11. 8. Tersedia Port untuk Pemrograman secara ISP. 9. Tegangan input Power supply 9 – 12 VDC dan output 5 VDC.
22
2.5.1. Mikrokontroler AVR ATMEGA16 Mikrokontroler AVR ( Alf and Vegard’s Risc processor ) standar memiliki arsitektur 8 bit, semua instruksi dikemas dalam kode 16-bit dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri MCS51 berteknologi CISC (Complex Instruction Set Computing). AVR dapat dikelompokkan menjadi 4
kelas, yaitu keluarga ATTINY, keluarga AT90Sxx, keluarga ATMEGA, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya.
Gambar 2.21. Blok Diagram Fungsional ATMEGA16 (Adrianto, 2008)
23
2.5.1.1. Arsitektur ATMEGA16 Dari gambar tersebut dapat dilihat bahwa ATMEGA16 memiliki bagian sebagai berikut: 1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D. 2. ADC (Analog to Digital Converter) 10 bit sebanyak 8 channel. 3. Tiga (3) buah Timer/Counter dengan kemampuan pemandingan. 4. CPU terdiri atas 32 buah register. 5. Watchdog Timer dengan osilator internal. 6. 2 buah timer/counter 8 bit. 7. 1 buah timer/counter 16 bit. 8. SRAM sebesar 512 byte. 9. Memori Flash sebesar 16 Kbyte dengan kemampuan Read While Write. 10. 4 channel PWM. 11. 32x8 general purpose register . 12. Hampir mencapai 16 MIPS pada Kristal 16 MHz. 13. Unit interupsi internal dan eksternal. 14. Port antarmuka SPI. 15. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 16. Antarmuka Komparator analog. 17. Port USART untuk komunikasi serial.
2.5.1.2. Fitur ATMEGA16 Kapabilitas detail dari ATMEGA16 adalah sebagai berikut: 1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16MHz. 2. kapabilitas memori flash 16 KB, SRAM sebesar 1 K byte, dan EEPROM ( Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel. 4. Portal komunikasi serial (UASRT) dengan kecepatan maksimal 2,5 Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik. 6. 131 instruksi handal yang umumnya hanya membutuhkan 1 siklus clock.
24
2.5.1.3. Konfigurasi Pin ATMEGA16 Konfugurasi pin ATMEGA16 bisa dilihat pada Gambar 2.13. Dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin ATMEGA16 sebagai berikut: 1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya. 2. GND merupakan pin ground . 3. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC. 4. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Timer/Counter , komparator analog, dan SPI. 5. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan Timer Oscilator . 6. Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator analog, interupsi eksternal, dan komunikasi serial. 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal. 9. AVCC merupakan pin masukan tegangan ADC. 10. AREF merupakan pin masukan tegangan referensi ADC.
Gambar 2.22. Pin ATMEGA16 (Adrianto, 2008)
25
2.6.
SPC DC Motor
SPC (Smart Peripheral Controller ) DC Motor merupakan pengontrol motor DC yang menggunakan I2C-bus sebagai jalur penyampaian data sehingga dapat lebih menghemat dan mempermudah pengkabelan. SPC DC MOTOR ini dilengkapi dengan prosedur input sehingga dapat mengetahui kecepatan motor pada saat tertentu, juga dilengkapi dengan prosedur brake yang dapat menghentikan motor secara cepat. Selain itu SPC DC Motor dapat digunakan secara paralel.
Gambar 2.23. Tata Letak Komponen SPC DC Motor
Spesifikasi Eksternal SPC DC Motor dapat dilihat sebagai berikut : •
Kompatibel penuh dengan DT AVR Low Cost Micro System
•
Hanya perlu 2 jalur kabel untuk interface dengan mikroprosesor / mikrokontroler lain.
•
Mempunyai 2 buah pengontrol motor DC yang dapat bekerja secara bersama-sama.
•
Masing-masing pengontrol motor DC dilengkapi dengan prosedur input dan brake.
26
•
Dapat dikontrol secara I 2C-bus maupun paralel.
•
Pengaturan kecepatan motor menggunakan metode PWM (Pulse Width Modulation).
•
Semua pin–pin kontrol paralel diakses dengan taraf logika TTL.
•
Dilengkapi dengan jumper untuk setting alamat, sehingga bila menggunakan I 2C bus dapat di-ekspan sampai 8 board (16 buah motor DC) tanpa tambahan perangkat keras.
•
Tersedia prosedur siap pakai untuk aplikasi SPC DC MOTOR.
2.7.1. Dirver H-Bridge IC L293d Sistem kontrol motor menggunakan transistor yang paling terkenal adalah sistem H-Bridge (Jembatan H). Sistem ini menggunakan 4 buah transistor yang disusun menyerupai huruf “H”. Pada sistem H-Bridge, 2 transistor akan hidup secara bersamaan untuk mengatur arah putaran motor. Saat transistor 1 dan transistor 4 on, motor akan berputar ke suatu arah. Saat transistor 2 dan 3 on, motor akan berputar ke arah sebaliknya. Namun untuk menghindari kerumitan dalam pembuatan robot, maka kita dapat menggunakan IC L293D. Saat sekarang telah tersedia IC driver H-Bridge yang akan memudahkan kita untuk membuat robot mobil. Bila tidak menggunakan IC ini, maka kita harus menggunakan beberapa transistor untuk membentuk rangkian H-Bridge. Dengan menggunakan IC driver ini ada beberapa keuntungan yang bisa didapat. Keuntungannya adalah: 1. Berukuran kompak sehingga lebih praktis. 2. Bisa mengatur arah putaran motor DC. 3. Bisa mengatur kecepatan motor DC
27
Gambar 2.24. IC L293D (Ibnu Malik, 2006)
Tabel berikut memberikan keterangan mengenai IC ini. Tabel 2.1. Fungsi Pin-Pin Pada IC L293D Pin
Nama
Kegunaan
1
untukEnable motor 1 (output 1 dan output 2)
2
Input 1
Masukan 1 untuk motor 1
3
Output 1
Keluaran 1 untuk motor 1
4 dan 5
Ground
Ground
6
Output 2
Keluaran 2 untuk motor 1
7
Input 2
Masukan 2 untuk 1
8
Vs
Sumber tegangan (+) untuk motor 1 dan 2
9
Enable 2
Enable untuk motor 2 (output 3 dan output 4)
10
Input 3
Masukan 1 untuk motor 2
11
Output 3
Keluaran 1 untuk motor 2
12 dan 13
Ground
Ground
14
Output 4
Keluaran 2 untuk motor 2
15
Input 4
Masukan 2 untuk motor 2
16
Vss
Logic power supply untuk IC (+5)
Enable
28
Gambar 2.25. Diagram Blok IC L293D (Ibnu Malik, 2006)
2.7.
Sensor Proximity
Sensor proximity adalah sensor untuk menditeksi ada atau tidaknya suatu obyek. Bila obyek berada didepan sensor dan dapat terjangkau oleh sensor maka output rangkaian sensor akan berlogika “1” atau “high” yang berarti obyek “ada”. Sebaliknya jika obyek berada pada posisi yang tidak terjangkau oleh sensor maka output rangkaian sensor akan bernilai “0” atau “low” yang berarti obyek “tidak ada”. (Soebhakti, 2008). Dalam dunia robotika, sensor proximity seringkali digunakan untuk menditeksi ada atau tidaknya suatu garis pembimbing gerak robot atau yang lebih dikenal dengan istilah “ Line Following” atau “ Line Tracking”, juga biasa digunakan untuk mendideksi adanya benda – benda penghalang seperti dinding atau benda – benda lainnya sehingga robot dapat menghindari tabrakan dengan benda yang ada di depannya. Salah satu kegunaan sensor proximity yang sering dijumpai dalam dunia robotika adalah sebagai sensor garis. Sensor ini dapat dibuat dari pasangan LED dan fototransistor (photodioda) seperti pada gambar 2.30. Prinsip kerjanya sederhana yaitu hanya memanfaatkan sifat cahaya yang akan dipantulkan jika
29
mengenai benda berwarna terang dan akan diserap jika mengenai benda berwarna gelap. Sebagai sumber cahaya kita gunakan LED (Light Emiting Diode) yang akan memancarkan cahaya merah dan untuk menangkap pantulan cahaya LED kita gunakan photodiode. Sensor akan menerima lebih banyak cahaya bila berada digaris putih sedangkan jika diatas garis hitam maka photodioda akan menerima sedikit sekali cahaya pantulan. Berikut adalah ilustrasinya:
Gambar 2.26. Prinsip Kerja Sensor Proximity (Soebhakti, 2008)
Bila cahaya LED memantul pada garis dan diterima oleh basis pototransistor (photodioda) maka phototransistor (photodioda) menjadi saturasi (on) sehingga tegangan output (Vout ) menjadi sama dengan VCE saturasi atau mendekati 0 volt. Sebaliknya jika tidak terdapat pantulan maka basis fototransistor tidak mendapat arus bias sehingga fototransistor menjadi cut-off (C-E open), dengan demikian nilai Vout sama dengan Vcc. (Sigit, 2006).
Gambar 2.27. Rangkaian Infrared Proximity Sebagai Sensor Garis (Sigit, 2006)
30
Gambar 2.28. Sensor Dengan Rangkaian Pembanding (Sigit, 2006)
Untuk dapat diinterfacekan ke mikrokontroler, tegangan output harus berada pada level 0 atau VCC. Output rangkaian gambar 2.21 masih memiliki kemungkinan tidak pada kondisi ideal bila intensitas pantulan cahaya LED pada garis lemah, misalnya karena perubahan warna atau lintasan yang kotor. Untuk mengatasi hal tesebut ditambahkan rangkaian pembanding yang membandingkan output sensor dengan suatu tegangan treshold yang dapat diatur dengan memutar timmer potensio (10K). rangkaian lengkapnya seperti pada gambar 2.22 LED pada output berguna sebagai indikator logika output sehingga kerja sensor mudah diamati.
2.8.
Bahasa Pemrograman Code Vision AVR C
Code vision AVR merupakan compiller bagi bahasa pemrograman C, sistem IDEAPG ( Integrated Development Environment and Automatic Program Generator ) yang di disain khusus untuk keluarga mikrokontroler Atmel AVR
dapat mempermudah pemrograman C. Sebagai Compiller C, Code Vision AVR telah mengandung hampir semua elemen bahasa pemrograman ANSI C. Dengan disediakannya beberapa fitur tambahan yang merupakan kebutuhan dari arsitektur AVR dan sistem embedded. Sistem Integrated Development Environment (IDE) telah disediakan dalam Chip AVR pada System Programmer Software yang memungkinkan mentransfer program secara otomatis ke dalam chip mikrokontroler setelah proses kompilasi sukses. System Programer Sofware di disain untuk bekerja secara konjungsi dengan produk Atmel STK500/AVRISP/AVRProg (AVR910 application note),
31
sistem Kanda, STK200+/300, Dontronics DT006, Vogel Elektronik VTEC-ISP, futurlec JRAVR dan Micro Tronics ATCPU/Mega2000 development boards.
2.9.
Bahasa Pemrograman C
2.9.1. Tipe Data Dasar Data merupakan suatu nilai yang bias dinyatakan dalam benntuk konstanta atau variable. konstanta menyatakan nilai yang tetap, sedangkan variable menyatakan nilai yang dapat diubah-ubah selama eksekusi berlangsung. Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang dinamakan sebagai tipe data dasar. Kelima tipe data dasar adalah: •
Bilangan bulat
•
Bilangan real presisi-tunggal
•
Bilangan real presisi-ganda
•
Karakter
•
Tak bertipe (void ) Kata kunci yang berkaitan dengan tippe dasar secara berurutan di
antaranya adalah int (short int, long int, signed int dan unsigned int), float, double dan char. Tabel 2.2. Ukuran Memori Tipe Data Tipe
Total bit
Kawasan
Keterangan
Char
8
-128 s/d 127
Karakter
Int
32
-2147483648 s/d 2147483647
Bilngan integer
Float
32
1.7E-38 s/d 3.4E+38
Bilangan real presisitunggal
Double
64
2.2E-308 s/d 1.7E+308
Bilangan real presisiganda
Untuk tipe data short int, long int, signed int dan unsigned int , maka ukuran memori yang diperlukan serta kawasan dari masing – masing tipe data adala sebagai berikut :
32
Tabel 2.3. Ukuran Memori Tipe Data Int Tipe
Total bit
Kawasan
Keterangan
Short int
16
32768 s/d 32767
Short integer
Long int
32
-2147483648 s/d 2147483647
Long integer
Signed int
32
-2147483648 s/d 2147483647
Biasa disingkat int
Unsigned int
32
0 s/d 4294967295
Bilangan int tak bertanda
2.9.2. Aturan pendefinisian variabel Aturan penulisan pengenalan variable, konstanta dan fungsi yang didefinisikan oleh pemrograman adalah sebagai berikut: •
Pengenala harus diawali dengan huruf (A..Z,a..z) atau karakter garis bawah(_)
•
Selanjutnya dapat berupa huruf, digit(0..9) atau karakter garis bawah atau tanda dolar($)
•
Panjang pengenal boleh lebih dari 31 karakter, tetapi hanya 31 karakter pertama yang akan dianggap berarti
•
Pengenal tidak boleh menggunakan nama yang tergoong sebagai katakatacadangan (reserved words ) seperti int,if,while dan sebagainya.
2.9.3. Operator Berikut ini beberapa operator yang digunakan pada bahasa pemrograman C adalah: 1. Operasi kondisi C menyediakan operator yang dimaksudkan untuk menyatakan kondisi. Operator kondisi diantaranya sebagai berikut: “<”
Menyatakan lebih kecil
“<=”
Menyatakan lebih kecil atau sama dengan
“>”
Menyatakan lebih besar
“>=”
Menyatakan lebih besar atau sama dengan
“==”
Menyatakan sam dengan
“!=”
Menyatakan tidak sama dengan
33
2. Operasi Aritmatika Operator untuk operasi aritmatika yang tergolong operator binary adalah sebagai berikut: “+”
Penjumlahan
“-“
Pengurangan
“*”
Perkalian
“/”
Pembagian
“%”
sisa bagi
3. Operasi Logika Merupakan operasi boolean yang terdiri dari AND, OR, NOT. “!”
Boolean NOT
“&&”
Boolean AND
“||”
Boolean OR
4. Operasi Bitwise Berikut ini merupakan Operasi Bitwise diantaranya adalah: “~”
Komplemen Bitwise
“&”
Bitwise AND
“|”
Bitwise OR
“^”
Bitwise exclusive OR
“>>”
Rigth shift
“<<”
Left shift
5. Operasi assignment Berikut ini yang termasuk operasi assignment adalah: “=”
Untuk memasukan nilai
“+=”
Untuk Menambah nilai dari keadaan semula
“-=”
Untuk mengurangi nilai dar keadaan semula
“*=”
Untuk mengalikan nilai dari keadaan semula
“/=”
Untuk melakukan pembagian terhadap bilangan semula
“%=”
Untuk memasukan nilai sisa terhadap bilangan semula
“<<=”
Untuk memasukan shift left
“>>=”
Untuk memasukan shift right
“&=”
Untuk memasukan bitwise AND
34
“^=”
Untuk memasukan bitwie XOR
“\=”
Untuk memasukan bitwise OR
2.9.4. Preprocessor 1. Preprocessor #include Biasanya digunakan untuk menyertakan file header (.h) atau file library. File include berguna memberitahukan compiler agar membaca file yang akan di
include-kan lebih dahulu agar mengenali definisi-definisi yang digunakan dalam program sehingga tidak dianggap error . Cara penulisan: # include <………> untuk lokasi standar file yang telah disetting oleh
tools biasanya pada folder include atau folder direktori compiler . # include ”……….. “ untuk lokasi file yang kita tentuka sendiri.
2. Preprocessor #define Digunakan untuk mendefinisikan konstanta atau makro Cara penulisan: #define
Contoh:
identifier #define
MAX
konstanta
100
Setiap kemunculan max diganti dengan angka 100. 3. Perintah if dan if ……else….. Perintah if dan if ……else….. digunakan untuk melakukan operasi percabangan bersyarat. Sintaks penulisan if dapat ditulis sebagai berikut : i f f () () ; Sintaks perintah if ……else…..dapat dituliskan sebagai berikut : if () (); else;
4. While Perintah while dapat melakukan looping apabila persyaratannnya benar. Sintaks perintah while dapat dituliskan sebagai berikut: nama_variable = nilai_awal; while(Syarat_loop)
35
{ Statement_yang_akan_diulang; nama_variable++; } 5. Fungsi tanpa nilai balik (void ) Fungsi ini tidak memberikan hsil yang serupa nilai melainkan berupa sebuah proses. Fungsi ini bertipe void . Contoh: void kedip()
{ PORTD=0 delay_ms(500);
//delay 500ms
PORTD=255; delay_ms(500); } 6. Fungsi delay Menghasilkan delay dalam program-C. berada pada header delay.h yang harus dimasukan (include) sebelum digunakan. Sebelum memanggil fungsi, interupsi harus dimatikan terlebih dahulu, apabila tidak maka delay akan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan frekuensi clock chip clock chip IC AVR yang digunakan pada menu Project – configure - C compiler - Code Generation.
36
BAB III METODOLOGI PENELITIAN
3.1.
Tempat Dan Waktu Penelitian
Penelitian dan perancangan alat ini dilakukan Pada bulan Juli 2009 sampai Desember 2009 . Pada perancangan robot cerdas semut ini dilakukan beberapa kali percobaan dalam merancang robot yang dapat berjalan pada lintasan secara baik dengan mengatur pengendali dan pemrograman robot, serta membuat pemrograman strategi robot untuk menentukan lintasan terpendek. Tempat penelitian dan perancangan alat dilaksanakan di laboratorium teknik kendali dan kediaman penulis.
3.2.
Prosedur Penelitian
Langkah – langkah dalam perancangan robot cerdas semut yaitu: 1. Perancangan konsep robot cerdas semut. 2. Menyiapkan alat dan bahan dalam perancangan robot cerdas semut. 3. Merancang hardware robot cerdas semut. 4. Mapping pembacaan sensor. 5. Merancang
program
(software)
dan
mendownload
program
mikrokontroler. 6. Meneliti sistem navigasi robot pada lintasan. 7. Membuat strategi pemrograman untuk menentukan lintasan terpendek. 8. Membuat laporan penelitian.
3.3.
Alat dan Bahan
1. DT-AVR Low Cost Micro System mikrokontroler ATMEGA 16 2. SPC DC motor 3. Plat Almunium 4. Motor Servo HS-311 continous 5. Catu daya DC 9 V dan 12 V 6. Sensor Proximity photodioda
37
ke
7. Led warna biru dan merah 8. Plat Acrelyc 9. Saklar on/off . 10. Specer 11. Kabel pita 12. 9 Pushbutton 13. Molex conector white 14. Kawat antena robot cerdas semut 15. Mur dan baut 16. DT HiQ AVRUSB ISP 17. Code vision AVR C 18. Lintasan robot cerdas semut bidang cartesian (3x3) bergaris putih 19. Charger battery BBE 20. Adaptor DC 1.5 - 12 V
3.4.
Konsep Dasar Perancangan Alat
Dalam perancangan robot mobil cerdas semut ini memerlukan konsep yang matang guna menghasilkan robot yang sesuai tujuan. Pemilihan perangakat keras (hardware ) dan perangkat lunak (software) yang merupakan implementasi sistem mekanik dan sistem kontrol pada robot sangat mempengaruhi perancangan robot, sehingga robot menjadi lebih handal dan stabil dalam melewati lintasan. Konsep dasar merupakan pedoman untuk merencanakan sesuatu dalam melakukan rancangan (desain), konsep ini memuat langkah-langkah dan petunjuk untuk menentukan sesuatu penunjang yang dibutuhkan dalam mendesain. Berikut ini diagram blok sistem kendali robot cerdas semut.
38
+
SPC DC motor
Mikrokontroler ATMEGA 16
-
Motor servo continous HS311
Pengontrol
Mekanik kaki hex
Aktuator
Sensor proximity
Sensor
Gambar 3.1. Diagram Blok Robot Cerdas Semut
Salah satu langkah yang digunakan dalam merancang adalah membagi sistem menjadi beberapa sub sistem kemudian sub sistem tersebut dibagi menjadi beberapa bagian sehingga akan lebih mudah dalam menentukan komponen yang akan digunakan. Dari diagram blok pada gambar.3.1. menggambarkan suatu sub – sub sistem dengan fungsi yang berbeda membangun sebuah sistem robot cerdas semut dengan mendapatkan sistem navigasi robot yang memiliki respon sistem yang handal dan stabil dalam melewati lintasan. Sub sistem robot cerdas semut yaitu pengontrol, sensor dan aktuator. Untuk pengontrol robot cerdas semut terdiri dari bagian yaitu mikrokontroler ATMEGA 16 dan SPC DC motor, untuk sensor yaitu sensor proximity, dan untuk aktuator yaitu motor servo HS-311 dan mekanik kaki hex.
Berikut ini gambaran sistem dalam perancangan alat secara keseluruhan.
Catu Daya 5 Volt
Sensor Proximity
Catu Daya 12 Volt
Catu Daya 9 Volt
Mikrokontroler AVR ATMEGA16
SPC DC Motor
Motor servo HS- 311 continous
9 push button
Gambar 3.2. Gambaran Sistem Robot Cerdas Semut
39
Berdasarkan gambar diatas dapat dilihat dalam robot cerdas semut masingmasing bagian memerlukan tegangan sumber. Untuk mikrokontroler ATMEGA 16 tegangan sumber sebesar 12 volt, motor servo continous HS-311 yang tegangan sumber sebesar 9 volt, SPC DC motor digunakan untuk mengatur kecepatan motor kiri dan kanan, 9 pushbutton untuk menentukan salah satu titik awal dan tujuan robot dan sensor proximity photodioda memerlukan tegangan sumber sebesar 5 volt.
3.5.
Desain Robot Cerdas Semut
3.5.1. Perancangan Perangkat Keras Membicarakan soal robot, tidak lepas dari unsur mekanik sebagai kerangka robot. Kerangka robot dibuat dari bahan acrelyc dan plat almunium. 16 cm
a d o i d o t o h p
y t i m i x o r p
r o s n e S
Motor servo continous
Motor servo continous
Gambar 3.3. Plat Almunium Bawah Robot Cerdas Semut Tampak Atas
Sedangkan pada dasar rangka robot terbuat dari almunium plat dengan panjang 16 cm dan lebar 8 cm. Pada plat almunium bagian bawah sebagai tempat sensor proximity photodioda dan motor servo HS-311 continous untuk kaki kiri dan kanan robot.
40
16 cm
i a r V e t a 9 B
i a r V e 2 t a 1 B
8 cm
Gambar 3.4. Plat Almunium Atas Robot Cerdas Semut Tampak Atas
Pada plat almunium bagian atas merupakan tempat supply tegangan terdiri atas baterai 12 v, baterai 9 v, dan terdapat fungsi saklar sebagai on/off. supply tegangan 12 volt diberikan untuk mikrokontroler ATMEGA 16 dan supply tegangan 9 volt diberikan untuk motor servo continous HS-311.
G
1
F
A
E
B
2
C P S
H
I
8 cm D
C
Gambar 3.5. Robot Cerdas Semut Tampak Atas
41
Kerangka robot cerdas semut paling atas terbuat dari 1 plat acrylic dengan panjang 16 cm dan lebar 8 cm yang tersusun menggunakan penyangga baut mur. Plat acrylic sebagai tempat DT-AVR ATMEGA 16, SPC DC motor dan 9 pushbutton. 16 cm
Gambar 3.6. Robot Cedas Semut Tampak Samping
Penggerak robot menggunakan sistem kaki hex (6 kaki) dengan sistem mekanik roda gila yang terhubung pada motor servo continous HS-311 sebagai aktuator yang memiliki gaya torsi lebih kuat dari motor dc yang mampu mengangkat beban dari badan robot.
3.5.1.1. Perancangan Perangkat Keras Pengontrol Robot Cerdas Semut Pusat pengontrol dari robot cerdas semut adalah mikrokontroler ATMEGA 16. Dengan menggunakan DT-AVR Low Cost Micro System sebgai kit minimum system . PORT-PORT yang digunakan untuk robot cerdas semut yaitu PORTA0.-
PORTA.7 sebagai input sensor proximity photodioda, PORTB.0-PORTB.7 dan PORTC.6 sebagai input pushbutton dan PORTC.0-PORTC.4 sebagai output SPC DC motor. Berikut ini skema rangkaian DT-AVR Low Cost Micro System.
42
m e t s y S o r c i M t s a o C w o L R V A T D a m e k S . 7 . 3 r a b m a G
43
Driver pengontrol motor menggunakan SPC (smart peripheral controller) DC motor yang terdiri dari 4 pin sebagai input dengan output untuk 2 buah motor DC. Dengan menggunakan IC L293D. Hubungan antara SPC (Smart Peripheral Controller) DC Motor dengan DT-AVR Low Cost Micro System adalah sebagai berikut:
Tabel. 3.1. Hubungan SPC DC Motor Dengan DT AVR Low Cost Micro System SPC DC Motor
DT-AVR Low Cost Micro System
Gnd
Gnd
Vcc
Vcc
S1
PC.0
S2
PC.1
S3
PC.2
S4
PC.3
Berdasarkan tabel diatas dapat dilihat bahwa DT-AVR Low Cost Micro System dikoneksikan langsung ke SPC DC motor melalui 6 pin pada mikrokontroler ATMEGA 16 sebagai output untuk robot cerdas semut. 2 pin untuk tegangan sumber dan 4 pin sebagai signal control ke SPC DC motor. Pin input pertama SPC DC motor berasal dari PORTC.0 sebagai pin pertama pada PORTC, pin input kedua SPC DC motor berasal dari PORTC.1, pin input ketiga SPC DC motor berasal dari PORTC.2 dan Pin input terakhir SPC DC motor berasal dari PORTC.3. Berikut
ini
digambarkan
skema
44
rangakaian
SPC
DC
Motor.
t s o c w m e o t L s R y V s o A r c T i D m
. 1 . 2 . 3 . C C C C T T T T R R R R O O O O P P P P
d n u c o c r V G
r o t o M C D C P S a m e k S . 8 . 3 r a b m a G
45
3.5.1.2. Perancangan Perangkat Keras Sensor Robot Cerdas Semut Sensor yang dipakai robot cerdas semut yaitu sensor proximity. robot ini menggunakan kombinasi IR LED berwarna merah dan Photodioda. Agar dapat dibaca oleh mikrokontroler, maka tegangan sensor harus disesuaikan dengan level tegangan TTL yaitu 0 – 1 volt untuk logika 0 dan 3 – 5 volt untuk logika 1. Hal ini bisa dilakukan dengan memasang operational amplifier yang difungsikan sebagai komparator. Sensor proximity ini memiliki sensitivitas yang tinggi serta output yang dihasilkan berupa pulsa digital dengan logika high sebesar 5 volt. Sensor ini akan mengeluarkan logika high pada permukaan yang terang (putih) dan sebaliknya akan mengeluarkan logika low pada permukaan yang gelap (hitam pekat). Sensor ini terdiri dari 6 pasang LED dan photodioda ditempatkan secara menggantung pada bagian bawah kerangka robot, sehingga dapat berhadapan langsung dengan lintasan yang akan dibaca. Jarak antara sensor dengan lantai berkisar 1 cm, sedangkan jarak antara sensor kiri dengan sensor kanan berkisar 1 -2 cm, disesuaikan agar jarak sensor satu dengan yang lainnya lebih kecil dari lebar garis putih yang berukuran 2 – 3 cm. Seperti gambar dibawah ini:
Gambar 3.9. Jarak Antara Sensor Proximity
Robot line follower dengan 3 sensor proximity sudah cukup untuk dapat
melewati garis dengan baik, namun dengan menambah dua atau tiga sensor lagi maka 46
akan sangat diperlukan jika ingin menambah kecepatan dalam melintasi garis. Sensor dapat meningkatkan sensitifitas dalam mencari letak suatu garis. Pada saat kecepatan tinggi, robot memiliki waktu untuk menyesuaikan arah dan kecepatan, untuk tetap berada di garis. Kemungkinan keadaan sensor yaitu sebagai berikut: •
000000 – kehilangan garis
•
000001 – hampir keluar jalur, kemudikan ke kanan dan kurangi kecepatan
•
000011 – sensor terlalu ke kiri, kemudikan ke kanan
•
000010 – sensor ke kiri kemudikan ke kanan
•
000110 – sensor agak ke kiri, kemudikan ke kanan
•
000100 – sensor sedikit ke kiri, kemudikan sedikit ke kanan
•
001100 – di dalam jalur, tingkatkan kecepatan
•
001000 – sensor sedikit ke kanan, kemudikan sedikit ke kiri
•
011000 – sensor agak ke kanan, kemudikan ke kiri
•
010000 – sensor ke kanan kemudikan ke kiri
•
110000 – sensor terlalu ke kanan, kemudikan ke kiri
•
100000 – hampir keluar jalur, kemudikan ke kiri dan kurangi kecepatan
•
111111 – ada persimpangan
Gambar 3.10. Robot Dengan 6 Sensor Proximity
47
Hal yang perlu di perhatikan untuk lebih memaksimalkan kerja sensor proximity yaitu pengaruh lingkungan seperti cahaya dari luar dan garis lintasan yang
berdebu. Teknik pengaman sensor dari lingkungan sekitar dapat di lakukan dengan cara: 1. Menerangkan
lampu
LED
dengan
teknik
kalibrasi
sensor
dengan
menambahkan tegangan offset 2. Menggunakan LED berwarna merah 3. Membungkus sensor, sehingga terlindung dari cahaya luar 4. Mengatur jarak sensor terhadap lantai 1-2 cm Hubungan antara sensor proximity dengan DT-AVR Low Cost Micro System adalah sebagai berikut:
Tabel 3.2. Hubungan Sensor Proximity dengan DT-AVR Low Cost Micro System
DT-AVR Low Cost Micro System
Sensor Proximity
Gnd
Gnd
Vcc
Vcc
PA.0
D1
PA.1
D2
PA.2
D3
PA.3
D4
PA.4
D5
PA.5
D6
Berdasarkan tabel diatas dapat dilihat bahwa DT-AVR Low Cost Micro System dikoneksikan langsung ke sensor proximity photodioda melalui 6 pin pada PORTA yaitu pada PORTA.0-PORTA.5 sebagai input untuk robot cerdas semut. 2 pin untuk tegangan sumber. Berikut merupakan gambar rangkaian sensor proximity photodioda yang digunakan pada robot ini dengan menggunakan 6 buah sensor proximity photodioda:
48
y t i m i x o r P r o s n e S n a i a k g n a R
. 1 1 . 3 r a b m a G
49
3.5.1.3. Perancangan Perangkat Keras Aktuator Robot Cerdas Semut Aktuator yang digunakan yaitu motor servo continous HS-311 dengan tegangan input searah (DC) dan terdapat juga gear internal. Dengan torsi sebagai keunggulan dari motor ini dibandingkan motor DC lainnya, mampu mengangkat beban yang beratnya mencapai 3.40 kg. dengan putaran motor berkecepatan kurang lebih 60 rpm.
3.5.1.3.1. Penyambungan Motor servo Continous Dengan SPC Motor DC Motor servo continous HS-311 termasuk motor DC dengan kemampuan torsi diatas rata-rata motor DC biasa. Modul SPC DC motor dapat dipergunakan untuk dua buah motor DC yang mempunyai tegangan kerja yang sama. Berikut adalah cara pemasangan dari kedua buah motor DC yang dilengkapi dengan data input: •
Modul SPC DC motor dipergunakan untuk motor DC dengan tegangan kerja dari 5 Volt sampai dengan 36 Volt. Dalam hal ini digunakan tegangan 9 Volt untuk robot ini.
•
Hubungkan catu daya positif (+) untuk motor DC pada Vmotor dan catu daya negatif (-) pada GND. Tegangannya harus sesuai dengan tegangan kerja motor.
•
Untuk motor DC 1, sambungkan kutub positif motor DC pada M1+ dan kutub negative motor DC pada M1- serta data input pada IN1 secara benar.
•
Untuk motor DC 2, sambungkan kutub positif motor DC pada M2+ dan kutub negatif motor DC pada M2- serta data input pada IN2 secara benar.
Gambar 3.12. Hubungan motor DC dengan SPC DC motor
50
3.5.1.4. Perancangan Perangkat Keras Mekanik Robot Cerdas Semut Sistem gerak kaki yang dipakai menyerupai kaki semut, berjumlah 6 kaki, dengan sistem mekanik roda gila. roda gila dikonsepkan karena adanya momen inersia, atau torsi. Dalam fisika besarnya torsi tergantung dari panjang jari-jari dan gayanya. Semakin besar jari-jarinya maka makin besar torsinya yang akan mengakibatkan kecepatan secara linearnya menjadi besar. Kaki yang digunakan terbuat dari almunium plat yang meminimalisasi berat robot. Panjang tiap kaki 6 cm dengan dengan plat penyambung antar kaki yang panjangnya 7cm. terdapat bantalan karet di bawah kaki yang membuat robot tak mudah selip. Plat penyambung antar kaki
r
Bantalan karet
kaki
Gambar 3.13. Sistem Kaki Robot Cerdas Semut
3.5.1.5. Perancangan Perangkat Keras Catu Daya Robot Cerdas Semut Untuk pembuatan robot cerdas semut ini menggunakan 2 (dua) buah catu daya, yaitu yang pertama adalah catu daya untuk mikrokontroler dan motor DC. untuk motor DC sebesar 9 Volt. Untuk tegangan supply 9 Volt DC menggunakan baterai GP 170 MAH. Untuk teganggan supply mikrokontroler menggunakan baterai Handphone 3,7 V yang disambung atau dirangkai secara seri.
51
Ganbar 3.14. Gambar Rangkaian Baterai Untuk Mikrokontroler
3.5.1.6. Perancangan Perangkat Keras Pushbutton Robot Cerdas Semut Pushbutton digunakan pada robot cerdas semut
sebagai input untuk
menentukan titik asal dan titik tujuan kemana robot akan berjalan sebelum robot dijalankan. terdapat 9 pushbutton yang sesuai dengan titik asal serta titik tujuan dari robot. Berikut ini Penyambungan 9 pushbutton dengan DT-AVR Low Cost Micro System.
Tabel. 3.3. Hubungan 9 pushbutton dengan DT-AVR Micro System
9 pushbutton
DT-AVR Low Cost Micro System
Gnd
Gnd
T1
PB.0
T2
PB.1
T3
PB.2
T4
PB.3
T5
PB.4
T6
PB.5
T7
PB.6
T8
PB.7
T9
PC.6
Berdasarkan tabel diatas dapat dilihat bahwa DT-AVR Low Cost Micro System dikoneksikan langsung ke 9 pushbutton motor melalui
10 pin pada
PORTB.0 – PORTB.7 dan PORTC.6 sebagai input untuk robot cerdas semut. 1
52
pin untuk supply tegangan yaitu ground dan 9 pin sebagai signal control ke ke 9 pushbutton. Terdapat led indikator sebagai tanda bahwa 9 pushbutton telah aktif.
Berikut ini gambar rangkaian 9 pushbutton.
Ganbar 3.15. Gambar Rangkaian 9 Pushbutton
3.5.2. Perancangan Perangkat Lunak dan Diagram Alir 3.5.2.1.Perancangan Perangkat lunak Code Vision AVR C Untuk Code Vision AVR C pembuatan source code sangat penting untuk langkah awal memulai pembuatan program dan project. Source code dibuat dengan langkah – langkah sebagai berikut: 1. Jalankan software code vision AVR C, kemudian klik File -> New, pilih Project
2. “Do you want to use the CodeWizardAVR?” Klik Yes
53
3. Pilih Chip yang digunakan, chip : ATMEGA16, clock : 4.000000 MHz
4. Lakukan setting sebagai berikut : Port : PORTA, PORTB dan PORTC.6 sebagai Input dan PORTC.0
sampai dengan PORTC.3 sebagai Output Pullup Timers : Timer 0 dengan Clock Value 15,562 KHz , aktifkan Overflow
Interrupt
5. Klik File -> Generate, Save and Exit
54
6. Buatlah source code. 7. Setelah selesai membuat source code, klik Setting -> Programmer 8. Pilih AVR Chip Programmer Type : Atmel STK500/AVRISP dan untuk Communication port disesuaikan dengan komputer.
9. Klik Project -> Configure, kemudian pilih menu After Make dan aktifkan Program the Chip. Klik OK jika sudah.
10. Untuk meng-compile project, klik Project -> Make 11. Jika tidak ada error maka file siap didownload ke chip. Pastikan koneksi kabel downloader dan chip sudah terpasang dengan benar. 12. Nyalakan power supply 12 Volt dan klik Program. Tunggu hingga proses download selesai.
55
3.5.2.2.Perancangan Perangkat Lunak Pengontrol Robot Cerdas Semut Robot cerdas semut dirancang untuk mengikuti garis putih serta bergerak dari titik asal menuju titik tujuan pada 9 titik. Berikut merupakan diagram alir yang dipakai pada perancangan perangkat lunak pada robot cerdas semut. 1. Program Utama
Gambar 3.16. Diagram Alir Program Utama
56
Program utama akan diproses sebagai berikut: 1. Program akan di eksekusi ketika mikrokontroler mendapatkan tegangan 12 volt. 2. Inisialisasi pada sensor, pushbutton kit dan motor serta proses pemasukan alamat ke inisialisasi 3. Proses untuk menentukan titik asal dan titik tujuan robot yaitu titik A,B,C,D,E,F,G,H dan I 4. Proses pencarian lintasan terpendek dengan menggunakan perbandingan (compare ) jarak, jarak yang diambil adalah jarak terpendek/terkecil. 5. Selanjutnya apabila telah di temukan lintasan dengan jarak terpendek maka akan diteruskan ke proses selanjutnya yaitu rutin baca sensor, tapi apabila tidak ditemukan maka akan kembali ke proses pencarian lintasan terpendek. 6. Program akan mengeksekusi rutin baca sensor. Rutin ini berfungsi menentukan Posisi sensor terhadap garis lintasan. 7. Rutin jalankan robot akan menentukan setiap kondisi bagaimana robot akan bergerak apakah stop, belok kiri, belok kanan, lurus dan persimpangan. Dari program utama terdapat rutin dan sub rutin dalam perancangan pengontrol robot cerdas semut. Antara lain yaitu rutin inisialisasi, rutin persimpangan dan rutin pencarian lintasan terpendek.
57
2. Rutin Inisialisasi
Inisialisasi sensor,push button kit dan motor
Simpan Data 00-3fH 00-ffH 00-0fH
Simpan Alamat 00-ffH
Proses masukan data ke alamat inisialisasi
End Off
Inisialisasi sensor,push button kit dan motor
Gambar 3.17. Diagram Alir Inisialisasi
Inisialisasi pengontrol robot cerdas semut terdiri atas Sensor proximity photodioda dengan alamat 00-3FH pada PORT A, pushbutton kit dengan alamat 00-FFH pada PORT B dan pada PORT C dengan alamat 00-0FH terdapat motor. Data alamat dari sensor, pushbutton kit dan motor kemudian dimasukan dan disimpan ke alamat 00-FFH.
58
3. Sub Rutin Persimpangan
Persimpangan
Masukan nilai persimpangan
Pengulangan
No Kondisi sensor menyala semua
Jalankan robot sesuai sensor
Yes
End Off sub Persimpanagn
Gambar 3.18. Diagram Alir Persimpangan
Pada proses rutin persimpangan langkah awal adalah memasukan nilai persimpangan setelah itu terjadi pengulangan sampai robot pada kondisi sensor semua menyala maka proses persimpangan rutin berakhir.
59
4. Rutin Pencarian Lintasan Terpendek
Semua lintasan
Tidak Jarak terpendek ?
ya End Off Pencarian lintasan Terpendek
Gambar 3.19. Diagram Alir Pencarian Lintasan Terpendek
Pada proses rutin pencarian lintasan terpendek, semua lintasan dari suatu titik asal ke suatu titik tujuan yang telah ditentukan akan dicari jarak terpendek dengan cara membandingakan(compare) jarak semua lintasan. Setelah ditemukan jarak terpendek maka berakhir proses rutin pencarian lintasan terpendek.
60
3.5.2.3.Perancangan Perangkat Lunak Sensor Robot Cerdas Semut Dengan mendefinisikan seluruh kemungkinan pembacaan sensor proximity kita dapat menentukan pergerakan robot yang tujuannya adalah menjaga agar robot selalu berada di atas garis. Berikut ini adalah kemungkinan yang terjadi pada sensor:
0
5
6 12
11
9
10
8
4
3
2
1
7
Gambar 3.20. Kemungkinan Posisi Sensor Proximity Pada Garis
Dengan nilai 1 mempresentasikan sensor mengenai garis dan nilai 0 berada diluar garis, maka dapat ditulis ke dalam tabel kebenaran sebagai berikut:
Tabel 3.4 . Posisi Sensor
Posisi
Algoritma dalam program
Sensor 0
00000000
1
00100000
2
00110000
3
00010000
4
00011000
5
00001000
6
00001100
61
7
00000100
8
00000110
9
00000010
10
00000011
11
00000001
12
11111111
Berikut diagram alir pendefinisian pembacaan sensor proximity pada robot cerdas semut. Baca Sensor
Yes Posisi sensor = 000000 Kondisi =0
N
Yes Posisi sensor = 000001 Kondisi =1
N
Yes Posisi sensor = 000010 Kondisi =2
N
Yes Posisi sensor = 000011 Kondisi =3
N
62
1
Yes
Posisi sensor = 000100
Kondisi =4 No Yes
Posisi sensor = 000110
Kondisi =5 No Yes
Posisi sensor = 001100
Kondisi =6 No Yes
Posisi sensor = 011000
Kondisi =7 No Yes
No= Posisi sensor 001000
Kondisi =8
2
63
2
Yes Posisi sensor = 11000 Kondisi = 9
No
Yes
Posisi sensor = 01000
Kondisi = 10
No
Yes Posisi sensor = 10000 Kondisi = 11
No
Yes Posisi sensor = 111111 Kondisi = 12
No
End off baca sensor
Gambar 3.21. Diagram Alir Baca Sensor
64
Posisi sensor terhadap garis lintasan terdapat 12 macam output kondisi, diantaranya: •
Kondisi 0: Semua sensor berada di luar garis.
•
Kondisi 1: sensor D1 berada di garis, sensor berada ujung kiri.
•
Kondisi 2: sensor D2 berada di garis, sensor berada di bagian kiri.
•
Kondidi 3: sensor D1 dan D2 berada di garis, sensor berada di bagian kiri
•
Kondisi 4: sensor D3 berada di garis, sensor berada agak ke kiri.
•
Kondisi 5: sensor D2 dan D3 berada di garis, sensor berada agak kekiri.
•
Kondisi 6: sensor D3 dan D4 berada di garis, sensor lurus berada di tengah
•
Kondisi 7: sensor D4 dan D5 berada di garis, sensor agak ke kanan
•
Kondisi 8: sensor D4 berada di garis, sensor agak ke kanan.
•
Kondisi 9: sensor D5 dan D6 di garis, sensor berada di bagian kanan.
•
Kondisi 10: sensor D5 berada di garis, sensor berada di bagian kanan.
•
Kondisi 11: sensor D6 berada di garis, sensor berada di ujung kanan.
•
Kondisi 12: semua sensor berada di garis, terdapat persimpangan.
65
3.5.2.4.Perancangan Perangkat Keras Aktuator Robot Cerdas Semut Setelah mengetahui kemungkinan-kemungkinan posisi sensor, maka selanjutnya harus didefinisikan aksi dari setiap kondisi tersebut.
Tabel 3.5 . Aksi Pergerakan Robot
Posisi
Aksi Robot
Sensor
Motor Kiri
Motor Kanan
(PWM)
(PWM)
0
Robot Stop
0
0
1
Belok kanan tajam
255
0
2
Belok kanan sedikit tajam
255
50
3
Belok kanan sedang
255
100
4
Belok kanan ringan
255
150
5
Belok kanan sedikit ringan
255
200
6
Maju lurus
255
255
7
Belok kiri sedikit ringan
200
255
8
Belok kiri ringan
150
255
9
Belok kiri sedang
100
255
10
Belok kanan Sedikit tajam
50
255
11
Belok kiri tajam
0
255
Sesuaikan
Sesuaikan
strategi
strategi
12
Persimpanagn
66
Berikut merupakan diagram alir pengaturan PWM motor terhadap sensor pada robot cerdas semut. Jalankan robot sesuai kondisi sensor
Yes Robot Stop
Kondisi = 0
No Yes Belok kanan tajam
Kondisi = 1
No Yes Belok kanan sedikit tajam
Kondisi = 2
No Yes Belok kanan sedang
Kondisi = 3
No Yes Belok kanan ringan
Kondisi = 4
No 1
67
1
Yes Belok kanan sedikit ringan
Kondisi = 5
No Yes Maju lurus
Kondisi = 6
No Yes Belok kiri sedikit ringan
Kondisi = 7
No Yes Belok kiri ringan
Kondisi = 8
No Yes Belok kiri sedang
Kondisi = 9
No 2
68
2 Yes Belok kanan Sedikit ta am
Kondisi =10
N Yes Belok kanan Sedikit ta am
Kondisi = 11
N Yes Persimpangan
Kondisi = 12
N
End off jalankan
Gambar 3.22. Diagram Alir Jalankan Robot
Robot akan berjalan sesuai kondisi sensor antara lain: •
Kondisi 0 : robot akan berhenti atau stop dengan PWM kiri =0 dan PWM kanan= 0
•
Kondisi 1: robot akan bergerak belok kanan tajam dengan PWM kiri = 255 dan PWM kanan= 0
•
Kondisi 2: robot akan bergerak belok kanan sedikit tajam dengan PWM kiri = 255 dan PWM kanan=50
•
Kondisi 3: robot akan bergerak belok kanan sedang dengan PWM kiri = 255 dan PWM kanan= 100
•
Kondisi 4: robot akan bergerak belok kanan ringan dengan PWM kiri = 255 dan PWM kanan= 150
69
•
Kondisi 5: robot akan bergerak belok kanan sedikit ringan dengan PWM kiri = 255 dan PWM kanan= 200
•
Kondisi 6: robot akan bergerak maju lurus dengan PWM kiri = 255 dan PWM kanan= 255
•
Kondisi 7: robot akan bergerak belok kiri sedikit ringan dengan PWM kiri = 200 dan PWM kanan= 255
•
Kondisi 8: robot akan bergerak belok kiri ringan dengan PWM kiri = 150 dan PWM kanan= 255
•
Kondisi 9 : robot akan bergerak belok kiri sedang dengan PWM kiri = 100 dan PWM kanan= 255
•
Kondisi 10 : robot akan bergerak belok kiri sedang dengan PWM kiri = 50 dan PWM kanan= 255
•
Kondisi 11: robot akan bergerak belok kiri tajam dengan PWM kiri = 0 dan PWM kanan= 255
•
Kondisi 12 : robot berada pada persimpangan dan sesuai strategi yang ditentukan robot akan bergerak belok kanan, belok kiri, lurus atau stop.
70
Berikut ini gambar diagram alir untuk robot cerdas semut bergerak belok kanan, belok kiri dan stop pada saat menemukan persimpangan.
Robot belok kanan
Robot belok kiri
Robot stop
Motor kiri bergerak maju
Motor kanan bergerak maju
Motor kanan bergerak diam
Motor kanan Bergerak Mundur
Motor kiri Bergerak Mundur
Motor kiri Bergerak diam
End Off Sub Belok kanan
End Off Sub Belok kiri
End Off Sub stop
Gambar 3.23. Diagram Alir Sub Rutin Robot Belok Kanan, Belok Kiri dan Stop
Pada sub rutin proses robot belok kanan, motor kiri robot akan bergerak maju dan motor kanan akan bergerak mundur. Pada sub rutin proses robot belok kiri, motor kanan
robot
akan bergerak maju dan motor kiri akan bergerak
mundur. Selanjutnya proses sub rutin stop, motor kanan dan kiri robot diam atau tidak bergerak.
3.5.2.5.Perancangan Perangkat Lunak Pushbutton Robot Cerdas Semut Pada perancangan perangkat lunak robot cerdas semut, pushbutton digunakan sebagai input untuk menentukan titik tujuan saja pada 9 titik yang ada. Pada pushbutton masing-masing titik menunjukan titik tujuan robot cerdas semut bergerak, terdapat titik A, B, C, D, E, F, G, H dan I sebagai titik tujuannnya. Pada saat titik tujuan telah ditentukan maka berakhir proses pushbutton dan dilanjutkan ke proses berikutnya. Berikut diagram alir pushbutton titik tujuan pada robot cerdas semut.
71
Gambar 3.24. Diagram Alir Sub Rutin Pushbutton
72
3.5.2.4.Listing Program Listing program robot cerdas semut (Lampiran 1) 3.5.
Lintasan Robot Cerdas Semut
Lintasan yang digunakan untuk robot cerdas semut ini adalah lintasan dengan pola persimpangan. Lintasan robot digambarkan dalam bidang kartesian (3x3) dengan 9 titik sebagai titik asal dan titik tujuan dari robot semut.terdapat titik A sampai titik I. Pola lintasan berupa persimpangan berupa garis lurus berwarna putih yang saling memotong sehingga terbentuk persimpangan. Persimpangan tersebut membentuk kotak – kotak berukuran 30 x 30 cm.
Gambar 3.25. Lintasan Robot Cerdas Semut 3.6.
Perancangan Robot Secara Keseluruhan
Setelah rangkaian-rangkaian sub sistem dari robot line follower ini terbentuk, maka rangkaian robot dapat dibentuk secara utuh seperti yang terlihat pada Gambar 3.26.
73
t u m e S s a d r e C t o b o R m e t s i S k i t a m e k S m a r g a i D
. 6 2 . 3 r a b m a G
74
Gambar 3.27. Foto Robot Cerdas Semut Yang Di Rancang Tampak Atas
Bagian atas terlihat pushbutton kit 9 titik, DT-AVR Low Cost Minimum System, kaki robot cerdas semut, antenna robot cerdas semut dan kabel penghubung molex.
Gambar 3.28. Foto robot cerdas semut yang di rancang tampak samping
Terlihat dari tampak samping mata robot cerdas semut, pushbutton kit 9 titik, DT-AVR Low Cost Minimum System, kaki robot cerdas semut, antenna robot cerdas semut, kabel penghubung molex. Sensor proximity photodioda, SPC DC motor, tegangan sumber baterai 9 volt dan tegangan sumber baterai 12 volt.
75
BAB IV HASIL DAN PEMBAHASAN
Berdasarkan proses perancangan yang sudah dibahas pada bab sebelumnya dimana untuk mengetahui kinerja, hasil serta kehandalan sistem robot yang telah dibuat maka dilakukan proses pengujian. Proses pengujian ini ditujukan pada sistem Input, output robot dan strategi robot cerdas semut. Untuk sistem input dilakukan pengujian pada sensor dalam membaca garis lintasan. sedangkan sistem output berupa SPC DC Motor dan motor DC, dilakukan pengujian untuk mengatur kecepatan motor DC setelah membaca garis dengan menggunakan teknik PWM (Pulse Wide Modulation ). Dalam pengujian sistem input dan output ini menggunakan program Code Vision AVR. Pengujian juga dilakukan pada strategi pencarian lintasan terpendek robot cerdas semut, robot melewati pola lintasan persimpangan dalam bidang kartesian (3x3) dengan 9 titik sebagai titik asal dan titik tujuan dari robot cerdas semut. Dimana dari titik asal dicari rute terdekat menuju titik tujuan dengan menggunakan metode Depth – First Search dan pohon pencarian untuk merepresentasikan ruang keadaanya.
4.1.
Pengujian Sistem Input
Pengujian dilakukan pada sensor proximity photodioda dalam membaca garis lintasan dengan menggunakan 6 buah LED yang di hubungkan ke mikrokontroler. Penggunaan LED dimaksudkan agar dapat mengetahui pembacaan garis oleh sensor. Dimana sensor S1 berada dalam garis maka LED 1 akan menyala, dan seterusnya sesuai dengan kemungkinan pembacaan sensor pada garis lintasan. Berikut ini rangkaian sensor dan LED pada mikrokontroler:
76
P O R T A
P O R T B
Gambar 4.1. Rangkaian Sensor Proximity Dan Led
Sebagai output 6 buah LED dihubungkan ke PORTB.1 – PORTB.5 dan untuk input sensor dihubungkan ke PORTA.1 – PORTA.5. Dari percobaan yang dilakukan maka didapat hasil pembacaan sensor sebagai berikut: Tabel 4.1. Pembacaan Sensor Menggunakan LED Posisi sensor
Pembacaan Sensor
0
Keadaan LED L1
L2
L3
L4
L5
L6
00000000
0
0
0
0
0
0
1
00000001
1
0
0
0
0
0
2
00000010
0
1
0
0
0
0
3
00000011
1
1
0
0
0
0
4
00000100
0
0
1
0
0
0
5
00000110
0
1
1
0
0
0
6
00001100
0
0
1
1
0
0
7
00011000
0
0
0
1
1
0
8
00001000
0
0
0
1
0
0
9
00110000
0
0
0
0
1
1
10
00010000
0
0
0
0
1
0
11
00100000
0
0
0
0
0
1
12
00111111
1
1
1
1
1
1
77
Untuk pengujian ini menggunakan program Code Vision AVR yang listing programnya sebagai berikut:
if (s5) PORTB.5=0; / jika sensor s5=1, maka LED 5 menyala else PORTB.5=1; if (s4) PORTB.4=0; / jika sensor s4=1, maka LED 4menyala else PORTB.4=1; if (s3) PORTB.3=0; / jika sensor s3=1, maka LED 3 menyala else PORTB.3=1; if (s2) PORTB.2=0; / jika sensor s2=1, maka LED 2 menyala else PORTB.2=1; if (s1) PORTB.1=0; / jika sensor s1=1, maka LED 1 menyala else PORTB.1=1; if (s0) PORTB.0=0; / jika sensor s0=1, maka LED 0 menyala else PORTB.0=1; if(sensor) PORTB=0; / jika sensor =1, maka semua LED menyala else PORTB=1;
Listing Program 4.1. Pengujian Sensor
4.2.
Pengujian Sistem Output
Pengujian sistem output merupakan bagian yang terpenting pada pembuatan robot line follower ini. Dimana sistem output robot yaitu SPC DC motor dan motor DC sebagai dasar pergerakan robot setelah menerima sinyal dari mikrokontroler. Pada pengujian sistem output ini terbagi atas dua tahap, tahap yang pertama yaitu menguji gerak maju dan mundur motor DC menggunakan PWM, dimana harga PWM yaitu 0 - 255. Berikut ini merupakan tabel hasil percobaan gerak motor.
78
Tabel 4.2. Pengujian Gerak Motor DC dengan PWM Keadaan Motor DC
No
PORTC
PWM Motor DC 1
PWM Motor DC 2
Motor DC 1
Motor DC 2
1
PORTC.1 = 0 atau 1 PORTC.3= 0 atau 1
0
0
Diam
Diam
2
PORTC.1 = 0 PORTC.3=0
0
255
Diam
Maju Cepat
3
PORTC.1 = 0 PORTC.3=0
255
0
Maju Cepat
Diam
4
PORTC.1 = 0 PORTC.3=0
255
255
Maju Cepat
Maju Cepat
5
PORTC.1 = 1 PORTC.3=0
0
255
Diam
Maju Cepat
6
PORTC.1 = 1 PORTC.3=0
255
0
Mundur Cepat
Diam
7
PORTC.1 = 1 PORTC.3=0
255
255
Mundur Cepat
Maju Cepat
8
PORTC.1 = 0 PORTC.3=1
0
255
Diam
Mundur Cepat
9
PORTC.1 = 0 PORTC.3=1
255
0
Maju Cepat
Diam
10
PORTC.1 = 0 PORTC.3=1
255
255
Maju Cepat
Mundur Cepat
PORTC.1 = 1 PORTC.3=1
255
255
Mundur cepat
Mundur cepat
11
Listing Program untuk menjalankan motor dengan PWM adalah sebagai berikut: x++; if(x>=rpwm)PORTC.0=0; else PORTC.0=1; if(x>=lpwm)PORTC.2=0; else PORTC.2=1;
Listing Program 4.2. Menjalankan Motor DC Dengan PWM
79
Sedangkan listing program dalam pengujian gerak motor DC yaitu:
1)
PORTC.1=0;rpwm=0; PORTC.2=0;lpwm=0; / ke 2 motor diam PORTC.0=1;rpwm=0;PORTC.2=1;lpwm=0;/ ke 2 motor diam
2)
PORTC.0=0;rpwm=0;PORTC.2=0;lpwm=255;/motor 1 diam dan motor 2 maju cepat
3)
PORTC.0=0;rpwm=255;PORTC.2=0;lpwm=0;/motor 1 maju cepat dan motor 2 diam
4)
PORTC.0=0;rpwm=255;PORTC.2=0;lpwm=255;/motor 1 maju cepat dan motor 2 maju cepat
5)
PORTC.0=1;rpwm=0;PORTC.2=0;lpwm=255;/motor 1 diam dan motor 2 maju cepat
6)
PORTC.0=1;rpwm=255;PORTC.2=0;lpwm=0;/motor 1 mundur cepat dan motor 2 diam
7)
PORTC.0=1;rpwm=255;PORTC.2=0;lpwm=255;/motor 1 mundur cepat dan motor 2 maju c epat
8)
PORTC.0=0;rpwm=0;PORTC.2=1;lpwm=255; /motor 1 diam dan motor 2 mundur cepat
9)
PORTC.0=0;rpwm=255;PORTC.2=1;lpwm=0;/motor 1 maju cepat dan motor 2 diam
10) PORTC.0=0;rpwm=255;PORTC.2=1;lpwm=255;/motor 1 maju cepat dan motor 2 mundur cepat 11) PORTC.0=1;rpwm=255;PORTC.2=1;lpwm=255; / motor 1 mundur cepat dan motor 2 mudur cepat
Listing Program 4.3. Gerak Motor DC Dengan PWM
Untuk pengujian yang kedua yaitu menyesuaikan pergerakan robot sesuai keadaan sensor dalam membaca garis lintasan. Dimana robot akan memberikan respon yang berbeda sesuai dengan besar PWM sehingga memberikan kecepatan yang berbeda pada kedua motor DC robot. Setelah merangkai hardware robot seperti pada gambar 3.28, maka didapat hasil pengujian sebagai berikut:
80
Tabel 4.3. Pengujian Motor DC dengan PWM
Keadaan Sensor
tegangan roda kanan (V)
PWM kanan (Rpwm)
gerak motor DC 1 (Roda kanan)
PWM kiri (Lpwm)
Tegangan roda kiri (V)
gerak motor DC 2 (Roda kiri)
Respon Robot Mobil
1
7.5
255
maju cepat
0
0
diam
belok kiri cepat
2
7.5
255
maju cepat
50
0.8
maju pelan
belok kiri sedang
3
7.5
255
maju cepat
50
1
diam
belok kiri sedang
4
7.4
255
maju cepat
200
2.4
maju pelan
belok Kanan pelan
5
7.2
255
maju cepat
150
5
maju pelan
belok Kanan pelan
6
7
7
maju cepat
maju lurus
7
5
150
maju pelan
255
7.2
maju cepat
belok Kanan pelan
8
2.4
200
maju pelan
255
7.4
maju cepat
belok Kanan pelan
9
1
50
diam
255
7.5
maju cepat
belok kanan sedang
11
0.8
50
maju pelan
255
7.5
maju cepat
belok kanan sedang
12
0
255
Diam
0
7.5
maju cepat
belok kanan cepat
255
maju cepat
255
81
Berikut ini listing program pengujian motor DC dengan PWM dengan input sensor proximity photodioda. if (ski && ska==1) // 001100 {rpwm=255; lpwm=255; // maju lurus a1=0; a2=0; } if (ski==0) { rpwm=200; lpwm=255; a1=0; a2=0; xx=1; } if (ska==0) { rpwm=255; lpwm=200; a1=0; a2=0; xx=0; }
if (skax ==0) {while (!ska==1){ rpwm=255; lpwm=50; a1=0; a2=0; xx=0; } }
// 000100
//belok kanan pelan
//belok kiri sedang
if (skixx && skix==0) //000011 {while (!ski==1){ rpwm=50; lpwm=255; //belok kanan sedang a1=0; a2=0; xx=1; } }
//001000
//belok kiri pelan if (!skixx==0) {while (skax==1){ rpwm=255; lpwm=0; a1=0; a2=0; xx=1; } }
if (skix && ski==0) // 000110 {while (!ski==1){ rpwm=150; lpwm=255; //belok kanan pelan a1=0; a2=0; xx=1; } } if (skix==0) {while (!ski==1){ rpwm=50; lpwm=255; a1=0; a2=0; xx=1; } }
//010000
//000001
//belok kanan cepat
if (skaxx && skax==0) //110000 {while (!ska==1){ rpwm=255; lpwm=50; // belok kiri sedang a1=0; a2=0; xx=0; } }
// 000010
//belok kanan sedang
if (!skaxx==0) {while (skax==1){ rpwm=0; lpwm=255; a1=0; a2=0; xx=0; } }
if (ska && skax ==0) //011000 {while (!ska ==1){ rpwm=255; lpwm=150; //belok kiri pelan a1=0; a2=0; xx=0; } }
//100000
Listing Program 4.4. Pengujian Motor DC 82
//belok kanan cepat
4.3.
Pengujian Strategi Robot Cerdas Semut
Setelah melakukan pengujian pada sensor dan motor DC maka selanjutnya dilakukan pengujian terhadap robot untuk pola lintasan persimpangan dalam bidang kartesian (3x3) dengan 9 titik sebagai titik asal dan titik tujuan dari robot semut. Robot semut berjalan dari titik asal dengan mencari
rute atau lintasan terdekat
menuju titik tujuan dengan menggunakan metode Depth – First Search. Sedangkan untuk mempresentasikan keadaan menggunakan pohon pencarian dalam mencari rute atau lintasan dari suatu titik asal menuju titik tujuannya. Sebagai sample maka diambil salah satu titik dari kesembilan titik yang ada yaitu titik A sebagai titik asal menuju titik tujuan yaitu titik B, C, D, E, F, G, H dan I. dengan posisi awal robot untuk setiap titik yaitu menghadap kanan.
4.3.1. Pencarian Rute Terpendek Untuk Titik A Untuk titik A pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik B, C, D, E, F, G, H dan I.
4.3.1.1.Titik A ke Titik B Berdasarkan proses pencarian rute terpendek dengan pohon pencarian sebagai representasi keadaan, maka didapatkan rute-rute sebagai berikut:
Tabel 4.4. Lintasan Titik A ke Titik B
No 1 2 3 4 5 6 7 8
Rute/lintasan A-B A-F-E-B A-F-E-D-C-B A-F-E-H-I-D-C-B A-F-G-H-I-D-C-B A-F-G-H-I-D-E-B A-F-G-H-E-B A-F-G-H-E-D-C-B
Jarak (cm) 30 90 150 240 240 240 150 240
83
Keterangan Rute terpendek
Rute terpanjang Rute terpanjang Rute terpanjang Rute terpanjang
A
B
F
E
B
G
D
C
H
I
G
H
I
B
D
C
I
E
F
I
D
I
B
B
D
C
C
B
B
E
B
H
F
Gambar 4.2 . Pohon Pencarian Rute Terpendek Titik A Ke Titik B
Dari tabel dan gambar diatas didapatkan rute terpendek titik A ke titik B yaitu A-B dengan jarak 30 cm. berikut ini dapat digambarkan robot bergerak dari titik A ke titik B dengan rute terpendek.
Gambar 4.3 . Strategi Penentuan Rute Terpandek Titik A Ke Titik B 84
Berdasarkan gambar dapat dilihat rute terpendek robot dari titik A menuju titik B (A-B) yaitu dari titk A robot bergerak lurus menuju titik B. Berikut ini listening program rute A-B. void AB() { ab1=30; //jarak ab1" lurus(); // jalan lurus lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); // stop }
Listening Program 4.5. Rute A-B
4.3.1.2.Titik A ke Titik C Berdasarkan proses pencarian rute terpendek dengan pohon pencarian sebagai representasi keadaan, maka didapatkan rute-rute sebagai berikut:
Tabel 4.5. Lintasan Titik A Ke Titik C
No 1 2 3 4 5 6 7 8 9 10 11 12
Rute/lintasan A-B-C A-F-G-H-E-B-C A-F-G-H-I-D-E-B-C A-F-G-H-E-D-C A-F-E-B-C A-F-E-D-C A-F-E-H-I-D-C A-F-E-H-I-D-E-B-C A-F-G-H-I-D-C A-B-E-H-I-D-C A-B-E-D-C A-B-E-F-G-H-I-D-C
Jarak (cm) 60 180 240 180 120 120 180 240 180 180 120 240
85
Keterangan Rute terpendek Rute terpanjang
Rute terpanjang
Rute terpanjang
Berdasarkan gambar dapat dilihat rute terpendek robot dari titik A menuju titik C (A-B-C) yaitu dari titik A robot bergerak lurus menuju titik B dan bergerak lurus lagi menuju titik C. Berikut ini listening program rute A-B-C. void ABC() { ac2=60; lurus(); lpwm=0;rpwm=0; scan_count(1); lpwm=0;rpwm=0; lurus();
//jarak ABC // titik a //titik b // jalan lurus
lpwm=0;rpwm=0; scan_count(1); lpwm=0;rpwm=0; stop(); }
//titik c //stop
Listening Program 4.6. Rute A-B-C
4.3.1.3. Titik A ke Titik D Berdasarkan proses pencarian rute terpendek dengan pohon pencarian sebagai representasi keadaan, maka didapatkan rute-rute sebagai berikut:
Tabel 4.6. Lintasan Titik A Ke Titik D
No
Rute/lintasan
1 2 3 4 5 6 7 8.
A-B-C-D A-F-E-D A-B-E-D A-B-E-H-I-D A-F-E-H-I-D A-F-E-B-C-D A-B-E-F-G-H-I-D A-F-G-H-I-D
Jarak (cm) 90 90 90 150 150 150 210 150
87
Keterangan Rute terpendek Rute terpendek Rute terpendek
Rute terpanjang
Gambar 4.6 . Pohon Pencarian Rute Terpendek Titik A Ke Titik D
Dari tabel dan gambar diatas karena memiliki lebih dari satu solusi untuk menentukan lintasan terpendek, maka dengan menggunakan metode perbandingan (compare) pada pemrograman Code Vision AVR C didapat rute terpendek titik A ke titik D yaitu A-B-C-D dengan jarak 90 cm. berikut ini dapat digambarkan robot bergerak dari titik A ke titik D dengan rute terpendek.
Gambar 4.7 . Strategi Penentuan Rute Terpandek Titik A Ke Titik D 88
Berdasarkan gambar dapat dilihat rute terpendek robot dari titik A menuju titik D (A-B-C-D) yaitu dari titik A robot bergerak lurus menuju titik B, bergerak lurus lagi menuju titik C dan belok kanan menuju titik D. Berikut ini listening program rute A-B-C-D. void ABCD() { ad1=90; //jarak ABCD" lurus();
//titik a
lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; lurus(); // jalan lurus lpwm=0;rpwm=0; scan_count(1); //titik c lpwm=0;rpwm=0; kanan(); //belok kanan lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); } //stop
Listing Program 4.7. Rute A-B-C-D
4.3.1.4. Titik A ke Titik E Berdasarkan proses pencarian rute terpendek dengan pohon pencarian sebagai representasi keadaan, maka didapatkan rute-rute sebagai berikut:
Tabel 4.7. Lintasan Titik A Ke Titik E
No 1 2 3 4 5 6 7 8.
Rute/lintasan A-F-E A-B-E A-F-G-H-E A-F-G-H-I-D-E A-F-G-H-I-D-C-B-E A-B-C-D-E A-B-C-D-I-H-E A-B-C-D-I-H-G-F-E
Jarak (cm) 60 60 120 180 240 120 180 240 89
Keterangan Rute terpendek Rute terpendek
Rute terpanjang
Rute terpanjang
A
F
B
E
B
E
C
H
I
D
E
E
I
H D
C
E
E
G
F
B
A
E
E
A
Gambar 4.8 . Pohon Pencarian Rute Terpendek Titik A Ke Titik E
Dari tabel dan gambar diatas diatas karena memiliki lebih dari satu solusi untuk menentukan lintasan terpendek, maka dengan menggunakan metode perbandingan (compare ) pada pemrograman Code Vision AVR C didapat rute terpendek titik A ke titik E yaitu A-F-E dengan jarak 60 cm. berikut ini dapat digambarkan robot bergerak dari titik A ke titik E dengan rute terpendek.
Gambar 4.9. Strategi Penentuan Rute Terpandek Titik A Ke Titik E 90
Berdasarkan gambar dapat dilihat rute terpendek robot dari titik A menuju titik E (A-F-E) yaitu dari titik A robot belok kanan menuju titik F dan belok kiri menuju titik E. Berikut ini listening program rute A-F-E.
void AFE() { ae1=60; //jarak AFE" kanan();
//titik a
lpwm=0;rpwm=0; scan_count(1); lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); lpwm=0;rpwm=0; stop(); }
//titik f // belok kiri
//titik e
//stop
Listening Program 4.8. Rute A-F-E
4.3.1.5. Titik A ke Titik F Berdasarkan proses pencarian rute terpendek dengan pohon pencarian sebagai representasi keadaan, maka didapatkan rute-rute sebagai berikut:
Tabel 4.8. Lintasan Titik A Ke Titik F
No
Rute/lintasan
1 2 3 4 5 6 7 8.
A-F A-B-E-F A-B-E-H-G-F A-B-C-D-E-F A-B-E-D-I-H-G-F A-B-C-D-E-H-G-F A-B-C-D-I-H-G-F A-B-C-D-I-H-E-F
Jarak (cm) 30 90 150 150 210 210 210
91
Keterangan Rute terpendek
Rute terpanjang Rute terpanjang Rute terpanjang Rute terpanjang
Gambar 4.10. Pohon Pencarian Rute Terpendek Titik A Ke Titik F
Dari tabel dan gambar diatas didapat rute terpendek titik A ke titik F yaitu A-F dengan jarak 30 cm. berikut ini dapat digambarkan robot bergerak dari titik A ke titik F dengan rute terpendek.
Gambar 4.11. Strategi Penentuan Rute Terpandek Titik A Ke Titik F
92
Berdasarkan gambar dapat dilihat rute terpendek robot dari titik A menuju titik F (A-F) yaitu dari titik A robot belok kanan menuju titik F. Berikut ini listening program rute A-F.
void AF() { af1=30; //jarak AFE" kanan();
//titik a
lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; stop(); }
Listening Program 4.9. Rute A-F
4.3.1.6. Titik A ke Titik G Berdasarkan proses pencarian rute terpendek dengan pohon pencarian sebagai representasi keadaan, maka didapatkan rute-rute sebagai berikut:
Tabel 4.9. Lintasan Titik A ke Titik G
No 1 2 3 4 5 6 7 8. 9. 10 11.
Rute/lintasan A-F-G A-F-E-H-G A-F-E-D-I-H-G A-B-E-F-G A-F-E-B-C-D-I-H-G A-B-E-D-I-H-G A-B-C-D-E-F-G A-B-E-H-G A-B-C-D-E-H-G A-B-C-D-I-H-E-F-G A-B-C-D-I-H-G
Jarak (cm) 60 120 160 120 240 160 160 120 160 240 160
93
Keterangan Rute terpendek
Rute terpanjang
Rute terpanjang
Gambar 4.12. Pohon Pencarian Rute Terpendek Titik A Ke Titik G
Dari tabel dan gambar diatas didapat rute terpendek titik A ke titik G yaitu A-F-G dengan jarak 60 cm. berikut ini dapat digambarkan robot bergerak dari titik A ke titik G dengan rute terpendek.
Gambar 4.13. Strategi Penentuan Rute Terpandek Titik A Ke Titik G
94
Berdasarkan gambar dapat dilihat rute terpendek robot dari titik A menuju titik G (A-F-G) yaitu dari titik A robot belok kanan menuju titik F dan lurus menuju titik G. Berikut ini listening program rute A-F-G.
void AFG() { ag1=60; //jarak AFE" kanan();
//titik a
scan_count(1); lpwm=0;rpwm=0; lurus();
//titik f
lpwm=0;rpwm=0; scan_count(1); //titik g lpwm=0;rpwm=0; stop(); }
Listening Program 4.10. Rute A-F-G
4.3.1.7. Titik A ke Titik H Berdasarkan proses pencarian rute terpendek dengan pohon pencarian sebagai representasi keadaan, maka didapatkan rute-rute sebagai berikut:
Tabel 4.10. Lintasan Titik A Ke Titik H
No
Rute/lintasan
1 2 3 4 5 6 7 8. 9. 10
A-F-G-H A-F-E-H A-F-E-D-I-H A-B-E-H A-B-E-F-G-H A-F-E-B-C-D-I-H A-B-E-D-I-H A-B-C-D-E-F-G-H A-B-C-D-E-H A-B-C-D-I-H
Jarak (cm) 90 90 150 90 150 210 150 210 150 150
95
Keterangan Rute terpendek Rute terpendek Rute terpendek Rute terpanjang Rute terpanjang
Gambar 4.14. Pohon Pencarian Rute Terpendek Titik A Ke Titik H
Dari tabel dan gambar diatas diatas karena memiliki lebih dari satu solusi untuk menentukan lintasan terpendek, maka dengan menggunakan metode perbandingan (compare ) pada pemrograman Code Vision AVR C didapat rute terpendek titik A ke titik H yaitu A-F-G-H dengan jarak 90 cm. berikut ini dapat digambarkan robot bergerak dari titik A ke titik H dengan rute terpendek.
Gambar 4.15 . Strategi Penentuan Rute Terpandek Titik A Ke Titik H 96
Berdasarkan gambar dapat dilihat rute terpendek robot dari titik A menuju titik H (A-F-G-H) yaitu dari titik A robot belok kanan menuju titik F, lurus menuju titik G dan belok kiri menuju titik H. Berikut ini listening program rute A-F-G-H. void AFGH() { ah1=90; //jarak AFGH" kanan();
//titik a
scan_count(1); lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); lpwm=0;rpwm=0; kiri();
//titik f
//titik g
lpwm=0;rpwm=0; scan_count(1); //titik h lpwm=0;rpwm=0; stop(); }
Listening Program 4.11. Rute A-F-G-H
4.3.1.8. Titik A ke Titik I Berdasarkan proses pencarian rute terpendek dengan pohon pencarian sebagai representasi keadaan, maka didapatkan rute-rute sebagai berikut:
Tabel 4.11. Lintasan Titik A ke Titik I
No 1 2 3 4 5 6 7 8. 9.
Rute/lintasan A-F-G-H-I A-F-E-H-I A-F-E-D-I A-F-E-B-C-D-I A-F-G-H-E-D-I A-B-E-F-G-H-I A-B-E-H-I A-B-E-D-I A-B-C-D-E-H-I
Jarak (cm) 120 120 120 160 160 160 120 120 160 97
Keterangan Rute terpendek Rute terpendek Rute terpendek
Rute terpendek Rute terpendek
Gambar 4.17 . Strategi Penentuan Rute Terpandek Titik A Ke Titik I
Berdasarkan gambar dapat dilihat rute terpendek robot dari titik A menuju titik I (A-F-G-H-I) yaitu dari titik A robot belok kanan menuju titik F, lurus ke titik G, belok kiri ke titik H dan lurus menuju titik I. Berikut ini listening program rute AF-G-H-I. void AFGHI() { ai1=120; //jarak AFGHI" kanan();
//titik a
scan_count(1); lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); lpwm=0;rpwm=0; lurus();
//titik f
//titik g
//titik i
lpwm=0;rpwm=0; scan_count(1); //titik i lpwm=0;rpwm=0; stop(); }
Listening Program 4.12. Rute A-F-G-H-I 99
4.3.2. Pencarian Rute Terpendek Untuk Titik B Untuk titik B pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik A, C, D, E, F, G, H dan I. dapat dilihat pada tabel berikut.
Tabel 4.12. Lintasan Terpendek Untuk Titik B
No
Titik asal ke titik tujuan
Rute/lintasan terpendek
Jarak (cm)
1.
Titik B ke titik A
B-A
30
2.
Titik B ke titik C
B-C
30
3.
Titik B ke titik D
B-C-D
60
4.
Titik B ke titik E
B-E
30
5.
Titik B ke titik F
B-E-F
60
6.
Titik B ke titik G
B-E-H-G
90
7.
Titik B ke titik H
B-E-H
60
8.
Titik B ke titik I
B-E-H-I
90
Maka ditemukan lintasan terpendek pada titik
B ke masing-masing titik
lainnya yaitu B-A, B-A, B-C-D, B-E, B-E-F, B-E-H-G, B-E-H dan B-E-H-I.
4.3.3. Pencarian Rute Terpendek Untuk Titik C Untuk titik C pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik A, B, D, E, F, G, H dan I. dapat dilihat pada tabel berikut.
Tabel 4.13. Lintasan Terpendek Untuk Titik C
No
Titik asal ke titik tujuan
Rute/lintasan terpendek
Jarak (cm)
1.
Titik C ke titik A
C-B-A
60
2.
Titik C ke titik B
C-B
30
3.
Titik C ke titik D
C-D
30
4.
Titik C ke titik E
C-D-E
60
5.
Titik C ke titik F
C-D-E-F
90
100
6.
Titik C ke titik G
C-B-A-F-G
120
7.
Titik C ke titik H
C-D-I-H
90
8.
Titik C ke titik I
C-D-I
60
Maka ditemukan lintasan terpendek pada titik C ke masing-masing titik lainnya yaitu C-B-A, C-B,C-D, C-D-E, C-D-E-F, C-B-A-F-G, C-D-I-H dan C-D-I
4.3.4. Pencarian Rute Terpendek Untuk Titik D Untuk titik D pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik A, B, C, E, F, G, H dan I. dapat dilihat pada tabel berikut.
Tabel 4.14. Lintasan Terpendek Untuk Titik D
No
Titik asal ke titik tujuan
Rute/lintasan terpendek
Jarak (cm)
1.
Titik D ke titik A
D-C-B-A
90
2.
Titik D ke titik B
D-C-B
60
3.
Titik D ke titik C
D-C
30
4.
Titik D ke titik E
D-E
30
5.
Titik D ke titik F
D-E-F
60
6.
Titik D ke titik G
D-E-F-G
90
7.
Titik D ke titik H
D-I-H
60
8.
Titik D ke titik I
D-I
30
Maka ditemukan lintasan terpendek pada titik D ke masing-masing titik lainnya yaitu D-C-B-A, D-C-B, D-C, D-E, D-E-F, D-E-F-G, D-I-H dan D-I
101
4.3.5. Pencarian Rute Terpendek Untuk Titik E Untuk titik E pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik A, B, C, D, F, G, H dan I. dapat dilihat pada tabel berikut.
Tabel 4.12. Lintasan Terpendek Untuk Titik E
No
Titik asal ke titik tujuan
Rute/lintasan terpendek
Jarak (cm)
1.
Titik E ke titik A
E-B-A
60
2.
Titik E ke titik B
E-B
30
3.
Titik E ke titik C
E-B-C
60
4.
Titik E ke titik D
E-D
30
5.
Titik E ke titik F
E-F
30
6.
Titik E ke titik G
E-F-G
60
7.
Titik E ke titik H
E-H
30
8.
Titik E ke titik I
E-H-I
60
Maka ditemukan lintasan terpendek pada titik E ke masing-masing titik lainnya yaitu E-B-A, E-B, E-B-C, E-D, E-F, E-F-G, E-H dan E-H-I.
4.3.6. Pencarian Rute Terpendek Untuk Titik F Untuk titik F pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik A, B, C, D, E, G, H dan I. dapat dilihat pada tabel berikut.
Tabel 4.16. Lintasan Terpendek Untuk Titik F
No
Titik asal ke titik tujuan
Rute/lintasan terpendek
Jarak (cm)
1.
Titik F ke titik A
F-A
30
2.
Titik F ke titik B
F-E-B
60
3.
Titik F ke titik C
F-E-D-C
90
4.
Titik F ke titik D
F-E-D
60
102
5.
Titik F ke titik E
F-E
30
6.
Titik F ke titik G
F-G
30
7.
Titik F ke titik H
F-G-H
60
8.
Titik F ke titik I
F-E-D-I
90
Maka ditemukan lintasan terpendek pada titik F ke masing-masing titik lainnya yaitu F-A, F-E-B, F-E-D-C, F-E-D, F-E, F-G, F-G-H dan F-E-D-I.
4.3.7. Pencarian Rute Terpendek Untuk Titik G Untuk titik G pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik A, B, C, D, E, F, H dan I. dapat dilihat pada tabel berikut.
Tabel 4.17. Lintasan Terpendek Untuk Titik G
No
Titik asal ke titik tujuan
Rute/lintasan terpendek
Jarak (cm)
1.
Titik G ke titik A
G-F-A
60
2.
Titik G ke titik B
G-H-E-B
90
3.
Titik G ke titik C
G-H-I-D-C
120
4.
Titik G ke titik D
G-H-I-D
90
5.
Titik G ke titik E
G-H-E
60
6.
Titik G ke titik F
G-F
30
7.
Titik G ke titik H
G-H
30
8.
Titik G ke titik I
G-H-I
60
Maka ditemukan lintasan terpendek pada titik G ke masing-masing titik lainnya yaitu G-F-A, G-H-E-B, G-H-I-D-C, G-H-I-D, G-H-E, G-F, G-H dan G-H-I.
103
4.3.8. Pencarian Rute Terpendek Untuk Titik H Untuk titik H pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik A, B, C, D, E, F, G dan I. dapat dilihat pada tabel berikut.
Tabel 4.18. Lintasan Terpendek Untuk Titik H
No
Titik asal ke titik tujuan
Rute/lintasan terpendek
Jarak (cm)
1.
Titik H ke titik A
H-E-B-A
90
2.
Titik H ke titik B
H-E-B
60
3.
Titik H ke titik C
H-I-D-C
90
4.
Titik H ke titik D
H-I-D
60
5.
Titik H ke titik E
H-E
30
6.
Titik H ke titik F
H-E-F
60
7.
Titik H ke titik G
H-G
30
8.
Titik H ke titik I
H-I
30
Maka ditemukan lintasan terpendek pada titik H ke masing-masing titik lainnya yaitu H-E-B-A, H-E-B, H-I-D-C, H-I-D, H-E, H-E-F, H-G dan H-I.
4.3.9. Pencarian Rute Terpendek Untuk Titik I Untuk titik I pada pencarian rute terpendek ini dengan delapan daerah titik tujuan yaitu titik A, B, C, D, E, F, G dan H. dapat dilihat pada tabel berikut.
104
Tabel 4.19. Lintasan Terpendek Untuk Titik I
No
Titik asal ke titik tujuan
Rute/lintasan terpendek
Jarak (cm)
1.
Titik I ke titik A
I-D-C-B-A
120
2.
Titik I ke titik B
I-D-C-B
90
3.
Titik I ke titik C
I-D-C
60
4.
Titik I ke titik D
I-D
30
5.
Titik I ke titik E
I-D-E
60
6.
Titik I ke titik F
I-D-E-F
90
7.
Titik I ke titik G
I-H-G
60
8.
Titik I ke titik H
I-H
30
Maka ditemukan lintasan terpendek pada titik I
ke masing-masing titik
lainnya yaitu I-D-C-B-A, I-D-C-B, I-D-C, I-D, I-D-E, I-D-E-F, I-H-G dan I-H.
4.4.
Pembahasan
Pembahasan dilakukan pada sistem input robot cerdas semut, sistem output robot cerdas semut dan strategi robot cerdas semut. 4.4.1. Pembahasan Sistem Input Pada tabel.4.1 pembacaan sensor diasumsikan nilai 1 merupakan keadaan sensor mengenai garis. sedangkan pada LED yang bernilai 1 di asumsikan LED dalam keadaan menyala. Ketika sensor mengenai garis maka led yang menunjukan sensor proximity photodioda aktif pun menyala. Dari pengujian sensor proximity photodioda maka didapatkan yaitu: 1. Pada posisi sensor = 0 maka semua led mati 2. Pada posisi sensor =1 maka hanya led L1 menyala 3. Pada posisi sensor =2 maka hanya led L2 menyala 4. Pada posisi sensor =3 maka hanya led L1 dan L2 menyala 5. Pada posisi sensor =4 maka hanya led L3 menyala 6. Pada posisi sensor =5 maka hanya led L2 dan L3 menyala 105
7. Pada posisi sensor =6 maka hanya led L3 dan L4 menyala 8. Pada posisi sensor =7 maka hanya led L4 dan L5menyala 9. Pada posisi sensor =8 maka hanya led L4 menyala 10. Pada posisi sensor =9 maka hanya led L5 dan L6 menyala 11. Pada posisi sensor =10 maka hanya led L5 menyala 12. Pada posisi sensor =11maka hanya led L6 menyala 13. Pada posisi sensor =12 maka semua led menyala
4.4.2. Pembahasan Sistem Output Pada tabel 4.2 pengujian gerak motor DC menunjukan bahwa jika PORTC.1 dan PORTC.3 = 1 maka putaran motor akan berputar mundur, sebaliknya jika PORTC.1 dan PORTC.3 = 0 maka motor akan berputar maju. Untuk penentuan PWM ketika diberikan PWM=255 maka motor akan berputar cepat, sebaliknya ketika diberikan PWM=0 maka motor akan diam. Berikut ini grafik pengujian motor DC dengan PWM berdasarkan posisi sensor terhadap tegangan.
8 7 6 5
Tegangan (V)
4
Motor Kanan Motor Kiri
3 2 1 0 1
2
3
4
5
6
7
8
9
10
11
Posisi Sensor
Gambar 4.18. Grafik Pengujian Motor DC dengan PWM 106
Pada pengujian motor DC dengan PWM menunjukan bahwa dengan kecepatan putaran motor maksimal yaitu 255 PWM setara dengan tegangan 7,5 Volt, sedangkan untuk putaran motor minimal yaitu 0 PWM setara dengan tegangan 0 Volt. Dengan jumlah bit =256 dan tegangan maksimal = 7,5 Volt. Semakin besar nilai PWM maka makin tegangan yang dihasilkan untuk memutar motor DC. Posisi sensor = 6 (001100) adalah posisi ideal roda kiri dan kanan bergerak maju cepat dengan tegangan yang sama yaitu 7 volt. Untuk posisi sensor = 1 (000001) maka motor kanan berputar maju cepat dengan tegangan = 7,5 volt dan motor kiri diam = 0 volt. Sebaliknya jika posisi sensor = 11 (100000) maka maka motor kiri berputar maju cepat dengan tegangan = 7,5 volt dan motor kanan diam = 0 volt.
4.4.3. Pembahasan Strategi Robot Cerdas Semut Berdasarkan
gambar
pada
pohon
pencarian titik A
maka diukur
perfomansi metode pencarian Dept-First Search pada robot cerdas semut sebagai berikut. Tabel 4.20. Informasi Metode Pencarian Untuk Titik A
Kriteria Titik Asal Ke Titik Tujuan
b
m
Completeness
Time complexity
Titik A ke Titik B
2
8
Completed
256
16
Titik A ke Titik C
2
9
Completed
512
18
Titik A ke Titik D
2
8
Completed
256
16
Titik A ke Titik E
2
9
Completed
512
18
Titik A ke Titik F
2
8
Completed
256
16
Titik A ke Titik G
2
9
Completed
512
18
Titik A ke Titik H
2
8
Completed
256
16
Titik A ke Titik I
2
9
Completed
512
18
107
Space complexity
Keterangan : b : Faktor Percabangan m : Kedalaman maksimum dari pohon pencarian Time complexity = (b^m) Space complexity = (b x m)
Untuk setiap titik tujuan B sampai dengan I dapat dilihat pada tabel bahwa untuk kriteria Completeness mencapai complete semua, disebabkan dalam pencarian ini tidak terdapat level yang sangat dalam maka pada pencarian ini mendapatkan solusi. Untuk titik tujuan B, D, F dan H memiliki Time complexity lebih singkat dari titik tujuan lainnnya dan memiliki Space complexity lebih kecil dari titik tujuan lainnnya. Disebabkan tingkat level kedalaman maksimum pohon pencarian pada titik-titik tujuan tersebut lebih pendek dari titik-titik tujuan lainnnya. Untuk b=2 dan m=8, maka DepthFirst Search harus membangkitkan dan menyimpan sebanyak 2^8 = 256 simpul. Jika
diasumsikan bahwa dalam 1 detik komputer bisa membangkitkan dan menguji 2^1 simpul, maka waktu proses yang diperlukan untuk menemukan solusi di level 8 adalah 2^8 – 2^1 = 2^7 atau sama dengan 128 detik. Jika satu simpul dipresentasikan dalam struktur data sebesar 2^2 byte = 4 byte, maka diperlukan memory sebesar 2^10 byte ( atau 1024 byte).
108
BAB V PENUTUP
5.1.
Kesimpulan
Berdasarkan penelitian dan pembahasan dalam perancangan robot cerdas semut untuk menentukan lintasan terpendek, maka dapat disimpulkan beberap hal terkait dengan pelaksanaan dan hasil dari penelitian yaitu: 1. Mikrokontroler DT AVR ATMEGA16 Minimum System dengan bahasa pemrograman C Code Vision AVR dapat dipergunakan sebagai pengontrol pada robot cerdas semut untuk mencari lintasan terpendek. 2. Kepekaan sensor dan pengaruh cahaya dari luar sangat mempengaruhi gerak robot dalam membaca garis putih pada lintasan. 3. Penguatan putaran motor maksimal yaitu 225 PWM = 7,5 volt dan penguatan motor minimal yaitu 0 PWM = 0 volt. Dengan jumlah bit yang digunakan yaitu 256 dan tegangan sumber ke SPC DC motor yaitu 9 volt. 4. Berdasarkan pengujian strategi diambil sample pada titik A maka di dapatkan : a. Untuk titik A ke B didapatkan lintasan terpendek A-B dengan jarak 30 cm. b. Untuk titik A ke C didapatkan lintasan terpendek A-B-C dengan jarak 60 cm. c. Untuk titik A ke D didapatkan lintasan terpendek A-B-C-D dengan jarak 90 cm d. Untuk titik A ke E didapatkan lintasan terpendek A-F-E dengan jarak 60 cm. e. Untuk titik A ke F didapatkan lintasan terpendek A-F dengan jarak 30 cm. f. Untuk titik A ke G didapatkan lintasan terpendek A-F-G dengan jarak 60 cm. g. Untuk titik A ke H didapatkan lintasan terpendek A-F-G-H dengan jarak 90 cm.
109
h. Untuk titik A ke I didapatkan lintasan terpendek A-F-G-H-I dengan jarak 120 cm.
5.2.
Saran
1. Robot cerdas semut ini dapat dikembangkan lagi dengan melewati lintasan dengan penghalang dengan menambahkan sensor infra merah atau ultra sonic. 2. Sebaiknya sensor proximity photodioda dibungkus untuk kepekaan dan sensitifitas sensor. 3. Algoritma robot ini dapat dikembangkan menjadi lebih cerdas, dengan menambahkan perintah kembali ke posisi semula setelah melaksanakan tugas. 4. Karena pemograman robot cerdas semut memerlukan memori yang besar yaitu 23796 byte maka sebaiknya menggunakan mikrokontroler yang memorinya lebih besar dari ATMEGA 16 seperti ATMEGA 32 5. Robot cerdas semut dapat dikembangkan untuk lintasan-lintasan dengan sudut kemiringan berbeda. 6. Untuk peningkatan kecepatan eksekusi dan meminimalisasi kapasitas memori pemograman sebaiknya menggunakan metode larik (array) pada pemograman robot cerdas semut.
110
DAFTAR PUSTAKA
Ulum, Bahrul. Algoitma Semut. http://ienx.wordpress.com/2007/06/04/algoritma-semut, 24 November 2009.
Yahya, Harun. Menjelajah Dunia Semut . http://www.harunyahya.com/indo/buku/semut01.htm, 24 November 2009.
Wijaya, Putu, S.T. Rancang Bangun Robot Mobil Beroda Tiga Menggunakan Pengendali PID . Skripsi Program S1 Teknik Elektro Universitas Sam Ratulangi. Manado.
Ogata, Katsuhiko. 1995. Teknik Kontrol Automatik (Sistem Pengaturan) . Erlangga. Jakarta.
Pitowarno, Endra. 2006. Robotika : Desain, Kontrol, dan Kecerdasan Buatan .ANDI.Yogyakarta.
Sigit, Riyanto. 2007. Robotika, Sensor, & Aktuator . Graha Ilmu. Yogyakarta.
Sarifuddin . Motor Servo.http://elektrougm.blogspot.com/2009/01/mengaktifkan-motor-servodengan-bascom.html, 22 Januari 2009.
Siswanto. Bab I Pendahuluan . webdosen.bl.ac.id/dosen/930011/Kuliah/buku_AI.PDF, 2000.
8-bit Microcontroller with 16K Bytes In-System Programmable Flash.
www.atmel.com/dyn/resources/prod_documents/doc2466.pdf, Agustus 2007.
HS-311 Servo Motor. http://www.imagesco.com/servo/motors/HS-311.html , 2007.
Sigit, Riyanto.2007.Workshop sensor dan aktuator. Workshop Robotika 2007 Politeknik Elektronika negeri Surawaya-ITS.Surabaya.
104
Setiawardhana.2007. Sensor Proximity. Workshop Robotika 2007 Politeknik Elektronika negeri Surawaya-ITS.Surabaya.
Dt-avr Low Cost Micro System . http://www.riskydigital.com/index2.php?option=com_content
&do_pdf=1&id=442, 17 Oktober 2009.
Manual Dt-Avr – Micro. www.innovativeelectronics.com/.../manual/Manual%20DT-
AVR%20Low%20Cost%20Micro%20System.pdf, 2007.
Manual SPC DC. Motor. http://pdfdatabase.com/download_file_i.php?file=13560578&desc
=Manual+SPC+DC+Motor+.pdf, 2007
Soebhakti, Hendawan, Membuat Robot Tidak Susah. http://www.hendawan.wordpress.com, 15 Mei 2008.
Roda gila. http://id.wikipedia.org/wiki/Roda_gila, 24 Maret 2007
105
LAMPIRAN 1
Listening Program Robot Cerdas Semut Titik A Ke Titik B
/***************************************************** This program was produced by the CodeWizardAVR V2.03.4 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 10/6/2009 Author : Company : Comments: Chip type : ATmega16 Program type : Application Clock frequency : 4.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #define sensor PINA #define skixx PINA.0 #define skix PINA.1 #define ski PINA.2 #define ska PINA.3 #define skax PINA.4 #define skaxx PINA.5 #define m1 PORTC.0 #define m2 PORTC.2 #define a1 PORTC.1 #define a2 PORTC.3 #include bit xx; unsigned char x,lpwm,rpwm, ab1,ab2,ab3,ab4,ab5,ab6,ab7,ab8, ac1,ac2,ac3,ac4,ac5,ac6,ac7,ac8,ac9,ac10,ac11,ac12, ad1,ad2,ad3,ad4,ad5,ad6,ad7,ad8, ae1,ae2,ae3,ae4,ae5,ae6,ae7,ae8, af1,af2,af3,af4,af5,af6,af7,af8, ag1,ag2,ag3,ag4,ag5,ag6,ag7,ag8,ag9,ag10,ag11, ah1,ah2,ah3,ah4,ah5,ah6,ah7,ah8,ah9,ah10, ai1,ai2,ai3,ai4,ai5,ai6,ai7,ai8,ai9,ai10,ai11,ai12, #include // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { // Place your code here x++; if(x>=rpwm)PORTC.0=1; else PORTC.0=0; if(x>=lpwm)PORTC.2=1; else PORTC.2=0; TCNT0=0xFF; 113
}
void kiri() { unsigned int i; lpwm=255; rpwm=255; // Kecepatan pelan delay_ms(200); // Robot dimajukan sedikit m1=0;a1=0; // Motor kanan maju m2=0;a2=1; // Motor kiri diam for(i=0;i<=1000;i++) while (!skixx||!skix) {}; for(i=0;i<=1000;i++) while ( skixx|| skix) {}; lpwm=0; rpwm=0; // Robot berhenti } void kanan() { unsigned int i; lpwm=255; rpwm=255; // Kecepatan pelan delay_ms(200); // Robot dimajukan sedikit m1=0;a1=1; // Motor kiri diam m2=0;a2=0; // Motor kanan maju for(i=0;i<=1000;i++) while (!skaxx||!skax) {}; for(i=0;i<=1000;i++) while ( skaxx || skax) {}; lpwm=0; rpwm=0; // Robot berhenti } void putar() { unsigned int i; lpwm=255; rpwm=255; // Kecepatan pelan delay_ms(200); // Robot dimajukan sedikit m1=0;a1=0; // Motor kanan maju m2=0;a2=1; // Motor kiri mundur for(i=0;i<=1000;i++) while (!skixx||!skix) {}; for(i=0;i<=1000;i++) while ( skixx||skix) {}; lpwm=0; rpwm=0; // Robot berhenti lpwm=255; rpwm=255; // Kecepatan pelan delay_ms(200); // Robot dimajukan sedikit m1=0;a1=0; // Motor kanan maju m2=0;a2=1; // Motor kiri mundur for(i=0;i<=1000;i++) while (!skixx||!skix) {}; for(i=0;i<=1000;i++) while ( skixx||skix) {}; lpwm=0; rpwm=0; // Robot berhenti } void stop() { unsigned int i; rpwm=0; lpwm=0; m1=1; m2=1; a1=0; a2=0; for(i=0;i<1000;i++) while((skixx && skix && ski && ska && skax && skaxx)!=1); for(i=0;i<1000;i++) while((skixx && skix && ski && ska && skax && skaxx)==1); lpwm=0; rpwm=0; 114
} void diam() { rpwm=0; lpwm=0; m1=1; m2=1; a1=0; a2=0; } void lurus() { if (skixx==1) //000001 {rpwm=255; lpwm=0; a1=0; a2=0; } if (skixx && skix==1) //000011 {rpwm=255; lpwm=50; a1=0; a2=0; } if (skix==1) //00010 {rpwm=255; lpwm=100; a1=0; a2=0; } if (skix && ski==1) //000110 {rpwm=255; lpwm=150; a1=0; a2=0; } if (ski==1) // 000100 {rpwm=255; lpwm=200; a1=0; a2=0; } if (ski && ska==1) // 001100 {rpwm=255; lpwm=255; a1=0; a2=0; } if (ska==1) // 001000 {rpwm=200; lpwm=255; a1=0; a2=0; } if (ska && skax ==1) //011000 {rpwm=150; 115
lpwm=255; a1=0; a2=0; } if (skax ==1) //010000 {rpwm=100; lpwm=255; a1=0; a2=0; } if (skaxx && skax==1) //110000 {rpwm=50; lpwm=255; a1=0; a2=0; } if (skaxx==1) //100000 {rpwm=0; lpwm=255; a1=0; a2=0; } } void scan_count(unsigned char count) { unsigned int i; unsigned char co=0; while(co
stop();
} void AFEDCB() //jarak { ab3=150; //jarak ab3" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik e lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik d lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik c lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); } void AFEHIDCB() //jarak { ab4=210; //jarak ab4" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik e lpwm=0;rpwm=0; kanan(); lpwm=0;rpwm=0; scan_count(1); //titik h lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik i lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik d lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik e lpwm=0;rpwm=0; 117
kiri(); lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); } void AFGHIDCB() //jarak { ab5=210; //jarak ab6" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik g lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik h lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik i lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik d lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik c lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); } void AFGHIDEB() //jarak { ab6=210; //jarak ab7" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik g lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik h lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; 118
scan_count(1); //titik i lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik d lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik e lpwm=0;rpwm=0; kanan(); lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); } void AFGHEB() //jarak { ab7=150; //jarak ab8" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik g lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik h lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik e lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); } void AFGHEDCB() //jarak { ab8=210; //jarak ab9" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik g lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik h lpwm=0;rpwm=0; 119
kiri(); lpwm=0;rpwm=0; scan_count(1); //titik e lpwm=0;rpwm=0; kanan(); lpwm=0;rpwm=0; scan_count(1); //titik d lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik c lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); } void pilihan_ab(){ if(ab1<=ab2||ab3||ab4||ab5||ab6||ab7||ab8) AB(); else AFEB(); AFEDCB(); AFEHIDCB(); AFGHIDCB(); AFGHIDEB(); AFGHEB(); AFGHEDCB(); } void titik_a() {diam(); if (PINB.1 == 0) {pilihan_ab();} if (PINB.2 == 0) {pilihan_ac();} if (PINB.3 == 0) {pilihan_ad();} if (PINB.4 == 0) {pilihan_ae();} if (PINB.5 == 0) {pilihan_af();} if (PINB.6 == 0) {pilihan_ag();} if (PINB.7 == 0) {pilihan_ah();} if (PINC.6 == 0) {pilihan_ai();} } 12
void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P PORTA=0xFF; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P PORTB=0xFF; DDRB=0x00; // Port C initialization // Func7=Out Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=P State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x40; DDRC=0xBF;
// Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 15.625 kHz // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x04; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; 121
TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x03; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // Global enable interrupts #asm("sei") while (1) { // Place your code here titik_a(); }; }
122
LAMPIRAN 2
Data Sheet ATMEGA16
123
124
LAMPIRAN 3 Data Sheet L293D
125
126
127
LAMPIRAN 4
Petunjuk Penggunaan robot cerdas semut
1. Menyalakan tegangan sumber 12 Volt robot cerdas semut dengan menekan sakelar ON/OFF pada sebelah kanan robot. robot. 2. Menentukan titik asal robot cerdas semut yaitu titik A, B, C, D, E, F, G, H atau I dengan menekan push button sebagai titik tujuan kemana robot cerdas semut akan bergerak. (untuk menentukan titik asal robot cerdas semut pada saat awal pemograman Code Vision AVR C ) 3. Robot cerdas semut akan bergerak dari titik asal dan berhenti di titik tujuan yang diinginkan.
128
RIWAYAT HIDUP
Penulis bernama lengkap Muhamad Dwisnanto Putro, anak kedua dari dua bersaudara. Lahir di Manado pada tanggal 14 Maret 1988. Dengan alamat jalan camar 3 kelurahan Malendeng, kecamatan Tikala Manado Sulawesi Utara Sekolah pertama tempatnya belajar adalah TK Islamic centre. selanjtutnya, melanjutkan ke sekolah dasar di SDN 54 Manado, SLTP N. 1 Manado (1999-2002) dan meyelesaikan sekolah tingkat atas di SMU N.1 Manado (2002-2005). Tahun 2005, penulis melanjutkan studi di Fakultas Teknik, Jurusan Teknik Elektro, Universitas Sam Ratulangi, Manado. Dua tahun kemudian, yaitu tahun 2005, penulis memilih konsentrasi minat Teknik Kendali. Setelah menyelesaikan Kerja Praktek di PT BINA PLASPAC INDONESIA, penulis memutuskan untuk menulis Tugas Akhir mengenai robot line follower yaitu robot cerdas semut. Selama kuliah, penulis aktif dalam organisasi kemahasiswaan BT-FATEK UNSRAT (Badan Tadzkir Fakultas Teknik Unsrat), pernah menjabat sebagai coordinator sarana prasarana (2007-2008), selain itu aktif juga dalam organisasi ekstra
HMI
MANADO
(Himpunan
Mahasiswa
Islam).
Dalam
organisasi
kemahasiswaan intra kampus universitas sam ratulangi pernah menjabat sekertaris komisi
hubunngan
masyarakat
MPM
UNSRAT
(Majelis
Permusyawaratan
Mahasiswa) tahun 2008-2009. penulis juga pernah menjabat sebagai koordinator umum praktikum dan laboratorium teknik kendali tahun 2008-2009. Dalam bidang akademik penulis pernah mengikuti workshop kontes robot Indonesia yang diadakan di PENS (Politeknik Elektronika Negeri Surabaya) pada tahun 2007, pelatihan PLC (Program Logic Controler) LSIS-LG tahun 2009 dan pelatihan loka karya kontes robot Indonesia dan kontes roket Indonesia yang diadakan di Makassar yang diselenggarakan oleh DP2M-DIKTI tahun 2009.