CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

61
CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA ROBÓTICA Trabajo de Grado Número 0958 Andrés Felipe González Cardona PROYECTO DE GRADO PRESENTADO PARA OPTAR EL TÍTULO DE INGENIERO ELECTRÓNICO DIRECTOR: INGENIERO KAMILO ANDRÉS MELO BECERRA M.Sc. PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA ELECTRÓNICA BOGOTA D.C JUNIO DE 2010

Transcript of CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

Page 1: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA

PLATAFORMA ROBÓTICA

Trabajo de Grado Número 0958

Andrés Felipe González Cardona

PROYECTO DE GRADO PRESENTADO PARA OPTAR EL TÍTULO DE

INGENIERO ELECTRÓNICO

DIRECTOR:

INGENIERO KAMILO ANDRÉS MELO BECERRA M.Sc.

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA

CARRERA DE INGENIERÍA ELECTRÓNICA

BOGOTA D.C

JUNIO DE 2010

Page 2: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

1

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA

RECTOR MAGNÍFICO: R. P. JOAQUÍN SÁNCHEZ S.J

DECANO ACADÉMICO: ING. FRANCISCO JAVIER REBOLLEDO MUÑOZ

DECANO DEL MEDIO UNIVERSITARIO: R.P. SERGIO BERNAL S.J.

DIRECTOR DE DEPARTAMENTO: ING. JORGE LUIS SÁNCHEZ

DIRECTOR DE CARRERA: ING. JUAN MANUEL CRUZ

DIRECTOR DEL PROYECTO: ING. KAMILO ANDRÉS MELO BECERRA M.Sc.

Page 3: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

2

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: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

3

TABLA DE CONTENIDO 1 Introducción ................................................................................................................................ 7

2 Marco Teórico ............................................................................................................................. 9

2.1 Estado del Arte de las plataformas robóticas educacionales...................................................... 9

2.2 Drivers para motores dc con escobillas .................................................................................... 9

2.3 Servomotores ........................................................................................................................ 12

3 Especificaciones ........................................................................................................................ 14

3.1 Especificaciones Eléctricas del Sistema ................................................................................. 14

3.2 Diagrama en bloques ............................................................................................................. 14

4 Desarrollo ................................................................................................................................. 15

4.1 Módulo Maestro .................................................................................................................... 17

4.1.1 Descripción General ......................................................................................... 17

4.1.2 Especificaciones ............................................................................................... 19

4.1.3 Hardware ......................................................................................................... 19

4.1.4 Software ........................................................................................................... 21

4.1.4.1 Timer ......................................................................................................... 21

4.1.4.2 UART ........................................................................................................ 24

4.1.4.3 I2C ............................................................................................................. 25

4.1.4.4 Maquina ..................................................................................................... 28

4.2 Módulo Comunicación .......................................................................................................... 31

4.2.1 Descripción general .......................................................................................... 31

4.2.2 Especificaciones ............................................................................................... 32

4.2.3 Hardware ......................................................................................................... 33

4.2.4 Software ........................................................................................................... 34

4.3 Módulo Puente H .................................................................................................................. 37

4.3.1 Descripción general .......................................................................................... 37

4.3.2 Especificaciones ............................................................................................... 37

4.3.3 Hardware ......................................................................................................... 38

4.4 Módulo Puente H Microcontrolado ........................................................................................ 40

4.4.1 Descripcion general .......................................................................................... 40

4.4.2 Especificaciones ............................................................................................... 41

Page 5: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

4

4.4.3 Hardware ......................................................................................................... 41

4.4.4 Software ........................................................................................................... 43

4.5 Módulo display ..................................................................................................................... 43

4.5.1 Descripción general .......................................................................................... 44

4.5.2 Especificaciones ............................................................................................... 44

4.5.3 Hardware ......................................................................................................... 45

4.5.4 Software ........................................................................................................... 45

4.6 Módulo Sensor ...................................................................................................................... 46

4.6.1 Descripción general .......................................................................................... 47

4.6.2 Especificaciones ............................................................................................... 47

4.6.3 hardware .......................................................................................................... 48

4.6.4 software ........................................................................................................... 48

4.7 Variables de entrada .............................................................................................................. 48

4.7.1 Datos a través de Rs-232 .................................................................................. 48

4.7.2 Sensor de contacto............................................................................................ 49

4.7.3 Botones módulo Maestro .................................................................................. 49

4.7.4 Programación Puente H .................................................................................... 49

4.8 Variables de salida ................................................................................................................ 49

4.8.1 Visualización gráfica ........................................................................................ 49

4.8.2 Señales pwm .................................................................................................... 50

4.8.3 Salida puente h y puente h microcontrolado...................................................... 50

4.8.4 Entrada análoga en el puente H micro............................................................... 50

5 Pruebas,resultados y análisis de los mismos ............................................................................... 50

5.1 Prueba de almacenamiento .................................................................................................... 51

5.2 Prueba PWM’s ................................................................................................................... 53

5.3 Prueba interconexión ............................................................................................................. 56

6 Conclusiones ............................................................................................................................. 56

7 Costos y fuentes de financiación ................................................................................................ 59

8 Bibliografía y fuentes de información ........................................................................................ 60

Page 6: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

5

TABLA DE FIGURAS

Figura1: Driver tipoHigh Side. .................................................................................................. 10

Figura2: Driver tipoLow Side. ................................................................................................... 10

Figura 3: Señal del driver de velocidad de un motor de corriente continua................................. 11

Figura 4: Driver tipo Puente H. ................................................................................................. 12

Figura 5: Diagrama en bloques general. .................................................................................... 14

Figura 6: Diagrama en bloques específico. ................................................................................ 15

Figura 7: Módulo maestro. ........................................................................................................ 17

Figura 8: Máquina de estados módulo Maestro.......................................................................... 18

Figura 9: Control unidireccional para los motores DC. .............................................................. 20

Figura 10: Esquemático módulo maestro. .................................................................................. 21

Figura 11: Diagrama de flujo módulo de software timer. ........................................................... 23

Figura 12: Diagrama de flujo módulo de software UART. ......................................................... 25

Figura 13: Diagrama de flujo módulo de software I2C. ............................................................. 27

Figura 14: Módulo comunicación. ............................................................................................. 31

Figura 15: Máquina de estados del módulo comunicación. ........................................................ 32

Figura 16: Funcionamiento teclado. .......................................................................................... 33

Figura 17: Esquemático módulo comunicaciones. ..................................................................... 34

Figura 18: Estructura de un comando codificado por el módulo comunicaciones. ...................... 35

Figura 19: Diagrama de flujo módulo comunicaciones. ............................................................. 36

Figura 20: Módulo puente h. ..................................................................................................... 37

Figura 21: Diagrama de bloques funcional del LMD18200. ...................................................... 38

Figura 22: Señal de control aplicada al pin de direccción del puente h. ...................................... 39

Figura 23: Esquemático módulo puente H. ................................................................................ 39

Figura 24: Módulo puente h microcontrolado. ........................................................................... 40

Figura 25: Máquina de estados módulo puente H microncontrolado. ......................................... 40

Figura 26: Diagrama de bloques funcional del L6203. ............................................................... 41

Figura 27: Esquemático módulo puente H microcontrolado....................................................... 42

Figura 28: Diagrama de flujo módulo puente h microcontrolado. .............................................. 43

Figura 29: Módulo display. ....................................................................................................... 43

Figura 30: Máquina de estados módulo display. ........................................................................ 44

Figura 31: Esquemático módulo display. ................................................................................... 45

Page 7: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

6

Figura 32: Diagrama de flujo del módulo display. ..................................................................... 46

Figura 33: Módulo sensor.......................................................................................................... 46

Figura 34: Máquina de estados módulo sensores. ...................................................................... 47

Figura 35: Esquemático módulo sensores. ................................................................................. 48

Figura 36: Comunicación bajo el protocolo I2C entre 2 microcontroladores............................... 51

LISTA DE TABLAS Tabla 1: Características eléctricas del sistema. .......................................................................... 14

Tabla 2: Especificaciones módulo maestro. ............................................................................... 19

Tabla 3: Especificaciones módulo comunicaciones. .................................................................. 32

Tabla 4: Especificaciones módulo puente h. .............................................................................. 37

Tabla 5: Especificaciones módulo puente h microcontrolado. .................................................... 41

Tabla 6: Especificaciones módulo display. ................................................................................ 44

Tabla 7: Especificaciones módulo sensores. .............................................................................. 47

Tabla 8: Valores de equivalencia del tiempo en valores numéricos ............................................ 52

Tabla 9: Resultado prueba almacenamiento. .............................................................................. 53

Tabla 10: Resultado configuración CCP. ................................................................................... 54

Tabla 11: Resultado prueba verificación ciclos útiles. ............................................................... 55

Tabla 12: Conjunto de pruebas PWM. ....................................................................................... 55

Tabla 13: Costos y fuentes de financiación del proyecto. ........................................................... 59

Page 8: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

7

1 INTRODUCCIÓN

Con el pasar de los años, la robótica se ha introducido en diversas áreas y disciplinas para aportar

sus beneficios. Hoy en día, este tipo de tecnología se ha vuelto indispensable para el desarrollo de

áreas como la industria y la medicina. Por ejemplo, en el campo de la medicina se puede pensar

en prótesis que están provistas de actuadores y controladores, así como en brazos mecánicos para

realizar alguna operación delicada [1]. Debido a las grandes ventajas que la robótica presenta

para los seres humanos, el campo de aplicación de este tipo de tecnología se ha extendido

considerablemente, englobando una gran gama de disciplinas. De hecho, la robótica ha

desbordado el cuadro tradicional de la fabricación automatizada, para dirigirse al campo de la

educación, en donde se aprovechan las bondades que ésta ofrece como medio de enseñanza [2].

En este orden de ideas, la creación de plataformas robóticas surge como una alternativa que

permite penetrar de una manera sencilla el aula de clase, haciendo que los alumnos puedan

usarlas para la construcción de un robot con alguna tarea específica. Así, este tipo de tecnología

se ha convertido en una herramienta pedagógica a través de la cual se estimula a los alumnos a

aprender distintas áreas del conocimiento, llevando un proceso interactivo entre la teoría y la

práctica.De esta manera, durante las últimas dos décadas, investigadores e industrias han

diseñado y puesto en práctica cierto número de kits para la construcción de robots para estimular

el aprendizaje de estudiantes en áreas como las matemáticas, la física, la informática y la

mecánica. Estos kits incluyen motores, poleas, censores y otro tipo de objetos para su

construcción; es decir, todo tipo de elementos que permiten al estudiante construir un robot [3].

El aumento de la demanda de este tipo de plataformas robóticas hace que exista la necesidad de

