Assembly of a mechanical manipulator arm. Do-it-yourself tabletop robotic arm made of plexiglass on servos or reverse engineering uArm. Sketch using an ultrasonic distance sensor

Nowadays, few people remember, unfortunately, that in 2005 there were the Chemical Brothers and they had a wonderful video - Believe, where robotic arm I was chasing the hero of the video around the city.

Then I had a dream. Unrealistic at that time, because I didn’t have the slightest idea about electronics. But I wanted to believe - believe. 10 years have passed, and just yesterday I managed to assemble my own robotic arm for the first time, put it into operation, then break it, fix it, and put it back into operation, and along the way, find friends and gain confidence in my own abilities.

Attention, there are spoilers below the cut!

It all started with (hello, Master Keith, and thank you for allowing me to write on your blog!), which was almost immediately found and selected after an article on Habré. The website says that even an 8-year-old child can assemble a robot - why am I any worse? I'm just trying my hand at it in the same way.

At first there was paranoia

As a true paranoid, I will immediately express the concerns that I initially had regarding the designer. In my childhood, first there were good Soviet designers, then Chinese toys that crumbled in my hands... and then my childhood ended :(

Therefore, from what remained in the memory of toys was:

  • Will the plastic break and crumble in your hands?
  • Will the parts fit loosely?
  • Will the set not contain all the parts?
  • Will the assembled structure be fragile and short-lived?
And finally, a lesson that was learned from Soviet designers:
  • Some parts will have to be finished with a file.
  • And some of the parts simply won’t be in the set
  • And another part will not work initially, it will have to be changed
What can I say now: not in vain in my favorite video Believe main character sees fears where there are none. None of the fears came true: there were exactly as many details as needed, they all fit together, in my opinion - perfectly, which greatly lifted the mood as the work progressed.

The details of the designer not only fit together perfectly, but also the fact that the details are almost impossible to confuse. True, with German pedantry, the creators set aside exactly as many screws as needed, therefore, it is undesirable to lose screws on the floor or confuse “which goes where” when assembling the robot.

Specifications:

Length: 228 mm
Height: 380 mm
Width: 160 mm
Assembly weight: 658 gr.

Nutrition: 4 D batteries
Weight of objects lifted: up to 100 g
Backlight: 1 LED
Control type: wired remote control
Estimated build time: 6 hours
Movement: 5 brushed motors
Protection of the structure when moving: ratchet

Mobility:
Capture mechanism: 0-1,77""
Wrist movement: within 120 degrees
Elbow movement: within 300 degrees
Shoulder movement: within 180 degrees
Rotation on the platform: within 270 degrees

You will need:

  • extra long pliers (you can't do without them)
  • side cutters (can be replaced with a paper knife, scissors)
  • crosshead screwdriver
  • 4 D batteries

Important! About small details

Speaking of “cogs”. If you have encountered a similar problem and know how to make the assembly even more convenient, welcome to the comments. For now, I'll share my experience.

Bolts and screws that are identical in function, but different in length, are quite clearly stated in the instructions, for example, in the middle photo below we see bolts P11 and P13. Or maybe P14 - well, that is, again, I'm confusing them again. =)

You can distinguish them: the instructions indicate which one is how many millimeters. But, firstly, you won’t sit with a caliper (especially if you are 8 years old and/or you simply don’t have one), and, secondly, in the end you can only distinguish them if you put them next to each other, which may not happen right away came to mind (didn't occur to me, hehe).

Therefore, I’ll warn you in advance if you decide to build this or a similar robot yourself, here’s a hint:

  • or take a closer look at the fastening elements in advance;
  • or buy yourself more small screws, self-tapping screws and bolts so as not to worry.

Also, never throw anything away until you have finished assembling. In the bottom photo in the middle, between two parts from the body of the robot’s “head” there is a small ring that almost went into the trash along with other “scraps”. And this, by the way, is a holder for an LED flashlight in the “head” of the gripping mechanism.

Build process

The robot comes with instructions without unnecessary words - only images and clearly cataloged and labeled parts.

The parts are quite easy to bite off and do not require cleaning, but I liked the idea of ​​processing each part with a cardboard knife and scissors, although this is not necessary.

The build begins with four of the five included motors, which are a real pleasure to assemble: I just love gear mechanisms.

We found the motors neatly packaged and “sticking” to each other - get ready to answer the child’s question about why commutator motors are magnetic (you can immediately in the comments! :)

Important: in 3 out of 5 motor housings you need recess the nuts on the sides- in the future we will place the bodies on them when assembling the arm. Side nuts are not needed only in the motor, which will form the basis of the platform, but in order not to remember later which body goes where, it is better to bury the nuts in each of the four yellow bodies at once. Only for this operation you will need pliers; they will not be needed later.

After about 30-40 minutes, each of the 4 motors was equipped with its own gear mechanism and housing. Putting everything together is no more difficult than putting together Kinder Surprise in childhood, only much more interesting. Question for care based on the photo above: three of the four output gears are black, where is the white one? Blue and black wires should come out of its body. It’s all in the instructions, but I think it’s worth paying attention to it again.

After you have all the motors in your hands, except for the “head” one, you will begin assembling the platform on which our robot will stand. It was at this stage that I realized that I had to be more thoughtful with screws and screws: as you can see in the photo above, I didn’t have enough two screws for fastening the motors together using the side nuts - they were already screwed into the depth of the already assembled platform. I had to improvise.

Once the platform and main part of the arm are assembled, the instructions will prompt you to move on to assembling the gripper mechanism, which is full of small parts and moving parts - the fun part!

But, I must say that this is where the spoilers will end and the video will begin, since I had to go to a meeting with a friend and had to take the robot with me, which I couldn’t finish in time.

How to become the life of the party with the help of a robot

Easily! When we continued assembling together, it became clear: to assemble the robot yourself - Very Nice. Working on a design together is doubly pleasant. Therefore, I can confidently recommend this set for those who do not want to sit in a cafe having boring conversations, but want to see friends and have a good time. Moreover, it seems to me that team building with such a set - for example, assembly by two teams, for speed - is almost a win-win option.

The robot came to life in our hands as soon as we finished assembling it. Unfortunately, I cannot convey our delight to you in words, but I think many here will understand me. When a structure that you assembled yourself suddenly begins to live a full life - it’s a thrill!

We realized that we were terribly hungry and went to eat. It wasn't far to go, so we carried the robot in our hands. And then another pleasant surprise awaited us: robotics is not only exciting. It also brings people closer together. As soon as we sat down at the table, we were surrounded by people who wanted to get to know the robot and build one for themselves. Most of all, the kids liked to greet the robot “by the tentacles,” because it really behaves like it’s alive, and, first of all, it’s a hand! In a word, the basic principles of animatronics were mastered intuitively by users. This is what it looked like:

Troubleshooting

Upon returning home, an unpleasant surprise awaited me, and it’s good that it happened before the publication of this review, because now we’ll immediately discuss troubleshooting.

Having decided to try to move the arm through the maximum amplitude, we managed to achieve a characteristic crackling sound and failure of the functionality of the motor mechanism in the elbow. At first this upset me: well, it’s a new toy, just assembled, and it no longer works.

But then it dawned on me: if you just collected it yourself, what was the point? =) I know very well the set of gears inside the case, and to understand whether the motor itself is broken, or whether the case was simply not secured well enough, you can load it without removing the motor from the board and see if the clicking continues.

This is where I managed to feel hereby robo-master!

Having carefully disassembled the “elbow joint”, it was possible to determine that without load the motor runs smoothly. The case came apart, one of the screws fell inside (because it was magnetized by the motor), and if we had continued operation, the gears would have been damaged - when disassembled, a characteristic “powder” of worn-out plastic was found on them.

It is very convenient that the robot did not have to be disassembled entirely. And it’s really cool that the breakdown occurred due to not entirely accurate assembly in this place, and not due to some factory difficulties: they were not found in my kit at all.

Advice: For the first time after assembly, keep a screwdriver and pliers at hand - they may come in handy.

What can be taught thanks to this set?

Self confidence!

Not only did I find common topics to communicate with absolutely strangers, but I also managed to not only assemble, but also repair the toy myself! This means I have no doubt: everything will always be ok with my robot. And this is a very pleasant feeling when it comes to your favorite things.

We live in a world where we are terribly dependent on sellers, suppliers, service employees and the availability of free time and money. If you know how to do almost nothing, you will have to pay for everything, and most likely overpay. The ability to fix a toy yourself, because you know how every part of it works, is priceless. Let the child have such self-confidence.

Results

What I liked:
  • The robot, assembled according to the instructions, did not require debugging and started immediately
  • The details are almost impossible to confuse
  • Strict cataloging and availability of parts
  • Instructions you don't need to read (images only)
  • Absence of significant backlashes and gaps in structures
  • Ease of assembly
  • Ease of prevention and repair
  • Last but not least: you assemble your toy yourself, Filipino children don’t work for you
What else do you need:
  • More fastening elements, stock
  • Parts and spare parts for it so that they can be replaced if necessary
  • More robots, different and complex
  • Ideas on what can be improved/added/removed - in short, the game doesn’t end with assembly! I really want it to continue!
Verdict:

Assembling a robot from this construction set is no more difficult than a puzzle or Kinder Surprise, only the result is much larger and caused a storm of emotions in us and those around us. Great set, thanks

The MeArm robotic arm is a pocket version of an industrial arm. MeArm is an easy-to-assemble and control robot, mechanical arm. The manipulator has four degrees of freedom, which makes it easy to grasp and move various small objects.

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

  • a set of transparent acrylic parts for assembling a mechanical manipulator;
  • 4 servos;
  • control board on which the Arduino Pro micro microcontroller and Nokia 5110 graphic display are located;
  • joystick board containing two two-axis analog joysticks;
  • USB power cable.


Before assembling the 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 (required external source power supply 5-6V 2A).

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

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

void loop()
{
// sets the servo position by magnitude (in degrees)
middle.write(90);
left.write(90);
right.write(90);
claw.write(25);
delay(300);
}
Using a marker, make a line through the servo motor body and spindle. Connect the plastic rocker included in the kit to the servo as shown below using the small screw included in 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 install four 20 mm bolts and screw nuts on them (half the total length).

Now we attach the central servo with two 8mm bolts to a small plate, and attach the resulting structure to the base using 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 right, and we get

Connecting the structure to the platform

And we collect the “claw”

We attach the “claw”

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

Pinout diagram

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 a specific point in 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 starting position is at the point (0, 100, 50), that is, 100 mm forward from the base and 50 mm from the ground.
An example of using the library to install a 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);
// grab
arm.closeGripper();
// down, harm and right
arm.gotoPoint(70,200,10);
// release the grip
arm.openGripper();
// return to starting point
arm.gotoPoint(0,100,50);
}

