Skip to content

Raphael-Marchetti-Calciolari/projects-drone-raspberry-pi3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProjetoDroneRaspberryPi3

Descrição do Projeto

O objetivo inicial do projeto é desenvolver uma forma de controlar um Parrot AR Drone 2.0 através de qualquer interface Wifi, utilizaremos a do Raspberry Pi 3. O projeto utiliza as bibliotecas pygame, requests-futures e pyardrone.

Funcionamento do Projeto

O Projeto cria uma instância da classe ARDrone proveniente da biblioteca pyardrone. Esta instanciação só funciona se o ambiente onde o programa está rodando estiver conectado à rede Wifi do drone. A biblioteca já faz a configuração básica de IP, protocolos e portas para a comunicação com o drone.

O Programa principal foi contruído de forma que qualquer erro que passe, pare o funcionamento do Drone, através da estrutura try-except-finally, para evitar transtornos.

A Classe DronePyGame incializa parâmetros básicos do drone e configura seus controles de acordo com o descrito no último tópico deste documento. Esta classe também possuí o método captureInput() que captura os comandos enviados ao pygame pelo teclado, os redireciona ao drone e envia os dados coletados pelo drone ao node-red para visualização.

O Fluxo do programa pode ser observado pelo diagrama a seguir.

Projeto

Conexão com o drone:

  • O Raspberry irá se conectar na rede hosteada pelo drone, no nosso caso ardrone2_326331, configurá-lo enviando comandos AT via UDP em sua porta 5556.
  • Gráficos irão exibir a leitura dos dados realizados pelos sensores do drone recebidos pela rede via UDP em sua porta 5554.
  • O vídeo gravado pela câmera do drone que é recebido pela rede via UDP em sua porta 5555 será exibido em tempo real. (Não acessado neste projeto)

Visualização dos dados:

Os gráficos de navdata em tempo real coletados pelo drone são enviados para uma API hospedada no Node-RED exibidos em uma das rotas da API hosteada pelo Raspberry Pi 3.

Inicializar o Node-RED

Instalação via npm

  • Rode o comando npm install -g node-red (adicione sudo caso seja linux)
  • Rode com o comando node-red
Erro ao tentar rodar node-red

erro

  • Tente com o comando do npx abaixo para uma solução mais rápida.
  • Para solucionar o problema, procure a instalação do node-red (windows)
    • Procure em sua instalação local do npm
    • Busque no %appdata%/npm
    • Adicione o caminho ao node-red no PATH

Rodando via npx

  • Rode o comando npx node-red

Importando o flow do projeto no node-red

Ao iniciar o Node-RED seu log será parecido com o abaixo: log-nodered

Verifique onde o servidor está rodando e acesse o endereço via browser (no nosso caso é http://127.0.0.1:1880)

Selecione Manage Palete e instale o node-red-dashboard.

image

image

Após a instalação, clique 2 vezes sobre a aba "Flow 1" e o renomeie para evitar confusões posteriores.

aba

image

Selecione a opção import para utilizar o flow do projeto.

image

image

Selecione o arquivo flows deste projeto em /nodeRed

image

Ao importar o novo fluxo, apague o anterior (clique 2 vezes sobre a aba e selecione Delete) e faça o deploy (botão vermelho no canto superior direito).

Acesse o recurso no seu endereço em /ui, no nosso caso http://127.0.0.1:1880/ui e verifique se o dashboard aparece como na imagem abaixo.

image

Inicialização do programa principal do projeto

Pré-requisito:

  • Possuir os arquivos do projeto

Processo:

  • (Opcional) Acesse o venv, disponível para linux no projeto, crie um novo para windows, para acessar o do projeto, rode source activate em ProjetoDroneRaspberryPi3\app\venv\bin.
  • Abra um terminal em \ProjetoDroneRaspberryPi3\app
  • Rode o comando pip install -r requirements.txt
  • Após instalar as dependências, vá para o local \ProjetoDroneRaspberryPi3\app\src
  • Conecte-se com a rede Wifi do drone e verifique se você recebeu o IP 192.168.0.2
  • Rode o programa com python main.py.

Video funcionamento do projeto

Controle do AR Drone 2.0 através do Raspberry Pi 3 - desenvolvido no projeto.

Movimentação por teclado:

  • W - drone se desloca para a frente de onde ele está direcionado
  • S - drone se desloca para trás de onde ele está direcionado
  • A - drone se desloca lateralmente para a esquerda de onde ele está direcionado
  • D - drone se desloca lateralmente para a direita de onde ele está direcionado
  • I - drone sobe
  • K - drone desce
  • Q - drone gira no sentido anti-horário
  • E - drone gira no sentido horário
  • RETURN (ENTER) - decolagem do drone (Takeoff)
  • SPACE - pouso do drone (Land)

Membros envolvidos no projeto

  1. Raphael Marchetti Calciolari - RA: 19.00828-7
  2. Martin Ropke - RA: 19.01592-5
  3. Guilherme Costa e Souza - RA: 19.00065-0
  4. Bruno Vilardi Bueno - RA: 19.00331-5

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •