SCARA Arm Controlled by Joystick

SCARA Arm Controlled by Joystick © CC BY-NC

This is a project about a SCARA arm which is controlled by a joystick and which sends the position by a Bluetooth module.

  • 1 comment
  • 9 respects

Components and supplies

Necessary tools and machines

3D Printer (generic)
Hy gluegun
Hot glue gun (generic)
26w6260 40
Multitool, Screwdriver
09507 01
Soldering iron (generic)
Solder Wire, Lead Free
84y7278 40
Drill / Driver, 20V

Apps and online services

About this project

This project is born when we decided to build a small robotic arm using an Arduino Uno controlled by a button (to control the servo which drops

the steel ball) and a joystick (there are two potentiometers in it, each of them "drives" a servo).

We watched on the web and decided to make an "unusual" kind of robotic arm: the SCARA.

Assembling of the Parts

Assembling Hacks Probably the holes in the 3D printed parts will be too small for the heat inserts (it depends on their outer diameter, so it’s suggested to get inserts with a diameter of 3, 5mm), so you’ll have to drill the printed parts to let the holes reach the depth and the diameter of your inserts. In our case, flange’s holes were too small too so we had to drill with a 3mm drill bit.

It’s not hard to assembly all the parts of this Scara robot. These are the main steps:

1. 3D print the plastic components of the Scara ( we used a cartesian 3d printer) ;

2. Install the inserts (the easiest way is by heating them with a soldering iron);

3. Put the first DS3218MG Servo in the “Base” and put the “Top” part on it, then block these parts with M4x10 screws (for the servo) and with M4x20 screws (for the “Top”);

4. Block the flange on the lower side of the “Arm” with four M3x15 screws and nuts (the nuts will stay between the servo and the flange). Then put a washer and a M3x15 screw in the hole in the middle;

5. Put the steel balls in their seat and then place the “Arm” on it (repeat this two steps (4-5) for the “Dispenser” part);

6. Block the other DS3218MG Servo on the “Dispenser” with four M4 screws;

7. Put the SG90 (upside down) on the supports of the dispenser, block it with hot glue;

Operating Principle

This Scara’s operating process is quite easy. In the joystick there are two potentiometers (there is a button too, but we decided to use a separate one in this project) and in the entire mechanism of the robot there are three servos (two “big” and powerful ones and a smaller one), so we decided to drive each DS3218MG with a potentiometer and the other servo with the button: more specifically, every time a potentiometer reaches one of its ends, the servo will turn 5° right or left (depending on the side reached by the potentiometer) and every time the botton will be pushed, the smaller servo will drop a steel


Sketch SCARA ArmArduino
This is the sketch wich you must load on your arduino board.
#include <Servo.h>  //include the library about servo

Servo servo_base;   //give a name to the servo
Servo servo_arm;
Servo servo_dispenser;

int val = 0;
int val1 = 0;
int n = 0;
int t = 0;
int pos = 0;
int pos1 = 0;
int pos2 = 0;

void setup() {
  servo_base.attach(9);    //set the pin 9 for servo
  pinMode(A0, INPUT);   //set the pin A0 and A1 to receive data from the joystick
  pinMode(A1, INPUT);
  pinMode(8, INPUT);   //set the pin 8 to receive data from the buttom 
  Serial.begin(9600);  //start the serial monitor

void loop() {

  val = int (map(analogRead(A0), 0, 1023, -550, 550) / 512);   //map the value read from A0 ad take the integer
  val1 = int (map(analogRead(A1), 0, 1023, -550, 550) / 512);
  pos2 = map(digitalRead(8), 0, 1, 130, 100);
  pos = n + 1 * val;         //add up the value with the previous
  pos1 = t + 1 * val1;
  pos = constrain(pos, 0, 180);      //limit the value of the variable between 0 and 180
  pos1 = constrain(pos1, 0, 180);
  servo_base.write(pos);         //turn the servo of the angle we want
  n = pos;                      //store the position
  t = pos1;
  Serial.print("servo-base     ");      // send the value to the bluetooth
    Serial.print("servo-arm     ");
    Serial.print("servo-dispenser     ");


Custom parts and enclosures


Error uploading file to Sketchfab.

Practice Platform


Wirings SCARA
This is how you must connect the elettronic parts.
Schema scara wwb8wata1k


Similar projects you might like

Bracc.ino - Robotic Arm

Project in progress by Basso&Delmoro&Gramaglia

  • 1 comment
  • 25 respects

DIY Arduino Robot Arm – Controlled by Hand Gestures

Project tutorial by Eben Kouao

  • 45 respects

Robotic Arm Controlled by Human Arm

Project showcase by zezarandrade

  • 1 comment
  • 23 respects

DIY Glove Controlled Robotic Hand

Project showcase by Laurence Lai

  • 35 respects

MeArm Controlled by Arduino Uno and TTP229-BSF Touchpad

Project tutorial by Alan Wang

  • 18 respects

Simple Programmable Robotic Arm

Project showcase by Ryan Chan

  • 387 respects
Add projectSign up / Login