“desarrollo de una plataforma stewart basada en un...

120
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD TICOMAN “DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES, PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE LIBERTAD” T E S I S Que para obtener el Título de: INGENIERO EN AERONÁUTICA P R E S E N T A : HÉCTOR ADRIÁN CASTILLO HERNÁNDEZ ASESORES M.EN C. SERGIO RIVERA VEGA M.EN C. JORGE SANDOVAL LEZAMA MÉXICO, D.F. NOVIEMBRE 2013

Upload: others

Post on 22-Apr-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

UNIDAD TICOMAN

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA

EN MICROCONTROLADORES, PARA SIMULAR EL

COMPORTAMIENTO DE UNA AERONAVE EN TRES

GRADOS DE LIBERTAD”

T E S I S

Que para obtener el Título de:

INGENIERO EN AERONÁUTICA

P R E S E N T A :

HÉCTOR ADRIÁN CASTILLO HERNÁNDEZ

ASESORES

M.EN C. SERGIO RIVERA VEGA

M.EN C. JORGE SANDOVAL LEZAMA

MÉXICO, D.F. NOVIEMBRE 2013

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

UNIDAD TICOMÁN

QUE PARA OBTENER EL TÍTULO DE: POR LA OPCIÓN DE TITULACIÓN:

DEBERÁ PRESENTAR:

INGENIERO EN AERONÁUTICA TESIS INDIVIDUAL ELC. PASANTE: CASTILLO HERNÁNDEZ HÉCTOR ADRIÁN

"DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE LIBERTAD"

CAPÍTULO I CAPÍTULO 11

CAPÍTULO IIl CAPITULO IV CAPÍTULO V

Í DICE 1 'TRODUCCIÓN PLATAFORMA STEWART LAU CHPAD MSP430 (SISTEMA DE DESARROLLO BASADO E MICROCONTROLADOR DE TEXAS INSTRUMENTS) PROGRAMACIÓN DEL MICROCONTROLADOR

SERVOACTUADORES DESARROLLO DE PROYECTO Y PRUEBAS CO CLUSIONES

A NEXOS GLOSARIO

México, DF., a 15 de octubre de 2013.

ASESORES

VALLEZAMA

l. P. N. ESCUEL.,4 SvPERIOil DE

INGEN<ERIA MECANIC~ v óL~CTRICA UN<DAD T:COIMN

DIRECCIÓN

..

AGRADECIMIENTO.

A mis padres y hermanos por haberme ayudado en conseguir esta meta, y por darme el apoyo cuando más lo necesitaba.

A mi asesor el M. en C. Jorge Sandoval por haberme mostrado uno de los caminos para lograr este gran objetivo.

Y a todas aquellas personas que estuvieron involucrados directa o indirectamente.

GRACIAS.

INDICE

INTRODUCCIÓN

PLANTEAMIENTO DEL PROBLEMA

OBJETIVO

ALCANCE

JUSTIFICACION

CAPÍTULO 1. PLATAFORMA STEWART

1.1 ANTECEDENTES LOS INICIOS DE LA PLATAFORMA STEWART 1

1.2. TIPOS DE PLATAFORMA STEWART. 2

1.3 APLICACIONES 5

1.4 PRINCIPALES CARCTERISTICAS (VENTAJAS Y DESVENTAJAS) 8

CAPÍTULO 2. LAUNCHPAD MSP-EXP430G2

2.1 SISTEMAS DE DESARROLLO BASADO EN MICROCONTROLADORES 10

2.2 MICROCONTROLADOR 11

2.3 MICROCONTROLADOR TEXAS INSTRUMENTS (MSP430) 12

2.4 LAUNCH PAD MSP-EXP430G2. 13

2.4.1 MICROCONTROLADOR FAMILIA MSP430x2xx. 14

2.5 ARQUITECTURA DELA FAMILIA MSP430 DE TEXAS INSTRUMENTS 17

2.5.1 UNIDAD CENTRAL DE PROCESAMIENTO 17

2.5.2 REGISTROS DEL MICROCONTROLADOR 18

2.6 LOS PERIFÉRICOS. 21

2.7 SISTEMA DE RELOJ. 22

2.8 CIRCUITO BROWNOUT 23

2.9 ENTRADAS Y SALIDAS DIGITALES 23

2.10 TEMPORIZADOR DEL PERRO GUARDIÁN “WATCHDOG TIMER”(WDT+). 25

2.11 TIMERS 26

2.11.1 MODOS DE TEMPORIZADOR TIMER_A 26

2.11.2 REGISTROS TIMER_A. 27

2.11.3 MODO CAPTURA-COMPARA 29

2.12 INTERRUPCIONES 29

2.13 MODOS DE OPERACIÓN DE CONSUMO DEL MICROCONTROLADOR 31

CAPITULO 3. PROGRAMACION DEL MICROCONTROLADOR

3.1 SOFTWARE Y LENGUAJES DE PROGRAMACIÓN. 32

3.1.1CARACTERÍSTICAS: 34

3.2 LENGUAJE EN C 37

3.3 EL LENGUAJE ENSAMBLADOR 38

3.4 ENTORNOS DE PROGRAMACION CON LA FAMILIA MSP430 DE TEXAS

INSTRUMENTS 39

3.5 EL CODE COMPOSER STUDIO (CCS) PARA MSP430 40

3.6 COMO CREAR UN PROYECTO CON CODE COMPOSER STUDIO 43

CAPITULO 4. SERVOACTUADORES

4.1 CONCEPTO Y DEFINICION DE SERVOACTUADOR 47

4.2 CARACTERÍSTICAS Y ARQUITECTURA DE SERVOACTUADOR 47

4.3 SERVOACTUADOR DE MODELISMO 48

4.4 FUNCION DE TRANSFERENCIA DE SERVOS DE MODELISMO 52

4.5 SISTEMAS DE LAZO ABIERTO 54

4.6 CONTROL BASICO DE LAZO CERRADO 55

4.7 TIPOS DE SEÑALES 57

4.8 MODULACIÓN POR PULSOS 62

CAPITULO 5. DESARROLLO DE PROYECTO Y PRUEBAS

5.1 METODOS PARA ANALISIS Y DISEÑO DE CONTROL 71

5.2 CONTROL DE POSICIÓN DE UN AEROPLANO 73

5.3 LA SIMPLIFICACIÓN DE LOS SISTEMAS LINEALES 81

CONCLUSIONES 88

ANEXOS 92

BIBLIOGRAFÍA 105

INTRODUCCIÓN

Durante años el hombre a buscado la forma de facilitar y hacer mas sencillo el trabajo, por

medio de herramientas que le permitan las mejoras en procesos, proteccióm y superación de

los resultados.

Desde la revolución industrial los avances tecnológicos se han ido desarrollando con tal rapidez

e innovación que hoy en dia esta existe en todas las profesiones del planeta.

En la actualidad no es suficiente haber cursado una especialidad sin haber tenido la experiencia

y adquirido el conocimiento, no solo de los conceptos teóricos, sino también de los mecanismos

didácticos.

La creación de material didáctico facilita el aprendizaje y adquisición de conocimientos por parte

del alumno, y el perfeccionamiento de técnicas y estrategias del profesorado, dando como

resultado la creación de profesionistas mejor preparados.

La evolución de la presente investigación tiene como objetivo desarrollar las habilidades del

alumno por medio del material didáctico que sea capaz de cumplir con esta finalidad.

Una plataforma Stewart recreará el comportamiento de una aeronave en tres grados de libertad,

como también las perturbaciones a la que es sometida la aeronave en vuelo.

Por falta de equipamiento en el laboratorio Eléctrica-Electrónica, y a que la adquisición de los

equipos para realizar prácticas es de elevado costo, se ha optado por desarrollar proyectos de

bajo costo que ayuden a la realización de prácticas.

Haciendo una comparación de las características entre el instrumental de alto costo y el creado

en el instituto, se concluye que en beneficio de los alumnos se obtendrán resultados similares.

PLANTEAMIENTO DEL PROBLEMA

En base a la necesidad de mejorar el diseño y desempeño de las aeronaves, se ha buscado por

medio de la simulación, someter a las aeronaves a situaciones en las que ellas se encuentran

durante vuelo, y así poder conocer el comportamiento de los vehículos, por lo que busca

construir una plataforma real de 3 grados de libertad, lo anterior con el fin de representar los

entornos de vuelo de la aeronave, analizando por medio de hardware y software el movimiento

de la plataforma. Dicha plataforma deberá tener un costo mínimo.

OBJETIVO

Se desarrollará una Plataforma Stewart controlada por una interface electrónica basada en un

microcontrolador de ultra-bajo consumo de energía, con el fin de experimentar el

comportamiento cualitativo de un aeromodelo.

ALCANCE

Con el desarrollo de una plataforma empleada como simulador de vuelo en 3 grados de libertad,

los alumnos de la ESIME podrán realizar análisis y pruebas las cuales les ayuden a entender y

conocer el comportamiento de las aeronaves de forma cualitativa, así como también sirva de

base para la materia de octavo semestre Sistemas de Control en Aeronaves.

JUSTIFICACION

Debido a que los cálculos para diseñar y construir una aeronave se realizan fuera de las

condiciones de vuelo a las que son sometidas, se han presentado situaciones en las cuales

estas no están acondicionadas para responder adecuadamente. Así mismo en la ESIME Unidad

Ticomán se cuenta con 20 tarjetas LaunchPad de Texas Instruments de reciente adquisición

(Noviembre 2011), que serán utilizadas para el desarrollo de esta tesis. Así se pretende que la

plataforma sirva de base para realización de prácticas en los cursos de Sistemas Electrónicos

Digitales y Sistemas de Control en Aeronaves, por el cual este trabajo de tesis posibilita

estudiar, desarrollar e implementar posibles aplicaciones en el desarrollo de prácticas de

laboratorio en las mencionadas materias.

DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN UN

MICROCONTROLADOR DE ULTRA-BAJO CONSUMO DE ENERGÍA

CAPÍTULO

1 PLATAFORMA STEWART

CAPÍTULO

1 PLATAFORMA STEWART

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

1

CAPITULO 1

1.1 ANTECEDENTES LOS INICIOS DE LA PLATAFORMA STEWART

El mecanismo es una estructura cinemática compuesta por 2 plataformas y seis actuadores, en

la cual la plataforma de base es fija, mientras que la plataforma superior y las 6 actuadores son

móviles. Los seis actuadores unen ambas plataformas que a su vez se ensamblan por medio de

juntas esféricas y/o universales. Hay tres puntos en la plataforma superior, en cada punto salen

2 actuadores. Estos actuadores tienen un mecanismo que les permite modificar su longitud

individualmente, esto permite posicionar y orientarla plataforma superior. Dicha plataforma

cuenta con seis grados de libertad en relación con la base, de manera que se puede mover en

tres direcciones lineales y tres direcciones angulares individual o en combinación.

Figura 1.0: Esquema de una Plataforma Stewart-Gough.

HISTORIA DE LA PLATAFORMA STEWART

En su artículo de 1965, Stewart describe un mecanismo, el cual tiene 6 grados de libertad

(DOF) por su significado en ingles, controlada por 6 motores teniendo cada uno un tope en

tierra. El propuso que el mecanismo seria utilizado como simulador de vuelo para la formación

de pilotos de helicópteros.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

2

Aunque los dispositivos en paralelo o manipuladores de enlace paralelo se denominan a

menudo Plataformas Stewart. Stewart no fue el inventor original de este tipo de mecanismo.

El mecanismo propuesto por Stewart es solo una configuración diferente del sistema de 6 jacks

desarrollado por Gough en 1947. Gough fue uno de los evaluadores de el articulo de Stewart y

en su revisión el afirma que el diseño una maquina de prueba de llanta similar en 1949 la cual

ya se había construido y entrado en operación en 1954 y en 1955 respectivamente. El trabajo

de Stewart fue publicado junto con las comunicaciones de los evaluadores, asi como la

respuesta del autor. Stewart reconoce el hecho de que el no era consciente de la máquina de

prueba de llantas de Gough y también afirma que, aunque su mecanismo de simulación de

vuelo es similar, fue diseñado usando un enfoque diferente.

Irónicamente, Gough también no es reconocido como el inventor original de este tipo de

mecanismo. Conforme a Merlet los manipuladores paralelos han sido conocidos por un largo

tiempo y la invención actual es atribuida al matemático Cauchy, quien escribió un artículo sobre

el movimiento posible y rigidez de un “octaedro articulado”.

No obstante el redescubrimiento de el manipulador paralelo por Stewart en 1965, provocó una

llama que hoy en día aun arde. Merlet reporta que el interés principal en este tipo de robot

comenzó alrededor de 1987 y desde esa fecha el número de trabajos sobre este tema se ha

incrementado drásticamente debido a sus ventajas inherentes de capacidad de carga y rigidez

espacial. Las plataformas Stewart son convenientes para una amplia gama de aplicaciones. Se

cree que la investigación y desarrollo de dispositivos paralelos es actualmente el más popular

tema en el área de robots manipuladores.

1.2. TIPOS DE PLATAFORMA STEWART.

Merlet define un manipulador paralelo como un mecanismo de lazo cerrado en el cual un

extremo es conectado por lo menos a 2 cadenas cinemáticas independientes. El también define

un manipulador completamente paralelo como un “manipulador de lazo cerrado con n grados de

libertad (GDL) conectados a la base por n cadenas independientes, el cual tiene como máximo

2 enlaces y se acciona por un actuador rotativo.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

3

De acuerdo a Merlet, diversos diseños de manipuladores paralelos son posibles. Todos tienen

en común su bajo costo, ya que la mayoría de los componentes son standart, aunque el

ensamble del manipulador debe ser hecho con cuidado.

Hay 2 categorias principales de manipuladores paralelos, manipuladores planos y espaciales.

Buscando en la primera categoría, un manipulador paralelo plano es un tipo de manipulador de

lazo cerrado. Huag y otros investigaron la destreza del espacio de trabajo de un manipulador

elemental de lazo cerrado con un grado de libertad.Gosselin y Wang consideraron un

manipulador de lazo cerrado con 2 grados de libertad que consiste en una cadena de 5 barras.

Bajpai y Roth determinaron el lugar de trabajo de la misma cadena de 5 barras con un tercer

grado de libertad adicional, como la base de un manipulador montado sobre una articulación

rotativa. Los manipuladores de lazo cerrado mencionados hasta ahora tienen actuadores

eslabones, y de acuerdo a la definición de Merlet, estos mecanismos no son manipuladores

paralelos como estos son conectados al suelo a través de 2 cadenas cinemática linealmente

dependientes.

Gosselin and Wang también considera un manipulador paralelo plano de 3 grados de libertad

con 3 actuadores eslabones. Ver que este manipulador de lazo cerrado tiene 2 cadenas

cinemáticas independientes conectadas a la plataforma móvil con la base , este puede ser

clasificado como un manipulador paralelo.

La literatura también es muy rica en cuanto a diferentes diseños de plataformas planas Stewart

(manipuladores paralelos planos con actuadores lineales). Haug y otros determinaron el espacio

de trabajo de una plataforma plana Stewart con 3 grados de libertad. Algunos investigadores

también consideran una plataforma plana Stewart de 3 grados de libertad con una plataforma

móvil triangular. Lee encontró que el optimo diseño en cuanto a la estabilidad de la plataforma,

es una plataforma móvil equilátera. La segunda categoría de los manipuladores paralelos es

mecanismo espacial. Dependiendo el diseño , estos mecanismos pueden tener 3 a 6 grados de

libertad.

Por ejemplo, Wang y Gosselin explicaron que los dispositivos de 3 y 4 grados de libertad son

por lo regular utilizados simuladores de vuelo. Los mecanismos de 5 grados de libertad están

también disponibles y utilizadas para tareas donde las herramientas asimétricas están siendo

utilizadas.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

4

Como se ha señalado en el trabajo original por Stewart, hay diversos diseños posibles para

proporcionar 6 grados de libertad. Uno de los diseños obvios es un cardán de 3 ejes

superpuesto sobre un sistema deslizante de 3 ejes lineales. Stewart rechazó esta opción,

porque el quería lograr el más simple y cohesivo diseño con las más altas capacidades en un

amplio rango de aplicaciones.

El original mecanismo propuesto por Stewart esta comprendido por un plano triangular, llamada

plataforma, de la cual cada una de sus esquinas son conectadas a traves de una articulación de

3 ejes ( articulación esférica) a una de las 3 piernas del mecanismo. Cada pierna se conecta a

tierra por medio de una articulación de 2 ejes (articulación universal). Tres actuadores

adicionales son conectados a las 3 piernas del dispositivo. Cada actuador adicional tiene un

extremo conectado a una articulación giratoria en el extremo exterior de un cilindro de cada

pata. El otro extremo de cada actuador adicional se conecta a la base del conjunto universal.

Figura 1.0 Plataforma Stewart Original. Arreglo general de sistema de una pierna.

Las conexiones bases de los 2 “gatos” tienen un eje en común y los ejes restantes son

paralelos el uno del otro. El eje común no es controlado dentro del sistema de una sola pierna,

pero el plano que contiene la pierna puede girar alrededor de ella, asi permitiendo un

movimiento de 3 ejes en la articulación de la plataforma de apoyo.

La máquina de prueba de neumáticos de Gough, también utilizo 6 actuadores, pero estos se

dispusieron de manera diferente. Cada actuador se unió por separado a la plataforma superior

Gough utilizo el mismo conjunto de sistema para unir los actuadores a la plataforma y la base.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

5

Wang y Hsieh concuerdan que las ventajas de la Plataforma Stewart sobre los manipuladores

seriales esta en su capacidad de carga y rigidez. Merlet demás explica que la proporción que

hay entre carga y peso se debe a la distribución equitativa de la carga de la plataforma.

Cada enlace de las 6 piernas de la plataforma es sometido a solo 1/6 de su peso total. Merlet

contribuye la rigidez de la plataforma a la tensión de los enlaces que son en su mayoría de

tracción y compresión, que fácilmente puede ser manejada por actuadores lineales.

De acuerdo a Merlet, otra ventaja de los manipuladores paralelos es que la posición de las

extremidades es mucho menos sensible al error sobre los sensores articulados que a los

enlaces de los robots seriales. Geng y otros explican que la razón de mayor precisión de

manipuladores paralelos es porque la posición de error sobre cada actuador es el promedio

hacia afuera de ser acomulado en una extremidad. Merlet también menciona que la alta

precisión de posicionamiento de estos manipuladores es también debido a su alta rigidez la cual

asegura que las deformaciones de los enlaces son mínimas. El hace hincapié que la ventaja

más importante de los manipuladores paralelos es su bajo costo. Liu dice que es relativamente

barato comercialmente la tecnología servo-actuador la cual se ha utilizado para muchas

plataformas. Esta nota es interesante ya que tiene como objetivo lograr el diseño más simple

con las mas altas capacidades para un amplio rango de aplicaciones.

La arquitectura de los manipuladores es muy diferente a la de los manipuladores seriales.

Merlet con razón establece que la mayoría de los problemas teóricos referente a las plataformas

paralelas todavía tiene que abordarse, además también menciona que hay una dualidad entre

los manipuladores paralelos y enlaces seriales, como los problemas fáciles para los

manipuladores seriales son con frecuencia difíciles de resolver para manipuladores paralelos y

viceversa. [1]

1.3 APLICACIONES

En la actualidad la Plataforma Stewart tiene varias aplicaciones en diferentes campos entre las

cuales se encuentra:

En el ámbito aeroespacial, la simulación de condiciones reales en aviones y naves

espaciales se convirtió en una necesidad para la formación de pilotos, como también para el

diseño y fabricación de aeronaves. Entre los simuladores se encuentran el ACFS (Advanced

Concept Flight Simulator) de la NASA.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

6

En su interior se encuentran los mandos de una aeronave común, estos mandos están

ligados al entorno virtual de las pantallas del simulador y a los movimientos de la plataforma

de 6 grados de libertad que sirven como base para simular el movimiento de la aeronave.

Este simulador cuenta con una gran flexibilidad para simular diferentes modelos de aviones

en diferentes condiciones. También se encuentra la empresa Flight Safety la cual ha

fabricado varios simuladores de entrenamiento en aviación.

Figura 1. Simulador de movimiento de Flight Safety.

Para aumentar el almacenamiento de energía solar, se utiliza una Plataforma Stewart,

localizada bajo paneles fotovoltaicos, orientados continuamente en dirección hacia el sol

para poder incrementar el desempeño de las celdas.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

7

Figura 1.3: Robot Hexapod para el posicionamiento de reflectores solares.

En la medicina se han ocupado, como base, para asistentes quirúrgicos robóticos.

Descartan el trabajo un poco al azar en la fabricación de prótesis y la localización de los

puntos de fijación de estas en las estructuras óseas. Estos mecanismos utilizan imágenes

como topografías computarizadas escaneadas del paciente, este sistema las convierte en

sólidos virtuales similares a los huesos y articulaciones del paciente. Posteriormente la

información de la cirugía es transmitida al control del robot. Posiblemente el asistente

quirúrgico más popular sea el Da Vinci de arquitectura serial desarrollado en 1998 en el

hospital Torre Médica.

Figura 1.4: Robot DA VINCI para asistencia quirúrgica.

Además otras de las aplicaciones de las Plataformas Stewart es en el ámbito académico

como elemento Mecatrónico, en el cual se unen las Ingenierías Mecánica, Electrónica, de

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

8

Control e Informática. En la investigación se puede utilizar para recrear movimientos

