Componente Android - brunasor/SistemasEmbutidosGrupo4 GitHub Wiki
Aplicação de controlo e visualização
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