crear prototipos de bajo costo, sin perder las capacidades y robustez de otra plataforma más

compleja. Por lo tanto, se considera importante la implementación de la electrónica en módulos

de herramientas de control de robots simples y más económicos, para usar la robótica como

medio para la adquisición de nociones científicas y motivar a los estudiantes sobre la ciencia y la

tecnología.

Con este propósito en mente, en este proyecto se diseñó un módulo maestro capaz de realizar las

siguientes operaciones: 1) manejar tres motores de corriente continua o servomotores a través de

señales de un PWM, 2) realizar ciertas rutinas preestablecidas, 3) guardar un conjunto limitado de

Page 9: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

8

estas instrucciones para luego ser ejecutadas de manera secuencial y 4) manejar los motores en

tiempo real, según las necesidades del usuario. Asimismo, el modelo incluye el diseño de

módulos adicionales que, aunque no son indispensables para el correcto funcionamiento del

sistema, agregan capacidades al módulo maestro. Entre estos módulos adicionales se encuentra

el módulo de comunicaciones, que permite la comunicación entre el módulo maestro y el

computador, el módulo display, que le informa al usuario el estado en el cual el sistema está

operando, el módulo censores, el módulo puente H y el modulo puente H microcontrolado.

Para poder realizar una exposición adecuada del proyecto, se empezará haciendo un marco

teórico en el cual se expondrán las bases tóricas mínimas para la adecuada comprensión de los

circuitos. Posteriormente, se expondrán las especificaciones de cada uno de los módulos de la

plataforma, así como sus diagramas en bloques. Partiendo de lo anterior, se procederá a explicar

el desarrollo del trabajo de grado, en el cual se incluirá una descripción de cada uno de los

módulos que componen el proyecto, así como la tecnología utilizada y los diseños realizados. Por

último, se expondrán los resultados de las pruebas realizadas para comprobar el correcto

funcionamiento del proyecto y se relacionaran los puntos concluyentes del trabajo realizado.

Page 10: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

9

2 MARCO TEÓRICO

2.1 ESTADO DEL ARTE DE LAS PLATAFORMAS ROBÓTICAS

EDUCACIONALES

En este momento en la industria se pueden conseguir distintos kits de robótica con los que se

pueden diseñar, construir y operar robots. Unas de estas plataformas son LEGO Mindstorms,

VEX y Parallax, las cuales pueden ser programadas para realizar tareas específicas con

servomotores para que los robots se muevan con presición y sensores de distancia, color, visión,

etc. para que los robots interactuen con el medio. Estas plataformas vienen con ejemplos de como

crear y programar un robot que realice una tarea simple para que el usuario después construya y

programe sus propios robots según sus necesidades. Aunque se programen de maneras distintas y

no contengan las mismas piezas, el objetivo es el mismo, crear robots y estimular a los usuarios a

desarrollar robots llevando un proceso interactivo entre la teoría y la práctica.

2.2 DRIVERS PARA MOTORES DC CON ESCOBILLAS1

Cada circuito para el control de motores puede dividirse en el manejo de la electrónica y del

software de control. Estas dos piezas pueden ser simples o extremadamente complicadas

dependiendo del motor que se vaya a utilizar y los requerimientos del sistema. Generalmente,

sistemas con un mejor desempeño requiere hardware más complicado. A continuación se

explicarán algunos circuitos básicos involucrados en el manejo de motores de corriente continua

con escobillas, que son el tipo de motor usado en el proyecto debido al costo, al manejo y a la

disponibilidad de los mismos.

Todos los motores requieren circuitos que controlan el flujo de la corriente a través de sus

enbobinados,esto incluye la dirección y la magnitud del flujo de la corriente. Los motores de

corriente continua con escobillas son fáciles de controlar porque la velocidad y el torque son

proporcionales al voltage o corriente aplicada.

1 Toda la información de esta sección hace referencia a 60[6]

Page 11: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

10

Figura1: Driver tipoHigh Side.

En la Figura1 se puede ver un driver con la capacidad de manejar un motor dc con escobillas en

una dirección. Este tipo de driver es usado principalmente en aplicaciones en donde la seguridad

es crítica por el hecho de que un corto no puede poner en rotación al motor.

El driver tipo LowSide, como el de la Figura2, es el más económico por la simplicidad con la que

se maneja el MOSFET. En la mayoría de las apliacaciones se puede usar un pin de salida de un

microcontrolador que produzca un señal PWM para encender y apagar el MOSFET, en donde el

ciclo útil de la señal es el encargado de la velocidad de rotación del motor ya que ésta es

proporcional al ciclo útil de la señal generada.

Figura2: Driver tipoLow Side.

La velocidad de un motor de corriente continua es el promedio de la señal aplicada al mismo.

Una de las técnicas más utilizadas es el PWM, en donde se mantiene el periodo de una señal

cuadrada en un valor constante, pero se varía el ciclo útil de ésta; cambiando el valor promedio

de la señal de salida del PWM afectando la velocidad de rotación del eje del motor.

M1

D1

00

Q1

VCC

U1

Driver Mosf et

1 2Senal PWM

U2

Driver Mosf et

1 2Senal PWMQ2

D2

M2

VCC

0

Page 12: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

11

Si el ciclo útil es del 70% del periodo, el motor es abastecido con 70% del voltaje máximo, y

luego el ciclo útil es modificado al 40% del periodo, en donde el motor es abastecido con 40%

del voltaje máximo, el motor disminuye la velocidad de rotación del eje. En la Figura 3 hay un

dibujo que explica el principio de un driver de velocidad de un motor de corriente continua a

partir de la señal de un PWM.

Figura 3: Señal del driver de velocidad de un motor de corriente continua.

Para lograr el control del sentido de la rotación del eje de los motores de corriente continua

depende de la polaridad aplicada a las terminales del mismo. El puente H, ver Figura 4, es un

circuito con 4 transistores que logra cambiar la polaridad de los terminales del motor a través de

la conmutación de estos. Cuando hay un valor bajo en la señal PWM1 yseñal PWM2 y un valor

alto en señal PWM3 y señal PWM4, los transistores Q3 y Q2 permiten el flujo de corriente a

través de ellos, mientras que Q1 y Q4 van a estar en corte, causando que el eje del motor gira en

un sentido. Si ahora existe un valor alto en la señal PWM1 y señal PWM2 y un valor bajo en

señal PWM3 y señal PWM4, los transitores Q1 y Q4 permitirán el flujo de corriente a través de

ellos y el motor girará en sentido contrario a la condición previamente explicada.

Page 13: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

12

Figura 4: Driver tipo Puente H.

Como se mencionó anteriormente, las señales PWM son una solución para manejar la velocidad

de los motores. Algunos microcontroladores de Microchip, es el fabricante de los

microcontroladores escogidos para el proyecto por su costo y sus diversas formas de

programación, tienen periféricos PWM incorporados; estos periféricos son el CCP

(Capture/Compare/PWM) y el ECCP (Enhanced CCP). El CCP tiene la intención de generar una

señal PWM mientras que el ECCP está diseñado para producir las señales necesarias para

controlar un puente h. Si los costos son un punto crítico para el diseño, puede que un

microcontrolador con estos módulos no esté disponible, por lo que la generación de de señales

PWM a través de software es una buena alternativa.

2.3 SERVOMOTORES2

Los motores vienen en diferentes variedades para distintas aplicaciones. El término “servomotor”

no aplica realmente al motor como tal sino a la forma en que el motor es utilizado y controlado.

En aplicaciones en donde se requiera el uso de servomotores, la idea es mantener la carga, que

está unida al eje del motor a través de una serie de engranajes para un ajuste del torque y la

velocidad, en una posición específica.

Para lograr esto, es necesario obtener información de la posición de la salida del motor para

proveer de retroalimentación al sistema de control. La información de la posición se adquiere a

través de un potenciometro unido a los engranajes, un sensor de efecto hall que monitorea el paso

2 Toda la información de esta sección hace referencia a [8].

U2

Driv er Mosf et

1 2Senal PWM 2Q1

0

Q2

VCC

U1

Driv er Mosf et

1 2Senal PWM 1

M1

U3

Driver Mosf et

12 Senal PWM 4Q3

0

Q4

VCC

U4

Driver Mosf et

12 Senal PWM 3

Page 14: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

13

de unos “dientes” sobre un engranaje metálico, un “encoder” montado directamente en el motor,

o cualquier otro sensor que pueda proveer información de la posición del eje del motor.

Debido a que los tiempos de respuesta en aplicaciones que involucran el uso de servomotores son

medidos en segundos, se puede decir que el lazo de control no es muy exigente. Por lo tanto, se

usa un algorítmo sencillo y si es necesario, se le agrega complejidad. En el caso de un servomotor

de posición, a medida que el eje del motor rota, se obtiene el valor de la posición del eje y el

motor es apagado cuando llega a la posición deseada; se asume que la velocidad de la adquisición

de la posición es lo suficientemente rápida para evitar el sobrepaso del valor de posición deseado

El cable de control de los servomotores es usado para indicar la posición o el ángulo deseado, el

cual está determinado una señal cuadrada que es sometida a variaciones en su ciclo útil. A pesar

que tanto el periodo de la señal como las variaciones del ciclo útil dependen del modelo y de cada

fabricante, el principio de operación siempre es el mismo.

Page 15: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

14

3 ESPECIFICACIONES

3.1 ESPECIFICACIONES ELÉCTRICAS DEL SISTEMA

CARACTERÍSITCA VALOR

Fuente de alimentación 12 V

Tasa de transmisión entre los módulos conectados

a través del protocolo de comunicación RS-232 9600 bps

Tasa de transmisión entre los módulos conectados

a través del protocolo de comunicación I2C 100k bps

Número máximo de módulos conectados 7

Número máximo de motores conectados 3

Número máximo de instrucciones

almacenadas por motor 15

Tabla 1: Características eléctricas del sistema.

3.2 DIAGRAMA EN BLOQUES

Figura 5: Diagrama en bloques general.

Page 16: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

15

Figura 6: Diagrama en bloques específico.

4 DESARROLLO Dado que se pretende crear un conjunto de circuitos para una posible plataforma robótica, se

decidió realizar un módulo maestro, independiente de los demás módulos, capaz de ejecutar un

listado de 15 instrucciones de 3 señales pwm y otros 5 módulos que necesitan de éste para poder

ser manejados. Esto se hizo con el fin de que estos 5 módulos sean kits independientes que

aumenten las características del módulo maestro y el usuario escoja cuáles desea comprar y/o

instalar para realizar la tarea. Cada módulo fue diseñado con el criterio de las necesidades típicas

de los usuarios y de las características de las plataformas existentes.

Para conectar los módulos al maestro sólo es necesario conectarlos al bus I2C y el maestro detecta

automáticamente qué módulo tiene conectado y cambia su manera de controlar las señales PWM

si se requiere. Este bus no fue diseñado para ser multi-maestro, y es por esto que el módulo

maestro es el único de iniciar y parar una comunicación en este bus. Para comunicarse con el

módulo comunicaciones se utiliza el bus RS-232 y esta comunicación se puede iniciar desde

cualquiera de los dos módulos; ademas, como en el bus de comunicaciones anterior, es una

comunicación half-duplex.

Se decidió utilizar motores de corriente continua con escobillas por su alta disponibilidad y

mayor economía por si se ve la necesidad de reemplazar alguno de estos, específicamente se usan

motores dc con escobillas OT-FF-M10SA/ PA de la compañía Once Top. De la hoja de

Page 17: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

16

especificaciones del motor se observa que sus aplicaciones típicas son para juguetes y aero

modelos y que maneja una corriente máxima de 0.58 A y un voltaje nominal de 4.8 V. Es por

esto que los transistores de salida se escogieron con la corriente máxima para un un torque de

stall máximo, en donde se presenta el mayor consumo de corriente.

Se escogió el puente H LMD18200 para manejar motores con corrientes de 2 A con voltajes de

24 V ya que este dispositivo electrónico tiene la capacidad de manejar corrientes de 3 A y

voltajes hasta de 55 V y está diseñado idealmente para manejar motores de corriente continua.

Además de esto, este puente H tiene la característica de poder ser controlado a partir de una sola

señal de control, ver sección Módulo Puente H para mayor información acerca de la señal de

control. El puente H L6203 tambíen fue escogido para manejar corrientes de 2 A con voltajes de

24 V ya que este dispositivo tiene la capacidad de manejar corrientes de 4 Ay voltajes hasta 48 V.

Hay que tener en cuenta que este proyecto es un kit educacional para ser manipulado por niños,

razón por la cual no debería ser usado en aplicaciones que demanden corrientes mayores a las ya

mencionadas. De esta forma, el uso de estos circuitos en aplicaciones diferentes a las educativas,

están bajo la responsabilidad del usuario. El uso de los puentes H se limita al uso de un motor

extra, el cual no se provee, pero hay que tener en cuenta las limitaciones dadas por los puentes en

voltaje y corriente.

Debido a que el prototipo consiste en módulos removibles conforme a las necesidades del

usuario, a continuación se explicarán todos los módulos del sistema así estos no estén conectados

con el módulo maestro.

Page 18: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

17

4.1 MÓDULO MAESTRO

Figura 7: Módulo maestro.

4.1.1 DESCRIPCIÓN GENERAL

Este bloque microcontrolado tiene la habilidad de identificar qué módulos tiene conectados, crear

un listado limitado de instrucciones y ejecutarlas de manera secuencial o en tiempo real. Además

tiene la capacidad de manejar 3 motores a partir de PWM's y de comunicarse con otros módulos

adicionales mediante I2C o USART. Se usó el microcontrolador PIC18F6410 como el control de

este módulo y se implementó una máquina de estados por software para garantizar el correcto

funcionamiento del sistema, ver Figura 8.

Page 19: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

18

Figura 8: Máquina de estados módulo Maestro.

En la Figura 8 se muestra la máquina de estados del módulo maestro. En el lugar “Inicialización”

se programan los pines de entrada y de salida del microcontrolador, se habilitan los periféricos

que se van a utilizar y se espera un tiempo para que los demás módulos se inicialicen. Una vez se

ha realizado lo anterior, la variable estado toma el valor de identificar para poder llegar al lugar

“Identificar”, en donde se verifica los módulos que están activos. Si el módulo comunicación está

activo hay una transición hacia el lugar “Tiempo Real”, en donde las instrucciones a realizar

llegan a través de la UART, de lo contrario hay una transición hacia el lugar “Reposo” y se

espera a que el usuario presione algún botón del tipo programacióndel módulo (ver sección

Botones módulo Maestro). Si estando en “Reposo” el usuario presiona alguno de estos botones,

Page 20: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

19

se llega al lugar “Programación” en donde se almacenan las instrucciones ingresadas por el

usuario a través de los botones del módulo maestro. Cuando se presione el botón Play hay una

transición hacia “Ejecución”, en donde se espera un tiempo para darle tiempo al usuario para

alejarse del prototipo y éste pueda realizar las acciones almacenadas de manera secuencial hasta

que se realice la última instrucción y pase nuevamente al lugar “Reposo” para esperar nuevas

instrucciones del usuario.

4.1.2 ESPECIFICACIONES

CARACTERÍSITCA VALOR

Fuente de alimentación 5 V

Tasa de transmisión entre los módulos conectados

a través del protocolo de comunicación RS-232 9600 bps

Tasa de transmisión entre los módulos conectados

a través del protocolo de comunicación I2C 100k bps

Número máximo de motores conectados 3

Número máximo de instrucciones

almacenadas por señal PWM 15

Periodo de la señal PWM de los motores 50 us

Periodo de la señal PWM de los servomotores 20 ms

Valor mínimo del ciclo útil para controlar un

Servomotor 370 us

Valor máximo del ciclo útil para controlar un

Servomotor 2200 µs

Memoria de programación usada 13978 bytes Tabla 2: Especificaciones módulo maestro.

Este módulo es capaz de controlar motores

4.1.3 HARDWARE

El control del módulo maestro fue implementado en elmicrocontrolador de Microchip

PIC18F6410, el cual posee un oscilador interno con frecuencia hasta 8 Mhz, cuatro contadores

internos (timer0 hasta timer3), tres módulos CCP, memoria flash de 16k byte y soporta los

protocolos de comunicación I2C y RS-232.

Page 21: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

20

Figura 9: Control unidireccional para los motores DC.

También se usa un control de velocidad unidireccional para controlar la velocidad de los tres

motores como el que se ve en laFigura 9, en donde la velocidad del motor es proporcional al ciclo

útil de la señal PWM generada por el microcontrolador. Como se usa el mismo módulo CCP para

controlar tanto los motores DC como los servomotores, se adicionó una resistencia de pull up en

paralelo al diodo para que la señal de control del servomotor pueda ser el drain del mosfet con la

particularidad que la señal en este punto sería la versión negada de la salida del módulo CCP del

microcontrolador.

A continuación se muestra el esquemático del módulo maestro.

Page 22: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

21

Figura 10: Esquemático módulo maestro.

4.1.4 SOFTWARE

Dada la complejidad del software del módulo maestro, éste se desarrolló de manera modular para

realizar pruebas independientes a cada uno de estos, lo cual permitió que la detección de fallas

fuera más fácil porque éstas son rastreables con este tipo de programación. De acuerdo con lo

anterior, el software contiene 4 módulos que se comunican entre ellos a través de banderas. A

continuación se exponen las características de cada uno de estos módulos, así como las funciones

que estos implementan.

4.1.4.1 Timer

Este módulo se encarga del manejo del timer0del microcontrolador a través de la estructura tipo

Timer_control, ver anexo código módulo maestro, la cual consta de los siguientes elementos:

estado:Variable de ocho bits encargada de indicar en qué estado está el módulo timer

0VCC

led_potencia3VCC

C1

100n

C2

100n

C3

100n

0

SERVO 2

HEADER 3

123

SERVO 1

SERVO 2

SERVO 3

HEADER 3

123

carro

0

MODULO COMUNICACIONES1HEADER 4

1234

SERVO 1

HEADER 3

123

MCLR

SERVO 3

0%

VCC

0BUS I2C1

HEADER 4

1234

25%50%75%

R21

10kVCC

R24

10k

100%

U2

PIC18F6410

RA024

RA123

RA222

RA321

RA428

RA527

RA640

RA739

RB048

RB147

RB246

RB345

RB444

RB543

RB6 PGC42

RB7 PGD37

RC

030

RC

1

CC

P229

RC

2

CC

P133

RC

3

SCL

34

RC

4

SDA

35

RC

536

RC

6

TX1

31

RC

7

RX1

32

RD

0

carro

58

RD

1

10%

55

RD

2

25%

54

RD

3

50%

53

RD

4

75%

52

RD

5

100%

51

RD

6

atra

s50

RD

7

play

49

RE0 2

motor1 RE1 1

motor2 RE2 64

motor3 RE3 63

LED ama RE4 62

LED v er RE5 61

LED rojo RE6 60

RE7 59

serv o1 RF0 18

serv o2 RF1 17

serv o3 RF216

RF3 15

RF4 14

RF5 13

RF612

RF7 11

CC

P3

RG

03

RG

14

RG

25

RG

36

RG

48

MC

LR

RG

57

VSS

9

VSS

25

VSS

41

VSS

56

AVSS

20

VD

D10

VD

D26

VD

D38

VD

D57

AVD

D19

R14

10k

R26

10k

R354.7k

R19

10k

R29

10k

R334.7k

VCC

atras

potencia1R15

10kpotencia2R16

10k

R18

10k

VCC

R28

10k

potencia3

0

R20

10k

0

R32

10k

VCC play

R34

10k

Q1

2N7000

0

SERVO 3R7

10k

R36

10k

D11N4004

SERVO 1

SERVO 3SERVO 2

R310k

R2

100

MOTOR 2

HEADER 4

1234

VCC

VCC

VCC

R6

10k

VCC

VCC

0

R4

1k

motor 1

C5

22p

VCC

C4

22p

00

motor 2

SCL

led_amarillo

0

CCP3

motor 3

led_v erde

VCC

VCC

VCC

VCC

VCC

VCC

VCC

VCC

R13

330

R17

330

MOTOR 3

HEADER 4

1234VCC

0

play

VCC

VCC

J1

ICD2

123456

R5

1k

atras

0

J4

HEADER 20

123456789

1011121314151617181920

PGC

MOTOR 1

HEADER 4

1234 VCC

0

100%

PGD

75%

VCC

Q3

2N7000

D31N4004

R3110k

R30

100

0

C9

22p

C8

22p

VCC

SDA

led_potencia2

led_potencia1 R10

330R11

330

50%

Q2

2N7000

0

D21N4004

R2510k

R23

100

0

C7

22p

C6

22p

VCC

FUENTE1

HEADER 4

1234

25% led_amarillopotencia3

motor 1led_v erde

motor 3motor 2

potencia1potencia2

led_potencia10%

VCC

carro

CCP1

U1

LM317/SO

VIN1

ADJ4VOUT

2

VOUT 3

VOUT 6

VOUT 7

SERVO 1

CCP2

R8

10k

R221k

R9

10k

PGC

PWM2

J6

HEADER 10

123456789

10

SERVO 2

R271k

PGD

led_potencia3

PWM3

R12

330

