
Это проект, в котором мы создали мобильное приложение для управления пользовательским самобалансирующим роботом через интерфейс Bluetooth HC-08. Проект позволяет отправлять команды в микроконтроллер Arduino для выполнения таких задач, как:
Выбранная структура была Ionic Framework, это очень хороший инструмент для сборки мобильных приложений Android и iOS с использованием JavaScript, HTML и CSS. Но для этого конкретного я выбрал ReactJS в качестве библиотеки JavaScript с шаблоном TypeScript. Для управления государством был выбран Redux с подключением для 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 : [ ] ,
} ; 
Приложение состоит из вкладок и несколькими компонентами для рендеринга различных пользовательских интерфейсов.

Чтобы сотрудничать или просто использовать этот проект, вы должны подготовить среду Android.
[https://developer.android.com/studio]
Если вы являетесь пользователем Linux, вы просто выполните это или добавите его в соответствующий файл конфигурации, специфичный для оболочки. Пример: bash_profile, bashrc и т. Д.
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]
После загрузки репо, запустите следующие команды
npm installionic serveЭто запускает проект в вашем веб -браузере, но нативные плуггинс не будут работать.
ionic cap add androidДля создания проекта iOS
ionic cap add iosОткройте Android Studio в папке Android и запустите приложение в симуляторе.
Для живых функций и работать непосредственно над приложением, установленным на симуляторе, запустите это.
npm run dev[https://github.com/josealejandro2928/ Self-balancing-arduino-robot-controller]
В корне проекта у вас есть демонстрация приложения ".apk"
SB_Controller.apk