• Nenhum resultado encontrado

Uma automação para transmissão de comandos para um drone de baixo custo sobre a plataforma MultiWii

N/A
N/A
Protected

Academic year: 2021

Share "Uma automação para transmissão de comandos para um drone de baixo custo sobre a plataforma MultiWii"

Copied!
9
0
0

Texto

(1)

Uma automação para transmissão de comandos para um

drone de baixo custo sobre a plataforma MultiWii

André Almeida Santos¹, Eber Chagas Santos², Luis Paulo da Silva Carvalho³, Vitor Campos Cardoso4

1,4 Graduando do Curso de Engenharia Elétrica – Instituto Federal de Educação Ciência

e Tecnologia (IFBA) – Av. Amazonas, nº 3.150, Bairro Zabelê, 45.075.265 – Vitória da Conquista, BA – Brasil

2 Graduando do Curso Bacharelado em Sistemas de Informação – Instituto Federal de

Educação Ciência e Tecnologia (IFBA) – Av. Amazonas, nº 3.150, Bairro Zabelê, 45.075.265 – Vitória da Conquista, BA – Brasil

3 Professor do Instituto Federal de Educação Ciência e Tecnologia (IFBA) – Av.

Amazonas, nº 3.150, Bairro Zabelê, 45.075.265 – Vitória da Conquista, BA – Brasil.

Andre.zx10r@gmail.com, eber.santos10@gmail.com, luispscarvalho@gmail.com, vittor.cmps@hotmail.com

Abstract. The use of drones has garnered attention, provided that such technology has shown to be useful in a plethora of applications and fields of expertise. Based on flight automation systems, drones has been used as tool fit to enrich the realization of several human activities (e.g. acquisition of aerial imagery of plantations). In this sense, this paper covers the development of a low-cost flight control system to associated with the MultiWii avionics platform. The automation comprises radio-frequency devices, USB-based joypad and arduino.

Resumo. O uso de drones tem ganhado importância e essa tecnologia tem se mostrado útil em várias aplicações e áreas. Baseado em sistemas de automação de voo, estes aparelhos tem ganhado espaço por enriquecer a realização de determinadas atividades (e.g. fotografia aérea de plantações). Neste cenário, o seguinte trabalho traz o desenvolvimento de um sistema de controle para drones usando dispositivos de baixo custo associado à plataforma de controle Multiwii. O sistema pode ser composto por dispositivos de rádio frequência, um joystick usb e plataforma eletrônica Arduíno.

1. Introdução

É notável o aumento do interesse pelos Veículos Aéreos Não Tripulados (VANT’s) nos últimos anos. Devido ao desenvolvimento de tecnologias que proporcionaram a construção desses veículos e dos vários campos em que eles podem ser utilizados, os drones, como são popularmente conhecidos, se tornaram objetos de pesquisa e desenvolvimento. Utilizados inicialmente para fins militares os drones ganharam notoriedade e já começam a fazer parte do uso civil de forma bastante relevante. Esta tecnologia conta com a integração de sistemas eletrônicos embarcados com o objetivo de realizar a estabilização de voos e têm sido cada vez mais empregada

(2)

em vários ramos de atividade humana, como, por exemplo, a agricultura, a segurança pública, a obtenção de filmagens entre outras atividades.

Desenvolvido com base em modelos aéreos tripulados e sendo aperfeiçoados durante o tempo, há vários modelos de drones que possuem características específicas para certas atividades. Um modelo bastante utilizado é o drone VTOL (Vertical Take-Off and Landing) que significa decolagem e aterrissagem vertical. Segundo GUIMARÃES (2012), os drones “possuem uma alta manobrabilidade quando comparados às aeronaves de asas fixas, além de possuírem a capacidade de pairar”. Neste modelo os mais difundidos são os quadricópteros ou quadrirrotores, drones com quatro motores de propulsão.

