PC Controlled Robotic Arm

I have always admired the modern manufacturing technologies and the important role played by these machines in different areas of manufacturing such as: lifting materials, installing and collecting parts, welding and cutting and last but not least its usability in warehouses...

My experience in building this robot arm was a challenge. So as a start I choose a simple robotic arm designed by fortzeroas in 2016, then I decided not to control it by hand as usual, So I created an Automation App by "C# Windows Application" and I made it looks like manufacturing automation Apps.

So as per my programming skills experience, I created this Automation Application to fully control the robotic arm, monitoring its movement, give it different tasks to do.

 Step 1: Material


The main material is MDF wood and I used 2mm for the structure and 4mm for the base.

Blueprints are available to download in the last step, you have to print the pattern then glue it directly to MDF.

Cut along with the outlines and drill holes. I used Rotary tool to drill and cut the wood, And for the base I don't have blueprints but I think you can improvise.

 Step 2: Painting and Styling

To give the project an attractive look I used the same blueprints then I designed a cover using Photoshop to create some decals and geometric shapes to look realistic, then I glue it on wood using white glue.

 Step 3: Frame Assembling


This robotic arm was simple to assemble because everything was planned ahead ago so its simply fix the servo motors in place with screws, and while working I've made minor tweaks to be done.

Then to attach the right and left side I used thick wooden sticks and glue it using super glue instate of long screws to reduce the wight.

 Step 4: Gripper (Pinch Mechanism)

 

I Bend a two metal rod by pliers then I drill a hall inside a piece of wood 3 mm thick using Rotary tool drill and glue it by super glue.

 Step 5: Making Base

Base is made from 4 mm thick MDF wood, I cut square approx 17cm * 10cm with table saw then drill a hall to sit the base servo motor 9g. to reduce the friction between base and cylinder I cut a part of strong cardboard can 2.5cm height & 10cm Diameter, then I drill it also to attach the servo motor shaft.


 Step 6: Electronics

When using more than two servos with Arduino you must use an external power source for them, and in this project I used three micro servos 9g and one big servo motor.

Of course the first demonstration test was virtual on tinkercad.comto simulate the servos and test the electric circuit.

So in this case I used 4 batteries AA 1.5 v that equals 6 v, then I made breadboard test setup and after that I made very simple expansion dock for Arduino nano.


Step 7: Arduino Code

1. Download and install Arduino IDE latest version, You can find the latest version for Windows, Linux or MAC OSX on Arduino's website:https://www.arduino.cc/en/main/software

2. Plug in your Arduino board to USB port.

3. Go to tools > board > then choose your board.

4. Copy & paste the code into the IDE editor.

5. Verify your code by clicking (✔) icon button.

6. Upload the Code to your board by clicking (➤) icon button.

 

Step 8: Automation Application


Actually this is my favorite part is to automate an Arduino project using PC, In my opinion it was a good start to learn how to improve the capabilities of controlling the board and any other project in the future.

by using this application your able to control, record, monitoring the Robot Arm as following:

1. Motion Control:

There is two moods to control this robot arm, first is manual by dragging the track bars that controls a spastic servo such as

Gripper: click open & close button to open and close the robot gripper.

Base: Drag the the tracking bar right & left or even use keyboard arrows (right/left) to move the base right and left.

Shoulder: Drag the the tracking bar right & left or even use keyboard arrows (up/down) to move the shoulder Up and Down

Elbow: Drag the the tracking bar right & left or even use keyboard keys (w/s) to move the elbow motor Up and Down

2. Motion Record:

Once you want to automate the movement of the robot arm you have to record the position in every step by clicking "Rec. Position" Button or press (R) in keyboard, Then the application will take care about it.

In every step you record the application detects the moved motor position and save it inside a list separately.

By clicking the button "Start Auto mood" the application will send those saved positions in a form of sequence orders.

3. Monitoring:

I've created a graphical interface that draws every step in a graph to let the user notes any unusual change might happen. at the same time there is a table of data on the right side gives the specific angle and the accurate time for its move.

So by using these features you may compose your own movements and send it to the Robotic Arm as a task, as they exactly do in manufacturing automation.

simulate the Automation of modern manufacturing technologies ,Robotic Arms manufacturing

  • Actuators / output devices: 4 servos
  • Control method: Computer and Arduino
  • Operating system: C#, Arduino IDE, Windows 10
  • Power source: 4 AA batteries
  • Programming language: C#, Arduino C++
  • Sensors / input devices: Arduino Nano
  • Target environment: indoor

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/pc-controlled-robotic-arm

Very nice project. I have a

Very nice project. I have a similar one with a MeArm, but my user interface does not have a visualization of the robot arm itself.

Just sliders and a recording and playback function. The recording works by evaluating the servo potentiometers (modified servos to get the info). Unfortunately the mechanical construction has quite some play, so it is hard to reproduce movements that were recorded.

I saw people making a robot arm write things or even draw geometrical objects. This was completely impossible with my arm, because of lack of precision.

What are your experiences regarding these problems?

 

Thanks for your comment maelh

According to this problem, Actually your question was good because I stayed over a week looking for a solution to same issue.

The problem was solved by using a third party Applicaiton named “Processing 3”.

In the initial stages I made a supported interface that simulate the Robot arm servos (Base, Shoulder, Elbow and Gripper) by keyboard and move them separately “angle by angle” until it reached to a fixed position prepared previously.

Then when it reached to that prepared position I record these four angles in Array of code (A,B,C,D), Then I used these multi Arrays later on in my Windows Application. 

Actually It helped me a lot to know the limits of each servo motor angles each in its place.

These collected limits I put it as guideline into user interface slidebars to keep the ARM under control.

So when you need to draw a geometrical objects using robotic arm you need to playback these “recorded arrays of angles” using third party application like “Processing 3” and “inkscape” that able to convert your vector graphics into array of angles can be Trackable by servo motors.

I hope I covered your question.

Thanks for your reply.My

Thanks for your reply.

My approach was a bit different: I recorded the movements of the joints continously (reading the potentiometers values of the servos), and then setting the servo positions to match those recorded values.

But the mechanics of the MeArm are not very precise, so the ideal joint position and the servo position do not match well enough. Is your robot arm mechanically stable enough to draw shapes?

In this case I could try to build an arm like yours.

In any case, great project and thanks for showing :slight_smile:

You Most Welcome :slight_smile:

In my opinion it’s stable enough to draw shapes especially when you have the ability to take control everything and here is a video I made it while testing in the initial stages: https://youtu.be/mPB-c03lcas

The only issue is you have to attach the base with screws for more stability.