capitulo iv resultados de la i nvestigacion

57
54 CAPITULO IV RESULTADOS DE LA INVESTIGACION. La investigación se desarrolló basándose en la metodología expuesta por Angulo; en cada fase expuesta por este autor se obtuvieron una serie de resultados de relevancia las cuales se describen a continuación. Fase 1: Definición de las especificaciones. El sistema desarrollado posee un diseño enfocado en torno a la forma característica del calamar, este molusco cefalópodo cuenta con un cuerpo cónico alargado en forma de flecha, de terminación puntiaguda, con propiedades hidrodinámicas que facilitan el movimiento dentro de los entornos acuáticos, con un par de aletas laterales móviles que permiten el direccionamiento dentro del medio, para mantener su estabilidad se cuenta con un juego de aletas dorsales y frontales. Su recubrimiento externo está compuesto por una membrana de látex, la cual a su vez es excelente para hacerlo impermeable. En su parte inferior se encuentran la cabeza y los tentáculos que sobresalen, en la parte inferior de la cabeza se encuentra una cavidad por la cual sale un chorro de agua generado por una pequeña turbina que se

Upload: others

Post on 04-Jul-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

54

CAPITULO IV

RESULTADOS DE LA INVESTIGACION.

La investigación se desarrolló basándose en la metodología expuesta

por Angulo; en cada fase expuesta por este autor se obtuvieron una serie de

resultados de relevancia las cuales se describen a continuación.

Fase 1: Definición de las especificaciones.

El sistema desarrollado posee un diseño enfocado en torno a la forma

característica del calamar, este molusco cefalópodo cuenta con un cuerpo

cónico alargado en forma de flecha, de terminación puntiaguda, con

propiedades hidrodinámicas que facilitan el movimiento dentro de los

entornos acuáticos, con un par de aletas laterales móviles que permiten el

direccionamiento dentro del medio, para mantener su estabilidad se cuenta

con un juego de aletas dorsales y frontales. Su recubrimiento externo está

compuesto por una membrana de látex, la cual a su vez es excelente para

hacerlo impermeable.

En su parte inferior se encuentran la cabeza y los tentáculos que

sobresalen, en la parte inferior de la cabeza se encuentra una cavidad por la

cual sale un chorro de agua generado por una pequeña turbina que se

Page 2: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

55

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

encuentra en el interior del mismo. El chorro es direccionado por medio de un

timón, el mismo está acoplado a un servomotor el cual lo posiciona.

Internamente esta posee una estructura esquelética, liviana, que le

permite suspender dentro de la membrana de látex todos los componentes y

actuadores necesarios para su funcionamiento. En la parte superior de la

estructura se encuentran varios filamentos que permiten darle la forma

cónica puntiaguda que incluye los soportes para el apoyo de los

servomotores, estos últimos permiten el movimiento de las aletas laterales.

En el plano posterior se encuentra la apertura de entrada de la turbina así

como el soporte de la misma.

La batería se encuentra situada en la parte posterior inferior de la

estructura para permitirle al sistema un mejor equilibrio; sobre este último se

encuentran localizados los circuitos de control y monitoreo de señales

presentes en el sistema.

Los sensores que permiten la localización de fuentes luminosas se

encuentran ubicados en la parte anterior superior, alineada con los

servomotores de direccionamiento. Este sensor se caracteriza por presentar

una forma de diamante que permite localizar más fácilmente una fuente

luminosa. En la parte media de las aletas lateras se encuentran un juego de

sensores de contacto con los cuales el sistema robótico es capaz de

establecer el contacto con objetos dentro del entorno en el que se

desenvuelve; el robot cuenta a su vez con sensores de contacto en la zona

posterior media, así como también en la zona anterior media. En la parte

Page 3: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

56

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

inferior del robot, dentro del tentáculo largo derecho se encuentra un sensor

de fondo, este mismo permite establecer el contacto con el fondo del medio

acuático.

La decisión de las acciones a tomar se encuentran almacenadas

dentro de un microcontrolador, el cual le permite al sistema obtener la

autonomía necesaria para desenvolverse dentro del medio marino o

acuático.

Fase 2: Esquema general del hardware.

En esta fase se definió la función y características que presentan las

estructuras dentro del sistema robótico, en el figura 14 se puede observar en

forma de bloques la estructura del sistema.

Figura 14. Esquema general del Hardware.

Fuente: García (2002)

Page 4: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

57

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

El dispositivo principal de la estructura es el Microcontrolador, el cual

se encarga de monitorear los sensores que se encuentran dentro del

sistema, así como el control de los dispositivos electrónicos y

electromecánicos que se encuentran presentes. Gracias a los sensores es

que el Microcontrolador puede conocer y obtener la información del entorno

donde se encuentre, con esta información es capaz de tomar decisiones

sobre las acciones a tomar en cuanto al posicionamiento general.

Dentro de esta estructura se encuentran los sensores, encargados de

transformar las variables físicas de un entorno a pulsos eléctricos que

pueden ser descifrados por el Microcontrolador, estos dispositivos son los

que le permiten al Microcontrolador tener un enlace directo con el entorno

donde se desenvuelve el sistema; dentro del mismo se aprecian dos tipos de

sensores, los de luz que permiten establecer la localización de una fuente de

energía luminosa y los sensores de contacto que permiten determinar el

acercamiento con alguna variable del entorno. Estos dispositivos son de

entrada, debido a que los mismos le brindan información al microcontrolador.

Dentro la estructura del sistema se encuentra del mismo modo

dispositivos de salida, uno de ellos es el sistema de propulsión reflejado en

una turbina de motor eléctrico que genera por acción de una propela un flujo

o chorro de agua capaz de permitir el movimiento dentro del medio acuático,

el control del chorro de agua es reali zado por el Microcontrolador, el cual

decide el momento de su activación o desactivación.

Page 5: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

58

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Otro de los módulos del sistema son cada uno de los servomotores

que controlan las aletas direccionales, y el timón que controla la dirección del

chorro de agua, estos dispositivos son capaces de ubicarse en una posición

específica deseada, esta posición la define el Microcontrolador por medio de

modulación PWM (Pulse Wide Modulation); estos últimos se encuentran

conectados a los dispositivos mecánicos que permiten el direccionamiento

del robot dentro del medio en el cual se desenvuelve, mientras que otro de

estos servomotores es el encargado de direccionar el chorro de propulsión

del sistema.

Fase 3: Ordinograma General.

En la figura 15 se puede observar un diagrama de flujo general del

funcionamiento del robot, el cual se explica a continuación.

El sistema se inicia estableciendo las variables en valores predefinidos

para el sistema, de posición de cada uno de los dispositivos

electromecánicos, seguidamente se realiza un barrido de los sensores

presentes para conocer las variables del entorno donde se encuentra, una

vez conocida estas variables el sistema se empieza a desplazar dentro del

medio de manera aleatoria para la búsqueda del alimento, para este caso el

alimento para el robot se presenta como una fuente de energía luminosa,

una vez que el sistema localiza una fuente de luz, entra en un periodo de

estabilización para mantenerse frente a la fuente de energía.

Page 6: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

59

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Figura 15. Diagrama de flujo general del sistema.

Fuente: García (2002).

Si la fuente de energía desaparece, se busca nuevamente la fuente de

energía con movimientos aleatorios; estos movimientos se intercambian en

una serie de patrones, como lo son ascensión con movimientos laterales,

ascensión girando sobre su propio eje, o una ascensión rápida a la

superficie. Es de notar que el robot también desciende lentamente.

Si el robot registra contacto con el fondo, realiza una rutina de

ascensión.

Page 7: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

60

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Fase 4. Adaptación entre el hardware y el software

El hardware electrónico del sistema robótico se basó en el

Microcontrolador PIC 16F877, el cual presenta un diseño estructural que se

adapta a las necesidades del diseño. En la figura 16 se observan las

interconexiones del sistema propuesto.

Figura 16. Interconexiones del sistema.

Fuente: García (2002).

En el puerto A del Microcontrolador se encuentran las entradas

analógicas del sistema, con las que se monitorea la ubicación de la fuente de

Page 8: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

61

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

energía luminosa, para ello se interconectaron al Microcontrolador cinco

transductores analógicos de iluminación, los mismos están dispuestos en

forma de diamante, este tipo de sensor se caracteriza por tener un

dispositivo foto resistivo, el cual cambia su resistencia dependiendo de la

cantidad de energía luminosa que se le suministre; dentro de la codificación

del programa se activa el bit GO/DONE del registro ADCON0 que permite el

inicio de la conversión analógica / digital, una vez finalizada la conversión

automáticamente el bit GO/DONE regresa a un estado bajo (se desactiva).

La información de la conversión analógica / digital se almacena en los

registros ADRESH y ADRESL, con esta información se pueden tomar las

decisiones de las rutinas a seguir dentro del programa.

En el bit 6 del puerto B se encuentra conectado el circuito de

activación o desactivación de los sensores del robot, y en el bit 7 del mismo

puerto se encuentra conectado el circuito que permite conocer el contacto

con el fondo del medio, ambas señales son digitales de entrada, ya que solo

se establece dos estados, abierto o cerrado. Dentro del código del programa

se encuentra una instrucción que permite la lectura de cada uno de los bits

