Implementasi Artificial Neural Network Dengan Metoda Back

advertisement
BAB II
DASAR TEORI
2.1 Robot
Pengertian robot secara umum adalah sistem autonomous yang terdapat di dunia
nyata, dapat mengenali lingkungan, dan dapat bertindak berdasarkan hal tersebut
untuk mencapai suatu tujuan. Definisi tersebut merupakan definisi umum saat
pembahasan robot dilakukan. Untuk itu kita perlu membahas tiap bagian dari definisi
tersebut.
Robot adalah sistem yang autonomous. Sebuah robot yang autonomous dapat
bertindak sesuai dengan basis dari keputusannya sendiri, dan tidak dikendalikan oleh
manusia. Mesin-mesin yang pada prakteknya masih dikendalikan manusia meskipun
bentuk fisiknya menyerupai robot tidak dapat dikatakan sebagai robot, mesin
tersebut disebut teleoperated [4]. Kata tersebut terdiri dari 2 (dua) pengertian yaitu
“tele” yang berarti jauh, dan “operated” berarti pengoprasian, jadi arti dari
teleoperate adalah mengoprasikan sistem dari jarak jauh. Seperti yang telah
disebutkan sebelumnya sebuah robot harus memiliki sifat autonomous. Robot dapat
mengambil masukan dan aturan yang berasal dari manusia, tapi tidak secara penuh
dikendalikan oleh manusia.
Sebuah robot adalah sistem yang berbentuk benda dan terdapat di dunia nyata. Kata
terdapat di dunia nyata merujuk pada keadaan dimana robot benar-benar terdapat
pada dunia yang sama seperti manusia, binatang, dan tanaman. Terdapat didunia
nyata berarti mengalami permasalahan yang sama dengan yang dihadapi semua
makhluk hidup lainnya, sebagi contoh mengalami gaya berat, dan hokum-hukum
fisika lainnya. Simulasi robot yang berada di dalam komputer tidak dapat disebut
robot karena mereka tidak pernah menghadapi kenyatataan permasalah yang
komplek dan tidak dapat disederhanakan.
7
Sebuah robot harus dapat mengenali lingkungannya. Pengenalan terhadap
lingkungan yang dihadapi merupakan komponen penting bagi robot. Sama seperti
makhluk hidup lainnya untuk dapat mengenali lingkungan, harus dilengkapi sistem
indra yang berfungsi untuk menerima data keadaan disekelilingnya. Sistem indra
pada robot disebut sensor. Contoh dari sensor yang digunakan pada mobile robot
adalah sensor jarak, suhu, cahaya, dan lainnya.
Sebuah robot harus dapat merespon atau bertindak pada masukan dari sensor. Sebuah
mesin yang tidak dapat merespon (contoh: bergerak) tidak dapat digolongkan sebagai
robot [4].
Sebuah robot harus mampu mencapai suatu tujuan tertentu. Sebuah sistem atau
mesin yang ada pada dunia nyata dan mampu mengenali lingkungannya, tapi dalam
bertindak atau berlaku secara acak tidak dapat disebut sebagai robot. Sebuah rhobot
harus dapat menggunakan informasi dari lingkungan sekitarnya dan memiliki
kemampuan untuk bertindak dengan melakukan sesuatu yang berguna bagi dirinya
sendiri maupun bagi makhluk hidup lain.
Sebuah autonomous mobile robot harus memiliki sistem tenaga, otak, roda, dan
peralatan manipulasi lainnya seperti cakar atau tangan, sehingga tidak bergantung
pada suatu sistem atau mekanisme tertentu untuk melakukan suatu pekerjaan.
Berdasarkan hal-hal diatas sebuah autonomous mobile robot
harus memiliki
kemampuan untuk bergerak, merasa, dan berfikir [5].
2.1.1 Komponen dari Robot
Berdasarkan definisi dari robot yaitu sebagai sistem yang autonomus, berada di dunia
nyata, dapat mengenali lingkungan, dan merespon atau bertindak terhadap hal
tersebut untuk mencapai suatu tujuan maka sebuah robot harus memiliki komponen
seperti fisik, sensor untuk mengenali lingkungan, aktuator untuk melakukan aksi, dan
pengendali sehingga dapat bergerak tampa bantuan manusia.
8
•
Embodiment
Tubuh merupakan komponen paling utama yang diperlukan sehingga suatu sistem
atau mesin dapat disebut sebagai robot. Embodiment berarti memiliki tubuh fisik.
•
Pengindraan
Sensor adalah alat yang digunakan oleh robot untuk mendapatkan informasi tentang
lingkungan disekitarnya. Sebuah robot harus dirancang untuk memiliki sensor yang
tepat sehingga informasi yang didapatkan dapat digunakan untuk menyelesaikan
tugasnya.
•
Aksi
Untuk dapat melakukan aksinya robot harus dilengkapi dengan efektor dan actuator.
Pada makhluk hidup efektor dan aktuator berbentuk kaki, tangan, sayap, dan lainya.
Efektor menggunakan mekanisme dasar, seperti otot dan motor, yang disebut
actuator. Pada robot efektor dan aktuator digunakan untuk bergerak yang disebut
locomotion dan menggenggam objek yang disebut manipulation.
•
Otak
Bila ditinjau dari sisi biologis otak, robot berbeda dengan binatang dan manusia.
Pada robot proses berfikir pada otak tidak membutuhkan tenaga yang cukup besar,
justru tenaga terbesar digunakan untuk menggerakan aktuator. Namun hal ini tidak
berlaku saat otak pada robot melakukan perhitungan robot dan manusia
mengkonsunsumsi tenga yang sama.
•
Otonomi
Pengendali pada robot dapat berupa hardware maupun software, yang berfungsi agar
robot dapat bergerak secara autonomous dengan menggunakan masukan dari sensor
dan informasi lainnya untuk memutuskan tindakan yang akan dikerjakan oleh robot.
Pada satu robot dapat dimungkinkan memiliki banyak pengendali, hal ini dilakukan
karena diperlukan untuk melakukan beberapa aksi secara serentak.
9
Otonomi adalah kemampuan untuk membuat keputusan sendiri dan bertindak
didasarkan pada keputusan tersebut. Pada robot, otonomi berarti keputusan yang
diambil dan dikerjakan oleh robot sendiri, bukan oleh operator manusia.
Dibawah ini adalah salah satu contoh dari komponen-komponen yang harus dimiliki
sebuah robot untuk dapat berinteraksi dengan lingkungan sekitarnya
Gambar 2.1 Robot Component
Suatu sistem yang dapat mengambil keputusan dengan tepat berdasarkan informasi
yang didapatkan dari lingkungan yang dihadapinya disebut cerdas. Pada prakteknya
terdapat 2 jenis robot yang dikelompokan berdasarkan tingkat kecerdasaannya, yaitu
robot bodoh dan cerdas. Kecerdasan tidak diukur dari kapasitasnya dalam
menghitung tapi dari kemapuan untuk memutuskan, mencari tahu untuk mengerjakan
sesuatu dengan memperhitungkan semua variable dan menentukan tindakan yang
tepat. Sebuah robot yang cerdas dapat mengambil keputusan dengan tepat meskipun
lingkungan yang dihadapinya sama sekali baru [5].
10
2.1.2 Struktur Autonomous Mobile Robot
Secara umum, struktur dari sebuah autonomus mobile robot dapat dilihat pada
gambar 2.1.
Gambar 2.2 Struktur Autonomous Mobile Robot
Kemampuan mengenali lingkungan yang dilakukan oleh sensor-sensor akan
memberikan suatu informasi yang akan digunakan oleh pengambilan keputusan yang
dapat berupa pengendali atau prosessor. Setelah pengolahan informasi, keputusan
akan dihasilkan yang kemudian dilaksanakan oleh actuator. Pergerakan actuator
memberikan perubahan pada autonomous mobile robot terhadap lingkungannya.
Proses ini terus berulang seiring dengan perubahan lingkungan yang dihadapi robot,
sehingga dapat dikatakan bahwa robot beradaptasi terhadap lingkungan.
2.2 Pengolahan Citra Digital
Pengolahan citra digital merupakan proses yang bertujuan untuk memanipulasi dan
menganalisis citra dengan bantuan komputer. Pengolahan citra digital memungkinan
penggunaan algoritma yang kompleks untuk memproses citra, oleh karena itu akan
menghasilkan performa yang tinggi pada kasus sederhana.
Citra digital dapat didefinisikan sebagai fungsi dari 2 variable f(x,y) dimana x dan y
adalah koordinat spasial dan nilai f(x,y) adalah intensitas citra pada koordinat
tersebut, hal tersebut diilustrasikan pada gambar di bawah ini.
11
Gambar 2.3 Citra Digital
Teknologi dasar untuk menciptakan dan menampilkan warna pada citra digital
berdasarkan pada penelitian bawa sebuah warna merupakan kombinasi dari tiga
warna dasar, yaitu merah (red) , hijau (green), dan biru (blue) yang biasa disebuat
warna RGB. Komposisi warna RGB tersebut dapat dilihat pada gambar dibawah ini.
Gambar 2.4 Komposisi Warna RGB
12
Sebuah citra diubah kedalam bentuk digital agar dapat disimpan dalam memori
komputer atau media penyimpan lain. Proses pengubahan citra ke bentuk digital
dapat dilakukan dengan bebebrapa perangkat seperti kamera digital, scanner, dan
handcam. Ketika sebuah citra sudah diubah kedalam bentuk digital, bermacammacam proses pengolahan dapat dilakukan pada citra tersebut.
Pengolahan citra digital dapat dilakukan dengan cara-cara berikut:
•
Peningkatan kualitas citra
•
Analisis citra
•
Rekonstruksi citra
•
Restorasi citra
•
Representasi dan permodelan citra
•
Kompresi citra
Pada pengolahan citra digital terdapat 3 tipe pemrosesan yaitu [6]:
•
Pemrosesan level rendah (Low Level Process)
Pada tipe pemrosesan ini operasi yang dilakukan digolongkan pada operasi
primitif, seperti pemrosesan citra untuk mengurangi noise, perbaikan kontras,
dan penajaman citra. Ciri dari pemrosesan level rendah adalah masukan dan
keluarannya sama yaitu citra.
•
Pemrosesan level menengah (Mid Level Process)
Pada tipe pemrosesan ini terdapat tugas yang harus dilakukan seperti
segmentasi citra (membagi citra kedalam daerah-daerah atau objek-objek
tertentu), mendeskripsikan objek-objek untuk kemudian mengubahnya
menjadi bentuk yang sesuai untuk pemrosesan pada komputer, dan klasifikasi
(mengenali objek tertentu). Ciri dari pemrosesan ini adalah masukan yang
digunakan berupa citra, dan keluaran yang dihasilkan berupa atribut-atribut
yang diekstrak dari citra, sebagai contoh garis atau kontur.
•
Pemrosesan level tinggi (High Level Process)
Pada pemrosesan tipe ini pemrosesan dilakukan untuk menjadikan objekobjek yang telah teridentifikasi menjadi lebih berguna, berkaitan dengan
13
aplikasi, dan melakukan fungsi-fungsi kognitif yang diasosiasikan dengan
vision.
2.2.1 Robot Vision
Penglihatan merupakan bagian penting bagi tiap makluk hidup. Hal ini di dasarkan
dari fakta bahwa informasi terbanyak didapatkan dari penglihatan. Namun hal ini
juga memberikan suatu masalah baru yaitu bagaimana mengolah informasi yang
banyak tersebut. Manusia memiliki sistem-sistem saraf penglihatan yang bekerja
sama dengan otak untuk dapat mengolah informasi-informasi tersebut, sedangkan
pada robot penglihatan didapatkan dari sensor-sensor. Informasi-informasi yang
didapatkan dari sensor-sensor tersebut kemudian diolah dengan suatu algoritma
tertentu, yang disebut pemrosesan citra digital (image processing) [7].
Tahap awal dari pengolahan citra digital adalah image collection. Pada tahap ini
kamera menangkap gambar sebagai aliran informasi yang dibaca dari sensor cahaya
pada waktu tertentu dan menyimpannya tiap kali proses scanning pembacaan sensorsensor tersebut selesai dilakukan dan disatukan kemudian sebagai 1 file.
Dalam proses pengolahan citra digital dikenal istilah dasar yaitu pixel dan resolusi.
Pixel adalah titik kecil dari warna yang terlihat pada layar, dan merupakan bentuk
terkecil dari gambar. Resolusi adalah kumpulan dari pixel per ukuran gambar. Ketika
gambar disimpan, tiap pixel akan mengandung informasi berupa warna dan
lokasinya pada gambar tersebut. Selain itu dikenal juga istilah dpi (dots per square
inch) yang menunjuk pada banyaknya pixel dalam 1 inch2 pada gambar.
Resolusi berbanding lurus dengan banyak pixel dan kualitas dari gambar dan besar
proses yang dibutuhkan untuk mengolahnya. Jadi gambar dengan resolusi tinggi
berarti memili banyak pixel dan memiliki kualitas gambar yang tinggi pula, tapi hal
ini mengakibatkan dibutuhkannya proses penglolahan yang lebih rumit. Berdasarkan
hal tersebut, pengolahan citra digital pada robot digunakan citra dengan resolusi
rendah.
14
Gambar dalam pemrosesan citra digital akan disimpan dalam bentuk matriks 2D (2
dimensi) yang merepresentasikan lokasi dari seluruh pixel. Tiap pixel pada citra
memiliki komponen data X dan Y, dan ditiap titik tersebut disimpan nilai warna
pixel. Jika gambar tersebut adalah hitam putih (binary image) maka tiap pixel akan
memiliki nilai 1 atau 0 saja, bila gambar tersebut adalah grayscale maka nilai tiap
pixel memiliki nilai jangkauan warna gradasi dari putih sampai hitam, sedangkan
bila gambar tersebut adalah gambar berwarna maka tiap pixel akan menyimpan 1 set
komposisi nilai yang terdiri dari merah (red), hijau (green), dan biru (blue).
Contoh representasi matrix untuk citra biner dari segitiga adalah:
Gambar 2.5 Matrix Citra Biner Segitiga
Citra diatas memiliki resolusi 7 x 5, dengan menyimpan 1 bit pada tiap lokasi pixel.
Sehingga memori yang digunakan untuk menyimpan citra ini adalah 7 x 5 x 1 = 35
bit.
Contoh representasi matrix untuk citra keabuan 8 bit dari segitiga adalah:
Gambar 2.6 Matrix Citra Keabuan Segitiga
Citra diatas memiliki resolusi 7 x 6, dengan menyimpan 8 bit pada tiap lokasi pixel.
Sehingga memoru yang digunakan untuk menyimpan citra ini adalah 7 x 6 x 8 = 336
bit.
15
Pada robot pemrosesan citra digital dilakukan pada tingkat resolusi rendah. Untuk
mengubah resolusi suatu citra adalah dengan menghilangkan data dari citra, namun
data yang dibuang tidak bisa sembarangan karena dapat menghilangkan data citra
yang penting. Salah satu cara yang sering digunakan adalah dengan merata-ratakan
data nilai suatu pixel terhadap pixel disekitarnya, lalu menggantikan kelompok pixel
tersebut dengan nilai rata-rata tersebut.
Ada beberapa metoda pemrosesan citra digital yang biasa digunakan oleh robot
untuk menyelesaikan tugas-tugasnya, yaitu:
2.2.1.1 Metoda Threshold
Pada metode ini pertama-tama akan ditentukan terlebih dahulu nilai dari tiap kanal
warna yang akan menjadi titik batas (threshold point). Tiap pixel yang memiliki nilai
diatas titik tersbut akan diubah menjadi bernilai 0 dan yang memiliki nilai diatasnya
akan berniai 1. Pemilihan titik batas tersebut dapat dilakukan dengan melakukan
pemilihan secara langsung atau dengan mengkombinasikannya dengan metoda
heuristik, yang akan meningkatkan tingkat kekontrasan dari sebuah citra digital.
Dengan metoda tersebut citra akan dianalisis, kemudai pixel yang terang akan dibuat
menjadi lebih terang lagi, dan pixel yang lebih gelap akan menjadi lebih gelap lagi.
Pemilihan titik batas pada metoda threshold sangat penting karena menentukan
kualitas citra yang dihasilkan.
Metoda ini akan berfungsi sangat baik pada citra dengan warna latar belakang yang
memiliki tingkat kontras yang cukup tinggi jika dibandingkan dengan warna pada
benda atau objek yang akan dikenali. Contoh dari penggunaan metoda threshold
pada pemrosesan citra digital pada robot adalah untuk menentukan bola berwarna
merah pada lapangan pertandingan robot soccer.
16
Gambar 2.7 Pengolahan Citra Digital Menggunakan Metoda Threshold
2.2.1.2 Metoda Deteksi Tepi
Metoda deteksi tepi adalah teknik pemrosesan citra digital dengan melakukan filter
pada citra sehingga hanya bagian tepi objek saja yang akan ditampilkan pada layar.
Metoda ini sangat berguna untuk mengenali bentuk-bentuk benda yang spesifik, line
follower, atau untuk mengenali sudut-sudut dari objek gambar. Secara umum tepi
dari objek dalam citra dinyatakan sebagai titik dengan nilai warna yang berbeda
cukup besar dengan titik disebelahnya. Terdapat 2 mask yang paling umum
digunakan dalam operasi pengloahan citra digital khususnya pada metoda deteksi
objek, yaitu:
1.
Operator Gradien
Operator ini cocok untuk mendeteksi tepi objek yang tajam dimana pixel
dari level keabuan berubah sangat cepat. Operator ini memiliki
kelemahan pada deteksi tepi objek dengan perubahan perlahan dari level
keabuan gelap ke terang, karena menghasilkan tepi yang melebar.
2.
Operator Laplacian
Operator ini cocok untuk mendetksi tepi objek yang perubahaan level
keabuaan dari citra perlahan. Operator ini menggunakan metoda zero
crossing, untuk menentukan garis batas antara hitam dan putih, yang
terdapat pada turunan kedua dari citra yang bersangkutan. Namun metoda
ini memiliki kelemahan karena sangat peka terhadap noise, salah satu
cara untuk mengatasi masalah tersebut adalah dengan menggabungkan
metoda ini dengan metoda threshold.
17
Gambar 2.8 Image Processing Menggunakan Metoda Edge Detection
2.2.1.3 Metoda Deteksi Bentuk Dan Pengenalan Pola
Metoda deteksi objek membutuhkan pemrosesan yang lebih kompleks. Hal ini
ditunjukan dengan dibutuhkannya representasi matematika untuk suatu bentuk
tertentu yang akan dideteksi. Representasi matematika dari bentuk akan ditaruh pada
database untuk kemudian akan dipanggil bila proses deteksi dilakukan.
Metoda ini cukup baik untuk digunakan pada benda dengan bentuk dasar seperti
segitiga, lingkaran, dan kotak. Berbeda bila bentuk yang dideteksi lebih komplek
karena kita perlu menambahkan analisis kemungkinan. Sebagai contoh algoritma
deteksi bentuk digunakan untuk mengenali 10 macam buah, dimana sebagian besar
buah memiliki bentuk dasar bulat. Bila metoda ini langsung digunakan maka
keluaran yang dihasilkan adalah semua buah yang memiliki bentuk hampir sama
akan dideteksi sebagai buah yang sama. Karena itu, perlu ditambahkananya
algoritma untuk menganalisis kemungkinan bentuk dari tiap macam buah.
2.2.1.4 Metoda Deteksi Titik Tengah Massa dan Blob
Blob detection adalah algoritma yang digunakan untuk menentukan apakah suatu
grup dari pixel saling terhung satu sama lain. Metoda ini sangat berguna utnuk
mengidentifikasi objek yang terpisah-pisah pada suatu citra, atau menghitung jumlah
dari suatu objek pada suatu citra.
18
Pada metoda blob detection citra harus di proses dengan metoda threshold terlebih
dahulu, berdasarkan warna yang akan dideteksi. Setelah itu citra dengan warna diatas
nilai threshold dapat dikategorikan sesuai dengan aturan yang telah ditentukan
terlebih dahulu, misal untuk pixel yang memiliki nilai lebih kecil daripada nilai
threshold akan dikelompokan sebagai komponen dari objek yang didetksi, sedangkan
yang diatas dikelompokan sebagai informasi yang tidak penting. Sedangkan untuk
mendapatkan titik berat massa adalah dengan merata-ratakan lokasi dari tiap pixel
dari dengan warna tertentu.
2.2.1.5 Metoda Klasifikasi Pixel
Metoda klasifikasi pixel digunakan untuk melakukan klasifikasi pada tiap pixel
berdasarkan informasi yang dimilikinya sebagai suatu objek tertentu. Pixel dengan
informasi yang berbeda dikenali sebagai objek yang berbeda, sedangkan pixel
dengan informasi yang sama dikenali sebagai objek yang sama. Contoh dari metoda
ini adalah untuk mengenali objek-objek yang memiliki kriteria warna yang spesifik.
Metoda ini berguna untuk road following atau obstacle avoidance.
Gambar 2. 9 Citra Hasil Metoda Klasifikasi Pixel
19
2.2.1.6 Metoda Korelasi Citra
Metoda ini adalah metoda pengenalan objek sederhana dengan melakukan
pencocokan pola. Metoda ini bekerja dengan menyimpan database dari berbagai ciri
citra, dan menghitung kemiripan dari keseluruhan citra.
Di bawah ini adalah contoh pengguna metoda korelasi citra untuk mengenali citra
seekor tupai.
Gambar 2.10 Citra Pengenalan Objek Dengan Metoda Korelasi Citra
2.3 Sensor Kamera CMUcam3
CMUcam3 adalah programmable embedded computer vision sensor yang berbasis
ARM7TDMI. Prosessor utamanya adalah Philips LPC2106 yang dihubungkan pada
sensor kamera CMOS omnivision.
Pemrogram dengan bahasa C dapat
dikembangkan dalam CMUcam3 dengan menggunakan port dari GNU toolchain
bersama dengan beberapa library yang open souce dan beberapa contoh program.
Kode yang dieksekusi dapat di tanamkan pada modul kamera CMUcam3 lewat port
serial.
20
Gambar 2.11 CMUcam3
Fitur-fitur CMUcam3yang dimiliki oleh CMUcam3 diataranya adalah:
•
Resolusi CIF (352x288) RGB sensor cahaya
•
Open Source Development Environment untuk Windows dan Linux
•
Slot MMC Flash dengan driver yang mendukung FAT16
•
4 port Servo kontroler
•
Memasukkan gambar kedalam memory dengan kecepatan 26 frame per detik
•
Software untuk kompresi file JPEG
•
Library dasar untuk manipulasi gambar
Block Diagram dari CMUcam3 adalah:
Gambar 2.12 Blok Diagram CMUcam3
21
Penampang perangkat keras dari CMUcam3 dapat dilihat sebagai berikut.
Gambar 2.13 Perangkat Keras CMUcam3
CMUcam3 dirancang bagi pengguna yang sudah terbiasa dengan dasar pengolahan
citra digital dan terbiasa melakukan pemrograman pada mikrokontroller. Bagi
pengguna yang menginginkan dasar pengolahan citra yang mudah diakses lewat
interface
komunikasi
serial
sederhana
dan
tidak
menginginkan
untuk
mengimplementasikan algoritma sendiri, dapat meng-install suatu program
CMUcam2. Beberapa contoh aplikasi CMUcam3 seperti robotik, pengawasan,
sensor jaringan, pengenalan dan pelacakan objek.
2.4 Mikrokontroller ATmega32
Mikrokontroler AVR
merupakan mikrokontroler 8 bit berbasis arsitektur RISC
(Reduce Instruction Set Computers) produksi Atmel dimana sebagain besar instruksi
dieksekusi dalam satu siklus clock. Secara umum,
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. Dari sisi arsitektur dan instruksi yang digunakan, mereka
dapat dikatakan hampir sama.
22
Arsitektur ATmega32 dapat dilihat pada gambar dibawah ini.
Gambar 2.14 Arsitektur ATmega32
Dari blok diagram fungsional ATmega32 di atas, dapat dilihat bahwa ATmega32
memiliki bagian sebagai berikut:
•
Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D
seperti terlihat pada Gambar 2.9.
•
ADC 10 bit sebanyak 8 saluran dimana saluran ADC menggunakan Port A
•
Tiga buah Timer/Counter dengan kemampuan perbandingan
•
CPU yang terdiri dari 32 buah register (GPR)
•
Watchdog Timer dengan osilator internal
•
SRAM sebesar 2KByte
•
Memori Flash sebesar 32Kbyte dengan kemampuan Read While Write
•
Unit interupsi internal dan eksternal
•
Port antarmuka SPI
•
EEPROM sebesar 1024 Byte
•
Antarmuka komparator analog
•
Modul USART untuk komunikasi serial
23
Fitur – fitur yang dimiliki oleh mikrokontroller ATmega32 adalah:
•
Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16
MHz
•
Kapabilitas memori flash 32 Kbyte, SRAM sebesar 2 Kbyte, dan EEPROM
sebesar 1024 Byte.
•
ADC internal dengan resolusi 10 bit sebanyak 8 saluran
•
Modul komunikasi serial dengan kecepatan maksimal 2.5Mbps
•
Enam pilihan mode sleep menghemat penggunaan daya listrik
Deskripsi pin – pin yang terdapat pada ATmega32 adalah:
Gambar 2.15 Pin-Pin ATmega32
konfigurasi pin ATmega32 dapat dilihat pada gambar di atas. Dari gambar tersebut
dapat dijelaskan secara fungsional penggunaan pin-pin ATmega32 sebagai berikut:
•
VCC
Merupakan pin yang berfungsi sebagai pin masukan catu daya digital (digital
supply voltage)
•
GND
Merupakan pin Ground
•
PORTA (PA0….P07)
Merupakan pin I/O dua arah dan pun masukan ADC. Port A juga menyediakan
resistor pull-up internal
24
•
PORTB (PB0….PB7)
Merupakan pin I/O dua arah dengan resistor pull-up internal dan juga pin dengan
fungsi khusus, yaitu pin untuk Timer/Counter, komparator analog, dan SPI
(Serial Peripheral Interface).
•
PORTC (PC0….PC7)
Merupakan pin I/O dua arah dengan resistor pull-up internal dan juga pin dengan
fungsi khusus, yaitu pin untuk TWI (Two-wire Serial Interface), komparator
analog, dan Timer Oscilator
•
PORTD (PD0….PD7)
Merupakan pin I/O dua arah dengan resistor pull-up internal dan juga pin dengan
fungsi khusus, yaitu pin untuk interupsi eksternal, komparator analog, dan
komunikasi serial.
•
RESET
Merupakan pin yang digunakan untuk me-reset mikrokontroler. Pin ini
merupakan pin dengan konfigurasi active low. Level tegangan rendah (low) yang
diberikan pada pin ini lebih lama dari lebar pulsa akan me-reset mikrokontroler
•
XTAL1
Merupakan pin masukan untuk inverting oscillator amplifier dengan input untuk
clock internal.
•
XTAL2
Merupakan pin keluaran dari inverting oscillator amplifier
•
AVCC
Merupakan pin yang digunakan sebagai supply tegangan bagi PORTA dan juga
ADC.
•
AREF
Merupakan pin masukan tegangan referensi ADC.
2.5 Motor Servo
Motor pada umumnya berputar secara kontinu hanya pada 1 (satu) arah tertentu. Tapi
pada robot biasanya dibutuhkan motor yang dapat bergerak pada suatu posisi tertentu
saja seperti pada lengan robot.
25
Motor yang dapat menggerakan shaft-nya pada suatu posisi tertentu disebut motor
servo. Kebanyakan servo digunakan pada mainan anak-anak, seperti menyesuaikan
pengendalian pada mobil remote-controlled (RC car), dan posisi sayap pada pesawat
remote-control.
Kebanyakan orang menganggap motor DC berbeda dengan motor servo. Hal itu
tidak sepenuhnya benar sebab faktanya motor servo disusun dari motor DC dengan
beberapa tambahan komponen lainnya, seperti:
•
Reduction gear untuk mengurai kecepatan motor dan memperbesar torque
•
Sensor posisi untuk motor shaft, untuk mengetahui seberapa besar putaran yang
dilakukan oleh motor untuk sampai pada posisi tertentu
•
Sirkuit elektronik yang mengendalikan motor, untuk mengendalikan putaran
motor dan arah putaran motor
Inti dari pergerakan servo adalah menggerakan shaft pada motor untuk mencapai
suatu posisi tertentu. Pada umumnya, posisi maksimum yang dapat dicapai oleh
motor servo adalah 180 derajat dari titik referensi atau setengah putaran lingkaran.
Jumlah putaran diantara sudut 0 derajat sampai dengan 180 derajat ditentukan oleh
sinyal elektrik. Sinyal dibentuk dari deretan pulsa; ketika pulsa diterima shaft dari
motor akan berotasi, dan bila tidak ada pulsa yang diberikan shaft berhenti bergerak.
Pola pulsa yang dibentuk untuk mengendalikan motor servo disebut waveform.
Besarnya rotasi pergerakan dari shaft pada motor servo
ketika diberikan pulsa
ditentukan oleh lebar pulsa. Makin tinggi periode pulsa yang diberikan, makin besar
rotasi yang dihasilkan. Prinsip kerja ini yang disebut PWM (pulse width modulation)
karena lebar dari pulsa mengatur sinyal. Ketepatan lebar pulsa cukup penting dan
sebaiknya dihidarkan untuk menggunakan pulsa yang tidak stabil. Bila lebar pulsa
yang diberikan meleset dalam hitungan milisekon atau bahkan mikrosekon akan
menyebabkan servo berotasi dengan baik, yang ditandai dengan servo akan berputar
26
ke sudut maksimumnya (180 derajat) dan bergetar, sebaliknya periode pulsa tidak
mempengaruhi pergerakan motor servo.
Gambar 2.16 Contoh Kendali Motor Servo
Pada contoh gambar pengendalian motor servo diatas digunakan frekuensi pulsa
50Hz yang berarti periode 1 (satu) gelombang pulsa adalah 20ms. Berdasarkan
gambar diatas lebar pulsa yang diberikan pada servo menentukan arah dan sudut
putar dari servo. Sebagi contoh, dengan memberi lebar pulsa tepat 1.5ms servo akan
berputar dan mengarah pada posisi tengahnya sedangkan bila lebar pulsa yang
diberikan lebih dari 1.7ms (pada contoh diatas diberikan lebar pulsa 2ms) maka
servo akan bergerak kearah kiri (-90 derajat) dan untuk lebar pulsa kurang dari 0.7ms
servo akan berputar kearah sebaliknya (kanan).
Servo yang digunakan pada tugas akhir ini adalah Hitec HS-322HD dengan
spesifikasi sebagai berikut:
•
Tipe Motor : 3 pole
•
Tipe bearing : nilon
•
Kecepatan : 0.19 / 0.15 sec @ 60 derajat
•
Torka : 3.0 / 3.7 kg.cm
•
Ukuran : 40.00 x 20.00 x 36.50 mm
•
Berat : 43.00 gram
27
Gambar 2.17 Servo Hitec HS-322HD
Gambar 2.18 Konektor Motor Servo Hitect HS-322HD
Konektor motor servo Hitect HS-322HD terdiri dari 3 buah kabel berwarna dengan
spesifikasi:
•
Hitam – ground
•
Merah – supply
•
Kuning – sinyal
28
2.6 Jaringan Saraf Tiruan
Ketertarikan pada jaringan saraf tiruan dimulai setelah McCulloch dan Pitts pada
tahun 1943 memperkenalkan neuron sederhana. Neuron pada jaringan saraf tiruan
direpresentasikan sebagai model biologi dari neuron dan sebagi konsep komponen
untuk sirkuit yang dapat melakukan komputasi [8]. Menurut Fauset (1994) jaringan
saraf tiruan merupakan suatu sistem pemrosesan informasi yang memiliki
karakteristik-karakteristik pemrosesan informasi yang memiliki karakteristikkarakteristik menyerupai jaringan saraf biologi. Madsker dan Liebowitz (1994)
memetakan hubungan antara konsep biologi dan jaringan saraf tiruan yang
digamabarkan pada tabel 1.1 di bawah ini.
Tabel 2.1 Tabel Hubungan Antara Biologi dan Jaringan Saraf Tiruan
Biologi
Jaringan Saraf Tiruan
Soma
Node (simpul)
Dendrite
Input
Axon
Output
Sinaps
Weight (bobot)
Kecepatan Proses Tinggi
Kecepatan Proses Tinggi
Terdiri dari banyak neuron
Beberapa neuron
Jaringan saraf tiruan adalah model komputasi dengan beberapa sifat seperti seperti
mampu beradaptasi atau belajar, pengelompokan, organisasi data, dan operasi yang
dilakukannya didasari pada parallel processing.
Jaringan saraf tiruan dapat melakukan komputasi terhadap semua fungsi yang dapat
dihitung (computable function). Jaringan saraf tiruan dapat melakukan apa yang
dapat dilakukan oleh komputer digital normal.
Pada prakteknya, jaringan saraf tiruan sangat berguna bagi klasifiksai dan
permasalahan-permasalahan yang dapat menolerir ketidaktepatan, yang memiliki
banyak data pelatihan, namun memiliki aturan-aturan yang tidak dapat diaplikasikan
secara mudah.
29
Pembangun sistem artificial intelligent yang didasari pada pendekatan jaringan saraf
tiruan secara umum meliputi langkah-langkah berikut ini [LiMin Fu, 1994] :
1. memilih model jaringan saraf tiruan yang sesuai didasarkan pada sifat dasar
permasalahannya.
2. Membangun jaringan saraf tiruan yang sesuai karakteristik domain
aplikasinya
3. Melatih jaringan saraf tiruan dengan prosedur pembelajaran dari model yang
dipilih
4. Menggunakan jaringan yang telah dilatih sebagai pembuatan inferensi atau
pemecahan masalah.
Sifat-sifat dari jaringan saraf tiruan yang diadaptasi dari jaringan saraf biologis
adalah:
1.
Pemrosesan informasi bersifat local
2.
Memori terbagi atas long term memory yang merupakan bobot
keterhubungan dan short term memory yang dihubungkan neuron ke
sinyal yang dijalarkan
3.
Tegangan pembobotan dapat berubah menurut pengalaman
4.
Neurotrasmitter dari sinap dapat bersifat penyalaan (exitatory) atau
pemadaman (inhibitory)
Jaringan saraf tiruan memiliki 3 karakteristik yang utama yang meniru jaringan
biologis, yaitu:
1.
Arsitektur jaringan
Meupakan pola keterhubungan antara neuron. Keterhubungan neuronneuron inilah yang membentuk suatu jaringan
2.
Algoritma jaringan
Merupakan metoda untuk menentukan nilai bobot hubungan. Ada 2 (dua)
jenis metoda, yaitu metoda pelatihan atau pembelajaran, dan metoda
pengenalan atau aplikasi
30
3.
Fungsi aktivasi
Merupakan fungsi untuk menentukan nilai keluaran berdasarkan nilai
total masukan pada neuron. Fungsi aktivasi suatu algoritma jaringan dapat
berbeda dengan fungsi aktivasi algoritma jaringan lain.
Jaringan saraf tiruan umumnya digunakan untuk menyelesaikan permasalahan
dimana formulasi lengkapnya tidak diketahui, seperti tidak ada model sebab
akibatnya atau representasi matematikanya. Jaringan saraf tiruan menggunakan data
untuk menurunkan suatu pola yang relevan dalam grup yang berbeda.
2.6.1 Arsitektur Jaringan Saraf Tiruan
Secara umum, arsitektur jaringan tiruan terdiri dari beberpa lapisan yaitu:
1.
Lapisan masukan (input layer)
Lapisan masukan merupakan lapisan yang terdiri dari beberpa neuron
yang akan menerima sinya dari luar dan kemudan meneruskannya ke
neuron-neuron lain dalam jaringan. Cara kerja lapisan ini didasari dari
cara kerja sel-sel saraf sensori pada jaringan saraf biologi.
2.
Lapisan tersembunyi (hidden layer)
Lapisan tersembunyi merupakan tiruan dari sel-sel saraf konektor pada
jaringan saraf biologis. Lapisan tersembunyi berfungsi meningkatkan
kemampuan jarinagn dalam memecahkan masalah. Konsekuensi dari
adanya lapisan ini adalah pelatihan menjadi semakin sulit dan lama.
3.
Lapisan keluaran (output layer)
Lapisan keluaran berfungsi menyalurkan sinyal-sinyal keluaran hasil
pemrosesan jaringan. Lapisan ini juga terdiri dari sejumlah neuron.
Lapisan keluaran merupakan tiruan sel-sel saraf motor pada jaringan saraf
biologis.
31
Gambar 2.19 Arsitektur Jaringan Saraf Tiruan[Fundamental of Neural Network]
2.6.1.1 Pengaturan Pembobotan (Training)
Pengaturan pembobotan (training) merupakan karakteristik yang penting pada
jaringan saraf tiruan, hal ini disebabkan oleh terdapat bermacam-macam cara
pembobotan untuk tipe jaringan saraf tiruan yang berbeda. Terdapat 2 (dua) metoda
pelatihan yang paling umum digunakan yaitu:
1.
Supervised training
Metoda ini paling umum digunakan pada saat pengaturan pembobotan
dilakukan. Pada metoda ini sistem akan mendapatkan keluaran yang
dikehendaki dari suatu pola masukan, dan sistem belajar didasarkan pada
selisih output sesungguhnya dengan nilai keluaran yang dikehendaki
2.
Unsupervised training
Pada metoda ini pelatihan dilakukan tampa memberikan nilai keluaran
yang diharapkan, namun dengan metoda ini diharapkan sistem dapat
memetakan ruang vektor input ke ruang vektor keluaran dalam sebuah
map.
Pada tugas akhir ini metoda pelatihan yang digunakan adalah metodak supervise
training
32
2.6.1.2 Neuron
Neuron pada jaringan saraf tiruan dirancang untuk menirukan karakteristik neuron
biologi orde pertama. Secara prinsip, neuron akan menerima satu atau beberapa
sinyal masukan, menghitung berdasarkan activation level, kemudian memberi sinyal
keluaran, yang dapat berupa hasil akhir maupun masukan bagi neuron lainya.
Gambar dibawah ini merupakan diagram dari neuron sederhana.
Gambar 2.20 Diagram Neuron
Berdasarkan gambar diatas terlihat serangkaian input dengan nama x1, x2, x3, …, xn
yang diberikan pada suatu neuron. Input ini secara bersama-sama dikenal sebagai
suatu vektor X yang bersesuaian dengan sinyal yang masuk kedalam sinapsis neuron
biologis. Setiap sinyal akan dikalikan dengna suatu bobot w1, w2, w3, …, wn sebelum
masuk ke blok penjumlahan Sj. Setiap faktor pembobotan bersesuaian dengan
strength penghubung sinapsis biologis tunggal tunggal.
secara bersama-sama teracu
sebagai vector
Faktor pembobotan ini
W. Blok penjumlahan akan
menjumlahkan semua input terboboti secara aljabar dan menghasilkan sebuah
keluaran yang dinotasikan dengan variable v. Pada unit keluaran, variabel X akan
dimasukan kedalam suatu fungsi f tertentu yang disebut fungsi aktivasi untuk
menghasilkan keluaran akhir. Fungsi aktivasi yang digunakan dapat berupa fungsi
linier atau fungsi-fungsi lain yang lebih komplek. Secara matematis, sebuah neuron
dapat digambarkan dengan persamaan sebagai berikut:
33
(2.1)
(2.2)
2.6.1.3 Fungsi Identitas
Sebuah sinyal aktivasi diperlukan oleh suatu neuron untuk menyalakan atau
memadamkan penjalaran sinyal dari neuron tersebut. Sinyal aktivasi dalam jaringan
saraf tiruan detentukan oleh suatu fungsi aktivasi.
Ada beberapa jenis fungsi aktivasi yang digunakan dalam jaringan saraf tiruan
(Fausset, 1994) antara lain:
1.
Fungsi Identitas
Fungsi ini biasanya digunakan pada jaringan saraf tiruan single layer.
Fungsi ini akan menghasilkan nilai yang sama dengan nilai masukannya,
grafik dari fungsi ini berupa garis lurus atau linier. Fungsi ini dapat
dituliskan sebagai berikut:
f (x) = x ⇒∀x
(2.3)
Gambar 2.21 Grafik Fungsi Identitas
34
2.
Fungsi Threshold
Fungsi ini merupakan fungsi indentitas dengan pembulatan yang
bergantung pada parameter pembulatan θ. Untuk θ = 1, fungsi ini hanya
akan menghasilkan nilai 1 dan 0. Dengan demikian, grafik yang
digambarkan akant terlihat seperti tangga pada interval antara 0 dan 1.
Fungsi ini dapat dituliskan sebagi berikut:
(2.4)
Gambar 2.22 Grafik Fungsi Threshold
3.
Fungsi Sigmoid-Biner
Fungsi ini bergantung pada steepness parameter (σ). Agar fungsi ini
menghasilkan nilai yang dibatasi oleh bilangan biner (0 hingga 1) maka
σ=1 dan akan menghasilkan grafik kontinu tidak linier. Fungsi ini dapat
dituliskan sebagai berikut:
(2.5)
35
Gambar 2.23 Grafik Fungsi Sigmodi-Biner
4.
Fungsi Sigmoid-Bipolar
Sama halnya dengan fungsi sigmoid-biner, fungsi ini juga bergantung
pada steepness parameter. Fungsi sigmoid-bipolar yang diperluas hingga
mencapai nilai negatif melalui sumbu x. Dengan demikian, untuk σ=1,
fungsi ini akan menghasilkan nilai keluaran antara -1 sampai +1, fungsi
ini dapat dituliskan sebagai berikut:
(2.6)
Gambar 2.24 Grafik Fungsi Sigmoid-Bipolar
36
2.6.2 Metoda Back-Propagation
Metoda back-propagation dikembangakan oleh Rumelhart, Hinton, dan Williams
pada tahun 1986. Dengan munculnya metoda ini minat pengembangan dan penelitian
mengenai jaringan saraf tiruan mulai bangkit.
Metoda back-propagation
merupakan
metoda pembelajaran
lanjut
yang
dikembangkan dari aturan perceptron dengan meniru algoritma jaringan.
Metoda ini dibagi dalam 2 tahap, yaitu tahap feedforward yang diadaptasi dari
perceptron dan tahap back-propagation error. Perbedaan antara metoda backpropagation dengan perceptron adalah pada arsitektur jaringan, dimana pada
perceptron memiliki jaringan lapis tunggal sedangkan sedangkan back-propagation
memiliki jaringan lapis banyak (multi-layer feed-forward network).
Pada tugas akhir ini metoda back-propagation neural network digunakan untuk
mengenali bentuk suatu objek benda yang disesuaikan dengan spesifikasi peraturan
KRCI 2009.
2.6.2.1 Multi-Layer Feed-Forward Network
Multi-layer perceptron adalah sebuah jaringan saraf tiruan dengan 1 (satu) atau lebih
hidden layer (lapisan perceptron yang berada diantara lapisan masukan dan
keluaran).
Error dari sebuah jaringan lapis banyak (multi-layer neural network) didefinisikan
sebagi berikut:
(2.7)
dengan p adalah suatu pola masukan, d merupakan keluaran yang dikehendaki dan o
adalah keluaran yang sesungguhnya. k menyatakan neuron output ke 1, 2, hingga K.
(2.8)
37
dimana η adalah learning rate dari jaringan saraf tiruan. ωkj menyatakan nilai bobot
yntyk output neuron ke k dari hidden neuron ke j.
Untuk setiap neuron, hasil penjumlahan didapatkan dengan persamaan berikut:
(2.9)
Kemudian output dari neuron ditentukan oleh hasil penjumlahan yang melalui fungsi
aktivasi
(2.10)
Error signal term delta didefinisikan sebagai berikut
(2.11)
Menggunakan aturan rantai, dapat dituliskan
(2.12)
Persamaan perubahan bobot dapat dituliskan kembali menjadi
(2.13)
E merupakan fungsi dari output network, dapat dituliskan sebagai
(2.14)
persamaan dapat dituliskan kembali menjadi
(2.15)
Persamaan 2.7 bila diturunkan menjadi
(2.16)
38
dan persamaan perubahan bobot dapat ditulis kembali
(2.17)
(2.18)
Untuk fungsi aktivasi sigmoid, persamaan delta yang didapatkan adalah
(2.19)
(2.20)
Berikut penurunan rumus untuk hidden layer, untuk hidden neuron ke j dari input
neuron ke i
(2.21)
(2.22)
Perubahan bobot untuk hidden layer didefinisikan sebagi
(2.23)
Error signal term delta sama dengan
(2.24)
dimana
(2.25)
Perhitungan turunan persamaan diatas menjadi
(2.26)
39
persamaan 2.20 dapat ditulis kembali
(2.27)
(2.28)
Perhitungan perubahan bobot pada hidden layer
(2.29)
Untuk fungsi aktivasi sigmoid
(2.30)
40
Download