Well      06/14/2019

Robot manipulator do-it-yourself drawings. "Manual" control of the OWI-manipulator. Control program and explanations for it

Good day, brain! The age of technology has given us many interesting devices that can and should be improved. do it yourself, for example like in this brainguide about wireless control of a robotic arm.


There are several options for controlling an industrial robotic arm, but this one brain-master class different in their approach. Its essence is to make wireless homemade manipulating a robot arm with gestures using a glove with a controller. Sounds ambitious and simple, but what is it in reality?
In practice craft looks like that:

The glove is equipped with sensors to control the LED and 5 motors
the transmitter on the Arduino receives the sensor signals, and then sends them in the form of control commands via wireless communication to the receiver of the robotic arm controller
controller receiver on based Arduino Uno receives commands and controls the robot arm accordingly

Peculiarities:

Support for all 5 degrees of freedom (DOF) and backlighting
the presence of an emergency red button that, if necessary, turns off all the motors of the robotic arm in order to avoid breakdowns and damage
portable modular design

Step 1: Components


For glove:

Step 2: Pre-assembly


Before main assembly brain crafts I highly recommend building a prototype using a breadboard to test the functionality of each component homemade.

The project itself contains two difficult moments: the first is to set up two nRF24 receiver-transmitters on top of each other for smooth interaction. It turns out that neither Nano nor Uno provide a stable 3.3V for accurate operation of the modules. This is solved by adding 47mF capacitors to the power pins of both nRF24 modules. In principle, it is desirable to familiarize yourself with their operation in IRQ and non-IRQ modes, and other nuances, before using nRF24 modules. And the following resources will help with this. nRF24. and nRF24 lib

And the second - Uno contacts fill up pretty quickly, but this is not surprising because you need to control 5 motors, backlight, two buttons and a communication module. Therefore, a shift register had to be used. Based on the fact that nRF24 modules use the SPI interface, I decided to also use SPI instead of the shiftout() function to program the shift register. And surprisingly, the code sketch worked the first time. You can check it by pin assignment and drawings.

Let it go bread board and jumpers will be yours brainfriends 🙂

Step 3: Gloves


OWI Robo-arm has 6 control points:

Illumination LED located Grip
capture
Wrist
The Elbow is the part of the manipulator connected to the Wrist
Shoulder - part of the manipulator attached to the Base
The basis

Glove- craft controls all of these 6 items, that is, the backlight and the movements of the manipulator with 5 degrees of freedom. To do this, a sensor is installed on the glove, indicated in the photo, with the help of which the control takes place:

The grip is controlled by buttons on the middle finger and little finger, that is, when the index finger and middle finger are brought together, the grip closes, and when the little finger and ring finger are brought together, it opens.
The wrist is controlled by a flexible sensor on the index finger—flexing the finger half way causes the wrist to drop, while fully flexing the finger raises it.
The elbow is controlled by an accelerometer - tilting the palm up or down causes the elbow to rise or fall, respectively.
The shoulder is also controlled by the accelerometer - turning the palm to the right or left causes the shoulder to move up or down, respectively.
The base is also controlled by an accelerometer - the tilt of the entire palm ( front side up) to the right or left causes the base to rotate to the right or left, respectively.
The backlight is turned on / off by simultaneously pressing both buttons that control the capture.
At the same time, the buttons are activated when held for 1/4 second to avoid a response if accidentally touched.

During component placement homemade you will have to work on the glove with a thread and a needle, namely, sew on 2 buttons, a flexible resistor, a module with a gyroscope and an accelerometer, and the wires going from all of the above to the plug brain connector.

Two LEDs are mounted on the board with a plug connector: green - power indicator, and yellow - indicator of data transfer to the manipulator controller.

Step 4: Transmitter Block


The transmitter block consists of an Arduino Nano, an nRF24 wireless module, a male connector for a ribbon cable, and three resistors: two 10kΩ terminating resistors for the grip control buttons on the glove, and a 20kΩ voltage divider for the flexible sensor responsible for wrist control.

All the electronic components are soldered on the circuit board, notice how the nRF24 module hangs over the Nano. I thought what is brain position will cause interference, but no, everything works fine.

The 9V battery makes the bracelet bulky, but I didn't want to mess with the lithium battery, maybe later.

Attention!! Read the pinout before soldering!

Step 5: Manipulator Controller


The basis of the robot arm controller is Arduino Uno, which receives signals from the glove via nRF24 wireless communication modules, and then, using 3 L293D microcircuits, controls the OWI manipulator.

Since almost all Uno contacts were involved, then conduit, going to them, barely fit in the controller case!

According to the concept brain crafts, at the beginning the controller is in the off state (as if the emergency red button is pressed), this makes it possible to put on a glove and prepare for control. When the operator is ready, the green button is pressed and communication is established between the glove and the manipulator controller (the yellow LED on the glove and the red LED on the controller start to glow).

OWI connection

The robot arm and controller are connected by a 14-track ribbon cable, see figure.

The LEDs are soldered to ground (-) and Arduino pin a0 through a 220 ohm resistor.
All wires from the motors are connected to the L293D chip to pins 3/6 or 11/14 (+/- respectively). Each L293D supports two motors, hence two pairs of pins.
The OWI power wires are located at the edges of the 7-pin plug (left end +6V and right end GND) on the rear yellow cover, see photo. This pair is connected to pin 8 (+) and pins 4,5,12,13 (GND) on all three L293D chips.

Attention!! Be sure to check out the pinouts in the next step!

Step 6: Pin Assignment (Pinout)


5V - 5V for the accelerometer board, buttons and flexible sensor
a0 – flexible sensor input
a1 - yellow LED
a4 - SDA to the accelerometer
a5 - SCL to accelerometer
d02 - interrupt contact of the nRF24L01 module (pin 8)
d03 - input of the button for opening the grip
d04 - capture compression button input
d09 - SPI CSN to NRF24L01 module (pin 4)
d10 - SPI CS to NRF24L01 module (pin 3)
d11 - SPI MOSI to NRF24L01 module (pin 6)

