6 interfaz ordenador de a bordo-servomotores y...

11
Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz 55 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y CONMUTACIÓN MODO MANUAL/AUTOMÁTICO 6.1 Justificación Tal como explicamos en el Capítulo 1, el principal objetivo del proyecto Hermes es el logro del vuelo autónomo de un helicóptero de radiocontrol. Esto implica que, a partir de las medidas de los sensores, el computador de vuelo debe ser capaz de calcular las acciones de control necesarias y aplicarlas sobre los servos correspondientes. Puesto que la radio sirve exclusivamente para ejercer un control manual sobre la aeronave, cuando queramos pasar a control automático necesitamos una alternativa a la radio que actúe como intermediaria entre el ordenador de a bordo y los servos. Si el ordenador de a bordo tuviera suficientes salidas PWM (al menos tantas como el número de servos), no tendríamos más que calcular las señales PWM y aplicárselas a los servos a través de una mera conexión física. Sin embargo, ya adelantamos en el Apartado 3.1 la imposibilidad de encontrar una placa con más de 4 salidas PWM, por lo que la solución adoptada ha sido recurrir al dispositivo Mini Maestro 12-channel USB servo controller de Pololu, que no es más que un controlador de servo de 12 canales mediante puerto USB. Lo que haremos será comunicar al Mini Maestro 12 mediante USB cómo deben ser las señales PWM concretas que queremos aplicar, y él se encargará de generarlas. Figura 38: Mini Maestro 12-channel USB servo controller de Pololu Mediante el Mini Maestro 12 tenemos resuelto el problema del control automático sobre el helicóptero. Ahora bien, conviene disponer de un modo de paso a control manual de forma rápida para evitar accidentes de la aeronave en caso de que haya algún error en el cálculo de las señales de control o los parámetros de configuración de los controladores no sean adecuados. Para conmutar de control automático a manual y viceversa utilizamos el dispositivo RC Servo Multiplexer 4 Channel de Pololu. Este dispositivo recibe dos conjuntos de 4 señales PWM distintas y, en función de una señal PWM de entrada adicional, decide poner a su salida uno u otro de los dos conjuntos. Como nosotros precisamos de 5 señales PWM para los servos, utilizamos dos de estos dispositivos, que compartirán la señal de selección.

Upload: others

Post on 05-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

55

6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES

Y CONMUTACIÓN MODO MANUAL/AUTOMÁTICO

6.1 Justificación Tal como explicamos en el Capítulo 1, el principal objetivo del proyecto Hermes es el logro del

vuelo autónomo de un helicóptero de radiocontrol. Esto implica que, a partir de las medidas

de los sensores, el computador de vuelo debe ser capaz de calcular las acciones de control

necesarias y aplicarlas sobre los servos correspondientes. Puesto que la radio sirve

exclusivamente para ejercer un control manual sobre la aeronave, cuando queramos pasar a

control automático necesitamos una alternativa a la radio que actúe como intermediaria entre

el ordenador de a bordo y los servos.

Si el ordenador de a bordo tuviera suficientes salidas PWM (al menos tantas como el número

de servos), no tendríamos más que calcular las señales PWM y aplicárselas a los servos a través

de una mera conexión física. Sin embargo, ya adelantamos en el Apartado 3.1 la imposibilidad

de encontrar una placa con más de 4 salidas PWM, por lo que la solución adoptada ha sido

recurrir al dispositivo Mini Maestro 12-channel USB servo controller de Pololu, que no es más

que un controlador de servo de 12 canales mediante puerto USB. Lo que haremos será

comunicar al Mini Maestro 12 mediante USB cómo deben ser las señales PWM concretas que

queremos aplicar, y él se encargará de generarlas.

Figura 38: Mini Maestro 12-channel USB servo controller de Pololu

Mediante el Mini Maestro 12 tenemos resuelto el problema del control automático sobre el

helicóptero. Ahora bien, conviene disponer de un modo de paso a control manual de forma

rápida para evitar accidentes de la aeronave en caso de que haya algún error en el cálculo de

las señales de control o los parámetros de configuración de los controladores no sean

adecuados.

Para conmutar de control automático a manual y viceversa utilizamos el dispositivo RC Servo

Multiplexer 4 Channel de Pololu. Este dispositivo recibe dos conjuntos de 4 señales PWM

distintas y, en función de una señal PWM de entrada adicional, decide poner a su salida uno u

