|
-: Computerized Pick n Place Robot using VC++ :-
Abstract:- This is very basic robotic mechanism and probably nice to start with. The name itself suggest its application that it will pick and object from one place and put it at any other place. This kind of robots are found everywhere mostly in industries with same basic application.
Here this robot has two degree of motion (1) angular motion in horizontal plane (2) linear motion in vertical plane. It requires three different motors
All the motions are totally controlled by computer through a software written in VC++.
Note:- I am very much thankful to my three students (3rd sem. EC diploma, Govt. Polytechnic Amreli ) Sanjay, Vijay and Kaushik Who have done a great job in developing this mechanism.
___________________________________________________
Complete robot is combination of three subsections
1. Robotic mechanism
2. Hardware driver circuit
3. Controlling software in VC++
Obviously, the main part will be the mechanism that actually forms the body of robot means moving hand that picks or places any object.
Function of hardware driver circuit is to drive all three motors and actuates all the motions of robot
Controlling software is also an important part of this robot because it will take care of all controlling actions. The main functions of this section are
- Rotate the hand to one specific angle from where the object should be picked or to be placed
- Move the hand up or down to pick or place the object
- Open or close the grip of hand depending upon size of object
First, let us start with mechanical part
Robotic Mechanism:-
The figure given below shows the 3-D view of mechanism

The complete mechanism is made up of wooden sheets only the grips are made up of steel. There are so many parts so let us
The complete mechanism is made up of wooden sheets only the grips are made up of steel. There are so many parts so let us understood them one by one.
Fixed base:-Fixed base provide complete housing to driving circuit, AC Motor (ACM1) and all the connections. It provides the platform to moving and rotating hand
Rotating wheel:- It provides housing to moving hand and DC gear motor (DCM1). Its freely rotating platform which rotates hand in complete 360 degree circle. It is directly coupled to shaft of ACM1.
Moving hand:- It is coupled to DCM1 with the platform provided on rotating wheel. It is allowed to move up & down freely max up to 90 degree. At front end of hand there are two grips one is fixed (lower) grip and another is sliding (upper) grip. Sliding grip is allowed to slide forward and backward with the use of second DC gear motor (DCM2). The back end of hand provides housing to DCM2 which is directly coupled to sliding grip. Here the angular (circular) moment of motor is converted in to linear movement of sliding grip by engraving grooves on wooden sliding grip which exactly match with gear teeth.
AC Motor (ACM1):- Function of this motor is to rotate whole rotating platform up to some specific angle. This motor has an exactly calibrated speed of 2 RPM (revolution per minute) with applied voltage of 230 VAC and frequency of 50 Hz. So we can calibrate the angle of rotation very easily
2 revolution = 2*360 degree = 720 degree, means in one minute motor will rotate 720 degree.
Now in 1 minute = 60 sec motor rotates 720 degree so let us calculate how much it will rotate in 1 sec.
Sec degree of rotation
60 720
1 720 / 60 = 12 degree
So in 1 sec motor will rotate exactly 12 degree. Means if you give the supply for 1 sec motor will rotate only 12 degree. So you can easily select the steps for rotating motor like in 30 degree (30, 60, 90,...) 45 degree (45, 90, 135,...)
DC Gear Motor (DCM1):- It is used to move hand up and down in the limit of 90 degree angle. The inbuilt gears reduces the speed of motor to round about 5 RPM at 12 VDC. So calculating the angle of rotation in 1 sec
Sec degree of rotation
60 5*360 = 1800
1 1800 / 60 = 30 degree
Means if you give the supply for 1 sec motor will rotate only 30 degree. You can adjust maximum 3 steps 30, 60 and 90 degree
DC Gear Motor (DCM2):- It is used to open or close the grip to catch the object. You can increase or decrease the opening of grip depending upon size of object. Inbuilt gear turn ratio gives speed of round about 10 RPM. Let us again calculate angle of rotation for 1 sec
Sec degree of rotation
60 10*360 = 3600
1 3600 / 60 = 60 degree
Here motor will rotate 60 degree if supply is given for 1 sec. The groves are engraved such a way that when motor rotates 60 degree the grip moves around 1-2 cm. So ultimately you can open or close the grip in step of 1 cm(1, 2, 3...), 2 cm (2, 4, 6...).
Hardware Driver Circuit:-
The above figure shows the schematic of driver circuit. Its a dingle chip circuit and IC UNL2003A is the main component of it. Other components are 25 pin D-Type female connector, single C/O relay (RL1, RL2, RL3, RL5) and double C/O relay (RL4, RL6).
Connections:-The outputs of of connector D0 to D6 are directly connected to inputs of UNL2003A and the outputs of chip are given to one of the coil terminal to each relay. The other coil terminal of each relay is directly connected to 12 V Vcc supply. The 'common terminal' (C) of RL1 is connected to 230 VAC and ' Normally Open ' terminal (N/O) is connected with 'C' terminal of RL2. Both the terminals of RL2 (N/C, N/O) are connected with ACM1. For both the relays RL4 & RL6 alternate N/C & N/O terminals are shorted together. One of these pair is connected with ground and other pair is given a DC supply of 12 V and 5 V through RL3 and RL5 respectively.
Operation:- The chip UNL2003A consist of 7 Darlington pairs and whenever it is given a high logic at its input it will provide a low logic at its respective output. So whenever you apply a high logic through PC to the chip it will give corresponding low output. Because the outputs are connected with relay coil terminals relays will energized due to current passes through coil. When relay energizes its connection changes from N/C to N/O and it will perform some specific task. The table given below shows the function of each relay in the circuit
|
Relay |
Its Function in circuit |
|
RL1 |
To Start or stop rotating ACM1 |
|
RL2 |
To change direction of ACM1 |
|
RL3 |
To Start or stop rotating DCM1 |
|
RL4 |
To change direction of DCM1 |
|
RL5 |
To Start or stop rotating DCM2 |
|
RL6 |
To change direction of DCM2 |
Now lets move on to the last (but not the least) topic of the project and that is controlling software written in VC++ programming language. Here I am considering that you are much familiar with VC++ (if not then pls refer "DC motor control using VC++" & "Stepper motor control using VC++"). So lets don't waste any time and directly start with design of project.