Methods of the meArm class:

void begin(int pinBase, int pinShoulder, int pinElbow, int pinGripper) - launch meArm, specify connection pins for middle, left, right, claw servos. Must be called in setup();
void openGripper() - open the grip;
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 Guide (English)

Good day, brainwashes! The age of technology has given us many interesting devices that can and should be improved with your own hands, for example like in this brain leadership about wireless control of a robotic arm.


There are several options for controlling an industrial robotic arm, but this one brain master class differs in its approach. The essence of it is to make a wireless homemade manipulating a robotic hand with gestures using a glove with a controller. It sounds ambitious and simple, but what in reality?
In practice craft looks like that:

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

Peculiarities:

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

Step 1: Components


For the glove:

Step 2: Pre-assembly


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

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

And secondly, the Uno contacts fill up quite quickly, but this is not surprising because you need to control 5 motors, backlighting, two buttons and a communication module. Therefore, we had to use a shift register. Based on the fact that the nRF24 modules use an SPI interface, I decided to also use SPI to program the shift register instead of the shiftout() function. And surprisingly, the code sketch worked the first time. You can check this by looking at the pin assignments and pictures.

Let it go bread board and the jumpers will be yours brain friends 🙂

Step 3: Gloves


OWI Robo-hand has 6 control points:

LED backlight located on the Gripper
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 these 6 points, that is, the backlight and 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 control occurs:

The grip is controlled by buttons on the middle finger and little finger, that is, when the index and middle fingers are brought together, the grip closes, and when the little and ring fingers are brought together, it opens.
The wrist is controlled by a flexible sensor on the index finger - bending the finger halfway causes the wrist to lower, and bending the finger fully raises it.
The elbow is controlled by an accelerometer - tilting the palm up or down causes the elbow to rise or fall accordingly.
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 - tilting the entire palm (face 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 grip control buttons.
In this case, the buttons are activated when held for 1/4 second to avoid response when accidentally touched.

While placing components homemade products on the glove you will have to work with a thread and a needle, namely, sew on 2 buttons, a flexible resistor, a module with a gyroscope and an accelerometer, and wires going from all of the above to the plug brain socket.

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

Step 4: Transmitter Block


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

All electronic components soldered onto the circuit board, while noticing how the nRF24 module “hangs” above the Nano. I thought what is it cerebral position will cause interference, but no, everything works fine.

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

Attention!! Before soldering, familiarize yourself with the pinout!

Step 5: Handle Controller


The basis of the robotic hand controller is Arduino Uno, which receives signals from the glove using nRF24 wireless communication modules, and based on them, it then controls the OWI manipulator using 3 L293D chips.

Since almost all Uno contacts were used, then brain duct, those going to them barely fit into the controller housing!

According to the concept brain games, at the beginning the controller is in the off state (as if the emergency red button is pressed), this gives you the opportunity to put on a glove and get ready to control. When the operator is ready, the green button is pressed and a connection is established between the glove and the manipulator controller (the yellow LED on the glove and the red LED on the controller begin to glow).

OWI connection

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

The LEDs are soldered to ground (-) and pin a0 of the Arduino through a 220 Ohm resistor.
All wires from the motors are connected to the L293D chip at pins 3/6 or 11/14 (+/-, respectively). Each L293D supports two motors, hence two pairs of contacts.
The OWI power wires are located along the edges of the 7-pin plug (leftmost +6V and rightmost 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 ICs.

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

Step 6: Pin assignment (pinout)


5V - 5V for accelerometer board, buttons and flexible sensor
a0 – flexible sensor input
a1 – yellow LED
a4 – SDA to accelerometer
a5 – SCL to accelerometer
d02 – interrupt contact of the nRF24L01 module (pin 8)
d03 – input of the gripper opening button
d04 – grip 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 module NRF24L01 (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 selecting a shift register - to pin 12 on the shift register
a2 – red button input
a3 – green button input
a4 - base movement to the right - pin 15 on L293D
a5 – LED
d02 - IRQ input of nRF24L01 module (pin 8)
d03 - turn on the base motor - pin 1 or 9 on L293D
d04 - base movement to the left - pin 10 on the corresponding L293D
d05 – arm motor activation – pin 1 or 9 on L293D
d06 - elbow motor activation - pin 1 or 9 on L293D
D07 - SPI CSN to NRF24L01 module (pin 4)
d08 - SPI CS to NRF24L01 module (pin 3)
d09 - wrist motor enable - pin 1 or 9 on L293D
d10 – enable the capture motor – pin 1 or 9 on 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 products 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 just need to send:

Turn on/off backlight (1 bit) - I actually use 2 bits in conjunction with the motors, but one is enough.
off/right/left for all 5 motors – 2 bits each, that is 10 bits in total

It turns out that 11 or 12 bits are enough.

Directions coding:
Off: 00
Right: 01
Left: 10

By bit, the control signal looks like this:

Byte 1 can conveniently be routed directly to the shift register since it is the right/left control of motors 1 through 4.

A delay of 2 seconds turns off the connection, and then the engines stop as if the red button was 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 determined by a 5-bit value (0..31) proportional to the angular position of the glove. The manipulator controller distributes the received value (0..31) to PWM values, respectively, for each brain engine. This provides consistent operator speed control and more precise robotic arm manipulation.

New set of gestures crafts:

  • Backlight: Button on the middle finger - On, on the little finger - Off.
  • The flexible sensor controls the Grip - half-bent finger - Open, fully bent finger - Close.
  • The wrist is controlled by deflecting the palm up and down relative to the horizontal according to the movement, and the greater the deflection, the greater the speed.
  • The elbow is controlled by the deviation of the palm relative to the horizontal to the 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 facing up. Rotation of the palm relative to the axis of the elbow causes the robotic arm to swing.
  • 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. Moreover, the design homemade products expands the range of control options not available with a standard control panel:

Gradient speed increase: each motor movement starts at minimum speed, which then gradually increases with each second until it reaches the required maximum. This will allow for more precise control of each motor, especially the Grip and Wrist motors.
Faster braking: 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 for control, or even several gestures at the same time.

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

General information

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

Based on the connection method, joysticks are divided into joysticks with a USB connection and a Game Port connection. I don’t know whether it’s possible to make a USB joystick yourself from scratch, but I believe that if it’s possible, it’s only for highly qualified radio engineers. It’s another matter to remake a ready-made USB joystick to suit your taste and needs. This is accessible to almost everyone who can hold a soldering iron in their hands. Making a joystick from scratch on the Game Port is not difficult, and is completely within the capabilities of every person who knows how and loves to tinker with plastic and iron trinkets. :-)

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

How to make a joystick

In my opinion, the most careful attention when creating your own joystick should be paid to its mechanics. Main enemy on this front there is a backlash. How can you overcome it? My solution cannot be called simple, easy or cheap. However, you can call it mechanically perfect. It consists in the fact that all rotary units are assembled on rolling bearings with double support for each part. This design has three advantages - a complete absence of play, damn strength and highest precision positioning. A smooth ride is also important, eliminating jerks and uneven movements.

Next, select the type electronic filling. Optics or resistors? The optics are more precise and eliminate jitter. However, the 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 ones and not cheap ones, otherwise there will be jitter that will ruin the whole impression.

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

So, we see that the entire unit consists of three main units: the roll, pitch and rocker units.

The boot is bought from a Zhiguli ball, 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 head is screwed into it. This bolt transmits torque to the rocker.

I made the overlays from vinyl plastic 10 mm thick. Next, I drilled a hole in the center and pressed the bearing into it (I pressed it in with force. It holds perfectly). The bearings themselves are removed from the 3.5 cooler (blower), if it has rolling bearings.

Here's a shot of the mechanics:

Having made the mechanics unit (this may take several months), you need to make the body. There's plenty of room for you here. I use vinyl plastic for this. It is used 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.

Vinyl plastic is very durable, elastic, and easy to process. From it you can glue any body to your taste with bauxite. Smooth the corners, paint it - no one will distinguish it from the factory one. There is, however, one nuance here. To make the case stronger and look more decent, I do this.

Take a sawn-off piece of vinyl plastic of the required size and 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 higher (it is advisable that when a piece of vinyl plastic touches the heating surface, the vinyl plastic melts slightly - then the temperature will drop). Perfect option- heating element rod, diameter 8 - 15 mm. I have an unidentified cooking appliance that has this surface - a round rod that gets 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 pencil strip to the rod that does not allow the material to melt. When a piece of vinyl plastic warms up sufficiently, it becomes elastic and easily bends to the required angle. In our case it is 90 degrees. Then, holding the angle with your hands, cool the fold under the stream cold water from water tap, the vinyl plastic hardens, and it lasts forever :-). We do the same with the opposite surface. All that remains is to cut out two side pads from vinyl plastic, fit them tightly so that they fit inside without gaps, and glue them together epoxy resin. Next, we make the required hole for the RUS rod in the upper surface of the newly made body, and 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 added with a large boot, it will look something like this:

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

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

The most difficult thing about pedals is to make them look decent so that they don’t look like a torture instrument :-) Take a look.