del puerto, dicha instrucción es BTFSS que permite conocer si el bit deseado

se encuentra en un estado alto o bajo. Posteriormente se almacena en un

registro de propósito general para ser utilizado en la toma de decisiones de

las acciones a tomar.

El puerto C se encuentra dividido en dos partes, la parte baja del

mismo está configurada como salida, a diferencia de la parte alta que es de

Page 9: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

62

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

entrada; en la parte baja se encuentran cuatro dispositivos, el primero de

ellos es una pequeña turbina que genera un chorro de agua, la misma esta

conectada en el bit 3 del puerto y es controlada por un impulso electrónico

alto, el comando que genera la activación de la misma es BSF PORTC,3;

esta instrucción cambia el estado de bajo a alto del cuarto bit del puerto C; la

dirección del chorro generado por la turbina es controlado por un servomotor,

que establece la dirección del chorro, este dispositivo se encuentra

interconectado al primer bit del puerto C o bit 0, en este bit se genera un

pulso de salida con modulación PWM, al igual que en la turbina el comando

que activa el bit del puerto es BSF PORTC,0, y para desactivarlo se utiliza el

comando BCF PORTC,0; se utilizan estos dos comandos dentro de un

código que genera a la salida un tren de pulsos a una frecuencia fija, el

cambio se observa en el factor de servicio de la señal.

En el bit 2 del mismo puerto se encuentra interconectado el control del

servomotor 3 (Control de la aleta lateral derecha), y en el bit 3 se encuentra

interconectado el control del servomotor 2 (Control de la aleta lateral

izquierda), estos dos bits son de salida y en los mismos se genera un tren de

pulsos con modulación PWM, estos dos bits del puerto C están en la

capacidad de generar por medio de ciertos comandos modulación PWM, el

primero de ellos es el registro CCP1CON para el bit 3 y CCP2CON para el bit

2, estos registros son similares, en ellos se establece la función de

modulación PWM, los registros involucrados son TIMER2 y PR2, en los que

se establece el período de la señal de modulación, y el período de cambio de

Page 10: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

63

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

alto a bajo se establece con el registro CCPR1L para el bit 3 y CCPR2L para

el bit 2.

En el mismo puerto interconectado en la parte alta se tiene tres

sensores de contacto colocados de forma que permitan establecer cuando el

robot llega a los límites de inclinación preestablecidos, uno de los sensores

se encuentra a 90°, este esta conectado al bit RC6 y es el que indica la

perpendicularidad del robot respecto al eje horizontal del entorno; los otros

dos sensores se colocaron a 60° y 120° respectivamente, ello indica que

ambos sensores se encuentra a 30° de apertura respecto al eje vertical del

robot que se representa por el sensor conectado a RC6, estos dos sensores

se encuentran interconectados a los bits RC5 y RC7 respectivamente.

En el puerto D se localizan los sensores que establecen el contacto

con los obstáculos del medio, en el bit RD3 se asigno el sensor de contacto

frontal, en el bit RD2 se asigno el sensor de contacto posterior, en el bit RD1

el sensor de contacto izquierdo y en el bit RD0 el sensor de contacto

derecho. Por medio de la instrucción BTFSS se conoce la activación de

cualquiera de los sensores, el microcontrolador al tener conocimiento de la

activación de dichos sensores toma las acciones pertinentes.

Fase 5. Ordinogramas modulares y codificación del programa.

Es de importancia tener en cuenta las características de programación

Page 11: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

64

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

que presenta el microcontrolador que se seleccionó para el desarrollo del

sistema, dicho microcontrolador es el 16F877 del fabricante Microchip, para

programarlo es necesario conocer cada registro (FSR) y todo el repertorio de

instrucciones con las que se puede desarrollar un programa para

determinada aplicación. Los registros son los encargados del control del

procesador y sus recursos, entre los que se encuentran el Registro de

Estado, dicho registro es el más utilizado, ya que el mismo permite la

selección de los bancos a acceder en la memoria de datos, indica las

incidencias del resultado de la ALU, como el acarreo, etc., también indica el

estado del reset. Este registro ocupa la dirección 3 de los 4 bancos de la

memoria de datos RAM. En la figura 17 se presenta el registro de ESTADO y

la descripción de cada uno de sus bits.

7 0

IRP RP1 RP0 TO# PD# Z DC C R/W R/W R/W R R R/W R/W R/W

Figura 17. Estructura interna del registro de ESTADO. Fuente: Angulo

(2000, p. 43).

R/W: Estos bits pueden ser leídos y escritos.

R: Estos bits solo pueden ser leídos, mas no pueden ser escritos.

C: ACARREO / LLEVADA EN EL BIT DE MAS PESO.

1 : Indica que se ha producido un acarreo en el bit de más peso del

resultado al ejecutar las instrucciones addwf y addlw.

Page 12: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

65

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

0 : No se ha producido acarreo.

C también actúa como señalizador de “llevada” en el caso de la

instrucción de resta, como subwf y subwl. En este caso cuando vale 1 no hay

llevada, y si vale 0 sí hay llevada.

DC: ACARREO / LLEVADA EN EL.4to BIT.

Es igual que C pero se refiere al 4to. Bit. Es de interés en operaciones

BCD.

Z: CERO.

1 : El resultado de una instrucción lógico-aritmética ha sido 0.

0 : El resultado de una instrucción lógica-aritmética no ha sido 0.

PD#: «POWER DOWN ».

1 : Se pone automáticamente a 1 después de la conexión de la

alimentación al microcontrolador.

0 : Se pone automáticamente a 0 mediante la ejecución de la

instrucción sleep.

TO#: «TIME OUT».

1 : Se pone a 1 después de la conexión de la alimentación o al

ejecutarse las instrucciones clrwdt y sleep.

0 : Se pone a 0 cuando se produce el desbordamiento del Perro

Guardián.

RP1 – RP0: SELECCIÓN DE BANCO EN DIRECCIONAMIENTO

DIRECTO.

0–0 : Banco 0 (00H–7FH).

Page 13: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

66

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

0–1 : Banco 1 (80H–FFH).

1–0 : Banco 2 (100H–17FH).

1–1 : Banco 3 (180H–1FFH).

IRP: SELECCIÓN DEL BANCO EN DIRECCIONAMIENTO

INDIRECTO.

Este bit junto con el de más peso del registro FSR sirven para

determinar el banco de la memoria de datos seleccionado.

0 : Banco 0 y 1 (00H–FFH).

1 : Banco 2 y 3 (100H–1FFH).

Por otra parte se encuentra el Registro OPTION_REG que tiene como

función controlar el TMR0 y el divisor de frecuencia (Véase figura 18). Ocupa

la posición 81H y 181H de la memoria de datos, que equivale a la dirección 1

de los bancos 1 y 3.

7 0 RBPU# INTEDG TOSC TOSE PSA PS2 PS1 PS0

Figura 18. Estructura interna del Registro OPTION_REG. Fuente: Angulo

(2000, p. 46).

Page 14: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

67

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

PS2 PS1 PS0 DIVISION DEL TMR0

DIVISION DEL WDT

0 0 0 1:2 1:1 0 0 1 1:4 1:2 0 1 0 1:8 1:4 0 1 1 1:16 1:8 1 0 0 1:32 1:16 1 0 1 1:64 1:32 1 1 0 1:128 1:64 1 1 1 1:256 1:128

PSA: ASIGNACIÓN DEL DIVISOR DE FRECUENCIA.

1: El divisor de frecuencia se le asigna al WDT.

0: El divisor de frecuencia se le asigna al TMR0.

TOSE: TIPO DE FLANCO EN TOCKI.

1: Incremento de TMR0 cada flanco descendente.

0: Incremento de TMR0 cada flanco ascendente.

TOSC: TIPO DDE RELOJ PARA TMR0.

1: Pulsos introducidos a través de TOCKI (contador).

0: Pulsos de reloj interno Fosc/4 (temporizador).

INTEDG: FLANCO ACTIVO INTERRUPCION EXTERNA.

1: Flanco ascendente.

0: Flanco descendente.

RBP0#: RESISTENCIAS PULL-UP PUERTO B.

1: Desactivadas.

0: Activadas.

El Registro EECON1 se encarga del control de las operaciones en la

Page 15: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

68

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

EEPROM (Véase la figura 19). Se ubica en la dirección 18CH del banco 3 de

la memoria de datos.

7 0

EEPGD ––– ––– ––– WRERR WREN WR RD

Figura 19. Estructura interna del registro EECON1. Fuente: Angulo

(2000, p. 51)

EEPGD: SELECCIÓN DE LA MEMORIA A ACCEDER.

1 : Selecciona el acceso a la memoria FLASH.

0 : Selecciona el acceso a la memoria EEPROM.

BITS 6 – 4: No implementados. Se leen como 0.

WRERR: SEÑALIZADOR DE ERROR EN ESCRITURA.

1 : La escritura ha terminado prematuramente.

0 : La escritura se ha completado correctamente.

WREN: PERMISO DE ESCRITURA.

1 : Permite la escritura de la EEPROM.

0 : Prohíbe la escritura.

WR: CONTROL DE ESCRITURA.

1 : Inicia un ciclo de escritura. Cuando se completa el ciclo pasa

automáticamente a 0.

0 : Prohibición de comienzo de ciclo de escritura en la memoria de la

EEPROM.

Page 16: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

69

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

RD: CONTROL DE LECTURA.

1 : Se pone a 1 cuando se va a realizar un ciclo de lectura de la

EEPROM. Luego pasa a 0 automáticamente.

0 : Prohibición de comienzo de lectura.

En el Registro INTCON se encuentran la mayor parte de los

señalizadores y bits de permiso de las fuentes de interrupción (Véase figura

20). Ocupa la dirección 0BH de los 4 bancos.

7 0 GIE PEIE TOIE INTE RBIE TOIF INTF RBIF

Figura 20. Estructura interna del registro INTCON.

Fuente: Angulo (2000, p. 47).

RBIF: SEÑALIZADOR DE CAMBIO DE ESTADO EN LOS PINES

RB7:RB4

1 : Pasa a 1 cuando cambia el estado de alguna de estas 4 líneas.

0 : No ha cambiado el estado de RB7:RB4.

INTF: SEÑALIZADOR DE ACTIVACIÓN DEL PIN RB0/INT

1 : La entrada de la interrupción se ha activado. Se borra por software.

0 : Indica RB0/INT aún no se ha activado.

TOIF: SEÑALIZADOR DE DESBORDAMIENTO DEL TMR0

1 : El TMR0 se ha rebosado. Se borra por software.

0 : El TMR0 no se ha rebosado.

Page 17: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

70

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

RBIE: PERMISO DE INTERRUPCIÓN POR CAMBIO DE ESTADO EN

RB7:RB4

1 : Permite esta interrupción.

0 : Prohíbe esta interrupción.

INTE: PERMISO DE INTERRUPCIÓN POR ACTIVACIÓN DE

RB0/INT

1 : Permite la interrupción al activarse RB0/INT.

0 : Prohíbe esta interrupción.

TOIE: PERMISO DE INTERRUPCIÓN POR DESBORDAMIENTO DE

TMR0

1 : Permite una interrupción al desbordarse el TMR0.

0 : Prohíbe esta interrupción.

PEIE: BIT DE PERMISO DE LOS PERIFÉRICOS QUE NO SE

CONTROLAN CON INTCON

1 : Permite la interrupción.

0 : No permite interrupción.

GIE: PERMISO GLOBAL DE INTERRUPCIONES

1: Permite la ejecución de todas las interrupciones, cuyos bits de

permiso individuales también las permitan.

0: Prohíbe todas las interrupciones.

Las instrucciones de este microcontrolador poseen una longitud de 14

bits. Dicho formato se divide en diferentes campos de bits, cada uno

de los cuales referencia a operandos que maneja la instrucción en la

Page 18: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

71

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

operación que realiza en el procesador. Se describen dichos campos:

a) Campo del código OP.

Los bits de este campo sirven para definir la operación que realiza la

instrucción.

b) Campo de los operandos fuente (f) y destino (d).

Estos campos de bits definen los registros que actúan como

operandos en la instrucción. Suelen referenciar la dirección que ocupan en la

memoria de datos.

c) Campo de operando inmediato o literal(k).

Es un campo de bits que contiene el valor de un operando inmediato.

d) Campo que referencia a un bit (b).

Suele Ser un campo de 3 bits que indica la posición de un bit concreto

dentro de un registro de 8 bits.

e) Campo de la dirección del salto.

En las instrucciones de salto CALL y GOTO hay un campo de bits que

contiene la dirección de la siguiente instrucción que hay que ejecutar. Dicho

campo de bits se carga en el PC en las instrucciones de salto incondicional.

Los diversos formatos que admiten las instrucciones del repertorio se

clasifican en cinco grandes grupos. Dichos grupos son los siguientes:

• Operaciones orientadas a manejar registros de tamaño byte.

• Operaciones orientadas a manejar bits.

• Operaciones que manejan valores inmediatos.

Page 19: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

72

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

TABLA 1

PRINCIPALES CARACTERÍSTICAS DE LAS 35 INSTRUCCIONES DEL

PIC 16F877

INSTRUCCIONES QUE MANEJAN REGISTROS

SINTAXIS OPERACIÓN CICLOS FORMATO 14 BIT SEÑALIZADORES

ADDWF f,d Suma W y f 1 00 0111 dfff ffff C,DC,Z ANDWF f,d AND W con f 1 00 0101 dfff ffff Z CLRF f Borra f (Pone todos los bits a 0) 1 00 0001 1fff ffff Z CLRW --- Borra W 1 00 0001 0xxx xxxx Z COMF f,d Complementa f (Invierte) 1 00 1001 dfff ffff Z DECF f,d Decrementa f 1 00 0011 dfff ffff Z INCF f,d Incrementa f 1 00 1010 dfff ffff Z IORWF f,d OR entre W y f 1 00 0100 dfff ffff Z MOVF f,d Mueve f 1 00 1000 dfff ffff Z MOVWF f Mueve W y f 1 00 0000 1fff ffff --- NOP --- No opera 1 00 0000 0xx0 0000 --- RLF f,d Rota f a la izq. a través del acarreo 1 00 1101 dfff ffff C RRF f,d Rota f a la dcha. a través del acarreo 1 00 1100 dfff ffff C SUBWF f,d Resta W a f 1 00 0010 dfff ffff C,DC,Z SWAPF f,d Intercambia nibbles 1 00 1110 dfff ffff --- XORWF f,d XOR de W con f 1 00 0110 dfff ffff Z

INSTRUCCIONES QUE MANEJAN BITS BCF f,b Borra bit de f 1 01 00bb bfff ffff --- BSF f,b Pone a 1 el bit f 1 01 01bb bfff ffff ---

INSTRUCCIONES DE “BRINCO” BTFSC f,d Explora un bit de f y brinca si es 0 1(2) 01 10bb bfff ffff --- BTFSS f,d Explora un bit de f y brinca si es 1 1(2) 01 11bb bfff ffff --- DECFSZ f,d Decrementa f y si es 0, brinca 1(2) 00 1011 dfff ffff --- INCFSZ f,d Incrementa f y si es 0, brinca 1(2) 00 1111 dfff ffff ---

INSTRUCCIONES QUE MANEJAN OPERANDOS INMEDIATOS ADDLW k Suma inmediata de literal con W 1 11 111x kkkk kkkk C,DC,Z ANDLW k AND inmediato de literal con W 1 11 1001 kkkk kkkk Z IORLW k OR inmediato de literal con W 1 11 1000 kkkk kkkk Z MOVLW k Mueve a W un valor inmediato 1 11 00xx kkkk kkkk --- SUBLW k Resta W de un literal inmediato 1 11 110x kkkk kkkk C,DC,Z XORLW k OR exclusiva con W 1 11 1010 kkkk kkkk Z

INSTRUCCIONES DE CONTROL Y ESPECIALES CALL k Llamada a subrutina 2 10 0kkk kkkk kkkk --- CLRWDT Borra o refresca al Perro Guardián 1 00 0000 0110 0100 TO#,PD# GOTO k Salto incondicional 2 10 1kkk kkkk kkkk --- RETFIE Retorno de interrupción (GIE=1) 2 00 0000 0000 1001 --- RETLW k Retorno subrutina y carga W=k 2 11 01xx kkkk kkkk --- RETURN Retorno de subrutina 2 00 0000 0000 1000 --- SLEEP Pasa al modo de reposo 1 00 0000 0110 0011 TO#,PD#

Fuente: Angulo (1999, p. 152)

• Operaciones incondicionales de control del flujo del programa.

Page 20: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

73

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

• Operaciones de salto condicional.

Cada grupo se divide en varios campos y poseen su propia sintaxis,

por ejemplo, las operaciones orientadas a manejar registros de tamaño byte,

se divide en tres campos:

1. Campo del código OP de 6 bits.

2. Campo de la dirección del operando fuente (f) de 7 bits.

3. Campo que define el operando destino (d) de 1 bit.

Las instrucciones de este grupo tienen como sintaxis: mnemónico f,d.

Cuando d=1 el registro destino coincide con el fuente.

13 8 7 6 0 CÓDIGO OP d f(DIR. REGISTRO)

d=1 El registro destino es f

d=0 El registro destino es W

El bit d, que es el operando destino, se cumple para todas las

instrucciones que lo utilizan, es decir, cuando d=1 el destino es f, y si d=0 el

destino es W, para todas las instrucciones.

Las nomenclaturas y símbolos utilizados para la programación son los

empleados por MICROCHIP para su lenguaje ensamblador MPASM, que es

el que se utilizará para programar el microcontrolador PIC-16F877, dichos

símbolos se muestran en la siguiente tabla:

Page 21: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

74

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

TABLA 2

NOMENCLATURA Y SÍMBOLOS UTILIZADOS POR EL LENGUAJE MPASM DE MICROCHIP

SÍMBOLO SIGNIFICADO

0xhh Es la forma que se usa para referenciar a los números hexadecimales de dos dígitos (hh).

F Representa la dirección en la memoria RAM de datos del registro fuente.

D Es un bit que conforma el campo del formato de una instrucción que indica el registro destino. Si d=0 es W, y si d=1 es f.

