Apresentando o Bosch XDK Sensor X-perience

Conheça o Bosch XDK Sensor X-perience, o que a Bosch considera como "Plataforma para todo caso de uso envolvendo aquisição de sensores".
XDK
Este post faz parte da série Bosch XDK. Leia também os outros posts da série:

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:

  • BMA280 – Acelerômetro de 3 eixos de 16 bits, com controlador de interrupção que pode ser configurado para disparar em caso de vários tipos de eventos, seu manual pode ser obtido aqui;
  • BMG160 – Giroscópio (sensor de aceleração angular) de 3 eixos com resolução de 16 bits e FIFO programável, mais detalhes aqui;
  • BMM150 – Magnetômetro (sensor geomagnético) de 3 eixos com resolução de 13 bits para X/Y e 15 bits para o eixo Z, manual disponível nesse link;
  • BMI160 – Este é um velho conhecido, o BMI160 é uma IMU (unidade de medida inercial) composta de um acelerômetro e giroscópio ambos de 3 eixos e 16 bits de resolução. Adicionalmente, ele consegue cuidar de dados de outros sensores sem precisar de outra porta de comunicação, mais informações aqui;
  • BME280 – Também conhecido como sensor de condições do ambiente, esse sensor pode medir três grandezas, umidade, pressão e temperatura, com resolução de 16 bits. Seu manual pode ser encontrado clicando aqui;
  • AKU340 – Um dos meus favoritos desse hardware, esse sensor é voltado para medida de qualquer tipo de ruído acústico, só que a parte mais interessante segundo seu manual  é que a resposta é flat (constante) em toda a faixa de frequência que está entre 10Hz e 10KHz, tornando uma solução interessante para aquisição de voz;
  • MAX44009 – Um sensor de luz ambiente, com gama dinâmica altíssima de 22 bits, manual aqui.

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:

  • Bluetooth low energy – o XDK vem com um rádio BLE, permitindo a transmissão de dados em com baixo consumo de energia;
  • WiFi – Possui um conhecido CC3100 da Texas Instruments, acompanhando de um completo stack TCP/IP é o responsável por conectividade em nuvem direta no XDK;
  • Entrada para cartão SD – Acessível ao usuário, o XDK permite a inserção de um cartão de memória facilmente encontrável, permitindo armazenamento de dados locais quando a conexão não for disponível.

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: 

  • Stack Bluetooth low energy;
  • Stack WiFi e TCP/IP;
  • Stack de protocolos comunicação (CoAP, MQTT);
  • Sistema de arquivo FAT + drivers de disco;
  • Device drivers (microcontrolador, rádios, bateria, botões, leds, sensores);
  • Sensor toolbox – uma biblioteca de componentes para pós processamento de sensores (inclusive fusão baseado no Bosch BSX);
  • Gerenciador de energia e monitor de bateria;
  • Atualização de firmware por canal aéreo (FOTA).

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

Outros artigos da série

<< Conectando o Bosch XDK Sensor ao IBM Bluemix IoT PlatformBosch XDK: Comande-o por voz com IBM Bluemix Speech to Text >>

Engenheiro de sistemas embarcados apaixonado pelo que faz, tendo experiencia, nos últimos 15 anos, em áreas de alta tecnologia como: Defesa, Automotiva, Agricultura, Robótica e Semicondutores. Possui paixão por compartilhar e desmistificar tópicos de engenharia tidos como complexos ou misteriosos demais. Atualmente trabalha na Espressif Systems levando seus chips para projetos Open-Source. No tempo livre constroi e programa seus próprios robôs e controladores de motor.

Notificações
Notificar
guest
1 Comentário
recentes
antigos mais votados
Inline Feedbacks
View all comments
Eder Andrade
Eder
11/05/2017 09:45

Parrudo esse kit hein?!

Bacana por compartilhar essa experiência!
Gostei muito do AKU340 e do MAX44009, acho que vou usar futuramente 🙂

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H