The technology is simple. We take the required piece of PCB, heat it exactly in the middle, and bend it to an acute angle (more than 90 degrees). The angle is needed such 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 stroke. Then we take two small door hinges, cut out the pedals themselves according to their width and the required length, and connect the hinges, pedals and frame.

Then we make steel guides and screw them to the pedals. Steel guides are subjected to turning - in in the right places they are weakened so that the elastic band does not fall off (the elastic band is filled with blue), and in the necessary ones they thicken, since a string will go through this thickness (in the picture filled with red), providing feedback to the pedals. The string itself must be strong and thin. I used strong fabric insulation of the electrical cable for its role. A nylon clothesline will also do. This rope needs to be pulled through two blocks. It is desirable that these blocks be assembled on ball bearings and have grooves so that the string does not fall off. The blocks are mounted on bolts with a diameter of 6 mm. Less is not possible, because it load-bearing unit, we will work with our feet, and we need strength.

In the figure I depicted a method for attaching a resistor and transmitting torque to it. Arranging an optical circuit is even simpler. All electromechanical equipment is covered with a plastic casing.

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

...several months have passed...

The time has come when I can begin to describe the new pedals.

Quite a flight ( more than a year) on pedalboards (that’s what I call pedals of the above type, they can also be called autopedals), I realized that I was ripe for increasing the level of realism :-) The pedalettes retired and were given to a friend.

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

Let's define the essence of hardcore airplane pedals.

Hardcore Air Pedals:

  1. They work on the principle feedback(press one pedal away from you - the second one comes towards you);
  2. The pedals themselves do not change the horizontal angle of installation when pressed;
  3. The distance between the pedals should correspond to a similar distance in real airplanes;
  4. The pedals are spring-loaded and have a neutral positioning point that can be clearly felt by your feet.

In order for these pedals to work, you need:

  1. Big square contact of the base of the pedals with the floor to prevent the structure from tipping over;
  2. Eliminate the possibility of the pedal base sliding on the floor;

The first stage of thinking about pedals is the stage of coming up with the base for future pedals :-) There are two possible ways. The first is to follow the path of least resistance - take a thick sheet of chipboard as the base, and mount all the necessary components on it, providing the base with rubber stickers to avoid displacement of the structure. The second way (more difficult) is to come up with something different, not continuous, not heavy and not bulky. Within this path, we will highlight two. The first is to make the base yourself. The second is to take what is ready. In the first case of metal pipes A T-shaped structure is made on which the necessary components are fixed. Spikes are built at the ends of the structure. In the second case, the problem is finding the necessary consumer goods. I solved it by using as a basis the basis of the domestic metal stand under the TV. It is a black five-legged one (I have also seen four-legged ones), and comes with or without wheels. You'll have to get rid of the wheels.

