61
Estudio y Diseño de un Oscilador Caótico para Aplicación en Robot Móvil Ramos López Hugo César Junio 2013

Estudio y Diseño de un Oscilador Caótico para Aplicación

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Estudio y Diseño de un Oscilador Caótico para Aplicación

Estudio y Diseño de un Oscilador Caótico para Aplicación en Robot Móvil

Ramos López Hugo César

Junio 2013

Page 2: Estudio y Diseño de un Oscilador Caótico para Aplicación

Índice general

Resumen 1

1. Introducción 2

1.1. Concepto de caos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2. Osciladores caóticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3. Concepto de generador de números aleatorios . . . . . . . . . . . . . . . . 5

1.4. Descripción del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.5. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.6. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.6.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. Simulación de osciladores caóticos (MATLAB) 8

2.1. Conceptos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.1. Circuito de Chua . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.2. Función no-lineal saturada . . . . . . . . . . . . . . . . . . . . . . 9

2.1.3. Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.4. Simulación con MATLAB . . . . . . . . . . . . . . . . . . . . . . 13

2.2. Circuito de Chua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3. Función no-lineal saturada (SNLF) . . . . . . . . . . . . . . . . . . . . . 15

2.3.1. SNLF para dos enrollamientos . . . . . . . . . . . . . . . . . . . . 16

3. Diseño de osciladores caóticos basados en amplificadores operacionales 18

3.1. Implementación de las variables de estado . . . . . . . . . . . . . . . . . 18

3.1.1. Generalidades de los opamps . . . . . . . . . . . . . . . . . . . . 18

3.1.2. Configuraciones básicas . . . . . . . . . . . . . . . . . . . . . . . 18

Configuración seguidor . . . . . . . . . . . . . . . . . . . . . . . . 18

Configuración inversor . . . . . . . . . . . . . . . . . . . . . . . . 19

Configuración sumador . . . . . . . . . . . . . . . . . . . . . . . . 19

Configuración integrador . . . . . . . . . . . . . . . . . . . . . . . 20

Configuración restador . . . . . . . . . . . . . . . . . . . . . . . . 20

Configuración comparador de voltaje . . . . . . . . . . . . . . . . 20

i

Page 3: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Configuración derivador . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.3. Implementación electrónica del sistema . . . . . . . . . . . . . . . 21

Oscilador con funciones saturadas con opamps . . . . . . . . . . . 21

Oscilador con diodo de Chua implementado con opamps . . . . . . 23

3.1.4. Pruebas de los sistemas . . . . . . . . . . . . . . . . . . . . . . . 27

Comparación de los osciladores de Chua y el basado en SNLF . . . 27

4. Diseño de generador de números aleatorios 29

4.1. Generador de números aleatorios . . . . . . . . . . . . . . . . . . . . . . 29

4.2. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.2.1. Aleatoriedad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Prueba de mono-bits . . . . . . . . . . . . . . . . . . . . . . . . . 30

5. Leyes de control, simulación y pruebas 32

5.1. Leyes de control retroalimentadas . . . . . . . . . . . . . . . . . . . . . . 33

5.2. Control simple y discontinuo . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.3. Programación de la ley de control . . . . . . . . . . . . . . . . . . . . . . 35

5.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.4.1. Programa en el microcontrolador . . . . . . . . . . . . . . . . . . 35

6. Conclusiones y trabajos futuros 38

6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Bibliografía 40

Apéndices 43

A. Código MATLAB para el modelado de SNLF de dos enrollamientos 43

B. Ley de control MATLAB 47

C. Ley de control PIC 48

D. Test de mono-bits MATLAB-arduino 53

ii

Page 4: Estudio y Diseño de un Oscilador Caótico para Aplicación

Índice de figuras

1.2.1.Oscilador caótico de Chua . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.1.Curva caracteristica del diodo de Chua . . . . . . . . . . . . . . . . . . . . . 9

2.1.2.Descripción PWL de una SNLF con 5 y 7 segmentos . . . . . . . . . . . . . . 10

2.1.3.Representación grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.1.Representación gráfica del diodo de Chua . . . . . . . . . . . . . . . . . . . 14

2.2.2.Circuito de Chua generando 2 enrollamientos . . . . . . . . . . . . . . . . . 14

2.2.3.Señales en cada variable de estado en el tiempo . . . . . . . . . . . . . . . . 15

2.3.1.Grafica de 3 segmentos para generar dos enrollamientos . . . . . . . . . . . . 16

2.3.2.Oscilador caótico de dos enrollamientos, Graficas en el tiempo de las variables . 17

3.1.1.Modelo de un opamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1.2.Configuración seguidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1.3.Configuración inversor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1.4.Configuración sumador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1.5.Configuración integrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.6.Configuración restador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.7.Configuración comparador de voltaje . . . . . . . . . . . . . . . . . . . . . . 21

3.1.8.Configuración derivador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.9.Diagrama del sistema caótico . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1.10. Implementación con opamps . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1.11.a) SNLF con TL082, b) Grafica de la SNLF . . . . . . . . . . . . . . . . . 23

3.1.12.Configuración genérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1.13.Convertidor de impedancias generalizado . . . . . . . . . . . . . . . . . . . 24

3.1.14. Inductor con convertidor generalizado . . . . . . . . . . . . . . . . . . . . 25

3.1.15.Esquema del diodo de Chua con opamp . . . . . . . . . . . . . . . . . . . 25

3.1.16.a) Diodo de Chua y b) Su pendiente . . . . . . . . . . . . . . . . . . . . 26

3.1.17.Circuito de Chua completo . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.18.Pruebas en laboratorio: a) Diodo de Chua y b) SNLF . . . . . . . . . . . . . 27

3.1.19.FFT SNLF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.1.1.Generador de bits aleatorio . . . . . . . . . . . . . . . . . . . . . . . . . . 30

iii

Page 5: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

4.1.2.Señal del generador de bits . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.2.1.Test de mono-bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.0.1.Descripción del movimiento en un plano . . . . . . . . . . . . . . . . . . . . 32

5.1.1.Configuración del control cinemático . . . . . . . . . . . . . . . . . . . . . . 33

5.2.1.Diagrama del sistema físico completo . . . . . . . . . . . . . . . . . . . . . 35

5.4.1.Prueba del control de motores . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.4.2.Móvil funcionando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

iv

Page 6: Estudio y Diseño de un Oscilador Caótico para Aplicación

Resumen

El conocimiento de nuevas herramientas aplicables al diseño de prototipos electrónicos para

desarrollar avances en la autonomía robótica día con día evoluciona, formando así una gran

gama de opciones para la realización experimental de proyectos en ingeniería en general .En

esta investigación se describe el modelado, la simulación y la implementación experimental

de un sistema dinámico que se ha nombrado robot móvil autónomo para desplazarse en un

terreno delimitado en coordenadas y área, por las características físicas del sistema, tales

como numero de bits, circunferencia de la rueda del robot móvil y numero de pasos de los

motores del sistema. El prototipo que se presenta, se trata de un robot cuyas coordenadas

son controladas por un generador de números aleatorios, el cual se ha desarrollado con base

en la teoría de los osciladores caóticos para darle autonomía. De esta manera, se describe el

oscilador caótico basado en series de funciones no lineales saturadas (NLSF por sus siglas

en inglés). Básicamente, este oscilador caótico se usa para generar números aleatorios, los

cuales se introducen a un bloque electrónico que ejecuta una ley de control, otorgándole

autonomía al robot. El oscilador caótico que se usa como caso de estudio para gobernar

al robot autónomo se ha diseño con amplificadores operacionales. Asimismo, se describen

las leyes de control implementadas, las cuales son útiles para sistemas que consisten de

osciladores caóticos para poder iniciar el estudio de nuevas aplicaciones. Parte de ello se

menciona al final de esta investigación como trabajo a futuro.

Page 7: Estudio y Diseño de un Oscilador Caótico para Aplicación

Capítulo 1

Introducción

A lo largo de la historia de la tecnología y la evolución de herramientas para la creación

de aparatos llamados robots, han existido muchos modelos, pero la mayoría diseñado y

construido con CPU’s o Microcontroladores a los cuales se les programa para que realicen

una función especifica [16]; Los investigadores se han propuesto una idea revolucionaria: “

Construir un robot autónomo” libre de programación, y que su control este a cargo de un

sistema con la capacidad de explorar todo un espacio de posibilidades de movimiento. En

ese sentido, en esta investigación se describe la utilidad de los osciladores caóticos. Esto

es una novedad que esta ubicada en la tecnología de control del caos para aplicaciones

múltiples[2].

El caos es un fenómeno muy amplio y universal existente en varios sistemas no lineales.

