KENDALI LENGAN ROBOT MENGGUNAKAN MIKROKONTROLLER AT89S51

dokumen-dokumen yang mirip
PERCOBAAN 11 PULSE WIDHT MODULATION

Tabel Perbandingan ROM dan RAM pada beberapa seri ATMEL

Lab Elektronika Industri Mikrokontroler - 1 AT89C1051

Mikrokontroler 89C51 Bagian II :

BAB III PERANCANGAN SISTEM

Gambar 1.1. Diagram blok mikrokontroller 8051

MIKROKONTROLER Arsitektur Mikrokontroler AT89S51

BAB 2 TINJAUAN TEORITIS. Sensor TGS 2610 merupakan sensor yang umum digunakan untuk mendeteksi adanya

MIKROKONTROLER AT89S52

Pendahuluan Mikrokontroler 8051

Pembuatan Sistem Pengendali 4 Motor DC Penggerak 4 Roda Secara Independent Berbasis Mikrokontroler AT89C2051

APLIKASI PERINTAH SUARA UNTUK MENGGERAKKAN ROBOT. Disusun Oleh : Nama : Astron Adrian Nrp :

BAB II TEORI DASAR 2.1 Pendahuluan 2.2 Sensor Clamp Putaran Mesin

TKC210 - Teknik Interface dan Peripheral. Eko Didik Widianto

PORT SERIAL MIKROKONTROLER ATMEL AT89C51

BAB II LANDASAN TEORI. Dalam merancang sebuah peralatan yang cerdas, diperlukan suatu

ARSITEKTUR MIKROKONTROLER AT89C51/52/55

TIMER DAN COUNTER MIKROKONTROLER ATMEL

MICROCONTROLER AVR AT MEGA 8535

I/O dan Struktur Memori

BAB III KEGIATAN PENELITIAN TERAPAN

Implementasi Mikrokontroller Untuk Pembangkitan Pulsa Pada Inverter 3 Fasa 18-Step

BAB 2 LANDASAN TEORI

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika. Assembler Bahasa pemrograman mikrokontroler MCS-51

Sistem Minimum Mikrokontroler. TTH2D3 Mikroprosesor

BAB IV PENGUJIAN ALAT DAN ANALISA

Pengaturan Kecepatan Motor DC dengan Menggunakan Mikrokontroler Atmega 8535

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika

Sistem Tertanam. Pengantar Atmega328 dan Arduino Uno. Dennis Christie - Universitas Gunadarma

BAB 2 LANDASAN TEORI. Mikrokontroler, sebagai suatu terobosan teknologi mikrokontroler dan

BAB III PERANCANGAN DAN PEMBUATAN PERANGKAT KERAS

ROBOT ULAR PENDETEKSI LOGAM BERBASIS MIKROKONTROLER

NASKAH PUBLIKASI KARYA ILMIAH PEMASANGAN MOTOR DC PADA SEKUTER DENGAN PENGENDALI PULSE WIDTH MODULATION

BAB III PERANCANGAN DAN REALISASI PERANGKAT KERAS

MIKROKONTROLER Yoyo Somantri dan Egi Jul Kurnia

4. Port Input/Output Mikrokontroler MCS-51

BAB 2 TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB III TEORI PENUNJANG. Microcontroller adalah sebuah sistem fungsional dalam sebuah chip. Di

RANCANG BANGUN ROBOT SEARCH AND RESCUE (SAR) DENGAN MEKANISME HIBRID BERODA DAN BERKAKI BERBASIS MIKROKONTROLER H8/3052F

PERTEMUAN TIMER & COUNTER MIKROKONTROLER 89C51

BAB 3 PERANCANGAN SISTEM

BAB II LANDASAN TEORI

BAB IV PROTOTYPE ROBOT TANGGA BERODA. beroda yang dapat menaiki tangga dengan metode pengangkatan beban pada roda

BAB II. PENJELASAN MENGENAI System-on-a-Chip (SoC) C8051F Pengenalan Mikrokontroler

ROBOT OMNI DIRECTIONAL STEERING BERBASIS MIKROKONTROLER. Muchamad Nur Hudi. Dyah Lestari