The inner diameter of the “glass” of this rack and its depth allow it to accommodate a strong mechanical unit for future pedals.

The assembly itself can be made manually, or it 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 I found in my junk boxes. This was quite difficult because it is impossible to select a bolt with a thread diameter that matches the internal diameter of the bearings, which entails a tedious process of aligning the bearings on the bolt. It is also not easy to drill an M14 bolt all the way through at home. 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. The interrogation of the resistor of the “pedal” axis in this joy is designed to strictly fix the polarity of the resistor. In other words, the pedal relay is correctly interrogated only if the wiring of the extreme legs of the relay is identical to the original one. However, if the resistor is placed under the structure (the glass of the pedal stand), then in order to match the effect on the pedals and the reaction of the rudder in the game, you need to resolder the extreme contacts on the resistor. After resoldering, the resistor polling is distorted, uneven control appears, and the alignment is constantly lost.

Another problem that could not be solved right away was the alignment of the pedals. I tried two options. When implementing the first one, I tried to grab the pedal bar itself with springs on both sides. However, this was the wrong way because the springs were tight and one side of the pedals always rested on a spring that was already compressed. In the second case, I drilled the rod horizontally in the center and attached a bolt there, onto which I put a spring. This option turned out to be quite good, except that it did not provide a precisely felt neutral zone. As it turned out later, the bolt with a diameter of 6 mm used for centering was not strong enough and was bending.

