Perancangan Sistem Pengendalian Motor Servo Pada Robot Berkaki Menggunakan Mikrokontroler PIC 16F84


Setiap tahunnya Kontes Robot Indonesia dan Kontes Robot Cerdas Indonesia (KRI/KRCI) diadakan dan dalam ajang KRCI ada beberapa divisi yang dilombakan seperti robot beroda, robot berkaki, dan expert. Yang menarik dalam hal ini adalah robot berkaki dimana robot-robot yang bertanding untuk sistem pengendalian kaki robotnya banyak yang menggunakan motor servo, jumlahnya pun tidak sedikit bahkan ada yang menggunakan duabelas motor servo untuk robot berkaki enam.

Untuk sistem pengendalian motor servo yang jumlahnya banyak umumnya diperlukan servo controller dimana modul ini yang akan mengatur pengiriman alamat dan pemberian data/lebar pulsa pada masing-masing motor servo. Akan tetapi permasalahan yang muncul saat ini adalah sulitnya mendapatkan modul servo controller yang harus memesan dari luar negeri dan tentunya harus dibayar dengan biaya yang tinggi dan membutuhkan waktu yang cukup lama untuk mempelajari cara pemasangan dan pemrogramannya.
Untuk mengatasi masalah tersebut kita dapat membuat sendiri modul servo controller dengan menggunakan mikrokontroler PIC 16F84. Mikrokontroler buatan Microchip ini memiliki fasilitas yang cukup lengkap untuk mengendalikan banyak motor servo disamping pemrogramannya yang mudah yaitu dengan menggunakan bahasa pemrograman basic.
Dalam pembuatan modul servo controller ini dibutuhkan dua buah mikrokontroler PIC 16F84 yang terdiri dari mikrokontroler utama yang dapat mengontrol duabelas motor servo sekaligus dan mikrokontroler bantu yang digunakan untuk mengirimkan alamat dan data/lebar pulsa secara serial (RS232) ke mikrokontroler utama, juga sebagai masukan perintah pengendalian gerakan robot dari mikrokontroler lain yang dilakukan secara pararel (8 bit). 


Dalam pembuatan robot berkaki yang menggunakan banyak motor sevo dibutuhkan suatu modul servo controller untuk mengatur pergerakan robot, akan tetapi modul ini sulit di dapatkan serta harganya yang cukup mahal di pasaran. Dengan keadaan yang seperti ini sebagai alternatif kita dapat membuat sendiri modul servo controller hanya dengan menggunakan dua buah mikrokontroller PIC 16F84 ditambah dengan sedikit komponen lainya.
Masalah-masalah yang muncul dalam mengontrol motor servo untuk pengendalian robot berkaki adalah:Sulitnya mendapatkan modul servo controller, Harga servo controller yang cukup mahal karena harus memesan dari luar negeri, Tidak semua mikrokontroler dapat digunakan sebagai servo controller karena tidak memiliki fasilitas yang mendukung, Sulitnya penerapan dan pemrograman jika menggunakan mikrokontroler lain serta waktu pembelajaran yang cukup lama.
Tujuan dari pembuatan sistem pengendalian motor servo dengan mikrokontroler PIC 16F84 ini adalah : Sebagai salah satu alternatif untuk sistem pengendalian robot berkaki, Menurunkan biaya pembuatan robot, Memudahkan dalam perancangan dan pemrograman, Memudahkan pencarian komponen dan mengefisiennkan waktu pembuatan.

Pemilihan motor servo standar 180 derajat yang menggerakan persendian kaki pada robot secara vertikal dan horizontal adalah sangat penting untuk menentukan kombinasi pergerakan robot, motor harus memiliki torsi yang cukup besar untuk dapat menggerakan persendian kaki dan mengimbangi berat keseluruhan robot. Pada rancangan ini kami menggunakan motor servo Hitec Standart Servo HS-322HD.

Hal paling utama dalam sistem pengontrolan robot berkaki yang sistem pergerakannya menggunakan motor servo adalah waktu pemberian data/lebar pulsa sinyal PWM pada motor servo dimana robot akan bergerak sesuai dengan posisi perputaran motor servo.
Motor servo yang digunakan yaitu motor servo standar 1800, motor servo jenis ini hanya mampu bergerak dua arah (CW dan CCW) dengan defleksi masing-masing sudut mencapai 900sehingga total defleksi sudut dari kanan – tengah – kiri adalah 1800. Operasional motor servo dikendalikan oleh sebuah pulsa selebar ± 20 ms, dimana lebar pulsa antara 0.5 ms dan 2 ms menyatakan akhir dari range sudut maksimum. Apabila motor servo diberikan pulsa dengan besar 1.5 ms mencapai gerakan 900, maka bila kita berikan pulsa kurang dari 1.5 ms maka posisi mendekati 00 dan bila kita berikan pulsa lebih dari 1.5 ms maka posisi mendekati 1800.
Motor Servo akan bekerja secara baik jika pada bagian pin kontrolnya diberikan sinyal PWM dengan frekuensi 50 Hz. Dimana pada saat sinyal dengan frekuensi 50 Hz tersebut dicapai pada kondisi Ton duty cycle 1.5 ms, maka rotor dari motor akan berhenti tepat di tengah-tengah (sudut 00/ netral).

