DIY robot manipulator drawings. Robotic manipulator mechanical arm. General description of the robotic manipulator project

DIY robot manipulator drawings.  Robotic manipulator mechanical arm.  General description of the robotic manipulator project
DIY robot manipulator drawings. Robotic manipulator mechanical arm. General description of the robotic manipulator project

This project is a multi-level modular task. The first stage of the project is the assembly of the robotic arm module, supplied as a set of parts. The second stage of the task will be to assemble the IBM PC interface, also from a set of parts. Finally, the third stage of the task is the creation of a voice control module.

The robot arm can be controlled manually using the hand-held control panel included in the kit. The robot's arm can also be controlled either through a kit-assembled IBM PC interface or using a voice control module. The IBM PC interface kit allows you to control and program the robot's actions via an IBM PC work computer. The voice control device will allow you to control the robot arm using voice commands.

All these modules together form functional device, which will allow you to experiment and program automated sequences of actions, or even bring to life a fully wire-controlled robotic arm.

The PC interface allows you to use personal computer program the manipulator arm for a chain of automated actions or “revive” it. There is also an option where you can control the hand interactively using either a hand controller or a Windows 95/98 program. The "animation" of the hand is the "entertainment" part of the chain of programmed automated actions. For example, if you put a child's glove puppet on a robotic arm and program the device to perform a small show, you will be programming the electronic puppet to come to life. Programming automated actions finds wide application in industry and entertainment.

The most widely used robot in industry is the robotic arm. The robot arm is an extremely flexible tool, if only because the final segment of the arm's manipulator can be the appropriate tool required for specific task or production. For example, an articulated welding positioner can be used to spot welding, the spray nozzle can be used to paint various parts and assemblies, and the gripper can be used to clamp and position objects, just to name a few.

So, as we see, the robotic arm performs many useful functions and can serve the perfect tool for studying various processes. However, creating a robotic arm from scratch is a difficult task. It is much easier to assemble a hand from parts ready set. OWI sells enough good sets robotic arms, which are available from many electronics distributors (see parts list at end of this chapter). Using the interface, you can connect the assembled robotic arm to the printer port of your working computer. As a work computer, you can use an IBM PC series or compatible machine that supports DOS or Windows 95/98.

Once connected to the computer's printer port, the robotic arm can be controlled interactively or programmatically from the computer. Hand control in interactive mode is very simple. To do this, just click on one of the function keys to send the robot a command to perform a particular movement. The second key press stops the command.

Programming a chain of automated actions is also not difficult. First, click on the Program key to enter the program mode. In this mod, the hand functions in exactly the same way as described above, but in addition, each function and its duration are recorded in a script file. The script file can contain up to 99 various functions including pauses. The script file itself can be replayed 99 times. Recording various script files allows you to experiment with a computer-controlled sequence of automated actions and “revive” the hand. Working with the program under Windows 95/98 is described in more detail below. The Windows program is included with the robotic arm interface kit or can be downloaded for free from the Internet at http://www.imagesco.com.

In addition to Windows program the arm can be controlled using BASIC or QBASIC. The DOS level program is contained on floppy disks included in the interface kit. However, the DOS program allows control only in interactive mode using the keyboard (see the printout of the BASIC program on one of the floppy disks). The DOS level program does not allow you to create script files. However, if you have experience programming in BASIC, then the sequence of movements of the manipulator arm can be programmed similarly to the operation of a script file used in a program under Windows. The sequence of movements can be repeated, as is done in many "animate" robots.

Robotic arm

The manipulator arm (see Fig. 15.1) has three degrees of freedom of movement. The elbow joint can move vertically up and down in an arc of approximately 135°. The shoulder "joint" moves the grip back and forth in an approximately 120° arc. The arm can rotate clockwise or counterclockwise on its base through an angle of approximately 350°. The robot's hand gripper can grasp and hold objects up to 5 cm in diameter and rotate around the wrist joint through approximately 340°.

Rice. 15.1. Kinematic diagram of movements and rotations of the robotic arm


OWI Robotic Arm Trainer used five miniature motors to move the arm. direct current. The motors provide control of the arm using wires. This “wired” control means that each function of the robot's movement (i.e. the operation of the corresponding motor) is controlled by separate wires (voltage supply). Each of the five DC motors controls a different arm movement. Control by wire allows you to make a hand controller unit that directly responds to electrical signals. This simplifies the design of the robot arm interface that connects to the printer port.