d13 - SPI SCK to NRF24L01 module (pin 5)
Vin - "+ 9V"
GND - ground, ground

3.3V - 3.3V for NRF24L01 module (pin 2)
5V - 5V to buttons
Vin - "+ 9V"
GND - ground, ground
a0 - "+" LED on the wrist
a1 - SPI SS pin for register shift selection - to pin 12 on the shift register
a2 - red button input
a3 - green button input
a4 - movement of the base to the right - pin 15 on L293D
a5 - LED
d02 - IRQ input of the nRF24L01 module (pin 8)
d03 - turn on the base engine - pin 1 or 9 on the L293D
d04 - base movement to the left - pin 10 on the corresponding L293D
d05 - arm motor enable - pin 1 or 9 on L293D
d06 - Elbow Motor Enable - Pin 1 or 9 on L293D
D07 - SPI CSN to NRF24L01 module (pin 4)
d08 - SPI CS to NRF24L01 module (pin 3)
d09 - enable wrist motor - pin 1 or 9 on L293D
d10 - turn on the capture motor - pin 1 or 9 on the L293D
d11 - SPI MOSI to NRF24L01 module (pin 6) and pin 14 on shift register
d12 - SPI MISO to NRF24L01 module (pin 7)
d13 - SPI SCK to NRF24L01 module (pin 5) and pin 11 on shift register

Step 7: Communication


Glove homemade sends 2 bytes of data to the manipulator controller 10 times per second, or when a signal is received from one of the sensors. These 2 bytes are enough for 6 control points, because you only need to send:

Enable/disable backlight (1 bit) - I actually use 2 bits in conjunction with the motors, but one is enough.
turn off/right/left for all 5 motors - 2 bits each, i.e. 10 bits in total

It turns out that 11 or 12 bits is enough.

Direction codes:
Off: 00
Right: 01
Left: 10

By bits, the control signal looks like this:

Byte 1 can conveniently be routed directly to the shift register, as it controls the right/left of motors 1 through 4.

A delay of 2 seconds disables communication and the motors then stop as if the red button is pressed.

Step 8: Code

The glove code contains sections from the following libraries:

Added two more bytes in the communication structure to send the requested speed of the Wrist, Elbow, Shoulder and Base motors, which is a 5-bit value (0..31) proportional to the angular position of the glove. The manipulator controller distributes the received value (0..31) to the PWM values ​​respectively for each brainmotor. This provides consistent control of the operator's speed, and more precise manipulation of the robotic arm.

New set of gestures crafts:

  • Backlight: Button on the middle finger - Turn on, on the little finger - Turn off.
  • A flexible sensor controls the Grip - half-bent finger - Open, fully bent - Close.
  • The wrist is controlled by the deviation of the palm relative to the horizontal Up and Down according to the movement, and the greater the deviation, the greater the speed.
  • The elbow is controlled by the deviation of the palm relative to the horizontal Right and Left, respectively. The greater the deviation, the greater the speed.
  • The shoulder is controlled by rotating the palm Right and Left relative to the outstretched palm face up. The rotation of the palm relative to the axis of the elbow causes the robot arm to wave.
  • The base is controlled in the same way as the Shoulder, but with the palm facing down.

Step 9: What else can be improved?

Like many similar systems, this brain trick can be reprogrammed to increase its functionality. In addition, the design homemade expands the range of control options not available with a standard control panel:

Gradient speed increase: each motor movement starts at the minimum speed, which then gradually increases every second until it reaches the required maximum. This will allow more precise control of each motor, especially the Grip and Wrist motors.
Faster deceleration: when receiving a stop command from the controller, the motor still changes its position for about 50ms, so “breaking” the movement will provide more precise control.
And what else?

Perhaps in the future, more complex gestures can be used to control, or even several gestures at the same time.

But this is in the future, and now good luck in your work and I hope mine brainguide it was helpful for you!

General information

So, all joysticks can be classified according to different grounds, of which the method of connection and type of sensors are relevant for us.

According to the connection method, joysticks are divided into joysticks with USB connection and Game Port connection. Whether it is possible to make a joystick on USB from scratch, I do not know, but I believe that if it is possible, then only highly qualified radio engineers. It is another matter to remake a ready-made USB joystick to your taste and needs. This is available to almost anyone who knows how to hold a soldering iron in their hands. It is not difficult to make a joystick on the Game Port from scratch, and it is quite within the power of every person who knows how and loves to tinker with plastic and iron tsatskami. :-)

According to the type of sensors, joysticks are divided into joysticks built on optical sensors, on variable resistors and on magnetic resistors. Each of listed types can be made on Game Port. The only BUT is that I have no idea about magnetic resistors, so I will only talk about optics and variable resistors.

How to make a joystick

In my opinion, the closest attention when creating your own joystick should be given to its mechanics. Main enemy on this front - backlash. How can it be overcome? My solution is not simple, easy and cheap. However, it can be called mechanically perfect. It consists in the fact that all rotary units are assembled on rolling bearings with a double support of each part. This design has three advantages - the complete absence of backlash, damn strength and the highest positioning accuracy. Also important is a smooth ride, excluding jerks and uneven movement.

Next, select the type electronic stuffing. Optics or resistors? The optics are more precise, it eliminates jitter. However, optics are very difficult to install and configure. Resistors are easier to install. But you need to be very picky in choosing resistors, buy imported and not cheap ones, otherwise jitter is provided, which will spoil the whole impression.

Let's start with the mechanics. Look, here I drew the pivot assembly of my homemade joystick. Ball bearings with an outer diameter of 19 mm and an inner diameter of 6 mm are used. All bearings are inserted and fixed in machined round metal washers, 12 mm thick.

So, we see that the whole node consists of three main nodes: the roll node, the pitch and the rocking chair.

The boot is bought from a ball Zhiguli, but not large, but small, with a rubber band diameter of 14 mm. Just under the handle tube. This boot, in addition to protecting the mechanism from dust and prying eyes, springs the handle and keeps it in the middle position.

