La interfaz por comandos desarrollada para el vehículo, permite el acceso a información interna en tiempo de ejecución y es indispensable para la operación del mismo, al recibir los comandos de encendido y apagado desde los controles ubicados en la parte superior del vehículo. Sin embargo, el objetivo de este sistema de comunicación es permitir el acceso a un software de monitoreo que se ejecuta desde un computador, el cual tiene la capacidad de mostrar en tiempo real parámetros del vehículo a un operador, e incluso registrarlo en archivos para su posterior análisis.
Este programa fue realizado bajo el entorno de desarrollo de software Delphi, el cual se especializa en la programación visual, permitiendo la generación de interfaces gráficas de manera sencilla utilizando el lenguaje de programación Object Pascal. El programa compilado es un archivo ejecutable para sistemas operativos Windows. En la Figura 4.20 se muestra la interfaz gráfica del programa de monitoreo al momento de iniciarse.
Figura 4.20: Interfaz gráfica del software de monitoreo del vehículo.
El programa se comunica a través de una interfaz RS-232, cuyo hardware es el conversor a USB incorporado en la tarjeta de control, por lo que únicamente se requiere un puerto USB disponible en un computador con plataforma Windows para utilizarlo.
La interfaz gráfica posee un área llamada “Datos Recibidos”, que muestra automáticamente el valor de los parámetros allí incluidos al recibir la información desde el vehículo. De esta manera, si se envía al vehículo el comando que solicita el flujo de datos del módulo IMU, automáticamente los indicadores de la parte superior mostrarán la inclinación y la velocidad de inclinación en tiempo real y el valor numérico de las lecturas. Lo mismo sucede con cualquiera de los otros datos que se solicite. El indicador vertical, ubicado al costado derecho de esta área, permite visualizar el valor de la acción de control calculada por el vehículo en tiempo real, si es que se solicita esa información (ver Figura 4.20).
La sección “Interfaz” posee una representación de los controles disponibles en la parte superior del mando de dirección en el vehículo, siendo posible emular su funcionamiento.
En la sección “Comandos” se pueden enviar comandos arbitrarios. Es posible elegir comandos predefinidos de una lista, pero siempre se permite escribir los códigos manualmente, al igual que el valor enviado.
Este software posee también un historial de los comandos enviados, que también registra algunos de los comandos recibidos.
Los comandos implementados en el vehículo se muestran en la Tabla 4.5:
Nombre de comando |
Código decimal |
Efecto sobre el vehículo |
PING_DSP |
192 |
Este comando no ejecuta ninguna acción excepto generar la devolución del mismo. Su objetivo es verificar conectividad con el controlador. |
TRIP_MOTOR |
193 |
Apaga de inmediato los motores. Es el comando de detención del vehículo. |
UNLOCK_MOTOR |
194 |
El controlador esperará que el vehículo se encuentre detenido y vertical para encender efectivamente los motores. |
FIJAR_INCL_NULA |
196 |
Envía una orden a los inclinómetros, para que éstos fijen su ángulo 0° en la posición actual. |
DETENER_FLUJOS |
197 |
Detiene los flujos de datos si los hubiera. |
LEER_INCLINOMETROS |
129 |
Envía la lectura de inclinación al software de monitoreo. |
LEER_GIROSCOPOS |
130 |
Envía la lectura de velocidad de inclinación al software de monitoreo. |
LEER_CORRIENTE_D |
131 |
Envía la lectura de corriente del motor derecho al software de monitoreo. |
LEER_CORRIENTE_I |
132 |
Envía la lectura de corriente del motor izquierdo al software de monitoreo. |
FLUJO_INCLINOMETROS |
133 |
Envía un flujo de datos con los valores en tiempo real de inclinación al software de monitoreo. |
FLUJO_GIROSCOPOS |
134 |
Envía un flujo de datos con los valores en tiempo real de velocidad de inclinación al software de monitoreo. |
FLUJO_CORRIENTE_MD |
135 |
Envía un flujo de datos con la corriente en el motor derecho al software de monitoreo. |
FLUJO_CORRIENTE_MI |
136 |
Envía un flujo de datos con la corriente en el motor izquierdo al software de monitoreo. |
FLUJO_IMU |
137 |
Envía un flujo de datos con los datos tanto de inclinación como de velocidad de inclinación al software de monitoreo. |
FLUJO_ADC |
138 |
Envía un flujo de datos con el valor obtenido del sistema de dirección, la lectura de las baterías y la presión en el sensor de fuerza, al software de monitoreo. |
FLUJO_CONTROL |
141 |
Envía un flujo de datos con la salida del algoritmo de control PD al software de monitoreo. |
SET_MD_F_DUTY |
65 |
Fija el ciclo de trabajo del motor derecho hacia adelante. (Si está operando el controlador, éste sobre escribirá este valor) |
SET_MD_B_DUTY |
66 |
Fija el ciclo de trabajo del motor derecho hacia atrás. (Si está operando el controlador, éste sobre escribirá este valor) |
SET_MI_F_DUTY |
67 |
Fija el ciclo de trabajo del motor izquierdo hacia adelante. (Si está operando el controlador, éste sobre escribirá este valor) |
SET_MI_B_DUTY |
68 |
Fija el ciclo de trabajo del motor izquierdo hacia atrás. (Si está operando el controlador, éste sobre escribirá este valor) |
SET_CTRL_KP |
69 |
Fija la constante proporcional del controlador de inclinación para cuando hay un usuario sobre la plataforma. |
SET_CTRL_KD |
70 |
Fija la constante derivativa del controlador de inclinación para cuando hay un usuario sobre la plataforma |
Tabla 4.5: Descripción de comandos del vehículo.
Finalmente, los controles de la parte inferior izquierda de la interfaz gráfica (ver Figura 4.20) permiten almacenar flujos de datos solicitados al vehículo. Una vez que se detiene la captura, se puede generar un archivo de texto separado por tabulaciones con los valores recibidos durante el período de captura.
jhonny piña says:
estoy interesado en comprender y dominar el uso de este software para el desarrollo de interfaz graficas en el uso de monitoreo de variables climatologicas
RoMaNo says:
Estimado, esta iinterfaz la hice usando el software Delphi, el cual es un entorno de programación orientado a aplicaciones de windows (aunque ahora es multiplataforma). Usé ese software porque tenía experiencia con él, pero no sé si sea la opción más adecuada para tu aplicación aunque por supuesto que podría servirte.
Internet está lleno de tutoriales de éste y otros programas que permiten hacer interfaces gráficas. Lo importante para ti, más que la interfaz misma es cómo recibirás la información. Yo usé comunicación por puerto serie porque así diseñé la electrónica del vehículo, pero la interfaz de comunicación adecuada para tu problema dependerá de tus instrumentos.