FuenteR11k

PWM1

BUS I2C2

HEADER 4

1234

led_potencia2

Page 23: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

22

hasta_cuando_cuento: Valor hasta el cual la variable tiempo_transcurrido tiene que

aumentar para activar la bandera tiempo_superado.

tiempo_transcurrido: Variable de 8 bits que indica el tiempo transcurrido desde que se

ha activado el contador.

tiempo_superado:Bandera que indica que la variable tiempo_transcurrido es igual o

mayor a la variable hasta_cuando_cuento.

El contador es configurado como un contador de 16 bits que utiliza el reloj interno, 8Mhz, y un

prescaler de 8, por lo que cada vez que se desborde el módulo habrán pasado alrededor de 0.262

segundos, ver Ecuación 1, y por lo tanto ese tiempo sería la resolución del contador.

óݑݏ = ݕݐ × 2#ௗ ௧௦ ௗ ௧ௗ × ݎݏݎEcuación 1: Resolución del Timer0.

Cada vez que éste se desborde aumenta en uno una variable de un byte llamada

tiempo_transcurrido, por lo tanto el tiempo máximo que se puede medir sería de 67.108

segundos.

Por medio de la implementación de una máquina de estados se garantizó el control del contador y

poder satisfacer las necesidades del proyecto. Esta máquina de estados posee los siguientes

estados:

OFF:Se deshabilita el contador y se bajan las banderas de tiempo_superado y

hasta_cuando_cuento para que no estén activas cuando se desee reinicar el contador.

ON: Se habilita el contador y se borra el valor de la variable de ocho

bitstiempo_transcurrido. Se borra en este estado y no en el estado OFFpor si se necesita

este valor durante la ejecución del programa.

overflow: Se baja la bandera de desbordamiento del contador y se aumenta en 1

tiempo_transcurrido, cuando esta variable es igual a la variablehasta_cuando_cuento se

apaga el contador y se le avisa a los demás módulos de este evento por medio de la

bandera tiempo_superado.

En la Figura 11 se puede observar la representación de la máquina de estados a través del

diagrama de flujo del módulo de software.

Page 24: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

23

Figura 11: Diagrama de flujo módulo de software timer.

Page 25: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

24

4.1.4.2 UART

Este módulo se encarga del manejo de la USART del microcontrolador a través de la estructura

tipo Uart_control, ver anexo código modulo maestro, la cual consta de los siguientes elementos:

estado: Variable que indica el estado en el que está el módulo UART

acuse_de_recibo: Indica que se ha recibo un byte a los demás módulos para que estos

puedan usarla.

registro: Variable de 8 bits usada para almacenar el byte recibido en la recepción y el

dato enviado en la transmisión de datos a través del protocolo de comunicación RS-232.

Solamente en los lugares “Identificar” y “Tiempo Real” de la Máquina de estados módulo

Maestro.se usa este módulo. En el lugar “Identificar” se usa para verificar si el módulo

comunicaciones está conectado con el módulo maestro y en el lugar “Tiempo Real” es usado para

recibir la instrucción que el usuario ha ingresado a través del teclado de un computador del

módulo comunicaciones.

La implementación de la máquina de estados usada para controlar el módulo de software se

puede ver en la Figura 12, y se logró por medio de los siguientes tres estados:

uart_recepcion: En este estado se espera a que la bandera de recepción de la UART del

microcontrolador esté activa para luego guardar el byte en la variable registro, y avisarle

a los demás módulos por medio de la bandera acuse_de_recibo que ya se ha recibido el

dato.

uart_enviar: Se espera a que la bandera de transmisión este activa para cargar la USART

con el dato almacenado en la variable registro.

uart_reposo: En este estado se deshabilita el módulo.

El objetivo de la función “Identificación” es lograr que el Módulo Maestro identifique cuáles

módulos están conectados a él, por lo que se creó una variable de 8 bits en donde los 7 bits más

significativos fueron asignados a cada módulo y el valor de cada uno indicaría si el módulo está

conectado o no.

Page 26: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

25

Figura 12: Diagrama de flujo módulo de software UART.

4.1.4.3 I2C

Se va a implementar una comunicación a través del protocolo I2C con un maestro y varios

esclavos, y el módulo maestro será el maestro, como su nombre lo indica, dentro de la

comunicación, por lo tanto es el encargado de manejar la comunicación con los demás módulos.

Para esto se utiliza el periférico interno MSSP (Master Synchronous Serial Port) del

microcontrolador y una estructura del tipo I2c_control, la cual consta de los siguientes elementos:

dato: Es un apuntador a la variable en donde se almacena el dato del bus.

direccion: Es la dirección del esclavo con el cual se desea comunicar.

numero_bytes: Número de bytes involucrados en la comunicación.

estado: Es una variable de 8 bits en donde cada uno de ellos representa alguno de los

estados en los que puede estar el módulo.

exito: Es una variable de 8 bits la cual almacena en cada uno de sus bits el éxito de la

comunicación con los esclavos en cada uno de los estados del módulo.

Page 27: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

26

En la Figura 13 se muestra la representación de la implementación del módulo y su máquina de

estados que contiene los siguientes estados:

i2c_start: En este estado se espera a que se detecte la secuencia start iniciada por le

microcontrolador y luego se inicia la comunicación con el esclavo con la dirección

correspondiente a la variable de 8 bits de la estructura tipo I2c_control y se espera el 9

pulso de reloj para verificar si hubo un ACK. Este estado solamente es usado en el lugar

“Identificar” para verificar qué módulos están conectados.

i2c_rx:En este estado se desea recibir un dato del módulo sensores para luego ser usado

por el programa.

i2c_lcd:En este estado se envía un mensaje al módulo display para que éste se actualice.

i2c_uh1:En este estado se envía un mensaje al módulo uh1 para que éste ejecute la

instrucción ingresada por el usuario, ya sea por medio del teclado del computador o por

medio del teclado del mismo módulo maestro.

i2c_uh2:En este estado se envía un mensaje al módulo uh2 para que éste ejecute la

instrucción ingresada por el usuario, ya sea por medio del teclado del computador o por

medio del teclado del mismo módulo maestro.

i2c_uh3:En este estado se envía un mensaje al módulo uh3 para que éste ejecute la

instrucción ingresada por el usuario, ya sea por medio del teclado del computador o por

medio del teclado del mismo módulo maestro.

Page 28: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

27

Figura 13: Diagrama de flujo módulo de software I2C.

Page 29: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

28

4.1.4.4 Maquina

Este módulo de software es el encargado de seguir el diagrama de flujo, ver anexo código

modulo maestro, a través de una máquina de estados y, debido a que es un diseño modular, se

comunica con los demás módulos por medio de banderas y por esta misma razón se crearon

algunas variables estáticas.

El módulo posee 5 estados principales como los de la Figura 8:

identificacion: Se verifican los módulos que están conectados al módulo maestro a través

comunicación serial por medio de los protocolos I2C y RS-232. El resultadoes

almacenado en la variable modulo, en donde cada bit representa un móduloy su estado.

Dependiendo del resultado del MSB cambia de estado a reposo o a tiempo_real ya que

este bit representa el módulo “tiempo real”, ver.

reposo: En este estado, el control espera a que el usuario presione uno de losbotones del

tipo programación del módulo maestro. Una vez lo haga, cambia deestado a

programacion.

programacion:En este estado se almacenan tanto las instrucciones ingresadas por

elusuario como la duración de las mismas en bytes independientes en una estructura tipo

Instruccion. Para lograr esto se dividió en tres estados adicionales:

o programacion_inicio: En este estado, el usuario ha presionado un botón del tipo

programación del módulo maestro y se estáa la espera que el usuario presione un

botón deltipo axn.

o programacion_tiempo: En este estado, el usuario está presionando un botóndel

tipo axn y se está a la espera que el usuariodeje de presionar el botón. Este tiempo

está siendomedido por un contador con una resolución de 0.262 segundos, ver

sección correspondiente al módulo Timer.

o programacion_guardar: Durante este estado se almacena la instrucción y

laduración de la misma en la estructura respectiva.

ejecucion: En este estado se ejecuta la lista de instrucciones que el usuario ha

almacenadoy se ha dividido en dos estados.

o ejecución_inicio: Se carga la variable de la estructura tipo

Timer_control,hasta_cuando_cuento, con la mayor duración de las tres señales

pwm y se ejecutan las primeras instrucciones almacenadas.

Page 30: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

29

o ejecución_nueva: En este estado se actualiza la instrucción de acuerdo a la lista

de instrucciones almacenada y al valor de la variable de la estructura tipo

Timer_control, tiempo_transcurrido.

tiempo_real:Durante este estado se revisa la UART por instrucciones enviadas por el

módulo comunicaciones para que éste las ejecute, u ordene a los demás módulo a

ejecutarlas de ser necesario.

Para lograr la identificación de los módulos conectado al Módulo Maestro, éste está conectado

con los demás módulos y se comunica a través de los protocolos de comunicación I2C y RS-232.

Todos aquellos que estuvieran conectados al Maestro a través de I2C, se les fue asignada una

dirección y durante este estado, el Maestro iniciaba la comunicación con cada una de estas

direcciones, si recibía un ACK en el noveno pulso de reloj, quiere decir que el módulo con

respectiva dirección estaba conectado y el bit de de la variable se pondría en 1, de lo contrario se

pondría un 0 indicando que no ha sido conectado el módulo con dicha dirección.

Para lograr la identificación del módulo conectado a través de RS-232, el Maestro envía un

mensaje a éste y esperaba una respuesta. Si el Maestro no ha recibido alguna respuesta en un

determinado tiempo, quiere decir que el módulo no está conectado y el bit de la variable que lo

representa se pondría en 0, de lo contrario, estaría conectado y el bit se pondría en 1.

Para manejar los motores DC de baja potencia se usaron los módulos CCP

(Compare/Capture/PWM) que vienen integrados en el microcontrolador y se configuraron para

tener una señal PWM con un periodo de 20k Hz para que estuviera fuera del espectro auditivo.

Como el módulo maestro también tiene la capacidad de controlar un servomotor, si el usuario

deseaba manejar un servo motor y se utilizan las fórmulas del fabricante para configurar el

módulo CCP, sería necesario guardar en el registro PR2 el número 1000 si se usa una frecuencia

de oscilación interna de 8 Mhz, lo cual es inviable porque es un registro de 8 bits.

ݎ = [2 + 1] × 4 × ݏ × 2ܯ ݏݎEcuación 2: Ecuación usada para calcular el periodo de la señal de salida del CCP.

Debido a las limitaciones del módulo, no fue posible generar una señal PWM con ciclos útiles

entre 370us y 2ms con un periodo de 20 ms. Teniendo en cuenta que la precisión y la exactitud