The above figure shows the application prepared on platform of VC++. It has 14 different objects 7 push buttons 6 radio buttons and one group box. The functions and properties of each object is explained in table given below.
|
Sr. No. |
Object |
Properties |
Function |
|
1 |
Group Box |
ID:- IDC_Angle |
Provides grouping to all the radio buttons |
|
Caption:- Select an angle of rotation |
|
2 |
Radio button 1 |
ID: IDC_RADIO1 |
Selects the rotation angle of AC Motor to 30 degree. |
|
Caption: 30 deg. |
|
Group option: Checked |
|
3 |
Radio button 2 |
ID: IDC_RADIO2 |
Selects the rotation angle of AC Motor to 60 degree. |
|
Caption: 60 deg. |
|
4 |
Radio button 3 |
ID: IDC_RADIO3 |
Selects the rotation angle of AC Motor to 90 degree. |
|
Caption: 90 deg. |
|
5 |
Radio button 4 |
ID: IDC_RADIO4 |
Selects the rotation angle of AC Motor to 120 degree. |
|
Caption: 120 deg. |
|
6 |
Radio button 5 |
ID: IDC_RADIO5 |
Selects the rotation angle of AC Motor to 150 degree. |
|
Caption: 150 deg. |
|
7 |
Radio button 6 |
ID: IDC_RADIO7 |
Selects the rotation angle of AC Motor to 180 degree. |
|
Caption: 180 deg. |
|
8 |
Push button 1 |
ID: IDC_CL |
Rotate AC Motor in clockwise direction |
|
Caption: Rotate Clockwise |
|
9 |
Push button 2 |
ID: IDC_ACLK |
Rotate AC Motor in anticlockwise direction |
|
Caption: Rotate Anticlockwise |
|
10 |
Push button 3 |
ID: IDC_UP |
Move the Hand of robot in upward direction |
|
Caption: Move hand Up |
|
11 |
Push button 4 |
ID: IDC_DWN |
Move the Hand of robot in downward direction |
|
Caption: Move hand down |
|
12 |
Push button 5 |
ID: IDC_OPN |
Open the grip of hand |
|
Caption: Open Grip |
|
13 |
Push button 6 |
ID: IDC_CLOS |
Close the grip of hand |
|
Caption: Close Grip |
|
14 |
Push Button 7 |
ID: IDC_XIT |
Exit from the application |
|
Caption: Exit the Program |
|
|
|
|
|
After going through design lets move to operation of the program.
Operation:- All the radio buttons selects different rotating angles (from 30 - 180 degree) for AC Motor (ACM1). As we know if we give the supply to ACM1 for 1 second then it will rotate 12 degree. So to rotate in steps of 30 degree we have to give supply in multiple of 2.5 second. So actually all these radio buttons will selects desired delay (either 2.5 sec or 5 sec, 7.5 sec... likewise) for which ACM1 will be given the AC supply.
Rotate clockwise / anticlockwise button will rotate ACM1 clockwise / anticlockwise. Clockwise button will switch on the relay RL1 for the time delay selected by radio buttons and same way anticlockwise button will switch on two relays RL1 & RL2 at a time so that ACM1 will rotate in another direction.
Move hand Up/Down buttons will switch on RL3 / RL3 & RL4 for 1/2 second so that DCM1 will either rotate clockwise or anticlockwise and move the hand up or down.
Open / close grip buttons will switch on RL5 / RL5 & RL6 for 1/2 second so that DCM2 will either rotate clockwise or anticlockwise and move the sliding grip forward or backward to open or close the grip.
One more functionality is added that if anyone wants to rotate ACM1 to any different angle like 45 degree then he can do it by moving mouse with holding Left / Right mouse button down. Motor will rotate till mouse moves.
The functions are attached with every buttons. Click here to see the code |