This is the most advanced version of “ Pick and Place Robot ” perhaps the most popular and widely used in recent industries. A person from a remote location can comfortably control the movement of the robotic arm without any wire connection.
Again, there are two systems, one on the transmitter side, in which a software program written in VC++ generates control signals. These signals are encoded and transmitted by the RF transmitter chip. At the other end, the RF receiver chip will demodulate these signals and the decoder will decode them. Finally, the 89C51 will perform the desired control action on the robotic arm.
This is a similar type of project to the pick n place robot, but there are two main changes
1) The mechanical structure is controlled wirelessly from a remote computer
2) The mechanical structure of a robotic arm is actually a working instrument in industries, not just in simple projects
Here, a man from a remote location with a range of about 50-100 m, sitting on his chair with his computer, can easily control the mechanism by keyboard or mouse. An ASK transmitter connected to the computer transmits the control codes. These codes are received by the ASK receiver, decoded and delivered to the 89C51 which then controls the movement of the robotic arm. Thus, according to the user's command through the computer, the movement of the robotic arm is controlled from a remote location without any wire connection.
Let's first start with the mechanism
Mechanical structure of the robotic arm: –
The figure below shows the complete external structure of the robotic arm. The complete body is made of solid steel. All movements are perfectly calibrated and controlled. Full size with all dimensions are as indicated. There are several movements in this arm
- Circular movement of the hand: – the arm can rotate completely in 360 ° circle with the help of a ¼ HP, 0.2 A, 230 V bi-directional AC motor (ACM1) which has a maximum of 5 RPM at 230 VAC nominal
- Vertical movement of the hand: – the hand can move downwards from below 0 ó up to 30 ó maximum up to 90 ó . This motion is divided into two parts. Lower hand and upper hand. The lower pointer moves up and down due to the ¼ HP, 0.2 A, 230 V bidirectional AC motor (ACM2) that has a maximum of 5 RPM at 230 VAC nominal. The advantage is powered by a 6V DC gearmotor (DCM2)
- Circular Grip Motion: – The grip can rotate freely in any direction in a full 360 degrees circle due to the 5 VDC bipolar stepper motor with 18 steps resolution.
- Handle opening closure: – the maximum handle opening is 5 cm and the minimum is 0.5 cm. the same type of 6 VDC gearmotor (DCM1) is used for this movement.
So for all movements we have one engine in total five engines. All five motors provide full flexibility to the mechanism so that it can choose and position an object with ease.
Now we will start with the control of this mechanism. There are two parts
1) Computerize the ASK transmitter: – this is a small piece of hardware connected to the LPT port of the computer that transmits the action codes provided by a software program prepared in VC++.
2) 89C51 based ASK receiver: – consists of ASK receiver, decoder and 89C51 microcontroller. It controls all the movements of the robotic arm by controlling all five motors depending on the command given by the user.
Computerized ASK transmitter
Computerize the ASK transmitter: –
This part is divided into two parts (1) software and (2) hardware
Software part: – the figure below shows the design of the application.
It has 10 command buttons for 10 different movements. Here is the description of its properties.
Mr. No. |
item |
property |
context |
function |
1 |
Button1 |
I WENT rubric |
IDC_CLK Clockwise |
Rotates the hand 30 ° clockwise when the button is pressed once |
two |
Button2 |
I WENT rubric |
IDC_ACLK &Counter-clockwise |
Rotate the hand 30 ° counterclockwise when the button is pressed once |
3 |
Button3 |
I WENT rubric |
IDC_CLKW Rotate in a clockwise direction |
Pressing the buttons once will rotate the handle 75 ° clockwise |
4 |
Button4 |
I WENT rubric |
IDC_ACLKW Rotate counterclockwise |
Pressing the buttons once will rotate the handle 75 ° counterclockwise |
5 |
Button5 |
I WENT rubric |
IDC_CLS To close |
Opens the handle by 0.5 cm when pressing the button once |
6 |
Button6 |
I WENT rubric |
IDC_OPN &Open |
Closes the handle by 0.5 cm when pressing the button once |
7 |
Button7 |
I WENT rubric |
IDC_UP1 &Move up |
Moves the bottom of the hand 30 ° upwards when the button is pressed once |
8 |
Button8 |
I WENT rubric |
IDC_DWN1 Move down |
Moves the bottom of the hand 30 ° downwards when the button is pressed once |
9 |
Button9 |
I WENT rubric |
IDC_UP2 Move up |
Moves the top of the hand 30 ° upwards when the button is pressed once |
10 |
Button10 |
I WENT rubric |
IDC_DWN2 Move down |
Moves the top of the hand 30 ° downwards when the button is pressed once |
In fact, each button sends a specific code to the LPT port that will be transmitted by the ASK transmitter. Each code is triggered on a specific movement in hand.
One of the functions that send code to LPT is written below
empty CRoboticHandDlg::OnClk
{
// TODO: Add your control notification handler code here
_outp(0x0378, 0xE1); //enable transmission and send the code to LPT
Sleep(200); // wait 0.2 seconds
_outp(0x0378,0x10); // disable transmission
}
Here are the codes that trigger a specific move
01h*: turn the hand clockwise
02h: turn the hand counterclockwise
03h: turn the handle clockwise
04h: turn the handle counterclockwise
05:00: move the lower hand up
06:00: move the lower hand down
07h: move the upper hand up
08:00: move the top hand down
* “h” indicates that all codes are in hexadecimal format.
Now let's see the small hardware that will transmit these codes
Hardware part: – the block diagram of this part is shown in the figure.
As shown in the figure, a 16-channel ASK transmitter is connected with a 25-pin D-type male/female connector. The D0-D3 data pins of the connector are connected to the data pins of the encoder chip (HT12E). Pin D4 connected to the transmit enable (TE) pin of the encoder chip. The output of the encoder chip is given as input to the 434 MHz ASK transmitter which will modulate the data with a carrier signal and transmit it through a suitable antenna. As there are four bits, we can send a maximum of 16 different codes through this transmitter, which is why it is a 16-channel ASK transmitter.
ASK receiver based on 89C51
ASK receiver based on 89C51 : –
The figure below shows the circuit diagram of the receiver
The main blocks of the receiver are the 89C51-based ASK receiver, the ULN current driver chip, and the bipolar stepper motor driver.
The ULN chip is used to energize 8 relays that turn on or off all four motors (2 AC motors and 2 DC motors) and also change their direction. There are 8 relays, of which 4 are single-switch (c/o) and the other 4 are double-switch. To start or stop the motor and also change its direction, a single c/o relay and a dual c/o relay are required. The connection is made in such a way that when the single c/o relay is energized it starts the engine and when de-energized it stops the engine. The second 2 c/o relay changes direction as it moves from one position to another. Thus, each motor needs two relays, one for starting and stopping and the second for changing direction.
Standard H-bridge circuit is used in bipolar stepper motor driver. For more details on this circuit click here.
The receiver's internal blocks are also indicated in the corner. The main parts are 434 MHz ASK receiver, decoder chip (HT12D) and 89C51 microcontroller. The ASK receiver will demodulate the signal and provide the encoded data to the decoder. The decoder will decode it and send it to 89C51. The P0 port of 89C51 is used to control the stepper motor through the driver and the P2 port is used to control other four motors through the ULN chip. All eight pins of P2 drive a relay via the ULN chip.
The heart of the entire circuit is the 89C51 as it handles all the functions like getting the code from the decoder, comparing them with the stored codes, controlling the movement of the hand by driving any of the five motors. It performs eight different functions as reported by the transmitter by obtaining eight different codes. It has eight subroutines for these functions. Each code, when received and decoded, will call a specific subroutine. When the subroutine is executed, the program waits again for the next user command. We can only send one command at a time, so only one movement is triggered at a time.
Working Operation : –
- When you press any of the computer program command buttons, one of the codes will be sent to the LPT port. For example, code 02h is sent to rotate the hand counterclockwise
- The ASK transmitter connected to the LPT will transmit the code over the 434 MHz carrier
- On the receiver side, the ASK receiver demodulates the code and delivers it to the decoder chip
- The decoded code is given for 89C51. It will compare this code to the stored codes and when a match is found, it will energize RL1 and RL2 to rotate ACM1 counterclockwise so that the pointer rotates counterclockwise. The controller will move the pointer to exactly 30 ° and then stop.
- Now the controller will wait for the next command
- Again, when the next command button is pressed, the same process repeats