eran indispensables para el correcto funcionamiento del circuito, se utilizaron los módulos

Page 31: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

30

Timerrestantes del microcontrolador y, a partir de las interrupciones de estos, se pudieronobtener

las señales PWM deseadas.

Como solamente estaban disponibles 2 timers (los módulos Timer3 y Timer1) y no 4, 1 para el

periodo de la señal PWM y los otros 3 para la generación del ciclo útil de cada motor, uno de los

timerses el responsable del periodo de la señal PWM, es decir 20ms, y el otro es el encargado de

los ciclos útiles.

Se realizó una tabla con los valores desde los cuales el timer encargado del ciclo útil debía

empezar a contar para obtener el ciclo útil deseado una vez se haya desbordado el timer. Cuando

el usuario deseaba manejar más de un servo motor, se usa la misma tabla pero de una manera

diferente. Como un módulo era el responsable de los ciclos útiles de tres señales PWM

diferentes, y cualquiera de ellas podría tener el ciclo útil menor, era necesario organizar de menor

a mayor los ciclos útiles. Una vez hecho esto, se carga el timer responsable de los ciclos útiles

con el valor de la tabla correspondiente al menor ciclo útil. Cuando se desborde, se apaga el ciclo

útil de la señal que debería apagarse y el timer se carga con la diferencia entre el siguiente ciclo

útil y el anterior, para que de esta forma sea posible manejar tres señales PWM con 2 timers.

Para crear el listado de instrucciones, se utiliza un vector de estructuras de 15 posiciones en

donde cada posición almacena la acción que el usuario desea realizar, la duración de ésta y si es

la última instrucción ingresada por el usuario. Para la medición de la duración de la acción se

utiliza el modulo interno del microcontroladorTimer0 que es configurado como un contador de

16 bits que utiliza el reloj interno, 8Mhz, y un prescaler de 8, por lo que cada vez que se desborde

el módulo habrán pasado 0.262 segundos, ver Ecuación 3, y por lo tanto ese tiempo sería la

resolución del contador.

óݑݏ = ݕݐ × 2#ௗ ௧௦ ௗ ௧ௗ × ݎݏݎEcuación 3: Resolución del Timer0.

Cada vez que éste se desborde aumenta en uno una variable de un byte llamada

tiempo_transcurrido, por lo tanto el tiempo máximo que se puede almacenar sin perder la

información correcta sería de 66 segundos aproximadamente.

Page 32: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

31

Se tiene un contador para cada señal pwm de salida llamado contador_motorX, donde X es un

valor entero entre 1 y 3, el cual es el encargado de llevar la cuenta del número de instrucciones

que el usuario ha ingresado pero cuando llega a un valor de 15 instrucciones almacenadas, deja

de incrementar. Cuando se presiona el botón Play para cambiar al estado Transición, el programa

revisa esta variable y dependiendo del valor de ésta, la última instrucción almacenada se actualiza

y carga en uno el valor correspondiente de la estructura. Si el usuario ingresa más de quince

instrucciones, el programa está diseñado para protegerse sobrescribiendo la última instrucción.

4.2 MÓDULO COMUNICACIÓN

Figura 14: Módulo comunicación.

4.2.1 DESCRIPCIÓN GENERAL

Este bloque posee un control hecho por unmicrocontrolador y está encargado de la comunicación

entre el computador y el módulo maestro por medio de la USART interna, agregándole la

capacidad al modulo maestro de ejecutar ordenes en tiempo real. La señal com_in es serial y tiene

las instrucciones que el usuario ha ingresado para su ejecución. Datos es una señal serial que le

indica a los motores las acciones que deben realizar.

Page 33: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

32

Figura 15: Máquina de estados del módulo comunicación.

En la Figura 15 está la máquina de estados del módulo comunicación. En el lugar “Inicialización”

se programan los pines de entrada y de salida del microcontrolador, se habilitan los periféricos

que se van a utilizar y la variable estado toma el valor de identificar para poder llegar al lugar

“Identificar”. En ese lugar se espera a que el módulo maestro envíe un comando a través de la

USART para responderle y de esta manera se le está avisando al módulo maestro que el módulo

comunicación está activo. En el lugar “Recepción” el programa espera a que el usuario ingrese

una instrucción a través del teclado del computador para que ésta sea enviada al módulo maestro

y pueda ser ejecutada.

4.2.2 ESPECIFICACIONES

CARACTERÍSITCA VALOR

Fuente de alimentación 5 V

Tasa de transmisión entre PC-módulo comunicaciones

Módulo comunicaciones – módulo maestro. 9600 bps

Fuente alimentación microcontrolador 3.2 V

Memoria de programación usada 934 bytes Tabla 3: Especificaciones módulo comunicaciones.

Teniendo en cuenta que existen 10 posiciones o velocidades por cada motor, el usuario deberá

utilizar el teclado con el fin de ingresar la velocidad deseada. La primera fila con letras del

teclado, desde la letra “q” hasta la “t”, sirve para seleccionar 5 de las 10 velocidades o posiciones

del motor controlado por la señal pwm1_out. La segunda fila, desde la letra “a” hasta la “g”,sirve

para seleccionar 5 de las 10 velocidades o posiciones del motor controlado por la señal

Page 34: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

33

pwm2_out. Por último, la tercera fila, desde la letra “z” hasta la “b”,sirve para seleccionar 5 de

las 10 velocidades o posiciones del motor controlado por la señal pwm3_out. Dado que los

teclados pueden ser distintos y para facilitar el uso del prototipo, las otras 5 posiciones o

velocidades de cada uno de los motores se dan por medio de las mayúsculas de las teclas ya

mencionadas.

Figura 16: Funcionamiento teclado.

4.2.3 HARDWARE

Se uso el microcontrolador PIC18F24J11 como el control de este módulo por el hecho de tener

dos periféricos USART. Uno de ellos se usa para recibir la información ingresada por el usuario a

través del teclado del computador, y el otro es usado para comunicarse con el módulo maestro

para que este ejecute éstas instrucciones.

Dado que el microcontrolador requiere una fuente de alimentación de entre 2 y 3.6 V, se utilizó

un regulador para garantizar un voltaje en este rango a partir de una fuente de 5 V.

También se utilizó el integrado MAX232 para adecuar los niveles de voltaje y poder comunicarse

con el computador a partir de una fuente de alimentación de 5 V.

A continuación se muestra el esquemático del módulo comunicaciones.

Page 35: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

34

Figura 17: Esquemático módulo comunicaciones.

4.2.4 SOFTWARE

Dado que la duración de la ejecución de la instrucción depende del tiempo que el usuario

mantenga presionado el teclado, y durante este tiempo el computador estará enviando varias

veces el mismo comando, el módulo comunicaciones se encarga de detectar este evento y

solamente le envía al módulo maestro el primero de la repetición. El módulo también tiene la

capacidad de detectar cuando el usuario ha dejado de presionar el teclado y le informa al módulo

maestro que tiene que dejar de realizar la instrucción que estaba ejecutando. Esto se hace con el

fin de liberar al módulo maestro de realizar operaciones y para disminuir el tamaño de la

programación en el módulo maestro. En la Figura 19 se puede observar el diagrama de flujo del

programa del módulo comunicaciones

Como se mencionó anteriormente una de las UART es utilizada para recibir el comando que el

usuario ha ingresado a través del teclado y esta instrucción es codificada en un byte en donde los

4 bits menos significativos (LSB) son la acción que se desea realizar y los 4 bits más

significativos (MSB) corresponden al motor encargado de realizar la acción. Una vez se haya

U1

PIC18F24J11

11

22

33

44

55

66

77

88

99

1010

1111

1212

1313

1414

28 28

27 27

26 26

25 25

24 24

23 23

22 22

21 21

20 20

19 19

18 18

17 17

16 16

15 15

R1

10k

0

PGD

PGC

R6

1k R7

1k

VCC 5V

PIN 12 max

VCC 5V

PIN 11 max

U4

MAX232

11

22

33

44

55

66

77

88

16 16

15 15

14 14

13 13

12 12

11 11

10 10

9 9

0

C110u

J1

HEADER 6

123456

MCLR

VCC 3V

R10

1kR11

1kPGDPGC

Rx

0 Tx

J2

db9

123456789

0

PIN 11 max

PIN 12 max

VCC 5V

0

Rx PC

Tx PC

Rx PCTx PC

C3

1u

1 20

C4

1u

12

C51u

1

2

C61u1

2

0

VCC 3V

J3

RJ11

1234

0

VCC 5V

TX

RX

VCC 5V

VCC 5V

U3

LM317/SO

VIN1

ADJ4VOUT 2

VOUT 3

VOUT 6

VOUT 7

VCC 5V

R8470

0

R9

1k

VCC 3V

Page 36: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

35

codificado, se utiliza el otro módulo USART se para transmitirle al módulo maestro esta

información mientras se permite la recepción y la codificación de otro comando ingresado por el

usuario.

Figura 18: Estructura de un comando codificado por el módulo comunicaciones.

Hay que resaltar que una vez este módulo sea identificado por el módulo maestro, el sistema

trabajará en “Tiempo Real” y a diferencia del estado “Ejecución” del módulo maestro, las

acciones solamente se realizan cuando el usuario oprime el teclado. La plataforma está diseñada

para que al trabajar en tiempo real con un servomotor, éste mantenga su posición hasta que una

nueva instrucción sea ingresada a través del teclado. Al contrario del servomotor, con los motores

de corriente continua ellos dejan de girar una vez el usuario ha dejado de presionar el teclado.

Page 37: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

36

Figura 19: Diagrama de flujo módulo comunicaciones.

Page 38: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

37

4.3 MÓDULO PUENTE H

Figura 20: Módulo puente h.

4.3.1 DESCRIPCIÓN GENERAL

El módulo puente H es el encargado de la interfaz eléctrica para el control de motores de

corriente continua a través de la señal p_out. Cualquiera de las señales PWM del módulo maestro

pueden ser las entradas a éste y a partir de ellas se logra el control de los motores. Este módulo

utiliza un puente H (LMD18200) diseñado para aplicaciones en donde se desee controlar el

movimiento a partir de una señal PWM, permitiendo así manejar el motor de corriente continua

del usuario. A diferencia de los demás módulos, el módulo puente H no contiene un

microcontrolador y es alimentado a partir de una fuente de 12V externa debido a los

requerimientos de los componentes.

4.3.2 ESPECIFICACIONES

CARACTERÍSITCA VALOR

Fuente de alimentación 12 V

Tasa de transmisión entre PC-módulo comunicaciones

Módulo comunicaciones – módulo maestro. 9600 bps

Consumo de corriente de fuente de alimentación 13 mA Tabla 4: Especificaciones módulo puente h.

