Kendali Lengan Robot

Robot ada yang bergerak atau pindah lokasi ada juga robot yang bergerak tapi tidak pindah lokasi. Robot yang bergerak tidak berpindah lokasi biasanya berbentuk lengan. Bagian penggerak (aktuator) pada gambar di bawah ini berupa motor servo yang dapat bergerak sesuai dengan sudut yang diinginkan sehingga lengan robot bergerak sesuai kombinasi pergerakan motor servo tersebut.

Berikut nama-nama bagian penggerak lengan robot :

Bagian Lengan Robot

Secara keseluruhan sebuah sistem lengan robot manipulator terdiri dari :

1. Tangan Mekanik (Mechanical Arm)

Adalah bagian dasar dari konstruksi lengan robot untuk dapat membentuk lengan robot sesuai kebutuhan dan merupakan bagian yang dikendalikan pergerakannya.

2. End-Effector

Kemampuan robot juga tergantung pada piranti yang dipasang pada lengan robot. Piranti ini biasanya dikenal dengan end effector. End effector ada dua jenis yaitu Pencengkram (gripper) yang digunakan untuk memegang dan menahan objek, peralatan (tool) yang digunakan untuk melakukan operasi tertentu pada suatu objek. Contohnya: bor, penyemprot cat, gerinda, las dan sebagainya.

3. Penggerak (Actuator)

Istilah yang digunakan untuk mekanisme yang menggerakkan lengan robot. Aktuator dapat berupa hidrolik dan pneumatik yang digunakan untuk mengendalikan persendian prismatik karena dapat menghasilkan gerakan linier secara langsung (sering disebut dengan penggerak linier) atau pula aktuator motor listrik yang menghasilkan gerakan rotasi. Penggerak yang umum digunakan pada saat ini adalah penggerak motor servo. Penggerak ini lebih mudah dikontrol dibanding penggerak lainnya.

4. Sensor/Transducer

Sensor dipergunakan manipulator agar dapat berinteraksi dengan lingkungan kerjanya. Sensor juga dipergunakan sebagai input umpan balik pada proses pengendalian manipulator.

5. Pengendali (Controller)

Pengendali adalah mekanisme (baik secara perangkat keras maupun perangkat lunak) yang dipergunakan untuk mengatur seluruh pergerakan atau proses yang dilakukan manipulator.

Untuk mengendalikan lengan robot bisa dengan sensor (knob) atau dengan waktu (sweep) saja. Mengendalikan lengan robot dengan sensor berarti pergerakan lengan robot tergantung perubahan nilai sensor (misalkan potensiometer), sedangkan pergerakan lengan robot dengan waktu berarti lengan robot bergerak secara terus menerus (berulang) sesuai waktu yang ditentukan.

JEJAK TERKAIT :  Kontrol LCD Berbasis Mikrokontroler Atmega16

KENDALI LENGAN ROBOT DENGAN SENSOR

Rangkaian Motor Servo dengan Sensor

List Program Berdasarkan Knob atau Sensor :

#include <Servo.h>

Servo myservo1; // create servo object to control a servo

Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo5;

int potpin1 = 0; // analog pin used to connect the potentiometer

int potpin2 = 1;

int potpin3 = 2;

int potpin4 = 3;

int potpin5 = 4;

int val1; // variable to read the value from the analog pin

int val2;

int val3;

int val4;

int val5; void setup() {

myservo1.attach(9); // attaches the servo on pin 9 to the servo object

myservo2.attach(10);

myservo3.attach(11);

myservo4.attach(12);

myservo5.attach(13);

}

void loop() {

val1 = analogRead(potpin1); // reads the value of the potentiometer (value between 0 and 1023)

val1 = map(val1, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)

myservo1.write(val1); // sets the servo position according to the scaled value

delay(15); // waits for the servo to get there



val2 = analogRead(potpin2); // reads the value of the potentiometer (value between 0 and 1023)

val2 = map(val2, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)

myservo2.write(val2); // sets the servo position according to the scaled value

delay(15); // waits for the servo to get there



val3 = analogRead(potpin3); // reads the value of the potentiometer (value between 0 and 1023)

val3 = map(val3, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)

myservo3.write(val3); // sets the servo position according to the scaled value

delay(15); // waits for the servo to get there


val4 = analogRead(potpin4); // reads the value of the potentiometer (value between 0 and 1023)

val4 = map(val4, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)

myservo4.write(val4); // sets the servo position according to the scaled value

delay(15); // waits for the servo to get there


val5 = analogRead(potpin5); // reads the value of the potentiometer (value between 0 and 1023)

val5 = map(val5, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)

myservo5.write(val5); // sets the servo position according to the scaled value

delay(15); // waits for the servo to get there

}

Video Simulasi Lengan Robot dengan Sensor dapat dilihat dalam video di bawah ini :

JEJAK TERKAIT :  Rangkaian 2 Silinder Ganda Bergerak Berulang pada Elektropneumatik Berdasarkan Waktu

 

KENDALI LENGAN ROBOT TANPA SENSOR

Rangkaian Motor Servo tanpa Sensor

List Program Berdasarkan Sweep atau Waktu :

#include <Servo.h>
Servo myservo1; // create servo object to control a servo
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo1.attach(9); // attaches the servo on pin 9 to the servo object
myservo2.attach(10);
myservo3.attach(11);
myservo4.attach(12);
myservo5.attach(13);
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
myservo5.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
myservo5.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
myservo5.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
myservo5.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
myservo5.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo3.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
}

 

JEJAK TERKAIT :  Cara Kerja IAT (Intake Air Temperature) Sensor

Video simulasi pergerakan motor servo bisa dilihat seperti pada video di bawah ini :

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *