IMPLEMENTASI MIKROKONTROLER PIC 16F877A DALAM PERANCANGAN ROBOT OBSTACLE AVOIDANCE HARMON VICKLER D. LUMBANRAJA, S.T., M.Kom (SEKOLAH TINGGI ILMU EKONOMI SURYA NUSANTARA)
ABSTRAK Dalam pemrograman robot ini digunakan mikrokontroler PIC16F877A dan perangkat lunak yang digunakan adalah microc dan Microbrn. Sedangkan bahasa mesin yang digunakan adalah bahasa C. Instruksi pertama dilakukan oleh robot setelah on / off ditekan maju, dan jika salah satu saklar ditekan, robot akan melangkah mundur untuk memberikan jarak dalam membuat rotasi, kemudian putar robot untuk menghindari rintangan dan setelah itu, maka robot akan bergerak maju lagi. Semua kondisi ini akan terus berulang-ulang sampai tombol on / off ditekan lagi. Dari hasil pengujian menghindari robot rintangan ini, dapat disimpulkan bahwa robot telah berhasil diprogram dengan baik menghindari rintangan robot dapat menghindari rintangan setelah saklar tertekan oleh penghalang dan kemudian robot ini mengambil rute lain. Dalam membuat program untuk menghindari rintangan robot ini harus dipertimbangkan pemberian waktu tunda untuk instruksi dan dicatat bahwa untuk pemeriksaan dewan harus dirancang sedemikian rupa sehingga akhirnya mendapat hasil yang diinginkan. Dalam penelitian ini, pertama yang dilakukan adalah program robot dan kemudian membuat papan tes baru.
PENDAHULUAN Kemajuan Teknologi di Indonesia sekarang ini semakin berkembang dengan pesat. Dapat dilihat dalam kehidupan sehari-hari banyak orang telah menggunakan alat yang serba “Otomatis”. Mulai dari dunia industri, kedokteran, bahkan pekerjaan rumah tangga. Hal ini dikarenakan alat tersebut dapat mempermudah pekerjaan. Keterlibatan setiap orang dalam penggunaan teknologi sekarang ini semakin meningkat. Pada umumnya dalam setiap kegiatan ataupun aktifitas manusia selalu menggunakan teknologi. Seni, budaya, pekerjaan, kesenangan kebanyakan sudah dimasuki dunia teknologi. Tidak bisa dipungkiri bahwa teknologi banyak membantu manusia dalam kehidupannya. Salah satu wujud kontribusi yang diberikan oleh teknologi adalah memberikan kepuasan kepada pemakai ataupun pengguna teknologi itu sendiri. Salah satu aspek perkembangan teknologi adalah robotic. UNIVERSITAS ADVENT INDONESIA dalam perkembangan teknologinya sudah mulai mengembangkan robotik, hal ini terlihat dari beberapa mahasiswa teknologi informasi dalam penyusunan tugas akhirnya meneliti mengenai robotik. Oleh karena itu penulis merasa perlu untuk melakukan penelitian yang belum pernah ada di UNAI dalam hal ini adalah melalui perancangan robot dengan judul : IMPLEMENTASI MIKROKONTROLER PIC 16F877A DALAM PERANCANGAN ROBOT OBSTACLE AVOIDANCE . Identifikasi Masalah Penulis mengidentifikasikan beberapa masalah yang terjadi dalam penelitian ini sebagai berikut: 1. Bagaimana memprogram mikrokontroler? 2. Bagaimana robot dapat menghindari penghalang pada saat ada benda yang menghalangi? 3. Bagaimana membuat program yang baik untuk robot obstacle avoidance? Batasan dan Rumusan Masalah 1. Batasan Masalah Pembatasan masalah ini digunakan untuk mempersempit ruang lingkup penelitian, sehingga pembahasan tidak meluas. Adapun batasan masalahnya adalah sebagai berikut: a. Dalam penelitian, penulis menggunakan mikrokontroler jenis PIC 16F877A. b. Peneliti membatasi penggunaan bahasa dalam pemrogramannya yaitu Bahasa C. c. Robot menggunakan dua buah saklar yang berfungsi sebagai acuan untuk pengambilan keputusan. d. Penelitian berorientasi pada cara kerja robot bukan pada sistem elektronikanya. 2. Rumusan Masalah Melihat pentingnya pengetahuan mengenai robot pada dunia yang sudah mulai dikuasai teknologi ini, maka penulis berusaha melakukan terobosan teknologi, yaitu dengan membuat penelitian mengenai robot “obstacle avoidance”. Dimana robot ini bergerak sesuai dengan PWM (pulse width modulation) yang diberikan sebagai pulsa penggerak roda motor, dan dua saklar di depan sebagai acuan pemberi keputusan bagi robot. Maksud dan Tujuan Berdasarkan identifikasi masalah di atas maka maksud penelitian ini adalah: 1. Untuk mengetahui cara memprogram mikrokontroler.
2. Untuk mengetahui bagaimana robot dapat menghindari penghalang pada saat ada benda yang menghalangi? 3. Untuk mengetahui program yang baik dalam pembuatan robot obstacle avoidance. Metode Penelitian Dalam melakukan penelitian ini maka, metode-metode yang digunakan pada skripsi ini adalah sebagai berikut: 1. Mencari dan menemukan referensi-referensi, buku-buku, artikel-artikel serta berbagai tulisan termasuk situs-situs yang mendukung mengenai materi-materi penelitian ini. 2. Konsultasi dengan ahli yang professional dalam bidang robotika. Penelitian dilakukan dengan melakukan serangkaian uji coba untuk menggerakkan robot.
TINJAUAN PUSTAKA Mikrokontroler Menurut Iswanto (2008:1) “Mikrokontroler merupakan chip cerdas yang menjadi trend dalam pengendalian dan otomatisasi, terutama di kalangan mahasiswa. Dengan banyak jenis keluarga, kapasitas memori, dan berbagai fitur, mikrokontroler menjadi pilihan dalam aplikasi prosesor mini untuk pengendalian skala kecil”. Cara menggunakan mikrokontroler Cara menggunakan mikrokontroler terbilang sangat mudah. Kita dapat membeli mikrokontroler kosong dari pasar, lalu kita isi program kedalamnya dengan menggunakan software programmer dan downloader. Lalu mikrokontroler siap digunakan. Karena itu, dalam persiapan untuk menggunakannya, harus dipersiapkan juga beberapa software yang diperlukan. Tetapi untuk mendapatkan software ini boleh dikatakan sangat mudah karena semua yang kita perlukan ada di internet. MIKROKONTROLER PIC 16F877A PIC16F877A merupakan mikrokontroler yang sudah cukup lama di release, sekitar tahun 1999. Mikrokontroler Microchip PIC16F877A memiliki sejumlah fitur, seperti: •
8k program memory (14 bits)
•
256 bytes eeprom
•
8 channel Analog to Digital Converter
•
33 pin I/O
•
2 channel PWM
Dengan kristal 20MHz yang menghasilkan kecepatan eksekusi rata-rata 200 nanodetik, board ini ideal untuk beragam aplikasi termasuk aplikasi robotik. PERANCANGAN SISTEM Blok Diagram
Dalam penelitian ini sistem yang rancang adalah robot obstacle avoidance yang diimplementasikan dengan dengan pengendalian (kontroler) menggunakan mikrokontroler PIC 16F877A.
Gambar 3.1 Blok diagram rangkaian sistem robot Gambar blok diagram sistem robot tersebut menggunakan 2 buah saklar, 1 buah driver relay dan dua buah motor DC. Keterangan gambar di atas adalah sebagai berikut: •
•
• •
Saklar Saklar merupakan kunci dalam perancangan robot ini, karena dalam pengambilan keputusan, robot ini menunggu kejadian dari dua buah saklar di depan. Driver Driver merupakan rangkaian driver H-bridge relay, driver ini berfungsi memperkuat arus dan mengatur putaran roda motor 1. Motor 1 Motor 1 merupakan motor penggerak robot yang terletak pada bagian sisi kanan robot. Motor 2 Motor 2 merupakan motor penggerak robot yang terletak pada bagian sisi kiri robot.
Skematik rangkaian elektronik mikrokontroler 16F877A
Gambar 3.1 Skematik Board PIC 16F877A
Driver L293D Driver yang digunakan pada rangkaian robotik ini adalah L293D dimana kaki-kaki pinnya terhubung dengan mikrokontroler dan kaki-kaki lainnya terhubung dengan kedua motor DC. Frekuensi yang dapat diterima oleh motor driver L293D adalah maksimal 5000 Hz. Pada motor inilah kita mengumpankan sinyal PWM (pulse Width Modulation) dan perlu diingat dimana apabila mengumpankan sinyal PWM yang melebihi kemampuan maksimum driver ini akan menyebabkan kerusakan pada driver tersebut.\
Perintah pada Mikrokontroler Port I/O dalam pic bisa digunakan sebagai input dan output (dua arah). Kondisi sebagai input atau output ditentukan oleh konfigurasi pada register TRIS. Sebagai contoh, untuk mengkonfigurasi PORT B sebagai output, maka TRISB diberikan nilai 0b00000000. Untuk mengkonfigurasi PORT B sebagai input, maka TRISB diberikan nilai 0b11111111. PORT = untuk pemberian nilai awal pin-pin yang ada pada sebuah port. TRIS = untuk konfigurasi nilai PORT, apakah sebagai input atau output. Untuk membaca input digital dari PIC, terdapat beberapa prosedur yang harus dilakukan. Misalnya, kita ingin membaca data digital dari PORTD, maka kita harus mengkonfigurasi semua pin pada PORTD sebagai input. TRISD = 0b11111111; Bila hanya PORT D1 dan D0 saja sebagai input, sementara port lain sebagai output, maka perintahnya adalah: TRISD = 0b00000011; Atau bisa juga dengan perintah: TRISD.F0 = 1; TRISD.F1 = 1; Untuk port yang memilki dua fungsi: digital dan analog, secara default akan dikonfigurasi sebagai port analog. Untuk merubah fungsi, digunakan perintah ADCON1: ADCON1 = 0; // seluruh input menjadi analog ADCON1 = 6; // seluruh input menjadi digital IMPLEMENTASI Pemrograman Mikrokontroler Adapun software-software yang digunakan adalah: MicroC, Microbrn, PL-2303 Driver installer. Sistem Kerja Dalam dunia komputer pada umumnya, sistem kerja itu dibagi dalam 3 bagian. Yaitu sistem input, sistem proses, sistem output. Sistem input adalah masukan berupa data ataupun program yang akan diproses oleh komputer. Sistem proses merupakan hal penting didalam sistem
komputer dimana tugas utamanya adalah mengontrol keseluruhan sistem komputer selama pengolahan data berlangsung. Sistem output adalah tampilan hasil pengolahan data yang dilakukan oleh mikrokontroler. Sistem Input input yang digunakan adalah dua buah saklar didepan robot. Kiri dan kanan. Saklar ini digunakan untuk menghindari penghalang. Karena itu dalam pembuatan robotic ini, dibuat dua buah saklar di depan kiri dan kanan, dimana saklar ini akan tertabrak dan switch ini akan tertekan, saklar akan memberikan arus sehingga memberikan nilai “1”. Dan nilai “1” ini terbaca oleh mikrokontroler hanya sekitar 200 nanodetik. Dengan program yang diintegrasikan kedalam mikrokontroler maka akan memberikan respon sesuai dengan yang diinginkan. Sedangkan bilamana saklar tidak tertekan dan tidak menghasilkan arus, maka nilainya tetap “0” dan ini memberikan juga pengaruh kepada mikrokontroler. Sistem Proses Sistem proses merupakan hal penting didalam sistem komputer dimana tugas utamanya adalah mengontrol keseluruhan sistem komputer selama pengolahan data berlangsung. Dan sistem proses ini bertugas mengeluarkan output sesuai dengan input yang didapat tetapi tetap berdasarkan program yang telah diintegrasikan di dalamnya. Sistem Proses Sistem output adalah tampilan hasil pengolahan data yang dilakukan oleh mikrokontroler. dan output pada robot obstacle avoidance ini adalah berputarnya motor sesuai dengan input yang diterima. Dan output ini dikendalikan oleh driver L293D. Tabel 4.2 Keterangan Perintah Pada Pin-pin PIN D1
PIN C3
PIN D0
PIN C0
KETERANGAN
0
1
0
1
MAJU
1
0
1
0
MUNDUR
0
1
0
0
TURNING LEFT
0
0
0
1
TURNING RIGHT
0
1
1
0
SPIN LEFT
1
0
0
1
SPIN RIGHT
0
0
0
0
STOP
Syntax yang Digunakan Serta Pengertiannya ADCON1=6; artinya seluruh input menjadi digital TRISA.F3 = 1; artinya konfigurasi PORT A3 sebagai input TRISA.F5 = 1; artinya konfigurasi PORT A5 sebagai input TRISC = 0; artinya konfigurasi PORT C sebagai output. TRISD = 0; artinya konfigurasi PORT D sebagai input. PORTC = 0; artinya nilai awal PORT C adalah 0. PORTD = 0; artinya nilai awal PORT C adalah 0.
PWM1_Init(5000); PWM2_Init(5000);
untuk mengaktifkan fungsi PWM pada port C2 sebesar 5000 Hz untuk mengaktifkan fungsi PWM pada port C1 sebesar 5000 Hz
PWM1_Start(); untuk memulai PWM pada port C2 PWM2_Start(); untuk memulai PWM pada port C1 PWM1_Change_Duty(200); mengubah duty ratio PWM C2. PWM2_Change_Duty(200); mengubah duty ratio PWM C2.
KESIMPULAN Kesimpulan Berdasarkan hasil penelitian yang telah dilakukan maka penulis menyimpulkan bahwa: Robot telah berhasil diprogram dengan baik, Robot Obstacle Avoidance dapat menghindari penghalang setelah saklar tertekan oleh penghalang tersebut dan kemudian robot ini mengambil jalur lain, Dalam pembuatan program untuk robot obstacle avoidance ini harus diperhatikan pemberian delay waktu untuk melakukan instruksi. Saran Untuk robot obstacle avoidance ini bisa digunakan infra red atau alat sensor lainnya. Dan diharapkan untuk pengembangan selanjutnya diberikan goal sehingga fungsi robot dapat dilihat sesuai hasil akhir yang didapat setelah tujuannya tercapai.
DAFTAR PUSTAKA
Budiharto, Widodo. (2004). Cetakan kedua. Interfacing Komputer dan Mikrokontroler, Jakarta: PT ElexMediaKomputindo. Frieyadie. (2005). Panduan Pemrograman C++, Yogyakarta: Andi. Gumawang, Atang. (2006). Edisi revisi. Belajar Merakit Komputer, Bandung: Informatika. Iswanto. (2008). Cetakan pertama. Design dan Implementasi Sistem Embedded Mikrokontroler ATMega8535 dengan Bahasa Basic, Bandung: Informatika. Winoto, Ardi. (2008). Cetakan Pertama. Mikrokontroler AVR ATmega8/32/16/8535 dan Pemrogramannya dengan Bahasa C pada WinAVR, Bandung: Informatika. http://edukasi.nextsys.web.id http://id.wikipedia.org/wiki/dioda