Page 39: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

38

Si el usuario desea utilizar este módulo, debe conectar los jumpers de potencia ubicados en el

teclado del módulo maestro correspondiente a la señal pwm a la cual se le vaya a conectar el

módulo.De haberlo hecho correctamente, el LED de potencia de la señal respectiva se encenderá.

Si se conecta un servomotor cuando se conecta el jumper indicando que se desea utilizar el

módulo puente H,el motor no va a responder como lo desee el usuario debido a la programación

4.3.3 HARDWARE

En la Figura 21 se observa el Pin3, Pin4 y Pin5, que son las entradas de control del componente y

corresponden a la dirección, freno y señal PWM, respectivamente. Para lograr manejar

bidireccionalmente el motor de corriente continua, el Pin 5, que corresponde a la señal PWM, va

atado a un uno lógico. Por su parte, el Pin3, señal de dirección del bloque de control del

componente, va conectado a una señal con ciclo útil variable en la que está codificada tanto la

información de la dirección como la de la amplitud.

Figura 21: Diagrama de bloques funcional del LMD18200.3

Como se puede ver en laFigura 22, una señal PWM con ciclo útil del 50% no representa control

alguno sobre el movimiento, debido a que el valor promedio entregado a la carga es 0. Por el

3 Imagen tomada de [17].

Page 40: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

39

contrario, unas señales PWM con un ciclo útil del 75% y del 25% representan movimiento hacia

direcciones opuestas pero con la misma magnitud.

Figura 22: Señal de control aplicada al pin de direccción del puente h.

En la figura a continuación se muestra el esquemático del módulo puente H.

Figura 23: Esquemático módulo puente H.

U1

LMD18200

BO

OT

11

OU

T12

DIR

3

BR

AK

E4

PW

M5

VC

C6

GN

D7

CU

RR

EN

T8

TH

ER

MA

L9

OU

T210

BO

OT

211

J1

FUENTE

12

J2

MOTOR

12

VCC

0

OUT1

OUT2

C1

103

C2

103

PWM

R1

1k VCC

VCCVCC0 0 0

J3

conector

1234

VCC 5VPWM

0

0

OUT1

OUT2

C3

1n

Page 41: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

40

4.4 MÓDULO PUENTE H MICROCONTROLADO

Figura 24: Módulo puente h microcontrolado.

4.4.1 DESCRIPCION GENERAL

El módulo puente H microcontrolado es el encargado de la interfaz eléctrica para el control de

motores de corriente continua a través de la señal h_out. A diferencia del módulo descrito

anteriormente, éste se comunica con el módulo maestro por medio del protocolo I2C y a partir de

esta comunicación se generan las señales necesarias para lograr el control de los motores. Este

módulo también posee al menos una entrada análoga para la futura implementación de un control

de posición o de velocidad.

Figura 25: Máquina de estados módulo puente H microncontrolado.

Page 42: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

41

En la Figura 25se muestra la máquina de estados del módulo puente H microcontrolado. En el

lugar “Inicialización” se programan los pines de entrada y de salida del microcontrolador, se

habilitan los periféricos que se van a utilizar y la variable empezar toma el valor de 0 para poder

avanzar al lugar “Reposo”. En ese lugar, se espera hasta que el valor de la variable empezar

cambie a ON o a OFF, y dependiendo del valor, habilita o deshabilita el periférico encargado de

generar las señales necesarias para que el puente H maneje el motor según lo haya requerido el

usuario.

4.4.2 ESPECIFICACIONES

CARACTERÍSITCA VALOR

Fuente de alimentación puente H 12 V

Fuente alimentación microcontrolador 5 V

Tasa de transmisión con el módulo maestro 100 kbps

Consumo de corriente del microcontrolador 5 mA

Consumo de corriente del puente H 45 mA

Memoria de programación usada 717 bytes Tabla 5: Especificaciones módulo puente h microcontrolado.

4.4.3 HARDWARE

Figura 26: Diagrama de bloques funcional del L6203.4

4 Imagen tomada de [16].

Page 43: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

42

Se utilizó el puente H L6203 en este módulo para manejar los motores del usuario y, como se

puede ver en la Figura 26, este puente H posee tres señales de control (Enable, IN1 e IN2). Este

componente fue controlado a través del microcontrolador PIC18F4221 ya que éste tiene un

periférico, “Enhanced Capture/Compare/PWM”, con la habilidad de generar estas tres señales y

lograr el manejo del puente H.

En la figura a continuación se muestra el esquemático del módulo puente H microcontrolado.

Figura 27: Esquemático módulo puente H microcontrolado.

SCLSDA

U2

L6203

OU

T21

VS

2

OU

T13

BO

OT

14

IN1

5

GN

D6

IN2

7

BO

OT

28

VR

EF

9

SEN

SE10

EN

ABL

E11

RD1

0C1

104

VCC 12V

C2

104

0C3104

0

J1

I2C

1234

SCL

SDAVCC 5V0

U3

PIC18F4221

11

22

33

44

55

66

77

88

99

1010

1111

1212

1313

1414

1515

1616

1717

1818

1919

2020

2121

2222

3333

3232

31 31

30 30

29 29

28 28

27 27

26 26

2525

2424

2323

4444

4343

4242

4141

4040

3939

3838

3737

3636

3535

3434

VCC 5V

0

0

VCC 5V

PGCPGD

MCLR

J2

ICD2

12345

MCLRVCC 5V

PGDPGC

0

P1B

P1A

P1A P1B

out2

out1

J3

I2C

1234

SDA

SCL

0VCC 5V

RD1

J4

Motor

12

J5

Fuente

12

VCC 12V

0

out1out2

J6Analoga

1

Page 44: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

43

4.4.4 SOFTWARE

Se utilizó el MSSP del microcontrolador para comunicarse con el módulo maestro y se configuró

para que a través de interrupciones se logre la comunicación entre ellos. Como se puede ver en la

Figura 28, cuando el microcontrolador tenga que atender la interrupción, el valor de la variable

empezar cambia, y dependiendo del valor se habilita o deshabilita el ECCP.

Figura 28: Diagrama de flujo módulo puente h microcontrolado.

4.5 MÓDULO DISPLAY

Figura 29: Módulo display.

Page 45: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

44

4.5.1 DESCRIPCIÓN GENERAL

Es el módulo microcontrolado que por medio de la conexión con el módulo maestro, a través de

I2C, permite la visualización del estado en el cual el sistema está operando.

En la Figura 30se muestra la máquina de estados del módulo display. En el lugar “Inicialización”

se programan los pines de entrada y de salida del microcontrolador, se habilitan los periféricos

que se van a utilizar y la variable estado toma el valor de actualizar para poder avanzar al lugar

“Actualizar”. Como su nombre lo indica, en este lugar se actualiza el display dependiendo el

estado en el que se está operando. En el lugar “Tiempo” se espera el tiempo para luego volver a

actualizar el display.

Figura 30: Máquina de estados módulo display.

4.5.2 ESPECIFICACIONES

CARACTERÍSITCA VALOR

Fuente alimentación 5 V

Tasa de transmisión con el módulo maestro 100 kbps

Consumo de corriente 7 mA

Memoria de programación usada 2128 bytes Tabla 6: Especificaciones módulo display.

Page 46: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

45

4.5.3 HARDWARE

Se utilizó un LCD que contiene un controlador Hitachi HDD44780 para mostrarle al usuario el

estado en el cual ésta el módulo maestro. A este controlador se le enviaron las instrucciones a

través del microcontrolador PIC18F2221 que fue escogido para controlar el módulo display.

En la figura a continuación se muestra el esquemático del módulo display.

Figura 31: Esquemático módulo display.

4.5.4 SOFTWARE

Para controlar el LCD se utiliza la libreria XLCD de Microchip y se crearon funciones para

actualizar el display y simular una animación en el LCD. En la se muestra la implementación de

la máquina de estados del módulo display.

U2PIC18F2221

11

22

33

44

55

66

77

88

99

1010

1111

1212

1313

1414

2828

2727

2626

2525

2424

2323

2222

2121

2020

1919

1818

1717

1616

1515

U1

LCD

11

22

33

44

55

66

77

88

99

1010

1111

1212

1313

1414

1515

1616

R410k 0 SCL

SDA0VCC

0

R21k

VCC

0

R1

330

VCC

R310k

VCC

VCC

J1

I2C

1234 SCL

SDAVCC

0

Page 47: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

46

Figura 32: Diagrama de flujo del módulo display.

4.6 MÓDULO SENSOR

Figura 33: Módulo sensor.

Page 48: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

47

4.6.1 DESCRIPCIÓN GENERAL

Este módulo microcontrolado está conformado por un sensor de contactoon/off que por medio de

I2C tiene la capacidad de entregar los datos obtenidos al módulo maestro cuando éste los necesite

para detener la ejecución de las instrucciones. Hay que recalcar que el sensor de contacto no está

soldado en el circuito impreso debido a la futura implementación de otro sensor.

En la Figura 34 se muestra la máquina de estados del módulo sensores. En el lugar

“Inicialización” se programan los pines de entrada y de salida del microcontrolador, se habilitan

los periféricos que se van a utilizar y la variable estado toma el valor de identificar para poder

avanzar al lugar “Sensado”. En ese lugar, se espera hasta que la dirección enviada a través del bus

I2C coincida con la dirección del módulo para enviar enviar a través del bus I2C el estado del

sensor, y dependiendo de este valor, el módulo maestro decide si es necesario detener o seguir

ejecutando la lista de instruciones ingresada por el usuario.

Figura 34: Máquina de estados módulo sensores.

4.6.2 ESPECIFICACIONES

CARACTERÍSITCA VALOR

Fuente alimentación 5 V

Tasa de transmisión con el módulo maestro 100 kbps

Consumo de corriente 7 mA

Memoria de programación usada 529 bytes Tabla 7: Especificaciones módulo sensores.

Page 49: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

48

4.6.3 HARDWARE

Se utilizó un microswitch como un sensor de contacto tipo on/off. Sin embargo el usuario tiene la

capacidad de cambiar el sensor y utilizar otro que utilice niveles de voltaje CMOS.

En la figura a continuación se muestra el esquemático del módulo sensores.

Figura 35: Esquemático módulo sensores.

4.6.4 SOFTWARE

Por medio de interrupciones de periférico MSSP el módulo sensor se comunica con el módulo

maestro. Éste es el único módulo que durante la comunicación a través del bus I2C actua como un

esclavo transmisor.

4.7 VARIABLES DE ENTRADA

4.7.1 DATOS A TRAVÉS DE RS-232

Cuando el usuario desea manejar el módulo en tiempo real, lo hará desde un computador a través

