Kamis, 16 Juli 2009

MOTOR SERVO

Pendahuluan

Motor DC, stepper dan servo merupakan aktuator yang paling banyak digunakan pada sistem otomasi industri dan robotika. Masing-masing motor tersebut mempunyai teknik pemrograman dan karakteristik tersendiri. Pada praktikum ini, lebih ditekankan konsep pemrograman motor stepper dan motor servo continuous parallax.



Tujuan Praktikum

1. Praktikan dapat menjelaskan cara pemrograman motor DC, stepper dan servo.

2. Praktikan dapat memprogram motor stepper dan servo untuk berputar ke kiri dan ke
kanan.
3. Praktikan mengusulkan suatu rancangan sistem elektronika berbasiskan motor DC,
stepper dan servo pada lengan robot


Konsep Motor Stepper

Motor stepper banyak digunakan untuk aplikasi-aplikasi yang biasanya cukup menggunakan torsi yang kecil, seperti untuk penggerak piringan disket atau piringan CD. Motor stepper merupakan motor DC yang tidak memiliki komutator. Pada umumnya motor stepper hanya mempunyai kumparan pada statornya sedangkan pada bagian rotornya merupakan magnet permanen. Dengan model motor seperti ini maka motor stepper dapat diatur posisinya pada posisi tertentu dan/atau berputar ke arah yang diinginkan, searah jarum jam atau sebaliknya. Kecepatan motor stepper pada dasarnya ditentukan oleh kecepatan pemberian data pada komutatornya. Semakin cepat data yang diberikan maka motor stepper akan semakin cepat pula berputarnya.





Berikut ini tabel logika untuk menggerakkan stepper motor bipolar yang dapat diterapkan pada motor stepper merek Mitsumi 9V standar.




Keterangan

Urutan data ke bawah, arah : CCW

Urutan data ke atas, arah : CW



Gambar di bawah ini menampilkan penggunaan driver L293D untuk dapat menggerakkan motor stepper / motor DC karena membutuhkan arus yang cukup besar. 4 jalur output pada IC tersebut dapat mengendalikn 1 buah stepper motor atau 2 buah motor DC. Untuk motor DC, cukup berikan logika high atau low di salah satu pin dari 2 pin yang digunakan oleh tiap motor, dimana logika high /low tesebut menentukan arah putar motor DC.




Konsep Servo Motor
Servo motor banyak digunakan sebagai aktuator pada mobile robot atau lengan robot. Servo motor umunya terdiri dari servo continuous dan servo standar. Servo motor continuous dapat berputar sebesar 360 derajat.. Sedangkan servo motor tipe standar hanya mampu berputar 180 derajat. Servo motor yang umum digunakan ialah Continuous Parallax. Namun jika Anda ingin servo motor yang berkekuatan besar dan cepat, idealnya Anda milliki servo HS-311 (continuos ) dan servo HS-322HD(standar).

Untuk menggerakkan motor servo ke kanan atau ke kiri, tergantung dari nilai delay yang kita berikan. Untuk membuat servo pada posisi center, berikan pulsa 1.5ms. Untuk memutar servo ke kanan, berikan pulsa = 1.7ms untuk berputar ke kiri dengan delay 20ms, seperti ilustrasi berikut:





Spesifikasi dari servo continuous parallax ialah:

§ Power 6vdc max

§ Average Speed 60 rpm - Note: with 5vdc and no torque

§ Weight 45.0 grams/1.59oz

§ Torque 3.40 kg-cm/47oz-in

§ Size mm (L x W x H) 40.5x20.0x38.0

§ Size in (L x W x H) 1.60x.79x1.50

§ Manual adjustment port





Penerapan pada Program

Percobaan 1. Memutar motor stepper

Langkah-langkahnya:

1. Siapkan SmartAVR Robotics ver 2.0, dan hubungkan dengan kabel AVR ISP Programmer ke PC.

2. Hubungkan stepper motor dengan output L293D di port D.

3. Buat program di bawah ini :



Stepper.c:

// Percobaan 9.1, Percobaan stepper motor

// LED terhubung di Port B

#include

#include

flash unsigned char string[]={data stepper};

void main(void) {

unsigned char i;

PORTC=0x00;

DDRC=0x00; //PC0-PC7 sebagai input

PORTD=0xFF;

DDRD=0xF0; //PD4-PD7 sebagai output

i=1;

while (1)

{

if (PINC.0==0) //Jika tombol yang terhubung dengan PC0 ditekan,

{ // maka motor stepper berputar CW half step

i--;

if (i==0xFF) i=7;

PORTD=string[i];

}

else //Jika tombol PC0 tidak ditekan, motor stepper berputar CCW half step

{

i++;

if (i==8) i=0;

PORTD=string[i];

}

delay_ms(100); // Delay bouncing saklar

PORTD=0; //Nilai logika stepper = '0'

};

}

