Design and Programming of 5 Axis Manipulator Robot with GrblGru Open Source Software on Preparing Vocational Students’ Robotic Skills

— The rapid development of technology at the end of this decade, the industrial world is changing the human resources they have using the help of robot technology. The use of a robot was chosen because of the accuracy and precision that it can do in doing the job. In addition, robotic technology requires only one programming to do many things. Thus, there are many advantages for companies by using robotic technology in their production processes. This research aims to designing and building arm robot prototype to teach the robotics programming language. The result of this research is an arm robot prototype with Arduino Mega 2560 based programming. In addition, the robot movement programming uses the open source GrblGru software Grbl based. The GrblGru used for interpreting G-code and to convert pulse and direction information to control the stepper motor. This research concludes that there are 5 importance steps on develop the arm robot prototype, 1. Analyze; 2. Design; 3. Develop; 4. Evaluate; and 5. Implementation. With the GrblGru software the movements of arm robot prototype can work on simulation mode and control mode, there for students easier to study robotics programming language.


INTRODUCTION
In the digital era, everyone is required to have broad insight, the ability to think systematically and creatively to adapt to the rapid development of information technology [1]. There for, schools should not only focus on developing scientific & theoretical knowledge, but also must pay attention to the process of looking for systematic thinking and behavior, both a person and the surrounding environment [2]. These conditions require education actors, especially vocational education as a labor supplier, not only to focus on developing hard skills in the form of practical knowledge that is more scientific and theoretical in nature, but also must provide a portion of soft skills that support one's thinking and behavior processes [3].
The public's view of robots and types of robots always assumes that robots are always humanoid in which this type of robot has human-like abilities in both function and action [4]. The following are several types of robots in terms of physical form such as: 1. Robot Manipulator (a robot whose shape is to manipulate or imitate the forms of living things); 2. Humanoid Robot (robots are human-like, meaning they have a head, two hands, a body, two legs, and so on); 3. Android Robot (robots are similar to Humanoid, but there are differences, namely: they have skin, and are able to express themselves like humans); 4. Animaloid Robot (robot starts from the shape and behavior of mimicking animals); and 5. Wheeled Robot (robot that walks or moves using wheels) [5][6] [7][8] [9].
There are many benefits of learning programming robotics skills that can be applied in vocational students, including, 1. Stimulate systematic and structured thinking in solving a problem; 2. Improve motoric skills; 3. Improve imagination and innovation skills in designing a creative robot project; 4. Train cooperation in groups and increase self-confidence, both accepting and respecting the opinions of others as well as daring to display and express creative ideas; and 5. Train patience and persistence in making a project [10] [11][12] [13].
Programming robot movement to deal with some task for several students still found the difficulties [14] [15]. There for, they should understand the programming language of C or C++ to handle the inverse or kinematic robotic motion. To deal with that problem, there are one software can be use for student easily on programming robotic motion its name is GrblGru [16].
GrblGru is a simulation 3D model robot movement and it can directly control the robot motion using a G-code of numerical control. Comparing the programming using Arduino it easier because in the Arduino need the library of each component such as stepper motor and in the GrblGru do not need adding such library.

A. Arm Robot
Arm robot or better known as Robot Manipulator is one of the most widely used robot types by industrial society. A robotic manipulator that mimics the characteristics of a human arm is also called an articulated arm [17]. However, the articulated motion of a robotic arm is different from that of a human arm. While robot joints have less degrees of freedom or the so-called Degree of Freedom (DOF), the robot manipulator can move freely even from a certain angle with more freedom. For example, the elbow of an articulated robot can bend up or down whereas a person can only bend their elbow in one direction the rest only in a straight arm position [18]. The manipulators are grouped into classes according to the joint combination used in the construction of the robot manipulator. A Cartesian geometric arm uses only prismatic joints and can reach any position in a rectangular workspace by movement of the cartesian link. By replacing the cartesian arm joint with a revolute joint, a cylindrical geometric sleeve was formed [19] [20].
With the combination of rotation and translation, this robot arm can reach any point in the workspace. If the shoulder joint is also replaced with a revolute joint, this means that the arm has geometric poles. The workspace of the articulated arm is a ball which is thick-walled, but the implementation is still quite complicated. The outer shell is a single ball, which can intersect each other. The robot manipulator is created from a sequence of links and joint combinations [21]. Links are rigid members that connect joints. The axes are the movable components of the robotic manipulator which cause relative motion between the links before or after them. The mechanical joints used to construct the manipulator arm robots are of five main types. Two of the joints are linear, in which the relative motion between adjacent links is non-rotational, and the three types of rotary, the relative motion of the robotic manipulator involves rotation between the links (Fig 1).

