Pick and Place Robot for Surface Mounting Devices

This project is based on pick-and-place machines for placing surface mount devices onto the printed circuit board. In general, the SMT pick and place robot using an end effectors to pick and place the component on the PCB and a controller is used to control the movement of the stepper motor. Our SMT pick and place machine is designed with a Cartesian configuration, and the Arduino UNO controller with the CNC shield controls the stepper motors. The end effectors use a vacuum suction pen to pick and place the components and a belt mechanism is used in the z-axis for up-down motion. Our machine is portable and well suited for small scale industries. Our project satisfies one important sustainable development goal industry, innovation, and infrastructure.


Introduction
Generally, a pick-and-place machine is used to pick and transfer a specific component to any desired location. The pick and place machine's greatest significance are its precision, accuracy, reduced time, and less manpower. This is where we are using this machine to place Surface Mount Devices on the Printed Circuit Board (PCB). Surface Mount Technology's evolution in soldering over pinhole soldering demands the use of automation for the process in question.

Surface Mount Technology
Surface Mount Technology is an area of electronic assembly used to mount Electronic components to the surface of the printed circuit board (PCB) instead of inserting elements through holes like typical assembly. SMT was developed to scale back producing prices and additionally to create additional economical use of the PCB area. As a result of the introduction of surface mount technology, it's currently attainable to create extremely advanced electronic circuits into smaller and smaller assemblies with smart repeatability thanks to the upper level of automation [1][2][3][4].

Pick and Place Machine
Pick and place of Surface Mount Device machine www.rspsciencehub.com Volume 02 Issue 08 August 2020 International Research Journal on Advanced Science Hub (IRJASH) 76 is highly essential to implement. This machine assists in placing such small components in the Circuit Boards. Major types of pick and place machines (PNP) are  Multi-head PNP  Turret type PNP  Sequential PNP Our machine is a sequential PNP which involves a feeder mechanism for transferring components that acts similar to a conveyor.

Purpose of our Machine
The purpose of our machine is to ensure the placement of SMD components with high accuracy and to make the machine so compact and portable. [5][6][7]

Literature Study
A literature study is made on similar pick and place machines which differs in the application and comparison is made on different papers. From the observations, we summarised the existing work, and the required modifications are made accordingly. The arm containing 5 degrees of freedom and wheels for the motion of the vehicle, this robot is remotely controlled for handling hazardous objects. Such robots usually have a SCARA configuration.

Summary on the Literature Study
Most of the above research was only conducted on SCARA, even though they are flexible than a Cartesian robot, SCARA can only lift limited payload which itself includes its motors. On the contrary Cartesian robots can handle larger payload and provide better accessibility to a variety of parts.Regarding the end effector, most of the existing machines use gear mechanism for the z translation movement that has been changed into a pulley belt mechanism to eliminate the wear

Design
The finalized design involves the integration of various mechanisms assembled altogether and also the bottom-up assembly approach is enforced.

Bottom-Up Assembly
Users start designing a product in the Bottom-up approach by detailing its low-level component.
Then, these are grouped into distinct components. The process is carried on until the product itself is formed. Fig.1.The 3D isometric view of our project

Vacuum Suction
The core of our project is designing and developing a pick and place machine that is accomplished through a vacuum suction pump. The pressure required to suck the part (PICK) is given and the part (PLACE) is dropped.

Feeder Mechanism
To move the SMD elements from a strip after a certain delay time, the feeder mechanism is used. The required delay time is set for a particular sequence.

Belt Mechanism
V-belt and pulley mechanisms are employed altogether for three axes of motion. The primary motion is attained by the stepper motors which is thereby transmitted to the X, Y, Z frames (motion axes) with the assistance of a pulley and a belt.

Aluminium Extrude
The profile of the Cartesian is designed with Aluminium extrusion. Profile used -4040, 4080.