ROBOT "AVOIDER" Robot Penghindar Halangan. St. Deddy Susilo

BAB II LANDASAN TEORI

AT89S52 8kByte In-System Programmable Mikrokontroler

BAB III PERANCANGAN ALAT

BAB II TINJAUAN PUSTAKA. [10]. Dengan pengujian hanya terbatas pada remaja dan didapatkan hasil rata-rata

BAB II TINJAUAN PUSTAKA

SELF-STABILIZING 2-AXIS MENGGUNAKAN ACCELEROMETER ADXL345 BERBASIS MIKROKONTROLER ATmega8

BAB 2 TINJAUAN TEORITIS

Realisasi Prototipe Gripper Tiga Jari Berbasis PLC (Programmable Logic Control) Chandra Hadi Putra /

MICROCONTROLER AVR AT MEGA 8535

PERANCANGAN ROBOT HUMANOID BERBASIS MIKROKONTROLER ATMEGA 32

PERTEMUAN MEMORY DAN REGISTER MIKROKONTROLER

Rancang Bangun Quadropod Robot Berbasis ATmega1280 Dengan Desain Kaki Kembar

BAB II LANDASAN TEORI

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. memudahkan penggunaan elektronik dalam berbagai

Bab IV Pengujian dan Analisis

Perancangan Serial Stepper

Tabel 1. Karakteristik IC TTL dan CMOS

APLIKASI PEMBANGKIT PWM SINUSOIDA 1 FASA BERBASIS MIKROKONTROLER ATMEGA8535 SEBAGAI PENGGERAK MOTOR INDUKSI

Percobaan 2 I. Judul Percobaan Sistem Kendali Digital Berbasis Mikrokontroler

PERANCANGAN APLIKASI RFID (RADIO FREQUENCY IDENTIFICATION) DAN MCS-51 UNTUK ADMINISTRASI KESISWAAN (HARDWARE)

BAB III PERANCANGAN SISTEM. 3.1 Pengantar Perancangan Sistem Pengendalian Lampu Pada Lapangan Bulu

BAB III DESAIN BUCK CHOPPER SEBAGAI CATU POWER LED DENGAN KENDALI ARUS. Pada bagian ini akan dibahas cara menkontrol converter tipe buck untuk

PERANCANGAN SISTEM KENDALI GERAK PADA PLATFORM ROBOT PENGANGKUT

BAB III PERANCANGAN SISTEM

Beberapa istilah dalam ADC

BAB II DASAR TEORI. Arduino adalah pengendali mikro single-board yang bersifat opensource,

Desain Tracker Antena Parabola Berbasis Mikrokontroler

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

BAB II LANDASAN TEORI

PERANCANGAN MODULATOR QPSK DENGAN METODA DDS (DIRECT DIGITAL SYNTHESIS) BERBASIS MIKROKONTROLLER ATMEGA8535 ABSTRAK

BAB IV PENGUJIAN ALAT DAN ANALISA

Bab II Dasar Teori (2.1)

BAB 2 TINJAUAN TEORITIS. Mikrokontroller, sebagai suatu terobosan teknologi mikrokontroler dan microkomputer,

MAKALAH. Timer atau Counter 0 dan 1. Oleh : Rizky Dwi N ( ) Satrio Teguh Yulianto ( ) D3 TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO

BAB III METODE PENELITIAN. Tujuan dari tugas akhir ini yaitu akan membuat sebuah mobile Robot

II. TINJAUAN PUSTAKA. kondisi cuaca pada suatu daerah. Banyak hal yang sangat bergantung pada kondisi

BAB 2 LANDASAN TEORI. robotika. Salah satu alasannya adalah arah putaran motor DC, baik searah jarum jam

BAB II LANDASAN TEORI. Perkembangan robot sangat berkaitan erat dengan adanya kebutuhan

RANCANG BANGUN ROBOT PENGANTAR SURAT MENGGUNAKAN MIKROKONTROLER AT89S51

BAB 3 PERANCANGAN SISTEM

