Paso 4: Aplicación para Android
Desde el inicio de este proyecto, uno de mis objetivos fue desarrollar una aplicación Android de la compañía para permitir el control del robot. Como mis habilidades de desarrollo SW están todavía "en desarrollo", me ha encantado tropezar en el entorno de desarrollo Android app MIT AI2 - resultó para ser perfecto para lo que quería hacer.
Pasé algún tiempo con una serie de tutoriales para tener una idea de cómo eran las cosas setup y de Whatakuai y Pura Vida en cómo aprovechar la interfaz de BT. Pero en lugar de pasar tiempo explicando MIT AI2, describiré cómo la aplicación está destinada a ser utilizado y cómo los bloques son estructura.
La app es una simple colección de botones y controles deslizantes para permitir al usuario configurar y controlar el robot. Abajo se encuentra una descripción de los controles de la aplicación.
· Módulo de BT: cada vez que se inicia la aplicación, o desenergiza robot, el usuario deberá conectarse con el módulo de BT de robot. Este es el botón que facilita esa acción.
· Espera: Una vez que el robot está conectado a BT, y la Junta de Galileo ha arrancado, el Robot inicia en el estado de espera. Este botón se utiliza para indicar el robot para entrar en el activo, estado de equilibrio. Tenga en cuenta que el robot sólo intentará equilibrar si está dentro de 2deg de vertical, aunque este botón informes "Activo", usted va a necesitar colocar el robot en posición vertical cerca de ella comenzar a equilibrar. Este botón puede utilizarse para alternar entre "Espera" y "Activo" como se desee.
· PID: Este botón se utiliza para permitir al usuario cambiar la "P", "I" y "D" valores para el controlador PID en el robot el robot en funcionamiento. Al presionar, recuperar los valores de PID del robot y mostrar a continuación el respectivo "+" y "-" botones. El valor de incremento y decremento para cada parámetro son difíciles de cifrar en el esbozo de la robusteza.
· FW Ver: Este es el esbozo de la robusteza versión de Firmware. Pasé por muchas versiones de bocetos y varias tarjetas de SD, así que me pareció muy útil para saber la versión que corría en el robot. Este valor es difícil codificado en el bosquejo utilizando una instrucción #define y se envía a la aplicación de Android cuando el robot sale de Standby.
· VBAT: Tensión de la batería de la robusteza, enviada cada segundo
· HB: Indicador de latidos del corazón. El texto cambia de color una vez por segundo para indicar que el bosquejo sigue funcionando en el robot.
· Rollo calibre: basado en el módulo que tienes, y cómo está montada en el robot, vertical puede no leer como 0deg. Esto le permite "calibrar" qué el MPU Lee cuando el robot está vertical. El "+" y "-" botones son compartidos entre el rodillo calibrar y flojo de Motor, por lo que sólo se puede cambiar en cualquier momento. El valor actual del rodillo calibrar es obtenido del robot cuando se selecciona el botón de radio.
· Motor holgura: Los motorreductores DC usé tenían una zona en los menores valores PWM que no den lugar a cualquier movimiento del eje del motor. Esto resulta en una región no lineal de control para la salida del PID. Encontré que al "saltar" sobre estas valor PWM baja (motor holgura) en la salida del PID, mejor podría equilibrar el robot. Este botón permite recuperar el valor actual de lo robot y ajustar el tamaño del "salto"
· Velocidad: Esto permite al usuario controlar la velocidad del robot. Debido a una limitación en el entorno de compilación de Ia del MIT, la aplicación no permite multi-touch, así que usted no puede cambiar los reguladores de velocidad y la dirección simultáneamente. Una búsqueda en internet sobre el tema muestra hay un trabajo alrededor para permitir la operación de multi-touch, pero yo todavía no la he buscaban.
· Dirección: Esto permite al usuario controlar la dirección del robot.
· Salir: sale de la aplicación para Android
Encontré el método visual utilizado por AI2 MIT para desarrollar los detalles de la aplicación en la sección de "Bloques" a ser un poco incómodo -, pero le permitirá llegar a sus propias conclusiones. No tuvo éxito en tomar una captura de pantalla de la disposición de bloques, pero que están dispuestos en tres columnas. Debería poder importar el .iai archivo en MIT AI2 y ver los detalles por sí mismo.
La primera columna implementa los botones salir, módulo BT, espera, datos de registro, velocidad, dirección, Error del rodillo y Motor flojo.
El segundo instrumentos de columna el PID habilitar botón y la P, I y D "+" y "-" botones. También implementa el Error del rodillo y Motor flojo "+" y "-" botones.
La tercera columna implementa el temporizador de Bluetooth, utilizado para comprobar la interfaz para la información recibida y bloques para extraer y ejecutar comandos en el robot. Tomó force-ish algún ensayo y error para conseguir la recepción de datos Bluetooth y comando de extracción de trabajo y el resultado es un poco bruta, pero al final, funcionó bastante bien.