The hand is made of lightweight plastic. Most of the parts that bear the main load are also made of plastic. The DC motors used in the arm design are miniature, high-speed, low-torque motors. To increase torque, each motor is connected to a gearbox. The motors together with gearboxes are installed inside the manipulator arm structure. Although the gearbox increases torque, the robot's arm cannot lift or carry enough heavy objects. The recommended maximum lifting weight is 130g.

The kit for making a robot arm and its components are shown in Figures 15.2 and 15.3.


Rice. 15.2. Kit for making a robotic arm



Rice. 15.3. Gearbox before assembly

Motor control principle

To understand how control by wire works, let's see how digital signal controls the operation of a separate DC motor. To control the motor, two complementary transistors are required. One transistor has PNP type conductivity, the other has NPN type conductivity. Each transistor acts as an electronic switch, controlling the movement of current flowing through the DC motor. The directions of current flow controlled by each of the transistors are opposite. The direction of the current determines the direction of rotation of the motor, respectively, clockwise or counterclockwise. In Fig. Figure 15.4 shows a test circuit that you can assemble before making the interface. Note that when both transistors are off, the motor is off. Only one transistor should be turned on at any time. If at some point both transistors accidentally turn on, this will lead to short circuit. Each motor is controlled by two interface transistors operating in a similar way.


Rice. 15.4. Check device diagram

PC interface design

The PC interface diagram is shown in Fig. 15.5. The set of PC interface parts includes a printed circuit board, the location of the parts on which is shown in Fig. 15.6.


Rice. 15.5. Schematic diagram PC interface



Rice. 15.6. Layout of PC interface parts


First of all, you need to determine the mounting side of the printed circuit board. On the mounting side there are white lines drawn to indicate resistors, transistors, diodes, ICs and the DB25 connector. All parts are inserted into the board from the mounting side.

General advice: after soldering the part to the conductors of the printed circuit board, it is necessary to remove excessively long leads from the printing side. It is very convenient to follow a certain sequence when installing parts. First, install the 100 kOhm resistors (color-coded rings: brown, black, yellow, gold or silver), which are labeled R1-R10. Next, mount the 5 diodes D1-D5, making sure that the black stripe on the diodes is opposite the DB25 connector, as shown by the white lines marked on the mounting side of the PCB. Next, install 15k ohm resistors (color coded brown, green, orange, gold or silver) labeled R11 and R13. In position R12, solder a red LED to the board. The LED anode corresponds to the hole under R12, indicated by the + sign. Then mount the 14- and 20-pin sockets under ICs U1 and U2. Mount and solder the DB25 angled connector. Do not try to force the connector pins into the board; this requires extreme precision. If necessary, gently rock the connector, being careful not to bend the pin legs. Attach the slide switch and 7805 voltage regulator. Cut four pieces of wire to the required length and solder to the top of the switch. Follow the wire layout as shown in the picture. Insert and solder the TIP 120 and TIP 125 transistors. Finally, solder the eight-pin base connector and the 75mm connecting cable. The base is mounted so that the longest leads face up. Insert two ICs - 74LS373 and 74LS164 - into the corresponding sockets. Make sure that the position of the IC key on the IC cover matches the key marked with white lines on the PCB. You may have noticed that there is space left on the board for additional parts. This place is for network adapter. In Fig. Figure 15.7 shows a photograph of the finished interface from the installation side.


Rice. 15.7. PC interface assembly. View from above

How the interface works

The robotic arm has five DC motors. Accordingly, we will need 10 input/output buses to control each motor, including the direction of rotation. The parallel (printer) port of the IBM PC and compatible machines contains only eight I/O buses. To increase the number of control buses, the robot arm interface uses the 74LS164 IC, which is a serial-to-parallel (SIPO) converter. By using just two parallel port buses D0 and D1, which send the serial code to the IC, we can get eight additional tires input/output. As mentioned, eight I/O buses can be created, but this interface uses five of them.

When a serial code is input to the IC 74LS164, the corresponding parallel code appears at the output of the IC. If the outputs of the 74LS164 IC were directly connected to the inputs of the control transistors, then the individual functions of the manipulator arm would be turned on and off in time with the sending of the serial code. Obviously, this situation is unacceptable. To avoid this, a second IC 74LS373 was introduced into the interface circuit - a controlled eight-channel electronic key.

IC 74LS373 eight-channel switch has eight input and eight output buses. The binary information present on the input buses is transmitted to the corresponding outputs of the IC only if the enable signal is applied to the IC. After the enable signal is turned off, the current state of the output buses is saved (remembered). In this state, the signals at the input of the IC have no effect on the state of the output buses.

