sábado, 16 de novembro de 2013

Instalando Bluetooth HC-05 no Quad

Comecei a modificar e testar diferentes valores do PID para o quad. Logo percebi que fica muito chato ficar abrindo a proteção do quad e ligando o PC/Cabo USB/FTDI até a controladora de voo para atualizar esses valores. Então, lembrei que há um tempo eu encontrei um artigo explicando como ligar o arduino em um modulo bluetooth e comprei essa plaquinha para usar em meu Arduino Uno.

Para quem se interessar, o link do artigo é:

Continuando, comprei essa plaquinha HC-05 separada da outra plaquinha breakout. Eu mesmo soldei tudo e coloquei a termo retrátil, saiu pouco mais de dois dólares mais barato que comprar tudo junto.
O breakout serve para regular a tensão para a HC-05 que passa a aceitar de 3.3V a 6V, também adiciona um LED de status e um botão de clear. O HC-05 diferente do HC-06, pode ser tanto mestre como escravo... Bem eu aconselho comprar tudo junto e acredito que o HC-06 também deve servir para essa finalidade, pois ele sempre vai ser usado como escravo. Você pode encontrar esse modulo no Dealextreme, Banggood, etc. Se quiser ter ainda mais facilidade para usar um modulo bluetooth na sua controladora de voo utilizando Multiwii, esse modulo já vem configurado e não vão precisar fazer nenhuma das configurações que vou explicar.

Primeiro vou falar de como configurar o modulo bluetooth para ser reconhecido pelo Multiwii, para isso vai ser necessário modificar a baud rate do modulo para 115200 que é utilizada para conexão. 

Antes é preciso conectar o modulo a um FTDI da seguinte forma:

FTDI            Modulo Bluetooth
--------------------------------
RX     <---> TX
TX     <---> RX
VCC  <---> VCC
GND  <---> GND

Em seguida conecte o FTDI na USB do computador (após esse ponto, no meu modulo bluetooth, precisei clicar uma vez no botão de clear).



Agora vai ser necessário o uso de um software que conecte na porta COM utilizada pelo FTDI (o procedimento para encontrar a porta COM já foi explicado nesse post), pode ser o serial monitor da IDE do arduino. Após abrir o serial monitor é importante configurar o modo de final de linha para "both NL & CR", dessa forma vão ser enviados new line e carrige return ao final de cada comando. A velocidade de transmissão padrão do modulo bluetooth é de 9600 baud, então para a conexão funcionar coloque esse valor.

Feito o procedimento acima, vamos para a configuração.

Envie o comando "AT" basta digitar isso e clicar em "Send". O modulo deve responder "OK", caso não responda, algo pode estar errado...

Agora para modificar o baud rate digite "AT+UART=115200,0,0" e clique em "Send".
O modulo deverá responder "OK".

Pronto!

Para verificar o atual baud rate digite "AT+UART?" e pressionar em "Send".
O modulo deverá responder "+UART:115200,0,0" e depois "OK".

Também é possível modificar o nome do modulo bluetooth que vai aparecer para os outros equipamentos e a senha de acesso, entre outras coisas... No entanto, agora o baud rate é 115200 então é preciso alterar no serial monitor de 9600 para esse novo valor, caso contrario os novos comandos não serão aceitos.

Para modificar o nome, basta digitar "AT+NAME=<nome>"  e pressionar "Send".

Exemplo: "AT+NAME=QuadBluetooth"
O modulo devera responder "OK".

Para modificar a senha, basta digitar "AT+PSWD=<nova senha>"  e pressionar "Send".
O modulo deverá responder "OK".

Para saber mais sobre os comandos do modulo bluetooth HC-05, segue o link para download do manual:

Terminada as configurações é só ligar o modulo bluetooth na serial do arduino. A ligação é semelhante ao FTDT...

Arduino        Modulo Bluetooth
--------------------------------
VCC  <---> VCC
GND  <---> GND
RX     <---> TX
TX     <---> RX