Por mucho tiempo fue confundido con ruido, no fue hasta que en el campo de la ingeniería

se anuncio oficialmente su existencia en sistemas eléctricos en el año de 1980. Por otra

parte las comunidades de científicos e ingenieros se dieron cuenta que el caos podía ser

controlado[1,2].

Los sistemas caóticos se han vuelto de gran interés en las telecomunicaciones, partiendo

de la teoría del caos; la cual involucra un “orden dentro del desorden“, es decir es un sistema

dinámico no lineal que a partir de ciertas condiciones iniciales se podrían tener resultados

prácticamente impredecibles, dichas condiciones son extremadamente sensibles puesto que

la más mínima alteración repercute en su comportamiento, como es el caso de la bolsa de

valores, la meteorología, en la dinámica poblacional, etc. Pero por otra parte si se conocen

las condiciones iniciales podemos intentar determinar la trayectoria del sistema[1,2].

La comunidad académica y científica siempre ha estado obsesionada por el control,

se cree que cuantas más técnicas se desarrollen, más control se tendrá sobre el mundo.

Es lo que ocurre en la Tierra: es un sistema caótico, siempre cambiante y adaptándose,

pero si uno se excede el sistema cambiará impredeciblemente o colapsará. Un ejemplo son

los problemas con la capa de ozono, el aumento de la temperatura global y el deshielo,

problemas con los recursos como el petróleo, etc.[1].

2

Page 8: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Con base en lo anteriormente mencionado, un campo de investigación muy activo hoy

en día es el estudio de sistemas dinámicos no lineales y, particularmente, el de los sistemas

caóticos [3,7]. A pesar de que esta rama de investigación es relativamente joven, no hay la

menor duda de que está llegando a adquirir cada vez más importancia en una gran variedad

de disciplinas[4,5,6,8].

El fenómeno caótico es fascinante para muchos investigadores en varios campos como

en las matemáticas, física, ingeniería y otras mas.

Un robot móvil es un dispositivo electromecánico capaz de desplazarse dentro de un

espacio de trabajo (laboratorio, nave industrial, corredor, habitación, etc.) con diferentes

niveles de autonomía.[12]

En la robótica el primer robot móvil caótico que podía navegar atraves de un patrón

caótico fue propuesto por nakamura y Sekikuchi[2,9,10,11]

1.1. Concepto de caos

Antes de comenzar a analizar las bases de esta teoría es importante profundizar en

lo que significa caos. Proviene del griego “khaos” que significa abismo o abismo abierto.

Por lo tanto es común pensar que el caos es aquello que carece de orden, algo confuso

e incoherente. Sin embargo para la teoría del caos el enfoque difiere de los conceptos

mencionados ya que en realidad el caos es la misma esencia del orden [1,13].

“Caos” es un comportamiento aperiódico a largo plazo en un sistema determinista que

exhibe una dependencia muy sensible a las condiciones iniciales[14].

1. “Comportamiento aperiódico a largo plazo” significa que las trayectorias no tienden

a un punto fijo, órbitas periódicas u órbitas cuasi-periódicas conforme t→∞.

2. “Determinista” significa que el sistema no tiene entradas o parámetros aleatorios. El

comportamiento irregular surge de las no linealidades del sistema.

3. “Dependencia sensible a las condiciones iniciales” significa que las trayectorias que

son cercanas, con el tiempo se separan exponencialmente.

Uno de los puntos más interesantes en el estudio de los sistemas caóticos es si la presencia

del caos puede producir estructuras ordenadas y patrones a gran escala pero así mismo el

control del caos tiene dos inconvenientes: la supresión y la sincronización del caos [15].

El uso del caos es posible cuando un oscilador caótico puede ser implementado por medio

de circuitos electrónicos tales como Amplificadores Operacionales, dispositivos capacitivos,

inductores y resistivos;

3

Page 9: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

1.2. Osciladores caóticos

Un oscilador caótico es producido por un sistema caótico y no tiene ningún período.

Los sistemas caóticos son deterministas y dinámicos [14].

Un sistema determinista siempre llega a los mismos puntos a partir de una condición

inicial, lo que significa que la dinámica de ese sistema es reproducible. En contraste,

un sistema no determinista puede presentar un comportamiento diferente cada vez

que se ejecuta .

Un sistema dinámico es un sistema que describe la evolución del estado de un sistema

en función del tiempo o alguna variable continua o discreta.

Existen distintos tipos de osciladores caóticos, iniciando por lo discretos que se implementan

con interruptores o circuiteria digital, y los continuos que se describen con al menos 3

ecuaciones diferenciales de primer orden. Un oscilador caótico exhibe distintos tipos de

comportamiento, y en cuanto a los atractores, estos pueden generar uno, dos, o múltiples

enrollamientos y en varias direcciones. La generación de varios enrollamientos se realiza

modificando la función perturbadora (o no-lineal). Lo que conlleva a la modificación de

componentes o ecuaciones que lo describen.

Un ejemplo claro es el famoso oscilador caótico de Chua, el cual se muestra en la fig.1.1,

y consiste de tres elementos dinámicos para describir el sistema de tercer orden, un resistor

lineal cuyo valor varia para generar distintos comportamientos caóticos, y el diodo de Chua

(NR), que es una función no-lineal que puede describirse por tramos (PWL).

Figura 1.2.1: Oscilador caótico de Chua

Aplicando análisis de nodos, dicho circuito lo describen las siguientes ecuaciones

4

Page 10: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

C1dVC1

dt= G(VC2 − VC1)− g(VC1)

C2dVC2

dt= G(VC1 − VC2) + IL

LdILdt

= −VC2 (1.1)

g(Vc1) = G1VC1 +1

2(G2 −G1)(|VC1 + E| − |VC1 − E|) (1.2)

Con estos conceptos de osciladores caóticos pueden construirse circuitos para implemen-

taciones en diversas áreas de la electrónica, industria, robótica, etc. Entre tales aplicaciones

de dichos circuitos sobresale el diseño de un generador de números aleatorios.

1.3. Concepto de generador de números aleatorios

En estadística, un número aleatorio es un resultado de una variable al azar especifi-

cada por una distribución. Los algoritmos para la generación de valores uniformemente

distribuidos están presentes en todas las calculadoras y lenguajes de programación.

1.4. Descripción del problema

En el campo de la robótica actualmente existen un sinnúmero de estrategias para lograr

que un robot simule ser autónomo, es decir se han elaborado métodos de programación sofis-

ticados para implementarse en autómatas; dichos métodos requieren de un tiempo extenso

de diseño para distintos fines, siendo estos tediosos para personas con poca experiencia en

programación.

Entonces £como se puede evitar que el diseño de un autómata sea pesado y tardado?.

Una idea principal es el uso del caos como método de control, o dicho de otro modo

controlar el caos para dichos fines aplicables a la robótica, de este modo aparte de evitar los

problemas antes mencionados, se pueden solucionar otros como son la lentitud de respuesta,

los ciclamientos, la falta de respuesta en situaciones no consideradas, etc.

Los sistemas caóticos han sido un atractivo campo de investigación en diversas áreas,

entre ellas la física, las comunicaciones y la electrónica. Cada nuevo sistema caótico es un

candidato para mejorar las aplicaciones en electrónica . Por ejemplo, atractores caóticos de

múltiples enrollamientos son buenos candidatos en aplicaciones de autonomía móvil porque

presentan comportamientos complejos[14] .

5

Page 11: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

De esta manera se plantea el diseño e implementación de un robot móvil mediante

el uso de osciladores caóticos de doble enrollamiento. En el desarrollo del proyecto esta

contemplado observar el funcionamiento de dos tipos de osciladores y así mismo analizarlos

para decidir que oscilador sera el elegido para ser implementado en robot móvil.

1.5. Justificación

El uso de robots móviles tiene muchas aplicaciones como, transportación industrial,

limpiadores de piso y hasta como bomberos; Las aplicaciones en la industria y en la vida

cotidiana son mas exigentes, así mismo en el ámbito militar, debido a que se deben hacer

exploraciones de terrenos para lograr una máxima seguridad de las tropas.

Para que el robot pueda satisfacer una seguridad debe cumplir con tres objetivos prin-

cipales[11]:

1. Impredecibilidad de trayectoria

2. Escaneo del terreno completo

3. Rápido escaneo del lugar de trabajo

Dichos objetivos mencionados son los principales por los cuales se puede elegir un diseño

de robot aplicando sistemas o circuitos caóticos, debido a su dinámica de Impredecibilidad.

Como es sabido, los sistemas no-lineales son ricos en comportamientos dinámicos,mostrando

una variedad de fenómenos caóticos. Este comportamiento caótico es la razón por la cual

