1 Overview The steering gear first appeared in the movement. In the aeronautical model, the flight attitude of the flight machine is achieved by adjusting the engine and the various control rudder surfaces. To put a simple four-way aircraft, the aircraft have the following places need to control: 1. engine intake, to control the engine tension (or thrust); 2. Aileron rudder (mounted on the rear edge of the aircraft wing), used to control the aircraft roll movement; 3. Horizontal tail rudder surface, used to control the aircraft pitch angle; 4. vertical tail rudder surface, used to control the aircraft yaw angle; Remote control has four channels, respectively, corresponding to the four steering gear, and the steering gear and other components through the connecting rod to drive the rudder surface rotation, thus changing the state of movement of the aircraft. The steering gear hence the name: control the rudder of the servo motor. Not only in the aircraft model aircraft, in other models of movement can see its application: the ship model used to control the tail rudder, car models used to turn and so on. It can be seen that the need for operational action can be used to achieve the steering gear.
2, structure and control In general, the steering gear is mainly composed of the following parts, the rudder plate, the reduction gear set, the position feedback potentiometer 5k, the DC motor, the control circuit board and so on. How it works: The control circuit board receives the control signal from the signal line (the specific signal will be re-talk), control the motor rotation, the motor drive a series of gear sets, after the drive to the output rudder. The output shaft of the steering gear and the position feedback potentiometer are connected, while the steering wheel rotates, the position feedback potentiometer is driven, the potentiometer will output a voltage signal to the control circuit board, feedback, and then control the circuit board according to the location of the motor The direction and speed of rotation, so as to achieve the target to stop. The basic structure of the steering gear is this, but there are many kinds of realization. For example, there are brush and brushless brush, the plastic and metal parts of the gear, the output shaft has sliding and rolling points, the shell has plastic and aluminum alloy points, the speed of fast and slow points, the volume of Large and small three of the classification, etc., different combinations, the price is also different. For example, where the small steering gear is generally referred to as micro rudder, the same kind of material under the conditions is more than twice the medium, metal gear is more than twice the plastic gear. Need to choose different types according to need. There are three input lines in the steering gear, the middle of the red, the power cord, the black side is the ground, this line to the steering gear to provide the most basic energy guarantee, mainly the motor rotation consumption. There are two kinds of power supply specifications, one 4.8V, one 6.0V, respectively, corresponding to different torque standards, that is, the output torque is different, 6.0V corresponding to the larger, depending on the application conditions; the other line is the control signal line , Futaba is generally white, JR is generally orange. Also note that some of the SANWA's steering gear leads the power cord at the edge rather than the middle and need to be identified. But remember the red for the power, black for the ground, generally not wrong. The control signal of the servo is a pulse width modulation (PWM) signal with a period of 20ms. The pulse width is 0.5ms-2.5ms, and the position of the steering wheel is 0-180 degrees, which changes linearly. In other words, it provides a certain pulse width, its output shaft will remain at a corresponding angle, no matter how the external torque changes, until it provides a pulse width of another width, it will change the output Angle to the new corresponding position. The steering gear has a reference circuit inside to produce a reference signal with a period of 20ms and a width of 1.5ms. There is a comparator that compares the applied signal with the reference signal to determine the direction and size, resulting in the motor's rotation signal. Thus, the steering gear is a position servo drive, the rotation range can not exceed 180 degrees, for those who need to change the angle and can keep the drive. For example, the robot joints, aircraft rudder and so on. Common steering gear manufacturers are: Japan's Futaba, JR, SANWA, etc., made in Beijing's new fantasy, Jilin Zhenhua and so on. Futaba S3003 is now to introduce the relevant parameters for everyone to choose when used. The reason why the use of 3003 is because this model is the most common on the market, but also the price is relatively cheap (the following data from the Futaba product manual). Dimensions: 40.4 × 19.8 × 36.0 mm Weight: 37.2 g Operating speed: 0.23 sec / 60 ° (4.8V) 0.19 sec / 60 ° (6.0V) Output torque: 3.2 kg.cm (4.8V) 4.1 kg.cm (6.0V)
It can be seen, the steering gear has the following characteristics: > Compact, easy to install; > Output torque, good stability; > Simple control, easy and digital system interface; It is because the steering gear has many advantages, so now is not only used in the model movement, has been extended to a variety of mechanical and electrical products in the robot control applications are more and more widely.
3, with a single chip to control It is the steering gear control signal is a pulse width modulation signal, so it is convenient and digital system interface. As long as the standard control signal can produce digital equipment can be used to control the steering gear, such as PLC, microcontroller and so on. Here the use of 51 series microcontroller to generate the control signal to control the steering method, the programming language for the C51. The reason why this method is only because the author realized with the 2051, in a responsible attitude, so dare to write here. The program is using my four foot walking robot, there are deleted. SCM is not the best way to control the steering gear, hoping to play a role in this. 2051 has two 16-bit internal counters, we use it to generate a cycle of 20 ms pulse signal, according to the need to change the output pulse width. The basic idea is as follows (please follow the procedure below): I used the crystal frequency of 12M, 2051 a clock cycle for the 12 crystal period, exactly 1/1000 ms, the counter every 1/1000 ms count the number of times. Take the counter 1 as an example, first set the initial value of the pulse width, the initial 1.5ms program, in the for loop can be changed at any time by changing the value of a, and then set the counter count initial value a, and set the output p12 High position. When the count ends, the trigger counter overflow interrupt function, that is, void timer0 (void) interrupt 1 using1, in the sub-function, change the output p12 to reverse (at this time jump to low), with 20000 (for 20ms period) minus The high time is a, that is, the low time in the cycle, c = 20000-a, and set the counter at this time the initial value of c, until the timer again overflow interrupt, repeat the previous process.
# include #define uchar unsigned char #define uint unsigned int
uint a, b, c, d; / * a is the pulse width of the steering gear 1, b is the pulse width of the servo 2, the unit 1/1000 ms * / * c, d for the intermediate variable * /
/ * The following defines the output pin * / sbit p12 = P1 ^ 2; sbit p13 = p1 ^ 3; sbit p37 = P3 ^ 7;
/ * The following two functions are timer interrupt functions * /
/ * Timer 1, control the servo 1, the output pin is P12, can be customized * / void timer0 (void) interrupt 1 using 1 {p12 =! p12; / * output negate * / c = 20000-c; / * 20000 represents 20 ms, for a period of time * / TH0 = - (c / 256); TL0 = - (c% 256); / * Redefine count initial value * / if (c> = 500 && c <= 2500) c = a; else c = "20000-a"; / * determine whether the pulse width is within the normal range * / }
/ * Timer 2, control the servo 2, the output pin is P13, can be customized * / void timer1 (void) interrupt 3 using 1 {p13 =! p13; d = 20000-d; TH1 = - (d / 256); TL1 = - (d% 256); if (d> = 500 && d <= 2500) d = b; else d = "20000-b"; }
/ * Main program * / void main (void) {TMOD = 0x11; / * set the initial value * / p12 = 1; p13 = 1; a = 1500; b = 1500; / * value of 1500 corresponds to 1.5ms, the steering gear for the middle of 90 degrees * / c = a; d = b; TH0 = - (a / 256); TL0 = - (a% 256); TH1 = - (b / 256); TL1 = - (b% 256); / * Set the timer initial count value * / EA = 1; ET0 = 1; TR0 = 1; EX0 = 1; EX1 = 1; ET1 = 1; TR1 = 1; PT1 = 0; PT1 = 0; PT1 = 1; PT0 = 1; / * Set interrupt priority * / for (;;) { / * In this for loop, you can according to the program needs Change the value of a, b at any time to change the pulse width of the input Out of time, thus controlling the steering gear * / } }
Because the output of the pulse signal is handled by the overflow interrupt function of the timer, the time is very short, so it can be ignored when the precision is not high. So if you ignore the interrupt time, from another point of view is the main program and the pulse output is parallel, so only in the main program according to your request to change a value, for example, a change from 500 to 2500, you can let The steering gear changes from 0 degrees to 180 degrees. Also keep in mind that the rotation of the steering gear takes time, so the change in the value of a program can not be too fast, or the steering gear can not keep up with the program. If necessary, select the appropriate delay, with a incremental cycle, you can make the steering gear is very smooth rotation, and will not produce the same as the stepper motor pulse. These also need to practice the specific experience.
The speed of the steering gear is determined by the speed at which the pulse width of the signal you give it. For example, t = 0 test, pulse width 0.5ms, t = 1s, the pulse width of 1.0ms, then the steering gear will be from 0.5ms corresponding position to 1.0ms corresponding position, then the rotation speed What? In general, the maximum rotation speed of 3003 is 0.23s / 60 degrees at 4.8V, that is, if you ask faster than this, the steering gear reacts; if the speed is slower than this, you can The pulse width changes to the linear time to your request, do a cycle, little by little increase the pulse width, you can control the speed of the steering gear. Of course, the specific point of this point in the end is how much, you need to do the test, otherwise, if not, then the steering gear will jump to the same jump as the motor, and try to change this "point" to make Your steering gear moves smoother. It is also important that the steering gear always has a process of increasing the speed from zero to zero again at every pulse width change, which is the reason why the steering gear will behave like a stepper motor
|