Pada saat Ton duty cycledari sinyal yang diberikan kurang dari 1.5 ms, maka rotor akan berputar ke arah kiri dengan membentuk sudut yang besarnya linier terhadap besarnya Ton duty cycle, dan akan bertahan diposisi tersebut. Dan sebaliknya, jika Ton duty cycle dari sinyal yang diberikan lebih dari 1.5 ms, maka rotor akan berputar ke arah kanan dengan membentuk sudut yang linier pula terhadap besarnya Ton duty cycle, dan bertahan diposisi tersebut.

Pengontrolan Motor Servo Vertikal
Sistem ini digunakan untuk mengontrol empat motor servo standar 1800 yang dipasang pada masing-masing kaki robot secara vertikal. Motor servo ini digunakan untuk menarik persendian pada kaki agar kaki-kaki robot dapat bergerak/terangkat dari bawah ke atas atau sebaliknya.
Untuk pengontrolan motor servo yang bergerak vertikal 1800, prosesor utama (U1) mengirimkan data/sinyal pulsa (kontinyu) yang lebarnya 1.25 ms selama interval waktu tertentu sehingga sudut yang dicapai motor servo sebesar 00, pada posisi ini keadaan kaki robot masih belum bergerak/terangkat. Setelah itu prosesor utama (U1) akan mengirimkan pulsa yang lebarnya 1.75 ms selama interval waktu tertentu sehingga sudut yang yang dicapai motor servo sebesar 1800, pada posisi ini keadaan kaki robot akan bergerak/terangkat. Dan untuk bergerak menurunkan kaki motor servo harus diberikan pulsa yang lebarnya 1.25 ms.Proses ini akan terus berlangsung sesuai dengan kebutuhan pergerakan robot.

Waktu pemberian pulsa dan posisi motor servo vertikal


Pengontrolan Motor Servo Horizontal

Sistem ini digunakan untuk mengontrol empat motor servo standar 1800 yang dipasang pada masing-masing kaki robot secara horizontal. Motor servo ini digunakan untuk menggerakan kaki robot ke posisi depan 450 dari keadaan 0 dan menggerakan kaki robot ke posisi belakang 450. Dengan pengaturan posisi motor servo seperti ini maka robot dapat bergerak sesuai dengan yang diinginkan dengan kombinasi pergerakan motor servo vertikal seperti berjalan maju, berjalan mundur, berbelok kekiri atau kekanan dan gerakan lainya dengan memberikan sistem pewaktuan sesuai pergerakan keempat kaki robot.
Untuk posisi/keadaan 0 motor servo mendapat data/sinyal pulsa (kontinyu) yang lebarnya 1.5 ms selama interval waktu tertentu sehingga sudut yang yang dicapai motor servo sebesar 900.
Untuk pengontrolan motor servo yang bergerak horizontal 450 ke posisi depan prosesor utama (U1) mengirimkan data/sinyal pulsa yang lebarnya 1.375 ms selama interval waktu tertentu sehingga sudut yang yang dicapai motor servo sebesar 450, pada posisi ini keadaan kaki robot bergerak kedepan. Setelah itu prosesor utama (U1) akan mengirimkan pulsa yang lebarnya 1.625 ms selama interval waktu tertentu sehingga sudut yang yang dicapai motor servo sebesar 450, pada posisi ini keadaan kaki robot akan bergerak ke posisi belakang. Dengan demikian jumlah defleksi sudut yang ditimbulkan dari posisi depan ke posisi belakang adalah 900. Proses pergerakan ini akan terus berlangsung sesuai dengan kebutuhan pergerakan robot.


Waktu pemberian pulsa dan posisi motor servo horizontal


PERANCANGAN SISTEM

Dalam membuat modul servo controller ini dibutuhkan komponen-komponen sebagai berikut : 2 buah mikrokontroler PIC 16F84, 2 buah soket IC 18 pin, 2 buah kristal 20 MHz, 4 buah kapasitor 22 pf, 2 buah resistor 10 kΩ, PCB polos, 1 buah konektor 2 pin (supply tegangan), 12 buah konektor 3 pin (ke motor servo), 1 buah konektor 8 pin (input 8 bit), Kabel dan timah secukupnya.

Gambar Rangkaian pengendali motor servo menggunakan mikrokontroller PIC 16F84 download di BOX File saya.
Untuk membuat rancangan ini, hal pertama yang harus dilakukan adalah membuat lay out PCB-nya dengan menggunakan program aplikasi PCB desain misalnya Protel, Diptrace, atau pun program lain kemudian cetak hasilnya dengan printer selanjutnya transferlah hasil print tadi kedalam PCB polos yang telah dipotong sesuai ukuran kemudian larutkan dengan pelarut PCB. Apabila telah selesai pasang komponen-komponennya dengan benar kemudian solderlah kaki-kaki komponen dengan menggunakan timah.


Untuk rekan2 yang membutuhkan file lengkapnya http://journal.uii.ac.id/index.php/Snati/article/view/1770. Terimakasih.
advertisements

2 Responses to "Perancangan Sistem Pengendalian Motor Servo Pada Robot Berkaki Menggunakan Mikrokontroler PIC 16F84"

blukutuk mengatakan...

amazing, i love all about robotic.
kakak saya mau belajar bikin robot, yang standar aja, robot yang pake roda.
umpamanya di depan robot 5 meter ada tembok trus karena ada tembok robotnya bisa belok atau berhenti. klo ada tolong dong kirim ke alamat email ku. abrazky@gmail.com.
trimakasih banyak bantuannya kak yah...

sudarmanto saputra mengatakan...

banyak kok robot sederhana di dalam blog ini, silahkan explore sendiri ya....