los sistemas no lineales son usados en muchas otros campos de la ingeniería como las

comunicaciones, criptografia, generador de bits aleatorios y redes neuronales [11,2].

La importancia de usar los sistemas no lineales en robots autónomos es conseguido por

los controladores diseñados, los cuales aseguran el movimiento caótico. Señales, las cuales

son producidas por sistemas caóticos o circuitos, son usadas para guiar robot autónomos

para la exploración de terrenos o para vigilancia, búsqueda etc. La parte mas importante

de los sistemas caóticos es su impredecibilidad, esta es una condición necesaria ya antes

mencionada. En las literaturas son conocidos muchos sistemas caóticos, algunos como el

sistema dinámico de Arnold, mapero de Taylor-Chirikov, sistema de Lorenz y el circuito de

Chua, y todos han sido utilizados. [11].

Por su complejidad, su dinámica impredecible y su extrema sensibilidad a condicio-

nes iniciales, características esenciales de los sistemas caóticos, hacen de estos excelentes

candidatos a emplearse para conseguir un buen planeador de trayectorias usando una señal

caótica generar números aleatorios y conseguir un amplio cubrimiento de área en un espacio

de prueba.

6

Page 12: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

1.6. Objetivos

1.6.1. Objetivo general

Estudio y diseño de un oscilador caótico para aplicación en robot móvil

Objetivos específicos

- Conocer el funcionamiento de un oscilador caótico

- Diseñar un oscilador caótico con opamps

- Diseñar un generador de números aleatorios basado en un oscilador caótico

- Aplicar ley de control para un robot seguidor de trayectorias basado en oscilador

caótico

Conociendo los objetivos planteados, de manera general, cada uno de los capítulos que

integran el trabajo correspondiente son:

La descripción general del tema principal es presentada en la introducción, de manera

mas detallada en el capitulo 2 se presentan una cuestión importante para el desarrollo del

proyecto y así mismo base del mismo, dicho tema es la simulación de osciladores caóticos

utilizando la muy conocida herramienta MATLAB.

En el tercer capitulo es mostrada la forma de diseño de osciladores caóticos utilizan-

do Amplificadores Operacionales (opamps) y así mismo la simulación en herramientas de

simulación virtual como son MULTISIM y TopSpice.

La cuarta parte esta comprendida por el diseño de un generador de números aleatorios

el cual sera indispensable para convertir los datos obtenidos de la señales de salida del

oscilador seleccionado en secuencias de bits aleatorios para su procesamiento descrito en el

capitulo 5.

La Quinta sección consta de el análisis y comprensión de una ley de control para que

el móvil a diseñar pueda obtener movimiento, así mismo de los métodos utilizados para

capturar y procesar los datos obtenidos del generador de Bits aleatorios.

El ultimo capitulo integra una breve explicación del diseño físico del robot móvil así

como una tabla de comparaciones de pruebas realizadas en el laboratorio.

7

Page 13: Estudio y Diseño de un Oscilador Caótico para Aplicación

Capítulo 2

Simulación de osciladores caóticos

(MATLAB)

2.1. Conceptos generales

2.1.1. Circuito de Chua

Entre los circuitos caóticos diseñados, el circuito caótico de Chua es un sistema ex-

tremadamente simple que puede ser fácilmente construido y manejable matemáticamente

[3,14,2]. Como se muestra en la fig.1.1, el circuito de Chua contiene tres elementos de al-

macenamiento de energía, un resistor lineal y una resistencia no lineal (NR) llamado diodo

de Chua, dicho circuito es descrito por un sistema de ecuaciones de estado de tercer orden

cuyas variables de estado son la corriente del inductor L y los voltajes de los capacitores C1

y C2 [14,2].

El conjunto de ecuaciones que describen el comportamiento del circuito de Chua se

definen por:

C1dVC1

dt= G(VC2 − VC1)− g(VC1)

C2dVC2

dt= G(VC1 − VC2) + IL

LdILdt

= −VC2 (2.1)

g(Vc1) = G1VC1 +1

2(G2 −G1)(|VC1 + E| − |VC1 − E|) (2.2)

La ecuación (2.2) describe la función desestabilizante g(Vc1)=iD, donde G1 y G2 son las

8

Page 14: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

pendientes de los tres segmentos controlados por voltaje que definen el resistor no lineal y

±E son los puntos de quiebre para generar el fenómeno caótico, como se muestra en la fig.

2.1.

Figura 2.1.1: Curva caracteristica del diodo de Chua

2.1.2. Función no-lineal saturada

La función de saturación se basa en el uso de aproximaciones linealizadas por tramos

(PWL), como se muestra en la fig.2.2 .En (2.3) se describe una aproximación PWL llamada

serie de una función no lineal saturada (SNLF, por sus siglas en ingles), donde k ≥2 es

la pendiente de la función saturada y un factor multiplicador para plateaus saturadas (en

este trabajo se utilizara el concepto de plateau, en lugar de su traducción, debido a que las

expresiones utilizadas tienen un trasfondo científico con ese concepto), plateau=±nk, con

n = entero impar para generar enrollamientos pares, y n = entero par, para generar enrolla-

mientos impares. h = retraso saturado del centro de las pendientes y debe estar de acuerdo

con hi = ±m donde i = 1,..., [(enrollamientos- 2)/2] y m = 2,4,..., (enrollamientos-2) para

enrollamientos pares; e i = 1,..., [(enrollamientos -1)/ 2] y m = 1,3,..., (enrollamientos -2)

para enrollamientos impares; p y q son enteros positivos [18,14].

f(x; k, h, p, q) =

q∑

i=−p

fi(x; h, k) (2.3)

9

Page 15: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 2.1.2: Descripción PWL de una SNLF con 5 y 7 segmentos

Consideremos el siguiente sistema lineal autónomo de tercer orden:

.x = y.y = z.z = −ax− by − cz (2.4)

donde x, y y z son las variables de estado y a,b,c son constantes positivas. Para que el

sistema lineal (2.4) genere un comportamiento caótico, es necesario añadir un controlador

no lineal como se muestra en (2.5), donde f(x; k,h,p,q) está definido por (2.6), y se debe

satisfacer que 0<a b c d<1 para cumplir las condiciones de caos [14].

.x = y.y = z.z = −ax − by − cz + df(x; k, h, p, q) (2.5)

f(x; k, h, p, q) =

(2q + 1)k x > qh+ 1

k(x− ih) + 2ki |x− ih| ≤ 1;

−p ≤ i ≤ q

(2i+ 1)k ih+ 1 < x < (i+ 1)h− 1;

−p ≤ i ≤ q − 1

−(2p + 1)k x < −ph− 1

(2.6)

aplicando un factor de escala α a (2.6) se representa de la siguiente manera

10

Page 16: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

f(x;α, k, h, p, q) =

(2q + 1)k x > qh+ α

k/α(x− ih) + 2ki |x− ih| ≤ α;

−p ≤ i ≤ q

(2i+ 1)k ih+ α < x < (i+ 1)h− α;

−p ≤ i ≤ q − 1

−(2p+ 1)k x < −ph− α

(2.7)

2.1.3. Método de Euler

La idea del método de Euler es muy sencilla y está basada en el significado geométrico

de la derivada de una función en un punto dado. Este método de integración numérica

se usa para resolver el sistema de ecuaciones diferenciales descritas en (2.5). se supone la

curva solución de una ecuación diferencial y se traza la recta tangente a la curva en el

punto dado por la condición inicial[14]. Debido a que la recta tangente aproxima a la curva

en valores cercanos al punto de tangencia, se puede tomar el valor de la recta tangente en

el punto X1 como una aproximación al valor deseado y(x1), como se muestra en la fig.2.3.

Figura 2.1.3: Representación grafica

Así, se puede calcular la ecuación de la recta tangente a la curva solución de la ecuación

diferencial dada en el punto (x0,y0) . Se sabe que la ecuación de la recta es:

y = m (x− x0) + y0 (2.8)

donde m es la pendiente. En este caso, se sabe que la pendiente de la recta tangente

se calcula con la derivada:

11

Page 17: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

m = y′|(x0,y0) = f(x0, y0) (2.9)

Por lo tanto, la ecuación de la recta tangente es:

y = f (x0, y0) (x− x0) + y0 (2.10)

Ahora bien, se supone que x1 es un punto cercano a x0, y por lo tanto estará dado

como x1 = x0 + h. De esta forma, se tiene la siguiente aproximación:

y (x1) = y (x0 + h) ∼= f (x0, y0) (x0 + h− x0) + y0 ∼= y0 + hf (x0, y0) (2.11)

Esta aproximación puede ser suficientemente buena, si el valor de h es realmente pe-