naturales (terremotos, oleaje, vibraciones etc..

También es ampliamente utilizado en Mecanizado, ensamble, soldadura e industria

automotriz tal es el caso del robot FANUC.

Figura 1.5: Robot FANUC F-200iB.

Además se puede emplear para el posicionamiento de telescopios. [2]

1.4 PRINCIPALES CARCTERISTICAS (VENTAJAS Y DESVENTAJAS)

Ventajas:

Capacidad de manipular cargas superiores a su propio peso, lo que otorga una alta

eficiencia energética: Ya que si se coloca una carga en la placa móvil esta se

repartirá entre sus 6 actuadores de tal forma que cada uno de ellos soporta una

fracción de carga.

Mayor Precisión: Debido a la disposición de sus miembros no hay errores

acumulados. Ya que en los robots seriales incrementan la incertidumbre debido al

error de posicionamiento.

Velocidades de operación superiores. Por tener que mover menos inercia, los

actuadores se mueven más rápido.

Mayor manejo de grados de libertad con menos componentes. En el caso de los

seriales, a mayor cantidad de grados de libertad implica tener más miembros en la

cadena Cinemática, esto no ocurre en el caso de los paralelos.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

9

Desventajas:

El espacio de trabajo suele ser más pequeño que el de los seriales y su cálculo no

es sencillo.

La cinemática de los mecanismos paralelos es más complicada y no se conoce un

modelo general, si lo hay para estructuras seriales.

DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN UN

MICROCONTROLADOR DE ULTRA-BAJO CONSUMO DE ENERGÍA

CAPÍTULO

2

LAUNCHPAD

MSP-EXP430G2

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

10

CAPITULO 2

2.1 SISTEMAS DE DESARROLLO BASADO EN MICROCONTROLADORES

Un campo de gran interés en la industria es el desarrollo de aplicaciones para lo que se conoce

como sistemas embebidos, esto es, sistemas complejos basados en microcontroladores. En el

mercado existen una gran disposición de fabricantes y desarrolladores diversos fabricantes de

este tipo de dispositivos, así como de periféricos asociados, software de desarrollo, equipos

para depuración y pruebas, etc.

El fabricante más conocido es, seguramente, Microchip Technologies (fabricante de los

famosos PIC's) que dispone de microcontroladores de 8, 16 y 32 bits y cuya amplia gama de

productos se adapta casi a cualquier necesidad que pueda ocurrírsenos. También tienen

disponibles otro tipo de dispositivos tales como conversores analógico-digital, placas para

comunicaciones inalámbricas.Microchip PIC es una prueba de que las arquitecturas antiguas

nunca mueren apenas van mejorando con la edad, la proliferación en más y más dispositivos

con mejores tasas de precio / rendimiento.

Otro fabricante importante es Atmel, con dispositivos similares a los de Microchip o Motorola,

evidentemente, que fabrica una gama de microcontroladores específicos denominados DSP

(Digital Signal Processor) que habitualmente se emplean en el procesado de señal de audio en

tiempo real.

También existen en el mercado kits de desarrollo muy populares basados en algunos de estos

microcontroladores, por ejemplo Arduino que fabrica diversos kits basados en los micros de

Atmel.

Estos dispositivos tienen la ventaja de que incluyen en una misma placa todos los componentes

necesarios para comenzar un desarrollo hardware/software, además utilizan un lenguaje de

programación muy sencillo denominado "Arduino language", a su vez basado en "Wiring" y

escrito en una mezcla de C/C++. Ojo los kits de Arduino no se programan en C/C++ como

algunos pretenden; lo que si es posible es desarrollar bibliotecas escritas en C/C++ para que

puedan ser utilizadas dentro de un programa escrito en Arduino Language.

La TI MSP430 es el último, pero no quiere decir menos importante, en nuestra ronda de chips

que debe hacer su "lista corta" de 2010. Por un lado que todavía hay tiempo para entrar en el.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

11

Elija entre los dispositivos de potencia ultra-baja y herramientas favoritas MSP430x1xx,

MSP430F2xx, MSP430x4xx, MSP430F5xx, CC430Fxxxx. Texas Instruments también tiene un

increíble centro de formación para todos los DSPs y Microcontroladores.

TI, también goza de una creciente comunidad de apoyo para el MPS430, aunque todavía no

coincide con la de la AVR o el Microchip PIC.Incluye el compilador GNU C (GCC), el

ensamblador y enlazador (binutils), el depurador (GDB), y algunas otras herramientas

necesarias para hacer un completo entorno de desarrollo para el MSP430. La compañía

también ha mostrado un poco de diversión, ideas innovadoras en los kits de desarrollo, como

el eZ430-Chronos , primer entorno de desarrollo adaptable del mundo dentro de un reloj

deportivo. El kit permite a los desarrolladores aprovechar fácilmente el líder de integración,

ultra-baja potencia y las capacidades inalámbricas de TI.

La noticia más importante para MSP430 TI se produjo en julio de 2009 - Nueva MSP430 MCU

embebida con USB de alta velocidad y el consumo de energía ultra bajo más importantes del

mundo.

Con la amplia adopción de la conectividad USB, los diseñadores están buscando soluciones de

procesamiento integrados inteligentes que aportan ventajas únicas a sus aplicaciones, como la

vida útil de la batería, portabilidad y versatilidad. Proporcionar conectividad sencilla, avanzada,

con una sólida cartera, el nuevo microcontrolador MSP430F55xx familia (MCU) incrustado con

USB de alta velocidad (12 Mbps) es la respuesta de TI a esta necesidad.

2.2 MICROCONTROLADOR

Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios

procesos, es un circuito que integra en el mismo encapsulado la CPU, la memoria central, los

puertos de entrada y salida digitales, diversos módulos para el control de periféricos y

generador de pulsos de reloj que sincronizan el funcionamiento de todos el sistema.

Son sistemas capaces de leer, interpretar luego ejecutar de forma secuencial las instrucciones

contenidas en el programa.

Los microcontroladores son usados en sistemas tiempo real donde requiere una respuesta a

eventos dentro de un tiempo prescrito.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

12

2.3 MICROCONTROLADOR TEXAS INSTRUMENTS (MSP430)

La familia de microcontroladores (µC) MSP430 de Texas Instruments de ultra-bajo consumo de

energía consta de varios dispositivos que ofrecen diferentes conjuntos de periféricos orientados

a diferentes aplicaciones. La arquitectura, combinada con cinco modos de bajo consumo de

energía se ha optimizado para lograr una vida prolongada de la batería en aplicaciones de

mediciones portátiles. El dispositivo cuenta con un poderoso CPU (Central Processing Unit-

Unidad de Procesamiento Central) de arquitectura RISC (Reduced Instruction Set Computer-Set

Reducido de Instrucciones para la Computadora) de 16 bits, y generadores de constantes que

contribuyen a la eficiencia del código. El Oscilador Digitalmente Controlado (DCO-Digitally

Controller Oscillator) permite despertar al microcontrolador desde un modo de bajo consumo de

energía a un modo activo en menos de 1 µs.

Los microcontroladores que están basados en procesadores tipo RISC de 16 bits, son la

solución industrial de menor consumo entre microcontroladores de 8 a 16 bits alimentado por

baterías, sus principales aplicaciones incluyen la medición, la instrumentación portátil y los

sensores inteligentes.

Actualmente hay 4 familias del MSP430 disponibles:

MSPx1xx: Ofrece una amplia gama de dispositivos de propósito general desde las versiones

simples para complementar sistemas para procesamiento de señales. Hay una amplia gama

de periféricos, algunos incluyen un multiplicador de hardware, el cual puede ser utilizado

como un procesador digital de señales rudimentario. Los paquetes viene de 2 a 64 pines.

MSPx2xx: El más nuevo de toda la familia de uso general introducido en el 2005. Su CPU

puede ejecutarse a 16 MHz, el doble de velocidad de los dispositivos anteriores, mientras

consume la mitad de corriente a la misma velocidad. Algunos viene en paquetes de 14 pines

PDIP (Packages Dual In line Pin-Paquete de Pin en Doble Linea), que es atractivo para el

que construye circuitos con la mano. No requiere de un cristal por su baja frecuencia de

reloj. Las resistencias Pull-up y Pull-down se proporcionan en las entradas para reducir el

número de componentes externos necesarios. Hay muchas opciones para las entradas

analógicas.

Incluso el más pequeño de los dispositivos que es el de 14 pines ofrece un ADC (Analog-to-

Digital Converter-Convertidor Analógico-Digital) sigma delta de 16 bits.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

13

MSPx3xx: La familia original que incluye controladores de pantallas LCD es ahora obsoleto.

MSPx4xx: Pueden controlar pantallas de hasta 160 segmentos, muchos de ellos son ASSP

(Aplication Specific Standart Products-Aplicación Específica para Productos Standart), pero

también hay dispositivos de propósito general, sus paquetes viene de 48-113 pines, muchos

de los cuales son necesarios para la LCD.

MSP430X: La arquitectura original MSP430 para que se pueda tratar como memoria extra,

pero con otras mejoras también. [3]

Para poder distinguir un microcontrolador se necesita conocer la siguiente nomenclatura:

Figura 2.0 Nomenclatura del Microcontrolador.

2.4 LAUNCH PAD MSP-EXP430G2.

Es una herramienta fácil de usar destinado a usuarios principiantes o experimentados para

crear aplicaciones basadas en el microcontrolador. El LaunchPad tiene un socket Dual In line

Package (DIP) integrado que admite hasta 20 pines permitiendo que los dispositivos MSP430

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

14

se coloquen en la junta de la LauchPad, también es una herramienta de emulación flash,

incorporado permite interfaz directa a una PC para fácil programación, depuración y evaluación.

Con esta tarjeta nosotros tenemos la posibilidad de “debuguear”, es decir, mientras se este

desarrollando el código se pueden hacer pruebas para ver su funcionalidad y realizar los

cambios pertinentes. Puede utilizarse para crear soluciones interactivas gracias a sus botones

abordo, LEDs y pines extras de entrada y salida para una fácil integración de dispositivos

externos.

Incluye:

Junta de desarrollo de LaunchPad (MSP-EXP430G2)

Cable USB mini.

2 dispositivos Flash MSP430.

Conectores de PCB de 10 pines (2 machos y 2 hembras).

Cristal 32 KHz. [4] 2.4.1 MICROCONTROLADOR FAMILIA MSP430x2xx.

Las series MSP430G2x13 y MSP430G2x53 son microcontroladores de señal mixta de ultra-

bajo consumo de energía que permiten procesar hasta 16 MIPS (Millones de Instrucciones

por Segundo) usando voltajes que van desde 1.8 a 3.6 V. Dentro de sus opciones incluyen un

comparador analógico versátil, hasta 24 pines E/S, capaz para el uso de comunicación

universal en serie. Además los miembros MSP430G2x53 tienen un convertidor analógico-

digital de 10 bits.

A continuación se muestra una tabla con las características técnicas generales

pertenecientes a la familia MSP430 de las series MSP430G2x13 a MSP430G2x53 que

pueden ser utilizadas con la LaunchPad de Texas Instruments. [5]

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

15

CARACTERÍSTICAS DE LA PLACA DE LAUNCHPAD.

Figura 2.1 Launchpad MSP-EXP430G2.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES, PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES

GRADOS DE LIBERTAD"

TABLA 2.0 Familia MSP430x2xx

MICROCONTROLADORES MSP430

MSP430G2211 MSP430G2231 MSP430G2452 MSP430G2553

Bajo voltaje de alimentación en el rango 1.8 a 3.6 V.

Bajo consumo de energía: o Modo Activo: 200 μA a 1 MHz,

con 2.2 V de alimentación. o Modo Standby: 0.5 μA o Modo apagado: 0.1 μA.

5 modos de ahorro de energía

Ultrarrápido levantamiento de modo Standby en menos de 1 μs.

Arquitectura 16 bit RISC.

Duración de ciclo de instrucción 62.5 ns.

Configuraciones básicas de reloj.

Frecuencias internas de hasta 16 MHz con frecuencia calibrada.

Internos de muy baja energía Oscilador.

Cristal de 32 KHz.

Fuente externa de reloj digital

16 bit Timer_A con 2 registros C/C/M.

Detector BOR.

Comparador de señal analógica

Protección de código programable.

Chip de emulación lógica con interfaz Spy-by Wire.

Bajo voltaje de alimentación en el rango 1.8 a 3.6 V.

Ultra bajo consumo de energía: o Modo Activo: 220 μA a 1 MHz, con 2.2 V

de alimentación. o Modo Standby: 0.5 μA o Modo apagado: 0.1 μA.

5 modos de ahorro de energía

Ultrarrápido levantamiento de modo Standby en menos de 1 μs.

Arquitectura 16 bit RISC.

Duración de ciclo de instrucción 62.5 ns.

Configuraciones básicas de reloj.

Frecuencias internas de hasta 16 MHz con frecuencia calibrada.

Internos de muy baja energía Oscilador.

Cristal de 32 KHz.

Fuente externa de reloj digital

16 bit Timer_A con 2 registros C/C/M.

Interfaz Universal Serial (USI)

Detector BOR.

10 bit ADC con referencia interna muestreo, retención y Autoscan.

Programación serial abordo.

Protección de código programable por fusibles de seguridad.

Chip de emulación lógica con interfaz Spy-by Wire.

Programación serial abordo.

Bajo voltaje de alimentación en el rango 1.8 a 3.6 V.

Ultra bajo consumo de energía: o Modo Activo: 220 μA a 1 MHz, con 2.2 V de alimentación. o Modo Standby: 0.5 μA o Modo apagado: 0.1 μA.

5 modos de ahorro de energía

Ultrarrápido levantamiento de modo Standby en menos de 1 μs.

Arquitectura 16 bit RISC.

Duración de ciclo de instrucción 62.5 ns.

Configuraciones básicas de reloj.

Frecuencias internas de hasta 16 MHz con 4 frecuencias calibradas.

Internos de muy baja energía Oscilador.

Cristal de 32 KHz.

Fuente externa de reloj digital.

2 16 bit Timer_A con 3 registros C/C/M.

Hasta 24 pin I/O sentido táctil activado.

Interface Universal de Comunicaciones Seriales Serial (USCI).

Universal Asíncrono Receptor Transmisor (UART).

Síncrono Interface Serial Periférico (SPI).

10 bit 200 Ksps ADC con referencia interna muestreo retención y Autoscan.

On chip comparador analógico.

Detector (BOR).

Protección de código programable por fusibles de seguridad.

Chip de emulación lógica con interfaz Spy-by Wire.

Programación serial abordo.

Bajo voltaje de alimentación en el rango 1.8 a 3.6 V.

Ultra bajo consumo de energía: o Modo Activo: 220 μA a 1 MHz, con 2.2 V de alimentación. o Modo Standby: 0.5 μA o Modo apagado: 0.1 μA.

5 modos de ahorro de energía

Ultrarrápido levantamiento de modo Standby en menos de 1 μs.

Arquitectura 16 bit RISC.

Duración de ciclo de instrucción 62.5 ns.

Configuraciones básicas de reloj.

Frecuencias internas de hasta 16 MHz con 4 frecuencias calibradas.

Internos de muy baja energía Oscilador.

Cristal de 32 KHz.

Fuente externa de reloj digital.

2 16 bit Timer_A con 3 registros C/C/M.

Hasta 24 pin I/O sentido táctil activado.

Interface Universal de Comunicaciones Seriales Serial (USCI).

Universal Asíncrono Receptor Transmisor (UART).

Síncrono Interface Serial Periférico (SPI).

10 bit 200 Ksps ADC con referencia interna muestreo retención y Autoscan.

On chip comparador analógico.

Detector (BOR).

Protección de código programable por fusibles de seguridad.

Chip de emulación lógica con interfaz Spy-by Wire.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

17

2.5 ARQUITECTURA DELA FAMILIA MSP430 DE TEXAS INSTRUMENTS

La arquitectura del MSP430 incorpora una CPU tipo RISC (Reduced Instruction Set Computer-

Computador con Conjunto de Instrucciones Reducidas), periféricos y un sistema de reloj

flexible que se interconectan utilizando una memoria Von-Neumann, atreves del MAB

(Memory Address Bus-Bus de Direcciones de Memoria) y del MDB (Memory Data Bus-Bus de

Memoria de Datos), estos buses nos permiten transmitir y recibir los datos desde cualquiera

de los dispositivos que están integrados en el microcontrolador, como lo es la memoria RAM,

memoria flash, puertos 1 y 2, Timer A2, etc.. A continuación se muestra la arquitectura de

forma general de los microcontroladores MSP430 de la familia MSP430x2xx.

Figura 2.2 Arquitectura MSP430x2xx

2.5.1 UNIDAD CENTRAL DE PROCESAMIENTO

La CPU (Central Processing Unit-Unidad Central de Procesamiento) ejecuta las instrucciones

almacenadas en la memoria. Incluye el ALU (Arithmetic Logic Unit-Unidad Lógica Aritmética),

la cual se encarga de realizar el computo, además tiene un conjunto de 16 registros

designados como R0-R15, que proporcionan una reducción en el tiempo de ejecución de cada

instrucción. El tiempo que lleva la operación registro a registro es un ciclo de reloj de la CPU.

Los periféricos están conectados a la CPU por medio de buses de control, dirección y datos, y

pueden ser manejados con todas las instrucciones.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

18

2.5.2 REGISTROS DEL MICROCONTROLADOR

La CPU contiene registros de propósito específico (controlar las funciones del

microcontrolador, según la información), y de propósito general (sirve para poner datos que

queremos). Los registros de propósito específicos R0-R3 son dedicados como contador de

programa (PC- Program-Counter), Puntero de Pila (SP-Stack Pointer), Registro de Estado

(SR-Status Register) y un Generador de Constantes (CG-Constant Generator),

respectivamente. Los registros restantes R4-R15 son de propósito general.

Figura 2.3 Registros del CPU.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

19

CONTADOR DEL PROGRAMA (PC/R0)

Este registro contiene la dirección de la próxima instrucción a ser ejecutada. Cada instrucción

requiere un número par de bytes (dos, cuatro o seis). El ciclo usual de ejecución es que el

contenido de la PC se colocan en el bus de dirección y la siguiente instrucción se extrae

desde esta dirección. El valor de la PC se incrementa automáticamente en 2 después de cada

extracción, de modo que está listo para la siguiente palabra. La PC ahora esta lista con la

dirección de la siguiente instrucción cuando la actual ha sido ejecutada. Así las instrucciones

se ejecutan secuencialmente al menos que haya un salto explícito. En este caso la dirección

de la nueva instrucción se produce como resultado de la operación actual y se escribe sobre

el valor de la PC. Las subrutinas e interrupciones también modifican el PC, pero en estos

casos el valor anterior se guarda en la pila y es restaurada posteriormente.

PUNTERO DE PILA (SP/R1)

Cuando una subrutina es llamada, la CPU salta a la subrutina, ejecuta el código, y más tarde

regresa a la instrucción. Por lo tanto debe mantener un registro de los contenidos de la PC

antes de saltar a la subrutina, de modo que esta pueda volver después. Este es el propósito

principal de la Pila. Utiliza un esquema de pre-decremento, post-incremento, en donde su

mayor ventaja es que el elemento que se encuentra en la parte mas alta de la pila esta

disponible.

EL REGISTRO DE ESTADO (SR/R2)

Este registro contiene un registro de banderas (bits individuales), cuyas funciones caen en 3

categorias. Las banderas comúnmente utilizadas son C,Z,N y V las cuales dan información

acerca de la última operación lógica o aritmética. La bandera Z se establece si el resultado fue

cero y limpia si era distinto de cero. Las decisiones que afectan el flujo de control en el

programa, pueden hacerse comprobando estos bits. El grupo final de bits es CPUOff,

OSCOFF, SCG0 y SCG1 que controlan los modos de operación del microcontrolador.

Establecer diferentes combinaciones de estos bits ponen al MCU en uno de sus modos de

bajo consumo. A continuación se describe brevemente los bits del Registro de Estado.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

20

V.- bit de desbordamiento.Se activa si el resultado de una operación excede el rango de

la variable (incluido el signo).

SCG1 (System Clock Generator).- bit 1 de control del generador de reloj del sistema.

Este bit y el siguiente controlan 4 estados de actividad del reloj del sistema, por lo tanto

influyen en el procesador del sistema.

SCG0 (System Clock Generator 0).- bit 0 de control del generador de reloj del sistema.

OSCOff (Oscillator).-bit de apagado del cristal Oscilador. Si es puesto a 1, el oscilador

externo entra en modo de apagado, todas las actividades concluyen.

CPUoff.-bit apagado de la CPU. Si es puesto en 1 la CPU entra en modo de apagado, la

ejecución del programa se detiene.

GIE (Generator Interrupt Enable).- bit de “habilitación”de la interrupción general. Puesto

a 1 todas las interrupciones enmascarables son controladas. Si esta deshabilitada

todas las interrupciones enmascarables son ignoradas.

N (Negative) bit “negativo” se prende cuando el resultado es

negativo.

Z (Zero) bit “cero” se prende cuando el resultado es cero.

C (Carry) bit “acarreo” se prende cuando el resultado es de

acarreo.

Figura 2.4 Ubicación de los bits de estado en el registro (SR/R2). (Fuente: Texas Instruments)

Nota: Los bits de estado (V,N,Z y C) solo se pueden cambiar por ciertas instrucciones.

Registros Generadores de Constantes CG1 y CG2 (R2 y R3).

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

21

Las seis constantes comúnmente usadas son generadas con los Registros Generadores de

Constantes R2 y R3 sin requerir instrucciones especiales, código adicional para las seis

constantes, ni código de acceso a memoria parra obtener la constante.

Tabla 2.1 Valores de Generadores de Constantes CG1, CG2. (Fuente Texas Instruments)

REGISTROS DE PROPÓSITO GENERAL R4 A R15

Los doce registros de propósito general pueden ser utilizados como registro de datos,

punteros de dirección, o pueden indexar valores, los cuales pueden ser accedidos mediante

instrucciones de byte o Word. [3]

2.6 LOS PERIFÉRICOS.

Un periferico es un circuito electronic digital, incluido en un microcontrolador, que realiza una

función o tarea especifica. Los periféricos de un microcontrolador permiten ahorro de espacio

y dinero en muchas alicaciones electrónicas.

Los dispositivos periféricos están conectados al CPU a través de buses de dirección, datos y

control. Estos están para interfase con el mundo exterior (como los pines de entra y salida

(E/S) de propósito general, controladores de LCD, entradas analógicas digitales (A/D) y

salidas de Modulación de Ancho de Pulso) y para tareas internas como el de conservar

diferentes bases de tiempo (temporizadores).

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

22

2.7 SISTEMA DE RELOJ.

Los microcontroladores cuentan con una amplia gama de relojes. Un cristal de reloj de baja

frecuencia se ejecuta continuamente a 32 KHz y se utiliza para activar el dispositivo

periódicamente. La CPU se sincroniza por medio de un DCO (Digitally Controlled Oscilator-

Oscilador Digitalmente Controlado), el cuál reinicia en menos de 1 µs. Por esta razón los

MSP430 pueden despertar desde un mode de Standby (espera) llevar a cabo sus tareas, y

volver a un modo de bajo consumo de manera rápida.

Los MSP430 satisfacen las demandas de alto rendimiento, bajo consumo, y una frecuencia

precisa mediante el uso de tres relojes internos. Estos relojes internos son los siguientes:

MCLK (Master Clock): Se utiliza para alimentar el CPU. Suministrado por un oscilador

interno de control digital 1.1 MHz.

SMCLK (Sub Main Clock): Es utilizado para alimentar periféricos de alta velocidad.

También controlado por el mismo oscilador del MCLK.

ACLK (Auxiliary Clock): Utilizado para alimentar periféricos de baja velocidad. Proviene

de un oscilador de cristal de baja frecuencia, típicamente de 32 KHz.

Nota: Tome en cuenta que el ACLK necesita un cristal externo.

El MCLK y el SMCLK pueden trabajar de frecuencias de 1 MHz, 8 MHz, 12 MHz hasta 16

MHz recordando que a mayor frecuencia habrá mayor consumo de energía, la frecuencia

más óptima es la frecuencia de 12 MHz.

También hay 4 fuentes disponibles en el BCS para conducir cada uno de los 3 relojes.

LFXT1CLK: El nombre de esta fuente implica su uso con un cristal de baja frecuencia, y

esto es a menudo el caso. Un cristal de 32768 Hz se puede conectar a su MSP430 para,

el tiempo de alta precisión de bajo consumo. En algunos dispositivos x2xx, esta fuente

también tiene un modo de alta frecuencia que se pueden utilizar cristales de 400 kHz a

16 MHz, suponiendo que el chip se alimenta con una tensión lo suficientemente grande

para manejar la frecuencia. Además, otros resonadores y señales externas se pueden

utilizar para esta fuente.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

23

XT2CLK: Una vez más, esta fuente es el nombre de su uso implícito con un segundo

cristal, pero en este caso sólo un cristal de alta frecuencia. También se puede utilizar

otros resonadores y señales externas. Esta fuente no está disponible en todos los

dispositivos x2xx.

DCOCLK: La fuente interna es el oscilador controlado digitalmente. Aunque no es tan

preciso y estable como fuentes de cristal, el DCO es aún bastante buena y puede ser

configurada para operar en una amplia gama de frecuencias.

VLOCLK: El MSP430 incluye un segundo oscilador interno de energía, aplicaciones de

muy bajos de muy baja frecuencia. El VLO puede correr más lento que el reloj cristalino

LFXT1, y por lo general se utiliza en alrededor de 12 kHz. Esta fuente no está disponible

en todos los dispositivos x2xx. [6]

2.8 CIRCUITO BROWNOUT

El circuito Brownout es implementado para proveer la señal interna correcta de reset al

dispositivo durante la secuencia de encendido y apagado del microcontrolador.

2.9 ENTRADAS Y SALIDAS DIGITALES

El microcontrolador cuenta con 2 puertos P1 y P2 de 8 bits los cuales pueden ser

configurados como entrada o salida, sus principales características son las siguientes:

Los bits de todas las entradas y salidas pueden ser programados indepenientemente.

Cualquier combinación de entrada, salida o condición de interrupción es posible.

Cada entrada o salida tiene una resistencia individual de pullup/pull down.

Capacidad para selección del flanco para interrupción.

A continuación se presentan los registros para las terminales de Entrada/Salida digitales

microcontroladores MSP430x2xx. Los registros son secciones especiales de la memoria que

configura el dispositivo y nos dice cuando sucede algo importante. Cada pin se puede

configurar y controlar de forma individual:

Registro de entrada PxIN: es un registro de solo lectura. Cada bit del registro refleja

PxIN refleja el valor de la señal de entrada en el pin correspondiente. Todo el PxIN

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

24

byte lee el valor de todas las entradas de ese puerto a la vez.Tenga en cuenta que es

un sistema digital, por lo que hay sólo dos valores que se pueden leer, un 0 o un

1. Estos valores corresponden a los voltajes de Vss (0) y Vcc (1), que son generaly 0

V y entre 1,8 y 3,6 V, respectivamente. Hay un umbral particular integrado en el

dispositivo de tal manera que cualquier tensión sobre ese valor se lee como un 1 y

cualquier voltaje de lectura a continuación se lee como un 0. Para evitar daños en el

chip, que sin duda debe nunca tratar de leer las tensiones fuera del rango entre Vss

y Vcc directamente. [3] [5] [7]

Registro de salida PxOUT: Cada bit del registro PxOUT representa el valor que se

obtendrá sobre el pin correspondiente cuando se le ha seleccionado la función de E/S,

la dirección escogida sea salida y el resistor pull-up/pull-down este desactivado, el bit

correspondiente en el registro PxOUT escoge a que resistor estará conectado. [3] [5]

[7]

Registro de dirección PxDIR: Escoge la dirección del pin correspondiente, sin

considerar la función seleccionada para el pin, es decir que será un pin de entrada

aunque la función seleccionada sea lo contrario. [3] [5] [7]

Registro de habilitación del resistor pull-up/pull-down PxREN: Activa o desactiva el

resistor pull-up/pull-down del pin correspondiente. Con el mismo bit del registro

PxOUT se escoge si la patilla es conectada al resistor pull-up o pull-down. [3] [5] [7]

Nota: Cabe aclarar que todos los pines de los puertos cuentan con resistencia interna

Pull-up/Pull-down; Pull-up te obliga que se haga 1; Pull-down te fuerza a tierra; si esta

mas cerca de le voltaje de 3.7 volts te lleva a Pull-up, de lo contrario te llevará a Pull-

down.

Registro de interrupción PxI (Interrupt) PxIES (Interrupt Edge Select )y PxIFG

(Interrupt flag): Mandaran un mensaje a la CPU para mantener lo que se esta

haciendo y cuidar de la “Circunstancia Especial”. Una vez que la alarma se ha

cumplido, la CPU vuelve a donde estaba antes. Para habilitar este comportamiento,

para habilitar este comportamiento se ha establecido el bit PxI para el pin se establece

en 1. PxIES bit se determina si la bandera se activa por el pin que va de 0 a 1 (el bit

IES se establece en 0), el conjunto de bits IES se establece en 1. En otras palabras la

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

25

bandera se activa cuando hay un flanco de pendiente positiva ascendente, un

negativo cuando se activa la alarma. [3] [5] [7]

Bits de selección de función PxSEL y PxSEL: Los pines del puerto frecuentemente

son multiplexados con otros dispositivos periféricos. Cada bit en PxSEL y PxSEL2 es

utilizado para escoger en el pin correspondiente la función requerida. [3] [5] [7]

De que forma podemos cambiar los bits:

En un programa tenemos que inicializar el pin de ser una salida: P1DIR = BIT4; (Una forma

equivalente de hacer esto es utilizar un operador lógico.

El valor de P1OUT podría ser 0 o 1, por lo que si nos importa en qué estado el LED comienza

en deberíamos establecer que:

P1OUT = 0;

(Una práctica mejor es inicializar el estado de salida antes de que cambiemos el pin de salida.)

Ahora tenemos un pin de salida fijado en 0, manteniendo el apagado LED. Para encenderlo, le

damos el comando:

P1OUT | = BIT4;

Para desactivarlo.

P1OUT & = ~ BIT4;

Para cambiar su estado (si fuera el, en caso de apagado):

P1OUT ^ = BIT4; [6]

2.10 TEMPORIZADOR DEL PERRO GUARDIÁN “WATCHDOG TIMER”(WDT+).

El principal propósito de el “Watchdog Timer” es proteger al sistema cuando ocurra un

problema en la ejecución del software. Si el intervalo de tiempo expira , un reset al sistema es

generado. Si la función de “Watchdog” no es necesaria en una aplicación, el modulo puedes

ser configurado como un contador de intervalos y puede generar interrupciones en espacios

de tiempo seleccionados.

Puede ser configurado ya sea como Whatchdog o un contador de tiempo con el WDTCTL

también contiene control de bits para configurar el pin RST/NMI. [5]

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

26

2.11 TIMERS

Podemos configurar los relojes en el MSP430, de forma que podemos utilizarlos para

impulsar los Periféricos. Hay que tomar en cuenta que hay un sistema de Timer_B disponible

en algunos dispositivos que comparten muchos aspectos del Timer_A. [8]

Un contador de tiempo es un mecanismo de conteo que esta ligada a algún tipo de intervalo

regular proporcionada por un reloj.

Timer_A es un temporizador/contador de 16 bits con 3 registros captura/compara. Puede dar

soporte a la captura/comparación múltiple, salidas PWM, y medidas de intervalos de tiempo.

También posee capacidad de interrupción. Además tiene capacidad de generar

interrupciones por diferentes eventos. Por el desbordamiento del contador o por las

condiciones de cada uno del captura/comparación. El Timer también nos ayuda a realizar

ciertos eventos y nos ayuda a consumir menos energía, y la CPU hace un evento a la vez,

además de consumir mas energía.

Principales características:

La fuente de reloj es seleccionable y configurable.

Salidas configurables con capacidad PWM.

Un solo registro de interrupción para una rápida decodificación de todas las

interrupciones del Timer_A. [5]

2.11.1 MODOS DE TEMPORIZADOR TIMER_A

Modo Continuo (Continuos Mode): El contador se mueve libremente a través de su gama

completa de 0x0000 a 0xFFFF en el momento en que se desborda y retorna a o nuevamente.

El periodo es de 216 = 65536 unidades. Este modo es mas conveniente para las entradas de

captura y también se utiliza cuando los canales proporcionan salidas con diferente

frecuencias, o que no son periódicas en absoluto. [3]

Modo up (Up Mode). A igual que el modo continuo cuenta y se da vuelta a cero, sin embargo

nos permite elegir hasta hasta que nivel del contador llega antes de regresar a 0. Por lo reglar

este modo se usa cuando todos los canales proporcionan salidas a la misma frecuencia a

menudo para la modulación de ancho de pulso. [8]

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

27

Modo Arriba/Abajo (Up/Down Mode): Parecido al modo en el que puede programar el límite

superior, la diferencia radica en que en lugar a regresar inmediatamente a cero se da vuelta

y genera una cuenta regresiva a cero. Se trata de un modo especializado, utilizado para la

modulación de ancho de pulso centrado. [8]

También el Timer_A tiene la característica de establecer puntos de control en su contabilidad

Texas Instruments (TI) llama a estos puestos de control Registros de Captura/Compara. El

uso más básico de estos registros es establecer valores en los que el contador de banderas

genere un caso particular. De hecho uno de estos registros es lo que se utiliza para

establecer el límite superior de arriba modo arriba/abajo. [8]

Este tipo de registro en el modo de comparación, se pone un valor que se compara con la

cuenta actual del Timer_A. Si los valores son iguales nos indicara que es caso para el

procesador. El modo captura se comporta de manera diferente, el timer espera algún tipo de

señal ( por lo regular algún tipo de entrada) y luego registra el valor actual del contador del

tiempo en el registro sin detener el temporizador, parecido a la función de vuelta de un

cronometro. [8]

2.11.2 REGISTROS TIMER_A.

Hay tantas maneras de como utilizar el Timer_A , en la que hay una cantidad de registros a

utilizar. Por lo menos hay 7 registros utilizados en cualquier dispositivo con el periférico

Timer_A. A continuación se describen cada uno de ellos.

TACTL - El Registro de Control Timer_A se utiliza para establecer el vínculo entre el

temporizador y un reloj y seleccione el modo utilizado.

o Los bits TASSELx (Clock Source Select) (8 y 9) nos dice que temporizador del

reloj se usará como su fuente.

o La frecuencia de reloj se puede dividir por un factor de más de 2, 4, 8 o el uso de

los bits de división de entrada IDx (Input Divider) (6 y 7). (Tenga en cuenta que

este es un nuevo fraccionamiento, de cualquier división de hecho la fuente de reloj

para el reloj en sí,. Usted podría tener una división total de hasta 64 desde su

fuente de reloj para este periférico)

o Los bits de Modo de Control MCX (Mode Control) (4 y 5) seleccionar el modo

particular de la hora de usar. Tenga en cuenta especialmente que el

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

28

establecimiento de estos bits a 0 (el valor predeterminado en el Power on reset

POR) detiene el cronómetro completamente.

o TACLR Clear es el bit 2. Si se escribe un 1 en este bit, se restablece el

temporizador. El MSP430 reiniciará automáticamente este bit a cero después de

restablecer el temporizador.

o TAIE y TAIFG (bits 0 y 1) el control de la capacidad de que el temporizador

interrumpe desencadenantes; más en esto pronto!

TAR - La Timer_A Registro es el contador actual, la lectura de este registro indica el valor

actual del contador.

TACCRx – Los registros Timer_A Capture / Compare, de los cuales hay dos en los

dispositivos de la línea de valor (TACCR0 y TACCR1) son donde se almacenan

determinados valores que queremos usar. A modo de comparación, escribimos los

valores aquí donde queremos que el temporizador para indicar un evento. En particular,

TACCR0 se utiliza para almacenar el valor al que queremos Timer_A a contar en modo

arriba y modo arriba / abajo. En el modo de captura, el procesador registrará el valor de

TAR cuando el MSP430 es señalado para ello.

TACCTLx – Los registros Timer_A Capture / Compare de control corresponden a los

registros TACCRx. Estos establecen el comportamiento de cómo se utilizan los CCR.

o Modo Captura CMx (Capture Mode) (bits 14 y 15) cambio de qué tipo o tipos de

las señales dicen al temporizador realizar una captura.

o Seleccionar entrada Captura / Compara CCISx (Capture/Compare) (bits 12 y 13),

seleccione el que se toman las señales de entrada.

o SCS y SCCI (bits 11 y 10, respectivamente) cambian la sincronicidad, el

temporizador normalmente trabaja de forma asíncrona para las señales de

entrada.

o PAC (bit 8) cambia si se utiliza el modo de captura (1) o el modo (0) Comparar.

o OUTMODx (bits 5-7) seleccionar varios modos de salida de la señal del CCR

cuando el temporizador señala una captura o comparar evento.

o CCIE y CCIFG (bits 4 y 0) son más interrupciones asociadas al CCR.

o CCI y OUT (bits 3 y 2) son la entrada y la salida para el CCR.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

29

o COV (bit 1) es el desbordamiento de la captura, este bit se pone a 1 si dos

capturas se indican antes de que el primer valor de la captura es capaz de ser

leído.

TAIV - El Timer_A interrupción vectorial Registro, ya que hay varios tipos de

interrupciones que pueden ser marcados por Timer_A, este registro contiene información

sobre lo que las interrupciones han marcado.

o Los únicos bits utilizados aquí son bits 1-3 (TAIVx), que muestran el tipo de

interrupción que ha sucedido, lo que nos permite realizar diferentes acciones para

resolver los diferentes tipos de interrupciones. [8]

2.11.3 MODO CAPTURA-COMPARA

Modo Captura: el modo captura es seleccionado cuando CAP=1. El modo captura es

utilizado para registrar eventos de tiempo. Este puede ser utilizado para velocidades

computacionales o mediciones de tiempo. Las entradas Captura son conectadas en pines

externos o señales internas y son seleccionados por medio de CCISx. Sirve para leer las

señales cuadradas, si queremos ver la señal.

Modo Compara: El modo compara es seleccionado cuando CAP=0. Es utilizado para

generar una señal de salida PWM o interrupciones en intervalos específicos de tiempo.

Obtener señales cuadradas.

2.12 INTERRUPCIONES

Las interrupciones son usualmente generadas por hardware aunque pueden ser inicializadas

por software, a menudo indican que ha ocurrido un evento que requiere una respuesta

urgente. Un paquete de datos podría haber sido recibido, y necesita ser procesado antes de

que llegué el próximo paquete. El procesador deja de hacer lo que esta llevando acabo,

almacena información suficiente para reanudar mas adelante y procede a ejecutar una ISR

(Interrup Service Routine-Rutina de Servicio de Interrupción), regresa a su actividad anterior

cuando el ISR ha concluido. Así un ISR es como una subrutina llamada por hardware.

Un segundo uso de las interrupciones, que es importante en el MSP430, es despertar al

procesador de un estado de bajo consumo.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

30

El código para manejar las interrupciones es llamado controlador de interrupciones o rutina de

servicio de interrupción (ISR). Cada interrupción tiene una bandera, que se eleva cuando la

condición de la interrupción ocurre.

Hay 3 tipos de interrupciones:

Reset del sitema (Reset)

NMI (No Maskable Interrupt-Interrupción No Enmascarable)

Enmascarable

La mayoría de las interrupciones son enmascarables, lo que significa que solo son eficaces si

el bit GIE (General Interrupt Enable- Habilitación General de Interrupción) se establece en el

registro de estado (SR). Son generadas por periféricos que tienen la capacidad de

interrumpir.Las interrupciones no enmascarables solo pueden ser habilitadas o deshabilitadas

individualmente por los bits (NMIIE, ACCVIE, OFIE). Cuando una NMI es aceptada, todos los

bits son automáticamente reseteados. Una NMI puede ser generada por tres fuentes:

Un flanco negativo en el pin RST/NMI cuando esta configurado en el modo de

interrupción no enmascarable.

Cuando ocurre una falla en el oscilador.

Cuando ocurre una violación de acceso a la memoria flash.

Cada terminal en los puertos P1 y P2 tienen la capacidad de interrupción, se puede configurar

mediante los registros PxIFG (Port x Interrupt Flag Register), PxIE (Port x Interrupt Enable

Register), y PxIES (Port x Interrupt Edge Select Register). [3]

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

31

2.13 MODOS DE OPERACIÓN DE CONSUMO DEL MICROCONTROLADOR

Los microcontroladores MSP430 cuentan con un modo activo y cinco modalidades de bajo

consumo que son seleccionadas mediante software. Una interrupción puede activar el

dispositivo en cualquiera de los 5 modos de bajo consumo dar servicio a la interrupción y

regresar al modo de bajo consumo en el cual estaba el microcontrolador.

o Modo activo: Todos los relojes están activos, la CPU.

o Modo de bajo consumo 0(LMP0-Low Power Mode 0):

El CPU y el MCLK esta deshabilitado.

ACLK (Auxiliary Clock) y SMCLK (Sub-Main Clock) permanecen activos.

o Modo de bajo consumo 1 (LMP1-Low Power Mode 1)

El CPU y el MCLK están deshabilitados.

ACLK y SMCLK permanecen activos.

El generador DCO (Digital Controller Oscilator) deshabilitado si no es utilizado por el SMCLK.

o Modo de bajo consumo 2 (LMP2-Low Power Mode 2)

El CPU, MCLK y SMCLK están deshabilitados.

El DCO esta habilitado.

ACLK permanece activo.

o Modo de bajo consumo 3 (LMP3-Low Mode Power 3)

El CPU, MCLK, SMCLK y DCO deshabilitados.

ACLK permanece activo.

o Modo de bajo consumo 4 (LMP4-Low Mode Power 4)

El CPU, MCLK, SMCLK, ACLK y el DCO están deshabilitados.

DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN UN MICROCONTROLADOR DE ULTRA-BAJO CONSUMO DE ENERGÍA

CAPÍTULO

3

PROGRAMACIÓN DEL

MICROCONTROLADOR

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

32

CAPITULO 3

3.1 SOFTWARE Y LENGUAJES DE PROGRAMACIÓN.

Un lenguaje de programación consiste en todos los símbolos, caracteres y reglas de uso que

permiten a las personas "comunicarse" con las computadoras. Existen varios cientos de

lenguajes y dialectos de programación diferentes. Algunos se crean para una aplicación

especial, mientras que otros son herramientas de uso general más flexibles que son apropiadas

para muchos tipos de aplicaciones. En todo caso los lenguajes de programación deben tener

instrucciones que pertenecen a las categorías ya familiares de entrada/salida,

cálculo/manipulación de textos, lógica/comparación y almacenamiento / recuperación.

Aunque todos los lenguajes de programación tienen un conjunto de instrucciones que permiten

realizar dichas operaciones, existe una marcada diferencia en los símbolos, caracteres y

sintaxis de los lenguajes de máquina, lenguajes ensambladores y lenguajes de alto nivel.

Son herramientas que nos permiten crear programas y software. Entre ellos tenemos: C#,

Delphi, C, PHP, Perl, Python,Visual Basic, Pascal, Java, entre otros.

La programación consiste en desarrollar programas para procesar información, se utiliza para

designar la creación de programas a pequeña escala, el desarrollo de sistemas complejos se

denomina ingeniería de software.

Una computadora es totalmente inútil si no dispone de un programa capaz de procesar

información, para que se realice dicho procesamiento de información habrá sido necesario

pensar, construir, y crear un programa y ejecutar dicho programa o aplicación en la

computadora.

Para el desarrollo de grandes sistemas informáticos se divide el trabajo en tareas que diversos

programadores desarrollaran, al terminar se unen las piezas para completar el sistema en sí, la

programación también se aplica para el desarrollo de grandes sistemas en las ingenierías de

software.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

33

La programación tiene como objetivo el tratamiento de la información correctamente, con lo que

se espera que un programa de el resultado correcto y no uno erróneo, cada aplicación debe

funcionar según lo esperado en términos de programación.

Otro objetivo fundamental de la programación es que sean de códigos claros y legibles, con lo

que si un programador inicia un programa y no lo termina, otro programador sea capaz de

entender la codificación y poder terminarlo, en programación existen ciertas normas no escritas

de cómo han de nombrarse los componentes, objetos o controles de cada sistema, así como

sus variables que deben ser relativas al termino al cual se van a vincular.

Por último la programación pretende que sus programas sean útiles y eficientes, de muchs

formas diferentes, la programación nos dará el mismo resultado de un programa, un buen

programador llegara al mismo resultado con un mínimo de código y de la forma más clara y

lógica posible, un código claro y legible facilita el mantenimiento de la aplicación o sistema.

Una computadora funciona bajo control de un programa el cual debe estar almacenado en la

unidad de memoria o unidades de almacenamiento como por ejemplo, el disco duro.

Los lenguajes de programación de una computadora en particular se conocen como código de

máquinas o lenguaje de máquinas. Estos lenguajes codificados en una computadora específica

no podrán ser ejecutados en otra computadora diferente.

Para que estos programas funcionen para diferentes computadoras hay que realizar una

versión para cada una de ellas, lo que implica el aumento del costo de desarrollo. Por otra

parte, los lenguajes de programación en código de máquina son verdaderamente difíciles de

entender para una persona, ya que están compuestos de códigos numéricos sin sentido

nemotécnico.

Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas

adecuadas que permiten ser leídas y escritas por personas, a su vez resultan independientes

del modelo de computadora utilizada, representan en forma simbólica y en manera de un texto

los códigos que podrán ser leídos por una persona.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

34

Existen estrategias que permiten ejecutar en una computadora un programa realizado en un

lenguaje de programación simbólico. Los procesadores del lenguaje son los programas que

permiten el tratamiento de la información en forma de texto, representada en los lenguajes de

programación simbólicos.

Hay lenguajes de programación que utilizan compilador, la ejecución de un programa con un

compilador requiere de dos etapas:

1) Traducir el programa simbólico a código máquina.

2) Ejecución y procesamiento de los datos.

Otros lenguajes de programación utilizan un programa intérprete o traductor, el cual analiza

directamente la descripción simbólica del programa fuente y realiza las instrucciones dadas. El

intérprete en los lenguajes de programación simula una máquina virtual, donde el lenguaje de

máquina es similar al lenguaje fuente.

La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa, sin

embargo su inconveniente es que la velocidad de ejecución es más lenta ya que debe analizar

e interpretar las instrucciones contenidas en el programa fuente. Los lenguajes de programación

están conformados por una serie de reglas sintácticas y semánticas que serán utilizadas por el

programador y a través de las cuales creará un programa o subprograma, las instrucciones que

forman dicho programa son conocidas como código fuente.

Los lenguajes de programación pueden clasificarse de diversas maneras, como por ejemplo

según su nivel de abstracción: lenguaje de bajo nivel; lenguaje de nivel medio y lenguaje de alto

nivel. También puede haber lenguajes según la forma de ejecución, encontrándonos así con él

y lenguajes interpretados.

3.1.1CARACTERÍSTICAS:

Existen muchos lenguajes de programación, que responden a necesidades específicas y que

poseen características y funcionalidades específicas. Por lo tanto, la elección del lenguaje de

programación depende, sobre todo, de los requerimientos a satisfacer, así como de los recursos

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

35

existentes para la comprensión y la práctica del lenguaje. Criterios de selección de un lenguaje

de programación.

1. Utilidad: fácil de aprender, fácil de usar por un programador experimentado.

2. Rendimiento: velocidad de ejecución de los programas, velocidad de ejecución del

compilador.

3. Portabilidad y flexibilidad a posibilidad de desarrollar el lenguaje y su implementación,

existencia de bibliotecas de funciones, clases, etc.

4. Continuidad: continuidad del fabricante, continuidad del lenguaje, continuidad de

implementación, existencia de una norma internacional para definir el lenguaje,

conformidad de implementación con respecto a la norma, existencia de varios

fabricantes para un mismo lenguaje.

Basic y Pascal que son herramientas de programación, idóneas para la inicialización de

los programadores.

C y C++ que sirven para la programación de sistemas.

Cobol, que es una herramienta de programación orientada hacia sistemas de gestión

empresarial como nominas y contabilidad.

Fortran, que son lenguajes específicos para cálculos matemáticos y o numéricos.

Herramientas de programación para ambientes gráficos como son Visual Basic, Delphi y

Visual C.

HTML y Java, que permiten la creación de páginas WEB para Internet.

CLASIFICACIÓN:

Lenguajes de bajo nivel.

Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza

con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas, al estar

prácticamente diseñados a la medida del hardware, aprovechan al máximo las características

del mismo.

Dentro de este grupo se encuentran:

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

36

El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para su

funcionamiento, consiste en la combinación de 0's y 1's para formar las ordenes entendibles por

el hardware de la maquina, es mucho más rápido que los lenguajes de alto nivel, la desventaja

es que son bastantes difíciles de manejar y usar, además de tener códigos fuente enormes

donde encontrar un fallo es casi imposible.

El lenguaje ensamblador es un derivado del lenguaje maquina y está formado por abreviaturas

de letras y números llamadas mnemotécnicos, con la aparición de este lenguaje se crearon los

programas traductores para poder pasar los programas escritos en lenguaje ensamblador a

lenguaje máquina, como ventaja con respecto al código máquina es que los códigos fuentes

eran más cortos y los programas creados ocupaban menos memoria, las desventajas de este

lenguaje siguen siendo prácticamente las mismas que las del lenguaje ensamblador, añadiendo

la dificultad de tener que aprender un nuevo lenguaje difícil de probar y mantener.

Lenguajes de alto nivel

Se encuentran más cercanos al lenguaje natural que al lenguaje máquina, están dirigidos a

solucionar problemas mediante el uso de EDD’s (Estructuras Dinámicas de Datos), son

estructuras que pueden cambiar de tamaño durante la ejecución del programa, permiten crear

estructuras de datos que se adapten a las necesidades reales de un programa, son lenguajes

independientes de la arquitectura de la computadora, es decir que en principio, un programa

escrito en un lenguaje de alto nivel, se puede migrar de una máquina a otra sin ningún tipo de

problema.

Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de

la maquinas para la que están diseñando el programa, solo necesitan un traductor que

entiendan el código fuente como las características de la maquina, suelen usar diferentes tipos

de datos para la programación, hay lenguajes de propósito general y de propósito especifico.

Lenguajes de Medio nivel

Estos lenguajes se encuentran en un punto medio entre los dos anteriores, dentro de estos

lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

37

direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar

operaciones de alto nivel.

GENERACIONES

Primera generación: lenguaje maquina.

Segunda generación: se crearon los primeros lenguajes ensambladores.

Tercera generación: se crean los primeros lenguajes de alto nivel.

Cuarta generación: son lenguajes capaces de generar código por si solos, con lo cuales

se pueden realizar aplicaciones sin ser un experto en el lenguaje, aquí también se

encuentran los lenguajes orientados a objetos, haciendo posible la reutilización de

partes del código para otros programas.

Quinta generación: aquí se encuentran los lenguajes orientados a la inteligencia artificial,

etos lenguajes todavía están poco desarrollados.

3.2 LENGUAJE EN C

El lenguaje de programación en C, es un lenguaje conocido como de alto nivel, es que es un

lenguaje estructurado, lo que permite generar código claro y sencillo, ya que está basado en la

modularidad, está estructurado en tres partes fundamentales, las cuales son, una librería

estándar, un programa compilador y un procesador.

La librería estándar en el lenguaje de programación C, no es más que librerías realizadas en

código objeto y puede haber sido realizada en otro lenguaje diferente que el C, etas librerías se

deben colocar el un programa de lenguaje programación en C, en la instrucción conocida como

INCLUDE.

El programa compilador en el lenguaje de programación en C, es el que tiene como función

traducir las instrucciones del programa fuente en C al lenguaje conocido por las computadoras,

el llamado lenguaje maquina, el compilador, depura y detecta los posibles errores en el lenguaje

fuente, y es capaz de notificar el error ocurrido al programador, mediante un mensaje de texto.

En el lenguaje de programación en C, el preprocesador es un componente perteneciente

propiamente al lenguaje C, el cual transforma el programa fuente traduciendo cada instrucción

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

38

del programa fuente, de la siguiente forma: Elimina los comentarios colocados por el

programador, incluye en el programa fuente el contenido de los archivos que se encuentran

declarados en el INCLUDE, a estos archivos se le suele llamar cabeceras, y por último,

sustituye los valores de las constantes declaradas en él define, por su flexibilidad y por ser un

lenguaje de alto nivel, es empleado por muchos programadores.

3.3 EL LENGUAJE ENSAMBLADOR

Los traductores se pueden dividir a grandes rasgos en dos grupos, según la relación que haya

entre el lenguaje fuente y el objeto. Cuando el lenguaje fuente es, en esencia, una

representación simbólica de un lenguaje numérico de máquina, el traductor se llama

ensamblador y el lenguaje fuente se llama lenguaje ensamblador. Cuando el lenguaje fuente es

un lenguaje de alto nivel como el C o Pascal, y el lenguaje objeto es un lenguaje de máquina

numérico o una representación simbólica de uno de ellos, el traductor se llama compilador.

Un lenguaje ensamblador puro es aquel en que cada sentencia produce exactamente una

instrucción máquina. En otras palabras, hay una correspondencia biunívoca entre las

instrucciones de máquina y las sentencias del programa en ensamblador. Si cada línea de un

programa en ensamblador contuviera una sentencia ensamblador y si cada palabra de máquina

contuviera una instrucción de máquina, entonces un programa de n líneas escrito en

ensamblador produciría un programa en lenguaje de máquina que ocuparía n palabras.

La razón por la que se usa el lenguaje ensamblador en lugar de programar el lenguaje máquina

(octal o hexadecimal) consiste en que es mucho más fácil programar en ensamblador. Es muy

diferente usar nombres y direcciones simbólicas que hacerlo en binario u octal. La mayoría de la

gente puede recordar que las abreviaturas para la adición, la sustracción, la multiplicación y la

división son ADD, SUB, MUL y DIV, pero pocos pueden recordar que las instrucciones máquina

son 24576, 57344, 28672 y 29184. El programador en lenguaje ensamblador sólo tiene que

recordar los nombres simbólicos ADD, SUB, MUL, DIV, ya que el ensamblador los traduce a las

instrucciones máquina. Por el contrario, el programador en lenguaje máquina debe recordar, o

consultar constantemente, los valores numéricos.

En cuanto a las direcciones, el programador en lenguaje ensamblador puede dar nombres

simbólicos a las posiciones de memoria y dejarle al ensamblador la tarea de suministrar los

valores numéricos correctos. El programador en lenguaje máquina debe trabajar siempre con

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

39

los valores numéricos de las direcciones. En consecuencia, nadie programa hoy en día en

lenguaje máquina, aunque se hacia hace años, antes de que se inventaran los ensambladores.

Los lenguajes ensambladores tienen otra propiedad, además de la correspondencia uno a uno

entre las sentencias en ensamblador y las instrucciones máquina, que los distngue de los

lenguajes de alto nivel. El programador en ensamblador tiene acceso a todos los recursos e

instrucciones de la máquina a la que se aplica, pero no el programador en un lenguaje de alto

nivel. Por ejemplo si la máquina tiene un indicador de desbordamiento, el programador en

lenguaje ensamblador puede examinarlo; uno en Pascal no puede hacerlo directamente. Es

decir, que todo lo que puede hacerse en lenguaje máquina puede hacerse también en lenguaje

ensamblador, pero muchas instrucciones, registros y otras cosas por el estilo no están

disponibles para que el programador en lenguaje de alto nivel las use. Los lenguajes para la

programación de sistemas suelen ser un híbrido entre ambos tipos, con la sintaxis de un

lenguaje de alto nivel pero con las posibilidades de acceso a la máquina de un lenguaje

ensamblador.

Una diferencia final, consiste en que un programa en lenguaje ensamblador sólo puede correr

en una familia de máquinas, mientras que un programa escrito en lenguaje de alto nivel puede,

en potencia, correr en muchas máquinas. La habilidad de poder mover software de una

máquina a otra, resulta de gran importancia práctica para muchas aplicaciones. [9]

3.4 ENTORNOS DE PROGRAMACION CON LA FAMILIA MSP430 DE TEXAS

INSTRUMENTS

Texas Instruments ofrece consejos para experimentar el hardware que soportan grandes y

pequeñas fichas de MSP430. TI también proporciona herramientas de desarrollo de software,

tanto de forma directa, y en conjunto con los socios. Uno de ellos es la cadena de herramientas

IAR C/C + + compilador y entorno de desarrollo integrado o IDE.

Una edición Kickstart se puede descargar de forma gratuita en TI o IAR, sino que se limita a 8

KB de C/C + + código en el compilador y depurador.

TI también combina una versión de su propio compilador y herramientas con su Eclipse Code

Composer Studio IDE basado. Se vende versiones con todas las funciones, y ofrece una

versión gratuita para su descarga, que tiene un límite de tamaño de código de 16 KB. CCS

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

40

soporta emuladores en circuito, e incluye un simulador y otras herramientas, sino que también

puede funcionar con otros procesadores vendidos por TI.

3.5 EL CODE COMPOSER STUDIO (CCS) PARA MSP430

DESCRIPCIÓN

Code Composer Studio ™ (CCStudio) es un entorno de desarrollo integrado (IDE) de Texas

Instruments (TI) incrustado familias de procesadores. CCStudio comprende un conjunto de

herramientas utilizadas para desarrollar y depurar aplicaciones embebidas. Incluye

compiladores para cada una de las familias de TI del dispositivo, el editor de código fuente,

proyecto de entorno de compilación, depurador, profiler, simuladores, sistema operativo en

tiempo real y muchas otras características. El IDE intuitiva proporciona una única interfaz de

usuario que le llevará a través de cada paso del flujo de desarrollo de

aplicaciones. Herramientas e interfaces familiares permiten a los usuarios para empezar más

rápido que nunca antes y agregar funcionalidad a sus aplicaciones gracias a sofisticadas

herramientas de productividad.

Code Composer Studio está basado en la plataforma de software de código abierto Eclipse. El

marco de software Eclipse fue desarrollado originalmente como un marco abierto para la

creación de herramientas de desarrollo. Eclipse ofrece un marco excelente software para la

creación de entornos de desarrollo de software y se está convirtiendo en un marco estándar

utilizado por muchos vendedores de software embebido.CCStudio combina las ventajas de la

plataforma de software Eclipse con funciones de depuración integradas avanzadas de TI que

resulta en un entorno de desarrollo rico en características de peso para desarrolladores de

sistemas integrados.

Code Composer Studio permite ejecutar tanto en PC Windows y Linux. No todas las funciones o

dispositivos son compatibles con Linux consulte Soporte de Hosting Linux para más detalles.

CARACTERISTICAS

Hay muchas características incluidas en el Code Composer Studio IDE. Las siguientes son

algunas de las características clave que pueden ser de su interés.

Explorador de recursos.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

41

El Explorador de recursos proporciona un acceso rápido a las tareas comunes como la creación

de nuevos proyectos, así como permitir a los usuarios navegar a través de extensos ejemplos

proporcionados como parte de controlSUITE ™, StellarisWare y otros.

Grace ™ - periféricos de generación de código

Grace es una característica de Code Composer Studio que permite a los usuarios generar

MSP430 conjunto de periféricos hasta el código en cuestión de minutos. El código generado es

completamente comentado y fácil de leer código C.

SYS / BIOS

SYS / BIOS es un sistema operativo avanzado, en tiempo real para su uso en una amplia gama

de procesadores TI digitales de señal (DSP), microprocesadores ARM, y los

microcontroladores. Está diseñado para su uso en aplicaciones embebidas que necesitan

programación en tiempo real, la sincronización, y la instrumentación. Proporciona multitarea

preventiva, la abstracción del hardware y la gestión de memoria. SYS / BIOS es libre de

regalías y se incluye con Code Composer Studio.

Compilador

Code Composer Studio incluye C / C + + compiladores adaptado para las arquitecturas de

dispositivos integrados de TI. Los compiladores de C6000 y C5000 ™ ™ dispositivos

procesadores de señales digitales sacar el máximo partido del potencial de rendimiento de gran

alcance de esas arquitecturas.Compiladores para la TI ARM ® y microcontroladores MSP430,

sin sacrificar el rendimiento total, son más sensibles a las necesidades de tamaño de código de

los dominios de aplicación. El compilador para tiempo real C2000 ™ microcontroladores de TI

tiene la mejor ventaja de las muchas prestaciones y características de tamaño de código

disponibles en esta arquitectura.

La Ley de Control de acelerador (CLA) C-compilador también es compatible con CCSv4 y

CCSv5. Para obtener más información sobre el CLA-C Compiler, por favor haga clic aquí .

Soporte para C + + no podría ser mejor, sobre todo ahora que EABI está lanzando. EABI

(interfaz de aplicación binaria extendido) es un moderno conjunto de normas para la

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

42

organización de compilador de código generado. Normas eabi incluyen el formato de archivo de

objeto ELF, el mismo formato usado en Linux. Los niveles más altos de programación

disponible sólo en C + +, a través de plantillas y la función in-guarnición, ver una gran mejora

debido a la EABI. Apoyo EABI está actualmente disponible para ARM, C6000 DSP MSP430 y

compiladores, y pronto estará disponible en los otros compiladores TI.

OPCIONES DE LICENCIA

Hay varias opciones de licencia para el Code Composer Studio:

Evaluación - sin límite de licencias limitadas que pueden ser utilizados para la evaluación

herramientas y dispositivos de TI.

Nodo bloqueado - una licencia que está ligado a un equipo específico.

Flotante - licencias que se pueden compartir entre varios equipos.

Código de tamaño limitado - código de calibre licencia limitada 16KB libre para MSP430.

[10]

El Code Composer Studio dispone de una licencia gratuita que llega justo a los 16 kBytes de

Flash del microcontrolador MSP430G2553 incluido en los últimos Launchpad de versión 1.5. De

hecho, actualmente, no hay ningún microcontrolador dentro de la serie value line de la familia

MSP430 que tenga más de 16kBytes de Flash.

Por tanto, en rigor, no es necesario hacer nada de lo que viene a continuación para trabajar con

el Launchpad. No obstante la opción propuesta tiene otras ventajas:

Pude emplearse para compilar programas para otros microcontroladores de la familia

MSP430 que soportan más de 16kB de Flash.

Se trata de un entorno basado en Eclipse, lo cual es muy práctico para los que ya

conocen este entorno de programación, a parte de la calidad que tiene el entorno

Eclipse en si mismo.

Usar el entorno Eclipse para todos los procesadores con que uno trabaja evita la

necesidad de aprender distintos entornos de programación propietarios.

Se trata de un entorno portable. Esto es, se puede mover de un ordenador a otro en un

pendrive o en un disco duro portátil.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

43

Desgraciadamente también hay un par de inconvenientes:

Los ejemplos que proporciona Texas Instruments, y muchos ejemplos disponibles en

internet, se han realizado para los dos entornos preferidos IAR Embedded

Workbench o Code Composer Studio. Es por ello que normalmente tendrán que

hacerse algunas modificaciones en el código para que compile usando las herramientas

propuestas. Eso incluye, especialmente, el procedimiento de definición de las Rutinas de

Servicio de Interrupcion.

Para depurar programas, o cargarlos en la placa Launchpad, son necesarios los drivers

USB de la placa y un par de ficheros DLL se soporte.

3.6 COMO CREAR UN PROYECTO CON CODE COMPOSER STUDIO

Nos vamos a Development Tools

Nos aparecerá de un lado el Launch Pad (MSP-EXP430G2) y la placa MSP-EXP430FR5739.

Del lado derecho se despliega un menú con los dispositivos con los cuales uno puede trabajar

además de venir ejemplos que nos pueden ayudar a aprender de mejor manera el entorno de

CCS (Code Composer Studio).

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

44

Aparecerá una pantalla como la siguiente.

Le damos nombre seleccionamos en family MSP430, en variante elegimos MSP430G2231 y

posteriormente elegimos en Project templates and examples seleccionamos Empty Project

(with main.c) y damos finish.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

45

Te puedes meter en Proyect Explorer, dar click al proyecto, habrá un apartado que dice

Includes darle click y buscar el modelo del dispositivo que se este utilizando en este caso es un

MSP430G2231 nos vendrá como configurar los periféricos del dispositivo.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

46

“PROGRAMA PARA PRENDER Y APAGAR LEDS DE LA PLACA MSP-EXP430G2”

#include <msp430g2553.h> // Indicar que tipo de µc se esta trabajando void main (void) { volatile unsigned int i=0; WDTCTL = WDTPW | WDTHOLD; //Evita que se reinicie el µc P1DIR=0x41; // Selecciona la dirección del pin E/S sin tomar en cuenta la función P1OUT=0X01; for(;;){ i=10000; do(i--); while(i!=0); P1OUT^=0X41; }}

Para compilarlo vamos a Project y seleccionamos Build Project o seleccionamos para

compilarlo, después de la compilación vamos a la imagen para asi poder correr el programa

de nuestra LaunchPad.

Fig. 3.1 LaunchPad prende LED.

DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN UN MICROCONTROLADOR DE ULTRA-BAJO CONSUMO DE ENERGÍA

CAPÍTULO

4 SERVOACTUADORES

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

47

CAPITULO 4

4.1 CONCEPTO Y DEFINICION DE SERVOACTUADOR

DEFINCION ACTUADOR.

Un ACTUADOR “dispositivo que convierte una magnitud eléctrica en una salida, generalmente

mecánica, que puede provocar un efecto sobre el proceso automatizado”.El actuador mas

común es el actuador manual o humano. Es decir, una persona mueve o actúa un dispositivo

para promover su funcionamiento.Con el tiempo, se hizo conveniente automatizar la actuación

de dispositivos, por lo que diferentes dispositivos hicieron su aparición. Actualmente hay

básicamente dos tipos de actuadores.

• Lineales

• Rotatorios

Los actuadores lineales generan una fuerza en línea recta, tal como haría un pistón. Los

actuadores rotatorios generan una fuerza rotatoria, como lo haría un motor eléctrico. En este

artículo nos concentraremos en los actuadores rotatorios.

Como ya se mencionó, hay tres tipos de actuadores:

• Neumáticos

• Eléctricos

• Hidráulicos

4.2 CARACTERÍSTICAS Y ARQUITECTURA DE SERVOACTUADOR

Funcionamiento del actuador Rotatorio

El objetivo final del actuador rotatorio es generar un movimiento giratorio. El movimiento debe

estar limitado a un ángulo máximo de rotación. Normalmente se habla de actuadores de cuarto

de vuelta, o 90º; fracción de vuelta para ángulos diferentes a 90º, por ejemplo 180º. La variable

básica a tomar en cuenta en un actuador rotatorio es el torque o par; también llamado

momento. Y es expresado en lb-in, lb-pie, N-m, etc.

Las características de los actuadores son la potencia, el control, el peso y volumen, la precisión,

la velocidad, el mantenimiento, y el costo entre otros.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

48

Los actuadores se clasifican en tres grandes grupos, de acuerdo con la energía que utilizan, la

cual puede ser de tipo neumático, Hidráulico o eléctrico.

Los actuadores son utilizados en los servomecanismos para producir el movimiento de los

elementos de los servomecanismos de acuerdo con las órdenes proporcionadas la unidad de

control, este tipo de actuadores son utilizados en la robótica empleando la energía neumática,

hidráulica o eléctrica.

Los actuadores de tipo neumáticos, son aquellos que utilizan el aire comprimido como fuente

de energía, en ellos, la fuente de energía es aire comprimido entre 5 y 10 bar, y tienen gran

aplicación en el control de movimientos rápidos, pero de precisión limitada, como podría ser en

los aparatos de rehabilitación física.

Actuadores Hidrulicos, son recomendados en los manipuladores que tienen una gran

capacidad de carga, junto a una precisa regulación de velocidad. Este tipo de actuadores

utilizan aceites minerales a una presión comprendida entre los 50 y 100 bar, y que en ocasiones

puede llegar a superar los 300 bar. Su diferencia estriba en el grado de comprensibilidad de los

aceites utilizados es menor al del aire, por lo que la precisión obtenida en este caso es mayor,

debido a esto, resulta más fácil en ellos lograr un control continuo, pudiendo posicionar su eje

en todo un rango de valores con una notable precisión.

Actuadores Eléctricos Este tipo de actuadores, son los más usados en la actualidad debido a

su facilidad de control. En este caso, se utiliza en el propio motor un sensor de posición

(Encoder) para poder realizar su control. [11]

4.3 SERVOACTUADOR DE MODELISMO

El servo es un potente dispositivo que dispone en su interior de un pequeño motor con un

reductor de velocidad y multiplicador de fuerza, también dispone de un circuito que controla el

sistema. El ángulo de giro del eje es de 180º en la mayoría de ellos, pero puede ser fácilmente

modificado para tener un giro libre de 360º, como un motor standard. El motor servo es el

encargado de dar movilidad al robot.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

49

Figura 4.0 SERVOACTUADOR

Para controlar un servo se debe aplicar un pulso de duración y frecuencia específicos. Todos

los servos disponen de tres cables, dos para alimentación Vcc y Gnd (4.8 a 6 ) y un tercero para

aplicar el tren de pulsos de control, que hace que el circuito de control diferencial interno ponga

el servo en la posición indicada, dependiendo del ancho del pulso. En la figura 4.2 es posible

apreciar ejemplos del posicionamiento del eje del servo dependiendo del ancho del pulso,

donde se logra 0º, 90º y 180º con anchos de pulso de 0.5, 1.5 y 2.5 [ms] respectivamente.

Figura 4.1 Ejemplos de posicionamiento de un servo. [12]

Los servomecanismos tienen internamente una serie de componentes que en conjunto

caracterizan su funcionamiento. Estos son: circuito de control, potenciómetro interno y el tope

mecánico en el eje de salida. Según se modifquen, se pueden obtener diferentes

comportamientos. A continuación se enumeran dichos componentes y las características que se

añaden o se eliminan:

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

50

Figura 4.2 Componentes de un servomotor de modelismo.

1. Con Control: El circuito de control se encarga de recibir la modulación tipo pulsos y

ordenar al motor situarse en una posición relacionada con la anchura del pulso recibido.

Para ello es necesario que esté el potenciómetro. Si éste no se encuentra, el circuito de

control sólo puede mover el eje del motor hacia la izquierda o hacia la derecha. Esta

característica se puede emplear para evitar usar etapas de potencia para mover el

motor, el inconveniente es que se manejan señales de control más complicadas.

2. Sin control: Al quitar el circuito de control se tendrá que usar un circuito de potencia

externo, pero ahora la señal de control será más sencilla, no será obligatorio generar

modulación. Otros inconvenientes se encuentran a la hora de cerrar el bucle. Para ello

es necesario utilizar el potenciómetro pero el valor de éste hay que procesarlo con un

circuito exterior.

3. Con potenciómetro: Establece un tipo de tope mecánico. Con él se pueden realizar

bucles cerrados de control. Cuando se tiene el circuito de control el bucle se cerrará

internamente. Esto es muy útil en aeromodelismo, ya que, por control remoto indicamos

la posición que debe tomar el eje y el propio servomotor se encarga de buscarla y

posicionar su eje en ella. De esa forma, no hay que transmitir datos desde el avión hasta

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

51

el mando de control remoto. Si no hay circuito de control el bucle se tendrá que cerrar

externamente.

4. Sin potenciómetro: Se elimina el primer tope mecánico y la posibilidad de cerrar el

bucle. Si se mantiene el circuito de control se puede realizar un control izquierda-

derecha en bucle abierto por medio de los pulsos, evitando poner un circuito de potencia

externo.

5. Con topes mecánicos: Sólo se tienen giros limitados, su aplicación es muy útil en

brazos robots, pinzas, manipuladores, mecanismos ON/OFF, aeromodelismo, etc..

6. Sin topes mecánicos: Se eliminará el tope del rodamiento y el potenciómetro, por lo

tanto se pierde la posibilidad de cerrar el bucle internamente. [13]

DAR ANGULO DESEADO AL SERVO MOTOR

El cable de control se usa para comunicar el ángulo. El ángulo está determinado por la duración

de un pulso que se aplica al alambre de control. El servo espera ver un pulso cada 20

milisegundos (.02 segundos). La longitud del pulso determinará los giros de motor. Un pulso de

1.5 ms., por ejemplo, hará que el motor se torne a la posición de 90 grados (llamado la posición

neutra). Si el pulso es menor de 1.5 ms., entonces el motor se acercará a los 0 grados. Si el

pulso es mayor de 1.5ms, el eje se acercará a los 180 grados.

Como se observa en la figura, la duración del pulso indica o dictamina el ángulo del eje

(mostrado como un círculo verde con flecha). Nótese que las ilustraciones y los tiempos reales

dependen del fabricante de motor, sin embargo, el principio es el mismo. [14]

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

52

Figura 4.3

4.4 FUNCION DE TRANSFERENCIA DE SERVOS DE MODELISMO

Un sistema de control esta formado por subsistemas y procesos (o Planta) unidos con el fin de

controlar las salidas de los procesos. Una ventaja que presentan los sistemas de control es

poder mover equipos grandes con una precisión que de otra forma seria imposible. [15]

En general se controlan variables como la temperatura de los sistemas térmicos; la posición y la

velocidad de los sistemas mecánicos y voltaje, corriente o frecuencia de los sistemas eléctricos.

En la actualidad los sistemas de control tienen uso general en el agua, navegación y control de

proyectiles, naves espaciales asi como también en aviones y barcos.

La función de cualquier sistema de control es el de regular automáticamente la salida y

guardarla en el valor deseado. Como se explica en el diagrama de bloque anterior el valor

deseado es la entrada al sistema. Si la entrada se cambia, la salida debe responder y cambiar y

ajustarse al nuevo valor. Si ocurre un disturbio en la salida, sin ningún cambio en la entrada, la

salida debe retomar el valor correcto.

Alguna información en algun sistema puede ser representado como un bloque simple. En

términos generales la entrada se designara como θi y la salida θo.

Se presenta la función de transferencia de un Servo “Futaba S-148 Linear Servo” [16]:

95040

9502

ss

nsferenciaFunciónTra

Fig. 4.4 Respuesta de la funcion de transferencia.

Nos relaciona la salida de un sistema con su entrada, en este caso la respuesta que tiene el servo a un estímulo que recibe, a

continuación vemos la respuesta que nos da:

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

54

4.5 SISTEMAS DE LAZO ABIERTO

Un sistema sin regulacion es llamado un sistema de lazo abierto. Vamos a tomar un servo-

motor como un ejemplo. La velocidad del servo depende del voltaje y la corriente suministrada

en el. Un sistema típico puede utilizar un potenciómentro que hace girar un ángulo (θi entrada)

para producir un voltaje (V) y esto es amplificado con un amplificador de potencia produciendo

energía eléctrica (P) que conduce la velocidad del motor(N salida).

El diagrama de bloques se muestra como:

Consideremos el ejemplo del servo nuevamente. Suponer que el motor lleva una carga, y que la

carga de repente se incrementa, esto hara que el motor sea mas lento, ya que no habría

suficiente energía para mantenerlo a la velocidad original. Nosotros ahora tendríamos un error

entre la velocidad seleccionada con el potenciómetro y la velocidad actual del motor. Para que

la velocidad sea de nuevo el valor correcto, tenemos que subir la potencia esto lo hacemos de

forma automática, nosotros necesitamos un sistema de lazo cerrado. Los sistemas de lazo

abierto son incapaces de mantener una salida correcta en todo menos en los casos mas

simples.

A continuación algunos ejemlos de control en lazo abierto.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

55

Entrada Modelo Salida

Dinamica del

vehículo

Ángulo del acelerador Rendimiento del motor RPM

Presión en el pedal del freno

Sistema de freno Desaceleración

Economía

Mejora del producto Base de clientes Participación del mercado

Politica de impuestos Comportamiento del cliente

GDP(Gross Domestic Product) Crecimiento

del Producto Domestico

Medicina

Operación Fisiolodía Resultado clínico

Vacuna Bioquímica/Inmunología Inmunidad de la enfermedad

Deportes Swing de golf Dinámica de proyectiles balísticos

Posición de la bola

Tabla 4.0 Ejemplos de lazo abierto.

4.6 CONTROL BASICO DE LAZO CERRADO

Vamos a considerar de nuevo el ejemplo del servo motor. Nosostros deseamos controlar el

angulo del eje θo. La entrada del potenciómetro produce un voltaje Vi y la salida del

potenciómetro produce un voltaje Vo para representar el ángulo del eje. Si los 2 voltajes son

iguales el eje se encuentra en el angulo correcto. Por el contrario si hay un error los voltajes son

diferentes. El amplificador diferencial actua como un dispositivo sumador y produce un voltaje

Ve representando el error.

El error es suministrado al amplificador de potencia y la energía es enviada al motor y gira en la

dirección del ángulo correcto cuando las tensiones se igualan el error es cero y se deja de

suministrar energía al motor. El error en cualquiera de las direcciones puede ser corregida si el

amplificador de energía es capaz de producir una corriente positiva o negativa.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

56

Tenga en cuenta como el voltaje del potenciómetro de salida se alimenta de nuevo al dispostivo

del sumador de manera que el error es Ve=Vi-Vo. Esto es una retrtoalimentación negativa y esto

es esencial para que el sistema responda al error. [17]

A continuación unos ejemplos de lazo cerrado:

Sistema Entrada Controlador Salida Medición

Control direccional de aeronaves de gran tamaño

joystick Microprocesador Ángulo del

aleron Posición angular

encoder

Freno por cable ángulo del pedal

del freno Microprocesador

Freno de presión hidráulica

Acelerómetro (+ sensores en las

ruedas)

Aula Concepto que se

les enseñe Profesor

Comprensión del estudiante

Numero de espacios en

blanco, nivel de ruido

Ducha termostática

Marcar temperatura

Vavulas mecanicas

Temperatura del agua

Temperatura del sensor (sin

valvula)

Neumáticos de bicicleta

Presión requerida para trazar/marcar

Ciclista con bomba

Presión actual en llantas

Manómetro, o un dedo o pulgar

Tabla 4.1 Ejemplos de Lazo Cerrado.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

57

4.7 TIPOS DE SEÑALES

SEÑAL ELECTRICA.

Entenderemos por señal eléctrica a una magnitud eléctrica cuyo valor depende del tiempo. Así,

v(t) es una tensión cuya amplitud depende del tiempo e i(t) es una corriente cuya intensidad

depende del tiempo. Por lo regular se designa la palabra señal para referirse a magnitudes que

varían de alguna forma en el tiempo. Interpretaremos a las magnitudes constantes como casos

particulares de señales eléctricas.

SEÑALES CONSTANTES Y VARIANTES.

Como su nombre lo indica, las señales constantes son aquellas que no varían en el tiempo, su

representación grafica es por lo tanto una línea recta horizontal. Las señales variantes son

aquellas que cambian su valor de alguna manera con el tiempo.

Fig. 4.0 Señales constantes y variantes.

SEÑALES CONTINUAS Y ALTERNAS

Desde el punto de vista gráfico, las señales continuas son aquellas que siempre tienen el

mismo signo, es decir, son siempre positivas o nulas, o siempre negativas o nulas. En el caso

de una corriente, esto significa que la misma siempre circulará en el mismo sentido, aunque

pueda variar su intensidad. Una señal continua, puede o no puede ser constante Las señales

que están representadas en la parte de arriba son señales continuas, aunque una sea variante.

Las señales alternas son aquellas que, por el contrario a las continuas, varían el signo de su

magnitud. Una señal alterna nunca puede ser constante.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

58

Fig. 4.1 Señales Continuas y Alternas.

SEÑALES PERIÓDICAS

Las señales periódicas son aquellas a las cuales se les puede encontrar un patrón de

repetitividad, es decir, que después de un determinado tiempo, vuelve a repetirse uno a uno los

valores anteriores, una y otra vez. A este patrón se le reconoce como ciclo de onda. El tiempo

de demora un ciclo en desarrollarse se denomina periodo, y se mide en segundos.

Se denomina frecuencia de la señal a la cantidad de ciclos que pueden desarrollarse en un

segundo. Se miden en ciclos por segundo o Hertz (Hz). La relación existente entre la frecuencia

y el periodo de una señal es:

Tf

1

Fig. 4.2 Señales Periódicas.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

59

CARACTERISTICAS PARTICULARES DE LAS SEÑALES PERIODICAS.

Se pueden definir otros parámetros que identifican a una señal periódica:

Amplitud de pico: Es el valor máximo que tiene una señal, considerada desde el valor

cero.

Amplitud pico a pico: Es la diferencia entre el valor máximo y el valor mínimo de una

señal.

Valor eficaz: Es el valor equivalente al de una señal continua constante capaz de

desarrollar la misma potencia que la señal periódica.

Valor medio: Es el promedio de todos los valores de una señal tomados en un ciclo.

Para señales simétricas como la senoidal, el valor medio es nulo.

Fig. 4.3 Señal Periodica Senoidal.

Desfasaje: Cuando una señal es comparada con una referencia (por ejemplo otra señal), es

posible observar un corrimiento horizontal; se denomina ángulo de desfasaje o simplemente

desfasaje.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

60

Fig. 4.4 Señal desfasada.

SEÑALES DE PRUEBA (Señal senoidal).

La señal senoidal es la más común de las señales de prueba. A esta señal se le puede atribuir

una doble simetría: una respecto al eje tiempo, y otra respecto al punto medio de la onda

(simetría impar).

SEÑAL RECTANGULAR Y CUADRADA.

Es muy utilizada paa realizar determinadas mediciones e implementar controles en sistemas de

conmutación. Se caracteriza por tener solamente 2 valores posibles. Se le puede definir

amplitud, período, frecuencia y desfasaje. [18]

Fig.4.5 Señal Cuadrada.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

61

Se pueden clasificar en 2 tipos de señales:

Señales analógicas: Pueden ser representadas mediante funciones que toman un

número infinito de valores en cualquier intervalo de tiempo considerado. Cuando estos

límites coinciden con los límites que admite un determinado dispositivo, se dice que la

señal está normalizada. La ventaja de trabajar con señales normalizadas es que se

aprovecha mejor la relación señal/ruido del dispositivo. Para transmitir señales

analógicas se emplean sistemas de transmisión analógicos, y la información va

contenida en la propia forma de onda.

Señales digitales: Son variables eléctricas con dos niveles bien diferenciados que se

alternan en el tiempo transmitiendo información según un código previamente acordado.

Cada nivel eléctrico representa uno de dos símbolos: 0 ó 1, V o F, etc.

Los niveles específicos dependen del tipo de dispositivos utilizado. Por ejemplo si se

emplean componentes de la familia lógica TTL (transistor-transistor-logic) los niveles son

0 V y 5 V, aunque cualquier valor por debajo de 0,8 V es correctamente interpretado

como un 0 y cualquier valor por encima de 2 V es interpretado como un 1 (los niveles de

salida están por debajo de 0,4 V y por encima de 2,4 V respectivamente). En el caso de

la familia CMOS (complementary metal-oxide-semiconductor), los valores dependen de

la alimentación.

Para alimentación de +5 V, los valores ideales son también 0 V y 5 V, pero se reconoce

un 0 hasta 2,25 V y un 1 a partir de 2,75 V.Pueden ser representadas mediante

funciones que toman un número finito de valores en cualquier intervalo de tiempo.

Las señales digitales necesitarán sistemas de transmisión digitales donde la información

estará contenida en los pulsos codificados, y no en la forma de onda.

Existen fuentes de información que generan señales típicamente analógicas, como la voz y

otras digitales como las computadoras, pero en ambos casos es posible transmitir la señal tanto

en analógico como en digital.

Las señales que no sufren ningún proceso de modulación ni desplazamiento en frecuencia, se

denominan señales en banda base. En el caso de las señales digitales se denominan códigos

en banda base o códigos de línea.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

62

La representación en frecuencia de una señal muestra cómo se distribuye la energía de la señal

entre las distintas senoides que la componen. Una señal analógica, en general, estará

compuesta por suma de muchas, posiblemente infinitas, señales senoidales de distintas

frecuencias, por lo que:

Fig. 4.6 Representación en frecuencia.

Para señales digitales el espectro en frecuencia también variará en función del código de línea

utilizado. De forma general, las señales digitales se basan en la forma de onda cuadrada, cuya

representación en frecuencia se muestra en la siguiente gráfica. [19]

4.8 MODULACIÓN POR PULSOS

En la modulación de pulsos, lo que se varía es alguno de los parámetros de un tren de pulsos

uniformes, bien sea su amplitud, duración o posición. En este tipo de modulación se distinguen

dos clases: modulación analógica de pulsos, en que la información se transmite básicamente en

forma analógica, pero la transmisión tiene lugar a intervalos discretos de tiempo y modulación

digital de pulsos en que la señal de información es discreta, tanto en amplitud como en tiempo,

permitiendo la transmisión digital como una secuencia de pulsos codificados, todos de la misma

amplitud. Este tipo de transmisión no tiene contraparte en los sistemas de onda continua. En la

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

63

modulación digital, la señal de información es un flujo binario compuesto por señales binarias,

es decir cuyos niveles de voltaje sólo son dos y corresponden a ceros y unos. En la modulación

analógica de pulsos, la señal no necesariamente es de dos niveles, sino que el nivel de la señal

puede tener cualquier valor real, si bien la señal es discreta, en el sentido de que se presenta a

intervalos definidos de tiempo, con amplitudes, frecuencias, o anchos de pulso variables. Los

esquemas de modulación de pulsos son varios, los más importantes:

• Modulación por amplitud de pulsos (PAM).

• Modulación por duración o anchura de pulsos (PWM o PDM).

• Modulación por posición de pulsos (PPM).

• Modulación por codificación de pulsos (PCM)

MODULACIÓN POR AMPLITUD DE PULSOS

Este tipo de modulación es la consecuencia inmediata del muestreo de una señal analógica. Si

una señal analógica, por ejemplo de voz, se muestrea a intervalos regulares, en lugar de tener

una serie de valores continuos, se tendrán valores discretos a intervalos específicos,

determinados por la, que debe ser como mínimo del doble de la frecuencia máxima de la señal

muestreada.

Fig. 4.7 Muestreo de una señal analogical.

En la figura anterior, una señal analógica (a), se multiplica, por ejemplo mediante un mezclador,

por un tren de pulsos (b), de amplitud constante y se tiene como resultado un tren de pulsos (c)

modulado en amplitud. La envolvente de este tren de pulsos modulados se corresponde con la

señal analógica. Para recuperar ésta, basta con filtrar a paso bajo el tren de pulsos (c).

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

64

Fig. 4.8 Recuperación de una señal PAM.

La transmisión de las señales moduladas por amplitud de pulsos impone condiciones severas

respecto a las respuestas en magnitud y fase del sistema, a causa de la corta duración de los

pulsos. Por otra parte, el comportamiento de un sistema PAM respecto al ruido nunca puede ser

superior al de transmisión en banda base. Sin embargo, la modulación por amplitud de pulsos

es el primer paso indispensable en la conversión de señales analógicas a digitales,

entendiéndose aquí por señal digital aquélla que solamente tiene dos niveles. La señal PAM es

una señal discreta, no necesariamente digital.

TIPOS DE MODULACIONES ANALÓGICAS DE PULSOS Además de la modulación por amplitud de pulsos, pueden variarse otros parámetros del tren de

pulsos sin modulación: la duración de los pulsos y su posición relativa.

Modulación por duración o anchura de pulsos (PWM1 o PDM2). En este caso, las muestras

de la señal se emplean para variar la anchura o duración de los pulsos. Aunque no es muy

utilizado, en la actualidad se emplea en transmisores modulados en amplitud, en que la

modulación se realiza primero en esta forma. Esta técnica permite aumentar la eficiencia del

transmisor.

Modulación por posición de pulsos. En este caso, la señal moduladora produce un

desplazamiento de los pulsos respecto a la posición de éstos en ausencia de modulación.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

65

Fig. 4.9 Modulaciones por duración y posición de pulsos.

MODULACIÓN POR CODIFICACIÓN DE PULSOS (PCM)

Este tipo de modulación, sin duda la más utilizada de todas las modulaciones de pulsos es,

básicamente, el método de conversión de señales analógicas a digitales (CAD). PCM siempre

conlleva modulación previa de amplitud de pulsos. Una señal analógica se caracteriza por el

hecho de que su amplitud puede tomar cualquier valor entre un mínimo y un máximo, de forma

continua. Una señal PAM también puede tener cualquier valor, pero en intervalos discretos.

Esto significa que el posible número de valores de amplitud es infinito. Por otra parte, la

amplitud de una señal digital sólo puede tener un número finito de valores, por lo general dos

(cero y uno). Una señal analógica puede convertirse a digital mediante un proceso de muestreo

y cuantificación. El muestreo la convierte en una señal PAM, la cuantificación redondea el valor

de la amplitud al número permisible más cercano, generalmente en el intervalo (0, 2n) y lo

codifica en un cierto número de bits. En realidad, no es estrictamente necesario transmitir con

toda exactitud las amplitudes de las muestras. En el caso de señales de voz o de imagen, el

receptor último es el oído o el ojo, que detectan sólo diferencias finitas, de modo que la señal

original continua, puede aproximarse por una señal formada por un conjunto de amplitudes

discretas seleccionadas de forma tal que el error sea mínimo. [20]

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

66

GENERACION DE UNA SEÑAL POR MEDIO DEL MICROCONTROLADOR DE TEXAS

Es muy sencillo de realizar, pero a la vez nos permite hacer muchas cosas diferentes, desde

cambiar el brillo de una bombilla hasta ajustar la velocidad de un motor. Puede generar un

voltaje analógico, o incluso sintetizar sonidos, todo desde el uso del temporizador con 2

interrupciones.

La modulación por anchura de pulso, PWM (Pulse Width Modulation), es una de los sistemas

más empleados para el control de servos. Este sistema consiste en generar una onda cuadrada

en la que se varía el tiempo que el pulso está a nivel alto, manteniendo el mismo período

(normalmente), con el objetivo de modificar la posición del servo según se desee.

Para la generación de una onda PWM en un microcontrolador, lo más habitual es usar un timer

y un comparador (interrupciones asociadas), de modo que el microcontrolador quede libre para

realizar otras tareas, y la generación de la señal sea automática y más efectiva. El mecanismo

consiste en programar el timer con el ancho del pulso (el período de la señal) y al comparador

con el valor de duración del pulso a nivel alto. Cuando se produce una interrupción de overflow

del timer, la subrutina de interrupción debe poner la señal PWM a nivel alto y cuando se

produzca la interrupción del comparador, ésta debe poner la señal PWM a nivel bajo. En la

actualidad, muchos microcontroladores, como el 68HC08, disponen de hardware específico

para realizar esta tarea, eso sí, consumiendo los recursos antes mencionados (timer y

comparador).

PWM PARA RECORRER TODO EL RANGO DE OPERACIÓN DEL SERVO

El sistema de control de un servo se limita a indicar en que posición se debe situar. Esto se

lleva a cabo mediante una serie de pulsos tal que la duración del pulso indica el ángulo de giro

del motor. Cada servo tiene sus márgenes de operación, que se corresponden con el ancho del

pulso máximo y mínimo que el servo entiende. Los valores más generales se corresponden con

pulsos de entre 1 ms y 2 ms de anchura, que dejarían al motor en ambos extremos (0º y 180º).

El valor 1.5 ms indicaría la posición central o neutra (90º), mientras que otros valores del pulso

lo dejan en posiciones intermedias. Estos valores suelen ser los recomendados, sin embargo,

es posible emplear pulsos menores de 1 ms o mayores de 2 ms, pudiéndose conseguir ángulos

mayores de 180°. Si se sobrepasan los límites de movimiento del servo, éste comenzará a

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

67

emitir un zumbido, indicando que se debe cambiar la longitud del pulso. El factor limitante es el

tope del potenciómetro y los límites mecánicos constructivos.

El período entre pulso y pulso (tiempo de OFF) no es crítico, e incluso puede ser distinto entre

uno y otro pulso. Se suelen emplear valores ~ 20 ms (entre 10 ms y 30 ms). Si el intervalo entre

pulso y pulso es inferior al mínimo, puede interferir con la temporización interna del servo,

causando un zumbido, y la vibración del eje de salida. Si es mayor que el máximo, entonces el

servo pasará a estado dormido entre pulsos. Esto provoca que se mueva con intervalos

pequeños.

Es importante destacar que para que un servo se mantenga en la misma posición durante un

cierto tiempo, es necesario enviarle continuamente el pulso correspondiente. De este modo, si

existe alguna fuerza que le obligue a abandonar esta posición, intentará resistirse. Si se deja de

enviar pulsos (o el intervalo entre pulsos es mayor que el máximo) entonces el servo perderá

fuerza y dejará de intentar mantener su posición, de modo que cualquier fuerza externa podría

desplazarlo.

SEÑAL BASICA PWM

Para una onda cuadrada, la señal se enciende y apaga a intervalos regulares. Cuando usted

mira a una onda cuadrada, se ve que la señal es alta para la misma cantidad de tiempo que es

baja. Para una onda cuadrada, la longitud del pulso es la mitad de la longitud de un ciclo, por lo

que tiene un ciclo de trabajo del 50%. Una señal PWM simplemente ajusta el ciclo de servicio

mientras se mantiene la misma frecuencia de pulsos. Creamos una señal PWM utilizando dos

interrupciones en un temporizador.

Si es necesario, podemos usar la misma interrupción y ajustar cuando la interrupción se

produce en el software, pero los módulos del temporizador en el MSP430 tienen por lo menos

dos interrupciones que podemos utilizar.Una interrupción se establecerá la frecuencia global de

nuestra señal, mientras que el otro será establecer el ciclo de trabajo. [21]

Para la construcción de la plataforma se empleo seis servos VTS-05A.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

68

CODIGO PARA GENERAR LAS 6 SALIDAS PWM PARA MOVER LA PLATAFORMA:

#include "msp430g2553.h" #define MCU_CLOCK 1100000 #define PWM_FRECUENCY 50 unsigned int PWM_Period = 20000; // Periodo PWM unsigned int PWM_Duty = 0; void main (void){ WDTCTL = WDTPW + WDTHOLD; // Apagar Wachdog TA0CCTL1 = OUTMOD_7; TA1CCTL1 = OUTMOD_7; TA1CCTL2 = OUTMOD_7; // TACCR1 reset/set TA0CTL = TASSEL_2 + MC_1; TA1CTL = TASSEL_2 + MC_1; // SMCLK, modo arriba TA1CTL = TASSEL_2 + MC_1; TA0CCR0 = PWM_Period-1; // TA0CCR0 PWM periodo TA1CCR0 = PWM_Period-1; // TA1CCR0 PWM periodo TA1CCR0 = PWM_Period-1; // TA1CCR0 PWM periodo TA0CCR1 = PWM_Duty; // TA0CCR1 PWM ciclo de Trabajo TA1CCR1 = PWM_Duty; // TA1CCR1 PWM ciclo de TA1CCR2 = PWM_Duty; // TA1CCR1 PWM ciclo de trabajo P1DIR |= BIT2 + BIT6; // P1.2 y P1.6 = salida Puerto 1 P1SEL |= BIT2 + BIT6; // P1.2 y P1.6 = TA0 para salida del Timer PWM P2DIR |= BIT1 + BIT2; // P2.1 y P2.2 = salida Puerto 2 P2SEL |= BIT1 + BIT2; // P2.1 y P2.2 = TA1 para salida del Timer PWM P2DIR |= BIT4 + BIT5; // P2.4 y P2.5 = salida Puerto 2 P2SEL |= BIT4 + BIT5; // P2.4 y P2.5 = TA1 para salida del Timer PWM while(1){ TA0CCR1 = 540; // Te lleva a 0o TA1CCR1 = 1370; // Te lleva a 90o TA1CCR2 = 2300; // Te lleva a 180o __delay_cycles(1000000); // Retraso de un millón de microsegundos

TA0CCR1 = 960; TA1CCR1 = 955; TA1CCR2 = 2207; __delay_cycles(1000000); TA0CCR1 = 1380; TA1CCR1 = 1785; TA1CCR2 = 2114; __delay_cycles(1000000); TA0CCR1 = 1800; TA1CCR1 = 2300; TA1CCR2 = 2021; __delay_cycles(1000000);

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

69

TA0CCR1 = 2300; TA1CCR1 = 679; TA1CCR2 = 1928; __delay_cycles(1000000); TA0CCR1 = 2025; TA1CCR1 = 818; TA1CCR2 = 2150; __delay_cycles(1000000); TA0CCR1 = 750; TA1CCR1 = 957; TA1CCR2 = 1835; __delay_cycles(1000000); TA0CCR1 = 2090; TA1CCR1 = 1096; TA1CCR2 = 1742; __delay_cycles(1000000); TA0CCR1 = 1370; TA1CCR1 = 1235; TA1CCR2 = 1649; __delay_cycles(1000000); TA0CCR1 = 2300; TA1CCR1 = 1374; TA1CCR2 = 1556; __delay_cycles(1000000); TA0CCR1 = 540; TA1CCR1 = 1525; TA1CCR2 = 1463; __delay_cycles(1000000); TA0CCR1 = 784; TA1CCR1 = 1680; TA1CCR2 = 1370; __delay_cycles(1000000); TA0CCR1 = 1028; TA1CCR1 = 1835; TA1CCR2 = 1185; __delay_cycles(1000000); TA0CCR1 = 1990; TA1CCR1 = 1900; TA1CCR2 = 1000; __delay_cycles(1000000); TA0CCR1 = 1680; TA1CCR1 = 2145;

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

70

TA1CCR2 = 815; __delay_cycles(1000000); TA0CCR1 = 1370; TA1CCR1 = 2300; TA1CCR2 = 1232; __delay_cycles(1000000); TA0CCR1 = 1060; TA1CCR1 = 1990; TA1CCR2 = 630; __delay_cycles(1000000); TA0CCR1 = 2300; TA1CCR1 = 540; TA1CCR2 = 1370; __delay_cycles(1000000); TA0CCR1 = 1370; TA1CCR1 = 2300; TA1CCR2 = 630; __delay_cycles(1000000); TA0CCR1 = 2300; TA1CCR1 = 2300; TA1CCR2 = 2300; __delay_cycles(1500000); TA0CCR1 = 540; TA1CCR1 = 540; TA1CCR2 = 540; __delay_cycles(2375000); TA0CCR1 = 1370; TA1CCR1 = 1370; TA1CCR2 = 1370; __delay_cycles(3000000); }}

DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN UN MICROCONTROLADOR DE ULTRA-BAJO CONSUMO DE ENERGÍA

CAPÍTULO

5

DESARROLLO DE PROYECTO Y

PRUEBAS

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

71

CAPITULO 5

5.1 METODOS PARA ANALISIS Y DISEÑO DE CONTROL

Existen 2 métodos para el análisis y diseño de sistemas de control, el primero se conoce como

técnica clásica, o técnica en el dominio de frecuencia. Este método se basa en la

conversión de la ecuación diferencial de un sistema en una función de transferencia, generando

asi un modelo matematico del sistema que algebraicamente relaciona una representación de la

salida con una representación de la entrada. La sustitución de una ecuación diferencal con una

ecuación algebraica no solo simplifica el modelado de subsistemas individuales, si no también

simplifica el modelado de subsistemas interconectados.

La desventaja básica del método clásico es su limitada aplicabilidad: se puede aplicar solo a

sistemas lineales, invariantes con el tiempo o a un sistema que se puedan aproximar como

tales.

Una ventaja importante de las técnicas en el dominio de la frecuencia es que rápidamente dan

información de la estabilidad y la respuesta transitoria. Asi de inmediato podemos ver el efecto

de variar los parámetros de un sistema hasta conseguir un diseño aceptable.