After transmitting a serial packet of information to the IC 74LS164, an enable signal is sent to the IC 74LS373 from pin D2 of the parallel port. This allows you to transfer information already in parallel code from the input of the IC 74LS174 to its output buses. The state of the output buses is controlled accordingly by the TIP 120 transistors, which, in turn, control the functions of the manipulator arm. The process is repeated with each new command given to the manipulator arm. Parallel port buses D3-D7 directly drive TIP 125 transistors.

Connecting the interface to the manipulator arm

The robotic arm is powered by a 6V power supply consisting of four D-cells located at the base of the structure. The PC interface is also powered by this 6 V source. The power supply is bipolar and produces ±3 V. Power is supplied to the interface through an eight-pin Molex connector attached to the base of the paddle.

Connect the interface to the arm using a 75mm eight-conductor Molex cable. The Molex cable attaches to the connector located at the base of the paddle (see Figure 15.8). Check that the connector is inserted correctly and securely. To connect the interface board to the computer, use a DB25 cable, 180 cm long, included in the kit. One end of the cable connects to the printer port. The other end connects to the DB25 connector on the interface board.


Rice. 15.8. Connecting the PC interface to the robotic arm


In most cases, a printer is normally connected to the printer port. To avoid the hassle of plugging and unplugging connectors every time you want to use the pointer, it's helpful to purchase a two-position A/B printer bus switch block (DB25). Connect the pointer interface connector to input A and the printer to input B. You can now use the switch to connect the computer to either the printer or the interface.

Installing the program under Windows 95

Insert the 3.5" floppy disk labeled "Disc 1" into the floppy drive and run the setup program (setup.exe). The setup program will create a directory named "Images" on your hard drive and copy the necessary files to this directory. In Start menu, the Images icon will appear. To start the program, click on the Images icon in the start menu.

Working with the program under Windows 95

Connect the interface to the computer's printer port using a 180 cm long DB 25 cable. Connect the interface to the base of the robotic arm. Keep the interface turned off until a certain time. If you turn on the interface at this time, the information stored in the printer port can cause movements of the manipulator arm.

Double-click on the Images icon in the start menu to launch the program. The program window is shown in Fig. 15.9. When the program is running, the red LED on the interface board should blink. Note: The interface does not need to be powered up for the LED to start blinking. The speed at which the LED blinks is determined by the speed of your computer's processor. The LED flicker may appear very dim; To notice this, you may have to dim the light in the room and cup your hands to view the LED. If the LED does not blink, then the program may be accessing the wrong port address (LPT port). To switch the interface to another port address (LPT port), go to the Printer Port Options box located in the right top corner screen. Choose another option. Correct installation port address will cause the LED to blink.


Rice. 15.9. Screenshot of the PC interface program for Windows


When the LED is flashing, click on the Puuse icon and only then turn on the interface. Clicking the corresponding function key will cause a response movement of the manipulator arm. Clicking again will stop the movement. Using function keys to control your hand is called interactive control mode.

Creating a script file

Script files are used to program movements and automated sequences of actions of the manipulator arm. The script file contains a list of temporary commands that control the movements of the manipulator arm. Creating a script file is very simple. To create a file, click on the program softkey. This operation will allow you to enter the fashion of “programming” a script file. By pressing the function keys, we will control the movements of the hand, as we have already done, but at the same time, the command information will be recorded in the yellow script table located in the lower left corner of the screen. The step number, starting from one, will be indicated in the left column, and for each new command it will increase by one. The type of movement (function) is indicated in the middle column. After clicking the function key again, the execution of the movement stops, and the value of the time of execution of the movement from its beginning to its end appears in the third column. The execution time of the movement is indicated with an accuracy of a quarter of a second. Continuing in this manner, the user can program up to 99 movements into the script file, including time pauses. The script file can then be saved and later loaded from any directory. Execution of script file commands can be repeated cyclically up to 99 times, for which you need to enter the number of repetitions in the Repeat window and click Start. To finish writing to the script file, press the Interactive key. This command will put the computer back into interactive mode.

"Revitalization" of objects

Script files can be used to automate computer actions or to bring objects to life. In the case of “revitalization” of objects, the controlled robotic mechanical “skeleton” is usually covered with an outer shell and is not visible itself. Remember the glove puppet described at the beginning of the chapter? The outer shell can be in the form of a person (partially or completely), an alien, an animal, a plant, a rock, or anything else.

Application Limitations

If you want to achieve professional level performing automated actions or “revitalizing” objects, then, so to speak, to maintain the brand, the positioning accuracy when performing movements at each moment in time should approach 100%.

