Menu

Diseño del sistema FPV

27 mayo, 2017 - ajustes
Diseño del sistema FPV

Nuestro drone fotográfico utiliza una minicámara exclusivamente para las labores de pilotaje. Dicha cámara se ancla de manera fija al frontal del drone, permitiendo visualizar la estabilidad y las variaciones en los ángulos de elevador y alerón así como la rotación sobre su eje, todo ello mientras se pilota. Por lo tanto dicha cámara no irá anclada al gimbal. A dicha cámara se le conecta el módulo OSD para la visualización de los datos de telemetría.

Por lo tanto nuestro drone lleverá dos cámara, una de pilotaje y otra fotográfica de trabajo. Adicionalmente podremos anclar al gimbal una tercera cámara tipo GoPro paralela a la cámara fotográfica, y que se podrá poner manualmente en modo grabación continua desde el inicio del vuelo.

Nuestra concepción del funcionamiento implica que el piloto y operador de cámara fotográfica son la misma persona. Para poder visualizar también la cámara fotográfica utilizaremos un circuito conmutador de vídeo que permitirá seleccionar la imagen de cada una de ellas desde la emisora. El operador deberá normalmente fotografiar a drone parado o filmará en la dirección de avance del drone.

MiniOSD

Cuando usamos FPV, la manera óptima de ver los datos de telemetría en tierra es mezclándolos con la imagen de la cámara de pilotaje. Para ello se utiliza un dispositivo llamado OSD, el cual dispone de dos entradas, una de datos telemétricos desde la controladora de vuelo, y otra desde la cámara de pilotaje; y una salida de vídeo con los datos telemétricos mezclados con la imagen.

Uno de los módulos OSD más extendidos es el llamado «Mini OSD» y está basado en Arduino. El Mini OSD presenta el siguiente aspecto:

La conexión de datos del Mini OSD se conecta al puerto TELEM1 o TELEM2 de la controladora Pixhawk, por donde mediante protocolo MAVLink recibe datos de interés telemétricos.

Un tema importante del Mini OSD es la alimentación. El módulo dispone de dos entradas de alimentación, uno de 5V y otro de 12V. Esto se hace así para separar eléctricamente la parte de vídeo (12V) de la de procesado digital (5V). La parte digital se alimenta directamente desde la pixhawk. Sin embargo debemos aplicar 12V separadamente para la circuitería de vídeo. También es posible alimentar sólo con 5V el circuito completo cerrando unas soldaduras concretas en el circuito impreso, pero esta solución no es la más recomendable. Esta diferente alimentación pretende evitar interferencias en la imagen de vídeo producidas por servos, motores, etc.

En la página de audupilot relativa el OSD se indica el siguiente esquema de conexión:

Si nos fijamos en este gráfico, todo el conjunto FPV analógico es alimentado por una batería de 12V independiente. El transmisor de vídeo se alimenta desde el ODS.

En concreto este es mi esquema de conexionado:

(esquema)

Programación del módulo MiniOSD.

El módulo MiniOSD ejecuta un firmware que podemos actualizar y configurar pudiendo seleccionar diferentes modos de visualización de los datos. Para configurar el MiniOSD lo conectaremos al ordenador mediante un adaptador a USB. Este último es un módulo FTDI:

Su conexionado al MiniOSD es el siguiente:

FTDI – Minimosd

GND – BLK CTS – GND VCC – 5V TX – RX RX – TX DTR – GRN

El módulo FTDI es alimentado por el ordenador a través del USB. El MiniOSD es alimentado desde el FTDI. No hay que tener conectada ninguna batería en el drone.

El módulo MiniOSD está basado en Arduino y para cargarle los diferentes firmware disponibles utilizamos la aplicación Arduino, la cual la descargamos desde:

https://www.arduino.cc/en/Main/OldSoftwareReleases

En nuestro caso nos bajamos la versión 1.8.1 para Windows y la instalamos.

Firmware MW_OSD

Por último debemos descargarnos el firmware que le vamos a volcar. Vamos a probar el MW_OSD. La página principal de este proyecto es http://www.mwosd.com/.

Lo descargamos desde:

https://github.com/ShikOfTheRa/scarab-osd/blob/master/OTHER/DOCUMENTATION/Downloads.md

En nuestro caso nos bajamos la versión 1.7 y la instalamos.

Lo primero que hacemos es borrar la eprom del OSD para tener una configuración limpia.

Para ello seleccionamos File –> Examples –> EEPROM –> eeprom_clear)

Para la correcta comunicación con el OSD debemos seleccionar primero una serie de parámetros:

Herramientas –>Puerto –> COM5 (en nuestro caso)

Herramientas -> Tarjeta-> Arduino Nano

Procesador –> ATmega328

Herramientas –> Programador -> AVRISP mkII

Ahora verificamos:

Programa –> Verificar/compilar

y por último lo cargamos:

Programa –> Subir

Si todo ha ido bien aparecerá un mensaje de confirmación y se encenderá fija la luz del OSD.

Ya tenemos el OSD limpio para cargarle un nuevo firmware.  El último firmware lo podemos descargar de:

https://github.com/ShikOfTheRa/scarab-osd/blob/master/OTHER/DOCUMENTATION/Downloads.md

El MW OSD es un firmware de código abierto. Se compone de dos parte, el firmware como tal y un GUI para configurarlo desde el ordenador.

Nos descargamos la versión R1.7.

La descomprimimos y vemos que tiene dos carpetas. Entramos en MW_OSD y hacemos doble click en MW_OSD.ino, automáticamente se nos abrirá el programa Arduino. Se abrirán varias pestañas. Seleccionamos la pestaña config.h. Aquí debemos descomentar algunas.

En nuestro caso,  en OSD HARDWARE setting no tenemos que descomentar nada al usar una MinoOSD, es el valor por defecto.

En el apartado CONTROLLER SOFTWARE descomentamos la línea

#define PIXHAWK

ya que nuestra controladora es una Pixhawk. En nuestro caso no necesitamos tocar nada más.

Al igual que antes, seleccionamos Verificar/compilar y subir.

Si todo ha ido bien, ya tenemos el último firmware cargado en la MiniOSD.

Ahora nos vamos a la carpeta MW_OSD_GUI. La aplicación se proporciona como una extensión del navegador (archivo .crx). Para instalarlo abrimos el navegador Chome:

Accedemos al menú de Configuración.

Hacer click en Extensiones.

Activar la casilla «Modo de programador»

Arrastrar el archivo MWOSD GUI R1.6.crx y soltarlo en la página de extensiones.

En la ventana emergente seleccionar Añadir aplicación. Una vez hecho esto, ya tenemos la aplicación GUI disponible en Chome. La ejecutamos Desde Aplicaciones –> MWOSD R1.6 FREE.

Lo primero que tenemos que hacer es seleccionar el puerto COM y la velocidad, en mi caso COM5 y 57600.

Aquí nos llevamos una sorpresa, la version R1.6 del GUI que se incluye con el firmware R1.7 no es compatible con el firmware R1.7. La versión del GUI 1.7 es de pago y se puede adquirir desde la aplicación web por menos de dos dólares. Un feo detalle por parte de MWOSD hacerlo de esta manera.

Una vez descargado el GUI 1.7 y ya conectados, podemos configurar los diferentes parámetros disponibles. Una vez realizada la configuración de la visualización que queramos, los cuales exceden el ámbito de este artículo, debemos pulsar en la pestaña ODS Write para grabarla en la OSD.

Hay que decir que desde el MWOSD GUI también se pueden seleccionar algunos firmwares de dicha versión para algunos hardware determinados y hacer la instalación online directamente. La equivalente a la que hemos instalado es la MINIM OSD.

Una vez cargado el firmware, en mi caso aparecieron varios problemas. Por un lado los caracteres mostrados no se mostraban correctamente. Tuve que hacer un font upload desde el GUI. Además de eso no había comunicación con la controladora Pixhawk. En teoría debería funcionar con  MAVLink1 a 57600 bps en modo sin control de flujo. Pero no hubo manera de hacerlo funcionar. Así que probamos con otros firmwares como los siguientes.

Firmware KV_Team_OSD

Este es otro firmware que podemos probar. Bajamos el archivo KV_Team_2.2.zip de:

https://code.google.com/archive/p/rush-osd-development/downloads

Borra la EEPROM como antes he instala KV_Team_OSD.INO como ya sabemos hacer.

Este firmware tampoco funcionó bien en mi caso y además parece descontinuado.

OSDExtra