To act on the rocker, the tube fastening bolt is drilled in the center, and a bolt with an M3 thread without a cap is screwed into it. This bolt transmits torque to the rocker.

I made the overlays from 10 mm thick vinyl plastic. Then I drilled a hole in the center, and pressed the bearing into it (pressed it by force. Holds excellently). The bearings themselves are removed from the 3.5 cooler (blower), if it is on rolling bearings.

Here is a snapshot of the mechanics:

Having made the mechanics assembly (this may take several months), you need to make the body. Here you have full scope. I use vinyl for this. It is applied on industrial production when installing electrical components. Thickness varies from 3 mm to unknown. The thickest I've seen is 30mm. We need a thickness of at least 8 mm for a margin of safety.

Viniplast is very durable, elastic, and well processed. From it you can glue any body with bauxite, to your taste. Smooth the corners, paint - no one will distinguish from the factory one. Here, however, there is one nuance. In order for the case to be stronger and look more decent, I do this.

Take a sawn off piece of vinyl plastic of the right size, mark the fold lines with a pencil. Now you are looking for any electrical appliance that has an incandescent surface of about 400 degrees or more (it is desirable that when a piece of vinyl plastic touches the heating surface, the vinyl plastic melts slightly - then the temperature will come down). Perfect option- a rod of a heating element, with a diameter of 8 - 15 mm. I have an unidentified culinary appliance that has such a surface - a round rod that glows red hot. I used it. We hold the vinyl plastic over this rod for some time, so that there is a minimum distance from the intended strip of the pencil to the rod, which does not allow the material to melt. When a piece of vinyl plastic is warm enough, it becomes elastic, and easily bends to the required angle. In our case it is 90 degrees. Then, holding the corner with our hands, we cool the fold under the jet cold water from a water tap, vinyl plastic hardens, and this is forever :-). Do the same with the opposite surface. It remains to cut out two side plates from vinyl plastic, fit them tightly so that they go inside without gaps, and glue epoxy resin. Next, we make the required hole for the RUS rod in the upper surface of the newly made housing, cut out the bottom cover. It should look something like this:

Then we mount the rotary assembly to the body, and the joystick itself is almost ready.

If the structure is painted, and supplemented with a large anther, then something like this will come out:

As you can see the joystick is outdoor. The handle itself is from the military Mi-8 (these were also installed on the Mi-24).

But why is it almost ready? Because there are no pedals...

The hardest thing about pedals is making them look decent so they don't look like a torture instrument :-) Look at that.

The technology is simple. We take the desired piece of textolite, heat it exactly in the middle, and bend it to sharp corner(more than 90 degrees). The angle is needed so that the end of the pedal in the middle position is at a minimum distance from the surface, and in the extreme positions the distance from the end to the surface is equal. Next, we make two vertical slots in the vertical surface for the required pedal travel. Then we take two small door hinges, we cut out the pedals themselves according to their width and the required length, and connect the loops, pedals and the skeleton.

Then we make steel guides, fasten them to the pedals. The steel guides are turned - in the right places they are loosened so that the elastic band does not fall off them (the elastic band is filled in blue), and in the right places they thicken, because a string will go through this thickness (in the figure, it is filled in red), providing pedal feedback. The string itself must be strong and thin. I used for her role a strong cloth insulation of an electrical cable. A linen nylon rope will also come off. This rope must be pulled through two blocks. It is desirable that these blocks are assembled on ball bearings, and have grooves so that the string does not fall off. Blocks are mounted on bolts with a diameter of 6 mm. Less is impossible, since this is a load-bearing knot, we will work with our feet, and we need strength.

In the figure, I depicted a method for attaching a resistor, and transferring torque to it. It is even easier to arrange an optical scheme. All electromechanical facilities are covered with a plastic casing.

Currently, I am making new pedals for myself, of a fundamentally different design. After I finish the work, I will make the necessary drawings and put them here with explanations.

...it's been a few months...

So the hour has come when I can begin to describe the new pedals.

Having pretty much flown (more than a year) on pedals (this is how I call pedals of the above type, they can still be called auto pedals), I realized that I was ripe for raising the level of realism :-) The pedals retired and were presented to a friend.

It all started with thinking about the design. In general, the most difficult and important thing in pedal building (as well as in creativity in general) is to first completely build the pedals in your head and on paper. Only after that, one should proceed to the material embodiment of the pedals. If this principle is not followed, constant alterations are inevitable, which ultimately results in the disfigurement of the structure, and leads to the search for new materials.

Let's define the essence of hardcore air pedals.

Hardcore Air Pedals:

  1. They work according to the principle feedback(you press one pedal away from you - the second goes to you);
  2. The pedals themselves, when pressed, do not change the horizontal angle of installation;
  3. The distance between the pedals should correspond to the same distance in real aircraft;
  4. The pedals are spring-loaded, and have a distinctly felt, neutral positioning point.

In order for these pedals to work, you need:

  1. Large area of ​​contact between the base of the pedals and the floor to prevent tipping of the structure;
  2. Eliminate the possibility of sliding the base of the pedals on the floor;

The first stage of thinking about pedals is the stage of inventing the base of future pedals :-) There are two ways. The first is to take the path of least resistance - take a thick sheet of chipboard for the base, and mount all the necessary nodes on it, providing the base with rubber stickers to prevent displacement of the structure. The second way (more difficult) is to come up with something different, not solid, not heavy and not cumbersome. Within this path, we will single out two. The first is to make the base yourself. The second is to take ready. In the first case from metal pipes a T-shaped structure is made, on which the necessary nodes are fixed. Spikes are constructed at the ends of the structure. In the second case, the problem is finding the right consumer goods. I solved it by using the base of a domestic metal TV stand as a base. It is a black five-legged (I also met four-legged), it happens with wheels, or without them. You have to get rid of the wheels.

The inner diameter of the "glass" of this rack, and its depth allow you to place a solid assembly of the mechanics of future pedals in it.

The assembly itself can be made manually, or can be ordered from a turner / miller. In any case, you will have to buy two bearings with an outer diameter of 40 mm.

