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 :

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.
KENDALI LENGAN ROBOT 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 :
KENDALI LENGAN ROBOT TANPA SENSOR

List Program Berdasarkan Sweep atau Waktu :
#include <Servo.h> Servo myservo1; Servo myservo2;// create servo object to control a servo Servo myservo3; Servo myservo4; Servo myservo5; // twelve servo objects can be created on most boards int pos1 = 0; // variabel menentukan posisi motor servo int pos2 = 0; int pos3 = 0; int pos4 = 0; int pos5 = 0; int pos6 = 0; int pos7 = 0; int pos8 = 0; void setup() { myservo1.attach(8); // pin keluaran arduino myservo2.attach(9); myservo3.attach(10); // pin keluaran arduino myservo4.attach(11); myservo5.attach(12); } void loop() { for (pos1 = 0; pos1 <= 90; pos1 += 1) { // berputar dari 0 derajat ke 180 derajat // langkah dalam 1 derajat delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat } for (pos1 = 90; pos1 >= 0; pos1 -= 1) { // berputar dari 180 derajat ke 0 derajat myservo2.write(pos1); myservo4.write(pos1); delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat } for (pos2 = 0; pos2 <= 90; pos2 += 1) { // berputar dari 0 derajat ke 180 derajat // langkah dalam 1 derajat delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat } for (pos2 = 90; pos2 >= 0; pos2 -= 1) { // berputar dari 180 derajat ke 0 derajat myservo5.write(pos2); delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat } for (pos3 = 0; pos3 <= 90; pos3 += 1) { // berputar dari 0 derajat ke 180 derajat // langkah dalam 1 derajat myservo2.write(pos3); myservo4.write(pos3); delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat } for (pos3 = 90; pos3 >= 0; pos3 -= 1) { // berputar dari 180 derajat ke 0 derajat delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat } for (pos4 = 0; pos4 <= 180; pos4 += 1) { // berputar dari 0 derajat ke 180 derajat // langkah dalam 1 derajat delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat } for (pos4 = 180; pos4 >= 0; pos4 -= 1) { // berputar dari 180 derajat ke 0 derajat myservo1.write(pos4); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos' delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat } for (pos5 = 0; pos5 <= 90; pos5 += 1) { // berputar dari 0 derajat ke 180 derajat // langkah dalam 1 derajat delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat } for (pos5 = 90; pos5 >= 0; pos5 -= 1) { // berputar dari 180 derajat ke 0 derajat myservo2.write(pos5); myservo4.write(pos5); delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat } for (pos6 = 0; pos6 <= 90; pos6 += 1) { // berputar dari 0 derajat ke 180 derajat // langkah dalam 1 derajat myservo5.write(pos6); delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat } for (pos6 = 90; pos6 >= 0; pos6 -= 1) { // berputar dari 180 derajat ke 0 derajat delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat } for (pos7 = 0; pos7 <= 90; pos7 += 1) { // berputar dari 0 derajat ke 180 derajat // langkah dalam 1 derajat myservo2.write(pos7); myservo4.write(pos7); delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat } for (pos7 = 90; pos7 >= 0; pos7 -= 1) { // berputar dari 180 derajat ke 0 derajat delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat } for (pos8 = 0; pos8 <= 180; pos8 += 1) { // berputar dari 0 derajat ke 180 derajat // langkah dalam 1 derajat myservo1.write(pos8); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos' delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat } for (pos8 = 180; pos8 >= 0; pos8 -= 1) { // berputar dari 180 derajat ke 0 derajat delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat } }
Video simulasi pergerakan motor servo bisa dilihat seperti pada video di bawah ini :