K Campo que contiene un valor inmediato, que puede ser un operando (8 bits) o una dirección para el PC (11 bits).

X Valor indeterminado de un bit. Puede ser 1 o 0. ( ) Contenido. < > Campo de un bit de un registro. Por ejemplo: ESTADO <5>. ∈ En el conjunto de Ejemplo: d ∈ [0,1]. [ ] Opciones.

Fuente: Angulo (1999, p. 144).

Para que cada una de las partes del sistema funcione con la mayor

efectividad posible es necesario establecer y codificar los pasos que debe

seguir el programa del Microcontrolador.

Al inicio del programa se definen las direcciones de los registros y las

variables que serán utilizadas a lo largo del programa, para ello se organizan

a partir de la dirección cero del mapa de memoria con la finalidad de

optimizar al máximo la organización del programa, esta definición le

establece un valor a la etiqueta relacionada a la misma, como se muestra en

el código de programación que se muestra a continuación.

Page 22: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

75

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

;-------------------------------------------------------------------------------------------------------------------- ; DEFINICION DE REGISTROS DE CONFIGURACION ;-------------------------------------------------------------------------------------------------------------------- W EQU H'00' F EQU H'01' Z EQU H'02' STATUS EQU H'03' RP0 EQU H'05' TRISA EQU H'05' PORTA EQU H'05' TRISB EQU H'06' PORTB EQU H'06' TRISC EQU H'07' PORTC EQU H'07' TRISD EQU H'08' PORTD EQU H'08' TRISE EQU H'09' PORTE EQU H'09' OPTION_REG EQU H'01'

Al culminar la definición de los registros y las variables se establece

una rutina principal, en donde se realizan llamados a las diferentes rutinas

del sistema, se utiliza la programación por módulos para permitir que el

sistema se mas efectivo, y dicha programación lo hace más práctico al

momento de realizar las depuraciones del mismo, ya que permite visualizar

con mayor facilidad los errores que se puedan presentar, el código de este

lazo principal se expone a continuación.

LAZO ;RUTINA PRINCIPAL DEL SISTEMA CALL LEEADC1 ;LEE AL CANAL ANALOGICO0 CALL LEEADC2 ;LEE AL CANAL ANALOGICO1 CALL LEEADC3 ;LEE AL CANAL ANALOGICO2 CALL LEEADC4 ;LEE AL CANAL ANALOGICO3 CALL LEEADC5 ;LEE AL CANAL ANALOGICO4 GOTO COMPARAR ;REVISAR SI HAY FUENTE DE LUZ LAZO2 CALL SERVO ;RUTINA PWM DIRECCION CHORRO ESTABLE NOP GOTO LAZO ;SALTA A LAZO

Page 23: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

76

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

El primer llamado que se realiza en la rutina principal es la lectura del

primer canal analógico, para establecer el código es necesario realizar un

diagrama de flujo donde se reflejen las variables y acciones a tomar del

sistema, en el figura 21 se observar el diagrama de flujo de la captura de

información del canal analógico 1 de los transductores de iluminación.

Figura 21. Diagrama de flujo del canal analógico número 1.

Fuente: García (2002).

La rutina se inicia configurando los registros del canal analógico que

se encuentra establecido por la subrutina llamada, el tipo de justificación de

los registros de almacenamiento de la información y las referencias de voltaje

Page 24: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

77

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

necesarias para la conversión de la variable en cuestión. Una vez culminada

la configuración se inicializa el registro de inicio de conversión, seguidamente

se inicia un ciclo de comparación hasta que se haya culminado la conversión,

un vez culminada la conversión los datos que se obtienen son almacenados

en unos registros definidos para tal fin. Cada canal tiene establecido un

registro específico, dicha información se utilizará para la toma de decisiones.

Con esta estructura se realiza la codificación de la rutina. A continuación se

expone la codificación del primer canal analógico, la codificación de los

restantes canales es similar, la diferencia se observa en el nombre de los

registros de almacenamiento de información y la configuración de los

registros ADCON0 y ADCON1.

;------------------------------------------------------------------------------------------------------------------ ;RUTINA LEE EL CANAL ANALOGICO AN0 ;------------------------------------------------------------------------------------------------------------------ LEEADC1 ;------------------------------------------------------------------------------------------------------------------ ;PROGRAMACION DEL CONVERTIDOR A/D ;------------------------------------------------------------------------------------------------------------------ BSF STATUS,RP0 ;BANCO 01 DE RAM MOVLW B'00000010' MOVWF ADCON1 ;JUSTF=IZQ, VR=VDD-VSS, CANAL AN0 BCF STATUS,RP0 ;BANCO 00 DE RAM ;PROGRAMACION DE A/D PAG00 MOVLW B'11000001' MOVWF ADCON0 ;OSC=RC, CANAL=0, A/D=ON CALL RETARDO BSF ADCON0,GO ;INCIA CICLO DE CONVERSION WAIT1 BTFSC ADCON0,GO_DONE ;SALTA SI FINALIZO CONVERSION GOTO WAIT1 MOVF ADRESH,W MOVWF DATOADC1 ;GUARDA EL DATO DEL ADC EN EL ;REGISTRO BSF STATUS,RP0 RETURN

Page 25: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

78

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Este código se utiliza para la lectura de la información presente en el

puerto analógico (puerto A), al culminar la lectura de los cinco transductores

se realiza una comparación para establecer la presencia de luz en los

transductores. Para ello se estableció un algoritmo que se muestra en figura

22.

Figura 22. Diagrama de flujo para establecer presencia de luz.

Fuente: García (2002).

Esta subrutina se inicia comparando el resultado obtenido del segundo

canal analógico con una constante, para este caso cero, de cumplirse la

comparación y este valor es igual a cero salta a realizar la comparación con

Page 26: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

79

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

el siguiente canal analógico con la misma constante cero, pero de no

cumplirse la comparación y el valor de la variable es mayor que cero se

realiza una comparación con el primer canal analógico, si el valor en ambos

registros es el mismo sale de la subrutina y salta al sector de la rutina

principal que mantiene la posición, de lo contrario se modifican los

parámetros de movimiento con la finalidad de localizar la fuente de energía,

este procedimiento se realiza con cada uno de los canales analógicos del

sistema, la rutina finaliza al realizar las comparaciones necesarias al quinto

canal analógico, de no existir algún valor diferente de cero en los registros de

almacenamiento de las variables regresa a la rutina principal. Seguidamente

se expone parte del código de comparación de esta subrutina.

;------------------------------------------------------------------------------------------------------------------ ; RUTINA ESTABLECER LOCALIZACION FUENTE DE LUZ ;------------------------------------------------------------------------------------------------------------------ COMPARAR MOVLW DATOADC2 XORWF B'00000000' BTFSC STATUS,Z GOTO ENERGIA MOVLW DATOADC3 XORWF B'00000000' BTFSC STATUS,Z GOTO ENERGIA MOVLW DATOADC4 XORWF B'00000000' BTFSC STATUS,Z GOTO ENERGIA MOVLW DATOADC5 XORWF B'00000000' BTFSC STATUS,Z GOTO ENERGIA GOTO LAZO2

Las subrutinas antes expuestas generan modificaciones en otras

subrutinas, una de ellas es la que genera la señal PWM capaz de controlar el

Page 27: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

80

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

servomotor de direccionamiento de chorro de agua. En el diagrama no.6 se

puede observar la lógica desarrollada para el control de este dispositivo.

La función principal de esta subrutina es establecer el factor de

servicio de la señal, las subrutinas expuestas con anterioridad modifican el

registro donde se almacena la variable del factor de servicio de la señal, al

inicio de la subrutina el registro de factor de servicio de la señal se carga en

el registro W, se inicializa el registro de comparación (SERVOCMP) en cero y

se pasa a un estado alto el bit 0 del puerto C. Se incrementa el registro

SERVOCMP y se compara con W, si el registro es menor que W se

incrementa, esta operación se realiza hasta que SERVOCMP sea igual a W,

al ser igual a W el bit 0 del puerto C pasa a un estado bajo, sigue

incrementándose SERVOCMP y se compara con 256 decimal, al alcanzar

este valor la subrutina realiza una instrucción para retornar a la rutina

principal, el código de esta subrutina se expone a continuación.

;-------------------------------------------------------------------------------------------------------------------- ; RUTINA DE PWM PARA CONTROL DE DIRECCION DE LA TURBINA ;-------------------------------------------------------------------------------------------------------------------- SERVO MOVLW B'00000000' MOVWF SERVOCMP BSF PORTC,0 SER MOVLW SERVO1 INC SERVOCMP XORWF SERVOCMP BTFSC STATUS,Z GOTO SER BCF PORTC,0 SER2 INC SERVOCMP MOVLW B'11111111' XORWF SERVOCMP BTFSC STATUS,Z GOTO SER2 RETURN

Page 28: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

81

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

En el anexo A se puede observar la estructura del programa

almacenado en el microcontrolador PIC 16F877.

Fase 6. Implementación del hardware.

Para el desarrollo del sistema se utilizó el microcontrolador PIC

16F877 de la marca Microchip, el mismo cuenta con una serie de

características que lo hacen versátil y muy útil. Una de las principales

características de este microcontrolador es el tipo de memoria de programa