However, you may notice that as you repeat the sequence of actions recorded in the script file, the position of the manipulator hand (pattern of movement) will differ from the original one. This happens for several reasons. As the arm's power supply batteries deplete, the reduction in power supplied to the DC motors results in a reduction in the torque and rotation speed of the motors. Thus, the length of movement of the manipulator and the height of the lifted load during the same period of time will differ for dead and “fresh” batteries. But this is not the only reason. Even with a stabilized power source, the motor shaft speed will vary, since there is no motor speed controller. For each fixed period of time, the number of revolutions will be slightly different each time. This will lead to the fact that the position of the manipulating arm will be different each time. To top it all off, there is a certain amount of play in the gears of the gearbox, which is also not taken into account. Due to all these factors, which we have discussed in detail here, when executing a cycle of repeated script file commands, the position of the manipulator hand will be slightly different each time.

Finding the Home Position

The device can be improved by adding a feedback circuit that monitors the position of the robotic arm. This information can be entered into a computer, allowing the absolute position of the manipulator to be determined. With such a positional feedback system, it is possible to set the position of the manipulator arm to the same point at the beginning of the execution of each sequence of commands written in the script file.

There are many possibilities for this. One of the main methods does not provide positional control at each point. Instead, a set of limit switches are used that correspond to the original "start" position. Limit switches determine exactly only one position - when the manipulator reaches the “start” position. To do this, it is necessary to set up a sequence of limit switches (buttons) so that they close when the manipulator reaches the extreme position in one direction or another. For example, one limit switch can be mounted on the base of the manipulator. The switch should only operate when the manipulator arm reaches the extreme position when rotating clockwise. Other limit switches must be installed at the shoulder and elbow joints. They should be triggered when the corresponding joint is fully extended. Another switch is installed on the hand and is activated when the hand is turned all the way clockwise. The last limit switch is installed on the gripper and closes when it is fully opened. To return the manipulator to its initial position, each possible movement of the manipulator is carried out in the direction necessary to close the corresponding limit switch until this switch closes. Once the starting position for each movement is reached, the computer will accurately “know” the true position of the robotic arm.

After reaching starting position We can re-run the program written in the script file, based on the assumption that the positioning error during each cycle will accumulate slowly enough that it will not lead to too large deviations of the position of the manipulator from the desired one. After executing the script file, the hand is set to its original position, and the cycle of the script file is repeated.

In some sequences, knowing only the initial position is not enough, for example when lifting an egg without the risk of crushing its shell. In such cases, a more complex and accurate position feedback system is needed. Signals from sensors can be processed using an ADC. The resulting signals can be used to determine values ​​for parameters such as position, pressure, speed and torque. The following simple example can be used to illustrate this. Imagine that you attached a small linear variable resistor to the gripper assembly. The variable resistor is installed in such a way that the movement of its slide back and forth is associated with the opening and closing of the gripper. Thus, depending on the degree of opening of the gripper, the resistance of the variable resistor changes. After calibration, by measuring the current resistance of the variable resistor, you can accurately determine the opening angle of the gripper clamps.

The creation of such a feedback system introduces another level of complexity into the device and, accordingly, leads to its increase in cost. Therefore more simple option is the introduction of the system manual control to adjust the position and movements of the manipulator hand during the execution of a script program.

Manual interface control system

Once you are satisfied that the interface is working correctly, you can use the 8-pin flat connector to connect the manual control unit to it. Check the connection position of the 8-pin Molex connector to the head of the connector on the interface board, as shown in Fig. 15.10. Carefully insert the connector until it is securely connected. After this, the manipulator arm can be controlled from the hand-held remote control at any time. It doesn't matter whether the interface is connected to a computer or not.


Rice. 15.10. Manual control connection

DOS keyboard control program

There is a DOS program that allows you to control the operation of the manipulator arm from the computer keyboard in interactive mode. The list of keys corresponding to performing a particular function is given in the table.

B voice control The manipulator hand uses a speech recognition set (SRS), which was described in Chap. 7. In this chapter, we will make an interface that connects the URR with the manipulator arm. This interface is also offered as a kit by Images SI, Inc.

The interface diagram for the URR is shown in Fig. 15.11. The interface uses a 16F84 microcontroller. The program for the microcontroller looks like this:


‘URR interface program

Symbol PortA = 5

Symbol TRISA = 133

Symbol PortB = 6

Symbol TRISB = 134

If bit4 = 0 then trigger ‘If writing to the trigger is allowed, read the schema

Goto start ‘Repetition

pause 500 ‘Wait 0.5 s

