Sistema para la obtención de coordenadas en ambientes 3D

48
Sistema para la obtención de coordenadas en ambientes 3D Trabajo de Grado Número 1119 Juan Manuel Gómez Sotelo PROYECTO DE GRADO PRESENTADO PARA OPTAR EL TÍTULO DE INGENIERO ELECTRÓNICO DIRECTOR: INGENIERO MIGUEL EDUARDO SARMIENTO JURADO PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA ELECTRÓNICA BOGOTÁ D.C DICIEMBRE DE 2011

Transcript of Sistema para la obtención de coordenadas en ambientes 3D

Page 1: Sistema para la obtención de coordenadas en ambientes 3D

Sistema para la obtención de coordenadas en ambientes 3D

Trabajo de Grado Número 1119

Juan Manuel Gómez Sotelo

PROYECTO DE GRADO PRESENTADO PARA OPTAR EL TÍTULO DE INGENIERO ELECTRÓNICO

DIRECTOR: INGENIERO MIGUEL EDUARDO SARMIENTO JURADO

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA ELECTRÓNICA

BOGOTÁ D.C DICIEMBRE DE 2011

Page 2: Sistema para la obtención de coordenadas en ambientes 3D

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA

CARRERA DE INGENIERÍA ELECTRÓNICA

RECTOR MAGNÍFICO: R. P. JOAQUÍN SÁNCHEZ S.J DECANO ACADÉMICO: ING. LUIS DAVID PRIETO MARTÍNEZ PhD DECANO DEL MEDIO UNIVERSITARIO: R.P. SERGIO BERNAL S.J.

DIRECTOR DE DEPARTAMENTO: ING. JORGE LUIS SÁNCHEZ M.Sc, M.Edu. DIRECTOR DE CARRERA: ING. JUAN MANUEL CRUZ M.Edu.

DIRECTOR DEL PROYECTO: ING. MIGUEL EDUARDO SARMIENTO JURADO

Page 3: Sistema para la obtención de coordenadas en ambientes 3D

ARTÍCULO 23 DE LA RESOLUCIÓN No. 13 DE JUNIO DE 1946 “La Universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus proyectos de grado. Sólo velará porque no se publique nada contrario al dogma y la moral católica y porque los trabajos no contengan ataques o polémicas puramente personales. Antes bien, que se vea en ellos el anhelo de buscar la verdad y la justicia”.

Page 4: Sistema para la obtención de coordenadas en ambientes 3D

Tabla de contenido 1 INTRODUCCIÓN ..................................................................................................................... 7

1.1 Objetivo general: ................................................................................................................ 7

1.2 Objetivos específicos: ......................................................................................................... 7

2 MARCO TEÓRICO ................................................................................................................... 8

2.1 MOTOR UFB1N05F41ASN4M Y CONTROLADOR RBD245A-V .................................. 8

2.1.1 Señales del motor UFB1N05F41ASN4M .................................................................... 8

2.1.2 Señales del controlador RBD245A-V ......................................................................... 8

2.2 Telémetro LDM41 .............................................................................................................11

2.3 MATRICES DE TRANSFORMACIÓN ............................................................................12

3 ESPECIFICACIONES ..............................................................................................................14

3.1 ESPECIFICACIONES DEL SISTEMA .............................................................................14

3.2 DIAGRAMA DE BLOQUES ............................................................................................14

3.2.1 Diagrama Bloques Estado Pan....................................................................................15

3.2.2 Diagrama Bloques Estado Tilt ....................................................................................15

3.2.3 Diagrama Bloques Estado USART .............................................................................16

3.2.4 Diagrama Bloques Estado Telémetro ..........................................................................18

3.2.5 Diagrama Bloques Estado Disparo .............................................................................18

3.2.6 Diagrama Bloques Estado Barrido ..............................................................................19

3.2.7 Diagrama Bloques Estado Alarma ..............................................................................20

4 DESARROLLO ........................................................................................................................21

4.1 SOFTWARE .....................................................................................................................21

4.1.1 MÓDULOS DEL SISTEMA......................................................................................21

4.1.1.1 DEFINICIONES ............................................................................................................21

4.1.1.2 TIEMPO ........................................................................................................................21

4.1.1.3 BUFFER........................................................................................................................21

4.1.1.4 USART .........................................................................................................................22

4.1.1.5 MOTOR ........................................................................................................................22

4.1.1.6 PUERTO PARALELO ..................................................................................................22

4.1.1.7 CONVERSIÓN .............................................................................................................22

4.1.1.8 COMUNICACIÓN ........................................................................................................22

4.1.2 MÁQUINA DE ESTADOS .......................................................................................23

4.1.3 ESTADOS DEL SISTEMA .......................................................................................25

4.1.4 MENSAJE DE ERRORES .........................................................................................26

4.1.5 MATRICES DE TRANSFORMACIÓN DEL SISTEMA ...........................................26

5 HARDWARE ...........................................................................................................................29

Page 5: Sistema para la obtención de coordenadas en ambientes 3D

5.1 DESCRIPCIÓN DEL HARDWARE DEL SISTEMA ........................................................29

5.2 FRECUENCIA DEL MICROCONTROLADOR ...............................................................30

5.3 FRECUENCIA DE LA USART ........................................................................................31

6 ANÁLISIS DE RESULTADOS ................................................................................................32

6.1 Resultados Estado_Pan ......................................................................................................34

6.2 Resultados Estado_Tilt ......................................................................................................37

6.3 Resultados Estado_USART ...............................................................................................40

6.4 Resultados Estado_Telémetro ............................................................................................41

6.5 Resultados Estado_Disparo ................................................................................................42

6.6 Resultados Estado_Barrido ................................................................................................44

6.7 Cambios ............................................................................................................................45

7 CONCLUSIONES ....................................................................................................................46

8 COSTOS Y FUENTES DE FINANCIACIÓN ...........................................................................47

9 BIBLIOGRAFÍA ......................................................................................................................48

Lista de tablas Tabla 1. Pines del motor UFB1N05F41ASN4M ................................................................................. 8 Tabla 2. Ángulo paso del driver RBD245A-V ...................................................................................10 Tabla 3. Corriente del driver RBD245A-V ........................................................................................11 Tabla 4. Resolución del parámetro SF ...............................................................................................12 Tabla 5. Especificaciones del sistema ................................................................................................14 Tabla 6. Estados de la Máquina de Estados Comunicación ................................................................23 Tabla 7. Códigos de errores del sistema. ............................................................................................26 Tabla 8. Bit de cada Estado ...............................................................................................................29 Tabla 9. Pruebas Estado Pan .............................................................................................................35 Tabla 10. Estado Pan Frecuencia .......................................................................................................35 Tabla 11. Pruebas Estado Tilt ............................................................................................................38 Tabla 12. Estado Tilt Frecuencia .......................................................................................................38 Tabla 13. Pruebas Usart ....................................................................................................................40 Tabla 14. Prueba telémetro con el sistema .........................................................................................41 Tabla 15. Prueba telémetro sin el sistema ..........................................................................................41 Tabla 16. Prueba 1 disparo sistema ....................................................................................................42 Tabla 17. Prueba 1 disparo usuario ....................................................................................................42 Tabla 18. Prueba 2 disparo sistema ....................................................................................................43 Tabla 19. Prueba 2 disparo usuario ....................................................................................................43 Tabla 20. Prueba 3 disparo sistema ....................................................................................................43 Tabla 21. Prueba 3 disparo usuario ....................................................................................................43 Tabla 22. Prueba 4 disparo sistema ....................................................................................................43 Tabla 23. Prueba 4 disparo usuario ....................................................................................................43 Tabla 24. Prueba 1 Barrido Sistema...................................................................................................44 Tabla 25. Prueba 1 Barrido usuario ...................................................................................................44 Tabla 26. Prueba 2 Barrido Sistema...................................................................................................45

Page 6: Sistema para la obtención de coordenadas en ambientes 3D

Tabla 27. Prueba 2 Barrido Usuario...................................................................................................45 Tabla 28. Prueba 3 Barrido Sistema...................................................................................................45 Tabla 29. Prueba 3 Barrido Usuario...................................................................................................45

Lista de figuras Figura 1. Controlador RBD245A-V.................................................................................................... 8 Figura 2. Diagrama de bloques de las señales de controlador. ............................................................. 9 Figura 3. Diagrama de tiempos de las señales PLS y DIR ................................................................... 9 Figura 4. Señal AWO ........................................................................................................................10 Figura 5. Interruptores del controlador RBD245A-V [2] ....................................................................10 Figura 6. Punto cero del telémetro .....................................................................................................13 Figura 7. Diagrama General de Bloque del Sistema ..........................................................................14 Figura 8. Diagrama de bloques Estado pan ........................................................................................15 Figura 9. Diagrama de bloques Estado Tilt ........................................................................................16 Figura 10. Diagrama de bloques Estado USART ...............................................................................16 Figura 11. Diagrama de Bloques del sistema .....................................................................................17 Figura 12. Diagrama de bloques del Estado Telémetro ......................................................................18 Figura 13. Diagrama de bloques del Estado Disparo ..........................................................................19 Figura 14. Barrido en Zig Zag ...........................................................................................................20 Figura 15. Diagrama de bloques del Estado Barrido ..........................................................................20 Figura 16. Diagrama de bloques del Estado Alarma...........................................................................21 Figura 17. Máquina de Estados comunicación ...................................................................................24 Figura 18. Marcos de coordenadas del sistema. .................................................................................27 Figura 19.Esquemático del Sistema ...................................................................................................30 Figura 20. Conexión MAX232 ..........................................................................................................32 Figura 21. Parámetro A, B, C, D .......................................................................................................33 Figura 22. Ángulo ∅..........................................................................................................................33 Figura 23. Ángulo 휽 .........................................................................................................................34 Figura 24. Instrucciones ingresadas pruebas Estado Pan ....................................................................34 Figura 25. Estado Pan Frecuencia ......................................................................................................36 Figura 26. Frecuencia Media Pan Vs Frecuencia calculada Pan .........................................................36 Figura 27. Instrucciones ingresadas pruebas Estado Tilt ....................................................................37 Figura 28. Estado Tilt Frecuencia ......................................................................................................39 Figura 29. Frecuencia Media Tilt Vs Frecuencia calculada Tilt ..........................................................39 Figura 30. Instrucciones ingresadas prueba USART ..........................................................................40 Figura 31. Instrucciones ingresadas prueba telémetro ........................................................................41 Figura 32. Instrucciones ingresadas prueba disparo ...........................................................................42 Figura 33. Instrucciones ingresadas prueba barrido ............................................................................44

Page 7: Sistema para la obtención de coordenadas en ambientes 3D

7

1 INTRODUCCIÓN El grupo SIRP está interesado en construir herramientas de hardware electrónico que le permitan desarrollar una infraestructura para el desarrollo de proyectos en el área de robótica, para lograr esto el grupo posee varios dispositivos; entre los que se encuentra un telémetro láser, los controladores de los motores y a torreta que se utilizan en el proyecto, se busca que los sistemas construidos (que por el momento son completamente independientes), puedan eventualmente integrarse para cumplir funciones dentro de un robot. Los resultados de este proyecto están a disposición de cualquier persona que requiera utilizarlo [1].

