Control de Posicion en Un Plano XasdasdadsY

29
Sistemas Digitales Informe TP Final “Control de posición de un cabezal en un plano X-Y” Alumno : Bertoneri Bruno (10764)

description

asdasdasdasdasdf adsfasd gas dgasd fasdf ADF dfD F SG AFDS DSFG SDFG

Transcript of Control de Posicion en Un Plano XasdasdadsY

Sistemas Digitales

Informe TP Final

“Control de posición de un cabezal en un plano X-Y”

Alumno: Bertoneri Bruno (10764)

Profesor: Juárez José

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

Índice

1) Objetivo....................................................................................................................32) Descripción del proyecto..........................................................................................33) Elementos utilizados.................................................................................................4

3.1) Microcontrolador.......................................................................................43.1.1) Utilización de puertos.................................................................53.1.2) Interrupciones.............................................................................6

3.1.2.1) Enmascarables................................................................63.1.2.2) No enmascarables...........................................................6

3.2) Motores......................................................................................................63.2.1) Imán permanente.........................................................................63.2.2) Paso a paso..................................................................................6

3.3) Carros.........................................................................................................73.4) Encoders....................................................................................................73.5) Finales de carrera.......................................................................................83.6) Tablero de comando..................................................................................8

3.6.1) Fachada.......................................................................................93.6.2) Bornera del tablero de comando.................................................9

3.7) Esquema de la planta.................................................................................93.7.1) Fachada de la planta...................................................................93.7.2) Bornera de la planta....................................................................10

4) Circuitos impresos....................................................................................................114.1) Conformador de señal................................................................................114.2) Interfaz de potencia de motor de imán permanente...................................114.3) Interfaz de potencia de motor paso a paso.................................................12

5) Programa...................................................................................................................145.1) Funciones del programa (Subrutinas)........................................................145.2) Funciones del programa (Rutinas de atención de interrupciones).............145.3) Archivo *.lkf..............................................................................................155.4) Descripción del programa..........................................................................16

6) Señales de control.....................................................................................................176.1) PWM..........................................................................................................176.2) Secuencia...................................................................................................17

7) Funcionamiento........................................................................................................188) Diagrama de flujo de la lógica de control.................................................................199) Limitaciones debidas a sensores y actuadotes..........................................................2010) Conclusiones...........................................................................................................21

Sistemas Digitales 2

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

Apéndices:Diagrama en bloques.....................................................................................................ACódigo fuente................................................................................................................B

Sistemas Digitales 3

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

1) Objetivo:

Controlar la posición de un cabezal en un sistema coordenado de dos grados de libertad sobre una superficie definida. El control se realizará por medio de un microcontrolador.

2) Descripción del proyecto:

La planta está conformada por dos carros de movimiento lateral superpuestos. Ambos están arreglados de tal manera que el carro superior desplaza en una dirección al carro inferior, a su ves, este último sostiene y desplaza al cabezal que queremos posicionar en una dirección ortogonal al movimiento del carro superior.

Los carros son traccionados por motores eléctricos de corriente continua. El superior por un motor de imán permanente y el inferior por un motor paso a paso. Ambos trasmiten su movimiento a través de una correa dentada ubicada a lo largo del carro.

Por otro lado, tenemos el sistema de realimentación de movimiento, que mediante algunos cálculos podemos determinar las coordenadas exactas en donde se encuentra el cabezal instante a instante. Este sistema está basado en dos encoders diferenciales infrarrojos, operados por una rueda perforada, la cual esta en contacto con la correa de tracción del carro que impulsa la generación de pulsos. Cada flanco nos indica que hubo un cambio en la posición del cabezal.

Para limitar el área de posicionamiento efectivo se utilizaron dos pares de finales de carrera. Estos elementos en conjunto con los encoders nos dan la posibilidad de poder ubicar el cabezal, en casi cualquier lugar del área de trabajo con una determinada resolución.

Como interfaz usuario-planta se implemento un tablero de comando con las directivas básicas. El cual permite operar por completo al dispositivo.

Sistemas Digitales 4

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

3) Elementos utilizados: Microcontrolador: Motorota HC11F1 Motores:

Motor de corriente continua paso a paso unipolar. Motor de corriente continua de imán permanente.

Dos carros deslizables a correa. Un tablero de comandos. Dos encoders infrarrojos diferenciales. Cuatro Finales de carrera normal abierto.

