The Idea of this project came to my mind accidentally when I was searching for the different abilities of robotic arms, then I found that there is a few who covers this area of usage (Automated Welding & Soldering Robotic Arm).
Actually I had an experience before for building similar projects, but this time the project was very useful and effective.
Before decided the shape of it I saw a lot of applications and other projects especially in the industry field, Open source projects helped me a lot to find out the right and suitable shape.
That’s because of the science behind the visual feeding for our brains.
At first I saw a lot of professional projects that wasn’t able to implement because the complexity of it.
Then I decided to see to make my own product inspired by the other projects, so I used Google Sketch up 2017 pro. each part was designed to assemble beside each other in a specific order as shown in the next picture.
And before assembling it I had to test the parts and choose the suitable soldering iron, this happen by drawing a virtual finishing project as a guide for me.
These draws shows the actual finishing life size shape and the correct dimensions of each part to choose the right soldering iron.
During the work I faced some obstacles we have to announce about it.
1. The arms was too heavy to be hold by the small stepper motors, and we fixed this in the next version or laser cut print.
2. Because the model was made from plastic material the friction of rotating base was high and the movements wasn’t smooth.
The first solution was to buy a bigger stepper motor that able to bear the weight and friction, and we re-designed the base to fit a bigger stepper motor.
Actually the problem stills and the bigger motor did not fix it, and that was because the friction between two plastic surfaces beside we can't adjust the pot by percent. The maximum rotation position is not the maximum current that the driver can provide. You must use the technique shown by the manufacturer, where you measure the voltage while turning the pot.
Then I resorted to change the base design totally and put a servo motor with metal gear instated of gears mechanism.
3. voltage
The Arduino board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and we decided to buy special USB cable that support 5 volt from the PC or any power supply.
so The stepper motors and the other components works properly with only 5 volt and to secure the parts from any problem we fix step down module.
The step down module is a buck converter (step-down converter) is a DC-to-DC power converter which steps down voltage (while stepping up current) from its input (supply) to its output (load) and also keep the stability or the voltage.
After some modifications we changed the design of the model by reducing arms size and make a suitable hole for servo motor gear as shown.
And while testing the servo motor succeeded to rotate the weight 180 degrees correctly because its high torque means a mechanism is able to handle heavier loads. How much turning force a servomechanism can output depends on design factors—supply voltage, shaft speed, etc.
Also using I2c was nice because it only uses two pins, and you can put multiple i2c devices on the same two pins. So for example, you could have up to 8 LCD backpacks+LCDs all on two pins! The bad news is that you have to use the 'hardware' i2c pin.
The gripper was fixed by using metal gear servo motor to bear the weight of the soldering iron.
At first we had an obstacle that was motor shaking and vibrating until we found a tricky code that give constrains angels.
Because not all servos have a full 180 degrees of rotation. Many do not.
So we wrote a test to determine where the mechanical limits are. Use servo.write Microseconds instead of servo.write I like this better because it lets you use 1000-2000 as the base range. And many servos will support outside that range, from 600 to 2400.
So, I tried different values and see where you get the buzz that tells you have reached the limit. Then only stay within those limits when you write. You can set those limits when you use servo.attach(pin, min, max)
Find the true range of movement and make sure the code doesn't try to push it past the end stops, the constrain () Arduino function is useful for this.
The Arduino Using libraries
environment can be extended through the use of libraries, just like most programming platforms. Libraries provide extra functionality for use in sketches, e.g. working with hardware or manipulating data. To use a library in a sketch.