Olá caro leitor! Como alguns (espero que muitos) de vocês já leram, falamos por esses dias sobre como conectar um dispositivo físico com a plataforma de IoT IBM Bluemix. Falamos ainda que esse dispositivo tratava-se do Bosch XDK Sensor (que chamarei daqui pra frente apenas de XDK), porém falamos rasamente sobre seu conteúdo. Pois bem, futuramente teremos mais alguns experimentos para publicar baseado nesse hardware, então faz-se justo a apresentação do que a Bosch considera como: “Plataforma para todo caso de uso envolvendo aquisição de sensores”.

Unboxing do XDK, por dentro da caixa

Uma das coisas que chama a atenção é que o hardware é denominado como uma experiência completa de sensores, a Bosch não exagerou, o dispositivo tem tamanho reduzido e traz uma série de funções legais. Mas antes de adentrarmos, vamos ver uma foto de como ele é :

Aspecto do XDK
Figura 1: Aspecto do XDK

Bonitinha, não? Mas queremos uma imagem real. Bom, como alguns já sabem, minha esposa me presenteou com um brinquedo desses de aniversário (como não amar?). O dispositivo ao chegar em casa foi uma alegria, ao abrir a caixa me deparei com o brinquedo, vejam que legal:

Aspecto real do XDK ao abrir a caixa
Figura 2: Aspecto real do XDK ao abrir a caixa

Em termos de dimensões, o XDK é menor que um arduino UNO, dentro da caixa, além do XDK alguns acessórios são fornecidos para que o usuário não fique limitado apenas nos sensores disponíveis (sim é possível usar o XDK como atuador conectado). São eles o cabo extensor e um adaptador para protoboard, vejamos a figura abaixo:

Conteúdo da caixa do XDK
Figura 3: Conteúdo da caixa do XDK

Para começar a desenvolver basta conectar seu XDK a uma porta USB, e acompanhado do Bosch XDK Workbench você, leitor, terá todas as ferramentas necessárias para desenvolver sua próxima aplicação de sensores. Mas falando em sensores… o que será que existe dentro do XDK?

Por dentro do Hardware do XDK

Agora vamos saciar a curiosidade do leitor, o que existe por dentro do XDK? Bom, vamos primeiramente aos sensores, o XDK como especificado, possui 10 sensores para diferentes grandezas, o que da além de uma gama interessante de parâmetros diretos. Provê também um grande leque de grandezas que podem ser indiretamente medidas utilizando algoritmos de fusão de sensores. A lista de sensores presentes são:

Além das características para sensor, o pequeno e notável hardware da Bosch traz mais armamento para transformá-lo num dispositivo conectado capaz de atender até os casos mais complexos de IoT:

Completam o brinquedo a presença de push-buttons e leds para proporcionar uma interação simples com o usuário. Uma bateria interna é presente ao dispositivo, permitindo que algoritmos de gerenciamento de energia sejam desenvolvidos para que o dispositivo possa operar em campo por mais tempo sem uma fonte externa.

Nem tudo é eletrônica nesse hardware, o pessoal da engenharia da Bosch trata esse dispositivo como um candidato a produto, e não protótipo. Para isso os rádios já vem pré-certificados e, somado a isso, o design mecânico foi projetado para ser compacto, porém robusto, sendo resistente a impactos e à poeira. O kit acompanha um sistema para fixação permitindo que o próprio dispositivo seja instalado na localização final da aplicação, de novo, esse não é um kit para iniciantes (o preço trata de reforçar isso).

Desenvolver com o XDK, como funciona?

Por ser um hardware tão completo, o pessoal da Bosch também fez o mesmo com as ferramentas de desenvolvimento de firmware, o SDK (Software Development Kit) que acompanha o XDK vem em conjunto com o ambiente de desenvolvimento baseado em Eclipse, chamado de XDK Workbench. Ao explorar o SDK o usuário ficará fascinado, pois a quantidade de ferramentas disponíveis é grande, permitindo diversos níveis de desenvolvimento. O XDK é centrado em um port especial do conhecido FreeRTOS, porém com alguns recursos já configurados para uso no XDK, mas nada impede que o usuário reconfigure tudo ao seu gosto. Além do RTOS já portado o SDK possui validado e bem integrado: 

Tudo isso em volta de um microcontrolador ARM-Cortex M3, fornecido pela Silicon Labs. O MCU em questão é da família EFM, sendo apenas adequado à aplicação (confesso que esperava um Cortex-M4 com FPU como os low power STM32L4). Para desenvolvimento o usuário conta com um canal de bootloader permitindo o download de uma nova aplicação apenas conectando o XDK em uma porta USB (também utilizada como console, permitindo que mensagens do firmware possam ser enviadas e exibidas  em uma aplicação de terminal). Além disso o usuário mais avançado conta com uma porta de debug para conexão do conhecido Segger JLink, permitindo que desenvolvimento de cada linha de código seja testada passo-a-passo. Abaixo podemos ver o aspecto geral do XDK Workbench, como o usuário pode notar, não há nada de muito diferente de outros ambientes baseados em Eclipse, exceto pela quantidade de módulos disponíveis e pelo nível de integração (um projeto no XDK pode ser criado em menos de 3 minutos com todos os componentes configurados):

Aspecto do XDK Workbench
Figura 4: Aspecto do XDK Workbench

A ideia da Bosch me pareceu simplificar o máximo possível o fluxo do desenvolvimento de software, para isso todos os componentes vem pré-configurados, acompanhados de um guia para uso nas aplicações exemplo, e em aplicações personalizadas, sendo os passos de ajustar a aplicação, conectar o XDK e efetuar o download utilizando seu bootloader.

Conclusão

A Bosch mostra seu primeiro dispositivo aberto a desenvolvedores, ao que indica, parece que a empresa esta focando no desenvolvimento de soluções para dispositivos conectados. O XDK aparenta ser apenas o primeiro passo, mas já trazendo consigo tudo que é necessário para suprir casos de aquisição de dados e atuação envolvendo dispositivos conectados, termo bem conhecido por IoT (Internet of Things). Além disso o XDK já vem com cara de produto, sendo que boa parte do seu design está em fase final, bastando que o consumidor adapte-o para seu cenário final de aplicação (e pode contar com o suporte da Bosch para isso), dai vem o preço salgado de $185 (FOB), mas a pergunta que talvez tentarei responder nos próximos projetos publicados é, vale a pena? Clicando aqui o usuário poderá encontrar o link para compra do XDK, nos próximos posts vamos explorar mais capacidades desse dispositivo para justificar seu preço, aguarde!

Referências

[1] – Comunidade Bosch XDK

[2] – Datasheet Bosch XDK