Making a robotic manipulator with your own hands. Inexpensive robotic arm, programmable on Arduino: do-it-yourself robotic manipulator. Types of industrial robotic manipulators

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. Automated action programming is widely used in industrial and entertainment industries.

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 a 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 to study 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 manipulator arms, which can be purchased from many distributors electronic devices(See parts list at the 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 also does not constitute special labor. 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. A script file can contain up to 99 different 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 heavy enough 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 look at how a digital signal controls the operation of a single 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 a 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 insert the connector pins into the board with excessive force; 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 are spaces left on the board for additional details. This location is for the 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 serial code to the IC, we can get eight additional I/O buses. 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 each time new team on the manipulator hand. 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 is 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 The Images icon will appear in the menu.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 upper right corner of the 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 “animation” 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

You can improve the operation of the device by adding a circuit to it feedback, which tracks the position of the manipulating 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 the initial 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 sure that the interface is working in the right way, you can connect a manual control unit to it using an 8-pin flat connector. 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.

In voice control of the manipulator arm, a speech recognition set (SRR) is used, which was described in Chapter. 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 robotic arm to work properly, you must program command words according to the numbers corresponding to a certain 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.

One of the main driving forces automation modern production are industrial robotic manipulators. Their development and implementation allowed enterprises to reach a new scientific and technical level of task performance, redistribute responsibilities between technology and people, and increase productivity. We will talk about the types of robotic assistants, their functionality and prices in the article.

Assistant No. 1 – robotic manipulator

Industry is the foundation of most economies in the world. The income of not only individual production, but also the state budget depends on the quality of the goods offered, volumes and pricing.

In light of the active introduction of automated lines and widespread use smart technology requirements for supplied products are increasing. It is almost impossible today to withstand competition without the use of automated lines or industrial robotic manipulators.

How does an industrial robot work?

The robotic arm looks like a huge automated “arm” controlled by an electrical control system. There are no pneumatics or hydraulics in the design of the devices; everything is built on electromechanics. This has reduced the cost of robots and increased their durability.

Industrial robots can be 4-axis (used for laying and packaging) and 6-axis (for other types of work). In addition, robots differ depending on the degree of freedom: from 2 to 6. The higher it is, the more accurately the manipulator recreates the movement of a human hand: rotation, movement, compression/release, tilting, etc.
The operating principle of the device depends on its software and equipment, and if at the beginning of its development the main goal was the liberation of workers from heavy and dangerous looking work, today the range of tasks performed has increased significantly.

The use of robotic assistants allows you to cope with several tasks simultaneously:

  • reduction of working space and release of specialists (their experience and knowledge can be used in another area);
  • increase in production volumes;
  • improving product quality;
  • Thanks to the continuity of the process, the production cycle is shortened.

In Japan, China, the USA, and Germany, enterprises employ a minimum of employees, whose responsibility is only to control the operation of manipulators and the quality of manufactured products. It is worth noting that an industrial robotic manipulator is not only a functional assistant in mechanical engineering or welding. Automated devices are presented in a wide range and are used in metallurgy, light and Food Industry. Depending on the needs of the enterprise, you can select a manipulator that matches functional responsibilities and budget.

Types of industrial robotic manipulators

Today there are about 30 species robotic arms: from universal models to highly specialized assistants. Depending on the functions performed, the mechanisms of the manipulators may differ: for example, they may be welding work, cutting, drilling, bending, sorting, stacking and packaging of goods.

In contrast to the existing stereotype about the high cost of robotic technology, everyone, even a small enterprise, will be able to purchase such a mechanism. Small universal robotic manipulators with a small load capacity (up to 5 kg) from ABB and FANUC will cost from 2 to 4 thousand dollars.
Despite the compactness of the devices, they are able to increase the speed of work and the quality of product processing. For each robot, unique software will be written that precisely coordinates the operation of the unit.

Highly specialized models

Robot welders have found their greatest application in mechanical engineering. Due to the fact that the devices are capable of welding not only straight parts, but also effectively carry out welding work at an angle, in hard to reach places install entire automated lines.

A conveyor system is launched, where each robot does its part of the work within a certain time, and then the line begins to move to the next stage. Organizing such a system with people is quite difficult: none of the workers should be absent even for a second, otherwise the whole manufacturing process, or a marriage appears.

Welders
The most common options are welding robots. Their performance and accuracy are 8 times higher than that of humans. Such models can perform several types of welding: arc or spot (depending on the software).

Kuka industrial robotic manipulators are considered leaders in this field. Cost from 5 to 300 thousand dollars (depending on load capacity and functions).

Pickers, movers and packers
Heavy and harmful to human body labor has led to the emergence of automated assistants in this industry. Packaging robots prepare goods for shipment in a matter of minutes. The cost of such robots is up to 4 thousand dollars.

Manufacturers ABB, KUKA, and Epson offer the use of devices for lifting heavy loads weighing more than 1 ton and transporting them from the warehouse to the loading site.

Manufacturers of industrial robot manipulators

Japan and Germany are considered the undisputed leaders in this industry. They account for more than 50% of all robotic technology. It is not easy to compete with giants, however, and in the CIS countries their own manufacturers and startups are gradually appearing.

KNN Systems. The Ukrainian company is a partner of the German Kuka and is developing projects for the robotization of welding, milling, plasma cutting and palletization. Thanks to their software, an industrial robot can be reconfigured to the new kind tasks in just one day.

Rozum Robotics (Belarus). The company's specialists have developed the PULSE industrial robotic manipulator, which is distinguished by its lightness and ease of use. The device is suitable for assembling, packaging, gluing and rearranging parts. The price of the robot is around $500.

"ARKODIM-Pro" (Russia). Engaged in the production of linear robotic manipulators (moving along linear axes) used for plastic injection molding. In addition, ARKODIM robots can work as part of a conveyor system and perform the functions of a welder or packer.

Has backlight. In total, the robot operates on 6 servomotors. Acrylic two millimeters thick was used to create the mechanical part. To make the tripod, the base was taken from a disco ball, and one motor was built directly into it.

The robot runs on an Arduino board. A computer unit is used as a power source.

Materials and tools:
- 6 servomotors;
- acrylic 2 mm thick (and another small piece 4 mm thick);
- tripod (to create a base);
- ultrasonic distance sensor type hc-sr04;
- Arduino Uno controller;
- power controller (manufactured independently);
- power supply from the computer;
- computer (needed for programming Arduino);
- wires, tools, etc.



Manufacturing process:

Step one. Assembling the mechanical part of the robot
The mechanical part is assembled very simply. Two pieces of acrylic need to be connected using a servo motor. The other two links are connected in a similar way. As for the grip, it is best to buy it online. All elements are fastened with screws.

The length of the first part is about 19 cm, and the second is approximately 17.5 cm. The front link has a length of 5.5 cm. As for the remaining elements, their sizes are chosen at personal discretion.





Angle of rotation at base mechanical arm should be 180 degrees, so you need to install a servo motor from below. In our case, it needs to be installed in a disco ball. The robot is already installed on the servomotor.

For installation ultrasonic sensor You will need a piece of acrylic 2 cm thick.

To install the grabber you will need several screws and a servo motor. You need to take the rocker from the servomotor and shorten it until it fits the gripper. Then you can tighten the two small screws. After installation, the servomotor must be turned to the extreme left position and the gripping jaws must be closed.

Now the servomotor is attached to 4 bolts, it is important to ensure that it is in the extreme left position and the lips are pressed together.
Now you can connect the servo to the board and check if the gripper works.








Step two. Robot lighting
To make the robot more interesting, you can backlight it. This is done using LEDs of various colors.


Step three. Connecting the electronic part
The main controller for the robot is the Arduino board. A computer unit is used as a power source; at its outputs you need to find a voltage of 5 Volts. It should be there if you measure the voltage on the red and black wires with a multimeter. This voltage is needed to power the servomotors and the distance sensor. The yellow and black wires of the block already produce 12 Volts, they are needed for the Arduino to work.

For servomotors you need to make five connectors. We connect 5V to the positive ones, and the negative ones to ground. The distance sensor is connected in the same way.

The board also has an LED power indicator. To connect it, a 100 Ohm resistor is used between +5V and ground.










The outputs from the servo motors are connected to the PWM outputs on the Arduino. Such pins on the board are indicated by the “~” icon. As for the ultrasonic distance sensor, it can be connected to pins 6 and 7. The LED is connected to ground and the 13th pin.

Now you can start programming. Before connecting via USB, you need to make sure that the power is completely turned off. When testing the program, the robot's power must also be turned off. If this is not done, the controller will receive 5V from USB and 12V from the power supply.

In the diagram you can see that potentiometers have been added to control the servo motors. They are not a necessary component of the robot, but without them the proposed code will not work. Potentiometers are connected to pins 0,1,2,3 and 4.

There is a resistor R1 on the diagram; it can be replaced with a 100 kOhm potentiometer. This will allow you to adjust the brightness manually. As for resistors R2, their nominal value is 118 Ohms.

Here is a list of the main components that were used:
- 7 LEDs;
- R2 - 118 Ohm resistor;
- R1 - 100 kOhm resistor;
- switch;
- photoresistor;
- transistor bc547.

Step four. Programming and first launch of the robot
To control the robot, 5 potentiometers were used. It is quite possible to replace such a circuit with one potentiometer and two joysticks. How to connect the potentiometer was shown in the previous step. After installing the sketch, the robot can be tested.

The first tests of the robot showed that the installed servo motors of the futuba s3003 type turned out to be weak for the robot. They can only be used to turn the hand or to grasp. Instead, the author installed mg995 engines. Ideal option there will be engines like mg946.

We are creating a robotic manipulator using a rangefinder and implementing backlighting.

We will cut the base from acrylic. We use servo drives as motors.

General description of the robotic manipulator project

The project uses 6 servo motors. For the mechanical part, acrylic 2 mm thick was used. The base from a disco ball came in handy as a tripod (one of the motors is mounted inside). An ultrasonic distance sensor and a 10 mm LED are also used.

An Arduino power board is used to control the robot. The power source itself is the computer power supply.

The project provides comprehensive explanations for the development of a robotic arm. The issues of power supply of the developed design are considered separately.

Main components for the manipulator project

Let's start development. You will need:

  • 6 servomotors (I used 2 models mg946, 2 mg995, 2 futuba s3003 (mg995/mg946 have better characteristics than futuba s3003, but the latter are much cheaper);
  • acrylic 2 millimeters thick (and a small piece 4 mm thick);
  • ultrasonic distance sensor hc-sr04;
  • LEDs 10 mm (color - at your discretion);
  • tripod (used as a base);
  • aluminum grip (costs about 10-15 dollars).

For driving:

  • Arduino Uno board (the project uses a homemade board that is completely similar to Arduino);
  • power board (you will have to make it yourself, we will return to this issue later, it requires special attention);
  • power supply (in in this case computer power supply is used);
  • a computer for programming your manipulator (if you use Arduino for programming, then the Arduino IDE)

Of course, you will need cables and some basic tools like screwdrivers and the like. Now we can move on to design.

Mechanical assembly

Before starting to develop the mechanical part of the manipulator, it is worth noting that I do not have drawings. All knots were made “on the knee”. But the principle is very simple. You have two acrylic links, between which you need to install servo motors. And the other two links. Also for installing engines. Well, the grab itself. The easiest way to buy such a grip is on the Internet. Almost everything is installed with screws.

The length of the first part is about 19 cm; the second - about 17.5; The length of the front link is about 5.5 cm. Select the remaining dimensions in accordance with the dimensions of your project. In principle, the sizes of the remaining nodes are not so important.

The mechanical arm must provide a rotation angle of 180 degrees at the base. So we have to install a servo motor at the bottom. In this case, it is installed in the same disco ball. In your case, this could be any suitable box. The robot is mounted on this servo motor. You can, as shown in the figure, install an additional metal flange ring. You can do without it.

To install the ultrasonic sensor, 2 mm thick acrylic is used. You can install an LED right below.

It is difficult to explain in detail exactly how to construct such a manipulator. Much depends on the components and parts that you have in stock or purchase. For example, if the dimensions of your servos are different, the acrylic armature links will also change. If the dimensions change, the calibration of the manipulator will also be different.

You will definitely have to extend the servo motor cables after completing the development of the mechanical part of the manipulator. For these purposes, this project used wires from an Internet cable. In order for all this to look like, don’t be lazy and install adapters on the free ends of the extended cables - female or male, depending on the outputs of your Arduino board, shield or power source.

After assembling the mechanical part, we can move on to the “brains” of our manipulator.

Manipulator grip

To install the grip you will need a servo motor and some screws.

So what exactly needs to be done.

Take the rocker from the servo and shorten it until it fits your grip. After this, tighten the two small screws.

After installing the servo, turn it to the extreme left position and squeeze the gripper jaws.

Now you can install the servo with 4 bolts. At the same time, make sure that the engine is still in the extreme left position and the gripper jaws are closed.

You can connect the servo drive to the Arduino board and check the functionality of the gripper.

Please note that gripper operation problems may occur if the bolts/screws are over-tightened.

Adding lighting to the pointer

You can brighten up your project by adding lighting to it. LEDs were used for this. It's easy to do and looks very impressive in the dark.

Places for installing LEDs depend on your creativity and imagination.

Electrical diagram

You can use a 100 kOhm potentiometer instead of resistor R1 to manually adjust the brightness. 118 Ohm resistors were used as resistance R2.

List of main components that were used:

  • R1 - 100 kOhm resistor
  • R2 - 118 Ohm resistor
  • Transistor bc547
  • Photoresistor
  • 7 LEDs
  • Switch
  • Connection to Arduino board

An Arduino board was used as a microcontroller. The power supply from a personal computer was used as power supply. By connecting the multimeter to the red and black cables, you will see 5 volts (which are used for the servo motors and ultrasonic distance sensor). Yellow and black will give you 12 volts (for Arduino). We make 5 connectors for the servomotors, in parallel we connect the positive ones to 5 V, and the negative ones to ground. Same with the distance sensor.

After this, connect the remaining connectors (one from each servo and two from the rangefinder) to the board we soldered and the Arduino. At the same time, do not forget to correctly indicate the pins that you used in the program in the future.

In addition, a power LED indicator was installed on the power board. This is easy to implement. Additionally a 100 ohm resistor was used between 5V and ground.

The 10mm LED on the robot is also connected to the Arduino. A 100 ohm resistor goes from pin 13 to the positive leg of the LED. Negative - to the ground. You can disable it in the program.

For 6 servo motors, 6 connectors are used, since the 2 servo motors below use the same control signal. The corresponding conductors are connected and connected to one pin.

I repeat that the power supply from a personal computer is used as power supply. Or, of course, you can purchase a separate power supply. But taking into account the fact that we have 6 drives, each of which can consume about 2 A, such a powerful power supply will not be cheap.

Please note that the connectors from the servos are connected to the PWM outputs of the Arduino. Near each such pin on the board there is symbol~. An ultrasonic distance sensor can be connected to pins 6, 7. An LED can be connected to pin 13 and ground. These are all the pins we need.

Now we can move on to Arduino programming.

Before connecting the board via USB to your computer, make sure you turn off the power. When you test the program, also turn off the power to your robotic arm. If the power is not turned off, the Arduino will receive 5 volts from the usb and 12 volts from the power supply. Accordingly, the power from usb will transfer to the power source and it will “sag” a little.

The wiring diagram shows that potentiometers have been added to control the servos. Potentiometers are optional, but the code above will not work without them. Potentiometers can be connected to pins 0,1,2,3 and 4.

Programming and first launch

5 potentiometers are used for control (you can completely replace this with 1 potentiometer and two joysticks). The connection diagram with potentiometers is shown in the previous part. The Arduino sketch is here.

Below are several videos of the robotic arm in action. I hope you will enjoy.

The video above shows the latest modifications of the armament. I had to change the design a little and replace a few parts. It turned out that the futuba s3003 servos were rather weak. They turned out to be used only for gripping or turning the hand. So they installed mg995. Well, mg946 will generally be an excellent option.

Control program and explanations for it

// drives are controlled using variable resistors - potentiometers.

int potpin = 0; // analog pin for connecting a potentiometer

int val; // variable for reading data from the analog pin

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

pinMode(led, OUTPUT);

( //servo 1 analog pin 0

val = analogRead(potpin); // reads the potentiometer value (value between 0 and 1023)

// scales the resulting value for use with servos (getting a value in the range from 0 to 180)

myservo1.write(val); // brings the servo to a position in accordance with the calculated value

delay(15); // waits for the servomotor to reach the specified position

val = analogRead(potpin1); // servo 2 on analog pin 1

val = map(val, 0, 1023, 0, 179);

myservo2.write(val);

val = analogRead(potpin2); // servo 3 on analog pin 2

val = map(val, 0, 1023, 0, 179);

myservo3.write(val);

val = analogRead(potpin3); // servo 4 on analog pin 3

val = map(val, 0, 1023, 0, 179);

myservo4.write(val);

val = analogRead(potpin4); //serva 5 on analog pin 4

val = map(val, 0, 1023, 0, 179);

myservo5.write(val);

Sketch using an ultrasonic distance sensor

This is probably one of the most impressive parts of the project. A distance sensor is installed on the manipulator, which reacts to obstacles around.

Basic explanations of the code are presented below

#define trigPin 7

The following piece of code:

We assigned names to all 5 signals (for 6 drives) (can be anything)

Following:

Serial.begin(9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(led, OUTPUT);

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

We tell the Arduino board which pins the LEDs, servo motors and distance sensor are connected to. There is no need to change anything here.

void position1())(

digitalWrite(led, HIGH);

myservo2.writeMicroseconds(1300);

myservo4.writeMicroseconds(800);

myservo5.writeMicroseconds(1000);

There are some things you can change here. I set a position and called it position1. It will be used in the future program. If you want to provide different movement, change the values ​​in brackets from 0 to 3000.

After that:

void position2())(

digitalWrite(led,LOW);

myservo2.writeMicroseconds(1200);

myservo3.writeMicroseconds(1300);

myservo4.writeMicroseconds(1400);

myservo5.writeMicroseconds(2200);

Similar to the previous piece, only in this case it is position2. Using the same principle, you can add new positions for movement.

long duration, distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration/2) / 29.1;

Now the main code of the program begins to work out. You shouldn't change it. The main task of the above lines is to configure the distance sensor.

After that:

if (distance<= 30) {

if (distance< 10) {

myservo5.writeMicroseconds(2200); //open grabber

myservo5.writeMicroseconds(1000); //close the grabber

You can now add new movements based on the distance measured by the ultrasonic sensor.

if(distance<=30){ // данная строка обеспечивает переход в position1, если расстояние меньше 30 см.

position1(); //essentially the arm will work out whatever you specify between the brackets ( )

else( // if the distance is greater than 30 cm, go to position2

position()2 // similar to the previous line

You can change the distance in the code and do whatever you want.

Last lines of code

if (distance > 30 || distance<= 0){

Serial.println("Out of range"); //output a message in the serial monitor that we have gone beyond the specified range

Serial.print(distance);

Serial.println("cm"); //distance in centimeters

delay(500); //delay 0.5 seconds

Of course, you can convert everything here into millimeters, meters, change the displayed message, etc. You can play around with the delay a little.

That's all. Enjoy, upgrade your own manipulators, share ideas and results!

Municipal budgetary institution

additional education "Station for Young Technicians"

city ​​of Kamensk Shakhtinsky

Municipal stage of the regional competition

“Young designers of the Don for the third millennium”

Section "Robotics"

« Arduino manipulator arm"

additional education teacher

MBU DO "SYUT"

    Introduction 3

    Research and analysis 4

    Stages of manufacturing units and assembling the manipulator 6

    1. Materials and tools 6

      Mechanical components of manipulator 7

      Electronic filling of manipulator 9

    Conclusion 11

    Sources of information 12

    Appendix 13

    Introduction

A robotic manipulator is a three-dimensional machine that has three dimensions corresponding to the space of a living being. In a broad sense, a manipulator can be defined as a technical system that can replace a person or help him perform various tasks.

Currently, the development of robotics is not progressing, but running, ahead of time. In the first 10 years of the 21st century alone, more than 1 million robots were invented and implemented. But the most interesting thing is that developments in this area can be carried out not only by teams of large corporations, groups of scientists and professional engineers, but also by ordinary schoolchildren around the world.

Several complexes have been developed to study robotics at school. The most famous of them are:

    Robotis Bioloid;

    LEGO Mindstorms;

  • Arduino.

Arduino constructors are of great interest to robot builders. Arduino boards are a radio design kit, very simple, but functional enough for very fast programming in the Viring language (actually C++) and bringing technical ideas to life.

But as practice shows, it is the work of young specialists of the new generation that is acquiring increasing practical importance.

Teaching children programming will always be relevant, since the rapid development of robotics is associated, first of all, with the development of information technologies and means of communication.

The goal of the project is to create an educational radio-constructor based on a manipulator arm, to teach children programming in the Arduino environment in a playful way. To provide an opportunity for as many children as possible to become acquainted with design activities in robotics.

Project objectives:

    develop and build a teaching arm - a manipulator with minimal cost, which is not inferior to foreign analogues;

    use servos as manipulator mechanisms;

    control the manipulator mechanisms using the Arduino UNO R 3 radio kit;

    develop a program in the Arduino programming environment for proportional control of servos.

To achieve the set goal and objectives of our project, it is necessary to study the types of existing manipulators, technical literature on this topic and the Arduino hardware and computing platform.

    Research and analysis

Study.

Industrial manipulator - designed to perform motor and control functions in the production process, i.e., an automatic device consisting of a manipulator and a reprogrammable control device that generates control actions that set the required movements of the manipulator's executive bodies. It is used to move production items and perform various technological operations.

ABOUT
the booming constructor - the manipulator is equipped with a robotic arm that compresses and unclenches. With its help you can play chess by controlling it remotely. You can also use a robotic hand to hand out business cards. Movements include: wrist 120°, elbow 300°, basic rotation 270°, basic movement 180°. The toy is very good and useful, but its cost is about 17,200 rubles.

Thanks to the “uArm” project, anyone can assemble their own desktop mini-robot. “uArm” is a 4-axis manipulator, a miniature version of the industrial robot “ABB PalletPack IRB460”. The manipulator is equipped with an Atmel microprocessor and a set of servomotors, the total cost of the necessary parts is 12,959 rubles. The uArm project requires at least basic programming skills and experience building Legos. The mini-robot can be programmed for many functions: from playing a musical instrument to loading some complex program. Currently, applications are being developed for iOS and Android, which will allow you to control “uArm” from a smartphone.

Manipulators "uArm"

Most existing manipulators involve the placement of motors directly in the joints. This is simpler in design, but it turns out that the engines must lift not only the payload, but also other engines.

Analysis.

We took as a basis the manipulator presented on the Kickstarter website, which was called “uArm”. The advantage of this design is that the platform for placing the gripper is always parallel to the working surface. Heavy engines are located at the base, forces are transmitted through rods. As a result, the manipulator has three servos (three degrees of freedom), which allow it to move the tool along all three axes by 90 degrees.

They decided to install bearings in the moving parts of the manipulator. This design of the manipulator has a lot of advantages over many models that are currently on sale: In total, the manipulator uses 11 bearings: 10 pieces for a 3mm shaft and one for a 30mm shaft.

Characteristics of the manipulator arm:

Height: 300mm.

Working area (with arm fully extended): from 140mm to 300mm around the base

Maximum load capacity at arm's length: 200g

Current consumption, no more: 1A

Easy to assemble. A lot of attention was paid to ensuring that there was such a sequence of assembly of the manipulator, in which it would be extremely convenient to screw all the parts. This was especially difficult for the powerful servo drive units in the base.

Control is implemented using variable resistors, proportional control. You can design a pantograph-type control, like that of the nuclear scientists and the hero in the big robot from the movie “Avatar”; it can also be controlled with a mouse, and using code examples you can create your own movement algorithms.

Openness of the project. Anyone can make their own tools (suction cup or pencil clip) and load the program (sketch) necessary to complete the task into the controller.

    Stages of manufacturing components and assembling the manipulator

      Materials and tools

To make the manipulator arm, a composite panel with a thickness of 3mm and 5mm was used. This is a material that consists of two aluminum sheets, 0.21 mm thick, connected by a thermoplastic polymer layer, has good rigidity, is lightweight and is easy to process. The downloaded photographs of the manipulator on the Internet were processed by the Inkscape computer program (vector graphics editor). The drawings of the manipulator arm were drawn in the AutoCAD program (a three-dimensional computer-aided design and drawing system).

Ready-made parts for the manipulator.

Finished parts of the manipulator base.

      Mechanical contents of the manipulator

MG-995 servos were used for the base of the manipulator. These are digital servos with metal gears and ball bearings; they provide a force of 4.8 kg/cm, precise positioning and acceptable speed. One servo drive weighs 55.0 grams with dimensions 40.7 x 19.7 x 42.9 mm, supply voltage from 4.8 to 7.2 volts.

MG-90S servos were used to grip and rotate the hand. These are also digital servos with metal gears and a ball bearing on the output shaft; they provide a force of 1.8 kg/cm and precise position control. One servo drive weighs 13.4 grams with dimensions 22.8 x 12.2 x 28.5 mm, supply voltage from 4.8 to 6.0 volts.


Servo drive MG-995 Servo drive MG90S

A bearing measuring 30x55x13 is used to facilitate rotation of the base of the arm - a manipulator with a load.


Bearing installation. Rotating device assembly.

The base of the arm - manipulator assembly.


Parts for assembling the gripper. Gripper assembly.

      Electronic filling of the manipulator

There is an open source project called Arduino. The basis of this project is a basic hardware module and a program in which you can write code for the controller in a specialized language, and which allows you to connect and program this module.

To work with the manipulator, we used an Arduino UNO R 3 board and a compatible expansion board for connecting servos. It has a 5 volt stabilizer installed to power the servos, PLS contacts for connecting servos and a connector for connecting variable resistors. Power is supplied from a 9V, 3A block.

Arduino controller board UNO R 3.

Schematic diagram of the expansion for the Arduino controller board UNO R 3 was developed taking into account the assigned tasks.

Schematic diagram of the expansion board for the controller.

Expansion board for the controller.

We connect the Arduino UNO R 3 board using a USB A-B cable to the computer, set the necessary settings in the programming environment, and create a program (sketch) for the operation of the servos using the Arduino libraries. We compile (check) the sketch, then load it into the controller. Detailed information about working in the Arduino environment can be found on the website http://edurobots.ru/category/uroki/ (Arduino for beginners. Lessons).

Program window with a sketch.

    Conclusion

This model of the manipulator is distinguished by its low cost, compared to the simple “Duckrobot” construction set, which performs 2 movements and costs 1,102 rubles, or the Lego “Police Station” construction set, which costs 8,429 rubles. Our constructor performs 5 movements and costs 2384 rubles.

Components and material

Quantity

Servo drive MG-995

Servo drive MG90S

Bearing 30x55x13

Bearing 3x8x3

M3x27 brass female-female stand

M3x10 screw with goal. under h/w

Composite panel size 0.6m2

Arduino UNO R 3 controller board

Variable resistors 100 kom.

Low cost contributed to the development of a technical constructor for a manipulator arm, an example of which clearly demonstrated the principle of operation of the manipulator and the implementation of assigned tasks in a playful manner.

The principle of operation in the Arduino programming environment has proven itself in tests. This way of managing and teaching programming in a playful way is not only possible, but also effective.

The initial file with a sketch, taken from the official Arduino website and debugged in the programming environment, ensures correct and reliable operation of the manipulator.

In the future, I want to abandon expensive servos and use stepper motors, so it will move quite accurately and smoothly.

The manipulator is controlled using a pantograph via a Bluetooth radio channel.

    Information sources

Gololobov N.V. About the Arduino project for schoolchildren. Moscow. 2011.

Kurt E. D. Introduction to microcontrollers with Translation into Russian by T. Volkov. 2012.

Belov A.V. Self-instruction manual for device developers on AVR microcontrollers. Science and Technology, St. Petersburg, 2008.

http://www.customelectronics.ru/robo-ruka-sborka-mehaniki/ crawler-mounted manipulator.

http://robocraft.ru/blog/electronics/660.html manipulator via Bluetooth.

http://robocraft.ru/blog/mechanics/583.html link to article and video.

http://edurobots.ru/category/uroki/ Arduino for beginners.

    Application

Manipulator base drawing

Drawing of the boom and manipulator grip.

Share