
Este es un proyecto en el que creamos una aplicación móvil para controlar un robot personalizado de autoealimentación a través de una interfaz Bluetooth HC-08. El proyecto permite enviar comandos al micro controlador Arduino para realizar tareas como:
El marco seleccionado fue el marco iónico, esta es una herramienta muy poderosa para construir aplicaciones móviles de Android e iOS que usan JavaScript, HTML y CSS. Pero para este particular seleccioné ReactJS como una biblioteca JavaScript con plantilla de mecanografiado. Para la administración estatal se seleccionó el Redux con el enchufe para React.

////////////////////////// INTERFACES ////////////////////////
export interface IRobotState {
linearVelocity : number ;
angularVelocity : number ;
incliAngle : number ;
posX : number ;
posY : number ;
robotOrien : number ;
battery ?: number ;
startSampling ?: boolean ;
sampleTime ?: number ;
persistData ?: boolean ;
records ?: Array < {
linearVelocity : number ;
angularVelocity : number ;
incliAngle : number ;
posX : number ;
posY : number ;
robotOrien : number ;
battery : number ;
} > ;
}
/////////////////////////////////////////////////////////////////
////////////////////////TYPES////////////////////////////////
export const SET_ROBOT_DYNAMIC_STATE = 'SET_ROBOT_DYNAMIC_STATE' ;
export const RESET_ROBOT_DYNAMIC_STATE = 'RESET_ROBOT_DYNAMIC_STATE' ;
export const PERSIST_ROBOT_DYNAMIC_STATE = 'PERSIST_ROBOT_DYNAMIC_STATE' ;
///////////////////////////////////////////////////////////
const initialState : IRobotState = {
linearVelocity : 0.0 ,
angularVelocity : 0.0 ,
incliAngle : 0.0 ,
posX : 0 ,
posY : 0 ,
robotOrien : 0.0 ,
battery : 50 ,
startSampling : false ,
sampleTime : 150 ,
persistData : false ,
records : [ ] ,
} ; 
La aplicación está compuesta por pestañas y varios componentes para representar las diferentes UI.

Para colaborar o simplemente usar este proyecto, debe tener el entorno Android listo.
[https://developer.android.com/studio]
Si es usuario de Linux, simplemente ejecuta esto o lo agregue al archivo de configuración específico de shell apropiado. Ejemplo: Bash_profile, Bashrc, etc.
export ANDROID_SDK_ROOT= $HOME /Library/Android/sdk
export PATH= $PATH : $ANDROID_SDK_ROOT /emulator
export PATH= $PATH : $ANDROID_SDK_ROOT /platform-tools[https://nodejs.org/en/]
[https://ionicframework.com/docs/intro/cli]
Una vez que se haya descargado el repositorio, ejecute los siguientes comandos
npm installionic serveEsto ejecuta el proyecto en su navegador web, pero los Pluggines nativos no funcionarán.
ionic cap add androidpara generar el proyecto iOS
ionic cap add iosAbra el estudio de Android en la carpeta Android y ejecute la aplicación en el simulador.
Para funciones en vivo y para trabajar directamente en la aplicación montada en el simulador, ejecute esto.
npm run dev[https://github.com/joseAlejandro2928/self-balancing-arduino-robot-controller]
En la raíz del proyecto, tienes una demostración de la aplicación ".apk"
SB_Controller.apk