otro de los dos conjuntos. Como nosotros precisamos de 5 señales PWM para los servos,

utilizamos dos de estos dispositivos, que compartirán la señal de selección.

Page 2: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

56

Figura 39: RC Servo Multiplexer 4 Channel de Pololu

6.2 Pololu Mini Maestro 12-channel USB servo controller

6.2.1 Introducción Con tres métodos de control (USB para conexión directa a PC, TTL serie para uso con sistemas

empotrados y scripting interno para aplicaciones de control autónomas) y canales que pueden

configurarse como salidas tipo servo para uso con servos de radiocontrol o como controles de

velocidad electrónicos (ESCs), salidas digitales o entradas analógicas/digitales, el Maestro es

un controlador de servo muy versátil y una placa de E/S con formato altamente compacto. Los

pulsos de servo que genera tienen alta resolución, son muy precisos y tienen un jitter de 200

ns; el control de velocidad y aceleración incorporado facilita movimientos suaves y exactos sin

necesidad de computar y enviar constantemente actualizaciones de las posiciones intermedias

al Maestro. El Maestro permite configurar tasas de pulsos (hasta 333 MHz) y puede generar un

amplio rango de pulsos para posibilitar la mayor instantaneidad y el mayor rango posibles en

servos modernos. Las unidades se pueden conectar en serie con controladores de Pololu para

servo y para motor en una línea serie única.

Se dispone de un programa para su configuración y control, tanto en Windows como en Linux,

que facilita la configuración y las pruebas de la placa mediante USB, así como la creación de

secuencias de movimientos de los servos para aplicaciones de robótica y escribir, revisar y

ejecutar scripts almacenados en el controlador. La memoria interna del Maestro para scripts

permite el almacenamiento de posiciones de servos que pueden reproducirse

automáticamente, sin necesidad de conectarse a ningún otro ordenador o microcontrolador.

Los canales del Maestro pueden emplearse como salidas digitales de propósito general o como

entradas analógicas o digitales, lo que constituye un medio muy simple para leer sensores y

controlar periféricos directamente desde un PC conectado por USB. Estas entradas pueden

usarse con el sistema de script para permitir la creación de animaciones que respondan a

estímulos externos.

La Tabla 19 resume las características del Mini Maestro 12.

Page 3: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

57

Mini Maestro 12

Canales 12

Canales de entrada analógicos 12

Canales de entrada digitales 0

Ancho 2.79 cm

Longitud 3.61 cm

Peso 4.2 g

Tasa configurable de pulsos 1–333 Hz

Rango de pulsos 64–4080 μs

Tamaño de script 8 KB

Tabla 19: Características del Mini Maestro 12

La interfaz USB del Maestro ofrece acceso a todas las opciones de configuración, así como

soporte para control en tiempo real, realimentación y depuración. Las operaciones que hemos

realizado con el Mini Maestro 12 pueden dividirse en dos categorías:

Primeros pasos y configuración. A esta categoría pertenecen las pruebas iniciales con

el dispositivo para familiarizarse con él, así como su configuración, que lo preparará

para desempeñar su función de acuerdo con nuestras necesidades.

Para esta fase inicial de utilización del Mini Maestro se ha optado por emplear el

programa Maestro Control Center, suministrado por Pololu. Los pasos llevados a cabo

con dicho programa no son específicos del objetivo que se plantea en el proyecto

Hermes, por lo que se ha considerado más adecuado describirlos en el Anexo A. No

obstante, las elecciones tomadas durante la configuración que se reflejan en dicho

Anexo se han particularizado para nuestro caso.

Integración en la aplicación. En el marco del proyecto Hermes, nos interesa ser

capaces de hacer uso de las distintas funcionalidades que ofrece el Mini Maestro

desde la aplicación de vuelo. Para ello, no tendremos más que enviarle comandos serie

que lo insten a realizar las labores que requiramos, tal como se detalla en el Apartado

6.2.4.

6.2.2 Pinout El controlador de servo Mini Maestro 12 puede conectarse al puerto USB de un PC mediante

un cable mini USB. La conexión USB se emplea para enviar los comandos al controlador de

servo, obtener información sobre su estado actual y enviar y recibir bytes serie TTL en las

líneas TX y RX.

En la Figura 40 se muestra la distribución de pines del Mini Maestro 12.

Page 4: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

58

Figura 40: Vista superior del Mini Maestro 12

El procesador y los servos pueden tener fuentes de alimentación distintas.

La alimentación del procesador debe proceder bien del USB o de una fuente externa

de 5-16 V conectada a las entradas VIN y GND situadas a la izquierda de la placa. Es

seguro conectar una fuente de alimentación externa a la vez que el USB; en ese caso,

el procesador se alimentará a través de la fuente externa.

Las conexiones para alimentación de los servos se sitúan en la esquina inferior derecha

de la placa. La alimentación se transmite directamente a los servos sin pasar por

ningún regulador, por lo que los únicos requisitos que debe cumplir la fuente son que

esté dentro del rango de operación de los servos y que suministre suficiente corriente

para la aplicación.

Es posible alimentar el procesador del Maestro y los servos mediante una única fuente

conectando la línea positiva de potencia tanto a VIN como al positivo de la alimentación de los

servos (la conexión de tierra puede ser única por estar todos los pines de tierra

cortocircuitados). Se recomienda conectar la fuente de alimentación a los pines dedicados a la

alimentación de los servos en la esquina inferior derecha de la placa y emplear el jumper azul

incluido para conectar los pines etiquetados como “VSVR-VIN”.

La salida de potencia 5V (out) permite alimentar con el Mini Maestro dispositivos externos que

funcionen a 5 V, bien desde el regulador de 150 mA incorporado en la placa o bien

directamente desde el USB. El regulador se emplea siempre que el pin VIN esté alimentado; en

ese caso, puesto que el Maestro requiere 50 mA, hay aproximadamente otros 50 mA

disponibles para alimentar otros dispositivos.

Las líneas de señal (0, 1, 2, …) se usan para enviar pulsos a los servos, controlar salidas digitales

y medir voltajes. El límite total de corriente (de entrada o salida) para estos pins es de 150 mA,

pero cuando se usa el regulador la corriente de salida está limitada a 50 mA.

Page 5: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

59

La línea RX se emplea para recibir bytes serie TTL (0-5 V) no invertidos, tal como aparecen en

los microcontroladores tipo UART. Estos bytes pueden ser comandos serie para el Maestro,

bytes arbitrarios de envío al PC, o ambos.

La línea TX transmite bytes serie TTL (0-5V) no invertidos. Estos bytes pueden generarse en el

propio Mini Maestro (como respuestas a comandos serie o a bytes arbitrarios enviados desde

el PC a través de la conexión USB), o bien pueden proceder de la línea TXIN.

El pin RST puede ponerse a nivel bajo para aplicar un reset en el microcontrolador del Maestro.

Esta línea está mantenida a nivel alto internamente, así que es seguro dejar este pin

desconectado.

La línea ERR es una salida asociada al LED de usuario/error rojo. Se pone a nivel alto cuando el

LED rojo se activa y se pone a nivel bajo cuando se desactiva. El LED rojo se enciende cuando

ocurre algún error y se apaga cuando las banderas de error se desactivan, y también puede

controlarse desde el script de usuario. Puesto que la línea ERR nunca se pone a nivel bajo, es

seguro conectarla a múltiples Mini Maestros.

La línea TXIN es una línea de entrada serie que facilita la conexión serie de múltiples Mini

Maestros. Todos los bytes serie recibidos por esta línea se acumulan en un buffer mediante

una puerta AND y son transmitidos por la línea TX.

6.2.3 Modos de Funcionamiento Existen tres modos de funcionamiento serie básicos:

USB Dual Port. En este modo, el Command Port puede usarse para enviar comandos al

Maestro y recibir respuestas de él. La tasa de baudios establecida en el programa

terminal al abrir el Command Port es irrelevante. El TTL Port puede usarse para enviar

bytes por la línea TX y recibir bytes por la línea RX. La tasa de baudios establecida en el

programa terminal al abrir el TTL Port determina la tasa de baudios empleada al recibir

y enviar bytes por RX y TX. Esto permite al PC controlar el Maestro y usar

simultáneamente las líneas RX y TX como puerto serie de propósito general para

comunicarse con otros tipos de dispositivos serie TTL.

Figura 41: Modo USB Dual Port

USB Chained. En este modo, el Command Port se usa tanto para transmitir bytes por

la línea TX como para enviar comandos al Maestro. Las respuestas del Maestro a estos

comandos se enviarán por el Command Port, pero no por la línea TX. Los bytes

