Introduction: D.I.Y Concentrated ARM SCARA ROBOT

In this instructor, I'd like to share how to build a homemade Arduino founded SCARA Automaton. My aim is to well assemble on my own and learn about the robotic arm by using the simple materials in hand without having to purchase 3D printed parts.

Before getting started, please stay my videos below

  • First testing with project verbal description.

  • Updating the compose lift.

Step 1: Things We Require

1. Important components:

    • 1pcs x Arduino Uno R3.
    • 1pcs x Arduino CNC Shield V3 GRBL.
    • 2pcs x Stepper Motor Driver A4988.
    • 2pcs x Stepper motor NEMA 17.
    • 1pcs x 50 mm L Stepper Motor Support.
    • 1pcs x GT2 6mm Closed Timing Belt 400mm.
    • 1pcs x GT2 6mm Shuttered Timing Belt 200mm.
    • 2pcs x GT2 Timing Pulley-block 20 Teeth.
    • 2pcs x GT2 Timing Pulley-block 60 Teeth.
    • 3pcs x 608ZZ Double Gold-bearing Sealskin Bearings 8x22x7mm.
    • 2pcs x F608ZZ Ball Flanged Shielded Bearings 8x22x7mm.
    • 2pcs x Round Bar Shaft Rod Diam 8mm, Length 100mm.
    • 1pcs x Aluminum Flexible Chouse Coupling, Inner Hole Size: 5mm x 8mm.
    • 1pcs x Aluminum Pliant Cheat Mating, Inner Hole Size: 5mm x 10mm.
    • 1pcs x 8mm Lengthwise Rails Shaft Clamping Guide Support.
    • 2pcs x XH2.54mm – 4P 20cm Telegram Cable Double Connexion.
    • 1pcs x Trenchant Acrylate resin, size A4.
    • 4pcs x Empty plastic gyrate spool. I reuse empty plastic coils that is used to coil the bonding tin wires.
    • 1pcs x Power Supply 12/24 VDC
    • 1pcs x Power Provision 5 VDC.
    • Whatever small cable ties, cable spiral wrapper, bolts and nuts.

    2. Tools

    • Drilling Machine.
    • Hot Glue Gun.

    Step 2: Forum Play

    First of all, I figured extinct how to arrange the components to form a robotic arm. The robot consists of two arms, titled LINKAGE L1 and Gene linkage L2. The two gene linkage arms imitates the human arm. One joint acts as a shoulder juncture (JOINT 1) and the second Acts of the Apostles as an elbow joint (JOINT 2). Weapon L1 is coupled to the kickoff shoulder joint stepper motor, while arm L2 is coupled to the second elbow hoofer motorial and connected to the cubital joint, to which the pen (Terminate-EFFECTOR) is connected.

    All of the above components are placed on boxes made of acrylic. The box dimension is LxWxH = 165x100x75(millimeter). After careful measurements, I drilled some holes for mounting berm stepper motor and its gear wheel transmission, as advisable as, some available holes for Arduino Uno plus CNC Shield.

    There are many rather tin wire plastic coils with different center holes diameter such as: 22mm, 21mm, 20mm, 19mm and difference height. In this project, I used 4 plastic coils type as take after:

    • 1pcs x plastic coil with plaza pickle diameter 22mm, height 55mm and outer diameter 55mm for shoulder bearings.
    • 1pcs x plastic handbuild with center gob diam 22mm, meridian 23mm and outer diameter 55mm for elbow bearings.
    • 1pcs x impressionable spiral with center hole diameter 19mm, height 23mm and outer diameter 55mm for clamping the articulatio cubiti round bar 8mm.
    • 1pcs x shaping coil with center hole diameter 20mm, height 23mm and outer diameter 55mm for clamping the pen.

    I inserted 2 bearings into center hole diameter 22mm at top and keister of plastic loop peak 55mm. I misused a ball flanged shielded bearings at top of plastic coil hole so that it is pissed and virile enough to keep the articulatio humeri paraphernalia transmission.

    Then this fictile coil was mounted to the robot acrylic base through 4 small holes.

    Round bar 8mm x 100mm, GT2 timing pulley 60 teeth and round bar clamping support are connected as depiction below.

    The hoofer motor L support was affixed connected the round bar clamping support.

    Two acrylic plates were cut with dimension 50x210mm, thickness 5mm to build the robot arms and I trained some holes on them.

    One acrylic arm and shoulder stepper motor were decorated on the L support. In order to make this shoulder mechanism firm enough, I adjusted and placed the stepper motor bottom located on the orotund legal community clamping substantiate.

    The round bar 8mm were put into the bearings of plastic hand-build and I rotated this articulatio humeri mechanism by hand to insure whether it is good.

    The berm stepper motor was mounted to acrylic boxwood. The 60 dentition pulley of shoulder mechanics was united to the 20 teeth pulley of stepper motorial away GT2 timing belt 200mm. Then I checked its rotation once again.

    To ensure the mechanism can't act up and retired, I bolted the round bar at impressionable coil bottom aside peerless pulley 8mm hole diameter.

    To build the elbow of robot, I clamped the whippy coupling 5x8mm to the remaining round stop 8mm. I used the second plastic coil with height 23mm and center hole diameter 19mm then inserted the flexible coupling 5x8mm with round taproo into the plastic coil hole. Because the outer diameter of whippy coupling is also 19mm, so it is very tight when I inserted it into plastic hole.

    Two bearings were inserted into center hole diameter 22mm at top and bottom of the third plastic coil and prepared the 60 teeth block for the automaton articulatio cubiti.

    All acrylic plates, 2nd and 3rd plastic coil, 60 teeth pulley were on together. The elbow stepping motor centrifugal was coupled to 60 teeth pulley of elbow mechanism by GT2 timing knock 400mm.

    I checked the shoulder & elbow rotation and tightened all bolts.

    Finally Arduino Uno and CNC shield were mounted to the face of acrylic package and connected the wires from A4988 to the stepper motors.

    For pen clamping, I used one plastic cable glands. By this way, I can do hand-tightening a pencil easily.

    To keep the pen tighter, I used one more than plastic coil and inserted 2 cable glands at top and bottom of shopping centre hole.

    This is another arrangement of the elbow stepper motor. It is adorned on top.

    To build draught surface, I reused my Thomas Kyd's plastic chess box. After measuring the robot height, I affixed 6 PVC piping straight connectors diam 27mm at the chess box seat bottom.

    Inside the Bromus secalinus box, I glued 4 neodymium magnets taken from old HDD drives and they are located pursuing to the A4 paper size.

    I prepared A4 paper for testing.

    Done. I didn't assemble the pen rhytidoplasty part because I wished-for to test how the SCARA robot arm works.

    Step 3: Updating the Pen Lift

    After checking robot arm working, I definite to build the pen lift divide as follows:

    • Preparing the quaternary constructive volute with center hole diameter 19mm, height 23mm and outer diameter 55mm and drilling 4 holes on high.
    • Inserting a flexible coupling 5x10mm into center hole at merchantman of plastic coil.
    • Putting one ballpoint pen core into 5mm hole of flexible coupling and it was locked at the 10mm hole side.
    • I glued a servo in spite of appearanc of plastic gyrate.
    • I connected 4pcs x long bolt M3x40mm from impressible coil to elbow arm. We can easily adjust the height of pen tip by this way.

    I also glued the robot acrylic box to plotting superficial - chess boxful to prevent the robot arm aflare when it full treatmen.

    Step 4: Programming

    I have referenced to many articles/ codes as well as comments on some robotic forums to learn about how to syllabu a robotic fortify.

    We need to do the pursuing steps to install SCARA-GRBL microcode for Arduino Uno

      • Download SCARA-GRBL firmware files.
      • Copy GRBL to C:\Users\Executive\Documents\Arduino\libraries\
      • Open Arduino IDE, from Filing cabinet menu click Examples SCARA- GRBL grblUpload.
      • Select the correct Port and Get on (Arduino Uno), Pile up and Upload the inscribe to Arduino Uno.

      Step 5: GRBL Parameters

      1. GRBL parameters for my SCARA single arm robot are as follows:

      $0 10.000 Step pulse time
      $1 255.000 Step idle delay
      $2 0.000 Whole step pulse turn back
      $3 3.000 Stair direction turn back
      $4 0.000 Turn back mistreat enable pin
      $5 0.000 Invert limit pins
      $6 0.000 Invert probe pin
      $10 1.000 Position report options
      $11 0.010 Junction deviation
      $12 0.002 Arc tolerance
      $13

      0.000

      Report in inches
      $20

      0.000

      Soft limits enable
      $21

      0.000

      Hard limits enable
      $22

      0.000

      Homing cycle enable
      $23

      0.000

      Homing direction turn back
      $24 25.000 Homing locate prey rate
      $25 500.000 Homing search seek rate
      $26 250.000 Homing switch de-bounce delay
      $27 1.000 Homing switch pull-off distance
      $30 1000.000 Maximum spindle speed
      $31 0.000 Minimum spindle speed
      $32 0.000 Optical maser-modality enable
      $100 13.333 X-axis go up resolution
      $101 13.333 Y-axis travel resolution
      $102 53.333 Z-axis travel resolution
      $110 1000.000 X-axis maximum grade
      $111 1000.000 Y-bloc maximum rate
      $112 1000.000 Z-axis maximum rate
      $120 10.000 X-axis acceleration
      $121 10.000 Y-axis quickening
      $122 10.000 Z-axis acceleration
      $130 210.000 X-bloc maximum travel
      $131 297.000 Y-axis vertebra maximum travel
      $132 200.000 Z-axis maximum go on

      Notes: Setting $1 = 255 keeps stepper motors always enabled and prevent the motors from moving when the automaton arm is stationary. We can use this instruction to hold the axis, otherwise the vibrations may cause a drift.

      2. Step out per DEGREE setting:

      Normally, the command to stepper motors via GRBL firmware is given American Samoa Cartesian coordinates (X, Y) in mm, and base on parametric quantity STEP/MM it is premeditated to total of steps instead of angles, thusly information technology is necessary to convert tip over into number of steps.

      A Steps per Degree (SPD) parametric quantity is defined for each stepping motor motors systematic to determine the number of steps is required to move per degree. The SPD for each motor is hanging down connected the step lean on, gear ratio and little-stepping ratio of the drivers for the steeper motors according to the formula.

      Steps per Level = 1/((Stairs Angle)*(1/Micro-stairs)*(Ns/Nd))

      GRBL $100 & $101 are premeditated by pursuit table: Two stepper motors birth a 1.8° step, which means 200 steps for 1 complete rotation. Each motive is geared dispirited with timing belts past factor 3 (20/60). With the A4988 drivers set to 1/8th micro-stepping that makes 13.3 steps per degree.

      Number of teeth on the stepping motor pitch (Ns):

      20 teeth

      Number of teeth on the ambitious gear (Nd):

      60

      teeth

      Step angel: 1.8

      °

      A4988 small-stairs setting: 8 -
      Stride per Degree: 13.3 measure/degree

      Tread 6: Robot Arm Simulation

      Robot kinematics are mainly including two types: forward kinematics and inverse kinematics. In onward kinematics, the distance of each linkage arm and the angle of each concerted are given and we have to calculate the place of robot end effector. In inverse kinematics, the duration of each linkage arm and position of end effector are given and we have to calculate the angle of each corporate.
      The following encipher performs conversion from Cartesian coordinates to Scara angles which is called Opposite Kinematics

      void inverse_kinematics(float const *cartesian, float *f_scara) {     float SCARA_pos[2];      unchangeable float SCARA_C2, SCARA_S2, SCARA_K1, SCARA_K2, SCARA_theta, SCARA_psi;      SCARA_pos[X_AXIS] = -cartesian[X_AXIS] - SCARA_OFFSET_X;     SCARA_pos[Y_AXIS] = cartesian[Y_AXIS] + SCARA_OFFSET_Y;      SCARA_C2 =   ( sq(SCARA_pos[X_AXIS]) + sq(SCARA_pos[Y_AXIS]) - L1_2 - L2_2 ) /(2*L1*L2);     SCARA_S2 = sqrtf( 1 - sq(SCARA_C2) );      SCARA_K1 = L1 + L2 * SCARA_C2;     SCARA_K2 = L2 * SCARA_S2;      SCARA_theta = ( atan2f(SCARA_K1, SCARA_K2)-atan2f(SCARA_pos[X_AXIS],SCARA_pos[Y_AXIS]) ) ;     SCARA_psi   =   atan2f(SCARA_S2,SCARA_C2) + SCARA_theta;  		 	if(!angle_mode) 	{ 		f_scara[X_AXIS] = DEGREES(SCARA_theta); 		f_scara[Y_AXIS] = DEGREES(SCARA_psi); 		f_scara[Z_AXIS] = cartesian[Z_AXIS]; 	} 	else 	{ 		f_scara[X_AXIS] = mathematician[X_AXIS];  		f_scara[Y_AXIS] = cartesian[Y_AXIS];  		f_scara[Z_AXIS] = cartesian[Z_AXIS];		 		 	} }

      The reciprocal kinematics set the angles THETA and PSI of Joint 1 and Joint 2 severally to play the end-effector to the posture setpoint (Post exchange, Py). Cartesian coordinates of the desired end effector position are entered in my Excel sheet which aim the angles and simulate by graphical record.

      If the Cartesian coordinates of desired death-effector location are disposed by P(199.73, 217.97) and both L1 and L2 linkage lengths are 160 mm, the shoulder angle THETA and elbow angle Pounds per square inch is calculated and shown by picture below.

      Opposite Kinematics Simulation

      I wrote a small SCARA simulation in Excel template to check out the forward & inverse kinematics rules settled along the Arduino codification above. For the reciprocal kinematics, there is a little difference betwixt Excel template and Arduino code, that is coordinates X is transposed in the Arduino reverse kinematics inscribe. When coordinates X is reversed, it is shown like below.

      Footmark 7: Calibration & Testing

      1. Standardisation

      In the file "scara.h" we have to edit the parameters reported to our configuration.

      #define SCARA_LINKAGE_1 	160.0f	// millimeter #define SCARA_LINKAGE_2 	160.0f 	// mm  #define SCARA_OFFSET_X 		-245.0 	// mm #define SCARA_OFFSET_Y 		85.0	// mm	  #define MANUAL_X_HOME_POS 	0.0f	// Theta #define MANUAL_Y_HOME_POS 	0.0f 	// PSI #define MANUAL_Z_HOME_POS 	0.0f

      The write rear is restrained away pin 13 (PORTB - BIT5) on Arduino Uno, IT is announced in "cpu_map_atmega328p.h".

      2. Testing

      To generate the G-code from text operating room look-alike, I used Inkscape software. And after we have an workable G-code file from Inkscape, to stream and send G-Cypher file to Arduino Uno, we prat use Universal Gcode Sender - UGS.

      My figure utilised 2 stepper motors and A4988 drivers. You can refer to my instructable: BACK TO BASIC-Miniskirt CNC PLOTTER at STEP 5 for setting up micro-stepping and current limit of stepper driver A4988.

      I tested how the robotic arm can coiffe the text writing.

      And here is the result.

      And this is my test with pen lift updating.

      Actually, my robot arm hasn't been properly calibrated yet but I love this genre. The characters are tilted and arciform depending on the "house" position, looking like artistic text.

      Step 8: Conclusion

      You tush see some more pictures of this project.

      Thank you very much for reading my work and hope you enjoyed my article this time!

      Be the First to Share

      Recommendations