Como são controlados remotamente, os drones precisam de um sistema eficaz de comunicação que possa transmitir informações de forma segura. O objetivo deste trabalho é desenvolver um drone de baixo custo (Figura 1). Com o sistema de comunicação o objetivo é o mesmo, e a solução encontrada foi utilizar módulos de rádio-frequência para a transmissão compactada dos dados. Através de uma plataforma de prototipagem eletrônica, é possível fazer o gerenciamento dos módulos transmissores e receptores de rádio-frequência de modo a implementar uma configuração de controles de deslocamento no ar sobre uma plataforma de automação de voo (mais detalhes na Seção 2.1).

Figura 1: Drone de baixo custo

Este artigo está organizado da seguinte forma: a Seção 2 descreve as tecnologias utilizadas para a criação do emissor de comandos e o protocolo de comunicação. Os exemplos de aplicação do controle são descritos na Seção 3. Conclusões e trabalhos futuros estão contidos na Seção 4.

2. Tecnologias e protocolo para controle remoto de um drone

Esta seção traz mais informações sobre as tecnologias que foram usadas para o controle do drone, assim como o processo de desenvolvimento do protocolo de comunicação.

(3)

2.1. MultiWii

O MultiWii1 é um software escrito para estabilizar e controlar diversas

aeronaves, a maioria do tipo ‘multirrotor’. Trata-se de um projeto de código aberto compatível com a IDE do Arduino e possui também uma GUI (Graphical User Interface) que é um aplicativo baseado em Java. Funciona em qualquer sistema operacional permitindo ao usuário o ajuste de configurações no multirrotor enquanto o Arduino está conectado com o computador via USB. Mais informações sobre a utilização e a GUI do Multiwii são encontradas na seção 3 deste artigo.

2.2. Arduino

Arduino2 é uma ferramenta open source que vem sendo utilizada em diferentes

projetos do meio acadêmico, caracterizada por ser uma placa microcontroladora baseada no ATMega 328 da família AVR.

As placas Arduino utilizadas fazem a leitura de comandos a serem transmitidos através do emissor de rádio frequência e a leitura dos dados captados pelo receptor para serem transmitidos ao MultiWii. Com o emissor foi utilizado o Arduino Uno para gerenciar a transmissão de informações, já o receptor é gerenciado por um Arduino Mega. As escolhas dessas placas se devem ao fato do custo benefício, pois são placas capazes de realizar as operações esperadas para o controle do drone e são encontradas no mercado por um preço acessível.

2.3. Módulos de radiofrequência

O motivo para a utilização desses módulos está em desenvolver um controle em terra que envie sinais através da comunicação sem fio até um microcontrolador embarcado no drone, a fim de que esse sistema interprete as informações recebidas e realize as configurações de voo.

Para a transmissão de dados foi utilizado o módulo TX modelo TXA1-433-F11 (Figura 2). No mercado existem modelos com as frequências de 315 e 433,92 MHz, a frequência escolhida para o projeto foi de 433,92 MHz, pois quanto maior a frequência menor é a antena.

Figura 2: Transmissor (Fonte Própria)

A recepção de dados é feita por uma antena com a mesma dimensão da que se encontra no transmissor. Trata-se de um módulo Rx modelo RXA27L-433MHz que pode ser observado na Figura 3. Os links dos datasheets dos módulos citados encontram-se na seção Referências.

1Site do Multiwii: http://www.multiwii.com/ 2Site do arduino: http://arduino.cc/

(4)

Figura 3: Receptor (Fonte Própria)

2.4. Joystick USB

Para a captação dos comandos e movimentos do drone optou-se por um joystick USB de computador que, utilizado de forma adequada, pode substituir o controle de rádio já consolidado em aeromodelismo. Para o uso deste controle foi desenvolvido um código em C++ que interage com o joystick e capta os botões ou analógicos pressionados. A Figura 4 exemplifica o esquema da disposição física do controle e suas funcionalidades.

Figura 4: Esquema físico de controle para o drone