Peek PortB, B0 ‘Read BCD code

If bit5 = 1 then send ‘Output code

goto start ‘Repeat

peek PortA, b0 ‘Reading port A

if bit4 = 1 then eleven ‘Is the number 11?

poke PortB, b0 ‘Output code

goto start ‘Repeat

if bit0 = 0 then ten

goto start ‘Repeat

goto start ‘Repeat



Rice. 15.11. Scheme of the URR controller for the robotic arm


The program update for 16F84 can be downloaded for free from http://www.imagesco.com

Programming the URR interface

Programming the URR interface is similar to the procedure for programming the URR from the set described in Chapter. 7. For the manipulator arm to work correctly, you must program the command words according to the numbers corresponding to the specific movement of the manipulator. In table 15.1 shows examples of command words that control the operation of the manipulator arm. You can choose command words according to your taste.

Table 15.1

PC Interface Parts List

(5) NPN transistor TIP120

(5) PNP TIP 125 transistor

(1) IC 74164 code converter

(1) IC 74LS373 eight keys

(1) LED red

(5) Diode 1N914

(1) 8-pin Molex female

(1) Molex cable 8-core 75mm long

(1) DIP switch

(1) DB25 angled connector

(1) Cable DB 25 1.8 m with two M-type connectors.

(1) Printed circuit board

(3) Resistor 15 kOhm, 0.25 W


All listed parts are included in the kit.

Speech Interface Parts List

(5) Transistor NPN TIP 120

(5) PNP TIP 125 transistor

(1) IC 4011 NOR gate

(1) IC 4049 – 6 buffers

(1) IC 741 operational amplifier

(1) Resistor 5.6 kOhm, 0.25 W

(1) Resistor 15 kOhm, 0.25 W

(1) Molex 8 pin header

(1) Molex cable 8 cores, length 75 mm

(10) Resistor 100 kOhm, 0.25 W

(1) Resistor 4.7 kOhm, 0.25 W

(1) IC voltage regulator 7805

(1) PIC 16F84 microcontroller IC

(1) 4.0 MHz crystal

Manipulator arm interface kit

Kit for making a manipulator arm from OWI

Speech recognition interface for robotic arm

Speech recognition device set


Parts can be ordered from:

Images, SI, Inc.

First, general issues will be discussed, then the technical characteristics of the result, details, and finally the assembly process itself.

In general and in general

Creation of this device In general, it should not cause any difficulties. It will be necessary to thoroughly think through the possibilities that will be quite difficult to implement from a physical point of view, so that the manipulating arm performs the tasks assigned to it.

Technical characteristics of the result

A sample with length/height/width parameters of 228/380/160 millimeters, respectively, will be considered. The weight of the finished product will be approximately 1 kilogram. Wired is used for control remote. Estimated assembly time if you have experience is about 6-8 hours. If it is not there, then it may take days, weeks, and with connivance even months for the manipulator arm to be assembled. With your own hands and alone in such cases it is worth doing only for your own self-interest. To move the components, commutator motors are used. With enough effort, you can make a device that will rotate 360 ​​degrees. Also, for ease of work, in addition to standard tools like a soldering iron and solder, you need to stock up on:

  1. Long nose pliers.
  2. Side cutters.
  3. Phillips screwdriver.
  4. 4 D type batteries.

Remote controller remote control can be implemented using buttons and a microcontroller. If desired, do remote wireless control an action control element will also be needed in the manipulator hand. As additions, only devices (capacitors, resistors, transistors) will be needed that will stabilize the circuit and transmit through it to the right moments time current of the required value.

Small parts

To regulate the number of revolutions, you can use adapter wheels. They will make the movement of the manipulator hand smooth.

It is also necessary to ensure that the wires do not complicate its movements. It would be optimal to lay them inside the structure. You can do everything from the outside; this approach will save time, but can potentially lead to difficulties in moving individual components or the entire device. And now: how to make a manipulator?

Assembly in general

Now let's proceed directly to creating the manipulator arm. Let's start from the foundation. It is necessary to ensure that the device can be rotated in all directions. Good decision it will be placed on a disk platform, which is driven into rotation by a single motor. So that it can rotate in both directions, there are two options:

  1. Installation of two engines. Each of them will be responsible for turning in a specific direction. When one is working, the other is at rest.
  2. Installing one motor with a circuit that can make it spin in both directions.

