Robot arm control system based on ARM core processor

Publisher:平静宁静Latest update time:2011-05-29 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

In recent years, with the development of MEMS and related technologies, the field of micro-robotics has attracted more and more attention. However, due to the small size of the parts, the assembly of micro-robot components requires very high precision, and general assembly methods cannot meet the requirements. This paper introduces a control method for a robot arm control system that can perform micro-parts assembly.

1 System Structure

Considering the use of multiple robot arms, the entire robot control system consists of a host computer and multiple slave computers. The slave computer is the arm controller, and each slave computer controls the telescopic movement of a robot arm. The host computer is the control terminal, which generates the position data of each arm through different accessory assembly methods and transmits it to each slave computer through a data line. The slave computer controls the arm to reach the target position and perform the target operation. The structural block diagram of the entire system is shown in Figure 1.

1.1 Mechanical structure

As shown in Figure 2, the mechanical structure of the arm controller consists of a DC reduction motor, an arm, a screw, a reduction gear, and an angle sensor. The robot arm is connected to the mechanical screw, which is coupled to the DC reduction motor through the reduction gear. Each arm controller controls the position of the arm by controlling the rotation of the motor. At the same time, the arm controller has a manual adjustment handle connected to the screw, which can be manually adjusted to change the arm position when necessary.

1.2 Circuit Structure

The arm controller is controlled by a PHLIPS LPC2138 series microprocessor using an ARM core. The circuit structure is mainly divided into a main control module, a measurement feedback module, and a communication module, as shown in Figure 3. The motor state is controlled by the main control module, and the screw movement distance and position are obtained through the measurement feedback module. The motor is stopped after reaching the specified position. The communication module completes the data exchange with the host computer.

2 Motor Control

The motor control is completed by the main control module and the measurement feedback module.

2.1 Main control module

The LPC2138 pinout is shown in Table 1.

[page]

The main controller uses a PHLIPS LPC2138 microprocessor, which has 64 pins, 31 bidirectional I/O ports, and two 8-way 10-way A/D converters. It can perform voltage measurement and meets the design requirements. Its pin assignment is shown in Table 1. The motor uses a RA-20GM-SD3 DC reduction motor, and the reduction ratio of its reduction box reaches 1/1000. After deceleration, the motor speed is 4.5+/-0.9 rpm. After further coupling with a 1/2 reduction gear set, the screw speed is 2.25 rpm. When the screw pitch is 1mm, the arm movement speed is 3.75×10-2mm/s.

Since the motor in this design needs to rotate forward and reverse, the bridge driver chip TA8409 is selected, which has two input ports and two output ports. The microprocessor can control the different states of the motor by controlling the input level combination, including forward rotation, reverse rotation, brake deceleration and stop state.

Its output voltage matches the motor's operating voltage, so it can drive the motor directly without adding an amplifier circuit.

The motor drive circuit diagram is shown in Figure 4.

2.2 Measurement feedback module

The angle sensor uses Midori's CP-2FC, which has an infinite mechanical angle range of 360 degrees. The sensor converts the angle change into voltage and feeds it back to the microprocessor A/D conversion port through the voltage measurement circuit. The movement distance of the screw can be calculated by the voltage change, so that the arm position can be known, and this is used as the standard to send commands to the motor driver.

The voltage measurement circuit includes a voltage follower circuit composed of an operational amplifier, as shown in FIG5 , which can both isolate the circuit and perform voltage following.

3 Communication Module

3.1 RS-422 Communication Standard

The data signal of the RS-422 standard adopts differential transmission, also known as balanced transmission. Its full name is "Electrical Characteristics of Balanced Voltage Digital Interface Circuits".

Its receiver uses high input impedance, and the sending driver has stronger driving capability than RS232, so it allows multiple receiving nodes to be connected on the same transmission line, up to 10 nodes can be connected. That is, one master device (Master) and the rest are slave devices (Slaves). The slaves and senders cannot communicate with each other, so RS-422 supports point-to-multiple bidirectional communication.

The maximum transmission distance of RS-422 is 4000 feet (about 1219m), and the maximum transmission rate is 10Mbit/s.

3.2 Data exchange function implementation

The communication module of this system adopts RS-422 standard, and the line length is about 200m, so the reliability of communication can be guaranteed. The differential line driver uses AM26LS31 chip, and the differential receiver uses AM26LS32 chip. The serial output port and input port of the microprocessor are connected to the driver input and receiver output respectively, and the differential open-circuit automatic fault insurance terminal connection configuration is used.

The differential open circuit fail-safe terminal connection configuration is shown in Figure 6.

[page]

Thus, when the transmitter output is in high impedance state, the receiver input is guaranteed to have at least 200mV voltage signal, so that the output will not appear in an unknown state, improve reliability, and complete the data exchange with the host computer. In addition, considering the application of multi-robot arms, a dip switch is set in the arm controller to set the number. The data exchange with the host computer must include this number, and the specific position of the target controller during communication is determined by this number.

4 Software Design

Based on the design of the arm controller hardware, we designed the software application running on the microprocessor. The main program flow chart is shown in Figure 7.

After the controller is powered on, the controller number of the DIP switch is read in first, and then the controller enters the waiting mode. The program sets the UART interrupt, and when data is transmitted from the host computer, the interrupt occurs. At this time, the controller number in the data packet is checked. If the transmitted number matches the small controller number, the data is read in, and the motor running direction and the arm moving distance are calculated. When the motor is running, the sensor feedback voltage is continuously read and calculated to determine whether the arm is close to the target position and whether to brake and stop. After the motor stops, that is, the arm reaches the target position, the controller replies to the host computer that the work is completed (the controller number is always included during communication) and enters the waiting state again.

In this system, two algorithms can be used to determine the timing of sending the motor deceleration stop command.

The first one is to send a deceleration and stop command just when the arm reaches the target position. This algorithm is relatively simple to execute, but it is inevitable that the screw position will deviate from the target position when the motor stops. However, the arm moves at a very low speed during operation, which can guarantee the control accuracy. The second algorithm is to perform a prediction algorithm when approaching the target position. A brake deceleration command is sent before the arm reaches the target position, so that the difference between the screw stop position and the target position is smaller. Although this algorithm is more complicated, its accuracy is higher than the first one. In this design, we use the second algorithm to ensure higher control accuracy.

The arm controller program obtains the arm position by continuously reading sensor feedback values. Although the algorithm accuracy is improved through the prediction algorithm, the sensor itself has certain errors, so the arm stop position will inevitably deviate. However, due to the high-precision hardware design, this error will not affect most of the work of the robotic arm.

5 Conclusion

This chapter designs a robot arm control system based on an ARM core microprocessor. It describes the hardware design of the controller in detail, and gives a system structure diagram and schematic diagrams of some circuits; it introduces the design of the control software and gives a flowchart of the program. Due to the use of a high reduction ratio gearbox to adjust the motor speed and the use of an improved algorithm, the positioning accuracy of this arm controller is relatively high. If a controllable clamp is added on this basis, simple and reliable assembly work can be completed.

Reference address:Robot arm control system based on ARM core processor

Previous article:Design of Embedded Fingerprint Recognition System Based on ARM9 Processor
Next article:Programming of BSP for ARM-based Embedded Systems

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号