Conforme aponta PAULA (2012), por possuir apenas quatro hélices, um drone tem a capacidade de executar quatro movimentos básicos, sendo referentes à atitude (arfagem, guinada e rolagem) e altitude. Nesse sentido, tal qual representado na Figura 4, as setas amarelas dizem respeito aos movimentos de Pitch (arfagem), as setas azuis aos movimentos de Roll (rolagem), as setas verdes aos movimentos de Yaw (guinada) e as setas vermelhas aos movimentos de Throttle (altitude); este último movimento foi escolhido para ser acionado juntamente com o botão L1. Utilizamos uma biblioteca C++, joystick.h3, que faz a leitura do joystick USB e adaptamos funções de acordo às

necessidades dos movimentos citados acima. O código capta o que está sendo pressionado e envia um determinado valor, que corresponde ao movimento ou comando, para a porta serial do computador. O Quadro 1 exemplifica uma parte deste código, mostrando como é feita a captação de um dos botões do joystick. A variável ‘e’ representa um dos botões do controle, nesse caso o botão chamado L1. A função ‘event.value’ é usada para reconhecer o pressionamento de um botão.

if((e ==4)&&(event.value)){

L1 =true;

}elseif((e ==4)&&(!event.value)){

(5)

L1 =false;

}

Quadro 1: Parte de código que capta o pressionamento de um botão

2.5. Protocolo de Comunicação

O objetivo inicial da comunicação do drone, utilizando rádio frequência, foi ter um sistema capaz de enviar os comandos necessários de forma segura e em poucos intervalos de tempo, pois o drone é um objeto controlado em tempo real no qual qualquer atraso na chegada de informação pode ter sérias consequências como perda de controle, podendo ocasionar colisões. Com o sistema de rádio frequência, se cada comando de movimento for enviado separadamente o atraso pode acarretar neste tipo de consequência. Para resolver este problema foi inserido o conceito de deslocamento de bits, uma técnica de manipulação que, segundo DEITEL (2006), trabalha no nível dos ‘bits e bytes’ sendo possível a economia de memória utilizando campos de bits. Com o deslocamento, os bits de um operando podem ser deslocados, tanto para a esquerda quanto para a direita, por um valor especificado de posições. DEITEL (2006) deixa claro que em um deslocamento para a esquerda: “Os bits tornados vagos à direita são substituídos por 0s; bits deslocados para fora à esquerda são perdidos.”, o mesmo ocorre para um deslocamento à direita, porém ao contrário. No protocolo de comunicação uma variável foi utilizada para representar todo o conjunto de movimentos do drone e cada bit desta variável faz referência a um deslocamento específico. Assim, é possível o agrupamento de várias informações de voo para um único envio. A Figura 5 apresenta um esquema deste protocolo:

Figura 5: Esquema de protocolo de envio de dados do drone

Este processo reduz o tempo de envio de dados e possibilita o envio de vários comandos de movimento através do envio de um único pulso de rádio frequência. Outras informações como instruções para ligar e desligar o drone podem ser embutidas em um mesmo pulso. O Quadro 2 traz um exemplo da utilização do conceito de deslocamento de bit. A variável ‘e’ e a função ‘event.value’ são usados para a captação de comandos associados às hastes analógicas do controle. A variável cmd_UP representa os comandos de movimento, que será alterada se o analógico estiver pressionado ou não. O deslocamento de bits ocorre na segunda linha de código, onde o valor 1 será deslocado para uma posição definida do movimento, neste caso o PITCH.

if((e==0)&&(event.value)){

cmd_UP = cmd_UP |(1<< PITCH);

cout<<cmd_UP<<endl;

}elseif((e==0)&&(!event.value)){

cmd_UP = cmd_UP & NO_PITCH;

(6)

}

Quadro 2: Exemplo de utilização de deslocamento de bit

O receptor de rádio-frequência, instalado no drone, é responsável pelo recebimento de dados para realização de movimentos. O dado recebido e lido pelo Arduino é uma variável codificada. A decodificação deste dado pode ser feita usando um mascaramento de bits que compara as posições da variável e testa que comando será realizado. Um esquema para este processo pode ser visualizado na Figura 6:

Figura 6: Esquema de protocolo de recebimento de dados do drone

3. Exemplo de utilização de controle para a plataforma MultiWii

Na Figura 7 é possível ver a GUI do Multiwii com algumas de suas principais características destacadas: (1) Barras de movimentos referentes aos principais movimentos de um drone (THROTTLE, ROLL, PITCH, YAW); (2) Barras referentes ao nível de potência de cada motor; (3) Gráficos com dados da leitura dos sensores utilizados no multirrotor (acelerômetro, barômetro, giroscópio); (4) Visualização de informações da bússola e angulação do drone; (5) Painel de controle para calibração de parâmetros e configurações.

Figura 7: Visualização completa da GUI do Multiwii.

Uma vez que são acionados os comandos no controle, os mesmos sofrem alterações nas barras referentes aos parâmetros de movimentos na plataforma MultiWii (Figura 7). Os limites definidos pela ferramenta variam entre 1000 e 2000, servindo como base de equilíbrio do drone. Por questões de segurança, relacionados à potência dos motores, os limites foram alterados, variando então de 1000 até 1900. Devido a esse limite, utilizamos duas variáveis para representar os movimentos, cmd_UP para os

(7)

valores acima de 1500 e cmd_DOWN para os valores abaixo de 1500. Estas variáveis são unidas no processo de codificação e enviadas para a porta serial do computador. As variáveis cmd_UP e cmd_DOWN são do tipo inteiro, e na hora da codificação são agrupadas em uma variável do tipo long ocupando, respectivamente, a parte mais alta e a parte mais baixa desta variável. Isso torna possível o uso de posições não utilizadas desta variável para especificar outros comandos, como foi exemplificado na seção anterior. Quando a informação chega ao Arduino Mega, que está gerenciando o Multiwii, é necessário outro deslocamento de bits, que separa os comandos cmd_UP e cmd_DOWN, executando o processo de decodificação. O Quadro 3 apresenta uma pequena parte do código que trata a informação recebida pelo drone e a decodifica em duas variáveis representativas para os movimentos UP e DOWN.

//descompactaçao de pulso em dois comandos: UP e DOWN parametro1 = (pulso >> (sizeof(long)/2 * 8));

parametro2 = ((pulso << (sizeof(long)/2 * 8)) >> (sizeof(long)/2 * 8));

//passagem dos parametros para a funçao que comanda o drone controleDrone(parametro1, parametro2);

Quadro 3: Decodificação da informação recebida.

As variáveis criadas para padronizar os comandos suportados pelo Multiwii passam por testes lógicos com o dado captado pelo módulo receptor de radiofrequência. Por exemplo, quando se aciona o THROTTLE e o PITCH, há uma comparação com as máscaras de bits B00001000 e B00000010, respectivamente, para identificar se há alguma alteração nos valores de movimento para cada posição. Estes testes possibilitam o reconhecimento de comandos que fazem o controle efetivo do drone. O Quadro 4 mostra como esse processo é executado no código do Multiwii. As linhas 3 e 8 mostram a parte do código que executam o controle da potência dos motores do drone.

if(parametro1 & BIT_THROTTLE){

if(rcData[THROTTLE]<1600){

rcData[THROTTLE] = rcData[THROTTLE] + 20;

} }

if(parametro2 & BIT_PITCH){

if(rcData[PITCH] > 1000){

rcData[PITCH] = rcData[PITCH] - 20;

} }

Quadro 4: Passagem de valores para execução de movimentos no Multiwii.

Como mostrado na Figura 7, o Multiwii trabalha com uma variação de valores. A taxa de variação dos movimentos foi especificada em 20, tanto para incremento quanto para decremento (Quadro 4). Essa variação permite ao drone locomover-se em sentidos contrários para determinados movimentos, por exemplo, acionando-se o