RANCANG BANGUN PENGAMAN MOBIL BERBASIS MIKROKONTROLER AT89S51 DENGAN APLIKASI TELEPON SELULER SEBAGAI INDIKATOR ALARM

BAB I PENDAHULUAN. digunakan untuk mengontrol dan bisa diprogram sesuai dengan kebutuhan, yang

BAB III PERANCANGAN DAN PEMBUATAN ALAT

Sistem Pengendalian Suhu Menggunakan AT89S51 dengan Tampilan di PC

BAB III PERANCANGAN DAN PEMBUATAN ALAT

Organisasi Sistem Komputer. Port Serial

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. Frekuensi identik dengan banyaknya jumlah gelombang per satu perioda waktu.

BAB 3 PERANCANGAN SISTEM

GARIS-GARIS BESAR PROGRAM PEMBELAJARAN (GBPP)

BAB II LANDASAN TEORI

DT-AVR Application Note

TKC306 - Robotika. Eko Didik Widianto. Sistem Komputer - Universitas Diponegoro

Transkripsi:

KENDALI LENGAN ROBOT MENGGUNAKAN MIKROKONTROLLER AT89S51 Eko Patra Teguh Wibowo Departemen Elektronika, Akademi Angkatan Udara Jalan Laksda Adi Sutjipto Yogyakarta den_patra@yahoo.co.id ABSTRACT A robot arm can be consists of several joints. A motor is needed for each joint as actuator. One kind of familiar actuator is servo motor, since can rotates the arm and lock on a position according to the given Pulse Width Modulation (PWM) signal. In this paper, a 6-servo motor robot arm controlling method by using an AT89S51 microcontroller is proposed. The mechanism that is used in this method is by controlling the time frame of PWM signals serially. Total input of AT89S51 is 12-bit signal since 2-bit signal for every servo motor. The AT89S51 produces 6 different PWM signals for 6 motor servo. By using this method, robot arm controlling become simple since need only 1 microcontroller. Key words : Microcontroller, PWM, Servo Motor. INTISARI Sebuah lengan robot dapat terdiri atas beberapa sambungan (joint). Untuk setiap sambungan diperlukan sebuah motor sebagai penggeraknya. Salah satu motor penggerak yang sering digunakan pada lengan robot adalah motor servo yang mampu menggerakkan lengan dan terkunci pada posisi tertentu sesuai dengan sinyal Pulse Width Modulation (PWM) yang diberikan. Pada paper ini diajukan sebuah metode untuk mengendalikan lengan robot yang terdiri atas 6 motor servo, menggunakan sebuah mikrokontroller AT89S51. Metode yang digunakan adalah dengan mengatur time frame sinyal PWM untuk tiap-tiap motor servo secara serial. Input yang diberikan kepada mikrokontroller AT89S51 adalah sinyal 2 bit untuk tiap motor servo, sehingga input seluruhnya adalah 12 bit. Output yang dihasilkan oleh mikrokontroller AT89S51 berupa sinyal PWM untuk tiap motor servo, sehingga output seluruhnya adalah 6 sinyal PWM yang berbeda untuk 6 motor servo. Dengan menggunakan metoda ini, pengendalian lengan robot menjadi sangat sederhana karena hanya menggunakan sebuah mikrokontroller. Kata kunci : Mikrokontroller, Motor Servo, PWM. PENDAHULUAN Pengontrolan lengan robot pada dasarnya adalah sama dengan pengontrolan motor servo sebagai penggeraknya. Untuk sebuah motor servo membutuhkan sebuah sinyal kontrol berupa sinyal PWM. Apabila pada lengan robot terdapat 6 motor servo, maka dibutuhkan 6 sinyal kontrol dan berarti juga dibutuhkan 6 sistem pengontrol. Hal ini menjadi semakin rumit dan tidak efisien apabila motor servo yang digunakan semakin banyak. Dengan menggunakan mikrokontroller AT89S51, pengontrolan 6 motor servo dapat dilakukan hanya dengan menggunakan sebuah mikrokontroller sehingga menjadi sederhana dan compact. AT89S51 adalah mikrokontroller 8 bit dengan Flash Programmable and Erasable Read Only Memory (PEROM) 4KByte. Divais ini diproduksi oleh Atmel dan compatible dengan set instruksi standar MCS-51. AT89S51 memiliki spesifikasi standar sebagai berikut : RAM 128 byte Port Input / Output 32 port 16 bit counter / timer 2 buah Serial port 1 port (full duplex) Berdasarkan blok diagram pada gambar 2, AT89S51 memiliki beberapa bagian penting dengan masing-masing fungsi sebagai berikut : ACC (Akumulator) ACC atau akumulator yang menempati lokasi memori E0h digunakan sebagai register untuk penyimpanan data sementara. Dalam program, instruksi mengacunya sebagai register A. Register B Register B (lokasi F0h) digunakan selama operasi perkalian dan pembagian. 391