Stepper Motor
The NEMA 17 motor with a step angle of 1.8 degrees and a torque of 3.2 Kg is used for all 3 axis movements. A stepper motor is an electric motor that divides the rotation in terms of steps, energizing each phase in series, one stage at a time. Without any position sensor, the motor can be moved to one of those steps. Motor selection is based on torque, step degree and power rating.

Arduino Controller
Arduino UNO controller is used for controlling the stepper motor in all the axes. It can operate at a voltage of 5V. It has 14 Digital Input /Output pins (of which 6 provide PWM output). It requires 20 mA DC Current per I/O pin and 50 mA DC for 3.3V pin. The available flash memory is 32 KB of which 0.5 KB used by the boot loader. It has a clock speed of sixteen megacycles per second.

CNC Shield
Arduino UNO is used for stepper motor control in all axes. It can operate at 5V. It has 14 Digital Input / Output pins (6 of which give output from PWM). For 3.3V pin, it requires 20 mA DC Current per I / O pin, and 50 mA DC. The available flash memory is 32 KB and the boot loader uses 0.5 KB of that. It has an average clock speed of 16 megacycles per second.

Vacuum Pump
This is the most important component required to create the suction pressure required to pick and place the component.

Arduino
The Arduino Integrated Development Environment (IDE) is an application written in java programming language. It has a code editor with features such as text search and replacement, automatic indenting, brace matching, and highlighting syntax, related to it provides easy one-click mechanisms for compiling and transferring programs to an Arduino board. It includes message area, a text screen, and a toolbar with common function buttons.

UGS (Universal G-Code Sender)
Universal G-code Sender prevails as a selfcontained Java application with all external dependencies, meaning if you have the Java Runtime atmosphere setup that UGS provides for the rest. The Universal G-code Sender turns out to be an open-source G-code sender compatible with Java-based GRBL. This program is used to run a CNC machine that is controlled by GRBL.

Features
 It's been tested on Windows, Linux and Raspberry Pi.  The JAR file contains Native Dependencies for all OS supported.  Estimates on duration.  More than 3000 lines of the unit look at the code, and another 1,000 lines of comments documenting the tests.  Optimization of G-Code configurable.

Motor Torque Calculation
 Weight of Al Extrusion -1.036kg.
 Acrylic used -0.548kg.  3D printed part-0.66kg.  17HS2408Stepper Motor-0.150kg. Vacuum pen-0.034kg.  Total weight -±2.5kg (500g tolerance).  We need stepper to move 3kgs approximately in the x-axis and 1kg in the y-axis.  The required holding torque of the motor should be 3 to 4 kg-cm.  Two 17HS3401 stepper motor with holding torque of 2.6 kg-cm in the X-axis is chosen.  One 17HS3401 is chosen for the y-direction.
For z-axis 17HS2408 stepper with a torque of 1.22 kg-cm is used.

Rated Current Calculation (To be set in Arduino)
To set this limit is to calculate the reference voltage that corresponds to your required current limit then alter this limit potentiometer till you live that voltage on the VREF pin.

V-Belt Calculation
Grade GT2 open loop timing belt. The material used is Neoprene Rubber with Fiberglas Core. The pitch of the belt is 2mm. It has a width of 6mm and a total length of 2m.

Vacuum Suction Pressure
The work piece is lifted vertically and horizontally transported. Acceleration is about 5 m/s 2 . And m=140 g.

Block Diagram of Our Motor -CNC Shield -Arduino Interface
The Connections for stepper motor and CNC shield with the Arduino are given in the below circuit diagram. The above circuit diagram shows the connection of 4 stepper motors with the motor drives mounted on the CNC shield. The SPMS is also connected with the pins in the CNC shield. The Block Diagram of the Entire connection and interface is given in the Fig.3. This is explained below.

Fig.3.The Block Diagram of the Entire connection and interface
The G-Code that is generated using the coordinates on the PCB is uploaded to the Universal G-Code Sender (UGS) which sends the G-Codes as a GBRL firmware that translates the Codes to corresponding stepper motor pulse in Arduino IDE's format.