Con la llegada de la exploración espacial, los requerimientos de los sistemas de control

aumentaron en alcance. El modelado de sistemas mediante el uso de ecuaciones diferenciales

lineales, invariantes con el tiempo, asi como las funciones de transferencia subsiguintes se hizo

inadecuado. El método en el espacio de estados (también conocido como método moderno

o en el dominio de tiempo) es un método unificado para modelar, analizar y diseñar una

amplia variedad de sistemas. Por ejemplo, se puede usar el método en el espacio de estados

para reresentar sistemas no lineales, pueden manejarse comodamente sistemas con

condiciones iniciales diferentes de cero. Los sistemas variantes con el tiempo (por ejemplo los

proyectiles con variantes niveles de combustible; el ascenso de un avión que vuela a diferentes

altitudes) pueden ser representados en el espacio de estados. Numerosos sistemas no tienen

solo una entrada y una salida. Los sistemas de mutiples entradas y salidas (por ejemplo, un

vehiculo con dirección de entrada y velocidad de entrada que produzca una dirección de salida

y una velocidad de salida) pueden ser representadas de manera compacta en el espacio de

estados con un modelo semejante en forma y complejidad al empleado para los sistemas de

una sola entrada y un sola salida.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

72

Un sistema lineal posee dos propiedades: superposición y homogeneidad. La propiedad de

superposición significa que la respuesta de salida a la suma de entradas es la suma de las

respuestas de las entrada individuales. Asi, si una entrada de r1(t) produce una salida de c1(t) y

una entrada de r2(t) produce una salida c2(t) entonces una entrada de r1(t)+ r2(t) produce una

salida de c1(t)+ c2(t). La propiedad de homogeniedad describe la respuesta del sistema a la

multiplicación de la entrada por un escalar. Especificamente, en un sistema lineal, la propiedad

de homogeniedad esta demostrada si para un entrada de r1(t) que produce una salida c1(t), una

entrada de Ar1(t) produce una salida de Ac1(t); esto es, la multiplicación de una entrada por un

escalar, produce una respuesta que se multiplica por el mismo escalar.

Si los sistemas fueran no linealies antes de hallar su función de tranferencia primero debemos

linealizarlo.

El primer paso es reconocer el componente no lineal y escribir la ecuación diferencial no lineal.

Cuando hacemos lineal una ecuación dferencial no lineal, lo hacemos para entrada pequeña

señal alrededor de la solución en estado estable cuando la entrada es pequeña señal es igual

a cero. Esta solución en estado estable se llama equilibrio y esta seleccionada como segundo

escalón en el proceso de linealización, a continuación hacemos lineal la ecuación diferencial no

lineal y luego tomamos la transformada de Laplace de la ecuación diferencial linealizada,

suponiendo condiciones iniciales de cero. Por ultimo separamos las variables de entrada y

salida, y formamos la función de transferencia.

Una ventaja que presentan la representación en el espacio de estados sobre la representación

de la función de transferencia es la capacidad para representar sistemas que tengan no

linealidades. La capacidad para representar sistemas no lineales no implica la capacidad de

resolver sus ecuaciones de estado para las variantes de estado y la salida. [15]

Para nuestro caso podemos ejemplicamos el control del ángulo de alabeo de un avión, se

obtinen por el uso de torque desarrollado por los alerones. Un modelo lineal del sistema de

control para un pequeño vehiculo experimental se muestra a continuación:

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

73

Donde q(t) es el flujo del fluido en un cilindro hidráulico y el objetivo es mantener un pequeño

ángulo de alabeo θ debido a las perturbaciones. Seleccionar una ganancia apropiada que

reduciría el efecto de la perturbación mientras se alcanza una respuesta transitoria deseable

KK1<35 G(s) esta dada por:

94

1)(

2

sssG

5.2 CONTROL DE POSICIÓN DE UN AEROPLANO

Cada vez que volamos en un avión comercial, experimentamos de primera mano los beneficios

de los sistemas de control automático. Estos sistemas ayudan a los pilotos por la mejora de la

manipulación de las cualidades de la aeronave a través de una amplia gama de condiciones de

vuelo y proporcionando al piloto alivio (para emergencias tales como ir al baño) durante los

vuelos largos. La relación especial entre vuelo y los controles se inició en los primeros trabajos

de la Hermanos Wright. Usando túneles de viento, los hermanos Wright aplicaron técnicas

sistematicas de diseño para hacer su sueño de vuelo con motor en una realidad. Este enfoque

sistemático de diseño contribuyo a su éxito.

Otro aspecto importante de su enfoque era su énfasis en controles de vuelo, los hermanos

insistieron en que la aeronave fuera piloto controlado. Observando el control de las aves su

movimiento de rotación al girar sus alas, los hermanos Wright construyeron una aeronave con

mecanismos mecanicos que retorcían sus alas del avion. Hoy en día ya no usamos deformación

del ala como un mecanismo para realizar una maniobra de giro; en cambio, el control de

movimiento rodando con alerones, como se muestra a continuación:

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

74

Fig. 5.1 El control del ángulo de balanceo de un avión con deflexiones diferencial de los

alerones.

Los hermanos Wright también usaron elevadores (ubicados hacia adelante) para el control

longitudinal (movimiento de cabeceo) y timones de control lateral (movimiento de guiñada).

Aviones de hoy siguen utilizando los dos elevadores y timones, a pesar de los elevadores se

encuentran generalmente en la cola (hacia atrás). Se produjo el primer vuelo controlado

alimentado sin ayuda, en 1903 con el Wright Flyer I (alias Kitty Hawk). El primer avión práctico,

el Flyer III, podía volar ochos y permanecer en el aire durante media hora. Control de vuelo de

tres ejes fue un mayor contribución de los hermanos Wright. Una historia concisó en el punto de

vista se presenta en Stevens y Lewis [27]. El deseo de seguir volando más rápido, más ligero y

más fomentó la evolución en el control de vuelo automático.

El desafío de hoy es desarrollar una sola etapa a la órbita de las aeronaves / naves espaciales

que puede despegar y aterrizar en una pista estándar. El tema principal es el control del

movimiento de rotación automática de un avión.

Comenzamos considerando el modelo de la dinámica lateral de un avión en movimiento a lo

largo de una trayectoria de vuelo constante alas niveladas. Por dinámica lateral, nos referimos

al movimiento actitud de la aeronave sobre la velocidad de avance. Un modelo matemático

preciso describe el movimiento (traslación y rotación) de una aeronave es un conjunto

complicado de ecuaciones diferenciales no lineales, vaiables en el tiempo. Para nuestros

propósitos, se requiere un modelo dinámico simplificado para el proceso de diseño piloto

automático. Un modelo simplificado puede consistir en una función de transferencia que

describe la relación entrada / salida entre la deflexión del alerón y el angulo de alabeo del avión.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

75

La obtención de dicha función de transferencia requeriría muchas simplificaciones prudentes a

la alta fidelidad original, modelo matemático no lineal.

Supongamos que tenemos una aeronave rígida con un plano de simetría. Se supone que el

avión que circula a Mach (<3) velocidades subsónicas o supersónicas baja. Esto permite que

hagamos una aproximación de la tierra plana. Ignoramos los efectos giroscópicos del rotor

debido a hilado de masas en la aeronave (por ejemplo, hélices o turbinas). Estos supuestos nos

permiten desacoplar el movimiento longitudinal de rotación (pitching) del lateral movimiento de

rotación (balanceo y guiñada). Por supuesto, también tenemos que considerar una linealización

de las ecuaciones no lineales de movimiento. Para lograr esto, se consideran sólo las

condiciones de vuelo en estado estacionario.

Para este ejemplo se supone que el avión está volando a baja velocidad en una constante,

actitud alas niveladas, y queremos diseñar un piloto automático para controlar el movimiento de

alabeo.

Podemos declarar el objetivo de control de la siguiente manera:

Objetivo de control: Regular el ángulo de alabeo a cero grados y mantener la orientación a

vuelo recto y nivelado en presencia de una perturbación externa impresindible. Identificando la

variable a controlar como la variable que se desea controlar ángulo de alabeo del avión

(denotado por ϕ).

El objetivo es diseñar un sistema de control de tal manera que los polos del sistema en lazo

cerrado dominantes tengan satisfactoria frecuencia propia.

Por ejemplo podríamos diseñar un sistema de control del piloto automático de un avión en vuelo

recto y nivelado para conseguir un exceso del 20% a una entrada escalón con un mínimo de

movimiento oscilatorio y tiempo de respuesta rápido (es decir, un corto período de tiempo a

pico). Después implementamos el controlador en el sistema de control de la aeronave y

realizamos pruebas o simulaciones del comportamiento de la aeronave con ordenadores de alta

fidelidad, después de lo cual los pilotos nos dicen si le gusta el rendimiento de la aeronave. Si el

rendimiento general no es satisfactoria, cambiamos la especificación de dominio de tiempo (en

este caso, una especificación de rebasamiento por ciento) y rediseñar hasta lograr una

sensación y rendimiento que los pilotos aceptaran (y en última instancia, pasajeros). A pesar de

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

76

la simplicidad de este enfoque y de muchos años investigación, las especificaciones de diseño

de sistemas precisos de control que proporcionan las características aceptables de vuelo en

todos los casos aun no están disponibles [27].

Las especificaciones de diseño de control que figuran en este ejemplo puede parecer un tanto

artificial. En realidad, las especificaciones serían mucho más implicados y, en muchos formas,

conocidas con menor precisión.

Especificaciones para el diseño de control

Especificación de diseño1 Porcentaje de sobrecarga de menos de 20% para una entrada

escalón unitario.

Especificación de diseño 2 Rápido tiempo de respuesta, medido por el tiempo a pico.

Al hacer los supuestos simplificadores descritos anteriormente y linealizar alrededor de la

condición de vuelo recto y nivelado, podemos obtener un modelo de función de transferencia

que describa el ángulo de salida de alabeo, ϕ(s), para la entrada de deflección del alerón, ζn(s).

La función de transferencia tiene la forma:

(1)

El movimiento lateral (alabeo / guiñada) tiene tres modos: modo balanceo holandés (Dutch roll),

divergencia en espiral, y divergencia direccional.

El modo balanceo holandes, que recibe su nombre de sus similitudes con el movimiento de un

patinador de velocidad de hielo, se caracteriza por un movimiento de alabeo/guiñada. El centro

de masa del avión sigue una trayectoria casi recta, y un impulso del timón puede excitar este

modo. La divergencia en espiral se caracteriza por un movimiento de guiñada principalmente.

Este es un modo débil, pero puede causar a un avión entrar en picada en espiral. La

divergencia direccional este modo es casi un moviiento puro de alabeo. Este es el movimiento

que nos interesa para nuestro diseño de piloto automático. El denominador de la función de

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

77

transferencia en la ecuación de arriba muestra dos modos de primer orden (modos hundimiento

en espiral y balanceo) y un modo de segundo orden (modo de balanceo holandés).

En general los coeficientes c0, b0, b1, d0, e0, f0, f1 y la ganancia k son funciones complicadas de

derivadas de estabilidad. Los derivados de la estabilidad son funciones decondiciones de vuelo

y la configuración de la aeronave, sino que son diferentes para los diferentes tipos de eronaves.

El acoplamiento entre el balanceo y guiñada está incluido en la ecuación ya antes

mencionada.En la ecuación de función de transferencia de la ecuación, el polo en s = -d0 se

asocia con el modo de espiral. El polo en s =-e0 se asocia con el modo de divergencia.

Generalmente, e0 >> d0. Para un F-16 volando a 500 pies / s en vuelo recto y nivelado tenemos

e0 = 3,57 y d0 = 0.0128 [27]. Los polos complejos conjugados dados por el termino s2 +f1s + f0

representa el movimiento de balanceo holandés.

Para pequeños ángulos de ataque (como con el vuelo recto y nivelado), el modo balanceo

holandés generalmente anula la función de transferencia con el terminos2 + b1s + b0. Esta es

una aproximación, pero es consistente con las otras hipótesis simplificadoras. Además,

podemos ignorar el modo de espiral, ya que es esencialmente un movimiento de guiñada

débilmente acoplado para el movimiento de alabeo. El cero en s = c0 representa un efecto de la

gravedad que hace que la aeronave se deslice lateral a medida que mueva.

Se supone que este efecto es insignificante, ya que es más pronunciado en una maniobra de

giro lento en la que se permite el deslizamiento incrementado, y asumimos que el deslizamiento

lateral de la aeronave es pequeña o cero. Por lo tanto, podemos simplificar la ecuación de la

función de transferencia para obtener un solo grado de libertad de aproximación:

(2)

Para nuestros aviones seleccionamos e0 = 1,4 y k = 11,4. El asociado constante de tiempo de la

divergencia direccional es τ = 1/e0 = 0,7 s. Estos valores representan un movimiento de

respuesta de balanceo bastante rápido.

Para el modelo de actuador del alerón, por lo general utilizamos un sencillo sistema de primer

orden:

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

78

(3)

Donde, e(s) = ϕd (s) - ϕ(s) En este caso seleccionamos p = 10. Esto corresponde a un tiempo

constante τ = 1/p = 0,1 s. Este es un valor típico consistente con una respuesta rápida.

Necesitamos tener un actuador con una respuesta rápida para que la dinámica del avión

controlado sea el elemento dominante de la respuesta del sistema. Un actuador lento es similar

a un retardo de tiempo que puede causar problemas de rendimiento y estabilidad.

Para una simulación de alta fidelidad, tendríamos que desarrollar un modelo exacto de la

dinámica de giro. El giro , típicamente un giro integración, se caracteriza generalmente por una

respuesta rápida. Para mantener la coherencia con el resto de los supuestos simplificadores,

ignoramos la dinámica de giro en el proceso de diseño. Esto significa que suponemos que mide

el sensor el ángulo de alabeo con precisión. El modelo de giro se obtine por una función de

transferencia de una unidad:

(4)

Por lo tanto nuestro modelo de sistema físico está dado por las ecuaciones (2), (3) y (4). El

controlador seleccionamos para este diseño es un controlador proporcional,

la configuración del sistema se muestra en la siguiente figura. El parámetro clave de selección

es el siguiente:

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

79

La función de transferencia en bucle cerrado es:

Ksss

K

s

ssT

d 114144.11

114

)(

)()(

23

(5)

Queremos determinar analíticamente los valores de K que nos darán la respuesta deseada, es

decir, un porcentaje de overshoot de menos de 20% y un tiempo a pico rápido. A través del

software de matlab vemos el comportamiento de la respuesta del sistema de tercer orden, al

variar el paramentro de K asignándole valores de 0.10, 0.16 y 0.20.

Se observó que a medida que disminuye K, aumenta el factor de amortiguamiento, lo que lleva

a una reducción en el porcentaje de sobrecarga.

El análisis analítico sería más fácil si nuestro sistema de circuito cerrado fuera un sistema de

segundo orden (ya que tenemos relaciones de valor entre el tiempo de establecimiento,

porcentaje de sobrecarga, la frecuencia natural y el factor de amortiguamiento), sin embargo,

tenemos un sistema de tercer orden, dada por T(s) en la ecuación (5). Podríamos considerar la

aproximación de la función de transferencia de tercer orden mediante una función de

transferencia de segundo orden a veces esto es un muy buen enfoque de ingeniería para el

análisis. Hay muchos métodos disponibles para obtener las funciones de transferencia

aproximados. Aquí se utiliza el método algebraico que intenta hacer coincidir la respuesta de

frecuencia del sistema que se aproxime lo más posible al sistema real.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES, PARA SIMULAR EL

COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE LIBERTAD"

Fig. 5.2 Respuesta Escalón de un modelo de avión de tercer orden con K=0.10; 0.16 y 0.20.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

81

5.3 LA SIMPLIFICACIÓN DE LOS SISTEMAS LINEALES

Es muy útil para estudiar sistemas complejos con funciones de transferencia de orden superior

mediante el uso de modelos aproximados de orden inferior. Por ejemplo, un sistema de cuarto

orden podría ser aproximado por un sistema de segundo. Varios métodos están disponibles

para la reducción del orden de una función de transferencia de los sistemas.

Una forma relativamente sencilla de eliminar un cierto polo insignificante de una función de

transferencia es observar un polo que tiene una parte real negativa, que es mucho más

negativa que los otros polos. Por lo tanto, se espera que el polo insignificante afecte a la

respuesta transitoria.

Por ejemplo, si tenemos un sistema con función de transferencia:

Ksss

K

s

ssT

d 114144.11

114

)(

)()(

23

se puede prescindir con seguridad el impacto del polo en s = -114. Sin embargo, debemos

mantener la respuesta en estado estacionario del sistema, por lo que reducir el sistema a:

32

114

1

114

4.11

114

141

1)(

sK

sK

sK

sT

Un enfoque más sofisticado de aproximación para que coincida con la respuesta de frecuencia

de la función de transferencia de orden reducido con la respuesta de frecuencia de la función de

transferencia original tanto como sea posible, el método de aproximación asociado se basa

estrictamente en la manipulación algebraica y se presenta aquí. Vamos a dejar que el sistema

de orden superior se describe por la función de transferencia:

en el que los polos están en la izquierda del plano s y m ≤ n.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

82

La función de transferencia aproximada de orden inferior es donde p ≤ g < n. Observe que la

ganancia constante, K, es la misma para el sistema original y aproximada, lo que garantiza la

misma respuesta de estado estacionario. El método descrito se basa en la selección de ci y di,

de tal manera que GL (s) tiene una respuesta de frecuencia muy cerca de la de GH(s). Esto es

equivalente a indicar que se requiere GH (jw) / GL(jw) para desviar la menor cantidad de la

unidad para varias frecuencias. Los coeficientes c y d se obtienen mediante el uso de las

ecuaciones:

Donde M(s) y )(s son el numerador y denominador de GH (jw) / GL (jw) respectivamente.

Definos también:

(6)

(7)

y una ecuación análoga para q2 las soluciones de los coeficientes para la c y d son obtenidos

por la ecuación:

qqM 22 (8)

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

83

para q = 1,2, ... hasta el número requerido para solucionar para los coeficientes

desconocidos.Supongamos que nuestra función de transferencia aproximada es dada, por el

sistema de segundo orden:

sdsdsGL

211

1)(

El objetivo es encontrar los valores adecuados de d1 y d2 nosostros definimos )()( sysM cmo

el numerador y denominador de T(s)/GL(s) definimos:

Entonces, formando el conjunto de ecuaciones algebraicas:

,....,2,1,22 qM qq

podemos despejar los parámetros desconocidos de la función aproximada. El índice q se

incrementa hasta que se obtienen suficientes para resolver ecuaciones para los coeficientes

desconocidos de la función aproximada. En este caso, q = 1,2, ya que tiene dos parámetros d1 y

d2 para calcular:

Tenemos que:

0......)()(

2)(

2)(

1)(

4)3(

22

2)2(

1

1

21

sMsM

dds

MdsM

sdds

dMsM

sdsdsM

s

Evaluando de esta manera los rendimientos en s=0

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

84

0...)0()0(

2)0(

)0(

)4()3(

)2(

1

)1(

MM

dM

dM

Similarmente,

Kds

ds

sKKds

ds

sK

sKKds

ds

K

ss

Ks

Ks

114

6)(

114

6

114

8.22)(

114

3

114

8.22

114

14)(

114114

4.11

114

141)(

3

3)3(

2

2)2(

2)1(

32

Evaluando en s=0:

0...)0()0(

,114

6)0(

,114

8.22)0(

,114

14)0(

)5()4(

)3(

)2(

)1(

K

K

K

Empleando la ecuación (6) para q=1 y q=2 reendimientos:

2

12

21)1()2(

2 22

)0()0(

1

)0(

2

)0()0(dd

MMMMMMM

Y

2

2

)4()1()3()2()2()3()1()4(

4!0!4

)0()0(

!1!3

)0()0(

!2!2

)0()0(

!3!1

)0()0(

!4!0

)0()0(d

MMMMMMMMMMM

Utilizando la ecuación (7), encontramos que:

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

85

22)114(

196

114

8.22

KK

y

24)114(

96.101

K

Formando el conjunto de ecuaciones algebraicasen la ecuación (8),

22 M y 44 M

Obtenemos:

2

2

12)114(

196

114

8.222

KKdd

y

2

2

2)114(

96.101

Kd

Resolviendo 1d y 2d

K

Kd

114

96.2961961

Kd

114

097.102

Donde elegimos siempre el valor positivo de 1d y 2d , entonces GL (s) tiene polos en el

semiplano izquierdo Por lo tanto (después de algunas manipulaciones) la función de

transferencia es aproximada:

KKss

KsGL

29.1191.292.1

29,11)(

2 (9)

Requerimos que K <0,65 para que el coeficiente del término s sigue siendo un número real.

Fig. 5.3 Respuesta Escalón, comparación de un modelo de avión de tercer orden vs. la aproximación de segundo orden.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

87

El sistema de aproximación de segundo orden nos ha permitido profundizar acerca de la

relación entre el parámetro K y la respuesta del sistema, midiendo el porcentaje de exceso y el

tiempo pico. Por supuesto, la ganancia K=0.16 es solo un punto de partida en el diseño porque

nosotros en realidad tenemos un sistema de tercer rden, y hay que tomar en cuenta el efecto

del tercer polo (que hemos ignorado hasta ahora). La respuesta escalón del sistema de

segundo orden es una buena aproximación de la respuesta escalón del sistema original. [22]

Nuestra función de transferencia de segundo orden deseado puede ser escrito como:

nn

n

Lss

sG22

2

2)(

(10)

Comparando coeficientes en ecuaciones (9) y (10):

Kn 29.112 y .065.0

043.02 K

(11)

La especificación del diseño que el porcentaje de overshoot P.O será menor que 20% impica

que nosotros queremos ζ ≥ 0.45. Asi se desprende la solución de la ecuación

21100..

eOP

Para ζ=0.45 en la ecuación (11) y resolviendo K:

K=0.16

Con K=0.16 calculamos:

Kn 29.11 =1.34

Posteriormente estimamos el tiempo pico TP :

sT

n

P 62.21 2

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

88

CONCLUSIONES

Se llevó a cabo la construcción de una Plataforma a nivel de Hardware y Software, así como a

nivel de estrutura con 6 servos con el fin de que los alumnos aprecien los movimientos que una

aeronave en forma cualitativa.

El aporte que se hace es generar, implementar el código para generar el PWM en el μc, y por

medio de cambio de valores en el software el alumno manipule a posición de la Plataforma;

esto puede ayudarles a desarrollar el diseño de control de una aeronave.

La plataforma al igual que la aeronave implica un trabajo multidisciplinario, son varios sistemas,

(alimentación de voltaje CD, servos, estructura/Plataforma, cableado, interfase (Launchpad)),

los cuales se componen de subsistemas. Los subsistemas deben de estar en sincronía para

poder generar una respuesta deseada del sistema, si algún subsistema falla por consiguiente el

sistema fallará.

El aspecto importante aquí es el diseño de fabricación e implementación de la plataforma desde

el punto de visto eléctrico-electrónico que sirve como una plataforma o sistema de

experimentación en la materia de control en la carrera de Ingeniería Aeronáutica. Ya que en los

textos de control se presentan teorías, solo hace falta demostrarlo físicamente.

Se comprobó experimentalmnete la respuesta en frecuencia de la Plataforma aplicando un tren

de pulsos de 50Hz y con D.C. que variaban del 6% al 14%. Por software se varió los retardos

para pasar del 6% al 14%, primero con 2 segundos, 1 segundo hasta llegar a1 milisegundo.

Se investigó varias empresas dedicadas al diseño de plataformas para el apendizaje a nivel

licenciatura, para que la escuela tenga diversas opciones de enseñar a sus alumnos las

conocimientos bases que se deben de tener en la asignatura de Sistemas de Control en

Aeronaves a través hardware y software. Una de esas empresas es “Quanser Lab Workstation

Support from Simulink”, que ofrece equipo el cuál ayudará a los alumnos a desarrollar las

habilidades necesarias para su desenvolvimiento laboral, además de ser de utilidad para

desarrollo de trabajos de posgrado.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

89

Otra opción que también tiene la escuela es el desarrollo de una Plartaforma a través de

microcontroladores, la cual puede ayudar a la enseñanza de los alumnos de octavo semestre

en la materia de Sistemas de Control en Aeronaves, además, esto busca alentar a los alumnos

a generar herramientas, para los laboratorios de la escuela, para su propio aprendizaje basado

en proyectos en la academia Eléctrico-Electrónica. Este Plataforma posteriormente puede ser

de utilidad para llevar acabó futuros proyectos encaminados a Control.

El trabajo a futuro, a llevar a cabo es Implementar sensores tales como acelerómetros y

giróscopos a la plataforma con el propósito de cuantificar y poder desarrollar estructuras de

control tipo P, PI, PID; así como utilizar software tipo CAE (Computer Aided Engineering) tal

como Matlab/Simmulink para realizar análisis y diseño de sistemas de control (leyes de

control).

La opción que ofrece es “Quanser Lab Workstation Support from Simulink” es de un costo mas

elevado a comparación que brinda la U.P. Ticomán, ya que costo de una pieza arrebasa los

$75,000.00 pesos, a esto hay que agregarla el costo de una licencia para adquierir su software.

En cambio el costo del desarrollo de lan Plataforma es de menos de $1500.00 pesos, tomando

en cuenta que el software se descarga gratuitamente sin necesidad de pagar una licencia, al

mismo tiempo el alumno aprenderá a desarrollar sus capacidades y habilidades en la

generación de proyectos, que ayuden a entender de mejor manera las asignaturas.

Se verificó el consumo de energía del µc (Launchpad) en términos del ahorro o duración de las

baterías de alimentación del µc.Se puede utilizar en aplicaciones de aeromodelos al tener

menos consumo de energía mayor duración de la misión o autonomía.

Consideramos que los modelos matemáticos son aproximaciones, el interés del trabajo no se

centro en el modelo matemático, pero si en el enfoque cualitativo, sobre el comportamiento de

la plataforma y de ls servos.

La instrumentación a través de sensores y la retroalimentación se deja a trabajo futuro para

personas que leyeron el trabajo y estén interesadas.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

90

Quanser Lab Workstation Support from Simulink

Plataforma Stewart Desarrollado en la U.P. Ticomán

Enseña cuanto reducir las iteraciones y desarrollar un sistema de control más fácil.

Proporciona componenetes mezclados que ayudan a crear sistemas para satisfacer las necesidades en el aula. Con estas estaciones, se puede desarrollar la enseñanza en clase de larga duración, de licenciatura o realizar investigaciones en curso a nivel de maestría.

Llevar a cabo experimentos de control con sistemas lineales, el movimiento rotatorio, mecatrónica y robótica para la aplicación y evaluación de información utilizando controladores PID.

Tarjetas basadas en PCI o USB-basado, compatible con MATLAB ® y Simulink, para la adquisición de datos y la optimización del sistema de control.

Quanser software QUARC, integrado con Simulink, para la conectividad en tiempo real entre los modelos de Simulink y hardware Quanser.

Quanser, muestra una variedad de implementaciones de control como en tiempo real Con Simulink, se puede ajustar los parámetros del controlador y monitorear las señales de la marcha, directamente desde Simulink. Los estudiantes adquieren experiencia práctica, tales como la creación rápida de prototipos de control y hardware-in-the-loop de prueba y simulación.

El costo del software para una licencia es de $ 7,000.00 pesos. Costo del equipo (QUBE-Servo (USB) - Rotary

Enseña el posicionamimento de una aeronave de forma cualitativa.

Ayudará a ver el comportamiento en 3 o 6 grados de libertad de un objeto.

Ayudará a la enseñanza en sistemas de lazo abierto en temas de control.

A futuro se puede utilizar para realizar investigaciones de posgrago empleando otro tipo de control (P, PI, PID).

Esta basado en una tarjeta de Texas Instruments (LaunPad MSP430).

Emplea un microcontrolador de Texas Instruments de 16 bits.

El alumno adquirirá los conocimientos bases, para poder emplear en su mayoría todos los periféricos del micro y entender el funcionamiento de cada uno de ellos.

Aprenderá a manejar el entorno de desarrollo Code Composer Studio (CCS) para la programación del microcontrolador.

El costo de IDE es gratuito descargado desde el sitio web de Texas Instrument.

El costo que llevó la plataforma fue de menos de $1200.00 pesos.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

91

Servo Experiment) es de $75,000.00 pesos con impuestos.

A futuro adquirir otros sistemas con costos de $75,000 pesos cada uno.

A futuro, posibilidad de construir varios, posibilidad de desarrollo e implementación de algoritmos de control.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

92

ANEXOS

TABLA 2. FUNCION DE PINES.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

93

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

94

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

95

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

96

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

97

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

98

TIMER_A MODO CONTROL

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

99

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

100

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

101

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

102

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

103

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

104

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

105

BIBLIOGRAFÍA

[1] L. du Plessis, "REVIEW OF STEWART PLATFORMS - UPeTD," 1999. [Online]. Available:

http://upetd.up.ac.za/thesis/available/etd-06012009-

145209/unrestricted/01chapter1.pdf.

[2] D. A. Ramirez Rodríguez, "DISEÑO DE UNA PLATAFORMA ROBÓTICA PARALELA DE," 2010.

[Online]. Available:

http://www.bdigital.unal.edu.co/3185/1/danielandresramirezrodriguez.2010.pdf.

[3] J. H. Davies, MSP430 Microcontroller Basic, ELSEVIER, 2008.

[4] T. I. "MSP-EXP430G2 LaunchPad Experimenter," julio 2010. [Online]. Available:

http://www.ti.com/tool/MSP-EXP430G2.

[5] T. Instruments, "MSP430x2xx Family User's Guide," Diciembre 2012. [Online]. Available:

http://www.ti.com/lit/ug/slau144j/slau144j.pdf.

[6] D. Olson, "SCIENTIFIC INSTRUMENTS USING THE TI MSP430," 20 July 2010. [Online].

Available: http://mspsci.blogspot.com.ar/2010/07/tutorial-08-beating-heart-bcs-

part-i.html.

[7] D. Olson, "Tutorial 02: The MSP430 Township and Registers," SCIENTIFIC INSTRUMENTS

USING THE TI MSP430, 12 July 2010. [Online]. Available:

http://mspsci.blogspot.com.ar/2010/07/tutorial-02-msp430-township-and.html.

[8] D. Olson, "Tutorial 09: Timers," SCIENTIFIC INSTRUMENTS USING THE TI MSP430, 01 agosto

2010. [Online]. Available: http://mspsci.blogspot.com.ar/2010/08/tutorial-09-

timers.html.

[9] UPIICSA, "QUE ES UN LENGUAJE DE PROGRAMACIÓN," [Online]. Available:

http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/Polilibr

oFC/Unidad_III/Unidad%20III_4.htm#IrInicioUnidad.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

106

[10] T. Instruments, "Code Composer Studio (CCStudio) Integrated Development Environment

(IDE) v5," [Online]. Available: http://www.ti.com/tool/ccstudio.

[11] E. Vildósola C., "Actuadores," [Online]. Available:

http://www.aie.cl/files/file/comites/ca/abc/actuadores.pdf.

[12] UTFSM, "SERVOMOTORES," Diciembre 2003. [Online]. Available:

http://www2.elo.utfsm.cl/~mineducagv/docs/ListaDetalladadeModulos/servos.pdf.

[13] Andres, "Servomecanismos," [Online]. Available:

http://www.iearobotics.com/personal/andres/proyectos/pucho/documentacion/ca

pitulo3.pdf.

[14] t. robot, "El servo motor," [Online]. Available:

http://www.todorobot.com.ar/documentos/servomotor.pdf.

[15] N. S. Nise, Sistemas de Control para Ingeniería, California: Compañia Editorial Continental,

2006.

[16] Andrisani, "Simulink Models of the Futaba S148 Servo," [Online]. Available:

https://engineering.purdue.edu/~andrisan/Courses/AAE451%20Fall2000/Servo.ht

ml.

[17] D. J. Dunn, "Instrumentation and Control Tutorial 3 Transfer Function Manipulation,"

[Online]. Available: http://www.freestudy.co.uk/control/t3.pdf.

[18] ITESCAM, "Características de señales eléctricas," 30 05 2008. [Online]. Available:

http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r87835.PDF.

[19] R. Estepa, "Transmisión y Digitalización," Diciembre 2004. [Online]. Available:

http://trajano.us.es/~rafa/ARSS/apuntes/tema5.pdf.

[20] C. Pérez Vega, "Modulación de Pulsos," Departamento de Ingeniería de Comunicaciones,

[Online]. Available: http://personales.unican.es/perezvr/pdf/CH7ST_Web.pdf.

“DESARROLLO DE UNA PLATAFORMA STEWART BASADA EN MICROCONTROLADORES,

PARA SIMULAR EL COMPORTAMIENTO DE UNA AERONAVE EN TRES GRADOS DE

LIBERTAD"

107

[21] D. Olson, "SCIENTIFIC INSTRUMENTS USING THE TI MSP430," 25 Abril 2013. [Online].

Available: http://mspsci.blogspot.com.ar/search?updated-min=2013-01-

01T00:00:00-05:00&updated-max=2014-01-01T00:00:00-05:00&max-results=3.

[22] R. C.Dorf and R. H. Bishop, Modern Control Systems, Pearson International Edition, 2008.