3.1) Microcontrolador:Para la implementación del control de la planta se utilizó un microcontrolador

MC68HC11F1. Este es un microcontrolador de 8 bits, con un clock de 2MHz.

Sistemas Digitales 5

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

3.1.1) Utilización de Puertos:

Puerto A: puerto de 8 entradas/salidas digitales, configurables mediante el DDRA, tiene asociado el periférico timer. En este puerto se conectan las señales de los encoders que van a producir la interrupción.

PA0: TIC3 (Timer Input Capture 3), señal 1 encoder eje X. PA1: TIC2 (Timer Input Capture 3), señal 1 encoder eje Y.

Puerto B: puerto de 8 salidas digitales. Con este puerto se envían las señales de control de los dos motores.

PB0: pulso 4 de motor paso a paso. PB1: pulso 3 de motor paso a paso. PB2: pulso 2 de motor paso a paso. PB3: pulso 1 de motor paso a paso. PB4: pulso 2 de motor de imán permanente. PB5: pulso 1 de motor de imán permanente.

Puerto C: puerto de 8 entradas/salidas digitales, configurables mediante el DDRC. En este puerto entran las señales restantes de los encoders y los finales de carrera.

PC0: señal 2 encoder eje X. PC1: señal 2 encoder eje Y. PC2: Final de carrera eje X extremo inicial del carro. PC3: Final de carrera eje X extremo final del carro. PC4: Final de carrera eje Y extremo inicial del carro. PC5: Final de carrera eje Y extremo final del carro.

Puerto D: puerto de 6 entradas salidas digitales. No utilizado.

Puerto E: puerto de 8 entradas digitales, tiene asociado el periférico conversor analógico-digital. Las señales analógicas de referencia para posicionar el cabezal en las coordenadas X-Y ingresan por este puerto.

PE3: Señal analógica de 0-5V, referencia eje X. PE5: Señal analógica de 0-5V, referencia eje Y.

Puerto F: puerto de 8 salidas digitales. Desde este puerto se envían todas las señales que comandas los LEDs del tablero de comando.

PF0: LED parada. PF1: LED arranque. PF2: LED selección modo manual. PF3: LED posicionado. PF4: LED Inactivo.

Sistemas Digitales 6

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

Puerto G: puerto de 8 entradas/salidas digitales, configurables mediante el DDRG. Con este se reciben los datos de los pulsadores del tablero de comando.

PG0: Pulsador de arranque. PG0: Pulsador de parada. PG0: Pulsador de selección modo manual. PG0: Pulsador de confirmar.

3.1.2) Interrupciones:Se utilizaron cinco interrupciones:

3.1.2.1) Enmascarables: TIC2 (Timer Input Capture 2): esta interrupción se utilizó para capturar los

pulsos de entrada entregados por el encoder X. TIC3 (Timer Input Capture 3): esta interrupción se utilizó para capturar los

pulsos de entrada entregados por el encoder Y. TOC1 (Timer Output Compare 1): se utilizó para habilitar la comunicación

con el puerto serie de la PC. TOC2 (Timer Output Compare 2): esta interrupción se utilizó para generar la

onda cuadrada del PWM para comandar el motor de imán permanente. La señal del PWM sale por el puerto B.

TOC3 (Timer Output Capture 3): esta interrupción se utilizó para generar la señal que comanda el motor paso a paso. Esta señal es un pulso que rota en cuatro bits, el sentido de giro del motor lo determina el sentido en que rota el pulso.

3.1.2.2) No enmascarables: XIRQ: Es la cuarta interrupción de mayor prioridad. Se utilizó para el

pulsador de parada de emergencia.

3.2) Motores:

Motor de imán permanente:Características:

- 15V CC.- 500mA.

Motor paso a paso unipolar:Características:

- 15V.- 500mA.

Estos motores tienen seis terminales de conexión, cuatro de señal y dos de masa.

Sistemas Digitales 7

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

En la figura 2 se muestra un diagrama de un motor paso a paso unipolar. Para lograr que el motor gire se deben poner pulsos con una secuencia determinada, la secuencia para que gire en sentido horario es D-C-B-A, y para que gire en sentido horario es A-B-C-D. Hay otras maneras de combinar pulsos para obtener otro tipo de movimiento, pero el antes mencionado fue el utilizado en el trabajo.