Se tudo correr bem, ao ligar a controladora de voo vai ser possível encontrar o dispositivo bluetooth com qualquer aparelho que possa procurar dispositivos. Se você tiver bluetooth no seu computador, basta parear os dispositivos com a senha definida ou com a senha padrão (1234 caso não tenha alterado), abrir a GUI do Multiwii, então escolher a porta COM referente ao adaptador bluetooth do seu computador e começar a ver os dados do seu multi-motor em tempo real. Lembrando, essa porta COM não vai ser a mesma utilizada para o FTDI. Clicando no ícone de dispositivos bluetooth e verificando em propriedades como na imagem abaixo, será possível descobrir a porta COM correta.



Para quem tem tablet ou celular com android, o programa MultiWii EZ-GUI no link abaixo é muito legal e prático para ser usado em campo.

Segue as fotos do meu modulo bluetooth e o cabo que fiz utilizando um pedaço de cabo flat de PC (gostei muito de usar esse cabo para fazer pequenos conectores). Também coloquei um LED na minha flight controller, basta ligá-lo no pino 13 do arduino e na GND com uma resistência de no minimo 220 Ohms. Vou por esse LED fora da caixa onde fica a controladora, para poder ver o status dela quando o quad não estiver aberto.



Por enquanto é só.

Até

8 comentários:

  1. Em vez de utilizar o Arduino pro mini pode utilizar o UNO?

    ResponderExcluir
    Respostas
    1. Sim, pode usar em qualquer microcontrolador que forneça tensão de 3,3V a 6V e que tenha uma saída serial (TX/RX). Inicialmente eu comprei esse modulo bluetooth para usar em pequenos projetos no meu Arduino Uno. No artigo do instructables que deixei o link, o autor explica como usar o HC-05 sem o breakout com o Arduino Uno, se você for fazer assim tem que tomar mais cuidado pois a tensão do HC-05 é de 3,3V (VCC/RX).

      Outra coisa, se você for usar só para testar a comunicação, não precisa mudar o baud rate, pode deixar 9600 que é o padrão...

      abraço

      Excluir
    2. Eu digo a placa Arduino Uno para fazer a controladora do Quadcopter

      Excluir
    3. Pode sim, eles tem microcontroladores quase idênticos. Pode fazer também com Arduino Pro Micro e Arduino Mega.

      Falando com base no microcontrolador, o projeto Multiwii atende a: ATmega168, ATmega328P, ATmega32U4, ATmega1280, ATmega1281, ATmega2560, ATmega2561.

      abraço

      Excluir
  2. Amigo, a flight controller pode ser a placa que compramos pronta da crius ( pois ja vem com acelerômetro, barômetro, magnometro . .) ?
    Ou temos que fazê-la? E com esse app da multiwii conseguimos fazer o controle do quad?

    ResponderExcluir
    Respostas
    1. Sim, se vc não quer ter trabalho é melhor comprar uma dessas para multiwii e com sensores embutidos :D Esse app da multwii é para configurar o quad, calibrar aceleômetro, magnetômetro, etc.

      abraço

      Excluir
  3. Olá, li que a comunicação serial desse módulo hc-05 trabalha à 3.3v, enquanto o arduino uno envia 5v em suas portas digitais, RX e TX. Para comunicação com a controladora de seu quadcoptero tu está utilizando algum divisor de tensão ou algum desses? https://www.robocore.net/modules.phpname=GR_LojaVirtual&prod=522

    Pergunto isso pois estou configurando meu módulo hc-05 para utilizar em meu quad, e em emu arduino uno tenho passado muito trabalho para enviar os comandos AT, enquanto com o arduino due, que já envia sinais de 3.3v, eu não tive problema algum para efetuar tal configuração.

    ResponderExcluir
    Respostas
    1. Olá amigo. Sim esse modulo HC-05 trabalha a 3,3V. No entanto, eu comprei um adaptador para ele (ex: http://goo.gl/MxcVfb ) que regula a tensão para 5v.

      Contudo, vi um artigo no instructables que o escritor utilizava Arduino UNO e uma plaquinha HC-05 sem o adaptador. Como você mencionou, ele fazia um divisor de tensão para ligar TX e RX e alimentava o HC-05 com a saída 3,3v do Arduino UNO.

      abraço

      Excluir