recibidos por la línea RX se enviarán al Command Port, pero no serán interpretados

como comandos por el Maestro. La tasa de baudios fijada en el programa terminal al

Page 6: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

60

abrir el Command Port determina la tasa de baudios empleada para recibir y enviar

bytes por las líneas RX y TX. El TTL Port no se utiliza. Este modo permite que un único

puerto COM del PC controle múltiples Maestros, o un solo Maestro y otros dispositivos

con protocolo compatible.

Figura 42: Modo USB Chained

UART. En este modo, las líneas TX y RX se emplean para enviar comandos al Maestro y

recibir respuestas de él. Cualquier byte recibido por RX será enviado al Command Port,

pero los bytes enviados desde el Command Port serán ignorados. El TTL Port no se

utiliza. La tasa de baudios en TX y RX puede ser detectada automáticamente cuando se

recibe un byte 0xAA por RX, o bien se puede especificar un valor en bps en el mismo

Maestro Control Center. Este modo permite controlar el Maestro (y enviar bytes a un

programa serie que se ejecuta en un PC) usando un microcontrolador u otro

dispositivo serie TTL.

Figura 43: Modo UART

En nuestro caso, el funcionamiento que requerimos del Maestro es el del USB Dual. Esta

preferencia deberá especificarse antes de empezar a probar el Mini Maestro en el ordenador

de a bordo, durante la fase de configuración, tal como explica el Anexo A.

6.2.4 Comunicación mediante puerto COM virtual Una vez realizadas las primeras pruebas de configuración de los canales y de control de los

servos con el Maestro Control Center en un PC con Windows, pasamos a manejar el Mini

Maestro desde el ordenador de a bordo, que es nuestro objetivo desde el principio.

La comunicación con el Maestro se logra mediante el envío de paquetes de comando

consistentes en un único byte de comando seguido por los bytes de datos requeridos por el

comando en cuestión. Los bytes de comando siempre tienen el bit más significativo activado

(128-255 en decimal, o 0x80-0xFF en hexadecimal), mientras que los bytes de datos tienen

desactivado su bit más significativo (0-127 en decimal, o 0x00-0x7F en hexadecimal). Esto

Page 7: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

61

significa que cada byte de datos sólo puede transmitir 7 bits de información. La única

excepción es el protocolo Mini SSC, donde los bytes de datos pueden valer entre 0 y 254.

El Maestro responde a tres subprotocolos:

Compact Protocol. Es el protocolo más simple y más compacto. Debe utilizarse si el

Maestro es el único dispositivo conectado a la línea serie.

Pololu Protocol. Este protocolo es compatible con los protocolos usados por otros

controladores de servo y motores. Como tal, permite la conexión del Maestro en una

única línea serie, junto con otros controladores (inclusive otros Maestros). El envío de

comandos por la línea mediante este protocolo permite distinguir entre el Maestro al

que se dirigen dichos comandos y el resto de dispositivos.

Mini SCC Protocol. Este protocolo permite controlar hasta un máximo de 254 servos

diferentes mediante su conexión serie a múltiples controladores de servo.

El Compact Protocol es el más simple de los tres y cubre perfectamente nuestras necesidades,

así que será el que empleemos en nuestra comunicación con el Maestro. El paquete de

comando de este protocolo está formado por un byte de comando con el MSB activado y un

conjunto de bytes de datos. Así, por ejemplo, si queremos que el servo conectado al canal 0

del Maestro se mueva hasta la posición correspondiente a un ancho de pulso de 1500 μs

(1500x4=6000= 01011101110000 en binario), debemos enviar la siguiente secuencia de bytes:

En hexadecimal: 0x84, 0x00, 0x70, 0x2E

En decimal: 132, 0, 112, 46

En binario: 10000100, 00000010, 01110000, 00101110

El byte 0x84 es el comando para envío de objetivos, el primer byte de datos 0x00 es el número

de servo, y los últimos dos bytes contienen el objetivo en unidades de cuarto de

microsegundo.

En la Tabla 20 mostramos un ejemplo de código C que generará la secuencia de bytes correcta

para lograr que el servo del canal 0 se desplace hasta la posición dada por 1500 μs.

#include <fcntl.h>

#include <stdlib.h>

#include <stdio.h>

#include <termios.h>

#include <sys/mman.h>

#include <sys/time.h>

int main()

{

struct termios options;

int fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY);