3.3) Carros:Se utilizaron dos carros de impresoras reciclados, ya venían preparados para

deslizar un cabezal en una trayectoria lineal. Empotrando un carro en el cabezal del otro carro en forma perpendicular logramos cubrir una superficie de posicionamiento limitada por el movimiento de los cabezales.

3.4) Encoders:Se utilizaron dos encoders infrarrojos diferenciales. Básicamente un encoder

infrarrojo diferencia consta de un LED emisor y un fototransistor. Una rueda perforada es la que, cuando se mueve el carro, intercepta el haz emitido por el LED que impacta en el fototransistor, produciendo que este alterne entre el estado de corte y saturación. El fototransistor en NPN, con una resistencia de emisor, en bornes del emisor obtengo la señal de salida de los encoders.

Como los encoders que se utilizaron son diferenciales, como salida obtengo dos señales por encoder. Estas señales están desfasadas 90º si el carro gira en un sentido y -90º si gira en el otro, esto me permite determinar el sentido del desplazamiento de los carros.

Señal a la salida del encoder

Giro a derecha Giro a izquierda

Sistemas Digitales 8

Señal 1

Señal 2

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

3.5) Finales de carrera:Se utilizaron cuatro finales de carrera normal cerrado para cada uno de los

extremos de los recorridos de los carros, con esto se les pone un límite al recorrido de los mismos.

3.6) Tablero de comando:Se utilizó un tablero para comandar la posición del cabezal, en este tablero se

encuentran todo lo necesario para posicionarlo.

3.6.1) Fachada:

Fachada del tablero de comando

3.6.2) Borneras del tablero de comando:

Vista lateral derecha del tablero de comando

Sistemas Digitales 9

PARADA

REFERENCIASSECUANCIA DE

POSICIONAMIENTO AUTOMÁTICO

TRAYECTORIAS

CONFIRMACIÓNPARADA DE

ARRANQUE

EMERGENCIA

X Y

LINEAL

CUADRÁTICA

SEMICIRCULAR

ORTOGONAL

REFERENCIA INICIAL

REFERENCIA FINAL

INDICAR TRAYECTORIA

POSICIONAR

MANUAL AUTOMÁTICO

INACTIVO

AUTOMATICOMANUAL

111

2412

Ingeniería en Automatización y Control IndustrialUniversidad Nacional de Quilmes

1. Alimentación botones

2. Botón de modo automático3. Botón de modo manual4. Botón de confirmación5. Botón de parada de emergencia6. Botón arranque7. Botón parada8. Botón de trayectoria lineal9. Botón de trayectoria cuadrática10. Botón de trayectoria

semicircunferencia11. Botón de trayectoria ortogonal12. Alimentación potenciómetros

13. Salida referencia Y14. Salida referencia X15. Masa (GND)16. Led inactivo17. Led automático18. Led manual19. Led posición inicial20. Led iniciar trayectoria21. Led referencia final22. Led referencia inicial23. Led arranque24. Led parada

Sistemas Digitales 10

3.7) Esquema de la planta:

3.7.1) Fachada:

Motor de continua

Motor paso a paso

Carro fijo

Carro móvil

Receptáculo para punta del cabezal

Receptáculode encastre entre carros

Final de carrera

Encoder

Encoder

3.7.2) Bornera de la planta:

Bornero de la planta

1. Señal 1 de encoder X.2. Señal 2 de encoder X.3. Señal 1 de encoder Y.4. Señal 2 de encoder Y.5. Final de carrera eje X extremo

inicial del carro.6. Final de carrera eje X extremo

final del carro.7. Final de carrera eje Y extremo

inicial del carro.8. Final de carrera eje Y extremo

final del carro.

9. Pulso 1 de motor paso a paso.10. Pulso 2 de motor de paso a

paso.11. Pulso 1 de motor de paso a

paso.12. Pulso 2 de motor de paso a

paso.13. Pulso 3 de motor de paso a

paso.14. Pulso 4 de motor de paso a

paso.

1 14

4) Circuitos impresos utilizados:

4.1) Conformador de señal :Debido a que la señal de salida de los encoders no era cuadrada se incorporó

a la planta un circuito conformador de señal, que traduce la señal con forma gaussiana en una onda cuadrada basándonos en una lógica de operacionales (en modo comparador).