Port 0 Port 0 adalah port input / output 8 bit open drain. Jika digunakan sebagai output maka harus ditambahkan eksternal pull up. Port 0 menempati lokasi memori 80h. Gambar 1. Konfigurasi pin pada AT89S51 Port 1 Port 1 adalah port input / output 8 bit dengan internal pull up. Port 1 menempati lokasi 90h. Gambar 2. Blok diagram mikrokontroller AT89S51 Port 2 Port 2 adalah port input / output 8 bit dengan internal pull up. Port 2 menempati lokasi A0h. Port 3 Port 3 adalah port input / output 8 bit dengan internal pull up. Port 3 menempati lokasi B0h. Port 3 juga dapat difungsikan sebagai beberapa fungsi khusus di bawah ini : 392

Tabel 1. Fungsi khusus port 3 Timer Register Pasangan register (TH0, TL0) di lokasi 8Ch dan 8Ah, (TH1, TL1) di lokasi 8Dh dan 8Bh merupakan register-register pencacah 16 bit untuk masing-masing Timer 0 dan Timer 1. Control Register Register-register IP, IE, TMOD, TCON, SCON dan PCON berisi bit-bit kontrol dan status untuk sistem interupsi, pencacah/timer dan port serial. Mikrokontroller AT89S51 memiliki oscillator on-chip yang dapat digunakan sebagai clock ke CPU. Untuk menggunakannya perlu ditambahkan sebuah resonator kristal di antara kaki-kaki XTAL1 dan XTAL2. Selain itu juga bisa menggunakan oscillator eksternal yang langsung dihubungkan ke kaki XTAL1. (Putra, 2004) Gambar 3. Hubungan ke kristal Gambar 4. Pemberian Clock Eksternal Salah satu cara yang paling mudah untuk membangkitkan sebuah tegangan analog dari sebuah nilai digital adalah dengan menggunakan pulse-width modulation (PWM). Untuk contoh, sebuah port bit secara kontinyu melakukan kegiatan saklar on dan off pada frekuensi yang relatif tinggi. Selanjutnya, bila sinyal diumpankan pada LPF low pass filter, tegangan pada output filter akan sama dengan Root Mean Squere ( RMS ) dari sinyal gelombang kotak. Selanjutnya tegangan RMS dapat divariasi dengan mengubah duty cycle dari sinyal. 393

Gambar 5. Sinyal PWM Dari gambar 5 terlihat bahwa sinyal PWM adalah sinyal digital yang amplitudonya tetap, namun lebar pulsa yang aktif (duty cycle) per periodenya dapat diubah-ubah. Periode adalah waktu pulsa high (1) atau T on ditambah waktu pulsa low (0) atau T off. Duty cycle menyatakan fraksi waktu sinyal pada keadaan logika high dalam satu siklus. Satu siklus diawali oleh transisi low to high dari sinyal dan berakhir pada transisi berikutnya. Selama satu siklus, jika waktu sinyal pada keadaan high sama dengan low maka dikatakan sinyal mempunyai duty cycle 50 %. Duty cycle 20 % menyatakan sinyal berada pada logika 1 selama 1/5 dari waktu total 1 periode. Persamaan untuk duty cycle dapat ditulis sebagai (1) Pada grafik PWM (gambar 6) paling atas terlihat bahwa sinyal high per periodanya sangat kecil yaitu hanya 10%. Pada grafik PWM tengah terlihat sinyal high hampir sama dengan sinyal low (50%). Sedangkan pada gambar grafik PWM paling bawah terlihat bahwa sinyal high lebih besar dari sinyal low (90%). (2) Gambar 6. Grafik sinyal PWM untuk duty cycle 10%, 50% dan 90%. Motor servo merupakan sebuah motor dc kecil yang diberi sistim gear dan potensio meter sehingga dapat menempatkan horn servo pada posisi yang dikehendaki. Motor servo ini menggunakan sistim close loop sehingga posisi horn yang dikehendaki bisa dipertahanakan. Secara umum terdapat 2 jenis motor servo, yaitu motor servo standard dan motor servo continous. Motor servo standard sering dipakai pada sistim robotika misalnya untuk membuat Robot Arm (Lengan Robot) sedangkan motor servo continous sering dipakai untuk Mobile Robot. Pada badan servo 394