4. Kompilasi dan jalankan, maka motor stepper akan bergerak dengan arah sesuai dengan penekanan saklar di Port C.0



Percobaan 2. Mengendalikan motor stepper melalui port serial PC

Langkah-langkahnya:

1. Siapkan SmartAVR Robotics ver 2.0, dan hubungkan dengan kabel AVR ISP Programmer ke PC. Hubungkan juga kabel serial mikrokontroler ke PC.

2. Hubungkan stepper motor dengan output L293D di port D.

3. Buat program pendeteksian penerimaan angka 0 dan 1 melalui port serial. Jika data yang diterima ialah karakter a, maka motor stepper akan bergerak ke kanan, jika data yang diterima ialah karakter b, maka motor stepper bergerak ke kiri, seperti contoh berikut:



SerialStepper.c:

//Percobaan 9.2, Pengendalian putaran motor Stepper dengan VB .Net 2005

//Buah karya Mr. Widodo

//Le Creusot- France, 21 November 2007

#include

#include

flash unsigned char string[]={0x80,0xC0,0x40,0x60,0x20,0x30,0x10,0x90};

void main(void) {

unsigned char i; unsigned char data;

UCSRA=0x00; //konfigurasi baud rate 9600bps

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0X00;

UBRRL=0X19;

PORTD=0xFF;

DDRD=0xF0; //PD4-PD7 sebagai output

i=1;

while (1) {

while (UCSRA.7) //Apakah ada data baru yang belum dibaca

{

data=UDR;

PORTB=data; // data dikirim ke Port B

}

if (data==’a’) //Jika karakter a dikirim,

{ // maka motor stepper berputar CW half step

i--;

if (i==0xFF) i=7;

PORTD=string[i];

}

if(data==’b’) //Jika karakter b dikirim,

{ //motor stepper berputar CCW half step



}

delay_ms(100); //Untuk bouncing saklar

PORTD=0; //Nilai logika stepper = '0'

};

}

4. Buat form VB .Net seperti gambar bawah ini :



Gambar 9.4 Form yang harus dibuat



5. Kita akan mengggunakan file library Mr_Widodo.dll yang dapat diunduh di www.widodo.com. Tambahkan referensi dengan cara klik Add Reference pada Solution Explorer, lalu pilih Mr_Widodo.dll, yang berisi fungsi-fungsi untuk komunikasi serial dan paralel.

6. Masukkan kode berikut:



Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

tampilkanport()

Dim about As New Mr_Widodo.KomunikasiSerial

Label3.Text = about.DisplayPembuat

End Sub



Private Sub btnPutarKiri_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPutarKiri.Click

Dim Serial As New Mr_Widodo.KomunikasiSerial ‘buat objek

Serial.KirimDataSerial("a", cbPort.Text) ‘Putar kiri

End Sub

Private Sub btnPutarKanan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Serial As New Mr_Widodo.KomunikasiSerial

Serial.KirimDataSerial("b", cbPort.Text) ‘Putar Kanan

End Sub

End Class



7. Jalankan program, dan pastikan mikrokontroler telah berisi program pendeteksian penerimaan karakter a dan b dari port serial yang telah Anda buat sebelumnya. Klik button pada form tersebut, dan lihat hasil pergerakan motor stepper.



Percobaan 3. Pemrograman Servo Continuous Parallax

Langkah-langkahnya :

1.Siapkan SmartAVR Robotics ver. 2.0, dan hubungkan dengan kabel AVR ISP Programmer
ke PC. Hubungkan juga kabel serial mikrokontroler ke PC.

2.Hubungkan motor stepper di port D.0, berikut susunan kabel servo:



Gambar 9.5 Susunan kabel servo motor










2. Buat program di bawah ini:

Servo.c:

// Percobaan 9.3, Percobaan pemutaran Servo Continous Parallax

// LED terhubung di Port B

#include //Menyertakan library file ATmega16

#include

unsigned char j=0;

void putar_kanan (void) {

PORTD.0=1;

for (j=1; j<=220; j++)

delay_us(10);

PORTD.0=0;

delay_ms(20);

}

void putar_kiri (void) {

…);

}

void main(void) {

PORTD=0xFF;

DDRD=0x01; //PD0 sebagai output

UCSRA=0x00; //konfigurasi baud rate 9600bps

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0X00;

UBRRL=0X19;

PORTD=0xFF;

DDRD=0xF0; //PD4-PD7 sebagai output

i=1;

while(1) {

while (UCSRA.7) //Apakah ada data baru yang belum dibaca

{

data=UDR;

}

if (data==0x30) //Jika angka 0/data 0 dikirim

{

putar_kanan(); //putar kanan

}

if (data==0x31) //Jika angka 1/data 1 dikirim

{

putar_kiri(); //putar kiri

}

};

}



3. Jalankan program, berikan angka 0 atau 1 pada Hyperterminal, lihat pergerakan motor servo tersebut.

0 komentar:

Posting Komentar