de un programa que permita la transmisión de datos del puerto serial del computador a una

velocidad de 9600 bits por segundo. Debido a que la finalidad del proyecto es la realización de un

prototipo y no incluye el diseño de una aplicación con las características ya mencionadas, se

U1

PIC18F2221

11

22

33

44

55

66

77

88

99

1010

1111

1212

1313

1414

2828

2727

2626

25 25

2424

23 23

2222

21 21

2020

19 19

1818

17 17

1616

1515

J1

sensor

123

comun

VCC

R1

10k

R2

10k

VCC

0

0

VCC

comun

SCL SDA

0

J2

I2C

1234 SCL

SDAVCC

0

Page 50: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

49

utilizará Terminal para llevar a cabo esta tarea. Dependiendo de la información introducida desde

el teclado, el módulo maestro se encarga de realizar las acciones pertinentes.

4.7.2 SENSOR DE CONTACTO

El módulo de sensores es un sensor de contacto que indica si ha habido contacto o no con algún

objeto. Si se está trabajando en tiempo real, el módulo maestro ignora esta señal y realiza las

instrucciones que el usuario le esté enviando a través del computador. Sin embargo si el sistema

está en modo ejecución, el módulo maestro va a revisar está variable y cuando ésta indique que

ha habido contacto con algún objeto, el módulo maestro deja de ejecutar instrucciones y pasa

inmediatamente a modo reposo.

4.7.3 BOTONES MÓDULO MAESTRO

Estos botones están ubicados en el módulo maestro y están clasificados en dos grupos:

Programación

Rutinas preestablecidas

En el grupo de rutinas preestablecidas hay botones en donde cada uno corresponde a una rutina

para los motoresysólo se usan una vez el botón de programación ha sido pulsado.En el grupo de

programación hay un botón para cada motor para indicarle al módulo maestro a cúal de estos se

le va a crear una lista de instrucciones para ser ejecutada cuando el usuario lo determine.Hay que

aclarar que estos son ignorados si el sistema está trabajando en modo tiempo real.

4.7.4 PROGRAMACIÓN PUENTE H

A través de la señal Potencia [1:3] y de un‘jumper’ para cada motor el usuario tiene la capacidad

de indicarle al módulo Maestro que se va a conectar un módulo Puente H para que este pueda

manejar correctamente este módulo.

4.8 VARIABLES DE SALIDA

4.8.1 VISUALIZACIÓN GRÁFICA

A través de un diplay LCD manejado por un microcontrolador, se le indicará a un usuario el

modo de operación, o estado, en el cual está el sistema. Independientemente si se tiene conectado

el display LCD, el módulo maestro tendrá 2 tipos deLED’s. El primer tipo consiste en 3

Page 51: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

50

LED’srojos, uno para cada motor, que sirven como una advertencia para indicarle al usuario que

ha decidido conectar un módulo Puente H. El segundo tipo consiste en 2 LED’s que le indican al

usuario el estado del sistema a través de un LED verde, que le indicaal usuario que sistema está

operando en el modo Tiempo Real o si está ejecutando las instrucciones almacenadas por el

usuario, y un LED amarillo,el cual es el encargado de avisarle al usuario que el prototipo está en

modo programación.

4.8.2 SEÑALES PWM

El módulo maestro tiene la capacidad manejar tres motores a partir de 3 PWMs que hacen parte

de los periféricos internos del microcontrolador que controla este módulo. Cada una de éstas es

una señal cuadrada que es sometida a cambios en el ciclo útil dependiendo de las instrucciones

del usuario. Como se desea controlar tanto motores DC como servomotores, estas señales van a ir

conectadas a una etapa de salida que le proporcione la corriente que requieran los motores de

corriente continua.

4.8.3 SALIDA PUENTE H Y PUENTE H MICROCONTROLADO

La salida del puente H y del puente H microcontroladoes una señal que le indica al motor la

velocidad y la dirección a la cual debe girar, avance o retroceso. La diferencia entre estas dos

señales es que el puente H está conectado directamente al módulo maestro mientras que el puente

H microcontrolado se comunica con el módulo maestro a través del bus I2C.

4.8.4 ENTRADA ANÁLOGA EN EL PUENTE H MICRO

Es una entrada análoga para la futura implementación de un control de posición o de velocidad.

5 PRUEBAS,RESULTADOS Y ANÁLISIS DE LOS MISMOS

El proyecto se pensó para que la programación estuviera libre de interrupciones para no tener

problema con las “zonas críticas” del programa y tener completo control sobre el flujo de

programación, sin embargo, como los microcontroladores usados en el prototipo tienen

incorporadola interfaz MSSP, Master Synchronous Serial Port, (la cual implementa todas las

funciones del Maestro y del Esclavo en un bus I2C por hardware y permite detectar las

condiciones y los estados de la comunicación a través de interrupciones o de registros

Page 52: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

51

internos).Una vez lograda la configuración del módulo, se procedió a realizar una prueba de

comunicación con un esclavo con dirección 0x02.

Figura 36: Comunicación bajo el protocolo I2C entre 2 microcontroladores.

LaFigura 36fue tomada del analizador de estados lógicos LA-5000 a una rata de muestreo de

500k por segundo, y en ésta se pueden ver los distintos estados de una comunicación de un byte

bajo el protocolo I2C entre dos microcontroladores.

5.1 PRUEBA DE ALMACENAMIENTO

Como el módulo maestro tiene la capacidad de almacenar 15 estructuras de instrucciones, en

donde cada una de éstas está compuesta por un byte que representa la acción que debe realizar el

motor y otro byte que representa la duración de la misma, es fundamental que el programa

almacene los datos correctos. Para la verificación de esto, se utiliza el programador de Microchip

en modo debugger para confirmar que éste esté almacenando los datos correctos. La prueba

consistía en ir aumentado en 5 segundos hasta llegar a un minuto la duración de la instrucción

que iba ir rotando a medida que iba aumentando el tiempo.

Como se explicó en la sección Módulo Maestro, con 8 Mhz como frecuencia de oscilación

interna, se genera una resolución de de 0,262 segundos por cada desbordamiento del timer0

aproximadamente. En la Tabla 8 se pueden observar el número de veces que el contador debe

desbordarse para poder reproducir la instrucción durante el mismo transcurso de tiempo.

Page 53: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

52

Segundos Valor decimal Valor hexadecimal

5 19.0729043 13

10 38.1458085 26

15 57.2187128 39

20 76.2916171 4C

25 95.3645213 5F

30 114.437426 72

35 133.51033 85

40 152.583234 98

45 171.656138 AB

50 190.729043 BE

55 209.801947 D1

60 228.874851 E4 Tabla 8: Valores de equivalencia del tiempo en valores numéricos

La Tabla 9muestra a la izquierda las instrucciones ingresadas y su duración y a la derecha de la

tabla se encuentran los valores que el microcontrolador almacenó. De las casillas del tiempo

almacenado se puede observar que aquellas que contienen 0, es debido al rebote del teclado, por

lo que se implemento un anti-rebotes por medio de software el cual consiste en realizar una un

delay una vez se haya detectado que el usuario ha dejado de presionar el botón. El resto de las

casillas confirman que el módulo maestro está almacenando correctamente la duración con un

error de ± 0.262 segundos. De las acciones almacenadas se puede concluir que el

microcontrolador está funcionando correctamente porque guarda el valor en hexadecimal de la

acción ingresada por el usuario. Una vez se implemento el anti rebotes, el control del módulo

maestro fue capaz de almacenar correctamente tanto las instrucciones como el tiempo de

duración de éstas.

Page 54: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

53

Instrucción Ingresada Almacenada

Posición Tiempo Acción Tiempo Acción

0 5 0% 0 8

1 10 25% 13 8

2 15 50% 26 9

3 20 75% 3A A

4 25 100% 0 A

5 30 0% 4C B

6 35 25% 5F C

7 40 50% 73 8

8 45 75% 85 9

9 50 100% 98 A

10 55 0% 0 A

11 60 25% AC B

12 BE C

13 D1 8

14 0 8 Tabla 9: Resultado prueba almacenamiento.

5.2 PRUEBA PWM’S

Se diseñó una serie de pruebascuyo fin consistía en la detección de alguna señal PWM con ciclo

útil erróneo. La primera parte de la prueba consistía en la verificación de la configuración del

módulo CCP del microcontrolador. Para obtener una señal de 20kHz con una frecuencia de

oscilación interna de 8Mhz, se cargó el registro PR2 con 99 y que el valor del prescaler sea la

unidad. Luego, con la ayuda de un osciloscopio se midieron los tiempos de duración de los

distintos ciclos útiles para verificar la correcta configuración del módulo.

La Tabla 10 muestra los resultados y confirma que el módulo CCP está bien configurado y listo

para ser usado por los motores de corriente continua.

Page 55: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

54

Velocidad CCPRxL % de PR2 Tiempo [s] Medido [µs]

1 0 0 0 0

2 40 0.4040404 2.0202E-05 20

3 45 0.45454545 2.2727E-05 22

4 52 0.52525253 2.6263E-05 26

5 60 0.60606061 3.0303E-05 30

6 68 0.68686869 3.4343E-05 34

7 75 0.75757576 3.7879E-05 37

8 83 0.83838384 4.1919E-05 41

9 91 0.91919192 4.596E-05 45

10 99 1 0.00005

Tabla 10: Resultado configuración CCP.

Las siguiente parte constaba en la medición de los ciclos útiles de las señales PWM creadas a

partir de las interrupciones de los periféricos del microcontrolador del módulo maestro. La

prueba consistió en la medición de los ciclos útiles de las señales cuando éstas eran la menor, la

intermedia y la de mayor duración.

En la Tabla 11 se puede ver el valor de estas señales en cualquiera de los tres casos mencionados,

el valor promedio de los tres casos y la diferencia entre el valor esperado y el valor medido con el

analizador de estados lógicos. De esta tabla se puede concluir que los resultados obtenidos

concuerdan con los esperados.

Como ya se confirmó que tanto las señales pwm generadas por el CCP como las generadas a

partir de interrupciones responden como debería, la última parte de la prueba trataba en probar las

tres señales pwm generadas por el módulo maestro al tiempo con valores aleatorios. La Tabla 12

resume las cuatro pruebas que se realizaron

Page 56: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

55

Prueba

Acción

# 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 PROMEDIO

[us]

DATO

ESPERADO

[us]

DELTA

[us]

0 372 372 370 2

1 574 572 573 570 3

2 772 774 772 772.667 770 2.667

3 972 974 972 972.667 970 2.667

4 1172 1176 1172 1173.333 1170 3.333

8 1374 1374 1372 1373.333 1370 3.333

9 1572 1576 1572 1573.333 1570 3.333

10 1774 1776 1772 1774 1770 4

11 1972 1976 1974 1970 4

12 2174 2174 2170 4 Tabla 11: Resultado prueba verificación ciclos útiles.

Prueba 1

Motor DC de baja potencia

Motor DC de baja potencia

Motor DC de baja potencia

Prueba 2

Motor DC de baja potencia

Motor DC de baja potencia

Servomotor

Prueba 3

Motor DC de baja potencia

Servomotor

Servomotor

Prueba 4

Servomotor

Servomotor

Servomotor Tabla 12: Conjunto de pruebas PWM.

La prueba 1 y 2 salieron exitosas sin problema alguno ya que las señales que manejan a los

motores respondieron como se había visto en las pruebas anteriores. En la prueba 3 se pudieron

detectar dos resultados en los cuales la señal que maneja al motor de baja potencia era la

esperada.Sin embargo, si se realiza una prueba en donde la señal de control de los dos

servomotores tiene distinto ciclo útil ambos responden correctamente. Sin embargo, si la prueba

consiste en que cada una de la señal de control de los dos servomotores tenga el mismo ciclo útil,

Page 57: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

56

se va a presentar un desfase en donde un ciclo útil de las señales va a aumentar en 10

microsegundos.Estos retardos se deben a que el microcontrolador no carga de manera instantánea

el registrorespectivo debido a que debe realizar cálculos lógicos que debe realizar antes de

actualizar cada señal.

5.3 PRUEBA INTERCONEXIÓN

También se realizaron pruebas interconectando los módulos con el módulo maestro.Estas pruebas

consistían en probar el funcionamiento del módulo maestro con un módulo adicional. Una vez

que ya se había probado que todos los módulos funcionaban correctamente con el módulos

maestro, se procedió a ir conectando más de uno.

De las pruebas realizadas se pudo concluir que los módulos que se comunican a través del bus

I2C lograron comunicarse exitosamente cuando el módulo maestro deseaba iniciar con una

comunicación con ellos. La señal de control del módulo puente H tuvo la capacidad de manejar el

dispositivo electrónico seleccionado para que éste genere las señales para menajar el motor. El

módulo comunicación es detectado por el módulo maestro,y envía las señales a través de RS-232

para que el módulo maestro maneje los motores, sin embargo, si se llegan a conectar los

servomotores el microcontrolador se detiene por los picos de corriente de los servomotores.

6 CONCLUSIONES

Como el proyecto involucra varios módulos que se pueden adicionar o remover cuando se desee,

se logró que el módulo maestro tenga la capacidad de poder identificar que módulos están

conectados a él. Para lograr esto se aprovecha las ventajas del bus I2C y se les asigna una

dirección a cada uno de los módulos que van a estar conectados a este bus, y el módulo maestro

hace un barrido de estas direcciónes y si alguna de estas direcciones responde, quiere decir que el

módulo correspondiente a esa dirección está conectado, de lo contrario no.

La escalabilidad del proyecto se logra gracias a que la comunicación con los módulos fue

realizada a partir del protocolo de comunicación I2C ya que este protocolo permite que otros

módulos sean agregados o removidos del sistema sin afectar los demás circuitos en el bus.

Page 58: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

57

Solamente es necesario que cada dispositivo conectado al bus tenga una dirección única con la

cual se identifique y logre comunicarse con el maestro.

Se diseñó un módulo capaz de manejar 3 motores que por medio de señales PWM creadas a

partir de dos contadores, uno encargado del periodo de la señal y el otro del ciclo útil de la

misma, de un microcontrolador ya que con una frecuencia de oscilación de 8 Mhz fue inviable

porque no es posible generar señales PWM con periodo de 20ms con ciclos útles entre 370 y

2270 µs. De ser necesario, más señales PWM pueden ser generadas a través de la misma manera

teniendo en cuenta que si se desea crear más de una señal con el mismo ciclo útil se va a

presentar un aumento de 10 µs por cada señal debido a que el microcontrolador tiene que hacer

operaciones lógicas antes de actualizar cada señal.

Dado que los módulo realizados en el software del módulo maestro fueron ejecutados de manera

modular, en donde la comunicación entre ellos se logra por medio de banderas es posible la

reutilización del código en otros proyectos y de esta forma es posible la reducción del tiempo de

desarrollo de los mismos. Gracias a este tipo de programación también resultó más fácil los

diagnósticos de errores ya que cada uno de estos es idependientey por lo tanto se pueden realizar

pruebas aisladas del resto del código. Gracias a este tipo de programación también se lograron

hacer pruebas independientes a cada módulo antes de interconectarlo con el módulo maestro con

otro prototipo cuyo funcionamiento ya estaba verificado.

La realización de dos prototipo permitió que el desarrollador puediera realizar pruebas con ambos

prototipos y tener una referencia con la que se podía comparar el otro conjunto de circuitos y

escoger el mejor diseño.

Tanto el analizador de estados como un programador utilizado como debugger, fueron

herramientas fundamentales para el desarrollo del diseño. A través del analizador de estados era

posible ver los mensajes que se estaban transmitiendo entre microcontroladores y verificar si

estos estaban correctos. El debugger permitió verificar que la programación fue acorde a los

diagramas de flujo, creados en una etapa anterior a la de programación, y ver los datos que los

microcontroladores almacenaban durante la ejecución del programa.

Page 59: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

58

En el módulo sensores, se dejó un conector de tres pines (entrada al microcontrolador, tierra y

fuente) con el fin de poder intercambiar el sensor de acuerdo a las necesidades del usuario.

Solamente es necesario que la señal de salida del sensor esté entre 0 y 5V y utilice los niveles de

voltaje CMOS.

Las pruebas confirmaron la necesidad de un antirebotes,que fue implementado en software, para

que el módulo maestro almacenara las instrucciones ingresadas por el usuario de manera correcta;

de lo contrario se almacenarían instrucciones de duración de 0. Almacenar una lista de

instrucciones en una estructura y usar apuntadores a estas estructuras fue una ventaja porque

solamente con un parámetro se pueden modificar varias variables y se disminuye el tiempo y

memoria utilizada en el stack cuando se está guardando el contexto del programa a la hora de

realizar una función.

Como se pudo observar en la Prueba interconexión, es indispensable aislar las tierras y colocar

condensadores de desacople en cada uno de los módulos por los picos de corriente que tanto los

motores como los servomotores exigen para iniciar a rotar. Una evidencia de esto es la

disminución de la intensidad de iluminación que se presenta en la visualización gráfica del

módulo maestro que ocurre cada vez que los servomotores cambian de posición.Es por esto que

de ser posible, sería optimo utilizar 2 fuentes independientes, una para alimentar a los distintos

módulos y otra para alimentar a los motores. Esto se pudo verificar con un prototipo realizado

condos fuentes independientes y funcionó correctamente y el consumo de corriente no afectó al

sistema.

Page 60: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

59

7 COSTOS Y FUENTES DE FINANCIACIÓN RECURSOS HUMANOS HORAS HOMBRE CANTIDAD VALOR UNITARIO TOTAL

Desarrolladores 650 1 $ 35,000 $22,750,000

Director 160 1 $ 50,000 $8,000,000

TOTAL RECURSOS HUMANOS $30,750,000

EQUIPOS FTE. FINANCIACIÓN CANTIDAD VALOR UNITARIO TOTAL

Computadores Propia 1 $ 1,650,000 $1,650,000

Conector DB-9 Propia 1 $ 6,000 $6,000

Impresos Propia 6 $ 50,000 $300,000

LED’s Propia 3 $ 500 $1,500

Micro switch Propia 1 $ 1000 $1,000

Elementos discretos Propia - - $ 10,000

Display LCD Propia 1 $ 20,000 $20,000

Max 232 Propia 1 $ 2,500 $ 2,500

Puente H Propia 2 $ 30,000 $60,000

Procesadores Propia 5 $ 5,000 - 9,000 $ 30,000

Programador Arrendamiento 1 $ 400,000 $400,000

Equipos de medición Arrendamiento 4 $ 200,000 $800,000

TOTAL EQUIPOS $ 3,281,000

TOTAL $34,031,000 Tabla 13: Costos y fuentes de financiación del proyecto.

Page 61: CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA PLATAFORMA …

60

8 BIBLIOGRAFÍA Y FUENTES DE INFORMACIÓN

[1] Jingke Yu; Rong Liu; Houxiang Zhang; Jianwei Zhang; , "Design and development of an assisting robotic arm in minimally invasive breast surgery," Robotics and Biomimetics, 2007. ROBIO 2007. IEEE International Conference on , vol., no., pp.349-354, 15-18 Dec. 2007.

[2] E. Ruiz-Velasco Sánchez, Educatrónica: Innovación en el aprendizaje de las Ciencias y la tecnología, Ediciones Díaz de Santos, 2007.

[3] O. Miglino, H. Hautop, M. Cardaci, “La robótica como herramienta para la educación”.ftp://ftp.daimi.au.dk/Staff/hhl/EduRobSp.pdf

[4] F. Eady, Networking and Internetworking with Microcontrollers, Newnes , 2004.

[5] Philips Semiconductors, “The I2C-bus specification,” Jan. 2000. [6] Microchip Technology Inc., “PICmicro® DC Motor Control Tips ‘n Tricks” 2004.

[7] E. Palacios, F. Remiro, and L. Lucas Jose, Microcontrolador PIC16F84 Desarrollo de proyectos, Mexico: Alfaomega Grupo Editar, 2004.

[8] M. Ruff, “AN2396 Servo Motor Control Application on a Local Interconnect Network (LIN) ,” Dec. 2005.

[9] Microchip Technology Inc., “PICmicro® CCP and ECCP Tips ‘n Tricks” 2003. [10] Microchip Technology Inc., “PICmicro™ Mid-Range MCU Family Reference Manual”

1997.

[11] Microchip Technology Inc., “AN736 An I2CTM Network Protocol for Environmental Monitoring” 2000.

[12] Microchip Technology Inc., “PIC18F46J11 Family Data Sheet” 2009. [13] Microchip Technology Inc., “PIC18F4321 Family Data Sheet” 2007.

[14] Microchip Technology Inc., “PIC18F6310/6410/8310/8410 Data Sheet” 2007. [15] Texas Instruments Incorporated, “MAX232, MAX232I Dual EIA-232 Drivers/Receivers”,

March 2004. [16] SGS-THOMSON Microelectronics, “L6201- L6202- L6203 DMOS Full Bridge Driver”,

July 1997. [17] National Semiconductor, “LMD18200 3A, 55V H-Bridge”, April 2005.

[18] Fairchild Semiconductor Corporation, “2N7000 / 2N7002 / NDS7002A N-Channel Enhancement Mode Field Effect Transistor”, November 1995.