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