(8)

THROTTLE para um movimento de subida ou descida do drone. A Figura 8 traz dois exemplos de como é mostrado esta variação quando o drone está em atividade.

Figura 8: Visualizações da resposta do Multiwii aos comandos de movimento.

Na Figura 9 são apresentados todos os componentes utilizados para a montagem deste processo de comunicação. Nela é possível observar o transmissor montado em uma protoboard, conectado ao Arduino; o joystick usado para o controle; o drone com o Arduino no centro de seu frame (armação), onde também se encontra o receptor e os sensores usados para este projeto.

Figura 9: Dispositivos usados na construção do sistema de comunicação do drone.

4. Conclusões e trabalhos futuros

É pertinente pontuar o grande aprendizado na área dos VANT´s, sobretudo na área da comunicação dos drones. A implementação desenvolvida é capaz de atender as necessidades de transmissão e recepção de dados de forma satisfatória e também ser reutilizada em outros projetos que precisam agrupar informações e enviá-las de uma só vez.

A aplicabilidade e baixo custo das tecnologias empregadas foram suficientes para atender toda a demanda surgida no desenvolvimento do drone, assim como seu desempenho.

(9)

Vale ressaltar a necessidade de calibração das variáveis associadas ao equilibro do drone, diretamente relacionadas aos motores, pelos parâmetros PID (Proporcional, Integral e Derivativo). Esta pode ser feita por comparativos de voo de outros modelos ou mesmo por testes empíricos. Uma vez que as mesmas estejam bem definidas, consequentemente haverá melhor estabilidade do drone. Os testes de voo serão realizados após esta etapa, ainda em desenvolvimento, por questões de segurança.

Como aprimoramento do projeto pretende-se ainda integrar ao frame do drone uma câmera de baixo custo, provavelmente de celular usado, como também sistemas de telemetria, para que possam ser realizadas medições e aferição de valores referentes ao voo. Com esses valores poderemos controlar mais adequadamente a posição do drone no ar, além de possibilitar ao mesmo a execução de ações de modo automático.

Agradecimentos

À FAPESB, pela bolsa de iniciação científica que possibilitou a realização desse trabalho.

Referências

GUIMARÃES, J. P. F. Controle de Atitude e Altitude Para Um Veículo Aéreo do Tipo Quadrirrotor. Dissertação de Mestrado. Universidade Federal do Rio Grande do Norte. Dezembro 2012.

PAULA, J. C. DESENVOLVIMENTO DE UM VANT DO TIPO QUADRIRROTOR PARA OBTENÇÃO DE IMAGENS AÉREAS EM ALTA DEFINIÇÃO. Dissertação de Mestrado. Universidade Federal do Paraná. 2012.

DEITEL, H. M; DEITEL, P. J. C++ COMO PROGRAMAR. 5ª edição. São Paulo, Pearson Prentice Hall, 2006. 1163p.

TX MODULE MODELNO: TXA1-434-F11. Disponível em: < http://www.webtronico.com/documentos/transmissor_rf_link.pdf> Acesso em: 13/02/2015.

RX MODULE MODELNO: RXA27L-xxxMHz. Disponível em: < http://www.webtronico.com/documentos/receptor_rf_link.pdf> Acesso em: 13/02/2015.

MultiWii. Disponível em:

<http://www.multiwii.com/> Acesso em Outubro de 2014. Arduino. Disponível em:

Referências

Documentos relacionados

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos fundos Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

O TBC surge como uma das muitas alternativas pensadas para as populações locais, se constituindo como uma atividade econômica solidária que concatena a comunidade com os

Discussion The present results show that, like other conditions that change brain excitability, early environmental heat exposure also enhanced CSD propagation in adult rats.. The

Assim, o presente trabalho surgiu com o objetivo de analisar e refletir sobre como o uso de novas tecnologias, em especial o data show, no ensino de Geografia nos dias atuais

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades