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.

  • 74 views
  • 0 comments
  • 1 respect

Components and supplies

Necessary tools and machines

3drag
3D Printer (generic)
Hy gluegun
Hot glue gun (generic)
26w6260 40
Multitool, Screwdriver
09507 01
Soldering iron (generic)
4966285
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

Code

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
  servo_arm.attach(10);
  servo_dispenser.attach(11);
  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
  servo_arm.write(pos1);
  servo_dispenser.write(pos2);
  n = pos;                      //store the position
  t = pos1;
  delay(10);
  Serial.print("servo-base     ");      // send the value to the bluetooth
  Serial.print(pos);
    Serial.print("servo-arm     ");
  Serial.print(pos1);
    Serial.print("servo-dispenser     ");
  Serial.println(pos2);


}

Custom parts and enclosures

Dispenser
Funnel

Error uploading file to Sketchfab.

Practice Platform

Schematics

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

Comments

Similar projects you might like

Robotic Arm Controlled by Human Arm

Project showcase by zezarandrade

  • 7,947 views
  • 0 comments
  • 12 respects

Simple Programmable Robotic Arm

Project showcase by Ryan Chan

  • 102,357 views
  • 94 comments
  • 263 respects

MeArm Controlled by Arduino Uno and TTP229-BSF Touchpad

Project tutorial by Alan Wang

  • 3,610 views
  • 2 comments
  • 12 respects

Exoskeleton for Paralytic Arm

by somrkmv1997

  • 4,876 views
  • 5 comments
  • 46 respects
Add projectSign up / Login