Design of 4-DOF manipulator based on Arduino
Design of 4-DOF manipulator based on Arduino
Abstract: With the continuous improvement of control technology, the application of manipulator is more
and more widely. A manipulator based on Arduino is designed and developed. Arduino is used as the
main control of the system. The hardware system is built by combining the actuator drive module, key
module and metal manipulator kit, and the software programming is completed by using a special ide.
The metal manipulator with four degrees of freedom can be quickly controlled by pressing the key to
realize object grasping.
1. Introduction
With the rapid development of industrial robot technology, it is more and more used in machinery,
electronics, automobile and other industries. The use of mechanical arm in industrial processing not only
improves the productivity, but also reduces the labor density of workers [1].
This paper presents the design of a four degree of freedom manipulator; With Arduino as the core,
the user's control signal is detected through the key module. After identifying the signal, Arduino drives
the steering gear control module to operate the corresponding steering gear to rotate, thus driving the
movement of the entire mechanical arm [2]. The hardware mainly includes Arduino UN3, PWM steering
gear (mg996r, mg90s), steering gear drive module pca9685, 5v3a switching power supply and touch key.
The robot arm based on Arduino designed in this paper can control the multi joint of the robot arm, and
can use the key to control it to grasp a certain volume of objects.
In this paper, the design of robot arm based on Arduino realizes the control function of the robot arm.
The complete functions include the following points:
(1) Key control function
The robot arm based on Arduino needs to obtain the user's operation requirements through the input
device - key module, and then drive the peripheral circuit to control according to the type of key signal.
(2) 4-DOF control function of manipulator
In the manipulator assembly of the system, four actuators are used to control the rotating shaft, so the
four degree of freedom control of the manipulator can be realized.
(3) Object grabbing function
The steering gear at the top of the mechanical arm assembly is used to control the metal claw.
Therefore, by controlling the metal claw, the corresponding steering gear can control it to grasp a certain
volume of objects.
Because the robot arm based on Arduino designed in this paper does not need to carry out complex
algorithm calculation, it only needs to detect the user's key input signal and output control signal to the
steering gear drive circuit. The specific model of the single chip microcomputer used by Arduino in this
paper is atmega328, and the minimum system is used to realize the basic control functions, including the
main control chip, clock circuit and reset circuit. Typical circuit is shown in Figure 1.
As the PWM actuator is selected in this paper, PWM signal needs to be input to the actuator when
controlling the rotation of the actuator, and there are two common PWM actuator control modes:
(1) The processor uses IO to directly output PWM signal control
This method requires the processor to select IO with signal output function to connect the control pin
of PWM actuator, and then output specific PWM signal through software programming.
(2) Control with steering gear drive module
The actuator drive module has a driver inside to realize the precise control of the actuator. When the
PWM actuator is controlled, the PWM signal is generated by the actuator drive module. When the
processor controls the PWM actuator indirectly through the actuator drive module, the processor does
not need to be connected with each PWM actuator. The actuator is directly connected with the actuator
drive module. The processor only needs to be connected with the digital communication interface of the
actuator drive module, and then sends control instructions to the actuator drive module according to the
specific control protocol to realize the simple control of the actuator. When the processor controls the
rotation of the steering gear through the steering gear drive module, it only needs to send a control
command once for an angle, and there is no need to continuously send and occupy system resources. At
the same time, the actuator drive module is mainly responsible for the control of PWM actuator, so it
often supports the control of multi-channel PWM actuator.
In order to reduce the difficulty of system software design, this paper chooses to use the actuator drive
module to control the PWM actuator. The actuator drive chip used in the module is pca9685.
pca9685 to connect. Pca9685 is a driver chip [3] that outputs 16 PWM signals at most, and the resolution
of each PWM signal can reach 12 bits. The power supply circuit of pca9685 steering gear drive circuit is
the primary circuit to provide stable power for the module, which mainly includes two parts, mp1584
circuit and rt9193-33 circuit. A typical circuit is shown in Figure 2.
The control demand of the user can be obtained by tapping the key. Since four steering gears need to
be controlled, and each steering gear needs clockwise and counterclockwise rotation control, a total of
eight tapping keys are required to obtain the control signal of the user. When using the touch key, only
one of the key contacts needs to be connected to the IO of the processor, and the other key contact of the
same group needs to be connected to the power supply or GND. By judging the IO level of the processor
through programming, you can identify that the current touch key is in the pressed or bounced state. The
circuit is shown in Figure 3.
The initialization program of the system software in the robot arm system based on Arduino is the
initialization of touch key, actuator drive module and TTL serial port. Since the steering gear drive
module pca9685 communicates with Arduino using I2C protocol, the initialization of the steering gear
drive module is to set the Arduino interface connected to the I2C interface of pca9685 chip to I2C mode,
and then set the working frequency of the module through I2C communication protocol. Finally, in order
to realize that the mechanical arm can be restored to the initialization state every time the system is
powered on, A default initial swing angle will be set for each steering gear in the initialization of the
steering gear drive module. In order to facilitate the operation and debugging of the whole system, this
paper compiles the serial port debugging information output function for the Arduino main control
module, so it is necessary to set the debugging TTL serial interface in the initialization software. The
serial communication can only be carried out after the communicators set the same data transmission
rate. The data transmission rate of TTL serial port communication is called baud rate. Therefore, the TTL
serial port initialization mainly sets the communication baud rate of the TTL serial port of the Arduino
main control module to the same baud rate when communicating with the PC, while the commonly used
communication baud rate is 9600bps, Then the TTL serial port initialization of the Arduino main control
module system software mainly sets the serial port communication baud rate to 9600bps.
3. Conclusion
After the whole software and hardware system of the robot arm based on Arduino is built, it is
necessary to test the control accuracy of each actuator to understand the control accuracy of the whole
robot arm [4]. During the specific test, the program uses eight touch keys to control the four actuators to
rotate according to a specific angle, records the theoretical control angle and actual control angle of each
actuator, and analyzes the data after statistics[5]. The test data of one circuit of steering gear are shown
in Table 1, and the actual control angle is the maximum value of multiple groups of data.
References
[1] Shufeng Tang, Pengfei Zhou, Xu Wang, Yue Yu, Hualei Li. Design and Experiment of Dry-Ice
Cleaning Mechanical Arm for Insulators in Substation [J]. Applied Sciences, 2020, 10(7).
[2] Begey Jeremy, Vedrines Marc, Renaud Pierre. Design of Tensegrity-Based Manipulators:
Comparison of Two Approaches to Respect a Remote Center of Motion Constraint [J]. IEEE Robotics
and Automation Letters, 2020, 5(2).
[3] Kim Taegyun, Yoo Sungkeun, Seo TaeWon, Kim Hwa Soo, Kim Jongwon. Design and Force-Tracking
Impedance Control of 2-DOF Wall-Cleaning Manipulator via Disturbance Observer [J]. IEEE/ASME
Transactions on Mechatronics, 2020.
[4] Kim Jungyeong, Kim Jin Tak, Park Sangshin, Han Sangchul, Kim Jinhyeon, Cho Jungsan. Design
and Implementation of 3DoF Manipulator with Cable-Hydraulic Driven Actuation for Cooperative
Robot with High Output and Low Inertia [J]. Journal of Korea Robotics Society, 2019, 14(3).
[5] Zhen Feng Li, Jing Tao Li, Xiao Fan Li, Yi Jian Yang, Jie Xiao, Bo Wen Xu. Intelligent Tracking
Obstacle Avoidance Wheel Robot Based on Arduino [J]. Elsevier B.V., 2020, 166.