El proyecto se enfocó en el diseño de un software adaptable a algunas familias de procesadores Atmel. El desarrollo concreto se hizo sobre el microcontrolador Atmega 324P con el fin de adquirir los datos entregados por un telémetro: Se trata de una plataforma mecánica (torreta) con dos grados de libertad sobre la cual se instaló un telémetro láser. La medida entregada por el telémetro es utilizada para determinar las coordenadas esféricas y rectangulares del punto ubicado respecto a la base del dispositivo, para luego enviarlos al usuario; una vez el telémetro apunta en la dirección asignada por el usuario, envía la información relacionada con la distancia al microcontrolador, éste procesa la información de tal manera que el punto en el espacio queda referido a la base del dispositivo para luego enviar la coordenada tanto esférica como rectangular del punto al terminal.

Para cumplir con este propósito se diseñó un software embebido que trabaja por polling lo que garantiza que el sistema en todo momento verifica el estado de los módulos que lo conforman; se desarrolló de manera modular para garantizar que fuera utilizable para una variedad de microcontroladores que cumplan ciertas características (ver sección 3.1), además de permitir agregar más funciones reutilizando los módulos ya escritos, lo que ahorra tiempo y memoria de programa en el microcontrolador; dependiendo de la aplicación que se desea utilizar. Una característica importante del software es el poder cambiar los parámetros del sistema en general en un solo archivo, dando la posibilidad al usuario de cambiar de hardware fácilmente sin que esto involucre reescribir grandes cantidades de código, ni conocer a fondo el software.

El desarrollo que se hizo implementó un sistema para medición de distancias en ambientes 3D desde un punto fijo usando un telémetro láser. La torreta utilizada contiene dos motores de paso, uno para el movimiento pan 1y el otro para el movimiento en tilt2, para esto se estableció la comunicación entre un telémetro láser (referencia LDM 41) y un microcontrolador Atmel, los motores están conectados a un controlador que a su vez se conecta al microcontrolador; los datos son enviados a un terminal donde el usuario analiza la información recibida del sistema.

1.1 Objetivo general:

Diseñar e implementar un sistema para medición de distancias en ambientes 3D desde un punto fijo usando un telémetro láser.

1.2 Objetivos específicos:

Establecer la comunicación entre un telémetro láser (referencia LDM 41) y un microcontrolador Atmel.

Implementar en un microcontrolador Atmel, un módulo software que permita manejar motores de paso de dos fases utilizando un controlador RBD245A-V.

1 Es el movimiento de izquierda a derecha o viceversa. 2 Es el movimiento de arriba a abajo o viceversa.

Page 8: Sistema para la obtención de coordenadas en ambientes 3D

8

Implementar un módulo de comunicación en el microcontrolador Atmel, que permita al usuario el ingreso de datos de apuntamiento del telémetro laser.

Implementar un módulo de comunicación, en el microcontrolador Atmel, que retorne las coordenadas tanto esféricas como cartesianas de la medición realizada, ajustándolas a un marco de referencia inercial ubicado en la base del dispositivo.

2 MARCO TEÓRICO

2.1 MOTOR UFB1N05F41ASN4M Y CONTROLADOR RBD245A-V

2.1.1 Señales del motor UFB1N05F41ASN4M

El motor de pasos UFB1N05F41ASN4M tiene 4 terminales asignados como se muestra en la Tabla 1.

Nombre de la señal Descripción Color del cable del motor Terminal

A A-Fase de salida Negro 2

-fase de salida Verde 3

B B-fase de salida Rojo 4

-fase de salida café 5

Tabla 1. Pines del motor UFB1N05F41ASN4M

Estos terminales se conectan al controlador RBD245A-V

2.1.2 Señales del controlador RBD245A-V

El controlador funciona con un voltaje de alimentación de 20 a 75 VDC y una corriente de 0.28A en Figura 5 se muestra los interruptores del controlador y en la Tabla 3 se muestra los diferentes valores de corriente que trabaja el controlador, mientras que la señal de control del controlador maneja un voltaje de 5 VDC y una corriente de 5 a 20 mA. En la Figura 1 se observa los puertos del controlador.

Figura 1. Controlador RBD245A-V

Page 9: Sistema para la obtención de coordenadas en ambientes 3D

9

En la Figura 2 se muestra el diagrama de bloques de las señales de entrada y salida del controlador del motor

Figura 2. Diagrama de bloques de las señales de controlador.

Los impulsos de mando son controlados por la señal de entrada llamada PLS la cual es una señal cuadrada, y la dirección es controlada mediante de la señal DIR. Cuando la señal DIR está encendida y la señal PLS está encendida y pasa a apagada el motor gira en la dirección de las manecillas del reloj CW (por sus siglas en ingles clockwise) en cambio si la señal DIR está apagada y la señal PLS está encendida y pasa a apagada el motor gira en sentido contrario a las manecillas del reloj CWW (por sus siglas en ingles counterclockwise). Las señales PLS y DIR son de 5 o 24 VDC dependiendo del hardware conectado al controlador.

A continuación se muestra en la Figura 3 el diagrama de tiempo de las señales DIR y PLS.

Figura 3. Diagrama de tiempos de las señales PLS y DIR

La señal de entrada AWO se muestra en la Figura 4, esta señal se utiliza solamente cuando se desea ajustar el eje del motor manualmente (Encendido: 4.5 a 26.4 V, Apagado: 0 a 1 V). Cuando la señal AWO está encendida, el controlador deja de suministrar corriente al motor haciendo que este pierda torque. Cuando la señal está apagada se restablece el suministro de corriente con lo que se restaura el torque del motor.

Page 10: Sistema para la obtención de coordenadas en ambientes 3D

10

Figura 4. Señal AWO

La señal de entrada CS controla el ángulo del motor; cuando la entrada CS está encendida, el motor funcionará a la base del ángulo de paso, independientemente del ajuste del ángulo en los interruptores del controlador; en la Figura 5 se muestra la ubicación de los interruptores en el driver; por el contrario; cuando la entrada CS está apagada, el motor funcionará con el ángulo de pasos establecidos por el selector del ángulo de paso; en la Tabla 2 se muestra el ángulo que gira el eje del motor con respecto al valor del interruptor.

Figura 5. Interruptores del controlador RBD245A-V [2]

Estado del Interruptor (DATA) Ángulo Paso 0 1.8 1 0.9 2 0.45 3 0.36 4 0.225 5 0.2 6 0.18 7 0.1125 8 0.1 9 0.09 A 0.05625 B 0.05 C 0.045 D 0.028125 E 0.0225 F 0.0140625

Tabla 2. Ángulo paso del driver RBD245A-V

Estado del Interruptor (RUN) Corriente 0 0.28 1 0.56 2 0.84 3 1.13

Page 11: Sistema para la obtención de coordenadas en ambientes 3D

11

4 1.4 5 1.7 6 2 7 2.25 8 2.58 9 2.8 A 3.1 B 3.4 C 3.65 D 3.95 E 4.2 F 4.5

Tabla 3. Corriente del driver RBD245A-V

Para las demás señales del controlador referirse al manual del driver RBD245A-V [2].

2.2 Telémetro LDM41 El telémetro LDM41A utilizado en este trabajo tiene un rango de medida entre 0.1m hasta 30m en superficies naturales y hasta 100m dependiendo de la reflectancia del destino con una resolución de 1mm. Requiere una fuente de alimentación de voltaje entre 10V y 30V DC. La transmisión y recepción de datos se hace por medio de la interfaz RS232 o RS422; el telémetro entrega las medidas en formato ASCII con una velocidad de transmisión que puede ser 2400, 4800, 9600, 19200, 38400 Baudios. El sensor funciona sobre la base de medición de fase comparativa. Emite una luz láser modulada que es reflejada por el blanco con un cierto cambio en la fase que se compara con una señal de referencia. De la cantidad de cambio de fase, una distancia necesaria se puede determinar con precisión milimétrica.

La interfaz de comunicación RS232 es la herramienta estándar establecido para la transmisión de datos en serie a través de cables cortos de hasta 15 m. Con longitudes de transmisión mayores, la interfaz es altamente susceptible a las interferencias, sobre todo, en las proximidades de fuertes emisores de ruido electromagnético.

En este caso se va a utilizar la comunicación RS232 ya que la distancia entre el microcontrolador y el computador es corta lo que hace que las interferencias disminuyan; el sistema está pensado para aplicaciones en ambientes exteriores: donde las fuentes electromagnéticas no influyan en los instrumentos de medición, caso contrario lo que ocurre en ambientes industriales donde el ruido electromagnético es muy grande. Hay diferentes comandos de configuración del telémetro para la medición de distancias entre ellos se encuentran:

LO: Parámetro que se utiliza para encender el telémetro.

LF: Parámetro que se utiliza para apagar el telémetro.

DT: Parámetro que se utiliza para la medición de distancia de los diferentes tipos de superficies.

DS: Parámetro que se utiliza cuando las superficies son medidas a una distancia menor de 7m; en comparación al parámetro DT este parámetro permite una velocidad de medición más alta.

DW: Parámetro que realiza la medición a una frecuencia de 10 Hz. Unas de las condiciones para utilizar este parámetro es que no debe haber un salto brusco en la distancia superior de 16 cm dentro del campo de medición.

DX: Parámetro que realiza la medición a una frecuencia de 50 Hz. Unas de las condiciones para utilizar este parámetro es que no debe haber un salto brusco en la distancia superior de 16 cm dentro del campo de medición.

Page 12: Sistema para la obtención de coordenadas en ambientes 3D

12

DM: Parámetro que es utilizado cuando se requiere una sola medición.

SF: Parámetro que indica el factor de escala, el cual multiplica un valor calculado con un factor de distancia seleccionable por el usuario para los cambios en la resolución o salidas en una unidad de medida diferente. El factor de escala también puede ser negativo. El valor estándar es 1. En la Tabla 4 se muestra la unidad de medición de acuerdo al factor de escala.

Factor de escala Resolución Salida Unidad de medición

SF1 1 mm 12.345 m

SF10 0.1 mm 123.45 Dm

SF1.0936 0.01 yard 13.500 yard

SF3.28084 0.01 feet 40.501 Feet

SF0.3937 1 inch 4.860 100 inch

SF-1 1 mm -12.345 m

Tabla 4. Resolución del parámetro SF

BR: Parámetro encargado del ajuste de la velocidad de transmisión, la cual toma los siguientes valores: 2400, 4800, 9600, 19200, 38400 Baudios. Las entradas defectuosas se redondean al valor más cercano de la velocidad de transmisión.

OF: Parámetro que permite al usuario definir el punto de origen desde el cual el telemetro calcula la medida.

PA: Entrega todos los parámetros del telémetro en una tabla.

PR: Parámetro que restablece todos los parámetros del telémetro (a excepción de la velocidad de transmisión). Después de restablecidos los parámetros es necesaria una nueva configuración del telémetro.

Para los demás parámetros referirse al manual del telémetro LDM41A. [3]

2.3 MATRICES DE TRANSFORMACIÓN Cualquier punto de coordenadas (x,y,z) se transforma mediante una operación de simetría en otro punto cuyas nuevas coordenadas son (x',y',z'). Las relaciones de estas nuevas coordenadas con las iniciales dependen de la operación que se lleve a cabo, la cual puede expresarse por medio de una matriz de transformación; en este proyecto se desea cambiar el marco de referencia del telémetro a la base de la torreta, para esto se calculan las matrices de transformación, Lo que requiere de información del marco de referencia de las medidas con respecto al telémetro. El punto cero del telemetro LDM 41 A esta ubicado a 7 mm detrás de la superficie externa de la cara frontal o 137 mm antes de la tapa posterior, como se muestra en la Figura 6. Se puede compensar con la ayuda del parámetro ¨OF¨. Este punto es el origen del marco de referencia del telémetro.

Page 13: Sistema para la obtención de coordenadas en ambientes 3D

13

Figura 6. Punto cero del telémetro

En la Figura 18 se observa los marcos de coordenada de los elementos que conforman el sistema.

Un movimiento rígido es un par ordenado (d,R) donde 푑 ∈ ℛ y R ∈ 푆푂(3). El grupo de todos los movimientos rígidos es conocido como el Grupo especial de Euclides y se denota por 푆퐸(3). Vemos que 푆퐸(3) = ℛ × 푆푂(3). Por medio de matrices se puede representar los movimientos rígidos de un cuerpo, esto es útil cuando se tiene una secuencia de movimientos, de esta manera la composición de movimientos rígidos total es la multiplicación de las matrices que representan cada movimiento rígido, el resultado se denomina matriz de transformación Homogénea H. Un conjunto básico de transformaciones homogéneas generando 푆퐸(3) está dado por la Ecuación 1.

Tx,a=

1 0 0 푎0 1 0 00 0 1 00 0 0 1

Rx,θ=

1 0 0 00 푐표푠휃 − 푠푖푛휃 00 푠푖푛휃 푐표푠휃 00 0 0 1

Ty,b=

1 0 0 00 1 0 푏0 0 1 00 0 0 1

Ry, =

푐표푠훽 0 − 푠푖푛∅ 00 1 0 0−푠푖푛훽 0 푐표푠∅ 00 0 0 1

Tz,c=

1 0 0 00 1 0 00 0 1 푐0 0 0 1

Rz,∅=

푐표푠∅ − 푠푖푛∅ 0 0푠푖푛∅ 푐표푠∅ 0 00 0 1 00 0 0 1

Ecuación 1. Matrices de Transformación

La Ecuación 2 es el resultado de las diferentes operaciones que se pueden realizar con las matrices de transformación

H=푅 |푑푓 |푠

=푅표푡푎푐푖ó푛 |푇푟푎푛푠푙푎푐푖ó푛

푃푒푟푠푝푒푐푡횤푣푎 |퐹푎푐푡표푟 푑푒 푒푠푐푎푙푎

Ecuación 2. Transformación Homogénea

De la matriz 푑 de translación nos da información de las coordenadas rectangulares y la matriz 푅 de rotación nos da información de las coordenadas esféricas [4].

Page 14: Sistema para la obtención de coordenadas en ambientes 3D

14

3 ESPECIFICACIONES

3.1 REQUERIMIENTOS MÍNIMOS DEL SISTEMA En la Tabla 5 se muestran los requerimientos mínimos del hardware del sistema en los que se incluyen los del microcontrolador.

CARACTERÍSTICA VALOR Fuente de alimentación 24 V Tasa de transmisión a través del protocolo de comunicación RS-232

9600 Baud Rate

Número mínimo de usart 2 Número máximo de motores conectados 2 Número máximo de telémetros conectados 1 Número pines del motor con movimiento pan 5 Número pines del motor con movimiento tilt 5 Máximo Ángulo en pan (varía según la torreta) 355 Máximo Ángulo en tilt (Varía según la torreta) 90

Tabla 5. Especificaciones del sistema

3.2 DIAGRAMA DE BLOQUES El sistema permite al usuario mover el motor con movimiento en pan, mover el motor con movimiento en tilt, verificar la comunicación con la USART (Universal Synchronous/Asynchronous Receiver Transmitter)3; establecer los parámetros de funcionamiento del telémetro, conocer las coordenadas cartesianas y esféricas de un punto o conocer las coordenadas cartesianas y esféricas de un número de puntos en un área determinada. En el caso del movimiento de los motores, el microcontrolador utiliza la información suministrada por el usuario para generar dos señales que llegan al controlador del motor de paso, una señal es un tren de pulsos cuya frecuencia corresponde a la frecuencia angular del motor; la segunda señal es la de dirección del motor: si está en alto el motor gira en un sentido en cambio sí está en bajo gira en sentido contrario[2], además uno de los motores realiza el movimiento horizontal (pan) y el otro motor el movimiento vertical (tilt), con lo anterior se logra el apuntamiento del telemetro. Hay que indicar que los motores se controlan en malla abierta y que el controlador y los motores de paso junto con la carga a manejar hacen que los movimientos sean precisos. En la Figura 7 se muestra el diagrama general de bloque del sistema

Figura 7. Diagrama General de Bloque del Sistema 3 Es un periférico para la transmisión de datos en formato serie, utilizando técnicas de transmisión sincrónica o asincrónica, según se configure el periférico

Page 15: Sistema para la obtención de coordenadas en ambientes 3D

15

En la Figura 11 se muestra el diagrama de bloques del sistema.

Para garantizar que el sistema funcione correctamente este trabajo se divide en diferentes módulos, los cuáles cumplen tareas específicas dentro del sistema. Cada módulo contiene su propia estructura de control que garantiza que los módulo no modifiquen los registros de otros módulos además se diseñaron las funciones de cada módulo de manera que sean reentrantes para permitir que el módulo sirva en contextos diferentes, esto facilita la adición de nuevas funciones a los módulos y al sistema en general sin afectar las ya existentes, esto es importante para el grupo SIRP ya que con esto se asegura que el sistema desarrollado permita agregar nuevas funciones con cambios mínimos en las estructuras de control.

3.2.1 Diagrama Bloques Estado Pan

Los pasos que sigue el sistema se muestran en Figura 8. Este estado se encarga de mover el motor con movimiento en pan de acuerdo a los datos suministrado por el usuario. El módulo USART es el encargado de recibir el dato P (ver sección 4.1.2.1) para luego enviárselo al módulo comunicación que le indica el usuario la velocidad y el ángulo para el motor que genera el movimiento pan, como el usuario envía los datos en formato ASCII, el módulo conversión es el encargado de convertir estos datos en tipo flotantes para que el módulo motor pueda hacer el cálculo del tiempo que dura la señal pulso en alto, esta señal se envía al módulo Puerto Paralelo que está conectado al controlador del motor, de esta manera se mueve el motor.

Figura 8. Diagrama de bloques Estado pan

3.2.2 Diagrama Bloques Estado Tilt

Los pasos que sigue el sistema se muestran en Figura 9. Este estado se encarga de mover el motor con movimiento en tilt de acuerdo a los datos suministrado por el usuario. El módulo USART es el encargado de recibir el dato T (ver sección 4.1.2.1) para luego enviárselo al módulo comunicación que le indica el usuario la velocidad y el ángulo para el motor que genera el movimiento tilt, como el usuario envía los datos formato ASCII el módulo conversión es el encargado de convertir estos datos en tipo flotantes para que el módulo motor pueda hacer el cálculo del tiempo que dura la señal pulso

Page 16: Sistema para la obtención de coordenadas en ambientes 3D

16

en alto , esta señal es envíada al módulo Puerto Paralelo que está conectado al controlador del motor, de esta manera se mueve el motor.

Figura 9. Diagrama de bloques Estado Tilt

3.2.3 Diagrama Bloques Estado USART

En Figura 10 se muestra el diagrama de bloques del estado USART. Este estado se encarga de recibir un dato del usuario y trasmitir el mismo dato al usuario. El módulo USART es el encargado de recibir el dato U (ver sección 4.1.2.1) para luego enviárselo al módulo comunicación, que le indica al usuario que le envíe un dato para luego devolvérselo por medio del módulo USART.

Figura 10. Diagrama de bloques Estado USART

Page 17: Sistema para la obtención de coordenadas en ambientes 3D

17

Figura 11. Diagrama de Bloques del sistema

Page 18: Sistema para la obtención de coordenadas en ambientes 3D

18

3.2.4 Diagrama Bloques Estado Telémetro

En la Figura 12 se muestra en diagrama de bloques del estado telémetro. El estado telémetro es el encargado de direccionar los datos del usuario directamente al telémetro y viceversa. El módulo USART es el encargado de recibir el dato M (ver sección 4.1.2.1) para luego enviárselo al módulo comunicación que le indica al usuario que le envíe un parámetro del telémetro (ver sección 2.2 Telémetro LDM41) cuando el usuario envía el parámetro el módulo comunicación se encarga de enviárselo al módulo USART del telémetro el cuál lo transmite; en caso de que el usuario ingrese un parámetro de medida el telémetro envía los datos de la medida en formato ASCII al módulo USART telémetro y este se encarga de direccionarlos al módulo comunicación para enviarlos al módulo USART y de esta manera el usuario vea la medida que midió el telémetro.

Figura 12. Diagrama de bloques del Estado Telémetro

3.2.5 Diagrama Bloques Estado Disparo

En la Figura 13 se muestra el diagrama de bloques del estado disparo. El estado disparo es el encargado de calcular las coordenadas cartesianas y esféricas en una dirección dada por el usuario. El módulo USART es el encargado de recibir el dato D (ver sección 4.1.2.1) para luego enviárselo al módulo comunicación que le indica al usuario que le envíe el ángulo inicial y el ángulo final de los motores con movimiento en pan y en tilt respectivamente. Como el usuario envía los datos en formato ASCII el módulo conversión es el encargado de convertir estos datos en tipo flotantes para que los módulos de cada motor puedan hacer el cálculo de la trayectoria más cercana y generar la señal paso que se envía al módulo Puerto Paralelo que está conectado al controlador del motor. El módulo objetivo es el encargado de sincronizar el módulo telémetro con los módulos de los motores, así, cuando los motores han alcanzados la posición para tomar la medida, el módulo objetivo indica al módulo telémetro que debe realizar una medida, el sistema espera hasta que el telémetro envié la medida que llega por el módulo USART telémetro, para guardarla en un buffer del módulo telémetro, luego el módulo objetivos lee el buffer y a partir de esa medida y de las variables de configuración de la torreta calcula las coordenadas cartesianas y esféricas que pasan por el módulo de conversión en donde se convierten a formato ASCII, luego de esto se envían al módulo de comunicación que las

Page 19: Sistema para la obtención de coordenadas en ambientes 3D

19

direcciona al módulo USART y así el usuario pueda ver las coordenadas del punto al que ha apuntado el telémetro.

Figura 13. Diagrama de bloques del Estado Disparo

3.2.6 Diagrama Bloques Estado Barrido

En la Figura 15 se muestra el diagrama de bloques del estado barrido. El estado barrido es el encargado de calcular un número de coordenadas cartesianas y esféricas en un área. Ambos, número de puntos y área, dados por el usuario. El módulo USART es el encargado de recibir el dato B (ver sección 4.1.2.1) para luego enviárselo al módulo comunicación que le indica el usuario el ángulo inicial y el ángulo final de los motores con movimiento en pan y en tilt respectivamente, y el número de puntos en horizontal y vertical. Como el usuario envía los datos en formato ASCII el módulo conversión es el encargado de convertir estos datos en tipo flotantes para que los módulos de cada motor puedan hacer el cálculo de la trayectoria más corta y generar la señal paso que se envía al módulo Puerto Paralelo que está conectado al controlador del motor. El módulo objetivo es el encargado de sincronizar el módulo telémetro con los módulos de los motores, así, cuando los motores han alcanzado la posición para tomar la medida, el módulo objetivo indica al módulo telémetro que debe realizar una medida, el sistema espera hasta que el telémetro envié la medida que llega por el módulo USART telémetro, para guardarla en un buffer del módulo telémetro, luego el módulo objetivos lee el buffer y a partir de esa medida y de las variables de configuración de la torreta calcula las coordenadas cartesianas y esféricas que pasan por el módulo de conversión en donde se convierten a formato ASCII, luego de esto se envían al módulo de comunicación que las direcciona al módulo USART y así el usuario pueda ver las coordenadas del punto al que ha apuntado el telémetro. Esta secuencia se repite hasta que el módulo objetivo indique que el número de medidas es mayor a la multiplicación del número de puntos en horizontal y vertical. El movimiento del sistema es tipo zigzag como se muestra en la Figura 14.

Page 20: Sistema para la obtención de coordenadas en ambientes 3D

20

Figura 14. Barrido en Zig Zag

Figura 15. Diagrama de bloques del Estado Barrido

3.2.7 Diagrama Bloques Estado Alarma

En la Figura 16 se muestra el diagrama de bloques del estado alarma. Una falla del sistema se puede presentar cuando alguno de los dispositivos conectados a este presenta un error y envía una señal de alarma al sistema; al recibir esta señal el sistema propaga la alarma a todos los módulos que lleva al sistema a apagar los periféricos y el sistema queda a la espera de que el usuario le notifique que la alarma se ha solucionado. El estado alarma es el encargado de desactivar la alarma cuando el usuario así lo requiera. El módulo USART es el encargado de recibir el dato A(ver sección 4.1.2.1) para luego enviárselo al módulo comunicación que le indica al módulo alarma que el problema que estaban presentando los dispositivos conectados al sistema se ha solucionado.

Page 21: Sistema para la obtención de coordenadas en ambientes 3D

21

Figura 16. Diagrama de bloques del Estado Alarma

4 DESARROLLO

4.1 SOFTWARE

4.1.1 MÓDULOS DEL SISTEMA

El sistema se divide en diferentes módulos de tal manera que cada módulo se encarga de una tarea específica. A continuación se explica cada uno de los módulos que componen el sistema.

4.1.1.1 DEFINICIONES Es el módulo encargado de guardar todos las definiciones que se utilizan en la rutina principal (main) y en las funciones del sistema, con esto se logra que cambiando las definiciones de los registros del microcontrolador tales como los registros de la USART y los registros del timer, el sistema sea compatible con múltiples microcontroladores; además se puede cambiar los parámetros de configuración de la torreta tales como las distancias en los ejes desde la base del dispositivo al marco de referencia del telémetro y la resolución del ángulo de los motores, para lograr que el sistema sea compatible con distintas torretas. A partir de esto el usuario no necesariamente debe entender el código escrito para cambiar de microcontrolador o de torreta en el sistema, simplemente de acuerdo a las hojas de especificaciones del hardware utilizado, hace las homologaciones de las definiciones; de esta manera los módulos que conforman el sistema no verán afectada su estructura de control.

4.1.1.2 TIEMPO Es el módulo encargado de generar la frecuencia con que el microcontrolador realiza algunas funciones asignadas. El módulo trabaja sobre el hardware con interrupciones para mejorar la precisión con la que monitorea el tiempo y, atiende el módulo de tiempo hardware del microcontrolador.

4.1.1.3 BUFFER El módulo de BUFFER es el encargado de controlar las acciones que se realizan en un buffer, tales como meter y sacar un dato. En este módulo el usuario puede escoger entre crear un buffer para datos

Page 22: Sistema para la obtención de coordenadas en ambientes 3D

22

de 8 bits o un buffer para datos de tipo flotante; los buffers que se utilizan en este sistema se implementan con una cola circular es decir, se incrementan de uno en uno y luego de apuntar al último elemento de la cola vuelven a apuntar al primero; cuando se llena un buffer el módulo no permite que se sobrescriban los datos; cuando un buffer está vacío el módulo impide la lectura de ese buffer.

4.1.1.4 USART Es el módulo encargado de la transmisión y recepción de datos del sistema con otros sistemas conectados al él. Este módulo es el encargado de monitorear una USART hardware del microcontrolador, en caso de enviar un dato este módulo escribe en el buffer de la USART hardware, en caso de haber un dato en el buffer de la USART hardware este módulo se encarga de leerlo y guardarlo en un buffer software hasta que un módulo requiera el dato.

4.1.1.5 MOTOR Es el módulo encargado de controlar todo lo relacionado con los motores. Este módulo envía y recibe las señales del controlador del motor para su funcionamiento. En este módulo se controla la señal PLS por medio del módulo Puerto Paralelo, la cual está relacionada con el movimiento del motor y la señal DIR que es la que controla la dirección en que gira el eje del motor. El módulo calcula el ángulo que debe rotar el eje del motor y guarda la posición angular del motor. En caso de recibir una señal de alarma del controlador del motor, el módulo se encarga de liberar el eje del motor esto hace que el motor no pueda girar disminuyendo la probabilidad de que el motor sufra un daño en caso de continuar la falla. En caso de que un usuario ingrese un ángulo restringido esto debido a la configuración de la torreta, el módulo no toma en cuenta ese ángulo y envía un mensaje por medio de comunicación serial informándole al usuario del error presentado, el sistema queda a la espera hasta que el usuario ingrese un dato válido.

4.1.1.6 PUERTO PARALELO Es el módulo encargado de controlar los puertos de entrada-salida del microcontrolador. En este módulo se configura los puertos como entradas o salidas y el valor de cada bit en alto o en bajo. Por medio de este módulo se puede configurar en un estado alto o bajo cualquier pin de cualquier puerto del microcontrolador, siempre y cuando sea un pin de entrada-salida.

4.1.1.7 CONVERSIÓN Es el módulo encargado de convertir datos de tipo flotante a ASCII y viceversa. Este módulo está conectado con el módulo buffer para guardar los datos convertidos de ASCII a flotante en un buffer de tipo flotante. También está conectado con el módulo USART para que después de convertir un dato de tipo flotante a un dato de tipo ASCII se envíen a través de la USART del microcontrolador al usuario, ya que el procesamiento de los datos que hace el micro no se hace sobre caracteres ASCII.

4.1.1.8 COMUNICACIÓN Es el módulo encargado de direccionar los datos ingresados por el usuario a los módulos correspondientes. De acuerdo al primer dato enviado por el usuario este módulo gestiona el número de datos que el sistema requiere para llevar a cabo la función del estado elegido. Por ejemplo si el usuario entra al estado Pan el sistema le pide la velocidad del motor con movimiento en pan y el ángulo; pero si el usuario ingresa al estado barrido, el sistema le pide el ángulo inicial y final de los motores con movimiento en pan y en tilt respectivamente, y el número de puntos que desea el usuario tanto en el eje vertical como en el eje horizontal.

4.1.1.9 OBJETIVOS Es el módulo encargado de generar la grilla de las medidas; para la toma de medida en los puntos de la grilla el módulo sincroniza los módulos de telémetro y motores para que el telémetro tome la medida

Page 23: Sistema para la obtención de coordenadas en ambientes 3D

23

cuando los motores lleguen a uno de esos puntos, obtenida la medida del telémetro el módulo calcula las coordenadas cartesianas y esféricas respecto a la base del instrumento a partir de las matrices de transformación (ver sección 2.3 del marco del teórico), de acuerdo a los datos suministrados por el usuario y a las variables A, B y C Figura 21, que dependen de la construcción de la torreta. El módulo está conectado con el módulo conversión para que después de calcular las coordenadas éstas se envíen en formato ASCII al usuario.

4.1.1.10 ALARMA Es el módulo encargado de monitorear las alarmas de los demás módulos en caso de presentarse una falla en algún módulo; es el encargado de propagar la alarma a los demás módulos y comunicarle de manera serial al usuario que está ocurriendo una falla en el sistema. Por ejemplo si ocurre una falla en uno de los motores el sistema activa la alarma y desbloquea el eje del motor haciendo que este no pueda girar y a continuación apaga los diferentes dispositivos conectados al sistema. El usuario pude desactivar la alarma ingresando al estado de alarma (ver sección 4.1.3.4).

4.1.2 MÁQUINA DE ESTADOS

4.1.2.1 COMUNICACIÓN Esta máquina de estados es la encargada de direccionar los datos que llegan de la USART al módulo correspondiente y los datos de salida de un módulo a la USART del microcontrolador, De acuerdo con el dato ingresado del usuario el sistema entra a uno de los siete estados que lo conforman; hay que resaltar que cuando el sistema está en un estado el usuario no puede ingresar a ciertos estados mientras no se finalice la tarea que está realizando. El dato que el usuario debe enviar al sistema para ingresar a uno de los estados se muestra en la Tabla 6.

ESTADOS DATOS ESTADO_MOTOR_PAN 'P' ESTADO_MOTOR_TILT 'T'

ESTADO_USART 'U' ESTADO_ALARMA 'A'

ESTADO_TELEMETRO 'M' ESTADO_BARRIDO 'B' ESTADO_DISPARO 'D'

Tabla 6. Estados de la Máquina de Estados Comunicación

Page 24: Sistema para la obtención de coordenadas en ambientes 3D

24

Figura 17. Máquina de Estados comunicación

Page 25: Sistema para la obtención de coordenadas en ambientes 3D

25

4.1.3 ESTADOS DEL SISTEMA

4.1.3.1 ESTADO_PAN Estado encargado de controlar el motor con movimiento pan. Para acceder a este estado el usuario debe enviar una P cuando se encuentra en el menú principal. En este estado el usuario ingresa la velocidad y el ángulo del motor con movimiento pan. Cuando el usuario ingresa el dato 'Q' se sale de este estado hacia el menú principal. Todos los datos son ingresados en código ASCII.

4.1.3.2 ESTADO_TILT Estado encargado de controlar el motor con movimiento tilt. Para acceder a este estado el usuario debe enviar una T cuando se encuentra en el menú principal. En este estado el usuario ingresa la velocidad y el ángulo del motor con movimiento tilt. Cuando el usuario ingresa el dato 'Q' se sale de este estado hacia el menú principal. Todos los datos de entrada del módulo son de tipo ASCII.

4.1.3.3 ESTADO _USART Estado encargado de controlar la USART del microcontrolador conectada al terminal, el usuario le envía un dato que le regresa con el fin de comprobar que la USART del microcontrolador esté funcionando correctamente. Para acceder a este estado el usuario debe enviar una 'U' cuando se encuentra en el menú principal. En este estado el usuario ingresa datos que luego son transmitidos de regreso por comunicación serial a través de la USART. Cuando el usuario ingresa el dato 'Q' se sale de este estado hacia el menú principal. Todos los datos de entrada del módulo son de tipo ASCII.

4.1.3.4 ESTADO _ALARMA Estado encargado de comunicarle al sistema que hay un error en los dispositivos que lo conforman de tal manera que el sistema se encarga de propagar la alarma a los módulos. Una vez producida la alarma el sistema queda en un modo de espera mientras el usuario sale del estado indicándole que la falla se ha solucionado. Para acceder a este estado el usuario debe enviar una 'A' cuando se encuentra en el menú principal. Cuando el usuario ingresa el dato 'Q' el sistema se sale de este estado y reinicia los dispositivos que lo conforman.

4.1.3.5 ESTADO _TELEMETRO Estado encargado de enviar al telémetro los parámetros de funcionamiento de este, de esta manera el sistema funciona como un puente entre el usuario y el telémetro permitiendo una comunicación directa entre ellos. Para acceder a este estado el usuario debe enviar una M cuando se encuentra en el menú principal. En este estado el usuario ingresa los parámetros del telemetro tales como prenderlo, apagarlo, definir la frecuencia de medición, revisar la temperatura entre otros para la obtención de una medida; hay que aclarar que los cambios que realice el usuario en el telémetro no se verán a la hora de hacer un barrido o un disparo. Cuando el usuario ingresa el dato 'Q' se sale de este estado hacia el menú principal. Todos los datos son ingresados en código ASCII.

4.1.3.6 ESTADO _BARRIDO Estado encargado de generar la secuencia de posiciones de los motores de acuerdo al número de puntos ingresados por el usuario y de coordinar los movimientos de los motores y los parámetros del telémetro mientras se realiza un barrido. Cuando el sistema llega a un punto de los que generó, los motores se detienen y después de esto se envía al telémetro el parámetro para

Page 26: Sistema para la obtención de coordenadas en ambientes 3D

26

tomar una sola medida; repitiendo este procedimiento hasta llegar al último punto de la secuencia generada. Para acceder a este estado el usuario debe enviar una B cuando se encuentra en el menú principal. En este estado el usuario ingresa el ángulo inicial y el ángulo final del motor con movimiento pan, el ángulo inicial y el ángulo final del motor con movimiento tilt, y el número de puntos en horizontal y vertical. Cuando el usuario ingresa el dato 'Q' se sale de este estado hacia el menú principal.

4.1.3.7 ESTADO _DISPARO Estado encargado de coordinar los movimientos de los motores y los parámetros del telémetro; mientras se realiza un disparo. Este estado le indica a los motores hasta que ángulo deben girar, cuando se detienen el estado le indica al telémetro que tome una medida, con esa medida se calcula las coordenadas cartesianas y esféricas. Para acceder a este estado el usuario debe enviar una D cuando se encuentra en el menú principal. En este estado el usuario ingresa el ángulo del motor con movimiento pan, el ángulo del motor con movimiento tilt. Cuando el usuario ingresa el dato 'Q' se sale de este estado hacia el menú principal.

4.1.4 MENSAJE DE ERRORES

El código de los errores se muestra en la tabla 7. El sistema envía un mensaje al usuario informándole el error que detecto en el sistema. La primera letra corresponde al estado en que se encuentra el sistema. Esto garantiza que en caso de que el usuario ingrese un dato invalido, el módulo que registro el problema tenga la capacidad mediante comunicación serial de informarle al usuario la causa del error y esperar hasta que el usuario le envié un dato válido para así continuar con la rutina.

DATO RECIBIDO ERROR PA El ángulo ingresado para el motor pan es incorrecto PB El Buffer del motor pan está lleno PV La velocidad ingresada para el motor pan es incorrecta TA El ángulo ingresado para el motor tilt es incorrecto TB El Buffer del motor tilt está lleno TV La velocidad ingresada para el motor tilt es incorrecta

BPAI El ángulo inicial ingresado para el motor pan es incorrecto BPAF El ángulo final ingresado para el motor pan es incorrecto BPB El Buffer del motor pan está lleno BTAI El ángulo inicial ingresado para el motor tilt es incorrecto BTAF El ángulo final ingresado para el motor tilt es incorrecto BTB El Buffer del motor tilt está lleno BM El Buffer del telemetro está lleno

BCA El Buffer Conversión está lleno BN No se puede hacer el barrido

BOB El Buffer Objetivos está lleno DPA El ángulo ingresado para el motor pan es incorrecto DPB El Buffer del motor pan está lleno DTA El ángulo ingresado para el motor tilt es incorrecto DTB El Buffer del motor tilt está lleno

Tabla 7. Códigos de errores del sistema.

4.1.5 MATRICES DE TRANSFORMACIÓN DEL SISTEMA

Para poder referenciar las medidas al marco de referencia situado en la base de la torreta, se debe seguir unos pasos: primero la medida que toma el telémetro queda referenciada al punto cero del telémetro (ver sección 2.3), luego se hace una translación en el eje 푥 a una distancia C, después se tiene una rotación con un ángulo 휃 en el eje 푧 , posteriormente se hace una translación hacia la base de la torrera, por último hay una rotación con un ángulo ∅ en el eje 푦 .

Page 27: Sistema para la obtención de coordenadas en ambientes 3D

27

Figura 18. Marcos de coordenadas del sistema.

∅=Ángulo del motor correspondiente al movimiento pan (Motor 1)

θ =Ángulo del motor correspondiente al movimiento pan (Motor 2)

A=Distancia entre el marco de coordenada del motor tilt y el marco de coordenada 4.

B=Distancia entre el marco de coordenada del motor tilt y el marco de coordenada 2.

C=Distancia entre el marco de coordenada del telémetro y el marco de coordenada 2.

D=Distancia entre el marco de coordenada del telémetro y el punto a medir

De acuerdo a Ecuación 2 la matriz de transformación homogénea se puede obtener información acerca de la rotación, translación, perspectiva y el factor de escala.

Page 28: Sistema para la obtención de coordenadas en ambientes 3D

28

Para el sistema desarrollado la matriz de transformación homogénea se muestra en la Ecuación 3.

퐻 = 푅 ,∅ ∗ 푇 , ∗ 푇 , ∗ 푅 , ∗ 푇 , ∗ 푇 ,

퐻 =

푐표푠∅ 0 − 푠푖푛∅ 0 0 0 0 0 −푠푖푛∅ 0 푐표푠∅ 0 0 0 0 1

1 0 0 00 1 0 퐴0 0 1 00 0 0 1

1 0 0 퐵0 1 0 00 0 1 00 0 0 1

푐표푠휃 − 푠푖푛휃 0 0푠푖푛휃 푐표푠휃 0 0

0 0 1 0 0 0 0 1

1 0 0 퐶 + 퐷0 1 0 00 0 1 00 0 0 1

퐻 =

푐표푠∅푐표푠휃 − 푠푖푛휃푐표푠∅ − 푠푖푛∅ (퐶 + 퐷)푐표푠∅푐표푠휃 푠푖푛휃 푐표푠휃 0 퐴+ 퐵 + (퐶 + 퐷)푠푖푛휃−푠푖푛∅푐표푠휃 푠푖푛휃푠푖푛∅ 푐표푠∅ − (퐶 + 퐷)푠푖푛∅푐표푠휃 0 0 0 1

Ecuación 3. Transformación Homogénea del Sistema

De la matriz 푑 de translación nos da información de las coordenadas rectangulares del punto medido con respecto a la base del instrumento, y la matriz 푅 de rotación nos da información de las coordenadas esféricas del punto medido con respecto a la base del instrumento. [4].

De lo anterior la coordenada cartesiana x referenciada a la base del instrumento es igual a la Ecuación 4.

푥 = (퐶 +퐷)푐표푠∅푐표푠휃 Ecuación 4. Coordenada Cartesiana x

La coordenada cartesiana y referenciada a la base del instrumento es igual a la Ecuación 5.

푦 = 퐴 + 퐵 + (퐶 + 퐷)푠푖푛휃 Ecuación 5. Coordenada Cartesiana y

La coordenada cartesiana z referenciada a la base del instrumento es igual a la Ecuación 6.

푧 = −(퐶 + 퐷)푠푖푛∅푠푖푛휃 Ecuación 6. Coordenada Cartesiana z

La coordenada esférica r referenciada a la base del instrumento es igual a la Ecuación 7.

푟 = 푥 + 푦 + 푧 Ecuación 7. Coordenada Esférica r

La coordenada esférica ∅ referenciada a la base del instrumento es igual a la Ecuación 8.

휃 ∙ = 푐표푠푥푟

Ecuación 8. Coordenada Esférica θ

La coordenada esférica 휃 referenciada a la base del instrumento es igual a la Ecuación 9.

휃 ∙ = 푡푎푛푧푥

Ecuación 9. Coordenada Esférica ∅

A partir de la matriz de transformación de la Ecuación 3. Se obtiene las coordenadas cartesianas y las coordenadas esféricas referidas a la base del instrumento. Para la torreta utilizada la

Page 29: Sistema para la obtención de coordenadas en ambientes 3D

29

variable a igual A es 0.16 m, la variable B coordenada del motor tilt y el marco de coordenada del telémetro). De lo anterior Ecuación 10 y la Ecuación 11 representan las coordenadas cartesianas y esféricas del sistema con respecto a la base del instrumento respectivamente.

