sexta-feira, 17 de dezembro de 2010

Comunicação entre 2 Arduinos por Rádio (I)

Você construiu aquele carrinho com dois motores controlados por um Arduino (ou por qualquer outro controlador, não vamos limitar o mundo ao Arduino) acoplado a um joystick. Tudo funciona bem, os motores aceleram e desaceleram, virando a haste do joystick para a esquerda o motor esquerdo diminui a rotação, e assim por diante. Aí você faz o carrinho andar sobre a mesa, prá frente e prá trás, e se dá conta do óbvio: a abominável fiapeira que une o carrinho ao Arduino, à fonte de alimentação, ao joystick. Qual a solução? Claro, dois Arduinos - um servindo como interface com o mundo externo (joystick, potenciômetros, chaves e outros dispositivos de controle) e o outro com a função de controlar os motores e outros atuadores do tal carrinho - e os dois Arduinos, claro, conectados por alguma comunicação sem fio.

Complicado? Não, muito simples e barato. Pode-se utilizar dois módulos XBee, mas o preço seria inconveniente e não há necessidade de uma tecnologia tão sofisticada. A alternativa (disponível no mercado nacional) é o uso de Módulos de RF de 315 MHz - um módulo é transmissor e o outro é receptor. A comunicação é unidirecional, não havendo, portanto, a possibilidade de envio da informação de eventuais sensores localizados no carro robótico para a placa de interface com o mundo externo. Futuramente abordarei a transmissão bidirecional.

Na foto, o módulo pequeno é o transmissor e o módulo maior é o receptor. Mais dados técnicos no site da Sparkfun. Existem diversos fabricantes e diversos revendedores no Brasil. Também exitem módulos que operam em outras freqüências, como 299, 418 e 433.92 MHz. O preço? Quase todos os módulos custam cerca de R$ 8,00 cada.

As características principais desta solução são:
  • Comunicação em um único sentido;
  • Alcance máximo de cerca de 150 metros;
  • Preço baixíssimo;
  • Grande geração de ruído, que necessita de um filtro (de software) para funcionar de forma conveniente;
  • Velocidade de transmissão: 2400 bps (embora alguns módulos funcionem a 4800 bps).
Há diversos artigos abordando esta solução:
Projeto
A proposta deste projeto é simples: um Arduino deve transmitir a outro o valor obtido a partir da leitura de um potenciômetro (de 0 a 1023).

O diagrama esquemático do transmissor é:

Já o receptor está abaixo representado:

    3 comentários:

    1. com dois destes pares consigo comunicação bi direcional?

      ResponderExcluir
      Respostas
      1. Amigo, não testei o conjunto, mas com base em meus conhecimentos tecnicos creio que sim, mas funcionariam como 2 sistemas isolados

        Excluir
    2. Amigo vc sabe onde eu posso encontar um tutorial para a montagem de um radio controle usando arduino + esses modulos de 315 e 433mhz ? Eu achei projetos que usam o nrf24l01 , mas quero primeiro montar com esses de 315 ou 433

      ResponderExcluir