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
i
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
ii
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. Jane Litouw,ST NIP: 19670510 199702 1 001 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 :
iii
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”
iv
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
v
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
vi
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 MIKROKONTROLER AVR ATMEGA 16
UNTUK MENENTUKAN LINTASAN TERPENDEK ” . Penulis 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 (pengorbanan
kalian tidak sia-sia….)
vii
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
viii
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 PENDAHULUAN
1.1. Latar Belakang ...................................................................... 1
1.2. Rumusan Masalah................................................................. 2
1.3. Batasan Masalah…............................................................... 2
1.4. Tujuan………………............................................................ 2
1.5. Manfaat……………….......................................................... 3
BAB II 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
ix
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
x
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
Robot Cerdas Semut……………………………….. 72
3.6. Lintasan Robot Cerdas Semut………………………………. 73
3.7. Perancangan Robot Secara Keseluruhan……………………. 73
BAB IV 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
xi
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
4.4.1. Pembahasan Sistem Input…………………………….. 105
4.4.2. Pembahasan Sistem Output…………………………… 106
4.4.3. Pembahasan Strategi Robot Cerdas Semut…………… 107
BAB V PENUTUP
5.1. Kesimpulan……………………………………………………….. 109
5.2. Saran………………………………………………………………. 110
DAFTAR PUSTAKA…………………………………………………………… 111
LAMPIRAN……………………………………………………………………… 113
xii
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…………………………….. 97
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
xiii
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
xiv
DAFTAR GAMBAR Nomor Teks Halaman 2.1 Kontrol Robot Loop Terbuka........................................... 4
2.2 Kontrol Robot Loop Tertutup……………………………… 5
2.3 Kontrol Robot Loop Tertutup ON/OFF............................. 5
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................................................... 10
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.…………... 21
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
xv
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............................................... 49
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
Samping…………………………………………………….. 75
xvi
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
xvii
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
xviii
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
xix
DAFTAR LAMPIRAN
Lampiran 1 Listing Program Untuk mencari lintasan terpendek pada titik A
Lampiran 2 Data Sheet ATMEGA16
Lampiran 3 Data Sheet L293D
1
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.
2
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.
3
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
4
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.
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
Pengontrol
Robot
Referensi Gerak
Hasil Gerak
5
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.
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.
Gambar 2.3. Kontrol Robot Loop Tertutup ON/OFF. (Pitowarno, 2006).
Referensi Gerak
Hasil gerak Sesungguhnya (dibaca oleh sensor)
Pengontrol Robot
Error = Gerak referensi – Gerak aktual
Gerak Aktual
+ -
Pengontrol ON/Off
Robot 1/0 1/0 1/0 1/0
+
-
6
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.
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:
G(s) = Kp H(s) r +
-
u ye
7
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.
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:
θ act (rpm) atau (0+5)V
MOTOR DC
Sensor Kecepatan
Poros motor
y
Sinyal aktuasi
u
θ ref (rpm) atau (0+5)V
error
Kp r +
-
e
+
-
θ act (rpm) atau (0+5)V
MOTOR DC
Sensor Kecepatan
Poros motor
y θ ref (rpm) atau (0+5)V
error
Kp r +
-
e
s. Kd
+
-
Sinyal aktuasi
u
8
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
u +
-
s. Kd
Kp
r +
-
e
θ act (rpm) atau (0+5)V
MOTOR DC
Sensor Kecepatan
Poros motor
y
9
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
10
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. Node-
node 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
11
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.
12
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)
13
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
14
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.
15
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)
16
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 (mamasang mur-baut,
17
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 bi-
ped (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
18
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.
19
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.
20
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.
21
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).
22
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.
ATMEGA 16
23
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)
24
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.
25
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)
26
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.
27
• Dapat dikontrol secara I2C-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 I2C 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
28
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 Enable Enable untuk 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)
29
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
30
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)
31
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),
32
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 presisi-
tunggal
Double 64 2.2E-308 s/d 1.7E+308 Bilangan real presisi-
ganda
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 :
33
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 kata-
katacadangan (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
34
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
35
“^=” 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 identifier konstanta
Contoh: #define MAX 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 :
if (<expression>)<statement>;
Sintaks perintah if ……else…..dapat dituliskan sebagai berikut :
if (<expression>)<statement1>;
else<statement2>;
4. While
Perintah while dapat melakukan looping apabila persyaratannnya benar.
Sintaks perintah while dapat dituliskan sebagai berikut:
nama_variable = nilai_awal;
while(Syarat_loop)
36
{
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 IC AVR yang digunakan pada menu Project – configure - C compiler
- Code Generation.
37
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 ke
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
38
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.
39
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.
Gambar 3.2. Gambaran Sistem Robot Cerdas Semut
Motor servo HS- 311 continous
Sensor Proximity
Mikrokontroler AVR ATMEGA16
Catu Daya 12 Volt
SPC DC Motor
Catu Daya 9 Volt
Catu Daya 5 Volt
9 push button
Mikrokontroler ATMEGA 16
Motor servo continous HS-
311 + -
Sensor proximity
SPC DC motor
Mekanik kaki hex
Pengontrol Aktuator
Sensor
40
16 cm
8 cm
Motor servo continous
Motor servo continous
Sen
sor p
roxi
mity
ph
oto
dio
da
Berdasarkan gambar diatas dapat dilihat dalam robot cerdas semut masing-
masing 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.
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.
41
16 cm
8 cm
16 cm
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.
Gambar 3.5. Robot Cerdas Semut Tampak Atas
Bat
erai
9 V
Bat
erai
12V
SP
C
AB
CDE
FGH
I
1 2
42
16 cm
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.
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.
43
Gam
bar
3.7.
Ske
ma
DT
-AV
R L
ow C
oas
t M
icro
Sys
tem
44
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 rangakaian SPC DC Motor.
45
DT
AV
R L
ow
co
st
mic
rosy
ste
m
PO
RT
C.0
PO
RT
C.1
PO
RT
C.2
PO
RT
C.3
Vcc
Gro
un
d
Gam
bar
3.8.
Ske
ma
SP
C D
C M
oto
r
46
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
47
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
48
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:
49
Gam
bar
3.11
. Ran
gka
ian
Sen
sor
Pro
xim
ity
50
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
51
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.
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.
r
Plat penyambung antar kaki
kaki Bantalan karet
52
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
53
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
54
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
55
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.
56
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
57
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.
58
2. Rutin Inisialisasi
Inisialisasi
sensor,push button
kit dan motor
Simpan Data
00-3fH
00-ffH
00-0fH
Proses masukan
data ke alamat
inisialisasi
End Off
Inisialisasi
sensor,push
button kit dan
motor
Simpan Alamat
00-ffH
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.
59
3. Sub Rutin Persimpangan
Persimpangan
Masukan nilai
persimpangan
Pengulangan
Kondisi sensor
menyala semua
Jalankan robot
sesuai sensor
End Off sub
Persimpanagn
Yes
No
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.
60
4. Rutin Pencarian Lintasan Terpendek
Semua lintasan
Jarak terpendek ?
End Off
Pencarian
lintasan
Terpendek
Tidak
ya
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.
61
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:
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
Sensor
Algoritma dalam program
0 00000000
1 00100000
2 00110000
3 00010000
4 00011000
5 00001000
6 00001100
0
1 2 3 4
5 6
7 8 9
10 11 12
62
7 00000100
8 00000110
9 00000010
10 00000011
11 00000001
12 11111111
Berikut diagram alir pendefinisian pembacaan sensor proximity pada
robot cerdas semut.
No
Yes
No
No
Yes
Yes
Yes
Posisi sensor = 000000
Kondisi = 0
Posisi sensor = 000001
Kondisi = 1
Posisi sensor = 000010
Kondisi = 2
Posisi sensor = 000011
Kondisi = 3
1
Baca Sensor
No
63
No
Yes
Yes
Yes
Yes
Yes
No
No
No
No
Kondisi = 8
2
Posisi sensor = 011000
Kondisi = 7
1
Posisi sensor = 000100
Kondisi = 4
Posisi sensor = 000110
Kondisi = 5
Posisi sensor = 001100
Kondisi = 6
Posisi sensor = 001000
64
No
Gambar 3.21. Diagram Alir Baca Sensor
Yes
Yes
No
2
Posisi sensor = 11000
Kondisi = 9
End off baca
sensor
Yes
No
Posisi sensor = 111111
Kondisi = 12
Yes
No
Posisi sensor = 01000
Kondisi = 10
Posisi sensor = 10000
Kondisi = 11
65
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.
66
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
Sensor
Aksi Robot
Motor Kiri
(PWM)
Motor Kanan
(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
12 Persimpanagn Sesuaikan
strategi
Sesuaikan
strategi
67
1
Berikut merupakan diagram alir pengaturan PWM motor terhadap sensor
pada robot cerdas semut.
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
Kondisi = 4
Kondisi = 3
Kondisi = 0
Jalankan robot sesuai kondisi sensor
Robot Stop
Belok kanan tajam
Kondisi = 1
Belok kanan sedikit tajam
Kondisi = 2
Belok kanan sedang
Belok kanan ringan
68
2
1
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
Kondisi = 9
Kondisi = 8
Kondisi = 5 Belok kanan sedikit ringan
Maju lurus Kondisi = 6
Belok kiri sedikit ringan
Kondisi = 7
Belok kiri ringan
Belok kiri sedang
69
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
End off jalankan
robot
Yes
No
Yes
No
Yes
No
Kondisi =10 Belok kanan Sedikit tajam
Belok kanan Sedikit tajam
Kondisi = 11
Persimpangan Kondisi = 12
2
70
• 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.
71
Berikut ini gambar diagram alir untuk robot cerdas semut bergerak belok
kanan, belok kiri dan stop pada saat menemukan persimpangan.
Robot belok
kanan
Motor kiri
bergerak maju
Motor kanan
Bergerak
Mundur
End Off
Sub Belok
kanan
Robot belok kiri
Motor kanan
bergerak maju
Motor kiri
Bergerak
Mundur
End Off
Sub Belok
kiri
Robot stop
Motor kanan
bergerak diam
Motor kiri
Bergerak diam
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.
72
Gambar 3.24. Diagram Alir Sub Rutin Pushbutton
73
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.
74
Gam
bar
3.26
. Dia
gram
Ske
mat
ik S
iste
m R
obot
Cer
das
Sem
ut
75
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.
76
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:
77
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 Keadaan LED
L1 L2 L3 L4 L5 L6
0 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
78
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;
Untuk pengujian ini menggunakan program Code Vision AVR yang listing
programnya sebagai berikut:
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.
79
Tabel 4.2. Pengujian Gerak Motor DC dengan PWM
No PORTC PWM Motor
DC 1 PWM Motor
DC 2
Keadaan Motor DC
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
11 PORTC.1 = 1 PORTC.3=1
255 255 Mundur cepat Mundur cepat
Listing Program untuk menjalankan motor dengan PWM adalah sebagai berikut:
Listing Program 4.2. Menjalankan Motor DC Dengan PWM
x++; if(x>=rpwm)PORTC.0=0; else PORTC.0=1; if(x>=lpwm)PORTC.2=0;
else PORTC.2=1;
80
Sedangkan listing program dalam pengujian gerak motor DC yaitu:
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:
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 cepat
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
81
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 255 maju cepat 255 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
82
Berikut ini listing program pengujian motor DC dengan PWM dengan input
sensor proximity photodioda.
Listing Program 4.4. Pengujian Motor DC
if (ski && ska==1) // 001100 {rpwm=255; lpwm=255; // maju lurus a1=0; a2=0; } if (ski==0) // 000100 { rpwm=200; lpwm=255; //belok kanan pelan a1=0; a2=0; xx=1; } if (ska==0) //001000 { rpwm=255; lpwm=200; //belok kiri pelan a1=0; a2=0; xx=0; } if (skix && ski==0) // 000110 {while (!ski==1){ rpwm=150; lpwm=255; //belok kanan pelan a1=0; a2=0; xx=1; } } if (skix==0) // 000010 {while (!ski==1){ rpwm=50; lpwm=255; //belok kanan sedang a1=0; a2=0; xx=1; } } if (ska && skax ==0) //011000 {while (!ska ==1){ rpwm=255; lpwm=150; //belok kiri pelan a1=0; a2=0; xx=0; } }
if (skax ==0) //010000 {while (!ska==1){ rpwm=255; lpwm=50; //belok kiri sedang a1=0; a2=0; xx=0; } } if (skixx && skix==0) //000011 {while (!ski==1){ rpwm=50; lpwm=255; //belok kanan sedang a1=0; a2=0; xx=1; } } if (!skixx==0) //000001 {while (skax==1){ rpwm=255; lpwm=0; //belok kanan cepat a1=0; a2=0; xx=1; } } if (skaxx && skax==0) //110000 {while (!ska==1){ rpwm=255; lpwm=50; // belok kiri sedang a1=0; a2=0; xx=0; } } if (!skaxx==0) //100000 {while (skax==1){ rpwm=0; lpwm=255; //belok kanan cepat a1=0; a2=0; xx=0; } }
83
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 Rute/lintasan Jarak (cm) Keterangan
1 2 3 4 5 6 7 8
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
30 90 150 240 240 240 150 240
Rute terpendek Rute terpanjang Rute terpanjang Rute terpanjang Rute terpanjang
84
A
B F
E G
B D
C
B
H H
E II G I
D
C I
B
F BD
I C
B
D
EC
B 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
85
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.
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 Rute/lintasan Jarak (cm) Keterangan
1 2 3 4 5 6 7 8 9 10 11 12
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
60 180 240 180 120 120 180 240 180 180 120 240
Rute terpendek Rute terpanjang Rute terpanjang Rute terpanjang
void AB() { ab1=30; //jarak ab1" lurus(); // jalan lurus lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); // stop }
86
A
F B
C E
F HD
A G
H
E I
D
E C
IC G I
D
E C
EG
DH B
I CA CG I
D
E C
H
I E
B CD
I CA C
D
EC
F BH
C
Gambar 4.4 . Pohon Pencarian Rute Terpendek Titik A Ke Titik C
Dari tabel dan gambar diatas didapat rute terpendek titik A ke titik C yaitu A-B-C dengan jarak 60 cm. berikut ini dapat digambarkan robot bergerak dari titik A ke titik C dengan rute terpendek.
Gambar 4.5. Strategi Penentuan Rute Terpandek Titik A Ke Titik C
87
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.
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 Jarak (cm) Keterangan
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
90 90 90 150 150 150 210 150
Rute terpendek Rute terpendek Rute terpendek Rute terpanjang
void ABC() { ac2=60; //jarak ABC 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; stop(); } //stop
88
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
89
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.
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 Rute/lintasan Jarak (cm) Keterangan
1 2 3 4 5 6 7 8.
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
60 60 120 180 240 120 180 240
Rute terpendek Rute terpendek Rute terpanjang Rute terpanjang
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
90
A
BF
EB
H
I
D
C
B
E
E
A E
E C
D
E I
H
E G
F
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
91
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.
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 Jarak (cm) Keterangan
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
30 90 150 150 210 210 210
Rute terpendek Rute terpanjang Rute terpanjang Rute terpanjang Rute terpanjang
void AFE() { ae1=60; //jarak AFE" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; kiri(); // belok kiri lpwm=0;rpwm=0; scan_count(1); //titik e lpwm=0;rpwm=0; stop(); } //stop
92
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
93
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.
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 Rute/lintasan Jarak (cm) Keterangan
1 2 3 4 5 6 7 8. 9. 10 11.
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
60 120 160 120 240 160 160 120 160 240 160
Rute terpendek Rute terpanjang Rute terpanjang
void AF() { af1=30; //jarak AFE" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik f lpwm=0;rpwm=0; stop(); }
94
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
95
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.
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 Jarak (cm) Keterangan
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
90 90 150 90 150 210 150 210 150 150
Rute terpendek Rute terpendek Rute terpendek Rute terpanjang Rute terpanjang
void AFG() { ag1=60; //jarak AFE" kanan(); //titik a scan_count(1); //titik f lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik g lpwm=0;rpwm=0; stop(); }
96
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
97
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.
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 Rute/lintasan Jarak (cm) Keterangan
1 2 3 4 5 6 7 8. 9.
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
120 120 120 160 160 160 120 120 160
Rute terpendek Rute terpendek Rute terpendek Rute terpendek Rute terpendek
void AFGH() { ah1=90; //jarak AFGH" kanan(); //titik a 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; stop(); }
98
A
BF
E C
D
IE
FB H
G I A G
H
IE
F D
IC
H
E IG
H
IE
EG
DH B
ICC
D
IE
G I
H
EI
DF B
C IC
D
IE
A
Gambar 4.16. Pohon Pencarian Rute Terpendek Titik A Ke Titik I
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 I yaitu A-F-G-H-I dengan jarak 120 cm. berikut ini dapat
digambarkan robot bergerak dari titik A ke titik I dengan rute terpendek.
10. 11. 12.
A-B-C-D-I A-F-G-H-E-B-C-D-I A-B-C-D-E-F-G-H-I
120 240 240
Rute terpendek Rute terpanjang Rute terpanjang
99
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 A-
F-G-H-I.
Listening Program 4.12. Rute A-F-G-H-I
void AFGHI() { ai1=120; //jarak AFGHI" kanan(); //titik a 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 i lpwm=0;rpwm=0; lurus(); lpwm=0;rpwm=0; scan_count(1); //titik i lpwm=0;rpwm=0; stop(); }
100
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.
2.
3.
4.
5.
6.
7.
8.
Titik B ke titik A
Titik B ke titik C
Titik B ke titik D
Titik B ke titik E
Titik B ke titik F
Titik B ke titik G
Titik B ke titik H
Titik B ke titik I
B-A
B-C
B-C-D
B-E
B-E-F
B-E-H-G
B-E-H
B-E-H-I
30
30
60
30
60
90
60
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.
2.
3.
4.
5.
Titik C ke titik A
Titik C ke titik B
Titik C ke titik D
Titik C ke titik E
Titik C ke titik F
C-B-A
C-B
C-D
C-D-E
C-D-E-F
60
30
30
60
90
101
6.
7.
8.
Titik C ke titik G
Titik C ke titik H
Titik C ke titik I
C-B-A-F-G
C-D-I-H
C-D-I
120
90
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.
2.
3.
4.
5.
6.
7.
8.
Titik D ke titik A
Titik D ke titik B
Titik D ke titik C
Titik D ke titik E
Titik D ke titik F
Titik D ke titik G
Titik D ke titik H
Titik D ke titik I
D-C-B-A
D-C-B
D-C
D-E
D-E-F
D-E-F-G
D-I-H
D-I
90
60
30
30
60
90
60
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
102
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.
2.
3.
4.
5.
6.
7.
8.
Titik E ke titik A
Titik E ke titik B
Titik E ke titik C
Titik E ke titik D
Titik E ke titik F
Titik E ke titik G
Titik E ke titik H
Titik E ke titik I
E-B-A
E-B
E-B-C
E-D
E-F
E-F-G
E-H
E-H-I
60
30
60
30
30
60
30
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.
2.
3.
4.
Titik F ke titik A
Titik F ke titik B
Titik F ke titik C
Titik F ke titik D
F-A
F-E-B
F-E-D-C
F-E-D
30
60
90
60
103
5.
6.
7.
8.
Titik F ke titik E
Titik F ke titik G
Titik F ke titik H
Titik F ke titik I
F-E
F-G
F-G-H
F-E-D-I
30
30
60
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.
2.
3.
4.
5.
6.
7.
8.
Titik G ke titik A
Titik G ke titik B
Titik G ke titik C
Titik G ke titik D
Titik G ke titik E
Titik G ke titik F
Titik G ke titik H
Titik G ke titik I
G-F-A
G-H-E-B
G-H-I-D-C
G-H-I-D
G-H-E
G-F
G-H
G-H-I
60
90
120
90
60
30
30
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.
104
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.
2.
3.
4.
5.
6.
7.
8.
Titik H ke titik A
Titik H ke titik B
Titik H ke titik C
Titik H ke titik D
Titik H ke titik E
Titik H ke titik F
Titik H ke titik G
Titik H ke titik I
H-E-B-A
H-E-B
H-I-D-C
H-I-D
H-E
H-E-F
H-G
H-I
90
60
90
60
30
60
30
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.
105
Tabel 4.19. Lintasan Terpendek Untuk Titik I
No Titik asal ke titik tujuan Rute/lintasan terpendek Jarak (cm)
1.
2.
3.
4.
5.
6.
7.
8.
Titik I ke titik A
Titik I ke titik B
Titik I ke titik C
Titik I ke titik D
Titik I ke titik E
Titik I ke titik F
Titik I ke titik G
Titik I ke titik H
I-D-C-B-A
I-D-C-B
I-D-C
I-D
I-D-E
I-D-E-F
I-H-G
I-H
120
90
60
30
60
90
60
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
106
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.
0
1
2
3
4
5
6
7
8
1 2 3 4 5 6 7 8 9 10 11
Motor Kanan
Motor Kiri
Gambar 4.18. Grafik Pengujian Motor DC dengan PWM
Posisi Sensor
Tegangan (V)
107
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
Titik Asal Ke Titik
Tujuan
Kriteria
b m
Completeness
Time complexity
Space complexity
Titik A ke Titik B
Titik A ke Titik C
Titik A ke Titik D
Titik A ke Titik E
Titik A ke Titik F
Titik A ke Titik G
Titik A ke Titik H
Titik A ke Titik I
2
2
2
2
2
2
2
2
8
9
8
9
8
9
8
9
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
256
512
256
512
256
512
256
512
16
18
16
18
16
18
16
18
108
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 Depth-
First 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).
109
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.
110
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.
104
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-servo-
dengan-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.
105
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
113
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 <delay.h> 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 <mega16.h> // 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;
114
} 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;
115
} 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;
116
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<count) { for(i=0;i<1000;i++) while((skixx && skix && ski && ska && skax && skaxx)!=1) lurus(); for(i=0;i<1000;i++) while((skixx && skix && ski && ska && skax && skaxx)==1)lurus(); co++; } } void AB() //jarak { ab1=30; //jarak ab1" lurus(); lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; stop(); } void AFEB() // jarak { ab2=90; //jarak ab2" kanan(); //titik a lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik e lpwm=0;rpwm=0; kiri(); lpwm=0;rpwm=0; scan_count(1); //titik b lpwm=0;rpwm=0;
117
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;
118
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;
119
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;
120
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();} }
121
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;
122
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(); }; }
123
LAMPIRAN 2 Data Sheet ATMEGA16
124
125
LAMPIRAN 3 Data Sheet L293D
126
127
128
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.
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.
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.
PERNYATAAN KEASLIAN TULISAN
Saya yang bertanda tangan di bawah ini:
Nama : Muhamad Dwisnanto Putro
NIM : 050213037
Program Studi : S1
Jurusan : Teknik Elektro
Menyatakan dengan sebenarnya bahwa skripsi yang saya tulis ini benar-benar
merupakan hasil karya saya sendiri; bukan merupakan pengambil-alihan tulisan atau
pikiran orang lain yang saya aku sebagai hasil tulisan atau pikiran saya sendiri.
Apabila di kemudian hari terbukti atau dapat dibuktikan skripsi ini hasil ciplakan,
maka saya bersedia menerima sanksi atas perbuatan tersebut.
Manado, 5 Januari 2010
Yang membuat pernyataan,
Muhamad Dwisnanto Putro