que posee, la cual es de tipo Flash de 8k, palabras de 14 bits cada una, la

cual posee mayor velocidad y menor consumo que las de tipo EEPROM,

además posee 256 bytes de EEPROM como memoria de datos auxiliar y

opcional; la utilización de la memoria Flash, permite escribir y borrar el

programa eléctricamente, evitando de esta manera la necesidad de tener que

borrarlas por medio de rayos ultravioleta, para la cual abría que adquirir dicho

equipo, y el tiempo necesario para volver a grabar el programa sería mayor,

por lo que Angulo (1999, p. 50), señala que “Microchip ha introducido la

memoria Flash porque tiene mejores posibilidades de aumentar su capacidad

con relación a la EEPROM. También por su mayor velocidad y menor

consumo. No obstante, la EEPROM es capaz de soportar 1.000.000 de

ciclos de escritura/borrado, frente a los 1.000 de la Flash”, esto quiere decir

que la memoria Flash tiene la ventaja de ser más rápida y consumir menos

Page 29: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

82

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

potencia que la EEPROM, pero que la misma soporta menos ciclos de

escritura/borrado que la EEPROM.

El microcontrolador PIC-16F877 posee una serie de características

que se muestran a continuación:

La pila es una zona aislada de la memoria de instrucciones y datos,

consta de 8 niveles de profundidad de 13 bits cada uno, y su estructura es

de tipo LIFO, el primer dato que entra es el último en salir. Angulo (1999, p.

78), señala que los PIC no disponen de instrucciones específicas (push y

pop) para manejar directamente la pila. Tampoco se dispone de ningún

señalizador que indique cuándo se produce el rebosamiento de los 8 niveles

de la pila, es decir, que no existe ninguna instrucción para manejar

directamente la pila y que el programador debe tener sumo cuidado en no

rebosar la pila a la hora de desarrollar un programa.

El área de la RAM estática, es donde reside el Banco de Registros

específicos (FSR), el cual posee 96 posiciones de 1 byte de tamaño, de los

cuales 19 no son operativas y el Banco de Propósito general (GPR), el cual

tiene 368 posiciones de 1 byte cada una; adicionalmente cada Banco está

divido en cuatro, Banco 0, Banco 1, Banco 2 y Banco 3, de 128 bytes cada

uno.

Como se mencionó anteriormente la zona de memoria RAM se halla

dividida en cuatro bancos (banco 0, 1, 2 y 3) de 128 bytes cada uno (ver

figura 23), en los bancos 0 y 1 las primeras 32 posiciones están reservadas a

los Registros de Propósito Específico (FSR), de igual manera en los bancos

Page 30: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

83

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

2 y 3 son las primeras 16 posiciones, los cuales define Angulo (1999, p. 79)

como los “encargados del control del procesador y sus recursos”, dicho de

otra manera, son los registros que permiten controlar la configuración de los

puertos, las interrupciones, las temporizaciones, entre otras, algunos de

dichos registros se hallan repetidos en la misma dirección de los cuatro

bancos, con el fin de simplificar su acceso al programador. Las posiciones

8FH, 90H, 95 – 97H, 9A - 9DH, 105H, 107 – 109H, 185H, 187 – 189H y 18E

– 18FH no son operativas, los 96 registros restantes del banco 0, 80 del

banco 1, 96 del banco 2 y 96 del banco 3, se destinan a Registros de

Propósito general, los cuales se utilizan para almacenar valores temporales,

entre otros. Para seleccionar el banco que se desea acceder hay que

configurar los bits 5 y 6 (RP0 y RP1 respectivamente) del registro ESTADO,

si RP0 = RP1 = 0 se accede al banco 0, si RP0 = 1 RP1 = 0 se accede al

banco 1, RP0 = 0 RP1 = 1 se accede al banco 2 y por último, si RP0 = RP1 =

1 se accede al banco 3.

La memoria EEPROM se implementó en este PIC para tener la

posibilidad de almacenar datos sin que se pierdan en el momento de

desconectar la alimentación, ya que los datos almacenados en la memoria

RAM se pierden al desconectar la misma, esta memoria posee 256

posiciones de 1 byte de tamaño cada una. La memoria EEPROM no está

mapeada en la zona de la memoria de datos donde se ubican los registros

FSR y GPR. Para poder leerla y escribirla durante el funcionamiento normal

del microcontrolador hay que utilizar 4 registros del banco FSR: EEDATA,

Page 31: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

84

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

EEADR, EECON1 y EECON2. Dichos registros son los encargados del

control de escritura y lectura de la EEPROM de datos.

El proceso de escritura en la EEPROM es el siguiente: Para escribir

una posición de la EEPROM de datos se debe seguir una secuencia de

instrucciones en las que participa el registro EECON2. Este registro que en

realidad no se halla implementado físicamente, sólo asume funciones de

seguridad en el proceso, cargándose en él dos valores concretos: 55H y

AAH. La duración típica de un ciclo de escritura es de 10 ms. El ciclo de

escritura comienza cargando en EEADR la dirección de la posición a escribir

y en el registro EEDATA el valor a grabar. Al finalizar el proceso de escritura

el bit WR pasa a valer 0 automáticamente, mientras que el señalizador EEIF

se establece en 1. Este último bit hay que colocarlo a 0 posteriormente

mediante software.

El proceso de un ciclo de lectura se inicia colocando la dirección a

acceder en el registro EEADR y poniendo el bit RD = 1 en el registro

EECON1. El dato leído estará disponible en el registro EEDATA en el

siguiente ciclo y permanecerá en él hasta que se realice una nueva lectura o

escritura en la EEPROM.

La arquitectura de este PIC admite un mapa de memoria de programa

capaz de contener 8.192 instrucciones de 14 bits cada una. Dicho mapa se

divide en páginas de 2.048 posiciones. Para direccionar 8 K posiciones se

necesitan 13 bits, lo cual es la longitud que posee el Contador de Programa.

Page 32: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

85

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Figura 23. Representa el mapa de memoria de datos RAM del PIC-16F877.

Fuente: Microchip (1998, p. 13)

Page 33: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

86

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

En la figura 24 se muestra como esta constituida la memoria de

programa y la pila en el PIC 16F877.

Figura 24. Mapa de memoria del PIC 16F877. Fuente: Microchip (1998, p.11)

La figura 24 representa el mapa de la memoria de programa que va

desde la dirección 0000H a la 1FFFH, el vector de reset se encuentra en la

dirección 0000H y el vector de interrupción en la 0004H, adicionalmente se

muestra el contador de programa y la pila.

El PIC-16F877 posee una arquitectura moderna, la cual ha permitido

lograr una compactación de códigos óptima y una velocidad superior a la de

otros microcontroladores, dicho PIC posee tres características importantes

en su procesador: a) Procesador tipo RISC, b) Procesador Segmentado y

c) Arquitectura HARVARD.

La ventaja de un procesador tipo RISC es que permite programar

bajo un repertorio de instrucciones máquina simples y reducidos, lo que a su

Page 34: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

87

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

vez permite ejecutar cada instrucción en un ciclo de instrucción excepto las

de salto que requieren dos ciclos de instrucción.

La estructura segmentada hace posible realizar simultáneamente las

dos fases en que se descompone cada instrucción, lo que quiere decir que,

al mismo tiempo que se está desarrollando la fase de ejecución de una

instrucción se realiza la fase de búsqueda de la siguiente, de esta manera se

consigue alcanzar una velocidad superior de ejecución de las instrucciones.

La arquitectura HARVARD, la define Angulo (1999, p.73) como “uno

de los pilares en los que se sustenta la organización de los PIC. Gracias a

ella se puede acceder de forma simultánea e independiente a la memoria de

datos y a la memoria de instrucciones”, lo que significa que, el PIC-16F877

posee un bus de datos y un bus de instrucciones separados uno del otro, por

lo que el procesador puede acceder al mismo tiempo e independientemente

a cada uno de ellos, y por consiguiente, a cada una de las memorias, a

diferencia de la arquitectura Von Neumann de los microprocesadores, la cual

se conecta con una memoria única, donde coexisten datos e instrucciones, a

través de un sistema de buses.

El aislamiento y diferenciación de los dos tipos de memoria permite

que cada uno tenga la longitud y el tamaño más adecuados. De esta forma

en el PIC-16F877 la longitud de los datos es de un byte, mientras que la de

las instrucciones es de 14 bits. En la figura 25 se muestra la arquitectura

interna del PIC-16F877.

El funcionamiento del procesador mostrado en la figura 25 se lleva a

Page 35: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

88

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

cabo de la siguiente manera. Todo comienza con la fase de búsqueda, la

cual la inicia el contador de programa facilitando la dirección de la memoria

donde su ubica la instrucción. Su código binario de 14 bits se lee y se carga

en el Registro de Instrucciones, desde donde se transfiere al Decodificador y

a la Unidad de Control. Es posible que dentro del código de la instrucción,

exista el valor de un operando (literal) el cual se introduce a la ALU, la cual

es la encargada de realizar las operaciones lógico-aritméticas que implica la

instrucción decodificada, uno de los operandos lo recibe desde el registro W

y el otro desde un registro o de la propia instrucción.

El registro W es un registro de trabajo de 8 bits utilizado para las