queño. Ahora bien, si:

y1 = y0 + hf (x0, y0) (2.12)

Para obtener y2 únicamente hay que pensar que ahora el papel de (x0, y0) lo toma el

punto (x1, y1), y por lo tanto, al sustituir los datos se tiene:

y2 = y1 + hf (x1, y1) (2.13)

Por lo tanto se puede observar claramente que la fórmula recursiva general, está dada

por:

yn+1 = yn + hf (xn, yn) (2.14)

Esta es la conocida fórmula de Euler que se usa para aproximar el valor de y (xn)

aplicándola sucesivamente desde x0 hasta xn en pasos de longitud h.

Conociendo (2.14) se puede elaborar un algoritmo de integración conocido como método

numérico, para el análisis de los osciladores caóticos (ver apéndice A).

12

Page 18: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

2.1.4. Simulación con MATLAB

MATLAB (abreviatura de MATrix LABoratory, por sus siglas en ingles) es un software

matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de pro-

gramación propio (lenguaje M). Entre sus prestaciones básicas se hallan: la manipulación

de matrices, la representación de datos y funciones, la implementación de algoritmos, la

creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes

y con otros dispositivos hardware.

2.2. Circuito de Chua

En la fig.2.4 se muestra la gráfica para dos enrollamientos y en la fig.2.5 se muestra

la respuesta del circuito con valores g1=-1/1358, g2=-1/2464, C1=450pF, C2=1.5 nF,

L=1mH, R=1655 Ω, Bp1=±.114, Bp2=±.4, condiciones iniciales Vc1=0.01 V, Vc2= 0 V,

IL=0 A y el tamaño de paso h=0.0000001; correspondiente a la fig.1.1 se realiza el análisis

del circuito para obtener (2.15)[19]:

dvc1dt

= −vc1 − vc2RC1

−mvc1 − iNR

C1,

dvc2dt

= −vc1 − vc2RC2

+ilC2, (2.15)

diLdt

= −vc2L

Teniendo la ecuaciones que definen al circuito, se suma la parte del elemento no lineal

formando de esta manera la matriz que servirá para la programación (Apéndice A)

vc1

vc2

iL

=

− 1RC1

− mc1

1RC1

01

RC2

− 1RC2

1C2

0 − 1L

0

vc1

vc2

iL

+

iNR

C1

0

0

(2.16)

13

Page 19: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 2.2.1: Representación gráfica del diodo de Chua

Figura 2.2.2: Circuito de Chua generando 2 enrollamientos

Así mismo se puede obtener la gráfica de la señal en el tiempo de cada variable de

estado para observar la generación del caos como se muestra en la fig.2.6

14

Page 20: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 2.2.3: Señales en cada variable de estado en el tiempo

2.3. Función no-lineal saturada (SNLF)

De manera generalizada se puede decir que el modelado de un oscilador caótico con

funciones no lineales saturadas, es similar al modelado del oscilador de Chua.

Para el caso citado en este trabajo el circuito modelado contiene un factor de escala

para funcionamiento con circuitos electrónicos.

La simulación numérica de (2.5) y (2.7) se lleva a cabo creando un programa en

MATLAB aplicando (2.14). (ver apéndice A) Si se considera el sistema de variables de

estado de la forma:

x

y

z

=

0 1 0

0 0 1

−a −b −c

x

y

z

+

0

0

−df(x;α, k, h, p, q)

(2.17)

Cuya solución aplicando (2.14) está dada por:

xn+1

yn+1

zn+1

= h

0 1 0

0 0 1

−a −b −c

x

y

z

+

0

0

−df(x;α, k, h, p, q)

(2.18)

Se puede observar que para el caso de xn+1 y yn+1 la solución se obtiene de manera

15

Page 21: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

simple, pero para zn+1 se tiene un caso particular, muestra dependencia de f(x;α,k,h,p,q)

que es la SNLF, la cual cambia conforme el número de enrollamientos que se desea generar.

2.3.1. SNLF para dos enrollamientos

La fig.2.7 muestra la gráfica que contiene 3 segmentos, para generar dos enrollamientos

el cual sera el punto de enfoque en el proyecto, analizando dicha gráfica la SNLF se describe

como:

f(x;α, k, h, p, q) =

k x > qh+ α

sx −α ≤ x ≤ α

−k x < −ph− α

(2.19)

Figura 2.3.1: Grafica de 3 segmentos para generar dos enrollamientos

De (2.19) se obtienen los parámetros de condicionales necesarios para elaborar el pro-

grama (ver Apéndice A), y tomando valores a=b=c=d=0.7, k=1, ∝=6.4e-3, s=156.25,

h=2, p=q=1, para evaluar (2.19) se tiene como resultado la fig.2.8.

16

Page 22: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 2.3.2: Oscilador caótico de dos enrollamientos, Graficas en el tiempo de las variables

17

Page 23: Estudio y Diseño de un Oscilador Caótico para Aplicación

Capítulo 3

Diseño de osciladores caóticos basados

en amplificadores operacionales

3.1. Implementación de las variables de estado

3.1.1. Generalidades de los opamps

El opamp mostrado en la fig.3.1, es básicamente un amplificador de voltaje con la

particularidad de tener dos entradas y amplificar sólo la diferencia entre ellas.

Figura 3.1.1: Modelo de un opamp

El opamp amplifica el voltaje Vi con una ganancia Av llamada también ganancia di-

ferencial de voltaje de lazo abierto produciendo un voltaje de salida V0=Av(V1-V2). Las

entradas V1 y V2 pueden alimentarse por dos voltajes referidos a tierra, o por un voltaje

flotante Vi, aplicado directamente entre las entradas. Idealmente el opamp tiene una ga-

nancia infinita de voltaje diferencial (Av), una resistencia de entrada infinita, una resistencia

de salida cero, CMRR y ancho de banda infinitos [20].

3.1.2. Configuraciones básicas

Configuración seguidor

La configuración en modo seguidor de voltaje para el opamp se muestra en la fig.3.2

18

Page 24: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 3.1.2: Configuración seguidor

Configuración inversor

La configuración en modo inversor de voltaje para el opamp se muestra en la fig.3.3

Figura 3.1.3: Configuración inversor

Configuración sumador

La configuración en modo sumador de voltaje para el opamp se muestra en la fig.3.4

Figura 3.1.4: Configuración sumador

19

Page 25: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Configuración integrador

La configuración en modo integrador de voltaje para el opamp se muestra en la fig.3.5

Figura 3.1.5: Configuración integrador

Configuración restador

La configuración en modo restador de voltaje para el opamp se muestra en la fig.3.6

Figura 3.1.6: Configuración restador

Configuración comparador de voltaje

La configuración en modo comparador de voltaje para el opamp se muestra en la fig.3.7

20

Page 26: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 3.1.7: Configuración comparador de voltaje

Configuración derivador

La configuración en modo derivador de voltaje para el opamp se muestra en la fig. 3.8

Figura 3.1.8: Configuración derivador

3.1.3. Implementación electrónica del sistema

Oscilador con funciones saturadas con opamps

El sistema descrito por (2.5) tiene una representación en diagrama de bloques dada

en la fig.3.9. la cual puede implementarse con tres integradores, un sumador, bloques de

ganancia y la SNFL .

21

Page 27: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 3.1.9: Diagrama del sistema caótico

Este sistema puede implementarse utilizando opamps como se muestra en la fig.3.10

Figura 3.1.10: Implementación con opamps

La figura 3.11 muestra la implementación de la función no lineal saturada con el am-

plificador operacional TL082 y la grafica de voltaje contra corriente de la misma.

22

Page 28: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

a

b

Figura 3.1.11: a) SNLF con TL082, b) Grafica de la SNLF

Oscilador con diodo de Chua implementado con opamps

Diseño del inductor con operacionales

Para el diseño del inductor se opto por utilizar un convertidor de impedancias generaliza-

do[21].

Un convertidor de impedancias también se puede llamar simulador de impedancias, en

este caso usando el modelo genérico mostrado en la fig.3.12

Figura 3.1.12: Configuración genérica

La ecuación que define esta configuración esta dada en (3.1)

23

Page 29: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Zin =V1I1

=Z1Z3Z5

Z2Z4(3.1)

Así tomando : Z1 = R1 ; Z3 = R3 ; Z5 = R5 y una de las dos Z2 ó Z4 como un

capacitor y la otra resistiva, se tiene:

L =R1R3R5

R2

Cs (3.2)

Como el valor del inductor es conocido simplemente se hace un arreglo en (3.2) propo-

niendo el valor de 3 de las resistencias y un capacitor quedando solo una resistencia como

incógnita para quedar de este modo:

R4 =R1R3R5

LCs (3.3)

Figura 3.1.13: Convertidor de impedancias generalizado

Una vez conocido el modelo de un convertidor de impedancias generalizado se pro-

pone que R1=R3=R5=1KΩ y el C=2.2nF teniendo a R4=2200Ω, como el opamp no es

ideal al momento de simular se hacen las mediciones necesarias para hacer correcciones de

funcionamiento teniendo así el siguiente modelo:

24

Page 30: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 3.1.14: Inductor con convertidor generalizado

Diseño del diodo de Chua con opamps

Esta es determinado por la fuente de alimentación y por la estructura interna del opamp,

necesariamente se debe conocer este valor ya que el valor de la pendiente y los puntos de

rompimiento son muy importantes para el optimo funcionamiento del circuito[22].

Figura 3.1.15: Esquema del diodo de Chua con opamp

Tomando como referencia la fig.3.15:

Se escoge a R1 lo suficientemente grande (por decir 330Ω)

Se propone R2=R1

25

Page 31: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Se evalúa

R3 =Esat

(Bp1 − Esat)g2 −Bp1g1(3.4)

Se calcula

R4 =Esat

(Bp1)(g2 − g1)(3.5)

R4=R5

Se evalúa

R6 =Esat

(Esat − Bp1)(g2 − g1)(3.6)

a

b

Figura 3.1.16: a) Diodo de Chua y b) Su pendiente

26

Page 32: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 3.1.17: Circuito de Chua completo

3.1.4. Pruebas de los sistemas

Comparación de los osciladores de Chua y el basado en SNLF

Teniendo el diseño de los dos osciladores en cuestión, la correspondiente simulación y

pruebas en laboratorio, se tomaron en algunos criterios de selección tales como:

a) b)

Figura 3.1.18: Pruebas en laboratorio: a) Diodo de Chua y b) SNLF

Factibilidad para el diseño de un generador de números aleatorios

Fácil manejo de la frecuencia

27

Page 33: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 3.1.19: FFT SNLF

De tal modo al observar dichos parámetros, se opto por trabajar con el oscilador de

funciones saturadas mostrado en la fig.3.10.

28

Page 34: Estudio y Diseño de un Oscilador Caótico para Aplicación

Capítulo 4

Diseño de generador de números

aleatorios

4.1. Generador de números aleatorios

Los números aleatorios tienen aplicaciones en muchas áreas: simulación, criptografia,

evaluación de múltiples integrales etc.

Generadores que producen secuencias aleatorias pueden ser clasificados en dos tipos:

generador de números verdaderamente aleatorios (por sus siglas en ingles TRNGs) y genera-

dor de números pseudo-aleatorios(PRNGs). TRNGs toman ventaja de la fuente de entropia

impredecible la cual verdaderamente produce números aleatorios.

Todos los sistemas criptograficos requieren de valores impredecibles, por lo tanto los

TRNG son un componente fundamental para mecanismos criptograficos.

El propósito de esto se basa en el diseño de un generar bits de manera aleatoria,

aprovechando la Impredecibilidad del oscilador en cuestión . Para lograr dicho objetivo se

opto por usar una configuración de opamps conocida como comparador de voltaje como se

muestra en la fig.3.7 combinado con un sumador el cual tendría como objetivo colocar la

secuencia obtenida de un par de comparadores a valores de lectura digital, es decir de 0 a

5 volts.

29

Page 35: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 4.1.1: Generador de bits aleatorio

Figura 4.1.2: Señal del generador de bits

4.2. Pruebas

4.2.1. Aleatoriedad

Prueba de mono-bits

Para comprobar la aleatoriedad del generador de bits, se necesito ayuda de la plataforma

arduino debido a su fácil comunicación en modo serial, así mismo el apoyo de MATLAB fue

indispensable ya que fue ahí donde se elaboro el scritp de recopilación de datos, para realizar

una prueba de mono-bits (ver apéndice D), la cual consta en recolectar una muestra de

20000 bits y hacer una comparación respecto a datos preestablecidos en normas de pruebas

de aleatoriedad [27].

Una vez realizada la prueba se pudo comprobar que el generador paso la prueba, teniendo

en cuenta que el rango de “unos” debe ser 9725-10275.

30

Page 36: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 4.2.1: Test de mono-bits

31

Page 37: Estudio y Diseño de un Oscilador Caótico para Aplicación

Capítulo 5

Leyes de control, simulación y pruebas

Un gran numero de trabajos en control cinemático de robots caóticos están basados en

un típico movimiento diferencial con dos grados de libertad, compuesto por dos activas, pa-

ralelas e independientes ruedas y una tercera rueda con función exclusiva de equilibrio[12,24-

27].

El chasis del robot es considerado como un cuerpo rígido operando en un plano horizon-

tal, el movimiento del robot móvil propuesto esta descrito por la velocidad lineal v(t) y la

velocidad angular w(t), la velocidad lineal provee un movimiento lineal de punto medio del

ejes de las llantas, mientras la velocidad angular provee un movimiento rotacional del robot

sobre el mismo punto. En la fig.5.1 se muestra la descripción del movimiento del robot en

un plano. El sistema de la ecuación 5.1 describe el control de movimiento del robot.

Figura 5.0.1: Descripción del movimiento en un plano

32

Page 38: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

x(t)

y(t)˙θ(t)

=

cosθ(t) 0

sinθ(t) 0

0 1

[

v(t)

ω(t)

]

(5.1)

donde x(t) y y(t) son las posiciones del robot y θ(t) es la orientación.

Estas ecuaciones constituyen un sistema dinámico nonholomico; El control de este siste-

ma ha sido estudiado extensamente por varios grupos de investigación y diversas soluciones

son posibles por ejemplo[26,28].

En este trabajo la trayectoria del robot es producida por una secuencia de coordenadas

(x,y), dos diferentes leyes de control son usadas por otros investigadores [24-27]

5.1. Leyes de control retroalimentadas

Figura 5.1.1: Configuración del control cinemático

El modelo cinemático del robot descrito por (5.1), donde x(t) y y(t) son las posiciones

del robot y θ(t) es la orientación. Se puede definir el angulo ϕ entre el eje XR y el vector

respecto al centro del robot y la posición deseada como se muestra en la fig.5.2. La otra

configuración de variables, ρy ψ, describen la distancia entre la posición presente y la

deseada y el angulo entre la dirección al objetivo y el eje X0 respectivamente. considerando

un cambio de coordenadas definido por:

33

Page 39: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

ρ =√

∆x2 +∆y2

ϕ = 180 + θ − ψ

la descripción del movimiento en la nuevas coordenadas son:

[

ρ

ϕ

]

=

[

−cosϕ 01ρsinϕ 1

][

v

ω

]

(5.2)

Considerando esta descripción del sistema de coordenadas polares, es necesario remarcar

que la transformación de la coordenada no esta definida en x=y=0. El propósito de la ley

de control define una realimentación para determinar la entrada del sistema, v y ω:

v = k1ρcosϕ;ω = −k1sinϕcosϕ− k2ϕ (5.3)

5.2. Control simple y discontinuo

Un segundo control cinemático esta basado en un esquema de control muy simple y

discontinuo. en este esquema, el robot ejecuta dos fases de acción de control: la primera

consiste en un movimiento de rotación exclusivamente con una velocidad angular respecto

al su centro, con esto la dirección del robot apunta hacia el siguiente punto:

x

y

θ

=

0

0

ω

(5.4)

Completada esta fase, el robot puede ejecutar el movimiento hacia el punto deseado

con una velocidad constante:

x

y

θ

=

cosθ

sinθ

0

[

v]

(5.5)

Evidentemente, si un obstáculo es encontrado en la trayectoria, el robot chocara.

Analizando las dos leyes de control, tomando en cuenta la facilidad de realizar dos

movimientos, el giro y traslación de la segunda ley analizada se procede a la escritura del

algoritmo en MATLAB para la simulación de la ley (ver apéndice b).

34

Page 40: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 5.2.1: Diagrama del sistema físico completo

En la fig. 5.3 se muestra una representación del sistema completo:

La parte principal se constituye por el oscilador caótico, el cual es el encargado de

brindarle datos a la siguiente etapa, es decir, a un generador de bits aleatorio, este interpreta

la pequeña señal del oscilador caótico y la transforma a una señal de datos lógicos (1 y 0),

mismos que son interpretados por el microcontrolador para enviar una serie de ordenes a

los motores encargados de brindarle movimiento al sistema.

5.3. Programación de la ley de control

Una vez hecho el algoritmo en MATLAB, se procede a la escritura de la ley de control

en un microcontrolador (16f887) (ver apéndice C), utilizando el modulo de lectura analó-