Salida 1: Conector de entrada del microcontroladorSalida 2: Conector de entrada del microcontroladorSalida 3: Conector de entrada del microcontroladorSalida 4: Conector de entrada del microcontroladorU1, U2, U3, U4: Amplificador Operacional LM324N

VrefV a la entrada de los Amp. Op.V

V

t

t

Vref

Señal a la salida del circuito conformador

5V

4,3V

0V

Interfaz de potencia para motor de imán permanente:

Se utilizó un inversor monofásico de puente completo, el que nos permite comandar el sentido de rotación del motor a partir de dos bits de señal. Circuito que permite implementar el control de velocidad del motor de imán permanente mediante modulación PWM.

B1 Motor: Conector del borne 1 del motorB2 Motor: Conector del borne 2 del motorM1, M2: Transistor MOSFET IRF510A (Canal N)M3, M4: Transistor MOSFET F9530N (Canal P)D1, D2, D3, D4: Diodo FR205 (Ultrarrápidos)Opto acoplador: 4N26

4.2) Interfaz de potencia para motor paso a paso :Para este motor se utilizó un arreglo de 4 transistores MOSFET en línea, de tal

forma que desplazando la activación excluyente de cada uno se logre el algoritmo de rotación del motor paso a paso. Esta activación es comandada por cuatro bits a la entrada, según el sentido en que se ejecute el algoritmo será el sentido de giro.

B1 Motor: Conector del borne 1 del motorB2 Motor: Conector del borne 2 del motorB3 Motor: Conector del borne 3 del motorB4 Motor: Conector del borne 4 del motorM: Transistor MOSFET F9530N (Canal P)D: Diodo FR205 (Ultrarrápidos)Opto acoplador: 4N26

5) Programa:

5.1) Funciones del Programa (Subrutinas): main: esta función es el eje del programa, es la encargada de inicializar

algunas variables y de configurar algunos registros, desde esta función se llama a todas las otras.

homing: esta función es la encargada de devolverme el total de pulsos que entregan los encoders haciendo un barrido completo de la superficie, entrega la cantidad de pulsos de cada eje por separado, también deja posicionado a los cabezales en el origen de coordenadas [0;0].

modmanual: esta función es la encargada de realizar el control del dispositivo cuando está seleccionado el modo manual. Básicamente lo que hace es leer el conversor y comparar con la posición actual del cabezal, mientras no sea la misma posición el control ejercerá una acción correctiva, una vez que se de la igualdad el control quedará en una posición de espera hasta que le ordenen posicionar nuevamente.

comunicación: es la encargada de enviar los datos por el puerto serie. Se guarda en un vector toda la trama que se desea enviar. En un bucle se envían todos los datos, una vez finalizada la transmisión el programa sale de la función.

5.2) Funciones del Programa (Rutinas de atención de interrupciones): encoderx: esta rutina lo único que hace es dada la interrupción hace una

comparación con uno de los bits del puerto C, si esa comparación se da decremento la variable pulsos en 1, si no se da la incremento en 1, esta variable me guarda la cantidad de pulsos que cuenta el encoder. Esta rutina corresponde al encoder asociado al eje X. Atiende la solicitud de interrupción del TIC3.

encodery: ídem anterior, pero para el eje Y. Atiende la solicitud de interrupción del TIC2.

pwm: esta rutina es la encargada de generar el PWM que controlará al motor de imán permanente, simplemente lo que hace es negar el valor del bit del puerto B en cuestión, el bit que afecte lo dará la variable que indica el sentido de giro del motor. Atiende la solicitud del TOC3.

secuencia: es la rutina que genera la secuencia rotativa para comandar el motor paso a paso, rota un único bit alto en un grupo de cuatro en total. Atiende la solicitud del TOC3.

xirq: es la rutina para atender la interrupción externa XIRQ, simplemente lo que hace es llevar la ejecución del programa al origen de la función cstr, resetear todas las salidas y deshabilitar todas las interrupciones, sólo por seguridad. Se utilizó para la parada de emergencia.

com_int: esta es la rutina que atiende la solicitud del TOC1. Defino la base de tiempo con que quiero que se envíen los datos al puerto serie de la PC.

El código fuente: Apéndice B

5.3) Archivo *.lkf:En este archivo se le indica al linker (generador del *.h11, el predecesor del

*.S19 final a cargar en la memoria del microcontrolador) como debe distribuir los

