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.