Which of the proposed options to choose depends entirely on you. Next, the main structure is made. For comfortable work, two “joints” are needed. Attached to the platform must be able to bend over different sides, which is solved with the help of engines located at its base. Another one or a pair should be placed at the elbow bend so that part of the grip can be moved along the horizontal and vertical lines of the coordinate system. Further, if you want to get maximum capabilities, you can install another motor at the wrist. Next is the most necessary, without which a manipulating hand is impossible. You will have to make the capture device itself with your own hands. There are many implementation options here. You can give a tip on the two most popular:

  1. Only two fingers are used, which simultaneously compress and unclench the object to be grasped. It is the simplest implementation, which, however, usually cannot boast of significant load-carrying capacity.
  2. A prototype of a human hand is created. Here, one motor can be used for all fingers, with the help of which bending/extension will be carried out. But the design can be made more complex. So, you can connect a motor to each finger and control them separately.

Next, it remains to make a remote control, with the help of which the individual engines and the pace of their operation will be influenced. And you can start experimenting using a robotic manipulator you made yourself.

Possible schematic representations of the result

Provides ample opportunities for creative ideas. Therefore, we present to your attention several implementations that you can take as a basis for creating your own own device similar purpose.

Any presented manipulator circuit can be improved.

Conclusion

The important thing about robotics is that there is virtually no limit to functional improvement. Therefore, if you wish, creating a real work of art will not be difficult. Speaking about possible ways of further improvement, it is worth mentioning the crane. Making such a device with your own hands is not difficult; at the same time, it will allow you to accustom children to creative work, science and design. And this, in turn, can have a positive impact on their future life. Will it be difficult to make a crane with your own hands? This is not as problematic as it might seem at first glance. Is it worth taking care of the availability of additional small parts like a cable and wheels on which it will spin.

This article is an introductory guide for beginners on how to create robotic arms, which are programmed using Arduino. The concept is that the robotic arm project will be inexpensive and easy to build. We will assemble a simple prototype with code that can and should be optimized; this will be an excellent start for you in robotics. The Arduino robotic arm is controlled by a hacked joystick and can be programmed to repeat a sequence of actions that you specify. If you are not strong in programming, then you can take on the project as a training for assembling hardware, upload my code into it and get a result based on it basic knowledge. Again, the project is quite simple.

The video shows a demo of my robot.

Step 1: List of Materials



We will need:

  1. Arduino board. I used Uno, but any variety will do the job equally well for the project.
  2. Servos, 4 of the Cheapest You'll Find.
  3. Housing materials to suit your taste. Wood, plastic, metal, cardboard are suitable. My project is made from an old notepad.
  4. If you don't want to bother with a printed circuit board, you'll need a breadboard. Suitable board small size, look for options with jumpers and a power supply - they can be quite cheap.
  5. Something for the base of the arm - I used a coffee can, it's not the best option, but it's all I could find in the apartment.
  6. A thin thread for the arm mechanism and a needle for making holes.
  7. Glue and tape to hold everything together. There's nothing that can't be held together with duct tape and hot glue.
  8. Three 10K resistors. If you don't have resistors, there is a workaround in the code for such cases, however the best option will buy resistors.

Step 2: How it works



The attached figure shows the working principle of the hand. I will also explain everything in words. The two parts of the hand are connected by a thin thread. The middle of the thread is connected to the arm servo. When the servo pulls the thread, the hand contracts. I equipped the arm with a ballpoint pen spring, but if you have more flexible material, you can use it.

Step 3: Modifying the Joystick

Assuming you've already finished assembling the arm mechanism, I'll move on to the joystick part.

An old joystick was used for this project, but in principle any device with buttons will do. Analog buttons (mushrooms) are used to control servos, since they are essentially just potentiometers. If you don't have a joystick, you can use three regular potentiometers, but if you're like me and you're DIYing an old joystick, here's what you need to do.

I connected potentiometers to breadboard, each of them has three terminals. One of them needs to be connected to GND, the second to +5V on the Arduino, and the middle one to the input, which we will define later. We won't be using the Y axis on the left potentiometer, so we only need the potentiometer above the joystick.

As for the switches, connect +5V to one end, and the wire that goes to the other Arduino input to the other end. My joystick has a common +5V line for all switches. I connected only 2 buttons, but then I connected another one because it was needed.

It is also important to cut the wires that go to the chip (black circle on the joystick). Once you have completed all of the above, you can begin wiring.

Step 4: Wiring our device

The photo shows the electrical wiring of the device. Potentiometers are levers on a joystick. Elbow is the right Y axis, Base is the right X axis, Shoulder is the left X axis. If you want to change the direction of the servos, simply change the position of the +5V and GND wires on the corresponding potentiometer.

Step 5: Upload Code