char serialBytes[]={0,0,0,0}

int target=6000;

int channel=0;

if (fd == -1)

Page 8: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

62

{

fprintf(stderr, "Error de apertura");

exit(1);

}

else

printf("\nEstablecida comunicacion con Pololu.\n");

tcgetattr(fd, &options);

options.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);

tcsetattr(fd, TCSANOW, &options);

serialBytes[0] = 0x84; // Command byte: Set Target.

serialBytes[1] = channel; // First data byte holds channel number.

serialBytes[2] = target & 0x7F; // Second byte holds the lower 7

bits of target.

serialBytes[3] = (target >> 7) & 0x7F; // Third data byte holds the

bits 7-13 of target

if(write(fd,command,4) == EOF)

{

fprintf(stderr, "Error de escritura");

exit(1);

}

}

Tabla 20: Código C para envío de objetivos al Mini Maestro con Compact Protocol

6.3 Pololu RC Servo Multiplexer 4 Channel

6.3.1 Introducción El dispositivo RC Servo Multiplexer 4 Channel de Pololu puede usarse con sistemas de

radiocontrol y dispositivos como el Mini Maestro 12 para permitir una fácil conmutación entre

dos fuentes de control (denominadas maestro y esclavo) para los servos, usando un quinto

canal de entrada que actúa como selector. Esto lo convierte en un dispositivo ideal para

aplicaciones en las que existan dos posibles fuentes de control y se desee conmutar entre una

y otra en tiempo de vuelo. Un posible escenario es precisamente el que nosotros nos hemos

planteado, puesto que tenemos la necesidad de conmutar entre las señales PWM recibidas de

la radio (control manual) y las generadas por el Mini Maestro (control automático).

6.3.2 Pinout Los pines del multiplexor están especialmente diseñados para facilitar las conexiones con cable

de servo: la columna situada a la derecha corresponde a la tierra, la de la izquierda es para la

alimentación (que debe ser suministrada por el maestro), y la interior es la de señal.

La alimentación suministrada por el maestro debe estar comprendida entre 2.5 y 15 V y debe

ser capaz de aportar suficiente corriente para el consumo de los servos conectados a la salida.

La tensión lógica usada en el multiplexor se regulará a 5 V si la tensión de entrada es superior a

esta cantidad; en caso contrario, se aproximará a la tensión de alimentación.

Page 9: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

63

Los pines S1-S4 corresponden a las cuatro entradas de señal del esclavo y los pines M1-M4 a

las del maestro. Los pines OUT1-OUT4 son salidas multiplexadas, y su origen se determina por

la señal recibida en el pin SEL. Si el ancho del pulso del selector está por debajo del umbral de

1.6 ms, por los pines OUT1-OUT4 saldrán las señales recibidas por las entradas M1-M4,

respectivamente; en caso contrario, por OUT1-OUT4 saldrán las señales recibidas por las

entradas S1-S4, respectivamente.

Si la señal de selección es inválida, un jumper opcional entre los pines etiquetado como J1

determina el comportamiento de la salida. Si el jumper se desconecta, los canales de salida se

ponen a nivel bajo y permanecen así mientras la señal de selección siga siendo inválida. En

muchos servos y controles de velocidad electrónica (ESCs), una constante a nivel bajo en su

línea de señal puede provocar su apagado, lo que puede ser deseable si se conoce que las

señales de control son erróneas. Si, por el contrario, el jumper está instalado, en caso de que la

señal de selección sea inválida, por los canales de salida se sacarán las señales del maestro. El

multiplexor considera válidas señales de RC con tasa de pulso entre 10 y 100 Hz y ancho

comprendido entre 0.5 y 2.5 ms.

Figura 44: Vista superior del RC Servo Multiplexer 4 Channel

Por último, queremos explicar el significado de los LEDs indicadores de la placa. Si las salidas

proceden del maestro, sólo se enciende el LED verde; si proceden del esclavo, se enciende el

LED amarillo; si las salidas se desactivan por la invalidez de la señal de selección, se encienden

los LEDs rojo y verde.

6.3.3 Configuración del escenario Una vez introducidas las placas de Pololu en nuestro problema, nos queda un escenario como

el que se representa en la

Figura 45.

En ella podemos observar, por un lado, las dos fuentes de control: la emisora (control manual)

y el ordenador de a bordo (control automático). Las señales correspondientes a un tipo y otro

de control siguen caminos diferentes hasta llegar a los multiplexores:

Page 10: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

64

Control manual. Los comandos indicados por el piloto mediante la radio se transmiten

a la receptora mediante modulación PPM en la banda de 35 MHz. A la salida de la

receptora tenemos cinco señales PWM correspondientes a los cinco servos. Las tres

primeras (canales CH1, CH2 y CH3 de la receptora) se conectan a los canales de

entrada correspondientes al maestro (M1, M2 y M3) del primer multiplexor; las dos

restantes (CH4 y CH6) se llevan hasta los canales M1’ y M2’ del segundo multiplexor.

Control automático. En función de las medidas de los sensores, nuestro ordenador de

a bordo calcula las acciones de control necesarias para los cinco servos y las envía

mediante el Compact Protocol al Mini Maestro 12, que está conectado por el puerto

USB. Automáticamente, el Mini Maestro 12 saca por sus canales CH0-CH4 las señales

PWM correspondientes a dichas acciones de control. Los tres primeros canales se

recibirán como canales del esclavo en el primer multiplexor (S1, S2 y S3); con los dos

restantes se hace lo análogo, pero en este caso se llevan al segundo multiplexor (S1’ y

S2’).

Por otro lado, el canal CH5, asociado a un mando de la radio que puede tomar dos posiciones,

se ha configurado para poder utilizarse como señal de selección en los multiplexores de la

siguiente manera:

Cuando el mando está en una posición, en el canal CH5 de la receptora tenemos una

señal PWM con ancho de pulso inferior a 1.6 ms.

Cuando el mando está en la otra posición, en el canal CH5 de la receptora tenemos

una señal PWM con ancho de pulso superior a 1.6 ms.

Por último, se conecta la señal PWM del CH5 de la receptora en la entrada de selección de

ambos multiplexores (SEL y SEL’). De esta manera, podremos seleccionar el conjunto de

señales (correspondientes al control manual o al automático) que se asociarán a los cinco

servos ubicados en el helicóptero (O1, O2, O3, O1’ y O2’).

6.4 Integración en la aplicación En el Apartado 2.2.2 ya adelantamos brevemente la estructura del software en el ordenador

de a bordo; vimos que el usuario puede instar al programa principal a que inicie una serie de

interrupciones temporales, dentro de las cuales se realizan las funciones que requieren

periodicidad dentro de nuestra aplicación.

Las primeras de estas acciones periódicas serán las que realizan las lecturas de los sensores;

una vez ejecutadas, seremos conocedores de la altura a la que se encuentra el helicóptero, el

ángulo de paso colectivo y la velocidad de rotación de las palas del rotor principal. Es a partir

de este punto cuando podemos ejercer acciones sobre los servos del helicóptero que

modifican su posición para llevar a cabo el vuelo axial: el servo correspondiente al throttle y el

del colectivo. Así pues, incluiremos una llamada a una función dentro de la interrupción

periódica que, según la configuración indicada por el usuario de la aplicación, aplicará acciones

manuales o automáticas sobre dichos servos.

La función de envío de objetivos a los servos del throttle y el colectivo tiene un código

completamente análogo al mostrado en la Tabla 20, con la salvedad de que serán dos los

Page 11: 6 INTERFAZ ORDENADOR DE A BORDO-SERVOMOTORES Y …bibing.us.es/proyectos/abreproy/70354/fichero/Memoria%2FTrabajo+… · de los sensores, el computador de vuelo debe ser capaz de

Capítulo 6: Interfaz PC a Bordo-Servomotores y Conmutación de Modo Blanca Rubio Díaz

65

servos a los que se envíe un objetivo de forma simultánea. Previamente al envío, deberán

decidirse dichos objetivos, bien directamente a partir de una posición fijada por el usuario, o

en como resultado de las funciones que aplican un controlador sobre la altura del helicóptero

y la velocidad del rotor principal.

Emisora Receptora

Ordenador de a bordo

Mini Maestro 12

RC Servo Mux 1

RC Servo Mux 2

Servo 1

Servo 2

Servo 3

Servo 5

Servo 4

CH0-CH2

CH3,CH4

S1-S3

S1´- S2´

M1-M3

M1´-M2´

O1-O3

O1´-O2´

CH1-CH3

CH4,CH6

CH5

SEL´

SEL

Figura 45: Escenario tras inclusión de las placas de Pololu