operaciones de la ALU, no es un registro direccionable. También puede

existir dentro del código de la instrucción una dirección de la memoria de

datos donde reside otro operando.

Este tipo de microcontrolador es fabricado con tecnología CMOS y son

presentados en el mercado en un encapsulado plástico dual de 40 pines, el

diseño de este PIC se puede observar en la figura 26, cada pin cuenta con

una función en particular, la cual se definen a continuación:

VDD: Pin por la que se aplica el voltaje positivo de la alimentación.

VSS: Pin conectado a tierra o negativo de la alimentación.

OSC1/CLKIN: Pin por el que se aplica la entrada del circuito

oscilador externo que proporciona la frecuencia de trabajo del

microcontrolador.

OSC2/CLKOUT: Pin auxiliar del circuito oscilador.

Page 36: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

89

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Figura 25. Arquitectura interna del PIC 16F877. Fuente: Angulo (2000, p. 24)

MCLR#/VPP/THV: Este pin se activa con nivel lógico bajo, lo que se

representa con el símbolo #. Su activación origina la reinicialización o Reset

del PIC. También sirve de entrada de voltaje de programación y el voltaje alto

en el modo TEST.

Cada uno de los pines del puerto A cuentan con una función especial,

por ello se describen a continuación:

RA0/AN0: Éste pin puede actuar como línea digital de E/S o como

entrada analógica al convertidor A/D (Canal 0).

Page 37: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

90

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Figura 26. Diagrama de pines del microcontrolador PIC-16F877. Fuente:

Microchip (1998, p. 1)

RA1/AN1: Cumple la misma función que el pin anterior.

RA2/AN2/VREF-: Línea digital de E/S, entrada analógica (Canal 2) o

entrada del voltaje negativo de referencia.

RA3/AN3/VREF+: Línea digital de E/S, entrada analógica (Canal 3) o

entrada del voltaje positivo de referencia.

RA4/TOCKI: Línea digital de E/S o entrada del reloj del timer 0. Salida

con colector abierto.

RA5/SS#/AN4: Línea digital de E/S, entrada analógica o selección

como esclavo del puerto serial síncrono.

Así mismo cada uno de los pines del puerto B poseen una función

individual, por lo que se definen seguidamente.

RB0/INT: Línea digital de E/S o entrada de petición de interrupción

Page 38: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

91

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

externa.

RB1 – RB2: Líneas digitales de E/S.RB3/PGM: Línea digital de E/S o

entrada de voltaje bajo para programación.

RB4 – RB5: Líneas digitales de E/S.

RB6/PGC: Línea digital de E/S. En la programación en serie recibe las

señales de reloj.

RB7/PGD: Línea digital de E/S. En la programación en serie actúa

como entrada de datos.

De igual manera los pines del puerto C tienen funciones múltiples,

como se definen a continuación:

RC0/T1OSO/T1CKI: Línea digital de E/S o salida del oscilador del

timer 1 o como entrada del reloj del timer 1.

RC1/T1OSI/CCP2: Línea digital de E/S o entrada al oscilador del timer

1 o entrada al módulo captura2/salida comparación2/salida de PWM2.

RC2/CCP1: Línea digital de E/S. También puede actuar como entrada

captura1/salida comparación1/salida de PWM1.

RC3/SCK/SCL: Línea digital de E/S o entrada del reloj serial

síncrono/salida de los modos SPI e I2C.

RC4/SDI/SDA: Línea digital de E/S o entrada de datos en modo SPI o

I/O datos en modo I2C.

RC5/SDO: Línea digital de E/S o salida de datos en modo SPI.

RC6/TX/CK: Línea digital de E/S o pin del transmisor del USART

asíncrono o como reloj del síncrono.

Page 39: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

92

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

RC7/RX/DT: Línea digital de E/S o receptor del USART asíncrono o

como datos en el síncrono.

Al igual que los pines de los puertos que se describieron con

anterioridad todos los pines del puerto D (RD0/PSP0 – RD7/PSP7) pueden

actuar como líneas digitales de E/S o como líneas para la transferencia de

información en la comunicación del puerto paralelo esclavo.

Por último se encuentra el puerto E, los pines del mismo poseen

funciones específicas que se explican a continuación.

RE0/RD#/AN5: Línea digital de E/S o señal de lectura para el puerto

paralelo esclavo o entrada analógica (Canal 5).

RE1/WR#/AN6: Línea digital de E/S o señal de escritura en el

puerto paralelo esclavo o entrada analógica (Canal 6).

RE2/CS#/AN7: Línea digital de E/S o activación/desactivación del

puerto paralelo esclavo o entrada analógica (Canal 7).

La frecuencia de trabajo del microcontrolador es un parámetro

fundamental a la hora de establecer la velocidad en la ejecución de

instrucciones y el consumo de energía. Si la frecuencia de trabajo del PIC-

16F877 es de 4Mhz por ejemplo, el tiempo que se tarda en ejecutar cada

instrucción es de 1µs, ya que cada instrucción tarda en ejecutarse cuatro

períodos de rejo, es decir, 4 x 250ns = 1000ns (t=1/f). Todas las

instrucciones del PIC se realizan en un ciclo de instrucción, menos las de

salto, que tardan el doble.

Page 40: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

93

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Los impulsos de reloj entran al PIC por medio del pin OSC1/CLKIN,

cada impulso se divide en 4 internamente, dando lugar a las señales Q1, Q2,

Q3 y Q4, las cuales se muestran en la figura 27. Durante un ciclo de

instrucción, se desarrollan las siguientes operaciones:

Q1: Durante este impulso se incrementa el Contador de Programa.

Q4: Durante este impulso se busca el código de la instrucción en la

memoria del programa y se carga en el Registro de Instrucciones.

Q2 – Q3: Durante la activación de estas dos señales se produce la

decodificación y la ejecución de la instrucción.

Para conseguir ejecutar cada instrucción en un ciclo de instrucción

(excepto las de salto, que tardan dos), se aplica la técnica de la

segmentación o “pipe-line”, que consiste en realizar en paralelo las dos fases

que comprenden cada instrucción, las cuales son, la fase de ejecución de

una instrucción y la búsqueda de la siguiente, esto quiere decir que el

procesador permite realizar al mismo tiempo las dos fases.

Para generar los impulsos de reloj se pueden emplear 4 tipos

diferentes de osciladores, los cuales proporcionan la frecuencia de

funcionamiento. Dichos osciladores son los siguientes:

Oscilador RC: está formado por una resistencia y un capacitor, los

valores de estos dos componentes son los que determinan la frecuencia.

Oscilador HS: Se basa en un cristal de cuarzo o un resonador

cerámico, alcanza una alta velocidad comprendida entre 4 y 10 MHz.

Oscilador XT: Es el más común de todos, es un cristal o resonador

Page 41: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

94

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

para frecuencias entre 100 KHz y 4 MHz.

Oscilador LP: Es un oscilador de bajo consumo con cristal o resonador

diseñado para trabajar en un rango de frecuencias entre 35 y 200 KHz.

Figura 27. Señales formadas por cada impulso de reloj. Fuente: Angulo

(1999, p. 54).

Temporizadores: Son tres, el TMR0, TMR1 y TMR2. También tiene

Perro Guardián (WDT). El TMR0 es un temporizador/ contador, el cual tiene

la función de determinar intervalos concretos de tiempo, y de contar los

impulsos que se producen en el exterior del sistema. El temporizador/

contador del PIC-16F877 es de 8 bits, y actúa de dos formas diferentes:

a) Como contador de sucesos, que están representados por los

impulsos que se aplican al pin RA4/TOCKI. Al llegar al valor FFH se

desborda el contador y, con el siguiente impulso, pasa a 00 H, cuando esto

ocurre se activa un señalizador y/o se produce una interrupción.

b) Como temporizador, cuando se carga en el registro que

implementa al recurso un valor inicial se incrementa con cada ciclo de

Page 42: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

95

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

instrucción (Fosc/4) hasta que se desborda, lo que significa que pasa de FFH

a 00H y avisa colocando a 1 un bit señalizador y/o provocando una

interrupción.

Para seleccionar si el TMR0 va a funcionar como temporizador o como

contador, hay que manipular el bit TOCS que se encuentra en el registro

OPTION_REG, de esta forma, colocando a 1 dicho bit se configura como

contador y en el caso contrario con TOCS = 0 se configura como

temporizador. También es posible que cuando funcione como contador, se

pueda configurar el flanco, bien sea ascendente o descendente, esto se logra

manipulando el bit TOSE del registro OPTION_REG.

El Perro Guardián (WDT) es un contador interno de 8 bits que origina

un Reset cuando se desborda. Su función es la de vigilar que el programa no

se “cuelgue”, y para ello cada cierto tiempo comprueba si el programa se

está ejecutando normalmente. Su control de tiempos es independiente del

TMR0 y está basado en una simple red R-C. Para evitar que el WDT se

desborde es necesario refrescarlo, es decir, cada cierto tiempo, antes de que

culmine su temporización, se introduce en el programa la instrucción clrwdt,

la cual se encarga de reiniciar al Perro Guardián. Angulo (1999, p. 98) afirma

que “La temporización nominal con la que se halla programado el Perro