푥 = (0.115 + 퐷)푐표푠∅푐표푠휃 푦 = 0.26 + 0.1 + (0.115 +퐷)푠푖푛휃

푧 = −(0.115 + 퐷)푠푖푛∅푠푖푛휃 Ecuación 10. Coordenadas Cartesianas del Sistema

푟 = 푥 + 푦 + 푧

휃 ∙ = 푐표푠푥푟

휃 ∙ = 푡푎푛푧푥

Ecuación 11. Coordenadas Esféricas del Sistema

5 HARDWARE

5.1 DESCRIPCIÓN DEL HARDWARE DEL SISTEMA El sistema es implementado en un microcontrolador Atmega 324P , funciona con un voltaje entre 1.8V y 5.5V, incluye dos USART hardware, 32 puertos programables de entrada/salida.

La comunicación se logra por medio del integrado MAX 232. El sistema se alimenta con 25 V por lo cual se utiliza un regulador de voltaje de 5V para alimentar el microcontrolador. El puerto B del microcontrolador se configuró para las señales del motor con movimiento en pan, de tal forma que la señal PLS se asigna al Bit 5, la señal Dir al Bit 4, la señal AWO al Bit 3, y la señal alarma al Bit 2. El puerto A del microcontrolador se configuró para las señales del motor con movimiento en Tilt, de tal forma que la señal PLS se asigna al Bit 5, la señal Dir al Bit 4, la señal AWO al Bit 3, y la señal alarma al Bit 2. El hardware incluye siete LEDS conectados al puerto C del microcontrolador, de acuerdo al estado en que se encuentra el usuario, el LED correspondiente a ese estado se prende. En la tabla 8 se muestra la configuración de los LEDS con respectos a los estados.