gica para capturar los datos arrojados por el generador de bits aleatorios, guardarlos para

procesarlos y ser estos datos las coordenadas de trabajo para el movimiento del robot.

5.4. Pruebas

5.4.1. Programa en el microcontrolador

Una vez programada la ley de control, junto con el lector de bits se realizaron pruebas

en el laboratorio para verificar que dicho funcionamiento fuera eficaz.

35

Page 41: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 5.4.1: Prueba del control de motores

Las pruebas realizadas arrojaron resultados positivos, es decir que el algoritmo elaborado

y el funcionamiento físico del hardware funciono de manera adecuada para proseguir con el

paso próximo.

Una vez realizadas las pruebas necesarias de la ley de control, el siguiente paso es una

prueba especifica, es decir construir un pequeño prototipo para realizar las pruebas a nivel

2D.

Para el diseño del robot móvil se opto por usar un material liviano pero resistente,

así mismo se usaron dos motores a paso, y una rueda loca para el equilibrio ya antes

mencionado.

En esta etapa del proyecto se necesito ingenio para visualizar la dimensión del móvil y así

no exceder la capacidad de esfuerzo de los motores y que el móvil se moviera tranquilamente.

Tabla 5.1: Comparación de pruebas realizadas.

Prueba/parametros #1 #2 #3 #4 #5 #6

% erroneo Rotación 80 65 30 5 3 3

% erroneo Traslación 90 75 20 3 3 3

% erroneo Permanencia (1.5m2) 85 80 60 10 6 2

% erroneo Permanencia (2m2) 80 55 25 8 3 2

% erroneo Permanencia (3m2) 70 60 35 10 3 2

El proceso de pruebas físicas del sistema permiten presentar resultados positivos del

nivel de control que se puede tener de dicho sistema para distintas áreas a explorar.

36

Page 42: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

Figura 5.4.2: Móvil funcionando

37

Page 43: Estudio y Diseño de un Oscilador Caótico para Aplicación

Capítulo 6

Conclusiones y trabajos futuros

6.1. Conclusiones

El uso del caos tiene muchas aplicaciones, tales como comunicaciones seguras, encrip-

tación, aparatos de aplicación medica, construcción de robots móviles planeadores de tra-

yectorias; aun falta mucho por desarrollar y experimentar con respecto a robots planeadores

implementando osciladores caóticos.

El uso de osciladores para aplicación en robots móviles es una gran alternativa para

ahorrar hardware computacional, es decir la el corazón del robot planeador sera un oscila-

dor caótico, acompañado de dispositivos como sensores que apoyaran el mejor desempeño

dependiendo de la aplicación a la cual este destinada el móvil.

El uso de osciladores mas complejos podría mejorar la eficiencia de cobertura de área

de un robot móvil en un plano, es decir si el uso de un oscilador de dinámica simple puede

cubrir un área considerable, que no haría uno de dinámica mas compleja.

A continuación se presentan las conclusiones relacionadas con el desarrollo de este

trabajo, de acuerdo al orden de los puntos que se tratan en cada capítulo.

Se presentó el modelado matemático del sistema caótico mediante el uso de variables

de estado y aproximaciones PWL. Se propuso una nueva estructura de la SNLF,

con la cual se reducen los niveles de voltaje para su implementación con dispositivos

comerciales.

Para la síntesis, se partió del sistema en variables de estado y su representación en

diagrama de bloques, la cual se implementó con tres integradores y un sumador,

mismos que se realizaron utilizando opamps comerciales.

Se demostró que la SNLF puede sintetizarse con opamps, debido a que su comporta-

miento en modo voltaje puede ser modelado mediante el uso de funciones saturadas,

38

Page 44: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

ajustándose al modelo de ganancia finita del opamp, lo cual permitió controlar los

puntos de quiebre y pendientes de la función no lineal.

Se presento el diseño de un generador de Bits aleatorios para constituir coordenadas

de desplazamiento del robot móvil, así mismo se demostró que el generador cumple

algunas de las normas establecidas para identificar la aleatoriedad de un generador

de ese tipo.

Para el control, se partió del análisis de un sistema cinemático, así como el análisis

de leyes de control ya antes utilizadas por algunos investigadores aplicadas a robots

móviles con implementación de osciladores caóticos.

Los motores usados en la estructura del móvil fueron motores a pasos de 7.5 grados por paso

y por tal motivo la exactitud del prototipo no es 100 % eficiente, así mismo la tracción de

la ruedas fue otro factor en contra del optimo funcionamiento del prototipo móvil, factores

que son puntos específicos de mejora para trabajos futuros.

6.2. Trabajos futuros

Se proponen las siguientes actividades por realizar en trabajos posteriores:

Realizar un estudio para cuantificar la calidad de la aleatoriedad y validar la utilidad

de exploración de un robot móvil en un campo.

Buscar otras aplicaciones al sistema diseñado.

Continuar experimentando con diferentes sistemas caóticos de dinámicas más com-

plejas, como sistema caótico de n-enrollamientos en 2D.

Mejora del diseño en este proyecto:

1. Motores a pasos como una mayor cantidad de pasos

2. Ruedas de mayor tracción

3. Armazón resistente a diferentes medios

4. Diseño de un circuito integrado que integre el oscilador caótico

39

Page 45: Estudio y Diseño de un Oscilador Caótico para Aplicación

Bibliografía

[1] Claude E. Shannon, “Communication Theory of Secrecy Systems”. Bell System Tech-

nical Journal, Vol 28, Oct 1949, pgs 656-715

[2] P. Sooraska, K. Klomkarm, No-CPU Chaotic Robots: From Classroom to Commerce,

IEEE Circuits and Systems Magazine 10(2010)46-53.

[3] J. Lü, G. Chen, “Generating Multiscroll Chaotic Attractors: Theories, Methods and

Applications”, International Journal of Bifurcations and Chaos, vol. 16, no. 4, 2006,

pp. 775-858.

[4] Yu, S. M., Ma, Z. G., Qiu, S. S., Peng, S. G. & Lin, Q. H. “Generation and synchro-

nization of nscroll chaotic and hyperchaotic attractors in fourthorder systems”, Chin.

Phys. 13, 2004, pp. 317328.

[5] J. Lü, S. Yu, H. Leung and G. Chen. “Experimental verification of multidirectional

multiscroll chaotic attractors”, IEEE Trans. Circuits Syst.-I 53, 2006, pp. 149-165.

[6] Chen W. K., Vandewalle J. and Vandenberghe L., “Piecewise-linear circuits and

piecewise-linear analysis: Circuits and Filters Handbook”, CRC Press/IEEE Press,

(1995).

[7] C. Liu, T. Liu, L. Liu, Y. Su, “A New Nonlinear Chaotic System”, International Journal

of Nonlinear Sciences and Numerical Simulation, 7(3): 345-352 (2006).

[8] H. Sira-Ramírez and C. Cruz-Hernández, “Synchronization of Chaotic Systems: A

Generalized Hamiltonian Systems Approach”, International Journal of Bifurcations and

Chaos, vol 11, no. 5, 2001, pp. 1381-1395.

[9] Ashraf Anwar Fahmy ment of Computer Engine,Chaotic Mobile Robot Workspace

Coverage Enhancement, Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 6, N° 1 2012

[10] A. Sekiguchi and Y. Nakamura, “The Chaotic mobile robot”, in: Proc. IEEE/RSJ. Int.

Conf. Intelligent Robots and Systems, vol. 1, 1999, pp. 172-178.

40

Page 46: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

[11] CHRISTOS K. VOLOS AND N.G. BARDIS, Implementation of Mobile Robot by Using

Double-Scroll Chaotic Attractors, Recent Researches in Applications of Electrical and

Computer Engineering, ISBN: 978-1-61804-074-9

[12] A.B. Eduardo, S.J. Tomás, V.V. Martín, Control no Lineal Discontinuo de un Robot

Móvil, Computación y Sistemas, número especial, Marzo 2002, pp. 042-049.

[13] Mainzer, K. Thinking in Complexity: The Complex Dynamics of Matter, Mind, and

Mankind. Springer-Verlag, 1994.

[14] V.H. Carbajal-Gómez, Diseño de Osciladores Caóticos para Comunicaciones Seguras,

Tesis de Ingenieria en electronica y comunicaciones, BUAP, México 2009.

[15] Juan A. Rodríguez Liñán & Jesús de L. Morales. “Control de Sistemas Caóticos”.

Ciencia UANL Enero-Marzo 2008; vol. (IX).

[16] Robot autónomo controlado por CPU

[17] J. Lü, G. Chen, X. Yu and H. Leung, “Design and Analysis of Multiscroll Chaotic At-

tractors From Saturated Function Series”, IEEE Transactions on Circuits and Systems,

vol 51, no. 12, 2004, p. 2476-2490.

[18] J.M. Muñoz-Pacheco and E. Tlelo-Cuautle, “Synthesis of n-Scroll Attractors using

Saturated Functions from High-Level Simulation”, Journal of Physics- Conference Se-

ries: 2nd Int. Symposium on Nonlinear Dynamics, 96(1) (2008). DOI: 10.1088/1742-

6596/96/1/012050.

[19] E. Tlelo-Cuautle, M.A. Duarte-Villaseñor, Designing Chua’s circuit from the beha-

vioral to the transistor level of abstraction,Science Direct, Applied Mathematics and

Computation 184 (2007) 715–720

[20] Adel A. Sedra, Kenneth C. Smith, “Circuitos Microelectrónicos”. Oxford University

Press.1998.

[21] Análisis y sintesis de circuitos,Departamento de Teoría de la Señal y Comunicacio-

nes. Universidad de Alcalá,Michael Peter kennedy, Robust opamp realization of chuas

circuit, National Science Foundation

[22] Adoracion Hermoso Fernandez,Circuitos con amplificadores operacionales

[23] L.S. Martins-Filho, E.E.N. Macau, R. Rocha, R.F. Machado, L.A. Hirano, Kinematic

control of mobile robots to produce chaotic trajectories, in: Proc. of the 18th Int.

Congress of Mechanical Engineering, Ouro Preto, November 2005.

41

Page 47: Estudio y Diseño de un Oscilador Caótico para Aplicación

Instituto Tecnológico de Tuxtla Gutiérrez INAOE

[24] Martins-Filho, L.S. and Macau, E.E.N., Patrol mobile robots and chaotic trajectories.

Mathematical Problems in Engineering. v2007. 1

[25] S.-O. Lee, Y.-J. Cho, M. Hwang-Bo, B.-J. You, S.-R. Oh, A stable target-tracking

control for unicycle mobile robots, in: Proc. of the IEEE/RSJ International Conference

on Intelligent Robots and Systems, Takamatsu, Japan, vol. 3, October-November

2000, pp. 1822-1827.

[26] Ch.K. Volos, I.M. Kypriandis, I.N. Stouboulos, A Chaotic Path Planning For Autono-

mous Mobile Robots, Robotics and Autonomous Systems, Vol. 60, Enero 2012, pp.

651-656.

[27] C. Canudas de Wit and O. J. Sordalen, “Exponential Stabilization of mobile robots

with nonholomic constraints”, IEEE Transactions on Automatic Control, vol. 37, no.

11, pp. 1791-1797, 1992.

[28] J. Lü, G. Chen, “Generating Multiscroll Chaotic Attractors: Theories, Methods and

Applications”, International Journal of Bifurcations and Chaos, vol. 16, no. 4, 2006,

pp. 775-858.

[29] Katsuhiko Ogata, “Ingieneria de Control Moderna”. Prentice Hall Hispanoamericana,

S.A., 3a edición, México 2000.

[30] Data Sheet TL082,

http://www.datasheetcatalog.net/es/datasheets_pdf/T/L/0/8/TL082.shtml

[31] Data Sheet LF356N,

http://www.datasheetcatalog.com/datasheets_pdf/L/F/3/5/LF356N.shtml

[32] Data Sheet PIC16F887,

www.engr.usask.ca/classes/EE/391/notes/PIC16F886.pdf

[33] Moriello, S.A. “Sistemas complejos, caos y vida artificial”.

http://redcientifica.com/doc/doc200303050001.html

[34] Y. Nakamura and A. Sekiguchi, The Chaotic Mobile Robot, IEEE Trans. Robot. Au-

tom., Vol. 17, 2001, 898–904.

[35] Andrés Cánovas López , MANUAL DE USUARIO DEL COMPILADOR PCW DE CCS

[36] Eduardo García Breijo , COMPILADOR CCS y SIMULADOR PROTEUS PARA MI-

CROCONTROLADORES PIC, Primera Edición, Alfa omega Grupo Editor. S.A . de

c.v., México, ISBN:978-97015-1397-2, pp-276

[37] Michael Margolis and Nicholas Weldin, Arduino Cookbook, primera edición, marzo

2011, O’Reilly Media, Inc., ISBN: 978-0-596-80247-9

42

Page 48: Estudio y Diseño de un Oscilador Caótico para Aplicación

Apéndice A

Código MATLAB para el modelado de

SNLF de dos enrollamientos

código en MATLAB para el Modelado del circuito de chua para dos enrollamientos

clear

clc

disp(’2 enrollamientos’)

h=1e-7;

g1 = -1/1358;

g2 = -1/2464;

BP1 = 0.114;

C1 = 450e-12;

C2 = 1.5e-9;

L = 1e-3;

R = 1655;

n=0;

Xn=[0.01;0;0];

Xn1=Xn;

Vc1=Xn1(1);

Vc2=Xn1(2);

iL=Xn1(3);

A=[-1/(R*C1) 1/(R*C1) 0;1/(R*C2) -1/(R*C2) 1/C2;0 -1/L 0];

B=[-1/C1;0;0];

43

Page 49: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

disp(’ GENERANDO GRAFICA ’)

while n<20000

if Xn(1)<-BP1

fb=g2*Xn(1)+((g2 - g1)*BP1);

elseif Xn(1)<BP1

fb=g1*Xn(1);

else

fb=g2*Xn(1)+((g1 - g2)*BP1);

end

%******************

Xn=Xn+h*((A*Xn)+(B*fb));

Xn1=[Xn1 Xn]; n=n+1;

end

Vc1=Xn1(1,:);

Vc2=Xn1(2,:);

iL=Xn1(3,:);

plot3 (Vc1,iL,Vc2)

grid on;

Código MATLAB para el modelado de SNLF de dos enrolla-

mientos

clc

clear

disp(’2 enrollamientos’)

s=2;

k=1;

alpha=6.4e-3;

a=.7;

h1=.05;

t0=0;

tf=2000;

44

Page 50: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

disp(’GENERANDO GRAFICA’)

switch (s)

%****************************************************

case 2

%CONSTANTES

a=a; b=a; c=a; d=a;

%CONDICIONES INICIALES

xn0=.1; yn0=.1; zn0=.1;

%PROGRAMA

t=t0;

tab1=[t,xn0,yn0,zn0];

int=[t0:h1:tf];

for i=1:length(int)-1

%APROXIMACIÓN POR EULER

xn=xn0+h1*(yn0);

yn=yn0+h1*(zn0);

%SNLF

if xn0 > alpha

zn=zn0+h1*(-a*xn0-b*yn0-c*zn0+d*k);

elseif xn0 >= -alpha & xn0 <= alpha

zn=zn0+h1*(-a*xn0-b*yn0-c*zn0+d*(k*xn0));

elseif xn0 < -alpha

zn=zn0+h1*(-a*xn0-b*yn0-c*zn0-d*k);

end xn0=xn; yn0=yn; zn0=zn;

%ARREGLO

t=t+h1;

p1=[t,xn,yn,zn];

tab1=[tab1;p1];

end

%GRAFICA

subplot(2,2,1),plot(tab1(:,2),tab1(:,3),’blue’)

45

Page 51: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

xlabel(’xn’)

ylabel(’yn’)

grid

subplot(2,2,2),plot(tab1(:,2),’blue’)

xlabel(’t’)

ylabel(’x’)

grid

subplot(2,2,3),plot(tab1(:,3),’blue’)

xlabel(’t’)

ylabel(’y’)

grid

subplot(2,2,4),plot(tab1(:,4),’blue’)

xlabel(’t’)

ylabel(’z’)

grid

%plot3(tab1(:,2),tab1(:,3),tab1(:,4),’blue’)

otherwise

end

46

Page 52: Estudio y Diseño de un Oscilador Caótico para Aplicación

Apéndice B

Ley de control MATLAB

% Calculo de frecuencia angular o angulo de giro y distanciaclear

clc

x0=0;

y0=0;

teta0=0;

x=[5 3 6 0 8 0 8];

y=[5 2 8 0 8 0 8];

n=1;

while n<8

xx=abs(x(n)-x0);

yy=abs(y(n)-y0);

r=sqrt(xx^2 + yy^2)

teta=((atan2((y(n)-y0),(x(n)-x0))))*(180/3.141593)

w=teta-teta0 x0=x(n);

y0=y(n); teta0=teta;

n=n+1;

end

47

Page 53: Estudio y Diseño de un Oscilador Caótico para Aplicación

Apéndice C

Ley de control PIC

#include <16f887.h>

#fuses NOWDT,HS,NOMCLR,NOLVP

#device adc=10

#use delay (clock = 20MHZ)

#include <math.h>

#include "flex_lcd.c"

#use standard_io(A)

//#use standard_io(B)

#use standard_io(C)

int16 valor; float volts; int i,j,xa,a,b,c,d,x,y,hh;

SIGNED int ii;//Variable con signo que nos sirve para recorrer el array pasos

int1 giro; int captura[8]; float teta;

float hipotenusa;////distancia a recorrer

float w;////angulo de rotacion

//////////////////////////////////////////////

void rotacion(void)/// rotación en propio eje

set_tris_b(0b00000000);// 1= Entradas ; 0 = Salidas

const int8

pasos[8]=0b10000001,0b1100011,0b01000010,0b01100110,00100100,00111100,10011001;

if(giro==0)//Si x vale 0 el motor gira en un sentido, si vale 1 girara en el contrario

for(ii=0;ii<8;ii++) // Recorremos el array pasos haciendo girar el motor

output_b(pasos[ii]);

delay_ms(100);

48

Page 54: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

if(giro==1)

for(ii=8;ii>=0;ii–)// Recorremos el array pasos haciendo girar el motor en sentido

contrario

output_b(pasos[ii]);

delay_ms(100);

void movimiento(void)//// recorrido de distancia

set_tris_b(0b00000000);// 1= Entradas ; 0 = Salidas

const int8

pasos[8]=0b10001000,0b11001100,0b01000100,0b01100110,00100010,00110011,10011001;

for(ii=0;ii<8;ii++) // Recorremos el array pasos haciendo girar el motor

output_b(pasos[ii]);

delay_ms(100);

////////////////////////////////////////////////

void main()

lcd_init();

int x0=0, y0=0; float teta0=0;

enable_interrupts(INT_CCP2);

enable_interrupts(GLOBAL);

setup_adc(ADC_CLOCK_INTERNAL);

setup_adc_ports(sAN0);

setup_adc_ports(VSS_VDD);

set_adc_channel(0);

setup_ccp2(CCP_COMPARE_RESET_TIMER);

ccp_2=1200; // cuenta hasta 220us setup_timer_1(T1_INTERNAL |T1_DIV_BY_1);

set_timer1(0);

output_low(PIN_A2); //para mostrar que la lectura adc es cada 200us

for(;;)

49

Page 55: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

for(i=0;i<8;i++)

volts=(valor*5.0)/1023;

if (volts<4.5)

xa=0;

output_low(PIN_A3);

else

xa=1;

output_high(PIN_A3);

captura[i]=xa;

///////////////////////////////////////////////

if (captura[0]==1)

a=8;

else a=0;

if (captura[1]==1)

b=4;

else b=0;

if (captura[2]==1)

c=2;

else c=0;

if (captura[3]==1)

d=1;

else d=0;

x=a+b+c+d;

if (captura[4]==1)

a=8;

else a=0;

if (captura[5]==1)

b=4;

else b=0;

if (captura[6]==1)

c=2;

else c=0;

if (captura[7]==1)

d=1;

50

Page 56: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

else d=0;

y=a+b+c+d;

/////////////////////////////////////////////////// ////////////////////

/* for(j=0;j<4;j++)

printf(lcd_putc," %d",captura[j]);

delay_ms(20);

lcd_gotoxy(1,2);

printf(lcd_putc,"y= ");

for(j=4;j<8;j++)

printf(lcd_putc," %d",captura[j]);

delay_ms(20); */

//////////////////////// ////////////////////////// cálculos

float x1=x;///se guarda el valor actual en la variable x1 y y1

float y1=y;

float xx=(x1-x0);

float yy=(y1-y0);

float hipo=((xx*xx)+(yy*yy));/// distancia

hipotenusa=(SQRT(hipo));//4;//// calcula la distancia a recorrer

teta=((ATAN2((y1-y0),(x1-x0)))*(180/3.141593));

w=teta-teta0;

printf(lcd_putc,"\f");

lcd_gotoxy(1,1);

//printf(lcd_putc,"xx= %d",xx);

//printf(lcd_putc,"teta= %f",teta);

printf(lcd_putc,"hip= %f",hipotenusa);

printf(lcd_putc,"w= %g",w); lcd_gotoxy(1,2);

printf(lcd_putc,"x= %d",x);

printf(lcd_putc,"y= %d",y);

///printf(lcd_putc,",w= %f",w);

//lcd_gotoxy(1,2);

//printf(lcd_putc,"yy= %d",yy);

//printf(lcd_putc,"w= %g",w);

//lcd_gotoxy(1,8);

//printf(lcd_putc,"x0= %d",x0);

/// imprime valor para verificar angulo

x0=x1;

51

Page 57: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

y0=y1;

teta0=teta;

if(w<=0)

giro=1;

else

giro=0;

if(w==0 && x==0 && y==0)

set_tris_b(0b00000000);

/////// ((250cm / 25cm)*(12))/sqrt(225) (12 es el numero de veces que se //repite

el for de movimiento para alcanzar 25 cm // para 250 X 250 cm el factor= 8 //para 200

X 200 cm el factor= 6.4 //

for(j=0;j<=abs(w/30);j++)////este lo debe dar w

rotacion();

for(hh=0;hh<=(hipotenusa*8);hh++)//// hipotenusa y depende del radio de la rueda

movimiento();

set_tris_b(0b00000000);

///////////////////////////////

delay_ms(200);

#INT_CCP2

void lectura_adc() // interrupción cada 200us

valor=read_adc();

output_high(PIN_A2);

// para ver que se esta ejecutando cada 200us

delay_us(10);

output_low(PIN_A2);

52

Page 58: Estudio y Diseño de un Oscilador Caótico para Aplicación

Apéndice D

Test de mono-bits MATLAB-arduino

% % % % Código MATLABclear

clc

S=serial(’/dev/ttyUSB4’,’BaudRate’,9600,’StopBits’,1,’Terminator’,’CR/LF’,’DataBits’,8,’Parity’,’none’,’Timeout’,3);

fopen (S);

zeros=0;

unos=0;

n=1;

y=0;

a=0;

x=20000;

while n<=20000

x(n)=fscanf(S,’ %d’);

if x(n)==1

y=y+1;

else

a=a+1;

end

n=n+1;

end

x

zeros=a

unos=y

fclose(S);

53

Page 59: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

delete(S);

clear S;

% INSTRFIND

///////// Codigo Arduino// set pin numbers:

const int buttonPin = 2;

// the number of the pushbutton pin

const int ledPin = 13;

// the number of the LED pin

// variables will change:

int buttonState = 0;

// variable for reading the pushbutton status

void setup()

// initialize the LED pin as an output:

pinMode(ledPin, OUTPUT);

// initialize the pushbutton pin as an input:

pinMode(buttonPin, INPUT);

Serial.begin(9600);

void loop()

// read the state of the pushbutton

value: buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed. // if it is, the buttonState is HIGH:

if (buttonState == HIGH)

// turn LED on:

//digitalWrite(ledPin, HIGH);

else

// turn LED off:

//digitalWrite(ledPin, LOW);

Serial.println(buttonState);

54

Page 60: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

///////// Codigo PIC16f887#include <16f887.h>

#fuses NOWDT,HS,NOMCLR,NOLVP

#device adc=10

#use delay (clock = 20MHZ)

#include <math.h>

#use standard_io(A)

//#use standard_io(B)

#use standard_io(C)

int16 valor; float volts; int xa;

//////////////////////////////////////////////

////////////////////////////////////////////////

void main()

enable_interrupts(INT_CCP2);

enable_interrupts(GLOBAL);

setup_adc(ADC_CLOCK_INTERNAL);

setup_adc_ports(sAN0);

setup_adc_ports(VSS_VDD);

set_adc_channel(0);

setup_ccp2(CCP_COMPARE_RESET_TIMER);

ccp_2=1200; // cuenta hasta 220us setup_timer_1(T1_INTERNAL |T1_DIV_BY_1);

set_timer1(0);

output_low(PIN_A2);

//para mostrar que la lectura adc es cada 200us

for(;;)

volts=(valor*5.0)/1023;

if (volts<4.5)

xa=0; output_low(PIN_A3);

else

xa=1;

output_high(PIN_A3);

/////////////////////////////////////////////////// ///////////////////////////////

#INT_CCP2

void lectura_adc() // interrupción cada 200us

55

Page 61: Estudio y Diseño de un Oscilador Caótico para Aplicación

APÉNDICES

valor=read_adc();

output_high(PIN_A2);

// para ver que se esta ejecutando cada 200us delay_us(10);

output_low(PIN_A2);

56