quarta-feira, 30 de outubro de 2013

Flight Controller +


Pessoal, nesse post vou mostrar como configurar o Multiwii para um quadricoptero em X utilizando a plaquinha IMU GY-80 de acordo com o meu projeto.

Para começar vamos precisar do compilador para o arduino, o mais prático é o oferecido pelo site oficial do arduino em: 
O código fonte do projeto Multiwii pode ser encontrado em:
http://code.google.com/p/multiwii/downloads/list (esse teste foi realizado com a versão 2.2).

Depois de fazer os downloads, instalar o IDE e descompactar o código do projeto, basta abrir o arquivo "MultiWii.ino" pela IDE do arduino e todos os arquivos do projeto vão abrir em várias abas. 

O primeiro passo é fazer a configuração do projeto. Para isso será necessário ir até a aba do arquivo "config.h" e habilitar algumas definições.


Em "SECTION 1 - BASIC SETUP" escolha o tipo do multi-rotor, basta remover o comentário // do define e deixar como abaixo

#define QUADX

Ainda na mesma seção procure por "Combined IMU Boards" e remova o comentário da GY-80 para habilitar os sensores.

#define GY_80 // Chinese 10 DOF with L3G4200D ADXL345 HMC5883L BMP085, LLC

Agora em "SECTION  4 - ALTERNATE CPUs & BOARDS" procure por "Aux 2 Pin" e remova o comentário para ativar o AUX2 no pino 12 do arduino (essa configuração é necessária para utilizar o AUX2 no layout que desenvolvi).

#define RCAUXPIN12

Pronto, as configurações necessárias para testar os código já estão feitas. Agora vou mostrar umas configurações opcionais.

Em "SECTION  2 - COPTER TYPE SPECIFIC OPTIONS" procure por "ARM/DISARM". Nessa configuração é possível ligar os motores com um comando no stick do Yaw ou no do Pitch.

Definindo:

#define ALLOW_ARM_DISARM_VIA_TX_YAW

O multi-rotor vai ligar os motores quando o stick do throttle/yaw for colocado todo para baixo e para direita e desligar quando for colocado para baixo e para esquerda.

Definindo:

#define ALLOW_ARM_DISARM_VIA_TX_ROLL

O multi-rotor vai ligar os motores quando o stick do pitch/roll for colocado todo para baixo e para direita e desligar quando for colocado para baixo e para esquerda.

Na mesma seção em "Cam Stabilisation" é possível ligar o controle para os servos do gimbal.

Definindo:

#define SERVO_MIX_TILT

O gimbal vai funcionar como no sistema SUPER SIMPLE GIMBAL (SSG) que achei genial e pretendo montar esse para o meu quad. Mais sobre esse sistema basta ler esse tópico:
http://www.rcgroups.com/forums/showthread.php?t=1793759 (No tópico fala que é para placa KK2 mas essa versão do Multiwii já tem suporte, eu testei esse modo :D).

Definindo:

#define SERVO_TILT

Os servos vão funcionar do modo tradicional para o gimbal.
Caso não for usar o gimbal, basta deixar as duas definições comentadas.


Abaixo segue uma imagem com as especificações para ligar os ESCs e os receptor.


Também tive que fazer um cabo para ligar os pinos A4 e A5 do arduino no circuito. Usei um pedaço de cabo flat de pc.


Lembrando que foi necessário remover o jumper para isolar a alimentação do arduino e do receptor, no caso eu utilizei outra fonte de energia para o receptor. Quer uma explicação? leia isso:


Com o jumper removido, agora segue o vídeo com o teste feito na minha placa controladora de voo.



Até

8 comentários:

  1. não entendi perfeitamente a parte do gimbal.
    tem como eu deixar com essa configuração e ainda movimentá-lo??

    ResponderExcluir
    Respostas
    1. Olá,

      Nunca utilizei a configuração para movimentar o gimbal manualmente. Contudo, acredito que utilizando SERVO_MIX_TILT ou SERVO_TILT o gimbail vai funcionar automaticamente.

      abraço.

      Excluir
  2. Olá Marcos, tudo bem? Estou com problema em armar meu esc. Nao sei dizer se o problema é a configuração, ou se é outra coisa. Me diga, o MultiWiiConf, ele arma? Estou perguntando por que não irei trabalhar com R/C. Estou desenvolvendo o controle por serial, alias, este é o trabalho que tenho para desenvolver.

    Se eu pudesse trabalhar tudo via computador, usando o usb mesmo, poderia trabalhar seguramente no controle, pois saberia que o quad está funcionando.

    Minha pergunta é: tem como armar pelo MiConf?

    Obrigado, e um grande abraço

    ResponderExcluir
    Respostas
    1. Olá, acredito que não tem uma forma fácil de armar pelo Multiwiiconf. Talvez se configurar o switch de armar para ligado nos três modos LOW,MID,HIGH mas não sei se daria certo.

      abraço

      Excluir
  3. Marcos no meu teste o programa não reconhece os comandos do controle (Calibragem do acelerômetro OK), sendo assim quando está tudo ligado o arduino não liga os motores, pode me dizer se você sabe o que pode estar errado??

    ResponderExcluir
    Respostas
    1. Assumindo que os sensores estão OK, tente verificar se novamente se o pino de dados do receptor esta ligado no pino certo do arduino. Se não for isso, pode ser que o comando de destravar os motores, vc pode configurar para ligar/desligar em um switch do controle, utilizando o MultiwiiConf. Ou pode configurar no config.h e remover o comentário das definições:

      #define ALLOW_ARM_DISARM_VIA_TX_YAW
      ou
      #define ALLOW_ARM_DISARM_VIA_TX_ROLL

      mencionadas acima nesse post.


      Como demorei para responder, espero que já tenha contornado esse problema.

      abraço.

      Excluir
  4. Olá, como vc ligou o receptor em outra fonte de energia?

    ResponderExcluir
    Respostas
    1. Olá, o receptor pode ser ligado a qualquer fonte de tensão com 5 Volts.

      Excluir