Componente Android - brunasor/SistemasEmbutidosGrupo4 GitHub Wiki

Aplicação de controlo e visualização

N|Solid

Android/IOS

Por meio dessa aplicativo é possivel visualizar o video em tempo real transmitido pelo Raspberry Pi e ter controle sobre a movimentação do Alphabot. É também possivel a partir desta aplicação a configuração dinâmica das fontes para transmissão dos comandos de movimento, como também para a receção do video.

Pacotes Pub

Foram usados nessa aplicação os seguintes pacotes pub.

  • flutter_mjpeg.dart
    • Este pacote foi usado com o proposito da receção da video em tempo real que será transmitido usando MJPEG.
  • http.dart' as http
    • Este pacote foi usado com o proposito de possibilitar o envio de menssagens HTTP.
  • control_pad.dart
    • Este pacote foi usado com o proposito de forncer uma interface de gamepad para interagir com o utilizador.

Widgets

O Widget para a visualização da stream pode ser inicializado da seguinte forma:

 Mjpeg(
  isLive: true,
  error: (context, error, stack) {
    print(error);
    print(stack);
    return Text("Can't open " + video.stream + "\n" + error.toString(),
        style: TextStyle(color: Colors.red));
  },
  stream: URL_VIDEO,
);

O Widget para a captura e fornecimento de um interface de gamepad pode ser inicializado da seguinte forma:

JoystickView(
    backgroundColor: Colors.red,
    innerCircleColor: Colors.redAccent,
    onDirectionChanged: (double x, double y) =>{handleChange(x, y)}
    );

Funções

Para lidar com a modificação de direção quando o utilizador interage com o gamepad widget. O seguinte codigo é utilizado:

void sendDirection(String action, double z) {

  if (lastAction!=action) {
    http.post(
      Uri.parse(URL),
      headers: <String, String>{
        'Content-Type': 'application/json; charset=UTF-8',
      },
      body: jsonEncode(<String, String>{
        'dir': action,
      }),
    );
    lastAction = action;

  }
}

Instalação/Build

Para instalar o Aplicativo basta ter o flutter instalado na maquina local ou usar algum enviroment online e executar os seguintes comandos dentro da pasta principal.

flutter pub get
flutter pub run --no-sound-null-safety