BIT DEL PUERTO C ESTADOS BIT 0 ESTADO_MOTOR_PAN BIT 1 ESTADO_MOTOR_TILT BIT 2 ESTADO_USART BIT 3 ESTADO_ALARMA BIT 4 ESTADO_TELEMETRO BIT 5 ESTADO_BARRIDO BIT 6 ESTADO_DISPARO

Tabla 8. Bit de cada Estado

Para la comunicación entre el microcontrolador tanto con el terminal como con el telémetro se utiliza el protocolo de comunicación RS-232 que es una comunicación Half-duplex.

Page 30: Sistema para la obtención de coordenadas en ambientes 3D

30

En la Figura 19 se muestra el esquemático del sistema.

Figura 19.Esquemático del Sistema

5.2 FRECUENCIA DEL MICROCONTROLADOR Para configurar la frecuencia con que va a trabajar el microcontrolador Atmega 324p [6] se utiliza Ecuación 12.

푓 =푓

2 ∗ 푁 ∗ (1 + 푂퐶푅푛푥)

Ecuación 12. Cálculo de frecuencia

Siendo 푓 = La frecuencia del cristal 푁 = La prescala del microcontrolador 푂퐶푅푛푥 = El registro del conteo

La frecuencia se estableció con un cristal de 16 푀퐻푧 , una preescala de 8 y el registro de conteo en 249, de lo anterior la frecuencia con que trabaja el sistema se muestra en Ecuación 13.

푓 =16푀퐻푧

2 ∗ 8 ∗ (1 + 249) = 4Khz

Ecuación 13. Frecuencia del sistema

Page 31: Sistema para la obtención de coordenadas en ambientes 3D

31