Also a funny story happened with the pedal travel limiters. I initially planned to make limiters, and spent a lot of time installing them. It also had its own options, its own mistakes and the only possible solution. However, when I removed the limiters one day and tried the pedals without them, I came to the conclusion that the limiters were unnecessary. This is due to the fact that if you spring the pedals sufficiently, it is simply impossible to turn them to the critical angle for the resistor using reasonable forces on the pedals - the spring does not allow you to turn them more, and the entire structure begins to move. In other words, in order to turn your head into a reversal, you need to specifically set yourself this goal, and rest your entire weight on one pedal. However, in this case, both the limiter and the entire spring system can easily be broken. If so, then there is no need for limiters. It all looked like this:

In general, after struggling with the resistor for some time, I decided to move the resistor to the top. This required reworking significant parts of the mechanical assembly design, since the pedals were spring-loaded from above. This time I decided to turn to a turner. I made a drawing, which I present here. If you want to follow in my footsteps, then the drawing can be saved to disk, printed on a printer, and taken to a turner.

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

To be or not to be? This is the question we will be asked in the first paragraph. No, don't get me wrong, the throttle as such is certainly necessary on the joystick, the point is, should it be separate from the joystick? A definite answer can only be given if your joystick is floor-standing. If it is floor-mounted, then a separate throttle control is required. What if the joy is desktop? And does it have a corresponding lever (slider) to control the engine? This is everyone's business. Depends on the virpil’s views on his virpil’s life, his miserable lot :-) My opinion is clear - if the joy is a tabletop, then placing another box on the table with a lever to control the engine is nothing more than a reason for hysterics in the chicken coop. The chickens will love it, and they will laugh so much that they might even burst.

Why am I so categorical on this issue? Yes, because I see absolutely no reason for a separate RUD to appear next to the desktop joy. What could be the reason? Need to expand functionality? It's funny, because the bases of modern joysticks are stuffed with buttons that are located quite conveniently. And if it’s not enough, you can briefly remove your hand from the base and point your finger at the keyboard, located a couple of centimeters from the base of the joystick. In addition, operate in battle thumb the left hand is much more convenient than moving the entire limb back and forth on a separate ore. Verified. But maybe this is a noble desire to increase realism?? It’s all the more funny, since realism is primarily contained in the air pedals, secondly in the floor-mounted control gear, and only thirdly in the separate thrust control. Using a metaphor, we can say that making a desktop RUD with a desktop RUS is the same as “upgrading” a weak old computer by buying a new “boyish” case for 300 bucks :-) However, this is my opinion, it is subjective. Maybe the body is more important to someone.

I hope you have decided whether you need a separate throttle control unit. If your life without a separate RUD seems gray and gloomy to you, then let’s continue the debate :-)

So, what are the basic requirements for throttle levers?

  1. Smooth running without jerking or uneven movement;
  2. Tight move. Tight enough so that the throttle stays in the position in which you released it, and does not move due to vibrations of the ether :-);
  3. Sufficient weight and size of the base so that when manipulating the throttle, the base of the throttle does not fidget on the table (chair);
  4. Comfortable handle;
  5. Sufficient amplitude of throttle movement.

