quarta-feira, 7 de dezembro de 2011

Arduino wireless!

Arduino Mega com Wixel shield e módulos wireless.
Que tal fazer seu computador se comunicar com o Arduino sem precisar ligar cabos? Isso permite que você construa um robô com o Arduino e faça seu controle à distância! Ou ainda, que seu robô transmita dados de seus sensores ao computador, que pode processá-los e interferir na movimentação do robô!

Além do uso em robótica, existem várias aplicações para comunicação sem fio entre Arduino e computador, como sensoreamento remoto, sistemas embarcados e qualquer aplicação em que a conexão de cabos seja difícil ou não desejável.

No mercado existem diversos shields que permitem turbinar seu Arduino para que ele possa fazer comunicação sem fios. Alguns permitem comunicação via Bluetooth, outros possuem um rádio digital que transmitem os sinais da porta serial do Arduino (pinos RX e TX).

O shield que testei é o Wixel Shield, vendido pela Pololu:
http://www.pololu.com/catalog/product/2501

Trata-se de um shield que permite o acoplamento de um módulo wireless que se comunica com outro módulo gêmeo, ligado ao computador. Algumas coisas que eu achei muito bacanas nesse shield são:

  • Possui rádio de 2,4GHz com alcance de ~30 metros e velocidade de até 350kbps;
  • Possui um microcontrolador pode ser programado através de uma interface bastante amigável, disponível para download no site da Pololu;
  • Tem 15 pinos de entrada e saída, incluindo 6 entradas analógicas, que podem ser programados de forma independente da comunicação, o que permite expandir a capacidade do Arduino;
  • Permite a criação de uma rede com até 128 módulos de comunicação (por exemplo, 127 Arduinos e um computador);
  • Para fazer comunicação entre computador e Arduino, a configuração é muito simples: basta baixar para o módulo o programa indicado no site e configurar como você quer. A partir daí, a comunicação é feita como se fosse comunicação serial padrão;
  • Permite gravar programas no Arduino sem ligar o cabo USB à placa! Isso facilita muito a atualização do código.


O programa de testes que fiz é bem simples, e está disponível para download aqui.

Ele ativa a saída digital 12 com um sinal PWM cuja razão cíclica pode ser definida de duas formas: através da leitura do valor analógico do pino A2 (0 a 5V), ou através do valor digitado no Serial Monitor, enviado ao microcontrolador. No início, uma mensagem é enviada pela serial para solicitar o modo de funcionamento. A comunicação é feita a 57.600 bps.

Testei o programa no Arduino Mega 1280, com shield Wixel e módulos Wixel wireless. A comunicação funcionou muito bem! Caminhei com o Arduino pela casa e vi que ele era capaz de manter a comunicação em outro cômodo, mesmo separado por uma parede. No entanto, para distâncias maiores (dois cômodos ou mais), a comunicação começava a falhar. Nesse caso, o LED vermelho do módulo wireless se acende para indicar a falha.

Os módulos wireless foram configurados para comunicação em 57.600bps, pois esta é a velocidade de upload de código no Arduino Mega 1280. Dessa forma, isso me permite gravar programas no microcontrolador do Arduino usando a interface wireless (sem precisar ligar o cabo USB à placa). Se você tem outro modelo de Arduino pode ser necessário configurar o módulo wireless para outra velocidade. Exemplos:
Arduino Uno: 115.200 bps
Arduino Mega 2560: 115.200 bps
Arduino Mega 1280: 57.600 bps
Arduino Duemilanove com ATmega328: 57.600 bps
Arduino Diecimila ou Duemilanove com ATmega168: 19.200 bps

O vídeo abaixo ilustra o teste do sistema que montei:


Mais informacoes sobre o uso do Wixel Shield podem ser obtidas em: 

http://www.pololu.com/docs/0J47

E sobre o Wixel Programmable USB Wireless Module estão aqui:
http://www.pololu.com/catalog/product/1337 

Até a próxima!

11 comentários:

  1. Oi amigo, tudo bem? Você poderia me passar o link ou contado do site ou loja em que você comprou esses módulos? Muito obrigado desde já.

    ResponderExcluir
    Respostas
    1. Renan, comprei os módulos no site da Polulu, cujo link está no post. Repito aqui:
      http://www.pololu.com/catalog/product/2501
      Abraços!

      Excluir
  2. Bom dia
    estou trabalhando num projeto com arduino diamondback onde este ja vem com o shild wireless inbutido.
    estou tendo problemas em iserir botoes na html para eu poder controlar servo motores. eu acesso o arduino via navegador apedas digitando o ip que eu designei a ele

    ResponderExcluir
    Respostas
    1. Olá, Vitor. Infelizmente não utilizei wireless shield. Desejo boa sorte em seu projeto!

      Excluir
    2. Olá, alguém pode me ajudar? Estou tendo o mesmo problema do amigo Vitor! Obrigado. (humberto at programastecnicos dot com dot br)

      Excluir
  3. Tenho uma ideia para uma invenção (se ja nao fizeram rsrsr) preciso ligar um pequeno motor por aproximação por bluetooth , é possivel ? ou outro tipo de sinal - Galiardi - seniorbrasil@yahoo.com.br - poderia ajudar e dividimos os lucros ?

    ResponderExcluir
    Respostas
    1. Olá, Galiardi. Infelizmente, acho que sua invenção já foi inventada. :-)
      Você pode fazer um programa no celular que envie um comando para o Arduino quando quiser ligar o motor. O Arduiono deverá ter um módulo Bluetooth e uma placa para acionar o motor. Tem um exemplo de comunicação com Bluetooth aqui:
      http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html
      Até!

      Excluir
  4. Olá tudo bem...
    Alguém poderia me informar qual o custo final do KIT comprado no site da POLOLU e que possui o Wixel Shield for Arduino + Wixel Pair + USB cable. Moro em Bento Gonçalves - RS.
    Muito obrigado a todos..!!

    ResponderExcluir
    Respostas
    1. Olá, Felipe. O preço pode variar. Verifique no site da Pololu:
      http://www.pololu.com/catalog/product/2501

      Excluir
  5. Olá, boa tarde.
    Eu comecei a trabalhar com o Arduino faz um certo tempo, e queria fazer um projeto mas não sei se é possível.
    Queria criar uma especie de HD virtual, onde eu possa armazenar aquivos em um microSD e distribuir os arquivos por Wifi. Onde qualquer computador poderia se conectar com a wifi do arduino e ter acesso aos arquivos armazenados no microSD.
    É viável esse tipo de projeto(Com o arduino)?

    ResponderExcluir
    Respostas
    1. Olá, Rafael. Acho que dá pra fazer isso com o Arduino, sim! Veja o Wi-Fi shield:
      http://store.arduino.cc/ww/index.php?main_page=product_info&cPath=11_5&products_id=237
      Abraços!

      Excluir