First, I made the knot myself, from scrap materials that I found in my junk boxes. This was quite difficult, since it is impossible to select a bolt with a thread diameter that matches the inner diameter of the bearings, which entails the tedious process of centering the bearings on the bolt. It is also not easy at home to drill an M14 bolt through and through. However, everything is being done. Having done this, I ran into one problem. The fact is that I soldered the pedals to the TOP GUN FOX PRO 2 USB trustmaster chip. Polling the resistor of the "pedal" axis in this joe is designed to rigidly fix the polarity of the resistor. In other words, the pedal relay is correctly interrogated only if the wiring of the outer legs of the relay is identical to the original one. However, if the resistor is placed under the structure (the glass of the pedal rack), then in order to match the effect on the pedals and the reaction of the rudder in the game, you need to solder the extreme contacts on the resistor. After soldering, the polling of the resistor is distorted, uneven control appears, alignment is constantly lost.

Another problem that could not be solved on the move was the centering of the pedals. I tried two options. Implementing the first one, I tried to capture the pedal bar itself from both sides with springs. However, this was the wrong way, because the springs were tight, and one of the sides of the pedals always rested on the spring, which was already compressed. In the second case, I drilled a rod in the center horizontally, and attached a bolt there, onto which I threw a spring. This option turned out to be not bad, except that it did not provide an accurately felt neutral zone. As it turned out later, the bolt with a diameter of 6 mm used for centering was not strong enough, and bent.

Also a funny story happened with the pedal limiters. I originally planned to make limiters, and spent a lot of time installing them. There, too, had their options, their mistakes and the only possible solution. However, when I once removed the limiters and tried the pedals without them, I came to the conclusion that the limiters are unnecessary. This is due to the fact that if the pedals are sufficiently spring-loaded, it is simply impossible to turn them to a critical angle for the resistor, using reasonable efforts on the pedals - the spring does not allow to turn out more, and the whole structure begins to move. In other words, in order to turn the rezyuku's head, you need to specifically set yourself this goal, and rest against one pedal with your whole mass. However, in this case, you can easily break both the limiter and the entire spring system. And if so, then the limiters are not needed. Everything looked like this:

In general, having suffered for some time with the resistor, I decided to transplant the resistor upstairs. This required the alteration of essential components of the design of the mechanical unit, since the pedals were spring-loaded from above. This time I decided to turn to the turner. I made a drawing, which I present here. If there is a desire to follow in my footsteps, then the drawing can be saved to disk, printed on a printer, and carried to a turner.

In order to mount the resulting structure in the base, you need to drill the base and cut the threads in the holes in order to fix the assembly in the glass with bolts.

To be or not to be? That's the question we'll be puzzled with in the first paragraph. No, don't get me wrong, throttle as such is definitely needed on a joystick, the point is, should it be separate from the joystick? An unambiguous answer can only be given if your joystick is outdoor. If it is outdoor, then a separate throttle is needed. And if the joy is desktop? And does it have a corresponding lever (slider) to control the engine? This is everyone's business. It depends on the virpil's views on his virpil life, on his miserable lot :-) My opinion is unequivocal - if the joy is desktop, then putting another box with a lever to control the engine on the table is nothing but a reason for hysteria in the chicken coop. The chickens will like it and they will laugh so much that they may even burst.

Why am I so categorical on this issue? Yes, because I don’t see any reason for the appearance of a separate ore next to the desktop joe. What can be the cause? Need to expand functionality? Ridiculous, since the bases of modern joysticks are crammed with buttons that are conveniently located. And if not enough, you can briefly remove your hand from the base and poke your finger into the keyboard, located a couple of centimeters from the base of the joystick. In addition, operating with the thumb of the left hand in battle is much more convenient than poking the whole limb back and forth on a separate ore. Checked. But maybe this is a noble desire to increase realism ?? All the more ridiculous, since realism is first of all contained in the air pedals, secondly in the floor RSS, and only in the third place - in a separate throttle. Using a metaphor, we can say that making a desktop RUD with a desktop RUS is like "upgrading" a weak old computer by buying a new "boy" case for 300 bucks :-) However, this is my opinion, it is subjective. Maybe someone is more important body.

I hope you have decided on the need for a separate throttle for you. If your life without a separate RUD seems gray and gloomy to you, then we continue the debate :-)

So, what are the basic requirements for the RUD?

  1. Smooth running without jerks, uneven movement;
  2. Tough move. Tight so that the throttle is held in the position in which you released it, and did not move from the vibrations of the ether :-);
  3. Sufficient weight and size of the base so that during the manipulation of the throttle, the base of the throttle does not fidget on the table (chair);
  4. Convenient handle;
  5. Sufficient amplitude of movement of the throttle.

How will we implement these requirements? We provide smoothness by building a mechanism on ball bearings. We will achieve a tight move by using a braking system. We will increase the weight with loads. We will make the sizes sufficient. Finally, we will adjust the amplitude according to needs.

Let's start, according to tradition, with the mechanics block.

The first question here will be the option of the basic fastening of the mechanics unit. The following options are possible:

  1. Top mount;
  2. Bottom mount;
  3. Side mount.

We look at the figure:

Each option has its pros and cons.

The first option is preferable because when using it, access to the contents of the throttle is extremely facilitated - remove the bottom cover and operate like Pirogov :-) The disadvantages are that, firstly, the throttle body itself must be strong enough and thick, and secondly , two bolt heads will appear on the top panel (it doesn’t suit us, aesthetes), and thirdly, the length of the throttle rod is reduced, and, accordingly, the trajectory of the throttle stroke is rounded off.

The advantage of the second option is the large length of the throttle rod, the ability to use thinner material for the base of the throttle, there are no bolt heads on the upper part of the base, the forces on the throttle are distributed more successfully in terms of structural stability. The disadvantage of the second option is difficult access to the womb of the base. To open it, you will need to unscrew the bottom cover, and the mechanism itself from the cover. Yes, and the mechanics will be partially hidden by the edge of the fastener corner.