archivos objeto (*.o) en la memoria. En este caso en particular la sección de programas se dividió en tres partes: prog_a, proa_b, eeprom. La sección prog_a se mapeó desde la finalización del archivo de startup (crts.s) hasta antes de que comience la zona de los vectores de interrupción (0x00C4). La sección proa_b se mapeó desde la finalización de la zona de los vectores de interrupción (0x0100), hasta la finalización de la zona de memoria correspondiente a la RAM (0x03FF). La última sección, eeprom, se mapeó desde el inicio de la memoria EEPROM (0xFE00), hasta la finalización de la misma (0xFFFF). En el archivo Plotter.lkf se puede observar que archivos quedaron asignados a cada sección. Para grabar en la memoria EEPROM se utilizó el programa JBug11.

5.4) Descripción del programa:El programa comienza en la función main y se queda esperando a que se

presione el pulsador arranque. Una vez que se pulsó se ejecuta la función homing, esta función tiene la finalidad de iniciar al sistema y fijar los límites de posicionamiento. Haciendo un barrido completo de un extremo a otro en ambos ejes (hasta hacer contacto con los finales de carrera) cuenta el total de pulsos que tiene el recorrido completo del cabezal. Estos valores los guarda en dos variables, una para cada eje. Además resetea las variables que guardan la cantidad de pulsos ya que el cabezal quedó posicionado en el origen de coordenadas. Una vez que finalizó vuelve a la función main, en donde se actualiza la lumínica del tablero y se espera a que se seleccione el modo de funcionamiento (en este caso sólo manual).

Una vez seleccionada la modalidad manual (presionando el pulsador manual), el programa salta a la función modmanual, esta función habilita el conversor A/D y lo configura en modo “canal múltiple” y “scan” discontinuo. Luego tiene una serie de bucles en cascada en los cuales si se presiona el pulsador parada el programa no entra a ninguno de estos bucles y va al inicio de la función. En el caso que no este presionado dicho pulsador, pone dos variables (“flags”) que indican si el sistema ya se posicionó, esta indicación es individual para cada eje. Al ponerlos a cero indica que el sistema no está posicionado en ningún eje. Una vez que se presiona el pulsador de posicionar, luego de colocar las referencias donde nos queremos posicionar, el programa entra en un bucle del cual sólo sale si se posiciona el cabezal en el lugar deseado o si se presionó el pulsador de parada, si se cumple la primera condición pone los “flags” antes mencionadas en uno, lo que indica que el sistema está posicionado y sale del bucle.

La lógica de control es muy simple, dentro del bucle, del que el programa sólo sale si está posicionado el cabezal, hay una serie de condicionales. Primero pregunta si la variable escalada es menor que la cantidad de pulsos actual, si se da esta condición activa la interrupción correspondiente y sale del condicional, si no se da pregunta si es mayor y sigue la lógica antes mencionada. Si tampoco se da esta última condición quiere decir que el sistema ya está posicionado, deshabilita las interrupciones, pone la salida del puerto a cero y el flan en uno. Es el mismo mecanismo para cada eje individuamente.

Si en cualquier momento se presiona el pulsador de la parada de emergencia, el programa va al inicio de la aplicación, previamente pone a cero todos los puertos necesarios y deshabilita todas las interrupciones por seguridad.

Una vez que se entró en modo manual, se puede visualizar en pantalla la cantidad de pulsos entregados por los encoders, esto lo hace una función llamada

comunicación, que entrega una trama cada 32ms al puerto serie de la PC, pudiendo levantar los datos entregados con el programa “Hyper Terminal”.

6) Señales de control:Se implementaron dos señales de control para los motores.

6.1) PWM (Modulación por ancho de pulso): Se utilizó para comandar el motor de imán permanente. La señal tiene una frecuencia de 200Hz (periodo 5ms). Esta frecuencia es fija. Cada sentido de giro tiene definido un ciclo de trabajo distinto. Esto se hizo para salvar los problemas mecánicos de la planta, ya que el movimiento hacia izquierda genera más fricción que a derecha. Para el movimiento a izquierda el ciclo de trabajo es del 78%, el ciclo de trabajo a derecha es del 67%. Ambos ciclos de trabajo son fijos.

