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.