
Este é um projeto no qual criamos um aplicativo móvel para controlar um robô de auto-equilíbrio personalizado através de uma interface Bluetooth HC-08. O projeto permite o envio de comandos ao Micro Controlador Arduino para executar tarefas como:
A estrutura selecionada foi a estrutura iônica, essa é uma ferramenta muito boa para criar aplicativos móveis Android e iOS usando JavaScript, HTML e CSS. Mas, para este em particular, selecionei o ReactJS como uma biblioteca JavaScript com o Modelo do TypeScript. Para o gerenciamento de estado, o Redux com o plugging for React foi selecionado.

////////////////////////// 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 : [ ] ,
} ; 
O aplicativo é composto por guias e vários componentes para renderizar as diferentes UIs.

Para colaborar ou simplesmente usar este projeto, você deve ter o ambiente Android pronto.
[https://developer.android.com/studio]
Se você é o usuário do Linux, basta executar isso ou adicioná-lo ao arquivo de configuração específico do shell apropriado. Exemplo: 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]
Depois que o repo for baixado, execute os seguintes comandos
npm installionic serveIsso executa o projeto no seu navegador da Web, mas os Pluggins nativos não funcionarão.
ionic cap add androidPara gerar o projeto iOS
ionic cap add iosAbra o estúdio Android na pasta Android e execute o aplicativo no simulador.
Para funções ao vivo e para trabalhar diretamente no aplicativo montado no simulador, execute isso.
npm run dev[https://github.com/josealejandro2928/self-balancing-ardoino-robot-controller]
Na raiz do projeto, você tem uma demonstração do aplicativo ".apk"
SB_Controller.apk