6.2) Secuencia: Rota un bit en un grupo de cuatro bits. El retardo entre cada cambio de posición del bit alto es de 4ms. Para cambiar el sentido de giro sólo hay que cambiar el sentido de rotación del bit alto.

Pulso A

Pulso B

Pulso C

Pulso D

t

t

t

t4ms 4ms 4ms 4ms

7) Funcionamiento:

Una vez que la planta está conectada a la red de suministro eléctrico puede comenzar a funcionar. Presionando el pulsador de arranque (en el tablero de comando) el dispositivo comenzara a hacer un barrido completo de toda la superficie hasta que el cabezal y el carro inferior hacen contacto con los finales de carrera. Mientras realiza esto cuenta la cantidad de pulsos que le entregan los encoders. Con esto el sistema tiene una referencia de los límites de posicionamiento. Al terminar con esta tarea se puede comenzar a utilizar el dispositivo (Aparece una luz indicando que el sistema está activo).

La planta tiene dos formas de posicionar el cabezal, una forma manual y una automática (esta última es una implementación a futuro debido a limitación en la memoria del microcontrolador).

Para acceder a esta modalidad de funcionamiento se debe presionar el pulsador manual, en esta modalidad de funcionamiento se le pasa la referencia por medio de los potenciómetros y luego se presiona el pulsador confirmar. Cada uno nos permitirá posicionarnos de 0 a 100% en su respectivo eje.

Cuando decidamos detener al dispositivo se debe presionar el pulsador parada. Luego de pulsarlo el sistema quedará esperando ser posicionado nuevamente.

La forma automática tiene cuatro pasos. El primero solicita la referencia inicial, se deben ajustar los potenciómetros en la posición deseada y pulsar confirmar, luego nos solicitará la referencia final, repitiendo los pasos anteriores. Posteriormente será solicitado se indique el tipo de trayectoria a realizar entre los puntos, finalmente presionando en el pulsador confirmar nos posicionará según los parámetros preestablecidos.

Las posibles trayectorias en la modalidad automática son:5. Lineal.6. Cuadrática.7. Semicircular.8. Ortogonal.

Para finalizar la aplicación sólo se debe presionar el pulsador parada.Por seguridad la planta posee un pulsador parada de emergencia, que la coloca

en el inicio (Stand By).También se implementó una aplicación para visualizar la cantidad de pulsos que

se desplazo el cabezal en cada eje.

8) Diagrama de flujo de la lógica de control:

R: Referencia de posicionamiento (Posición escalada)P: Pulsos acumulados (Posición actual)MP: Motor posicionado (flag)

P > R

P < R

Mover motor a derecha

Mover motor a

izquierda

MP = 1

MP == 0

Si

NoSi

No

Si

No

9) Limitaciones debido a sensores y actuadores:

Las limitaciones de posicionamiento están dadas por la capacidad de los elementos actuadores (motores). El motor de imán permanente no trae inconvenientes aparejados, pero si el motor paso a paso. Por cada paso que da el encoder emite entre dos y tres pulsos, esto trae como consecuencia principal la posibilidad de que el motor no pueda posicionar al cabezal en un lugar entre esos tres pulsos que emite. Las soluciones a estos problemas podrían ser:

Reducir la sensibilidad del encoder (por ésta se optó en este proyecto). Posicionar el cabezal con un error de +/- 2 pulsos del encoder (lo que

equivaldría a +/- 2mm).

10) Conclusiones:

Básicamente se lograron todos los objetivos propuestos. Se utilizaron prácticamente todos los periféricos más trascendentes del microcontrolador y más allá de la extensión del programa, el microcontrolador respondió muy eficientemente, sin agregar retardos de ningún tipo. Se pudo controlar la posición del cabezal con bastante exactitud más allá de las limitaciones físicas de la planta.

Quedaron muchas mejoras a realizar, las cuales no se pudieron implementar debido a la falta de memoria física del microcontrolador. Entre las más destacables se pueden considerar:

Implementar un control de velocidad del motor de imán permanente, principalmente para que no tenga error de posicionamiento debido a la inercia y no frenar tan bruscamente al alcanzar a los finales de carrera.

Mejorar la interfaz visual y la comunicación con la PC, con esto se lograría reducir el tiempo utilizado en la transmisión, mejorando el control del posicionamiento.

Toda la parte automática de posicionamiento quedó pendiente.