¿Cómo controlar el servo?
Uso de señales PWM del microcontrolador para el control del mecanismo de dirección
[Fecha: 2005-10-15] Fuente: Electronics Today Autor: Shi Wei de la Universidad Jiaotong de Beijing [Fuente: Grande, Mediano, Pequeño]
p>El método de control del mecanismo de dirección basado en una microcomputadora de un solo chip tiene las características de simplicidad, alta precisión, bajo costo, tamaño pequeño y se puede aplicar de manera flexible según la cantidad de diferentes mecanismos de dirección. .
En el sistema de control electromecánico del robot, el efecto de control del mecanismo de dirección es un factor importante que afecta el rendimiento. El mecanismo de dirección se puede utilizar como actuador de salida básico en sistemas microelectromecánicos y modelos de aviones. Su control y salida simples hacen que la interfaz del sistema de microcontrolador sea muy fácil.
El mecanismo de dirección es un servocontrolador de posición, adecuado para sistemas de control que requieren que los ángulos cambien y se mantengan continuamente. Su principio de funcionamiento es: la señal de control ingresa al chip de modulación de señal desde el canal del receptor para obtener el voltaje de polarización de CC. Tiene un circuito de referencia en su interior, que genera una señal de referencia con un período de 20 ms y un ancho de 1,5 ms. El voltaje de polarización de CC obtenido se compara con el voltaje del potenciómetro para obtener una salida de diferencia de voltaje. Finalmente, la diferencia de voltaje positiva y negativa se envía al chip controlador del motor para determinar la rotación hacia adelante y hacia atrás del motor. Cuando la velocidad del motor es constante, el potenciómetro gira a través del engranaje reductor en cascada, de modo que la diferencia de voltaje es 0 y el motor deja de girar.
Figura 1 Requisitos de control del mecanismo de dirección
La señal de control del mecanismo de dirección es una señal PWM, que utiliza cambios en el ciclo de trabajo para cambiar la posición del mecanismo de dirección. Los requisitos de control del aparato de gobierno general se muestran en la Figura 1.
La microcomputadora de un solo chip realiza el control del ángulo del mecanismo de dirección
Se pueden usar FPGA, circuitos analógicos y una microcomputadora de un solo chip para generar señales de control del mecanismo de dirección, pero los costos de FPGA son altos y el El circuito es complejo. Para la conversión de ancho de pulso de señales de modulación de ancho de pulso, un método comúnmente utilizado es utilizar la señal de modulación para obtener el voltaje de CC filtrado activamente, pero se requiere una señal de 50 Hz (el período es de 20 ms), que tiene requisitos más altos en la selección de op. dispositivos amp., no es fácil de adoptar considerando el volumen del circuito y el consumo de energía. Los cambios en el voltaje de control por encima de 5 mV harán que el servo vibre. Para los sistemas de control y medición aéreos, el ruido de la señal de la fuente de alimentación y otros dispositivos es mucho mayor que 5 mV, por lo que es difícil cumplir con la precisión del circuito del filtro. Requisitos de precisión del servo.
También se puede utilizar un microcontrolador como unidad de control del mecanismo de dirección para cambiar el ancho de pulso de la señal PWM en el nivel de microsegundos, mejorando así la precisión del ángulo de dirección. El microcontrolador completa el algoritmo de control y luego convierte los resultados del cálculo en señales PWM y las envía al mecanismo de dirección. Dado que el sistema del microcontrolador es un sistema digital, los cambios en sus señales de control dependen completamente del conteo del hardware, por lo que se ve menos afectado. por interferencias externas y todo el sistema funciona de manera confiable.
Para que el sistema de microcomputadora de un solo chip controle el ángulo de salida del mecanismo de dirección, primero debe completar dos tareas: primero, generar una señal periódica PWM básica. Este diseño debe generar una señal periódica de 20 ms. señal periódica; en segundo lugar, es para ajustar el ancho del pulso, es decir, el microcontrolador simula la salida de la señal PWM y ajusta el ciclo de trabajo.
Cuando el sistema solo necesita controlar un servo, el método de control es cambiar el valor inicial de una interrupción del temporizador del microcontrolador y dividir 20 ms en dos ejecuciones de interrupción, una interrupción temporizada corta y una programada larga. interrumpir. Esto no sólo ahorra circuitos de hardware, sino que también reduce la sobrecarga de software, y la eficiencia y precisión del control son altas.
Proceso de diseño específico: por ejemplo, si desea que el servo gire al ángulo límite izquierdo, su pulso positivo es de 2 ms, entonces el pulso negativo es de 20 ms-2 ms = 18 ms, por lo que inicialmente envíe un nivel alto al puerto de control y luego configure el temporizador para que interrumpa después de 2 ms. Después de que ocurra la interrupción, cambie el puerto de control al nivel bajo en el programa de interrupción y cambie el tiempo de interrupción a 18 ms. Después de 18 ms, ingresará a la siguiente interrupción programada. y luego cambie el puerto de control a un nivel alto y cambie el valor inicial del temporizador a 2 ms, esperando que llegue la siguiente interrupción, y así sucesivamente para lograr la salida de señal PWM al servo. La señal de pulso se forma inteligentemente modificando el valor inicial de la interrupción del temporizador, y el servo puede moverse de manera flexible ajustando el ancho del período de tiempo.
Para garantizar que el software recopile otras señales en la interrupción programada y que el programa que genera la señal PWM no afecte el funcionamiento del programa de interrupción (si estos programas tardan demasiado, la interrupción Es posible que el programa aún no finalice), las consecuencias de la siguiente interrupción), por lo que la función de recopilar señales debe ejecutarse en el largo proceso de interrupción programada, es decir, estos programas se ejecutan cada dos interrupciones y el ciclo de ejecución Todavía son 20 ms. El proceso del software se muestra en la Figura 2.
La Figura 2 muestra el proceso de software para generar señales PWM
Si el sistema necesita controlar la rotación precisa de varios servos, se puede usar un microcontrolador y un contador para contar los pulsos para generar PWM. señales.
El conteo de pulsos se puede implementar usando el contador interno del microcontrolador 51. Sin embargo, desde la perspectiva de la estabilidad del sistema de software y la racionalidad de la estructura del programa, es apropiado usar un contador externo. lo que también puede mejorar la eficiencia de la CPU. Después del experimento, considerando la precisión, para el receptor de la serie FUTABA, cuando se usa un oscilador de cristal externo de 1 MHz, el cambio en la amplitud del voltaje de control es de 0,6 mV y no habrá acumulación de errores, lo que puede cumplir con los requisitos de control del mecanismo de dirección. Finalmente, considerando el error discreto del sistema digital, se estima que el rango de error está dentro de ±0,3, por lo que el circuito de generación de señal PWM utilizando un microcontrolador y chips contadores como 8253 y 8254 es confiable. La Figura 3 es un diagrama de conexión de hardware.
Figura 3 Circuito de salida y conteo de señales PWA
El programa para generar señales PWM basado en 8253 incluye principalmente tres aspectos: uno es definir la dirección del registro 8253 y el otro es escribir la entrada de la palabra de control y el tercero es escribir datos. El proceso del software se muestra en la Figura 4 y el código específico es el siguiente.
//Programas clave y comentarios:
//El temporizador T0 interrumpe, envía palabras de control y datos al 8253
void T0Int() interrupción 1 p >
{
TH0 = 0xB1;
TL0 = 0xE0;
// base de reloj de 20 ms
// Escribe el primero la palabra de control, luego el valor de conteo
SERVO0 = 0x30; //Seleccione el contador 0, escriba la palabra de control
PWM0 = BUF0L //Escriba primero bajo, luego escriba alto<; /p>
PWM0 = BUF0H;
SERVO1 = 0x70; //Selecciona el contador 1 y escribe la palabra de control
PWM1 = BUF1L
PWM1; = BUF1H;
SERVO2 = 0xB0; //Selecciona el contador 2 y escribe la palabra de control
PWM2 = BUF2L
PWM2 = BUF2H;
}
Figura 4 Proceso de software para generar señales PWA basado en 8253
Cuando la tarea principal del sistema es controlar el trabajo de múltiples servos y los servos utilizados Cuando los ciclos de trabajo son todos de 20 ms, los períodos de las múltiples ondas PWM generadas por el hardware deben ser los mismos. El temporizador interno del microcontrolador 51 se utiliza para generar el conteo de pulsos. Generalmente, el ancho del pulso positivo de trabajo es inferior a 1/8 del ciclo. De esta manera, el flanco ascendente de cada onda PWM se puede iniciar en un ciclo. Luego, la interrupción del temporizador T0 se usa para determinar el ancho de salida de cada canal de la onda PWM, la interrupción del temporizador T1 controla el tiempo base de 20 ms.
La primera interrupción del temporizador T0 establece el valor inicial de acuerdo con 1/8 de 20 ms y establece el puerto de E/S de salida. Después de que responde la primera interrupción del temporizador T0, el puerto de E/S de salida actual correspondiente. La salida del pin se establece en un nivel alto, se establece el ancho de pulso positivo de la salida, se inicia la segunda interrupción del temporizador y el puerto de E/S de salida apunta al siguiente puerto de salida.
Después de que expire el tiempo del segundo temporizador, configure el pin de salida actual en un nivel bajo y establezca el período de interrupción en 1/8 de 20 ms menos el tiempo de pulso positivo. Esta señal PWM se emite en este período y se emite de forma recíproca. En la decimosexta interrupción (2 × 8 = 16) de cada ciclo, se ejecuta la operación de apagar la interrupción del temporizador T0 y finalmente se puede realizar la salida de señales de control del mecanismo de dirección de 8 canales.
Los contadores externos también se pueden usar para controlar múltiples servos, pero debido a que los chips comunes 8253 y 8254 solo tienen 3 contadores, cuando el sistema necesita generar múltiples señales PWM, se puede usar el método anterior para reducir el circuito. , reduce costos y también puede lograr una mayor precisión. Al depurar, noté que dado que el ancho del pulso en el programa se ajusta ajustando el valor inicial del temporizador, el programa de interrupción también se divide en 8 ciclos de estado y requiere un ciclo de período estricto y tiempo para ejecutar otros códigos de programa de interrupción. necesita ser estrictamente controlado.
En aplicaciones prácticas, el microcontrolador 51 se utiliza para realizar de forma sencilla y cómoda la señal PWM necesaria para el control del mecanismo de dirección. Las pruebas realizadas en el control del mecanismo de dirección del robot muestran que el sistema de control del mecanismo de dirección funciona de manera estable y que el ciclo de trabajo PWM (ancho de pulso positivo de 0,5 ~ 2,5 ms) y el ángulo de rotación del mecanismo de dirección (-90°~90°) tienen buena linealidad.
Referencias
1 Hu Hancai. Principio de microcomputadora de un solo chip y tecnología de interfaz. Tsinghua University Press. 1996
2 Wang Shisheng, Jiang Jianping. Uso de una microcomputadora de un solo chip para realizar la tecnología de conversión PWM D/A.
3 Liu Gequn .Lu Jingchao. Yan Jianguo. Xue Yaoshun. Método de uso de microcomputadora de un solo chip para generar servos de 7 canales para controlar ondas PWM 2004
El servo es un. Servocontrolador de posición, adecuado para quienes necesitan un ángulo constante. Un sistema de control que cambia y se puede mantener. Su principio de funcionamiento es: la señal de control ingresa al chip de modulación de señal desde el canal del receptor para obtener el voltaje de polarización de CC. Tiene un circuito de referencia en su interior, que genera una señal de referencia con un período de 20 ms y un ancho de 1,5 ms. El voltaje de polarización de CC obtenido se compara con el voltaje del potenciómetro para obtener una salida de diferencia de voltaje. Finalmente, la diferencia de voltaje positiva y negativa se envía al chip controlador del motor para determinar la rotación hacia adelante y hacia atrás del motor. Cuando la velocidad del motor es constante, el potenciómetro gira a través del engranaje reductor en cascada, de modo que la diferencia de voltaje es 0 y el motor deja de girar.