Wireless SD Shield
O Wireless SD Shield permite a uma placa Arduino se comunicar sem fios utilizando um módulo wireless. É baseado nos módulos XBee da Digi, mas pode utilizar qualquer módulo com a mesma configuração física. Os módulos podem se comunicar a distências de 30m, em áreas internas, a 90m, em áreas externas (com linha de visão). Pode ser utilizado como um substituto para uma conexão serial/usb ou pode ser ajustado para modo de comando e configurado en diversas opções de rede broadcast ou mesh. Estes shields disponibilizam cada um dos pinos do XBee em conectores soldados à placa.
Também está incluído na placa um encaixe para cartões SD. Quando estiver utilizando a biblioteca SD para acessar o cartão o pino 4 e o CS não devem ser utilizados para outras finalidades. A conexão SPI se mantém nos pinos 11, 12 e 13.
Há ainda uma chave de seleção para os modos de controle por USB ou por microcontrolador.
Esquema
arquivos EAGLE: arduino_WirelessShield_SD_v3-reference-design.zip
Esquema: arduino_WirelessShield_SD_v3-schematic.pdf
Chave de ajustes
O Wireless SD shield tem embarcada uma chave com indicações Micro e USB. Ela determina como a comunicação serial do XBee se conecta à comunicação serial entre o microcontrolador (ATmega8 ou ATmega168) e ao chip USB-a-serial na placa Arduino.
Quando na posição Micro, o pino DOUT do módulo XBess é conectado ao pino RX do microcontrolador, e o DIN ao TX. O módulo então se comunicará com o microcontrolador. Note que os pinos RX e TX do microcontroaldor permanecem conectados aos pinos TX e RX (respectivamente) do conversor USB-a-serial. Dados enviados pelo microcontroaldor serão transmitidos ao computador via USB e também serão enviados pelo módulo sem fio. Neste modo o microcontrolador não poderá ser programado via USB.
Com a chave na posição USB, o pino DOUT do módulo sem fio é conecatdo ao RX do conversor USB-a-serial, o DIN ao TX. Isto significa que que o módulo pode se comunicar diretamente com o computador. O microcontrolador na placa será sobrepassado. Para utilizar o shield neste módulo você deve programar o microcontrolador com um programa vazio ou remover o CI da placa.
Empty sketch:
voidloop(){}
Em rede
O Wireless SD shield pode ser utilizado com diversos módulos com a mesma configuração física que os XBee. As instruções abaixo referem-se aos módulos XBEE 802.15.4 (também chamados de "Series 1") e também ao XBee ZNet 2.5 ou XBee ZB, ambos conhecidos como "Series 2". Todos os módulos têm basicamente os mesmos parâmetros de configuração mas diferem nas funções que implementam e na topologia das redes que podem criar. Somente podem se comunicar entre si modulos da mesma família.
Endereçamento
Há multiplos parâmetros que necessitam ser configurados para que dois módulos se comuniquem (embora com a configuração padrão todos os modulos deveriam estabelecer comunicação). Eles deves estar na mesma rede, como configurado pelo parâmetro ID (veja "Configuração" abaixo para mais detalhes). Devem estar no mesmo canal, como configurado pelo parâmetro CH. E, finalmente, o endereçamento de destinação (parâmetros DH e DL) determina quais módulos na rede e canal recebem os dados emitidos. Isto pode acontecer de algumas maneiras:
- Se o DH de um módulo é 0 e o DL é inferior a 0xFFFF (i.e. 16 bits), os dados transmitidos serão recebidos por qualquer módulo com o endereço de 16 bits MY igual ao DL.
- Se DH é 0 e DL é igual a 0xFFFF, a transmissão será recebida por todos os módulos.
- Se DH não é 0 ou DL é maior que 0xFFFF, a transmissão será recebida apenas pelo módulo cujo número serial seja igual ao endereço de transmissão do módulo emissor (i.e. SH é igual ao DH do transmissor e SL é igual ao DL).
Novamente, este encaixe de endereçamento somente ocorrerá entre módulos que estiverem configurados para os mesmos rede e canal. Se dois módulos estiverem em diferentes redes ou canais eles não podem se comunicar, independetemente do endereçamento.
Para os módulos da "Series 2" você deve escolher um dos firmwares para que eles atuem como Coordenador, Roteador ou Dispositivo Final. Os Series 2 utilizam apenas serial low (SL) e serial high (SH) para endereçamento.
Configuração
Aqui há alguns dos parâmetros mais úteis para configurar o seu módulo XBee. Para instruções passo-a-passo de leitura e escritura utilizando comando AT veja (somente em inglês):
- guide to the Wireless shield with the 802.15.4 modules.
- guide to the Wireless shield with the ZNet 2.5 modules.
Esteja seguro de adicionar ATantes do nome do parâmetro quando for enviar um comando para o módulo (ex. para ler o parâmetro IDvocê deve enviar o comando ATID):
Comando | Descrição | Valores válidos | Valor padrão |
ID | O ID (identificação) do módulo na rede. | 0 - 0xFFFF | 3332 |
CH | O canal do módulo. | 0x0B - 0x1A | 0X0C |
SH e SL | O número serial do módulo (SH fornece os high 32 bits, SL os baixos 32 bits). Apenas para leitura. | 0 - 0xFFFFFFFF (for both SH and SL ) | different for each module |
MY | O endereço de 16 bits do módulo. | 0 - 0xFFFF | 0 |
DH e DL | O endereço de destino para comunicação sem fio ( | 0 - 0xFFFFFFFF (for both DH and DL ) | 0 (for both DH and DL ) |
BD | A taxa de comunicação utilizada para a comunicação serial com o Arduino ou com o computador. | 0 (1200 bps) 1 (2400 bps) 2 (4800 bps) 3 (9600 bps) 4 (19200 bps) 5 (38400 bps) 6 (57600 bps) 7 (115200 bps) | 3 (9600 baud) |
Nota: embora os valores válidos e padrão na tabela acima estejam escritos com o prefixo "0x" (para indicar que são números hexadecimais), o módulo não incluirá este prefixo quando enviar o valor de um parâmetro, e você deve omiti-lo quando enviar valores para configuração.
Aqui há alguns dos comandos mais úteis para a configuração do módulo XBee (também utilizados com o prefixo AT).
Comando | Descrição |
RE | Restaurar os valores padrão de fábrica (note que como alteração de parâmetro isto não é permanente, a não ser que seja seguido por um comando WR).
|
WR | Escrever os parâmetros configurados na memória não volátil. Caso contrário os parâmetros somente permanecerão até que cesse a alimentação do módulo. |
CN | Sair do modo de comando agora. (se você não enviar qualquer comando durante algusn segundos o modo de comando ultrapassará o tempo limite mesmo sem um comando CN). Exit command mode now. (If you don't send any commands to the module for a few seconds, command mode will timeout and exit even without a |
Para mais detalhes de configuração do módulo XBee veja os seguintes manuais (somente em inglês):