G-CODES AND ITS COORDINATES
G-Codes moreover referred to as prerequisite codes, CNC program starts with alphabet G. In general, it is a code that commands the machine tool what kind of operation to be done such as: • Rapid movement.
• Controlled feed-in arc or straight line.
• A sequence of guided feed movements which may cause a hole to bore, a work piece routed to a specific dimension, or a contour shape added to that edge of job • Set the tool information, e.g. offset.
• Change system coordinates.
The coordinates are determined by the SMD component position on the PCB. The G-Codes are produced for the Corresponding coordinates.

GBRL
GBRL is a CNC controller and its configuration are given below

UGS (Universal G-Code Sender)
A fully functional G-Code system that is used to connect advanced CNC controllers like GRBL and TinyG. Universal G-Code Sender can be a selfcontained Java program with all external dependencies, meaning the rest will be supported if you have the UGS setup for the Java Runtime atmosphere.

Toggles and Overrides
Just version of the platform. Additional Overrides app can easily monitor real-time feed and speed overrides from the window menu.

Mode Jog
This excellent jog mode ensures that the GCODE state will not be revised and also allows you to avoid jogging while it is underway. UGS automatically uses this new syntax when it detects a supported version of GRBL. The STOP action is used to stop the process during a jogging usage.

Homing and Calibration
The position to which the machine returns after a particular cycle is called Home position and to set the home position initial coordinates are given. The calibration of the machine is done with the help of a simple ruler. A ruler is set in the path and particular steps per revolution are given to check the accuracy and precision of the stepper motor and calibrated accordingly.

Hardware and Software (H.S) Interface
H.S interface is the interaction between the software (Arduino IDE) and the Hardware (ARDUINO) via Arduino cable.

Micro Stepping
Micro stepping is an approach for smoother transmission of the stator flux of a stepper than in single-or half-stage drive modes.
• This means noise measures down to 0 Hz. It also represents a smaller step.
• The angles and the best possible positioning are achieved.
• Several different micro-stepping modes exist, with step lengths from maximum step down to or even less than 1⁄32 micro-step.
• Synchronous electric motor is a stepper motor. That means the stable stop position of the rotor is in equilibrium with the flux of the stator coil. The rotor is machined to rotate• Torque (TH) and the distance between the stator flux (fs) and the rotor position (fr).
• T = TH * sin (fs -fr) where the electrical degrees of fs and fr are given.
• The stator flux is rotated at 90 and 45 electrical degrees respectively each step of the motor when the stepper is driven in full-step and half-step mode. From the formula above we can see that the motor develops a pulsing torque.

Testing
When the Trial run was done for placing the SMD components on PCB for soldering, up to 100 components were soldered per hour. The placement rate was improved for successive trial runs. The major problems faced during the testing phase were reduced belt tension, port disconnectivity improper calibration.

Conclusion and Future Scope
Our project focuses on developing a portable and efficient Pick and place for small scale industries with high precision and accuracy by making use of a compact design, reliable controller and an economic setup for vacuum suction.

Future Scope
Image processing can be implemented for Board placement. It automatically generates the coordinates of a given PCB with the help of a camera module.
It also helps in the accurate placement of SMD components and acts as a poka-yoke system (machine cuts of when PCB is not in position).
A different controller can be used to make the machine more efficient in terms of speed and new features. SMOOTHIEBOARD controller can be used instead of Arduino which has connections for Ethernet and USB and works, two TMC2660 stepper motor drivers with 1/256 micro-stepping at 120 Mhz. It includes a ROM of 512 kB and 64 kB RAM.
Provision for the Automatic tool change mechanism at Z-Axis for the usage of multiple tools can be given.
Software to auto-generate G-Codes with the PCB Design interface software and a GUI (Graphical User Interface) can be developed which generates the G-code for the selected PCB.