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.
Previous article:Design of Embedded Fingerprint Recognition System Based on ARM9 Processor
Next article:Programming of BSP for ARM-based Embedded Systems
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- How to improve EMI on PCB by component placement?
- Huawei Hongmeng + Alibaba Pingtou Ge, Runhe Neptune Review (Part 2)
- Migrating from MSP430F2xx to FR57xx series
- ARM's strategic layout in the field of Internet of Things
- BearPi-HM Nano Development Board Review 1 Getting Started with Program Development
- I have some doubts about SensorTile.box
- A novice needs help. When drawing PCB manual wiring in AD13.4, why can't I see the trace of the wiring before the wiring is completed?
- What are the important techniques for PCB wiring?
- Naming of Cadence Allegro 17.2 built-in pads
- A precision rectification experiment