tertulis tipe servo yang bersangkutan. horn pada servo ada dua jenis, yaitu horn X ( seperti pada gambar dibawah ) dan horn berbentuk bulat. Gambar 7. Bentuk motor servo Penggunaan motor servo untuk bidang robotika didasarkan pada beberapa alasan. Pertama adalah motor servo memiliki putaran yang lambat dan torsi yang kuat ( berkat adanya sistim gear ). Hal ini sesuai dengan bidang robotika jika dibandingkan dengan motor dc biasa yang memiliki putaran cepat namun torsi rendah. Poros Motor dc yang dihubungkan langsung dengan roda, tidak akan kuat untuk menggerakkan robot, demikian juga dengan motor stepper. Kedua jenis motor ini harus dihubungkan terlebih dulu dengan sistim gear agar dapat dipergunakan. Namun poros servo dapat dihubungkan langsung dengan roda. Kedua, sistim kontrol untuk motor servo relatif sedikit ( diperlukan hanya 1 jalur data saja ). Hal ini tentu berbeda misalnya jika kita menggunakan motor stepper yang memerlukan jalur kontrol lebih dari 1 jalur. Oleh karena itu tantangannya adalah bagaimana mengontrol motor servo yang hanya menggunakan 1 jalur tersebut. Oleh karena hanya digunakan 1 jalur data untuk mengontrol motor servo, maka digunakan teknik PWM ( Pulse Width Modulation = Modulasi Lebar Pulsa ). Gambar 8. Sinyal PWM 2ms menggerakkan horn ke kiri 90 o Gambar 9. Sinyal PWM 1,5ms menggerakkan horn tepat ke atas (tengah) 395

Gambar 10. Sinyal PWM 1ms menggerakkan horn ke kanan 90 o HASIL DAN PEMBAHASAN Pada sebuah lengan robot yang terdiri atas 6 joint (main joint, joint 1, joint 2, joint 3,wrist dan gripper) membutuhkan 6 motor servo sebagai penggeraknya. Gambar 11. Posisi motor servo pada lengan robot Pemilihan motor servo sebagai penggerak, karena motor servo mempunyai kemampuan untuk menahan beban pada posisi tertentu dan mudah untuk dikontrol yaitu dengan memberikan sinyal PWM. Pulsa PWM mempunyai perioda 20ms dengan lebar pulsa maksimum 2ms atau maksimum duty cycle PWM adalah 10%. Hal ini berarti pada durasi 18ms, sinyal PWM dalam kondisi off. Gambar 12. Bentuk sinyal PWM Kondisi off ini dimanfaatkan untuk mengaktifkan PWM lain, sehingga ke-6 motor servo mendapatkan sinyal PWM yang berbeda. Secara time frame, grafik ke-6 PWM tersebut seperti pada gambar 13. 396

Gambar 13. Grafik time frame ke-6 PWM Dengan demikian flow chart program untuk mikrokontroller adalah sebagaimana dikutip pada gambar 14. 397