Guardián es de 18 ms, pero utilizando el Divisor de frecuencia puede

aumentarse hasta alcanzar los 2,3 segundos”, lo que quiere decir, que

inicialmente el perro guardián está programado para reinicializar al PIC cada

18 ms, pero que existe tanto para el Perro Guardián como para el TMR0 un

Page 43: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

96

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Divisor de frecuencia que permite alargar la temporización, que en el caso

del TMR0 es el tiempo que transcurre en ir de 00 H a FF H. En la figura 28 se

muestra la sección dedicada al preescalador del TMR0 y el WDT en la

arquitectura del PIC-16F877.

El TMR1 es un registro que posee el microcontrolador que puede ser

utilizado como contador, o como temporizador, su funcionamiento es igual al

del TMR0.

El TMR2 es un registro que se incrementa en cada ciclo de reloj del

microcontrolador, este registro se puede utilizar como contador, comparador

entre otras funciones, la función que obtiene mas relevancia dentro de la

investigación es el uso de este registro para la generación de las señales de

PWM para el control de los servomotores.

• Convertidor A/D.

Un convertidor analógico/digital de acuerdo a Boylestad (1997, p. 748) “es un

dispositivo que obtiene un valor digital que representa un voltaje analógico de

entrada” lo que significa , que cuando se le aplica un voltaje analógico a la

entrada del convertidor se genera un valor digital que representa dicho

voltaje analógico. Los PIC 16F877 poseen un convertidor A/D de 10 bits de

resolución y 8 canales de entrada.

Page 44: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

97

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Figura 28. Representa al preescalador del TMR0 y el WDT. Fuente: Microchip (1998, p. 49).

Según Angulo (2000, p. 129) “la resolución que tiene cada bit

procedente de la conversión tiene un valor que es función de la tensión de

referencia Vref, de acuerdo con la formula siguiente: Resolución (Vref+ -

Vref-) / 1024 = Vref / 1024”, dicho de otra manera, la resolución de la

conversión estará determinada por los valores de Vref aplicados al PIC, por

ejemplo, si el voltaje Vref + = 5VDC y el Vref- es tierra, la resolución de

acuerdo a la formula anterior es de 4,8mV/bit.

Para lograr el funcionamiento del convertidor A/D se requiere la

manipulación de cuatro registros: ADRESH, ADRESL, ADCON0 y ADCON1.

Page 45: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

98

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

En los registros ADRESH : ADRESL se deposita el resultado de la

conversión que esta compuesta por 10 bits, dicha pareja de registros forma

una palabra de 16 bits de los cuales sólo son significativos 10 bits. El bit de

menos peso (ADFM) del registro ADCON1 selecciona el formato del

resultado de la conversión. Si vale 1, el resultado está justificado en el

registro ADRESH, que tiene sus 6 bits de más peso a cero; mientras que si

vale 0 la justificación se realiza sobre el registro ADRESL, que tiene sus 6

bits de menos peso a 0. Esto significa que los 16 bits que forman la

concatenación de ADRESH : ADRESL unas veces tiene a 0 los bits de más

peso y otras los seis bits de menos peso (alineación a la izquierda o a la

derecha) como se muestra en la figura 29.

Figura 29. Alineación del resultado digital de 10 bits de la conversión a la

izquierda y a la derecha. Fuente: Angulo (2000, p. 133).

El registro ADCON0 (véase figura 30) sirve para seleccionar la

frecuencia de reloj que se emplea en la conversión como se muestra en la

Page 46: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

99

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

tabla 3. El bit GO/DONE es el «bit de estado de la conversión». Colocando

en 1 este bit se inicia la conversión y mientras permanezca en 1 se realizará

dicha operación. Cuando este bit pasa a 0 se confirma la finalización de la

conversión. El bit ADON sirve para activar el convertidor A/D poniéndolo a 1

y para inhibir su funcionamiento poniéndolo a 0. Por último los bits CHS2–0

selecciona el canal por donde se introduce la señal analógica a convertir de

acuerdo con el código que aparece en la tabla 4. El registro ADCON1 (véase

figura 31), además de seleccionar el formato del resultado de la

conversión, los restantes 4 bits (PCFG3–0) se utilizan para configurar los

pines de los canales de entrada al convertidor como analógicas o como E/S

digitales de acuerdo con la tabla 5.

TABLA 3

Page 47: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

100

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

ADFM –––– –––– –––– PCFG3 PCFG2 PCFG1 PCFG0

7 0

Figura 31. Asignación de los bits del registro ADCON1. Fuente: Angulo (2000, p. 130).

TABLA 4 BITS DE SELECCIÓN DE LOS CANALES DE ENTRADA ANALÓGICA

CHS2 – 0 CANAL

000 Canal 0 (RA0/AN0) 001 Canal 1 (RA1/AN1) 010 Canal 2 (RA2/AN2) 011 Canal 3 (RA3/AN3) 100 Canal 4 (RA5/AN4) 101 Canal 5 (RE0/AN5) 110 Canal 6 (RE1/AN6) 111 Canal 7 (RE2/AN7)

Fuente: Angulo (2000, p. 131)

TABLA 5

DETERMINACIÓN DE LOS PINES DEL PIC QUE ACTÚAN COMO ENTRADA ANALÓGICA O COMO E/S DIGITALES

PCFG 3–0

AN7/RE2

AN6/RE1

AN5/RE0

AN4/RA5

AN3/RA3

AN2/RA2

AN1/RA1

AN0/RA0

VREF+ VREF

– CHAN/REFS

0000 A A A A A A A A VDD VSS 8/0 0001 A A A A VREF

+ A A A RA3 VSS 7/1 0010 D D D A A A A A VDD VSS 5/0 0011 D D D A VREF

+ A A A RA3 VSS 4/1 0100 D D D D A D A A VDD VSS 3/0 0101 D D D D VREF

+ D A A RA3 VSS 2/1 011x D D D D D D D D VDD VSS 0/0 1000 A A A A VREF

+ VREF– A A RA3 RA2 6/2

1001 D D A A A A A A VDD VSS 6/0 1010 D D A A VREF

+ A A A RA3 VSS 5/1 1011 D D A A VREF

+ VREF– A A RA3 RA2 4/2

1100 D D D A VREF+ VREF

– A A RA3 RA2 3/2 1101 D D D D VREF

+ VREF– A A RA3 RA2 2/2

1110 D D D D D D D A VDD VSS 1/0 1111 D D D D VREF

+ VREF– D A RA3 RA2 1/2

Fuente: Angulo (2000, p. 133).

Page 48: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

101

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Por su versatilidad y gran cantidad de puertos es utilizó como unidad

maestra de control el microcontrolador 16F877, en la figura 16 se observan

las interconexiones de los diferentes dispositivos con el microcontrolador, las

conexiones de estos elementos no se realizaron al azar, el motivo de su

conexión se atribuye a la función que desempeñaran en el sistema y a las

características del microcontrolador. Una de las ventajas que presenta este

microcontrolador es que posee 8 canales analógicos / digitales de 10 bits, de

los cuales se utilizaron 5 canales, los transductores de energía luminosa se

conectaron en los bits 0, 1, 2, 3, y 5 del puerto A, estos transductores

permiten conocer la cantidad de energía luminosa que se encuentra en el

medio, lo que le permite al sistema encontrar una fuente de energía luminosa

en el medio en el cual se desenvuelve.

Por otra parte el microcontrolador posee también un sistema de

generación de señales PWM, que es útil al momento de controlar dispositivos

de posicionamiento, la salida de este sistema se encuentra en el puerto C del

microcontrolador, en los bits 1 y 2 del mismo. En dichos bits se

interconectaron los sistemas de control de los servomotores que controlan la

posición de las aletas laterales del sistema.

De igual manera para mantener una mejor distribución y

aprovechamiento de los dispositivos de entrada y salida del microcontrolador

se conectó al bit 0 el control del servomotor que permite el direccionamiento

del chorro de agua, el control de la señal PWM de este actuador se generó

mediante la implementación de un código que simula el sistema PWM que

Page 49: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

102

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

posee el microcontrolador; en el bit 3 del mismo puerto se conectó el control

de encendido / apagado de la turbina la cual es controlada por el programa

del sistema, debido a que el microcontrolador no puede generar la corriente

necesaria para activar la turbina se diseño un circuito de encendido que es

controlador por el microcontrolador, el mismo se compone por un transistor

NPN conectado en configuración de colector común, con una

retroalimentación de emisor a base, de esta manera se le suministra la

corriente suficiente a la turbina para su funcionamiento.

El sistema cuenta a su vez con una serie de sensores que le permiten

conocer si ha hecho contacto con algún objeto dentro del medio donde se

desenvuelve, estos sensores se interconectaron en los bits 4 - 7 del puerto D

del microcontrolador, de la misma manera se conecto un sensor de fondo en

el bit 7 del puerto B, aunado a este cúmulo de sensores se agregó un

selector para su activación o desactivación, esto para prevenir posibles fallas

en los sensores de contacto, el selector se conectó en el bit 6 del puerto B.

En el diseño se presenta también un conjunto de sensores de

inclinación, los cuales son sensores de contacto, su diseño de se basa en el

uso de un elemento conductor de forma esférica que se encuentra dentro de

un encapsulado rectangular, dentro del encapsulado se encuentra 5

contactos dispuestos de la siguiente manera, uno en la parte superior, uno

en cada pared lateral y dos en la parte inferior, el conductor esférico se

mueve libremente dentro del encapsulado, de esta manera dependiendo de

la posición del rectángulo el conductor genera un corto circuito entre los

Page 50: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

103

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

contactores, tomando en cuenta este criterio se conectaron tres de estos

dispositivos de inclinación al microcontrolador en los bits 5, 6, y 7 del puerto

C, la posición establecidas para los sensores son 60°, 90° y 120°

respectivamente.

Tomando en cuento las especificaciones descritas con anterioridad se

procede al diseño del circuito impreso en el que se ensambla los

componentes propuestos para el sistema de control, en la figura 32 se

muestra el plano del circuito impreso, cada línea del plano representa una

conexión entre un dispositivo y otro.

Figura 32. Plano del circuito del sistema de control del robot.

Fuente: García (2002)

Una vez culminado el plano del circuito impreso se procedió a

imprimirlo en una hoja de papel de transferencia térmica, este papel permite

trasladar el diseño a una lámina de vaquelita y cobre previamente limpiada

Page 51: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

104

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

para este fin, con el uso de una plancha caliente se le adiciona al cobre el

plano del circuito impreso. Una vez fría la placa se le retira el papel y se

sumerge en cloruro férrico hasta que se disuelva todo el cobre que no se

encuentra cubierto por el diseño, posteriormente se le realizan las

perforaciones necesarias para lograr montar los componentes en la misma

como se puede observar en la figura 33.

Figura 33. Placa del sistema de control del robot. Fuente: García (2002)

El sistema no solamente se basa en el circuito de control, el diseño

externo del robot se encuentra enfocado en la estructura física de un

calamar, en la figura 1 (ver capítulo II) se muestra la estructura de un

calamar. Para poder realizar un molde en positivo de la estructura externa

del robot se procedió a moldear un cuerpo de plastilina y arcilla, en el cual se

resaltaron los detalles del mismo, y un buen diseño hidrodinámico.

Page 52: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

105

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Durante el desarrollo del cuerpo se le agregaron una aleta frontal y

una posterior para permitirle una mayor estabilidad para el libre movimiento

del robot dentro del entorno. En la figura 34 se puede visualizar una

fotografía del cuerpo del robot moldeado en plastilina.

Figura 34. Molde positivo del robot.

Fuente: García (2002).

Culminado el molde de plastilina, se procedió a realizarse el molde en

negativo, para ello se utilizó una mezcla de yeso y agua, el mismo se efectuó

en un recipiente con las dimensione necesarias para introducir el molde de

plastilina, el vaciado del molde se realizó en dos etapas para hacer más fácil

el desmolde del mismo. En la primera etapa se vertió en el recipiente la

mezcla de yeso y se sumergió la figura de plastilina con la parte frontal boca

Page 53: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

106

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

abajo, tratando de que la mitad posterior quedara al descubierto, se esperó

hasta que secara lo suficiente para sacarlo del recipiente.

Seguidamente se le aplicó una capa de jabón al molde compuesto por

la figura de plastilina y el yeso, con la finalidad de generar una capa que

permita la separación entre las capas, culminada esta acción se procedió a

realizar la segunda etapa del vaciado, que consistió en verter dentro del

envase que contiene el molde realizado en la primera etapa una mezcla de

yeso, hasta cubrir uniformemente la figura de plastilina.

Una vez seco se sacó el molde del envase para el secado del mismo,

debido a que es una pieza muy grande el tiempo de secado se torna grande

por lo que se esperó hasta que el mismo se secara completamente.

Seco ya el molde se separan las dos capas de yeso con la ayuda de

herramientas puntiagudas (espátulas, cuchillos, entre otros), y se retiran del

molde negativo todos los rastros de plastilina obteniendo de esta manera el

molde donde se realizará la piel impermeable del robot, en el anexo B se

puede observar una secuencia de fotografías del proceso antes descrito; al

molde negativo del robot se le agregaron capas de látex de manera uniforme,

permitiendo el secado entre capas. Para obtener el espesor deseado en la

piel se aplicaron cinco capas de látex, una vez seco el látex se procedió a

retirar la membrana del molde, obteniendo como resultado la figura

establecida en el negativo del molde.

La estructura interna del robot se materializó con un conjunto de

láminas de acrílico y alambre, desarrollando con ellas la forma del esqueleto

Page 54: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

107

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

interno y los soportes de los elementos electrónicos y electromecánicos; ya

que la membrana de látex es muy flexible se colocó una malla moldeable

entre la estructura y el látex con la finalidad de impedir la deformidad de la

piel al tener contacto con el medio en el cual se desenvuelve; en el anexo C

se puede observar imágenes de la membrana de látex desarrollada para el

robot.

Finalmente se desarrollaron los moldes de las piezas estéticas del

robot (tentáculos) como también el conjunto de sensores y actuadores

necesarios para el completo funcionamiento del robot.

Fase 7. Depuración del software.

Una vez culminado el código del programa, se procedió a probar y

depurar las rutinas del sistemas, se observó una incoherencia en la

modulación PWM del servomotor de direccionamiento del chorro, esto se

debió a problemas con las estructuras de retardo para la escala de tiempo;

esto se pudo solucionar agregando un algoritmo de retardo para disminuir la

frecuencia de trabajo, otro inconveniente se presentó en la lectura de los

sensores de inclinación, esto se produjo debido a que dichos sensores se

activaban y el microcontrolador los descifraba como múltiples activaciones, la

solución se obtuvo cambiando el algoritmo de lectura, de manera que una

vez activado no se volvía a chequear hasta un cambio en los estados.

Page 55: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

108

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

Fase 8. Integración del hardware y software.

Al culminar la depuración del software, se ensambló el robot completo;

se grabó el código del programa en el microcontrolador, se interconectaron

todos los dispositivos a los circuitos impresos, se aseguraron los mismos al

esqueleto del robot y se introdujeron dentro de la piel de látex desarrollada

para proteger el sistema del agua.

Al completarse todo el ensamblaje se introdujo el robot en la pecera

diseñada para sus pruebas y se observó el funcionamiento del sistema

planteado en esta investigación.

Fase 9. Construcción del prototipo definitivo y pruebas finales.

El sistema aprobó satisfactoriamente las pruebas que se le realizaron,

confirmando el funcionamiento de todas las rutinas; en referencia al prototipo

definitivo se puede acotar que basados en el criterio de la evolución, el

sistema no cuenta con un prototipo final, esto debido a que el mismo puede

seguir evolucionando, y perfeccionándose su comportamiento e interacción

con el medio en el cual se desenvuelve.

Page 56: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

109

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

DISCUSION DE LOS RESULTADOS.

De acuerdo a los resultados arrojados por la presente investigación se

puede comprobar las teorías expuestas en el capítulo II de la misma.

FU, GONZALEZ y LEE (1990, p. 1) expone que “un robot debe poseer

inteligencia que se debe normalmente a los algoritmos de computador

asociados con su sistema de control y sensorial”, dicha teoría concuerda con

lo obtenido durante el desarrollo de la investigación ya que el robot diseñado

presenta un nivel de inteligencia suficiente que le permite tomar acciones

sobre su comportamiento dependiendo de las variables que encuentre dentro

del entorno en el que se desenvuelve, así mismo estos autores (1990, p.

306) indican que “la capacidad de visión dota al robot con un sofisticado

mecanismo de percepción que permite a la máquina responder a su entorno

de una forma inteligente y flexible”, capacidad que se observa en el diseño

robótico expuesto en esta investigación ya que el mismo está en la facultad

de localizar una fuente de energía luminosa dentro del entorno de

desenvolvimiento.

Por otra parte GROOVER, WEISS y otros (1994, p. 582) hacen

referencia al desarrollo de sistemas robóticos con la capacidad de realizar

tareas dentro del entorno acuático, dichos robots estarán adecuadamente

protegidos contra la corrosión, podrán operar durante períodos amplios de

tiempo y “serían en gran medida autocontenidos, equipados con un

suministro de potencia a bordo, sensores, computadores”, estas

Page 57: CAPITULO IV RESULTADOS DE LA I NVESTIGACION

110

CAPITULO IV. RESULTADOS DE LA INVESTIGACION

características se lograron obtener en el diseño expuesto en la investigación

por lo que el mismo cuenta con la autonomía necesaria para simular el

comportamiento del calamar en un tiempo relativamente largo, además de

poseer sensores que le permiten a un microcomputador (microcontrolador)

establecer las variables presentes en el entorno. Con todo lo antes expuesto

se puede afirmar el diseño concuerda con las teorías expuesta por dichos

autores.

Por otra parte, la enciclopedia ARGOS DEL MUNDO ANIMAL (1972,

p. 401) indica que “el movimiento del calmar se genera por la acción de un

chorro de agua, el cuál es dirigido por el embudo móvil de la salida del

manto”, esta teoría tiene bases con la obtenida en la investigación, que

expone que un calamar puede movilizarse por medio de un chorro de agua

generado por una turbina de propulsión, y los movimientos son controlados

por un timón ubicado a la salida de la turbina.