En lo referente a tiempo el sistema trabaja con interrupciones esto garantiza que la frecuencia calculada del sistema calculada no se vea afectada con el aumento de rutinas en el sistema.

5.3 FRECUENCIA DE LA USART Se configura la USART1 del microcontrolador Atmega 324P para las comunicaciones con el terminal con una velocidad de comunicación de 9600 baudios; la USART2 del microcontrolador Atmega 324P se configura para las comunicaciones con el telémetro con una velocidad de comunicación de 9600 baudios.

La ecuación para calcular la velocidad de transmisión en una USART en el modo asincronismo normal del microcontrolador Atmega 324P se muestra en Ecuación 14.

퐵퐴푈퐷=( )

Ecuación 14. Velocidad de transmisión

La ecuación para calcular el valor del registro UBRRn sabiendo la velocidad de comunicación en una USART en el modo de asincronismo normal del microcontrolador Atmega 324P se calcula en Ecuación 15.

푈퐵푅푅 = − 1

Ecuación 15. Registro UBRRn

푓 = La frecuencia del sistema 퐵퐴푈퐷 = 9600 Baud rate

De lo anterior el valor del registro UBRRn se muestra en Ecuación 16.

푈퐵푅푅 =16 푀퐻푧

16 ∗ (9600)− 1 = 103

Ecuación 16. Valor registro UBRRn del sistema

A continuación se muestra la conexión entre el microcontrolador y el telémetro con el circuito integrado MAX 232 [8].

Page 32: Sistema para la obtención de coordenadas en ambientes 3D

32

Figura 20. Conexión MAX232

6 ANÁLISIS DE RESULTADOS Para las pruebas realizadas la variable A es 0.26 m, B es 0.10 m, C es 0.115 m y D es la medida entregada por el telémetro en la Figura 21 se muestra los parámetros A, B, C y D. Los ángulos permitidos para las pruebas son de 350 grados para el motor con movimiento en pan y 90 grados para el motor con movimiento en tilt, en las Figura 22 y Figura 23 se observa los ángulo ∅ y 휃 respectivamente. La corriente entregada por el controlador de cada motor es de 0.28 A, con una resolución de ángulo de 0.1. La velocidad angular de los motores cuando hace un barrido o un disparo es de 0.019 radianes/s.

Page 33: Sistema para la obtención de coordenadas en ambientes 3D

33

Figura 21. Parámetro A, B, C, D

Figura 22. Ángulo ∅

Page 34: Sistema para la obtención de coordenadas en ambientes 3D

34

Figura 23. Ángulo 휽

6.1 Resultados Estado_Pan Las pruebas realizadas para este estado se basaron en mover el motor con movimiento en pan cierto ángulo con una velocidad variable para cada prueba, esta velocidad corresponde al número de flancos que se quiere para hacer la señal PLS, calculando el tiempo en que llega al ángulo indicado. En la Figura 24 se muestra las instrucciones ingresadas y en la Tabla 9 se muestra el resultado de las pruebas realizadas.

Figura 24. Instrucciones ingresadas pruebas Estado Pan

Page 35: Sistema para la obtención de coordenadas en ambientes 3D

35

El sistema atiende al módulo motor a una frecuencia de 3.431 KHz, el dato de velocidad en pan que ingresa el usuario, es el número de flancos de la frecuencia que atiende el sistema al módulo que genera la señal PLS, la Ecuación 17 muestra como calcular la frecuencia de la señal PLS.

푓푟푒푐푢푒푛푐푖푎 푑푒 푙푎 푠푒ñ푎푙 푃퐿푆 푚표푡표푟 푃푎푛 =퐹푟푒푐푢푒푛푐푖푎 푑푒 푎푡푒푛푐푖ó푛 푑푒푙 푠푖푠푡푒푚푎

푑푎푡표 푣푒푙표푐푖푑푎푑 푝푎푛 ∗ 2

Ecuación 17. Frecuencia señal PLS motor pan

Ángulo Inicial-Ángulo Final

Velocidad Tiempo Frecuencia medida señal

PLS

Frecuencia Calculada señal

PLS 0-10 50 1:26 minutos 35.377 Hz 34.3 Hz 10-0 50 1.27 minutos 35.377 Hz 34.3 Hz 0-10 25 0:45 minutos 69.11 Hz 68.6 Hz 10-0 25 0:43 minutos 69.11 Hz 68.6 Hz 0-10 10 0:18. minutos 171.380 Hz 171.5 Hz 10-0 10 0:17.9 minutos 171.380 Hz 171.5 Hz 0-10 1 0:1.4 minutos 1.49 KHz 1.715 KHz 10-0 1 0:1.9 minutos 1.49 KHz 1.715 KHz 0-50 50 7:41 minutos 35.44 Hz 34.3 Hz 50-0 50 7:39 minutos 35.44 Hz 34.3 Hz 0-50 25 3:57 minutos 69.12 Hz 68.6 Hz 50-0 25 3:58 minutos 69.11 Hz 68.6 Hz 0-50 10 1:32 minutos 171.350 Hz 171.5 Hz 50-0 10 1:34 minutos 171.351 Hz 171.5 Hz 0-50 1 0:9.2 minutos 1.49 KHz 1.715 KHz 50-0 1 0:9.4 minutos 1.49 KHz 1.715 KHz 0-90 50 14:25 minutos 35.43 Hz 34.3 Hz 90-0 50 14:24 minutos 35.44 Hz 34.3 Hz 0-90 25 7:12 minutos 69.10 Hz 68.6 Hz 90-0 25 7:10 minutos 69.11 Hz 68.6 Hz 0-90 10 2:57 minutos 171.349 Hz 171.5 Hz 90-0 10 2:59 minutos 171.351 Hz 171.5 Hz 0-90 1 0:17.3 minutos 1.48 KHz 1.715 KHz 90-0 1 0:17.2 minutos 1.48 KHz 1.715 KHz

Tabla 9. Pruebas Estado Pan

La segunda prueba consistió en medir y calcular con diferente número de flancos; la frecuencia de la señal PLS correspondiente al motor con movimiento en pan en la Tabla 10 se muestra el promedio de los resultados de las pruebas realizadas.

Número de Flancos Promedio frecuencia medida señal PLS

Promedio frecuencia calculada señal PLS

1 1.49 KHz 1.715 KHz 2 800.9 Hz 857.5 Hz 3 546.7 Hz 571.66 Hz 4 417.7 Hz 428.75 Hz 5 334.6 Hz 343 Hz 6 280.9 Hz 285.83 Hz 7 246.6 Hz 245 Hz 8 215.1 Hz 214.37 Hz 9 190.9 Hz 190.55 Hz

10 171.38 Hz 171.5 Hz 15 114.5 Hz 114.33 Hz 25 69.11 Hz 68.6 Hz 50 35.37 Hz 34.3 Hz

Tabla 10. Estado Pan Frecuencia

A partir de los resultados de la Tabla 10 se elaboran las gráficas Frecuencia Vs el número de flancos y Frecuencia Medida Vs Frecuencia Calculada Figura 25 y Figura 26 respectivamente. Las gráficas rojas representan los resultados calculados y las gráficas azules representan los resultados teóricos.

Page 36: Sistema para la obtención de coordenadas en ambientes 3D

36

Figura 25. Estado Pan Frecuencia

Figura 26. Frecuencia Media Pan Vs Frecuencia calculada Pan

Las pruebas indicaron que la frecuencia medida de la señal PLS del motor pan es similar a la frecuencia calculada, a medida que la el dato de velocidad pan va disminuyendo la frecuencia aumenta pero también lo hace el margen de diferencia entre la frecuencia medida y la calculada; esto sucede ya que el sistema no es lo suficientemente rápido para aumentar el conteo de los flancos de la frecuencia del sistema. Como se ve en la Tabla 9 el sistema tiene la capacidad de

Page 37: Sistema para la obtención de coordenadas en ambientes 3D

37

volver a su ángulo inicial en pan sin importar la velocidad con que lo haga ni la posición angular del motor con movimiento en pan.

6.2 Resultados Estado_Tilt Las pruebas realizadas para este estado se basaron en mover el motor con movimiento en tilt a cierto ángulo con una velocidad variable, esta velocidad corresponde al número de flancos que se quiere para generar la señal PLS, para cada prueba, calculando el tiempo en que llega al ángulo indicado. En la Figura 27 se muestra las instrucciones ingresadas y en la Tabla 11 se muestra el resultado de las pruebas realizadas.

Figura 27. Instrucciones ingresadas pruebas Estado Tilt

El sistema atiende al módulo motor a una frecuencia de 3.431 KHz, el dato de velocidad en tilt que ingresa el usuario, es el número de flancos de la frecuencia que atiende el sistema al módulo que genera la señal PLS, la Ecuación 18 muestra como calcular la frecuencia de la señal PLS.

푓푟푒푐푢푒푛푐푖푎 푑푒 푙푎 푠푒ñ푎푙 푃퐿푆 푚표푡표푟 푇푖푙푡 =퐹푟푒푐푢푒푛푐푖푎 푑푒 푎푡푒푛푐푖ó푛 푑푒푙 푠푖푠푡푒푚푎

푑푎푡표 푣푒푙표푐푖푑푎푑 푡푖푙푡 ∗ 2

Ecuación 18. Frecuencia señal PLS motor tilt

Ángulo Inicial-Ángulo Final

Velocidad Tiempo Frecuencia medida señal

PLS

Frecuencia Calculada señal

PLS 0-10 50 1:25 minutos 35.257 Hz 34.3 Hz 10-0 50 1.26 minutos 35.256 Hz 34.3 Hz 0-10 25 0:44 minutos 69.05 Hz 68.6 Hz 10-0 25 0:45 minutos 69.07 Hz 68.6 Hz 0-10 10 0:17 minutos 171.400 Hz 171.5 Hz 10-0 10 0:17 minutos 171.400 Hz 171.5 Hz 0-10 1 0:1.8 minutos 1.48 KHz 1.715 KHz 10-0 1 0:1.9 minutos 1.48 KHz 1.715 KHz 0-30 50 4:17minutos 35.42 Hz 34.3 Hz 30-0 50 4:15minutos 35.43 Hz 34.3 Hz 0-30 25 2:15minutos 69.10 Hz 68.6 Hz 30-0 25 2:16minutos 69.11 Hz 68.6 Hz 0-30 10 0: 57 minutos 171.350 Hz 171.5 Hz 30-0 10 0:57 minutos 171.351 Hz 171.5 Hz 0-30 1 0:5.8 minutos 1.48 KHz 1.715 KHz

Page 38: Sistema para la obtención de coordenadas en ambientes 3D

38

30-0 1 0:5.9 minutos 1.49 KHz 1.715 KHz 0-45 50 1:25 minutos 35.375 Hz 34.3 Hz 45-0 50 1.26 minutos 35.377 Hz 34.3 Hz 0-45 25 0:44 minutos 69.11 Hz 68.6 Hz 45-0 25 0:45 minutos 69.09 Hz 68.6 Hz 0-45 10 17:3. minutos 171.380 Hz 171.5 Hz 45-0 10 17:4 minutos 171.380 Hz 171.5 Hz 0-45 1 0:17 minutos 1.49 KHz 1.715 KHz 45-0 1 0:17 minutos 1.49 KHz 1.715 KHz 0-90 50 12:58 minutos 35.44 Hz 34.3 Hz 90-0 50 12:57 minutos 35.44 Hz 34.3 Hz 0-90 25 6:19 minutos 69.12 Hz 68.6 Hz 90-0 25 6:21 minutos 69.11 Hz 68.6 Hz 0-90 10 3:8 minutos 171.350 Hz 171.5 Hz 90-0 10 3:9 minutos 171.351 Hz 171.5 Hz 0-90 1 0:18.7 minutos 1.49 KHz 1.715 KHz 90-0 1 0:18.5 minutos 1.49 KHz 1.715 KHz

Tabla 11. Pruebas Estado Tilt

La segunda prueba consistió en medir y calcular con diferente número de flancos la frecuencia de la señal PLS correspondiente del motor con movimiento en tilt cambiando el número de flancos; en la Tabla 11 se muestra el promedio de los resultados de las pruebas realizadas.

Número de Flancos Promedio frecuencia medida señal PLS

Promedio frecuencia calculada señal PLS

1 1.49 KHz 1.715 KHz 2 80079 Hz 857.5 Hz 3 546.68 Hz 571.66 Hz 4 417.75 Hz 428.75 Hz 5 334.59 Hz 343 Hz 6 280.9 Hz 285.83 Hz 7 246.59 Hz 245 Hz 8 215.11 Hz 214.37 Hz 9 190.89 Hz 190.55 Hz

10 171.36 Hz 171.5 Hz 15 114.5 Hz 114.33 Hz 25 69.10 Hz 68.6 Hz 50 35.38 Hz 34.3 Hz

Tabla 12. Estado Tilt Frecuencia

A partir de los resultados de la Tabla 12 se elaboran las gráficas Frecuencia Vs el número de flancos y Frecuencia Medida Vs Frecuencia Calculada Figura 28 y Figura 29 respectivamente. Las gráficas rojas representan los resultados calculados y las gráficas azules representan los resultados teóricos;

Page 39: Sistema para la obtención de coordenadas en ambientes 3D

39

Figura 28. Estado Tilt Frecuencia

Figura 29. Frecuencia Media Tilt Vs Frecuencia calculada Tilt

Las pruebas indicaron que la frecuencia medida de la señal PLS del motor tilt es similar a la frecuencia calculada, a medida que la el dato de velocidad tilt va disminuyendo la frecuencia

Page 40: Sistema para la obtención de coordenadas en ambientes 3D

40

aumenta pero también lo hace el margen de diferencia entre la frecuencia medida y la calculada; esto sucede ya que el sistema no es lo suficientemente rápido para aumentar el conteo de los flancos de la frecuencia del sistema. Como se ve en la Tabla 10 el sistema tiene la capacidad de volver a su ángulo inicial en tilt sin importar la velocidad con que lo haga ni la posición angular del motor con movimiento en tilt.

6.3 Resultados Estado_USART Las pruebas realizadas para este estado se basan en enviar un dato desde el terminal al microcontrolador y que este transmita el mismo dato al terminal cada prueba se hace a diferentes frecuencias; el módulo USART revisa que haya un dato en la USART hardware del microcontrolador a una frecuencia de 3431KHz. En la Figura 30 se muestra las instrucciones ingresadas y la frecuencia con que el usuario envía los datos. En la Tabla 13 se muestra las pruebas realizadas.

Figura 30. Instrucciones ingresadas prueba USART

FRECUENCIA DE ENVÍO

NÚMERO DE DATOS ENVIADOS

NÚMERO DE DATOS RECIBIDOS

Porcentaje Datos perdidos

1 Hz 3587 3586 0% 1.5 Hz 4855 4854 0% 2 Hz 1131 1130 0%

2.5 Hz 6527 6528 0% 3.33Hz 1999 1998 0%

4 Hz 2401 2400 0% 5 Hz 3001 3000 0%

6.66 Hz 3997 3996 0% 10 Hz 6001 6000 0% 20 Hz 5553 5552 0%

100 Hz 5553 5552 0% Tabla 13. Pruebas Usart

Las pruebas demostraron que el número de datos que se envió es el mismo que se recibió, es decir durante la prueba no se perdieron datos. Así se verifica que el módulo USART es lo suficientemente rápido para leer y escribir en la USART del microcontrolador, por lo tanto el módulo USART funciona correctamente. Como el sistema debe enviar una U para ingresar al

Page 41: Sistema para la obtención de coordenadas en ambientes 3D

41

Estado_USART ese es el dato demás que aparece en los datos enviados de la Tabla 13.Tabla 13. Pruebas Usart

6.4 Resultados Estado_Telémetro En esta prueba el telémetro en todo momento está apuntando en la misma dirección a un objetivo estático, se envía el parámetro DM para obtener una sola medida. El telémetro por cada medida retorna 9 datos en ASCII siete que representa la medida y los datos 0XD y 0XA que representan un cambio de línea. Con esta prueba se analiza que los datos que entrega el telémetro no varíen más allá de la resolución del telémetro, que el sistema tenga la capacidad de enviar y recibir datos continuamente a distintas velocidades sin que esto afecte el orden de los datos transmitidos y recibidos. En la Figura 31 se muestra las instrucciones ingresadas y la frecuencia con que el usuario envía los datos. En la Tabla 14 se muestra las pruebas realizadas con el sistema y en la Tabla 15 se muestra las pruebas realizadas sin el sistema.

Figura 31. Instrucciones ingresadas prueba telémetro

TIEMPO DE LA PRUEBA

FRECUENCIA DE ENVÍO

NÚMERO DE DATOS

ENVIADOS

MEDIDAS RECIBIDAS

Medida 001.324

Medida 0.01.325

PROMEDIO DE LAS MEDIDAS

10 minutos 1Hz 1845 615 585 30 001.324 10 minutos 1.33 Hz 2404 801 764 37 001.324 10 minutos 2Hz 3475 1158 1120 38 001.324 10 minutos 3Hz 5548 1849 1815 34 001.324

Tabla 14. Prueba telémetro con el sistema

TIEMPO DE LA PRUEBA

FRECUENCIA DE ENVÍO

NÚMERO DE DATOS

ENVIADOS

MEDIDAS RECIBIDAS

Medida 001.324

Medida 0.01.325

PROMEDIO DE LAS MEDIDAS

10 minutos 1Hz 1840 613 581 32 001.324 10 minutos 1.33 Hz 2391 797 1597 37 001.324 10 minutos 2Hz 3470 1156 1118 38 001.324 10 minutos 3Hz 5539 1809 1815 37 001.324

Tabla 15. Prueba telémetro sin el sistema

Las pruebas demostraron que el sistema es capaz de funcionar como un puente para comunicar al usuario con el telémetro, ya que los datos enviados por el telémetro fueron transmitidos de manera correcta al terminal y el terminal envió de manera correcta el parámetro DM al

Page 42: Sistema para la obtención de coordenadas en ambientes 3D

42

telémetro. Cuando la frecuencia de envió es mayor a 3Hz tanto para la prueba con el sistema como para la prueba sin el sistema se nota una pérdida de datos.

6.5 Resultados Estado_Disparo En esta prueba se orienta el telémetro a diferentes ángulos para obtener las coordenadas cartesianas y esféricas con respecto a la base del dispositivo del punto medido por el telémetro láser, cuando el sistema llega a la posición deseada se mide varias veces el mismo punto para observar si las coordenadas cartesianas y esféricas varían; se hace la comparación entre las coordenadas calculadas por el sistema y las coordenadas medidas manualmente utilizando la Ecuación 11.

Figura 32. Instrucciones ingresadas prueba disparo

En esta prueba se orienta el telémetro 0 grados para el motor con movimiento pan y 90 grados para el motor con movimiento en tilt. En la Tabla 16 se muestran las coordenadas cartesianas y esféricas del punto medido con respecto a la base de la torreta

COORDENADA X Y Z r ∅ 휃 1 0.00 1.590 0.00 1.591 0.00 90.018 2 0.00 1.590 0.00 1.590 0.00 90.000 3 0.00 1.589 0.00 1.589 0.00 90.000 4 0.00 1.590 0.00 1.590 0.00 90.000 5 0.00 1.590 0.00 1.590 0.00 90.000

Tabla 16. Prueba 1 disparo sistema

Las coordenadas cartesianas se midieron manualmente y las coordenadas esféricas se calcularon a partir de la Ecuación 11. Los resultados se muestran en la Tabla 17.

COORDENADA X Y Z r ∅ 휃 1 0.00 1.58 0.00 1.58 0 90

Tabla 17. Prueba 1 disparo usuario

En la Tabla 18 se muestra los resultados de obtener las medidas en una orientación de 35 grados para el motor con movimiento pan y 10 grados para el motor con movimiento en tilt.

COORDENADA X Y Z r ∅ 휃

Page 43: Sistema para la obtención de coordenadas en ambientes 3D

43

1 1.444 0.671 -1.011 1.887 -35.000 40.040 2 1.444 0.671 -1.011 1.887 -35.000 40.039 3 1.444 0.671 -1.011 1.887 -35.000 40.039 4 1.444 0.671 -1.011 1.887 -35.000 40.039 5 1.444 0.671 -10.11 1.887 -35.000 40.039

Tabla 18. Prueba 2 disparo sistema

Las coordenadas cartesianas se midieron manualmente y las coordenadas esféricas se calcularon a partir de la Ecuación 11. Los resultados se muestran en la Tabla 19.

COORDENADA X Y Z r ∅ 휃 1 1.443 0.671 -1.010 1.884 -34.989 40.010

Tabla 19. Prueba 2 disparo usuario

En la Tabla 20 se muestra los resultados de obtener las medidas en una orientación de 20 grados para el motor con movimiento pan y 40 grados para el motor con movimiento en tilt.

COORDENADA X Y Z r ∅ 휃 1 1.061 1.308 -0.386 1.728 -20.000 52.102 2 1.061 1.308 -0.386 1.728 -20.000 52.102 3 1.061 1.308 -0.386 1.728 -20.000 52.102 4 1.061 1.308 -0.386 1.728 -20.000 52.102 5 1.061 1.308 -0.386 1.728 -20.000 52.102

Tabla 20. Prueba 3 disparo sistema

Las coordenadas cartesianas se midieron manualmente y las coordenadas esféricas se calcularon a partir de la Ecuación 11. Los resultados se muestran en la Tabla 21.

COORDENADA X Y Z r ∅ 휃 1 1.062 1.309 -0.386 1.729 -19.974 52.104

Tabla 21. Prueba 3 disparo usuario

En la Tabla 22 se muestra los resultados de obtener las medidas en una orientación de 220 grados para el motor con movimiento pan y 10 grados para el motor con movimiento en tilt.

COORDENADA X Y Z r ∅ 휃 1 -5.968 1.733 5.000 7.977 140.044 138.437 2 -5.968 1.733 5.000 7.977 140.044 138.437 3 -5.968 1.733 5.000 7.977 140.044 138.437 4 -5.968 1.733 5.000 7.977 140.044 138.437 5 -5.968 1.733 5.000 7.977 140.044 138.437

Tabla 22. Prueba 4 disparo sistema

Las coordenadas cartesianas se midieron manualmente y las coordenadas esféricas se calcularon a partir de la Ecuación 11. Los resultados se muestran en la Tabla 23

COORDENADA X Y Z r ∅ 휃 1 -5.965 1.730 4.998 7.972 140.043 138.438

Tabla 23. Prueba 4 disparo usuario

Las pruebas demostraron que las coordenadas no varían significativamente cuando se quiere medir un punto varias veces, las pequeñas variaciones suceden por varios motivos: primero la resolución que maneja el telémetro que en este caso es de 1mm, y segundo el error de las operaciones matemáticas en el microcontrolador en el momento de calcular las coordenadas ya que solo se tienen en cuenta 3 valores decimales este error es de 1mm y por último el error que existe en el juego de engranajes que componen la torreta.

Page 44: Sistema para la obtención de coordenadas en ambientes 3D

44

6.6 Resultados Estado_Barrido En esta prueba se hacen varios barridos para obtener las coordenadas cartesianas y esféricas con respecto a la base del dispositivo de los puntos medidos por el láser; se hace la comparación entre las coordenadas calculadas por el sistema y las coordenadas medidas manualmente y utilizando la Ecuación 11. En estas pruebas todos los barridos se conformaron de cuatro puntos

Figura 33. Instrucciones ingresadas prueba barrido

En la Tabla 24 se muestra los resultados de obtener las medidas con un barrido con ángulo inicial del motor pan de 0 grados, ángulo final del motor pan de 45 grados, ángulo inicial del motor tilt de 0 grados y ángulo final del motor tilt de 45 grados.

COORDENADA X Y Z r ∅ 휃 (0,0) 1.152 0.359 0.00 1.207 -0.003 17.339

(45,0) 0.815 0.360 -0.815 1.207 -44.995 47.545 (45,45) 0.576 1.175 -0.576 1.430 -44.989 66.224 (45,0) 0.8150 1.175 0.00 1.430 -0.003 55.247

Tabla 24. Prueba 1 Barrido Sistema

Las coordenadas cartesianas se midieron manualmente y las coordenadas esféricas se calcularon a partir de la Ecuación 11. Los resultados se muestran en la Tabla 25.

COORDENADA X Y Z r ∅ 휃 (0,0) 1.150 0.357 0.00 1.204 0.00 17.363

(45,0) 0.817 0.358 -0.814 1.207 -44.894 47.399 (45,45) 0.574 1.176 -0.577 1.430 -45.149 66.334 (45,0) 0.815 1.174 0.00 1.429 0.00 55.226

Tabla 25. Prueba 1 Barrido usuario

En la Tabla 26 se muestra los resultados de obtener las medidas con un barrido con ángulo inicial del motor pan de 30 grados, ángulo final del motor pan de 60 grados, ángulo inicial del motor tilt de 10 grados y ángulo final del motor tilt de 20 grados.

COORDENADA X Y Z r ∅ 휃 (30,10) 0.983 0.560 -0.567 1.266 -30.005 39.052 (60,10) 0.567 0.56 -0.983 1.266 -59.996 63.358 (60,20) 0.5410 0.7540 -0.938 1.320 -59.989 65.765 (30,20) 0.938 0.754 -0.541 1.320 -30.005 44.708

Page 45: Sistema para la obtención de coordenadas en ambientes 3D

45

Tabla 26. Prueba 2 Barrido Sistema

Las coordenadas cartesianas se midieron manualmente y las coordenadas esféricas se calcularon a partir de la Ecuación 11. Los resultados se muestran en la Tabla 27.

COORDENADA X Y Z r ∅ 휃 (30,10) 0.981 0.558 -0.567 1.263 -30.002 39.038 (60,10) 0.567 0.561 -0.982 1.265 -60 63.337 (60,20) 0.541 0.754 -0.938 1.319 -60.025 65.785 (30,20) 0.936 0.754 -0.540 1.317 -29.981 44.707

Tabla 27. Prueba 2 Barrido Usuario

En la Tabla 28 se muestra los resultados de obtener las medidas con un barrido con ángulo inicial del motor pan de 45 grados, ángulo final del motor pan de 90 grados, ángulo inicial del motor tilt de 45 grados y ángulo final del motor tilt de 90 grados.

COORDENADA X Y Z r ∅ 휃 (45,45) 0.587 1.190 -0.587 1.452 -45.002 66.134 (90,45) 0.00 1.190 -0.83 1.452 -90.0.27 90.000 (90,90) 0.00 1.534 0.00 1.534 -90.020 90.000 (45,90) 0.00 1.534 0.00 1.534 0.00 90.014

Tabla 28. Prueba 3 Barrido Sistema

Las coordenadas cartesianas se midieron manualmente y las coordenadas esféricas se calcularon a partir de la Ecuación 11. Los resultados se muestran en la Tabla 29.

COORDENADA X Y Z r ∅ 휃 (45,45) 0.586 1.191 -0.587 1.451 -45.048 66.180 (90,45) 0.00 1.189 -0.82 1.444 -90 90 (90,90) 0.00 1.534 0.00 1.534 -90.020 90.000 (45,90) 0.00 1.533 0.00 1.533 0 90.000

Tabla 29. Prueba 3 Barrido Usuario

Las pruebas del Estado_Barrido demostraron que las coordenadas no varían significativamente cuando se quiere medir un punto ya sea con el sistema o manualmente, las pequeñas variaciones suceden por varios motivos: primero la resolución que maneja el telémetro que en este caso es de 1mm, y segundo el error de las operaciones matemáticas en el microcontrolador en el momento de calcular las coordenadas ya que solo se tienen en cuenta 3 valores decimales este error es de 1mm y por último el error que existe en el juego de engranajes que componen la torreta.

6.7 Cambios Durante la realización de las pruebas el microcontrolador Atmega 324P tuvo una falla en la USART hardware lo que provocó que los datos suministrados por el usuario fueran guardados erróneamente en la USART hardware del microcontrolador, por tal motivo se reemplazó la tarjeta construida por una tarjeta arduino mega con un microcontrolador Atmega 1280, el cual cumple con las especificaciones (ver sección 3.1), se elaboró un circuito aparte para la comunicación serial con un circuito integrado MAX 232. En el código C, el único cambio realizado fue el cambio de la USART0 a la USART2. Los resultados de las pruebas realizadas con ambos microcontroladores fueron iguales; esto demuestra la “robustez” del sistema en cuanto a que es compatible con una variedad de microcontroladores Atmel.

Page 46: Sistema para la obtención de coordenadas en ambientes 3D

46

7 CONCLUSIONES Se diseñó e implementó un sistema (código c) lo suficientemente robusto para ser fácilmente implementado en algunas familias de microcontroladores de marca Atmel sin que esto afecte las funciones de los módulos que lo conforman: esto resulta muy importante para el grupo de investigación SIRP porque ha escogido los micro controladores Atmel como la herramienta hardware para utilizar en sus desarrollos, con lo cual podrá integrar en la construcción de futuros robots, varios de los desarrollos que por el momento son completamente independientes. Dado que la arquitectura del sistema está diseñada de manera modular, gracias a esto resulta más fácil el diagnóstico de errores ya que cada módulo es independiente y por lo tanto se pueden realizar pruebas aisladas. El proyecto tiene la capacidad para que el usuario adicione más módulos al sistema y de conectarse con una variedad de periféricos para cumplir una aplicación específica, esto sin afectar los módulos existentes. Cuando se tiene certeza del correcto funcionamiento del módulo se puede hacer pruebas interconectando los módulos; además hay que resaltar que los módulos se desarrollaron de manera que en caso de un dato erróneo ingresado por el usuario, el sistema avisa al usuario que el dato es inválido y queda a la espera de un dato válido. En caso de un error que no pueda solucionar el sistema (falla en los componentes de potencia) se incluyo un modo de alarma que garantiza que el sistema pueda detectarlo haciendo propagar la alarma y enviarle un mensaje de alarma al usuario para luego permanecer en un modo de falla segura; de esta manera se reduce la probabilidad de daño tanto en el microcontrolador como en los periféricos conectados a él.

Las pruebas realizadas al sistema mostraron que a medida que aumenta la velocidad angular (frecuencia de la señal PLS), la diferencia entre la frecuencia calculada y la frecuencia medida aumentara ya que el sistema no es lo suficientemente rápido para atender los periféricos en el tiempo establecido para ello. En caso de que el sistema deba funcionar a una frecuencia determinada y no se logre trabajar a esa frecuencia con el cristal instalado por lo señalado anteriormente es recomendable aumentar la frecuencia del microcontrolador.

Las pruebas confirmaron que el sistema es capaz de enviar las coordenadas cartesianas y esféricas con respecto a la base de la torreta con un error mínimo, esto se comprobó pues se realizaron las medidas con el sistema y manualmente, encontrando una diferencia muy pequeña entre las coordenadas de cada caso; una manera de minimizar el error es utilizar componentes de hardware más precisos.

Una de las aplicaciones en que se puede utilizar este proyecto es en formar una imagen de profundidad tan solo conociendo el radio o formar una imagen en tercera dimensión con las coordenadas cartesianas; esto es útil en robótica móvil para indicarle al robot si es su camino se encuentra un obstáculo y el tipo de obstáculo; con esa información el robot tiene la capacidad de esquivar los obstáculos.

Los objetivos planteados en el inicio del proyecto no solo se cumplieron sino que se agregó la opción de calcular varias coordenadas en un barrido de un área, y no tan solo hacer una única medida, además se incorporó nuevos estados para que el usuario tenga la oportunidad de variar y hacer pruebas a algunos parámetros del sistema tales como la velocidad de los motores o los parámetros del telémetro sin necesidad de recurrir al código en C, los cambios que realiza el usuario no tendrán efecto cuando se realice un barrido o un disparo ya que estos estados tienen unos parámetros definidos dentro del código C del sistema.

Page 47: Sistema para la obtención de coordenadas en ambientes 3D

47

8 COSTOS Y FUENTES DE FINANCIACIÓN

RECURSOS HUMANOS NÚMERO DE PERSONAS

HORAS VALOR MENSUAL

TOTAL

(8 MESES)

Desarrollador 1 650 horas $1625000 $13000000

Director del Proyecto 1 4 horas $1000000 $8000000

Total RRHH $21000000

RECURSOS FÍSICOS FUENTE DE

FINANZIACIÓN Cantidad VALOR

TOTAL

(8 MESES)

Fuente de 25V Laboratorio

1 $300000 $2400000

Osciloscopio Laboratorio 1 $350000 $2800000

DVM Laboratorio 1 $250000 $200000

Computador con Internet, licencias de software

Laboratorio 1 $1650000 $1650000

Microcontrolador Propia 1 $25000 $25000

Programador AVR Pololu Propia 1 $50000 $50000

Impreso Propia 1 $30000 $30000

MAX 232 Propia 1 $2500 $2500

Regulador de voltaje Propia 1 $1500 $1500

Conector DB15 Propia 2 $1200 $2400

Total recursos

físicos $73761400

Page 48: Sistema para la obtención de coordenadas en ambientes 3D

48

PAPELERIA - CANTIDAD VALOR TOTAL

Papelería - - $200000 $100000

Textos, revistas y artículos - - $200000 $100000

Total papelería $200000

TOTAL GASTOS $94961400

9 BIBLIOGRAFÍA [1] Grupo Sirp. [Página de internet]. www.gruposirp.org. Consultado 10/03/2011 [2] “Operating manual RBK Series”, Orientalmotor [3] “Manual LDM 41”, ASTECH [4] SPONG, Mark W, Robot modeling and control / Mark W. Spong, Seth Hutchinson,

and Mathukumalli Vidyasagar. Edit John Wiley & Sons. [5]ATMEL, Atmega 124P Data Sheet, Atmel Corporation, Mayo 2011 [6] ATMEL, Atmega 324P Data Sheet, Atmel Corporation, Julio 2010 [7] ATMEL, Atmega 1280 Data Sheet, Atmel Corporation, Mayo 2011 [8] TEXAS INSTRUMENT, MAX232, Texas Instruments Corporation, Octubre

2002