Gambar 14. Flow chart program pada mikrokontroller Program di dalam mikrokontroller dirancang untuk mengaktifkan ke-6 PWM secara bergantian. Langkah pertama yaitu inisialisasi simbol. Pada langkah ini, mikrokontroller akan mengenali nama-nama atau istilah-istilah yang diberikan atau digunakan dalam program. Langkah selanjutnya ialah pemberian bobot nilai awal. Bobot nilai awal ini diberikan agar motor servo selalu berada pada posisi awal yang dikehendaki. Misalnya untuk main joint, posisi awal tepat di tengah, 398

maka lebar pulsa PWM adalah 1,5ms. Sedangkan untuk gripper, posisi awal adalah menutup sehingga lebar pulsa yang diberikan adalah 2ms atau 1ms tergantung rancangan posisi motor servo. Setelah pemberian bobot nilai awal, mikrokontroller akan mengaktifkan Timer 0 dan Timer 1. Timer 0 diatur untuk menghitung sampai 10µs sedangkan Timer 1 diatur untuk menghitung sampai 2ms. Timer 0 digunakan untuk mengaktifkan lebar pulsa tiap-tiap PWM, sedangkan Timer 1 digunakan untuk alokasi lebar pulsa PWM maksimum. Misalkan bobot nilai untuk PWM 1 adalah 150, maka output PWM 1 akan aktif selama 150x10µs = 1500µs = 1,5ms. Untuk PWM 2 akan aktif setelah alokasi waktu maksimum untuk PWM 1 selesai atau seletah Timer 1 overflow (selesai menghitung, 2ms). Demikian juga seterusnya, PWM 3, 4, 5 dan 6 akan aktif setelah alokasi waktu maksimum PWM sebelumnya telah selasai. Sehingga total waktu yang dibutuhkan untuk mengaktifkan ke-6 PWM dalam 1 periode adalah 6 x 2ms = 12ms. Sementara periode sebuah PWM adalah 20ms, maka masih tersisa waktu 8ms. Waktu yang tersisa ini dipergunakan oleh mikrokontroller untuk membaca kondisi data input untuk kemudian memperbarui (update) bobot nilai tiap-tiap PWM sesuai data input yang diterima. Input yang diberikan kepada mikrokontroller adalah data paralel 12 bit, dimana tiap bobot nilai PWM berkorespondensi dengan 2 bit data input. Untuk input 00 dan 01 tidak mempengaruhi bobot nilai atau dengan kata lain bobot nilai tetap. Untuk input 10, bobot nilai akan dikurangi 1 untuk setiap pembacaannya dan untuk input 11, bobot nilai akan ditambah 1 untuk setiap pembacaannya. Tabel 2. Pengaruh data input terhadap bobot nilai PWM Data Input Bobot Nilai 00 tetap 01 tetap 10 kurangi 1 11 tambah 1 Dengan menggunakan metoda ini, pengontrolan motor servo yang berjumlah lebih dari 1 menjadi lebih mudah, sederhana dan compact. Setiap perubahan data input akan langsung direspon oleh mikrokontroller sehingga langsung memberikan perubahan posisi horn pada motor servo yang berkaitan. Ke-6 motor servo dapat dikontrol sekaligus secara bersamaan dengan cara memberikan data input yang berbeda pada masing-masing PWM sehingga dihasilkan pergerakan yang berbeda untuk ke-6 motor servo secara bersamaan. KESIMPULAN Motor servo merupakan salah satu komponen penggerak dalam robotika. Dengan menggunakan mikrokontroller AT89S51 dan metoda pengendalian motor servo secara serial, maka dimungkinkan untuk mengontrol lebih dari 1 motor servo secara bersamaan. Pembuatan program yang ringkas akan memperpendek waktu yang digunakan untuk membaca data input dan memperbarui bobot nilai PWM. Dengan demikian mikrokontroller akan mampu mengontrol motor servo lebih banyak. DAFTAR PUSTAKA Putra, A.E,2004, Belajar Mikrokontroller AT89C51/52/55 Teori dan Aplikasi, Edisi 2, Gava Media, Yogyakarta. Setiawan, R, 2006, Mikrokontroller MCS-51, Graha Ilmu, Yogyakarta. http://insansainsprojects.wordpress.com/2008/06/06/pwm-pengatur-kecepatan-mobile-robot 399