B. GrblGru
GrblGru is the name of a free great open source software that can interpret G-code and use it to convert pulse and direction information to control the stepper motor power amps [16], [22]. The software and the operating instructions can be downloaded at https://www.grblgru.com/. The basic function of GrblGru is 1. a 3D simulator for milling and lathe; 2. a GCode Sender for Grbl, TinyG, Mega-5X, and g2core; 3. a CAM program for milling and lathe work; and 4. a Tool for learning CNC technology without needing a 'real' 'Machine [23].
The GrblGru have 2 types of operating modes. 1. Simulation Mode for Virtual 3D simulation of CNC machine control and 2. Control Mode for Real control of a CNC machine with Grbl, TinyG, Mega-5X or g2core operating system. The simulation mode is the original idea of the program. It was primarily intended to check existing NC programs on a virtual machine and to show any collisions or problems. This type of early `virtual machine' has prevailed in the industry more and more in recent years because it saves valuable machine time detecting possible errors in advance.
When GrblGru is started, the mode by default is set to the 'Simulation'. There is no connection to a real controller. The NC program to be examined is loaded and the NC commands are processed by the internal NC interpreter [24]. The loaded 3D model is animated accordingly NC = Numerical Control (Fig 2). In control operaton mode, GrblGru can connect to an Arduino UNO, a TinyG, an Arduino Mega 2560, or an Arduino Due controller. The connection is made via the USB interface, which transfers both the NC commands to the controller and the information about the current axis positions back to GrblGru [24].
GrblGru uses this information to control the 3D model so that the 3D model is synchronized to the 'real' axes. When GrblGru is started, use the controller option to select Simulation, Grbl, TinyG, G2core, or GRBL-Mega-5x (Fig 3).

III. METHOD
This study uses a research and development with the five phases, namely Analysis, Design, Development, Implementation, and Evaluation (ADDIE) model approach to developing and programming the prototype robotic arm (Fig  4) [25] [27].

A. Analysis
The analysis phase, there are two important parts there are analysis the goals and required resources. The goals of this research are to deliver the competency of developing and

B. Design
In the design phases, the robotic was designed with Autodesk software. There are 5 part of robotic that designed to make complete of robotic arm, included: base, shoulder, elbow, wrist, and grip.

C. Development
After all the part of robotic arm was finished designed, the next step was sending the model to 3D printer. Willing the 3D printer finish the model, the other electronic devices was prepared to be assembly with the other part.

D. Implementation
When the arm robot finished development, the next phase is making some programming of the robotic movement. The GrblGru was used in the implementation of robot programing. The robotic programming is from the basic movement to the advance.

E. Evaluation
The last phase of develop arm robot is evaluation. Evaluation was done to evaluate the performance of the arm robotic that finished assembly whether it have an error in the movement or already to uses in programming robotics courses. The main goals of this study are students easier to programming the arm robotic manipulator with limited knowledge about programming language such as C or C++. GrblGru software is one of alternative that can be use for the solution on programming with numerical control based. The requirement running GrblGru is using windows or Linux operating system.
There are 5 parts of robotic that designed to make robotic arm from FreeCAD software, After the model finished printed with 3D printer, the 5axis manipulator robot was assembly with electronic component (Table 1) included stepper motor, servo motor, ramps v1.4, motor driver, Arduino mega 2560, sources power, and wire. After finished assembly, the robot was tested to make sure all the component gets the electricity sources. Arduino IDE was used to programming and running the motors. Programming the robot done with directly accessed the microcontroller Arduino mega 2560.  The step for programming robot using Arduino IDE as follow.

Set Steps
Set steps is used to drive a stepper motor with a certain step. This function can only be used for the base, shoulder, elbow, and wrist joints. In this robot, the stepper motor used is NEMA 17. This motor has a movement revolution of 1.8 o per one step, so that for the stepper motor to move 1 revolution (360 o ), the number of steps needed is 360 / 1.8 = 200 steps. The angle of the joints formed based on the number of steps is also influenced by the size or gear ratio of each joint. The gear ratios for each joint are as follows: To make a stepper motor move one revolution (360 o ), the number of steps required is: Because the robot arm joint uses a comparison gear, to calculate the number of steps in the robot joint is as follows:

= 360 × 1600 × _
Where n = number of steps, θ = joint angle The function used to move the arm robot based on the step is: The process of programming robot arm using Arduino IDE above for students still faces the difficulties. There for, second methods were applying programming arm robot with GrblGru. The first step is compiling the model design of manipulator robot to GrblGru program by selecting menu Extras  Machine Manager (Fig 7). When success compiling it seen in  The GrblGru software is programming with numerical control based, hence this software uses G-code language to be running the robot movement [28]. Table 3 shows the Gcode and the meaning of the code [29], [30]. Select the XY plane (for arcs) G18 Select the XZ plane (for arcs) G19 Select the YZ plane (for arcs) G20 After this, units will be in inches G21 After this, units will be in mm G28 Go to Pre-Defined Position G28. In the GrblGru software the coordinate axes name is different, it can be seen in the interface (Fig 9). The coordinates name uses A, B, C, D, and Q. Hence the stepper motor axis name should adjust from X, Y, and Z to A, B, and C. However, this is only the name changing and has no effect on the function. A for programming line base motion, B for programming base motion, C for programming shoulder motion, D for programming elbow motion, and Q for programming the gripper motion.
Configuration are needed to make sure the machine has the same controller with the GrblGru. To configure the machine, select Type of machine in here used Robot arms; Machine select name of the machine, port autodetect, controller use the GRBL-Mega-5x (Fig 10) [24]. To edit the robot references the motor steper in the GrblGru we can go to Extras  Settings (Fig 10). Activated the macro toolbar by selecting yes option (Fig 11).

V. CONCLUSION
The 5-axis manipulator robot was well design, programming and doing several tasks. There are 5 components was finished from 3D printer (Robot base, Shoulder, Elbow, Base line, and Griper) that assembly with electric component (Controller, Actuator, Power supply, Ramps driver, Motor driver, and Wire) to make complete manipulator robot.
Programming the robot using Arduino IDE was more difficult rather than using GrblGru software. In Arduino, the library off all the motor should be added on the Arduino library so the program can run, it is become problem when we did not have the motor library. Students look so frustrated when learn on programming the robot movement. With the limited basic language programing, students learn easier using GrblGru software to give the motion on arm robotic manipulator.
With numerical control based, GrblGru have simple programing compare with using Arduino IDE on the same robotic task. Also, with GrblGru software, student can have the simulation movement of the robotic arm in the GUI GrblGru before they are running the program directly to the arm robot. Hence, the students know simultaneously if the arm robot movement on the wrong way or on the other hand, they can easier predict the program will run smoothly on the arm robot.