Módulos Bluetooth da Anaren – AIR for WICED

Módulos Bluetooth da Anaren – AIR for WICED

Se você precisa de comunicação Bluetooth Low Energy no seu produto, a linha AIR for WICED da Anaren é uma excelente opção a ser considerada. Com ela é fácil desenvolver a solução como um todo, tanto o firmware para o módulo quanto o aplicativo para smartphone/tablet.

 

Sobre a Anaren

 

A Anaren é uma empresa americana de componentes eletrônicos voltada para aplicações em micro-ondas e radiofrequência. Ela é dividida em dois grupos, um dedicado a prover soluções para a área militar e aeronáutica e outro focado no mercado consumidor.

Um dos destaques em seus produtos é a linha AIR (Anaren Integrated Radio). Esta linha se divide em 4 segmentos, todos eles compostos por módulos de rádio:

    AIR for Proprietary RF: módulos de rádio não processados. Provê soluções configuráveis de protocolo e de frequência de operação;
    AIR for Zigbee: módulos ZigBee microcontrolados;
    AIR for WICED: módulos BLE (Bluetooth Low Energy). É o que iremos apresentar neste artigo;
    AIR for Wireless Audio: módulos voltados para aplicações em áudio sem fio.

Os módulos AIR for WICED

A Anaren fabrica dois módulos para a linha AIR for WICED: o A20737A e o A20737C. A diferença entre eles é que o A20737A contém antena integrada no próprio módulo e o A20737C contém um conector padrão U.FL para antena externa.

Ambos são baseados no chipset Broadcom BCM20737.

Algumas características desses dois módulos:

    Alimentação de 1.7V a 3.6V (pode ser alimentado por uma bateria CR2032 de lítio);
    Temperatura de operação industrial (-40°C a +85°C);
    Processador de 32 bits integrado (ARM Cortex M3);
    EEPROM integrada de 512 kbits;
    Até 3dBm de potência de saída, sensibilidade de -94dBm;
    Interfaces para periféricos: SPI, I2C, PWM, UART, GPIO;
    Conversor AD de 10 bits;
    Dimensões reduzidas: 11 mm x 13 mm x 2,5 mm.

O Kit de Desenvolvimento

A Anaren tem um kit bem interessante para iniciar o desenvolvimento: é o A20737A-MSDK1.

O kit contém, entre outras coisas:

    Porta USB para alimentação e para gravar o firmware;
    Buzzer;
    LED de três cores (RGB);
    Sensor de temperatura infravermelho;
    Acelerômetro;
    Magnetômetro;
    Joystick;
    Transmissor/receptor de infravermelho;
    Expansor de GPIO;
    Suporte para bateria CR2032.

A grande diversidade de periféricos facilita o aprendizado e prototipação dos mais variados tipos de aplicação.

O Ambiente de Desenvolvimento

Como todo módulo baseado em chipset IoT da Broadcom, o A20737A/C é compatível com o ambiente de desenvolvimento WICED.

WICED significa Wireless Internet Connectivity for Embedded Devices. É uma linha que foi criada com o intuito de ser “aberta”, sem necessidade de assinar um NDA (Non-Disclosure Agreement) por parte do cliente para se ter acesso à informação (datasheets, SDK, etc...).

O ambiente de desenvolvimento WICED (WICED SDK) é caracterizado pelo uso de ferramentas/bibliotecas livres e de código aberto, como o Eclipse, GCC, FreeRTOS, porém com opção de uso de bibliotecas comerciais caso desejado.
 

Com o WICED SDK você desenvolve o firmware que roda no módulo. A linguagem utilizada é C: você tem um bom controle do que acontece no firmware, porém o ciclo de desenvolvimento é mais demorado.

 
Visando facilitar e agilizar o desenvolvimento, a Anaren criou o Atmosphere!

O Atmosphere

O Atmosphere é um ambiente de desenvolvimento baseado na Web e permite prototipar rapidamente uma solução que usa Bluetooth Low Energy. Você precisa apenas se cadastrar no site da Anaren para criar seus projetos. Não tem custo algum. E uma das grandes vantagens dele é que você desenvolve a solução como um todo: o firmware do módulo e o aplicativo para smartphone/tablet.

 

 