How will we implement these requirements? We will ensure smoothness by building a mechanism on ball bearings. We will achieve a smooth ride using a braking system. We will increase the weight with weights. Let's 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 basic fastening of the mechanics unit. Possible the following options:

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

Look at the picture:

Each option has its pros and cons.

The first option is preferable because when it is used, access to the contents of the throttle lever is extremely easy - remove the bottom cover and operate like Pirogov :-) The disadvantages are that, firstly, the throttle body itself must be quite strong and thick, and secondly , two bolt heads will appear on the top panel (for us, aesthetes, this is not appropriate), and thirdly, the length of the throttle rod is reduced, and according to the reduction, the trajectory of the throttle stroke is rounded.

The advantage of the second option is the greater length of the throttle rod, the ability to use thinner material for the throttle body base, there are no bolt heads on the top 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. And the mechanics will be partially hidden by the edge of the fastening angle.

The third option has all the advantages of the second (if the mechanism is attached to the bottom cover). Its only major minus is the need to make throttle movement limiters (in the first options, the amplitude of the 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 solid 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 ran out of all the material to make a normal case. When I get the material, I’ll redo it according to option 2. You decide for yourself. As they say, based on abilities and needs :-)

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

This option preferable for fans of “retro” :-), it is fundamentally similar to the Yak-3 RUD. 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. We seem to be done with this, the choice is up to you, but 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 throttle mechanics block itself. Two ball bearings with an internal diameter of 7 mm will be required. If you chose the lower scheme, then, accordingly, there are four bearings. I also advise you to get a corner with edges of 70 mm, or just a steel plate with a thickness of at least 5 mm (in this case, when implementing the upper scheme No. 3, you will have to attach the mechanics to the lid). Let's 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 (preferably its internal diameter allows it to sit flush on the bolt) 10 mm long, then there is a bearing, again a tube, but a little longer (20-30 mm) , again the bearing, and the whole thing is tightly tightened with a nut. The end of the bolt is pre-processed with sandpaper so that its diameter is 3-4 mm.

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

The design 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 a braking pad, since leather does not crumble like rubber and does not litter the mechanism. The brake lasts long enough and does not weaken.

When you finish assembling the mechanical unit, 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). I think it’s clear how to attach a harness to the mechanics.

The throttle rod can be made either from a tube (steel rod) or from a plate. I used a strip of PCB, 8mm thick and approximately 40mm wide. I slightly curved it at the end and attached a handle to the curved end.

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

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

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

So, the ore handle is 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 PCB and made a hole to let the stranded wire pass through. A glass is screwed onto the lid - that’s all the ore.

In the upper (blind) part, the glass is drilled, and a shortening is inserted into it (domestic, 150 kOhm, soldered instead of Trustmaster's to the board. The domestic one has a large amplitude of rotation, while the native one has a meager interrogation angle). Further to the blind part with outside A homemade washer made of thick textolite is attached (with three M4 bolts), the purpose of which is to hide the nut securing the resistor to the glass and to remove the gap between the resistor handwheel and the end of the glass. A handwheel from the photo enlarger assembly is fitted onto the rezjuk rod, which (happy coincidence) matches the diameter of the glass. In real life it looks like this:

This is how the hand rests on it:

In conclusion, I would like to add that everything that I have described here is done without the involvement of outsiders. All you need is a vice, a hacksaw, a drill, a plumbing kit (drills, taps and tools). I also used an emery machine self-made. If you don't have one, don't despair - a file and your hands work wonders. I think everyone has the rest of the tools (pliers, wire cutters, etc.).

Kelt (makkov at mail dot ru)

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 the 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


To power the arm, OWI Robotic Arm Trainer used five miniature DC motors. 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 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

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

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

After reaching 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.

Share