At this point, we need to download the attached code to your computer and then upload it to the Arduino.

Note: if you have already uploaded code to Arduino before, then simply skip this step - you will not learn anything new.

  1. Open Arduino IDE and paste the code into it
  2. In Tools/Board select your board
  3. In Tools/Serial Port, select the port your board is connected to. Most likely, the choice will consist of one item.
  4. Click the Upload button.

You can change the range of operation of the servos, I left notes in the code on how to do this. Most likely, the code will work without problems, you will only need to change the arm servo parameter. This setting depends on how you have your filament set up, so I recommend getting it exactly right.

If you are not using resistors, then you will need to modify the code where I left notes about it.

Files

Step 6: Starting the Project

The robot is controlled by movements on the joystick, the hand is compressed and unclenched using the hand button. The video shows how everything works in real life.

Here's a way to program the hand:

  1. Open Serial Monitor in Arduino IDE, this will make it easier to monitor the process.
  2. Save the starting position by clicking Save.
  3. Move only one servo at a time, for example, Shoulder Up, and press save.
  4. Activate the hand also only during its step, and then save by pressing save. Deactivation is also performed in a separate step, followed by pressing save.
  5. When you finish the sequence of commands, press the play button, the robot will move to the starting position and then begin to move.
  6. If you want to stop it, disconnect the cable or press the reset button on the Arduino board.

If you did everything correctly, the result will be similar to this!

I hope the lesson was useful to you!

Among the features of this robot on the Arduino platform, one can note the complexity of its design. The robotic arm consists of many levers that allow it to move along all axes, grab and move various things using only 4 servo motors. Having collected with my own hands such a robot, you will definitely be able to surprise your friends and loved ones with the capabilities and pleasant view of this device! Remember that for programming you can always use our graphical environment RobotON Studio!

If you have any questions or comments, we are always in touch! Create and post your results!

Peculiarities:

To assemble a robotic arm with your own hands, you will need quite a few components. The main part is occupied by 3D printed parts, there are about 18 of them (it is not necessary to print the slide). If you downloaded and printed everything you need, then you will need bolts, nuts and electronics:

  • 5 M4 20mm bolts, 1 x 40mm and matching nuts with anti-twist protection
  • 6 M3 10mm bolts, 1 x 20mm and corresponding nuts
  • Breadboard with connecting wires or shield
  • Arduino Nano
  • 4 servo motors SG 90

After assembling the housing, it is IMPORTANT to ensure that it moves freely. If the Roboarm's key components move with difficulty, the servo motors may not be able to cope with the load. When assembling electronics, you must remember that it is better to connect the circuit to power after thoroughly checking the connections. To avoid damage to the SG 90 servo drives, you do not need to turn the motor itself by hand unless necessary. If you need to develop SG 90, you need to smoothly move the motor shaft in different directions.

Characteristics:
  • Simple programming due to the presence of a small number of motors, and of the same type
  • Presence of dead zones for some servos
  • Wide applicability of the robot in everyday life
  • Interesting engineering work
  • The need to use a 3D printer

Hello Giktimes!

The uArm project from uFactory raised funds on Kickstarter more than two years ago. They said from the very beginning that it would be open project, but immediately after the end of the campaign they were in no hurry to publish the source code. I just wanted to cut the plexiglass according to their drawings and that’s it, but since there were no source materials and there was no sign of it in the foreseeable future, I began to repeat the design from photographs.

Now my robotic arm looks like this:

Working slowly in two years, I managed to make four versions and gained quite a lot of experience. You can find the description, history of the project and all project files under the cut.

Trial and error

When I started working on the drawings, I wanted not just to repeat uArm, but to improve it. It seemed to me that in my conditions it was quite possible to do without bearings. I also didn’t like the fact that the electronics rotated along with the entire manipulator and I wanted to simplify the design of the lower part of the hinge. Plus I started drawing him a little smaller right away.

With these input parameters I drew the first version. Unfortunately, I do not have any photographs of that version of the manipulator (which was made in yellow color). The mistakes in it were simply epic. Firstly, it was almost impossible to assemble. As a rule, the mechanics that I drew before the manipulator were quite simple, and I did not have to think about the assembly process. But still, I assembled it and tried to start it, and my hand hardly moved! All the parts revolved around the screws and if I tightened them so that there was less play, she could not move. If I loosened it so that it could move, incredible play appeared. As a result, the concept did not survive even three days. And he started working on the second version of the manipulator.

Red was already quite suitable for work. It assembled normally and could move with lubrication. I was able to test the software on it, but still the lack of bearings and large losses on different thrusts made it very weak.