La página de este proyecto, recuperado tras un estancamiento, se encuentra en:

https://github.com/night-ghost/minimosd-extra

La últimas versiones del firmware y configurador:

https://github.com/night-ghost/minimosd-extra/blob/master/osd_latest.zip?raw=true

Ejecutamos OSD_Config.exe

Hacer click en  Options -> Update Firmware

Seleccionar en principio la última versión, que es un archivo .hex ubicado en el directorio FW_+_Char. Automáticamente se realiza la carga sobre la OSD.

Al probar el OSD comprobamos que la imagen está llena de caracteres extraños. Para solucionarlo hacemos clip en Options –> Update CharSet y seleccionamos la última versión de archivo .mcm de los disponibles. Inmediatamente comenzará a cargarse el nuevo juego de caracteres. Pero aún así me siguieron apareciendo problemas, básicamente el horizonte artificial no se muestra bien en las últimas versiones con mi Pixhawk.

Finalmente, tras probar varias versiones, me quedé con la siguiente:

MinimOsd_Extra_Uni.890DV-MAVLINK-release.hex

Algunas versiones se visualizaban bien pero no había comunicación con la controladora. En otras todo funcionaba bien menos el horizonte artificial, etc. Después de muchas pruebas la versión 8.9.9 era la mejor opción para mi versión hardware de MiniOSD y mi firmware de Pixhawk.

En cuanto a los datos que se mostrarán en pantalla, es una cuestión de gustos. En mi opinión debemos huir de mostrar una gran cantidad de información. Para mí los datos importantes son los siguientes:

Voltaje de batería
Corriente electrica
Porcentaje uso de batería
Horizonte artificial
Estado de GPS: número de satélites sincronizdos
Dirección de vuelta a casa
Altitud
Distancia al punto de despegue

Además de todo esto, para la correcta visualización de algunos parámetros es posible que tengamos que ajustar en la pixhawk alguno de los siguientes parámetros relativos a la frecuencia de refresco:

SR2_EXT_STAT = 2
SR2_EXTRA1 = 5
SR2_EXTRA2 = 2
SR2_EXTRA3 = 3
SR2_PARAMS = 0
SR2_POSITION = 2
SR2_RAW_CTRL = 2
SR2_RAW_SENS = 2
SR2_RC_CHAN = 5

Por último, es nuestro caso asignamos el canal 9 (AUX4) en la emisora Spektrum DX9 a la palanca E para la conmutación de la fuente de vídeo:

Systrem Setup –> Channel Assign –> Next (Channel Input Config) –> 9 AUX4: E

Firmware arducam-osd

Página del proyecto: https://code.google.com/archive/p/arducam-osd/

Para descargar el software abrir la página:

https://code.google.com/archive/p/arducam-osd/downloads

Nos bajamos dos ficheros:

Config_OSD_20.zip Utilidad e configuración

MinimOSD_20.hex Archivo de firmware

Ir a la carpeta correspondiente y descomprimir  Config_OSD_20.zip

Ejecutar OSD_Config.exe

Seleccionar Read From OSD

Si todo está bien debería establecerse comunicación son el MinOSD y leer sus valores actuales.

Para configurar el OSD contamos con tres pestañas:

Config: parámetros generales de configuración

Panel 1: Configuracón de aspecto del panel 1

Panel 2: configuración de aspecto del panel 2 alternativo

Configuración de parámetros generales:

OSD Toggle Channel: Es el canal utilizado en la emisora para comnutar entre la visualización del panel 1 o el panel 2. Si el canal no es correcto o los valores de PWM configurados en la Pixhawk no son adecuados, la visualización no será correcta, será un panel en negro o un panel errático.

Algunos parámetros más destacados son:

OSD Brightness: brillo con el se visualizan los datos en la pantalla

Units: Sistema de unidades utilizado

Ajuste de datos en los paneles:

Pulsar en cada tipo de dato para seleccionarlo. Veremos que aparece un ejemplo de la imagen de prueba. Podemos pulsar en el con el ratón y moverlos a la zona de la imagen que queramos.

Configuración de la Pixhawk:

Para habilitar el uso del canal de selección de paneles, debemos ir a:

Inital Setup –> Optional Hardware –> OSD

En dicha pantalla vemos el margen de valores PWM utilizado.

Pusar el Enabme Telemetry para habilitar el uso del canal.