O objetivo desse projeto é controlar o drone DJI Tello, a fim de aprender sobre conceitos de comunicação utilizando o protocolo UDP, linguagem Dart e framework Flutter para desenvolvimento multiplataforma de apliativos mobile.
Realizado durante as lives da twitch no canal BitToin, foi um projeto que utilizou como base um pacote em Dart feito também durante as lives para a comunicação da linguagem suportada em Dart/Flutter com o Drone. Atualmente o pacote está disponível de maneira oficial no site de pacotes do Dart (link do package).
Siga estas instruções para criar, replicar e modificar o modelo de app na sua máquina.
O principal pré-requisito do projeto é ter o Drone para testá-lo com o app e modificar á vontade. Caso não tenha ainda é possível aprender bastante coisa relacionado a elementos inerentes ao framework e aplicativo.
Para realizar o deploy da aplicação na sua máquina será necessária a instalação do Dart e Flutter. Entre no link a seguir e acompanhe as instruções de acordo com seu sistema operacional
Guia de instalação do Dart e Flutter na máquina
Caso queira clonar este projeto direto do github na sua máquina, também será necessário o git instalado.
Guia de instalação do Git na máquina
Com o ambiente configurado, basta clonar este repositório utilizando o comando no terminal:
git clone https://github.com/mateustoin/Flutter-app-DJI-Tello-Drone
Para instalar os pacotes necessários, entre na pasta pelo terminal. Com tanto que o ambiente esteja configurado de acordo com o guia anterior, digite:
flutter pub get
Com os pacotes e dependências instalados corretamente, basta rodar o código:
flutter run
Com o drone em mãos, basta ligá-lo e aguardar o sinal WiFi ser gerado para conectar o aparelho de celular nele. Após a conexão, o aplicativo automaticamente passa a se comunicar com o Drone e todos os botões passam a funcionar.
Controla a direção em que o drone se movimenta. Vai para frente, para trás, para esquerda e para direita. Além dos movimentos nas direções citadas, aumenta a velocidade de acordo com o quanto o joystick é puxado para o lado, indo de 0% até 100%.
Segue a mesma lógica de funcionamento do anterior, porém controla se o drone vai para cima, para baixo, gira no próprio eixo no sentido horário e no sentido anti-horário. Além dos movimentos nas direções citadas, aumenta a velocidade de acordo com o quanto o joystick é puxado para o lado, indo de 0% até 100%.
Faz o Drone sair do repouso e começar a voar.
Faz o Drone pousar.
Envia o comando 'command' para o drone, a fim de manter conexão quando não estiver em uso.
Aumenta a velocidade do Drone
Diminui a velocidade do Drone
- Controlar a velocidade do Drone com uma Slide Bar
- Deixar responsível para os joystick encaixarem em qualquer tela
- Toda vez que aumentar ou diminuir a velocidade, aparecer pop up toast na tela
- Comando de voz?