Then I abandoned work on the project for some time, but soon decided to bring it to fruition. I decided to use more powerful and popular servos, increase the size and add bearings. Moreover, I decided that I would not try to do everything perfectly at once. I sketched the drawings on quick hands, without drawing beautiful connections and ordered cutting from transparent plexiglass. Using the resulting manipulator, I was able to debug the assembly process, identified areas that needed additional strengthening, and learned how to use bearings.

After I had a lot of fun with the transparent manipulator, I started drawing the final white version. So, now all the mechanics are completely debugged, they suit me and I’m ready to say that I don’t want to change anything else in this design:

It depresses me that I could not bring anything fundamentally new to the uArm project. By the time I started drawing the final version, they had already rolled out the 3D models on GrabCad. As a result, I just simplified the claw a little, prepared the files in a convenient format and used very simple and standard components.

Features of the manipulator

Before the advent of uArm, desktop manipulators of this class looked rather dull. They either had no electronics at all, or had some kind of control with resistors, or had their own proprietary software. Secondly, they usually did not have a system of parallel hinges and the grip itself changed its position during operation. If you collect all the advantages of my manipulator, you get a fairly long list:
  1. A system of rods that allows powerful and heavy motors to be placed in the base of the manipulator, as well as holding the gripper parallel or perpendicular to the base
  2. A simple set of components that are easy to buy or cut from plexiglass
  3. Bearings in almost all components of the manipulator
  4. Easy to assemble. It turned out to be true challenging task. It was especially difficult to think through the process of assembling the base
  5. The grip position can be changed by 90 degrees
  6. Open source and documentation. Everything is prepared in accessible formats. I will provide download links for 3D models, cutting files, list of materials, electronics and software
  7. Arduino compatible. There are many detractors of Arduino, but I believe this is an opportunity to expand the audience. Professionals can easily write their software in C - this is a regular controller from Atmel!

Mechanics

To assemble, you need to cut out parts from 5mm thick plexiglass:

They charged me about $10 to cut all these parts.

The base is mounted on a large bearing:

It was especially difficult to think through the base from the point of view of the assembly process, but I kept an eye on the engineers from uArm. The rockers sit on a pin with a diameter of 6mm. It should be noted that my elbow pull is held on a U-shaped holder, while uFactory’s is held on an L-shaped one. It's hard to explain what the difference is, but I think I did better.

The grip is assembled separately. It can rotate around its axis. The claw itself sits directly on the motor shaft:

At the end of the article I will provide a link to super detailed assembly instructions in photographs. You can confidently twist it all together in a couple of hours if you have everything you need at hand. I also prepared a 3D model in free program SketchUp. You can download it, play it and see what and how it was assembled.

Electronics

To make your hand work, you just need to connect five servos to the Arduino and supply them with power from good source. uArm uses some kind of motors with feedback. I installed three regular MG995 motors and two small metal geared motors to control the gripper.

Here my narrative is closely intertwined with previous projects. Some time ago I started teaching Arduino programming and even prepared my own Arduino-compatible board for these purposes. On the other hand, one day I had the opportunity to make boards cheaply (which I also wrote about). In the end, it all ended with me using my own Arduino-compatible board and a specialized shield to control the manipulator.

This shield is actually very simple. It has four variable resistors, two buttons, five servo connectors and a power connector. This is very convenient from a debugging point of view. You can upload a test sketch and record some macro for control or something like that. I will also give a link to download the board file at the end of the article, but it is prepared for manufacturing with metallized holes, so it is of little use for home production.

Programming

The most interesting thing is controlling the manipulator from a computer. uArm has a convenient application for controlling the manipulator and a protocol for working with it. The computer sends 11 bytes to the COM port. The first one is always 0xFF, the second one is 0xAA and some of the remaining ones are signals for servos. Next, these data are normalized and sent to the engines for processing. My servos are connected to digital inputs/outputs 9-12, but this can be easily changed.

uArm's terminal program allows you to change five parameters when controlling the mouse. As the mouse moves across the surface, the position of the manipulator in the XY plane changes. Rotating the wheel changes the height. LMB/RMB - compress/uncompress the claw. RMB + wheel - rotate the grip. It's actually very convenient. If you wish, you can write any terminal software that will communicate with the manipulator using the same protocol.

I will not provide sketches here - you can download them at the end of the article.

Video of work

And, finally, the video of the manipulator itself. It shows how to control a mouse, resistors, and a pre-recorded program.

Links

Files for cutting plexiglass, 3D models, a purchase list, board drawings and software can be downloaded at the end of my