Home

Fernando Fernández

Maroc
Maroc (Medición automática robotizada de la oscuridad del cielo) es un proyecto desarrollado por la asociación de astronomía del Campo de Gibraltar "Luz Cero" que a su vez forma parte de la Rada (Red Andaluza de Astronomía).
Su objetivo es automatizar y facilitar en lo posible la toma de datos propuestas en el proyecto NIXNOX.

El sistema diseñado está formado por tres elementos:

  • SQM-LU. Un dispositivo que permite analizar la calidad del cielo y comunicarse utilizando el protocolo RS-232.
  • Una montura motorizada, inspirada en la montura dobson, donde se coloca el SQM-LU para realizar las lecturas en las posiciones deseadas. Permite comunicación por el protocolo RS-232 para mover ambos motores (plano horizontal y vertical).
  • Una aplicación de escritorio que se comunica con los dos elementos anteriores para coordinar tanto la colocación del SQM-LU como las lecturas realizadas.

Tanto el SQM-LU como la montura tienen un adaptador de puerto serie que permite conectarlos a un puerto USB estándar de ordenador.

Montura motorizada
Los principales componentes de las montura son dos motores paso a paso bipolares y un microcontrolador. El resto de componentes electrónicos son los necesarios para una integración y funcionamiento correcto.
En la planificación inicial se contempló la posibilidad de una arquitectura basada en arduino pero buscando un ahorro de costes se optó por una solución basada en el chip PIC16F84 de la empresa Microchip.
Las características del chip condiciona el nivel de complejidad del programa desarrollado ya que estamos limitado a 1 KB de memoria. Se ha implementado toda la parte de control en la aplicación de escritorio y el micro se limita a enviar los pasos al motor que que se le indican.
El programa para el chip se realizó en C utilizando el entorno MPLAB X disponible gratuitamente y en versiones para windows y Linux. Desde esa misma página se descarga la versión gratuita del compilador de C, “HITECH-C Compiler LITE for PIC10/12/16”.
Se ha implementado 4 instrucciones que se leen por el puerto serie con una configuración de 2400 bps, 8bits de datos, 1 de stop y sin paridad. Cada instrucción es de la forma @NNNN done “@” puede ser las letras A,B,C o D y “N” es un dígito numérico.
A20: Realizar 20 pasos en el motor 1 en un sentido.
B20: Realizar 20 pasos en el motor 1 en el sentido contrario.
C20: Realizar 20 pasos en el motor 2 en un sentido.
D20: Realizar 20 pasos en el motor 2 en el sentido contrario
El programa devuelve el carácter '0' si entiende la instrucción y '1' en caso de error.

Aplicación de escritorio
La aplicación de escritorio se ha realizado en Java para permitir un entorno multiplataforma y disponer de una amplia lista de librerías que aportan gran funcionalidad.
El entorno de desarrollo empleado ha sido eclipse.
Se ha testeado tanto bajo MS-Windows (XP y 7) como Linux (Kubuntu 11.0). También se ha probado en entornos de 32 y 64 bits.
Las librerías utilizadas son:

  • RXTX-2.2pre2 que permite utilizar el puerto serie.
  • Jexcelapi-2.6.13 para generar ficheros en formato excel.
  • Ini4j-0.5.24 para leer y guardar parámetros de configuración en archivos .ini.
  • Jama-1.0.2 para trabajar con matrices (usado en la implementación del kriging para la generación del mapa)


La aplicación usa los comandos A y B para controlar el plano de altitud y C y D para el de azimut. La posición inicial será con el sqm apuntando al cenit y la posición de azimut con el sur en 0º.

Características de la aplicación:

  • Ventana de configuración para
    • Definir los puertos series y si se desea activar el modo simulación.
    • Definir el número de lecturas a realizar en azimut y altitud así como las posiciones mínimas y máximas en altitud (sin considerar el zenit).
    • Determinar los parámetros de la montura a partir de los cuales se calculan los pasos necesarios que tiene que realizar cada motor para moverse a la posición deseada. Se puede hacer de dos formas:
      • Estableciendo los diámetros de la corona y piñon de cada plano junto con los pasos de las especificaciones del motor.
      • Estableciendo el total de pasos que tiene que realizar el motor para obtener un giro completo (360º) de la corona en cada plano.
    • Los parámetros definidos se guardan automáticamente en el fichero maroc.ini para poder recuperarse cuando se inicie la aplicación de nuevo.
  • Ventana principal para introducir el nombre de la zona donde se realiza la captura de datos
  • Durante la toma de datos se ofrece la siguiente información
    • Pestaña Principal: Representación gráfica del estado actual del proceso.
    • Pestaña Log: Mensajes intercambiados con la montura y con el SQM-LU.
    • Durante las lecturas se generan señales audibles para indicar si la lectura se considera correcta o si tiene que repetirse por encontrar demasiada diferencia entre la lectura mínima y la máxima (el nivel de tolerancia es parametrizable en la configuración). También se avisa cuando ha terminado todo el proceso.
  • Al finalizar el proceso de lectura.
    • Pestaña Resultados: Se muestran las lecturas y las fechas en el formato establecido por el proyecto NIXNOX.
    • Pestaña Gráfico: Una representación visual calculada interpolando mediante una algoritmo de Kriging, los datos obtenidos. Se ha utilizado un kriging ordinario y un modelo de semivarianza lineal.
    • Se puede guardar en un archivo excel los datos de las pestaña Resultados para enviarse al proyecto NixNox.
    • También se puede guardar en formato jpeg el gráfico generado.

Posibles mejoras
Hay muchos aspectos por donde se puede ampliar y mejorar el proyecto

  • Gestionar entrada de datos erróneas en los parámetros de configuración.

  • Utilizar una base de datos para guardar todas las lecturas de cualquier ubicación y poderlas consultar cuando se desee.

  • Importar las lecturas de un fichero excel ya generado.

  • Utilizar una arquitectura arduino para la montura:
    • Dar mayor entidad a la montura. Que la aplicación de escritorio sólo comunique los parámetros de configuración y la montura se mueva de forma autónoma y se comunique directamente con el SQM-LU. Cuando termine todo el proceso de lectura pasa los datos a la aplicación para que genere la gráfica y el fichero excel.

    • Colocarle un interfaz bluetooth o wifi en la montura para comunicar con la aplicación de forma inalámbrica. En este caso se abre la posibilidad de adaptar la aplicación para que funcione en entorno Android y permitir realizar el proceso desde un móvil o una tablet.

Soporte
Maroc en el foro de Luz Cero

Licencia
Tanto la aplicación de escritorio como el programa para el PIC16F84 se han liberado con licencia GPL v3 ya que se desea que este proyecto pertenezca y sea mejorado por la comunidad sin costes adicionales.

El esquema electrónico de la montura junto con el programa c y el .hex generado para el PIC se incluyen también en la descarga.