A área da esquerda é a área onde se desenvolve a parte lógica da aplicação como um todo (firmware + aplicativo para smartphone/tablet). Nela você monta um diagrama de blocos com a lógica a ser obedecida. Blocos podem representar diversas coisas: uma leitura de um pino (GPIO) que está ligado a um push-button, uma saída PWM que está ligada a um buzzer. Blocos também podem representar tarefas, elementos lógicos, laços, etc. Há ainda as conexões entre os blocos, que representam eventos e ações, como por exemplo um clique de botão acionar um LED.

 

O interessante do uso do diagrama de blocos é que você não precisa ter conhecimentos avançados de desenvolvimento de software nem das bibliotecas utilizadas para desenvolver a aplicação: basta arrastar os blocos certos e elaborar a lógica que você deseja. Mas se quiser (e se precisar), você pode também editar o código fonte: há outra aba que mostra parcialmente o código que será gerado.

 
 

Já a área da direita é a área onde você cria a interface do aplicativo para smartphone/tablet.

 
 

 

Nela você arrasta elementos gráficos como imagens, botões, sliders, texto, barras de progresso, etc. Cada elemento gráfico é representado também no diagrama de blocos, de forma que você consegue mudar o estado dos elementos através da lógica estabelecida no diagrama de blocos. E o contrário também vale, você pode usar um elemento gráfico para acionar/controlar algo via diagrama de blocos.

Dois exemplos simples: você pode usar um campo de texto para mostrar uma temperatura, e pode usar um botão para acionar um pino do módulo (GPIO).

Compilando e gravando

Uma vez pronta a aplicação, é só compilar e embarcar no módulo.

O Atmosphere tem um menu que permite compilar o projeto (Project/Build). Uma vez compilado, os binários ficam disponíveis dentro do sistema da Anaren. Mas como fazer para gravar?

A Anaren disponibiliza um aplicativo chamado Atmosphere Programmer para este fim. Existem versões para Windows, Mac OSX e Linux. Este aplicativo solicita a sua conta na Anaren e baixa automaticamente o binário gerado na compilação do Atmosphere na hora da gravação.
 


 

No caso de estar usando o kit de desenvolvimento, a gravação se dá através da porta USB, que no final das contas é representada no sistema operacional por uma porta serial.

Testando 

E o aplicativo para smartphone/tablet? A Anaren tem, tanto para Android quanto para iOS, um aplicativo container que carrega a interface que você desenvolveu no Atmosphere. Basta que você use a sua conta da Anaren durante a inicialização do mesmo.

 

Uma vez carregado o aplicativo para smartphone/tablet, basta estabelecer uma conexão BLE com o módulo para que se possa usá-lo.

A Anaren tem um projeto “demo” para testar o kit, onde boa parte de seus periféricos pode ser usada. Dessa forma fica mais fácil aprender se baseando no que já existe pronto.

 
Neste projeto temos as seguintes interfaces gráficas:

    Uma bússola que mostra o norte magnético baseado em medições do magnetômetro;
    Um nível de bolha que mostra informações com base no acelerômetro;
    Um joystick gráfico que representa o estado do joystick do kit;
    Três sliders para controlar a intensidades das cores vermelha, verde e azul de um LED RGB;
    Um campo para mostrar a temperatura medida do sensor infravermelho.

 

 

O projeto “demo”, bem como diversos outros projetos, pode ser carregado através do menu Help/Sample Projects do Atmosphere.

 

Saindo da prototipação e entrando em desenvolvimento final

Convenhamos, rodar a aplicação do smartphone/tablet dentro de um aplicativo container da Anaren, onde é necessária uma conta da Anaren e acesso à Internet, serve para prototipação, mas não é uma boa ideia para um produto.

 

Por isso, a Anaren permite que você baixe o código fonte da sua aplicação para smartphone/tablet. Isso pode ser feito através do menu Project/Download App Source. O código fonte é compatível com Android e iOS: é um projeto do PhoneGap.

 


 

Você também pode baixar o código fonte em C do firmware, que é compatível com a plataforma WICED. Após descompactado (vem num arquivo zip), você pode inclui-lo no projeto do Eclipse que vem com o WICED SDK e trabalhar diretamente nele, tendo controle absoluto do que está acontecendo “por baixo dos panos”..

Conclusão 

A solução da Anaren para Bluetooth Low Energy tem como principais características:

    Um módulo BLE processado com diversas interfaces para periféricos;
    Um kit de desenvolvimento com diversos periféricos para serem testados;
    Um ambiente de desenvolvimento completo, onde você pode desenvolver tanto o firmware para o módulo quanto o aplicativo para smartphone/tablet;
    A flexibilidade de se poder trabalhar com o WICED SDK e ter o controle completo do firmware.