The third option has all the advantages of the second (if the mechanism is attached to the bottom cover). Its only major disadvantage is the need to manufacture throttle limiters (in the first versions, the amplitude of throttle movement is limited by the size of the slot in the body), as for the minor minus, it lies in the fact that option 2 looks less thorough than the first two. Yes, I almost forgot - the plus is that there is no slot on the top panel, and dirt does not get into the case.

I chose the third option. The reason is that I had all the material for making a normal body. When I get the material, I will redo it according to option 2. And you decide for yourself. As they say, based on abilities and needs :-)

Yes, by the way, there is another option, namely:

This option preferable for lovers of "retro" :-), it is fundamentally similar to the Yak-3 throttle. However, this scheme has one significant drawback - it is difficult to place buttons and additional axes in the handles. And even more difficult to use these axes and buttons. There is limited functionality.

In general, okay. It seems that they have finished with this, the choice is up to you, and I made it a little easier, because I pointed out the pros and cons. I wash my hands :-)

Now let's move on to the consideration of the thruster mechanics unit itself. You will need two ball bearings with an inner diameter of 7 mm. If you have chosen bottom diagram, then, respectively, four bearings. I also advise you to get a corner with edges of 70 mm, or just a steel plate, at least 5 mm thick (in this case, when implementing the upper scheme No. 3, you will have to attach the mechanics to the cover). We look at the picture, side view:

As you can see in the figure, an throttle rod is put on a bolt with an M6 thread, then a metal tube is put on (it is desirable that its inner diameter allows you to sit on the bolt tightly) 10 mm long, then comes the bearing, again the tube, but a little longer (20-30 mm) , again the bearing, and all this is tightly tightened with a nut. The end of the bolt is pre-finished with sandpaper so that its diameter is 3-4 mm.

After assembling the system, four holes are drilled on the metal plate, and bearings are attached to the plate using clamps. This can be seen in the following figure:

The device of the braking system, I think, is obvious. The braking force is adjusted by tightening the nut on the stud. I chose strips of leather (suede) as the braking pad, since the leather does not crumble like rubber and does not litter the mechanism. The brake acts long enough and does not loosen.

When you have finished assembling the mechanical assembly, all that remains is to attach the base plate according to the chosen option (to the bottom cover or to the top of the case). How to hang a summary on the mechanics, I think, is understandable.

The ore rod can be made both from a tube (steel bar) and from a plate. I used a strip of textolite, 8mm thick, and about 40mm wide. Slightly curved it at the end, and attached a handle to the curved end.

Now about the body. You can make the base case yourself, or you can take a ready-made plastic box the right sizes. If you decide to do it, then I recommend following the tips in the General Information section. Mechanics, where I told how I make cases.

The insides of the case can be stuffed with various iron to make the structure heavier. Finally, fit the bottom cover with rubber stickers to increase the friction between the throttle body and the surface.

Finally, a few words about the ore handle itself. It can be done in different ways. Be guided by your own wishes. I chose a hollow plastic cup for the pen and a screw cap. Hollow because I placed the buttons and the screw pitch control resistor in it. How to do this, see the picture:

So, a rud pen is such a “glass” made of translucent, white plastic with thick walls. I discovered this glass by accident. I kept drills in it at home :-) The glass is made like a cone, and in the wide part it has a thread onto which the lid is screwed. I attached this cover (with four M4 bolts) to a thick strip of curved textolite, made a hole to pass the stranded wire. A glass is screwed onto the lid - that's all the ore.

In the upper (deaf) part, the glass is drilled, and a cutter is inserted into it (domestic, 150 kOhm, soldered instead of the trustmaster to the board. The domestic one has a large rotation amplitude, while the native one has a meager polling angle). Further, a home-made washer made of thick textolite is attached to the blind part from the outside (with three M4 bolts), the purpose of which is to hide the nut that fastens the cutter to the glass and remove the gap between the resistor handwheel and the end of the glass. A handwheel from the enlarger assembly is put on the stock of the cutter, which (happy coincidence) fits in diameter to the glass. Live it looks like this:

Here's how the hand is on it:

In conclusion, I want to add that everything that I have described here is done without the involvement of outsiders. All you need is a vise, a hacksaw, a drill, a locksmith set (drills, taps and lerks). I also used a sander own production. If you do not have it, then do not despair - a file and hands work wonders. The rest of the tools (pliers, wire cutters, etc.), I think, everyone has.

Kelt (Makkov at mail dot en)

Hi all!
A couple of years ago, a very interesting project from uFactory appeared on kickstarter - a desktop robo-arm uArm. They promised to eventually make the project open source, but I couldn't wait and got into reverse engineering from photographs.
Over the years, I made four versions of my vision of this manipulator and eventually developed this design:
It is a robotic arm with an integrated controller, driven by five servos. Its main advantage is that all the details can either be bought, or cheaply and quickly cut out of plexiglass with a laser.
Since I took an open sorce project as a source of inspiration, I share all my results in full. You can download all the sources from the links at the end of the article and, if you wish, compile the same one (all links at the end of the article).

But it’s easier to show it at work once than to tell for a long time what it is:

So, let's move on to the description.
Specifications

  1. Height: 300mm.
  2. Working area (with arm fully extended): 140mm to 300mm around the base
  3. Maximum load capacity on an outstretched arm, not less than: 200g
  4. Consumed current, no more than: 6A
I would also like to point out some design features:
  1. Bearings in all moving parts of the manipulator. There are eleven in total: 10 pieces for a 3mm shaft and one for a 30mm shaft.
  2. Easy assembly. I paid a lot of attention to ensuring that there was such a sequence of assembly of the manipulator in which it was extremely convenient to screw all the details. It was especially difficult to do this for the powerful servo nodes at the base.
  3. All powerful servos are located at the base. That is, the "lower" servos do not drag the "upper".
  4. Parallel hinges keep the tool always parallel or perpendicular to the ground.
  5. The position of the manipulator can be changed by 90 degrees.
  6. Ready-made Arduino-compatible software. Right collected hand can be controlled by the mouse, and using code examples, you can create your own movement algorithms
Design Description
All parts of the manipulator are cut from Plexiglas 3 and 5 mm thick:

Pay attention to how the swivel base is assembled:
The most difficult one is the node at the bottom of the manipulator. In the first versions, it took me a lot of effort to assemble it. Three servos are connected in it and forces are transmitted to the grip. The parts rotate around a pin with a diameter of 6mm. The grip is held parallel (or perpendicular) working surface due to additional traction:

The manipulator with the shoulder and elbow installed is shown in the photo below. The claw and thrust for it have yet to be added to it:

The claw is also mounted on bearings. It can shrink and rotate around its axis:
The claw can be installed both vertically and horizontally:

Controlled by all Arduino-compatible board and shield for it:

Assembly
It will take about two hours and a bunch of fasteners to assemble the manipulator. I made the assembly process itself in the form of instructions in photographs (carefully, traffic!) With detailed comments on each operation. I also made a detailed 3D model in a simple and free sketchup program. So you can always turn it before your eyes and see incomprehensible places:


Electronics and programming
I made a whole shield on which I installed, in addition to the servo and power connectors, variable resistors. For ease of debugging. In fact, it is enough to bring signals to the engines with the help of a breadboard. But I ended up with such a shield, which (it so happened) I ordered at the factory:

In general, I made three different programs for Arduino. One for PC control, one for demo operation and one for button and variable resistor control. The most interesting of them is, of course, the first one. I won't post the entire code here - it's available online.
To manage, you need to download a program for your computer. After launching it, the mouse enters hand control mode. Movement is responsible for moving along XY, the wheel changes the height, LMB / RMB - capture, RMB + wheel - rotation of the manipulator. And it's really convenient. It was in the video at the beginning of the article.
Project sources

MeArm Robot Arm - Pocket Edition industrial manipulator. MeArm is an easy to assemble and control robot, a mechanical arm. The manipulator has four degrees of freedom, which makes it easy to grab and move various small objects.

This product is presented as an assembly kit. Includes the following parts:

  • set of clear acrylic parts for assembly mechanical manipulator;
  • 4 servos;
  • a control board containing an Arduino Pro micro microcontroller and a Nokia 5110 graphic display;
  • joystick board containing two two-coordinate analog joysticks;
  • USB power cable.


Before assembling a mechanical manipulator, it is necessary to calibrate the servos. For calibration we will use the Arduino controller. We connect the servos to the Arduino board (you need external source power supply 5-6V 2A).

Servo middle, left, right, claw ; // create 4 Servo objects

Void setup()
{
Serial.begin(9600);
middle.attach(11); // connects a servo to pin 11 for platform rotation
left.attach(10); // connects a servo to pin 10 on the left shoulder
right.attach(9); // connects a servo to pin 11 on right shoulder
claw.attach(6); // attach servo to pin 6 claw (capture)
}

Void loop()
{
// sets the position of the servo by value (in degrees)
middle.write(90);
left.write(90);
right.write(90);
claw.write(25);
delay(300);
}
Using a marker, draw a line through the servomotor housing and spindle. Connect the plastic rocker from the kit to the servo as shown below using the small screw from the servo mounting kit. We will use them in this position when assembling the mechanical part of the MeArm. Be careful not to move the spindle position.


Now you can assemble the mechanical manipulator.
Take the base and attach the legs to its corners. Then we install four 20 mm bolts and screw nuts on them (half of the total length).

Now we attach the center servo with two 8mm bolts to a small plate, and fix the resulting structure to the base with 20mm bolts.

We assemble the left section of the structure.

We assemble the right section of the structure.

Now you need to connect the left and right sections. First I go to the adapter plate

Then the right one, and we get

Connecting the structure to the platform

And we collect the "claw"

We fasten the "claw"

For assembly, you can use the following manual (in English) or the assembly manual for a similar manipulator (in Russian).

Pinout

Now you can start writing Arduino code. To control the manipulator, along with the ability to control the control using a joystick, it would be nice to direct the manipulator to some specific point of Cartesian coordinates (x, y, z). There is a corresponding library that can be downloaded from github - https://github.com/mimeindustries/MeArm/tree/master/Code/Arduino/BobStonesArduinoCode .
Coordinates are measured in mm from the center of rotation. The home position is at (0, 100, 50), i.e. 100 mm forward from the base and 50 mm from the ground.
An example of using the library to set the manipulator at a specific point in Cartesian coordinates:

#include "meArm.h"
#include

Void setup() (
arm.begin(11, 10, 9, 6);
arm.openGripper();
}

void loop() (
// up and left
arm.gotoPoint(-80,100,140);
// capture
arm.closeGripper();
// down, harm and right
arm.gotoPoint(70,200,10);
// release the grip
arm.openGripper();
// return w starting point
arm.gotoPoint(0,100,50);
}

meArm class methods:

void begin(int pinBase, int pinShoulder, int pinElbow, int pinGripper) - start meArm, connection pins for middle, left, right, claw servos are indicated. Must be called in setup();
void openGripper() - open capture;
void closeGripper() - capture;
void gotoPoint(float x, float y, float z) - move the manipulator to the position of Cartesian coordinates (x, y, z);
float getX() - current X coordinate;
float getY() - current Y coordinate;
float getZ() - current Z coordinate.

Assembly manual

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 kit 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 the voice control module.

The robot arm can be operated manually using the hand control included in the kit. The robot arm can also be controlled either through an 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 through an IBM PC work computer. The voice control device will allow you to control the robot's arm using voice commands.

All these modules together form a functional device that will allow you to conduct experiments and program automated sequences of actions or even "animate" a completely "wired" manipulator arm.

The PC interface will allow you to program the manipulator arm for a chain of automated actions using a personal computer or to "revive" it. There is also an option where you can control the hand interactively using either the 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 baby glove puppet on a manipulator arm and program the device to show a small show, then you will program the electronic puppet to “animate”. The programming of automated actions finds wide application in industry and the entertainment industry.

The most widely used robot in industry is the robotic arm. The robot arm is an extremely flexible tool, if only because the end segment of the arm manipulator can be the appropriate tool required for specific task or production. For example, an articulated welding arm can be used to spot welding, with a spray nozzle can be painted various details and knots, and the gripper can be used to clamp and set objects, just to name a few.

So, as we can see, the robotic arm does a lot. useful features and can serve perfect tool to study various processes. However, building a robotic arm from scratch is a challenge. It is much easier to assemble a hand from the details of the finished set. OWI sells fairly good manipulator arm kits that are available from many electronics distributors (see the parts list at the end of this chapter). Using the interface, you can connect the assembled manipulator arm to the printer port of a working computer. You can use an IBM PC series or compatible machine that supports DOS or Windows 95/98 as your work computer.

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 a command to the robot to perform a particular movement. Pressing the key a second time terminates the command.

Programming a chain of automated actions is also not difficult. First click on the Program button to enter the program mode. In this mod, the hand functions exactly as described above, but in addition, each function and the time of its action are fixed in the 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 in the robotic arm interface kit or can be downloaded free of charge from the Internet http://www.imagesco.com.

In addition to Windows program hand can be controlled using BASIC or QBASIC. The DOS level program is contained on the floppy disks included with the interface kit. However, the DOS program only allows interactive control using the keyboard (see 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 BASIC programming experience, then the sequence of movements of the manipulator arm can be programmed in the same way as the script file used in the Windows program. 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 arc of approximately 120°. The arm can be rotated on the base clockwise or counterclockwise through an angle of approximately 350°. The robot arm gripper can pick up and hold objects up to 5cm in diameter and rotate around at the wrist joint by about 340°.

Rice. 15.1. Kinematic scheme of movements and turns of the robot arm


The OWI Robotic Arm Trainer used five miniature DC motors to power the arm. Motors provide hand control with 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 (applying voltage). Each of the five DC motors controls its own arm movement. Wired control allows you to make a hand controller unit that directly responds to electrical signals. This simplifies the layout of the robot arm interface that connects to the printer port.

The arm is made of lightweight plastic. Most of the parts that carry 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 the torque, each motor is connected to a gearbox. The motors together with the gearboxes are installed inside the structure of the manipulator arm. Although the gearbox increases the torque, the robot arm cannot lift or carry heavy enough objects. Recommended maximum allowable weight when raised is 130 g.

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


Rice. 15.2. Robot arm kit



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. Two complementary transistors are required to control the motor. One transistor has PNP type conductivity, the other has NPN type conductivity, respectively. Each transistor acts like an electronic switch, controlling the flow of current 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. On fig. Figure 15.4 shows a test circuit that you can assemble before making an interface. Note that when both transistors are off, the motor is off. Only one transistor should be on at a time. If at some point both transistors accidentally turn on, this will lead to a short circuit. Each motor is driven by two interface transistors that work in a similar way.


Rice. 15.4. Checker 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. circuit diagram PC interface



Rice. 15.6. Layout of PC interface parts


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

General note: After soldering the part to the PCB conductors, remove excessively long leads from the print side. It is very convenient to follow a certain sequence when mounting parts. First, mount the 100 kΩ resistors (coloured rings: brown, black, yellow, gold or silver), which are marked R1-R10. Then mount 5 diodes D1-D5 making sure the black stripe on the diodes is against the DB25 connector as shown by the white lines marked on the mounting side of the PCB. Then mount the 15 kΩ resistors (color coded brown, green, orange, gold or silver) labeled R11 and R13. At position R12, solder a red LED to the board. The anode of the LED corresponds to the hole for R12, marked with a + sign. Then mount the 14- and 20-pin sockets under the U1 and U2 ICs. Mount and solder the angle type DB25 connector. Don't try to push the connector pins into the board with too much force, only precision is required here. If necessary, gently rock the connector, being careful not to bend the pin legs. Attach the slide switch and type 7805 voltage regulator. Cut four pieces of wire to the required length and solder to the top of the switch. Keep the wiring arrangement as shown in the figure. Insert and solder the TIP 120 and TIP 125 transistors. Finally, solder the 8-pin socket and 75mm connecting cable. The base is mounted so that the longest terminals look up. Insert two ICs - 74LS373 and 74LS164 - into their respective sockets. Make sure the key position of the IC on its cover matches the key marked with white lines on the circuit board. You may have noticed that there are spaces left on the board for additional parts. This location is for the network adapter. On fig. 15.7 shows a photograph of the finished interface from the mounting side.


Rice. 15.7. PC interface assembled. View from above

How the interface works

The manipulator arm has five DC motors. Accordingly, we 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 in the robot arm interface, the IC 74LS164 is used, which is a serial-to-parallel (SIPO) converter. By using only two parallel port buses D0 and D1, which send the 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 74LS164 IC, the corresponding parallel code appears at the output of the IC. If the outputs of the 74LS164 were directly connected to the inputs of the control transistors, then the individual functions of the manipulator arm would turn on and off in time with the sending of the serial code. Obviously, this situation is unacceptable. To avoid this, a second IC 74LS373 is introduced into the interface circuit - a controlled eight-channel electronic key.

The 74LS373 eight-channel switcher has eight input and eight output busses. 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 turning off the enable signal Current state of the bus outputs is saved (memorized). In this state, the signals at the input of the IC have no effect on the state of the output busses.

After the serial packet of information has been sent to the 74LS164, the D2 pin of the parallel port sends an enable signal to the 74LS373. 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 busses is controlled respectively 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. The parallel port buses D3-D7 drive the TIP 125 transistors directly.

Connecting the interface to the manipulator arm

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

Connect the interface to the manipulator arm using a 75mm eight-wire Molex cable. The Molex cable connects to the connector located at the base of the manipulator (see Figure 15.8). Check that the connector is inserted correctly and securely. To connect the interface board to the computer, a 180 cm long DB25 cable is used, which is 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 Robot 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 paddle, it's a good idea to purchase an A/B Printer Bus On/Off Switch Box (DB25). Connect the manipulator interface connector to input A and the printer to input B. Now you can use the switch to connect the computer to either the printer or the interface.

Installing the program under Windows 95

Insert a 3.5" floppy disk labeled "Disc 1" into the floppy disk drive and run the installer (setup.exe). The installer will create a directory named "Images" on your hard drive and copy the necessary files to this directory. At Start The Images icon will appear in the menu To launch 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 manipulator arm. Until a certain time, keep the interface in the off state. If the interface is turned on at this time, the information stored in the printer port may cause movements of the manipulator arm.

By double-clicking on the Images icon in the start menu, 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 on for the LED to start flashing. The blinking speed of the LED is determined by the speed of your computer's processor. The flickering of the LED may be very dim; in order to notice this, you may have to dim the light in the room and fold your palms together to observe 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 a different port address (LPT port), go to the Printer Port Options box in the upper right corner of the screen. Choose another option. Correct installation port address will cause the LED to flash.


Rice. 15.9. Screenshot of the PC interface program under 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 the response movement of the manipulator arm. Clicking again will stop the movement. Using the function keys to control the hand is called interactive fashion control.

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 easy. To create a file, click on the program softkey. This operation will allow you to enter into the fashion of "programming" the script file. By pressing the function keys, we will control the movements of the hand, as we already did, but the information of the commands 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. When the function key is clicked again, the movement execution stops, and the value of the movement execution time 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 the same way, the user can program up to 99 movements into the script file, including pauses in time. Then the script file can be saved and later loaded from any directory. The execution of script-file commands can be repeated 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 bring the computer back into interactive mode.

"Revival" of objects

Script files can be used for computer automation of actions or for "animation" of objects. In the case of "animation" of objects, the controlled robotic mechanical "skeleton" is usually covered with an outer shell and is not itself visible. Remember the glove puppet described at the beginning of the chapter? The outer shell can take the form of a person (partially or completely), an alien, an animal, a plant, a stone, and anything else.

Application limits

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

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

Home position search

You can improve the operation of the device by adding a feedback circuit that monitors the position of the manipulator arm. This information can be entered into a computer to determine the absolute position of the manipulator. 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 recorded in the script file.

There are many possibilities for this. In one of the main methods, positional control at each point is not provided. Instead, a set of limit switches are used that correspond to the original "start" position. Limit switches determine precisely only one position - when the manipulator reaches the “start” position. To do this, you need to set the sequence of limit switches (buttons) in such a way that they close when the manipulator reaches the extreme position in one direction or another. For example, one limit switch can be installed on the base of the manipulator. The switch should only operate when the arm reaches its end position when rotated clockwise. Other limit switches must be installed on the shoulder and elbow joints. They should be activated when the corresponding joint is fully extended. Another switch is installed on the brush and is activated when the brush is turned all the way clockwise. The last limit switch is installed on the grip and closes when it is fully opened. To reset the manipulator, each possible movement of the manipulator is carried out in the direction necessary to close the corresponding limit switch until this switch closes. After it's been reached starting position for each movement, the computer will accurately "know" the true position of the manipulator arm.

After reaching the initial position, we can restart the program written in the script file, based on the assumption that the positioning error during the execution of 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 the script file is executed, the hand is set to its original position, and the cycle of the script file is repeated.

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

Creating such a feedback system introduces another level of complexity into the device and, accordingly, leads to its rise in price. Therefore more simple option is the introduction of a manual control system for adjusting the position and movements of the manipulator arm during the execution of a script program.

Manual interface control system

Once you have verified that the interface is working properly, 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 connector head on the interface board as shown in fig. 15.10. Carefully insert the connector until it is securely connected. After that, the manipulator arm can be controlled from the hand control at any time. It does not matter if the interface is connected to a computer or not.


Rice. 15.10. Connecting the manual control

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 the execution of a particular function is given in the table.

In voice control of the manipulator arm, a speech recognition set (SCR) is used, which was described in Chap. 7. In this chapter, we will make an interface that connects the URR to the manipulator arm. This interface is also available as a kit from Images SI, Inc.

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


‘URR interface program

Symbol Port A = 5

Symbol TRISA = 133

Symbol Port B = 6

Symbol TRISB = 134

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

Goto start ‘Repeat

pause 500 ‘Wait 0.5s

Peek PortB, B0 ‘Read BCD code

If bit5 = 1 then send ‘Output code

goto start ‘Repeat

peek PortA, b0 'Read 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 a robot arm


Software update under 16F84 can be downloaded free of charge from http://www.imagesco.com

URR interface programming

Programming the interface of the RRR is similar to the programming procedure of the RRR from the set described in Ch. 7. For the correct operation of the manipulator arm, 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 to your liking.

Table 15.1

Parts list for PC interface

(5) NPN TIP120 transistor

(5) Transistor PNP TIP 125

(1) IC 74164 code converter

(1) IC 74LS373 eight keys

(1) LED red

(5) Diode 1N914

(1) 8-pin Molex connector socket

(1) Molex cable 8-core, 75mm long

(1) DIP switch

(1) DB25 angle connector

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

(1) Printed circuit board

(3) Resistor 15kΩ, 0.25W


All items listed are included in the kit.

Parts list for speech recognition interface

(5) NPN TIP 120 transistor

(5) Transistor PNP TIP 125

(1) IC 4011 NOR gate

(1) IC 4049 - 6 buffers

(1) IC 741 operational amplifier

(1) Resistor 5.6 kΩ, 0.25 W

(1) Resistor 15 kΩ, 0.25 W

(1) 8-pin Molex connector head

(1) Molex cable 8 cores, length 75mm

(10) Resistor 100 kΩ, 0.25 W

(1) Resistor 4.7 kΩ, 0.25 W

(1) 7805 voltage regulator IC

(1) IC PIC 16F84 microcontroller

(1) 4.0 MHz quartz crystal

Robotic Arm Interface Kit

OWI manipulator arm kit

Speech recognition interface for manipulator arm

Speech recognition device set


Parts can be ordered from:

Images, S.I., Inc.