quarta-feira, 27 de fevereiro de 2019

RUUVI OPEN SOURCE - GITHUB
(PROGRAMAÇÃO COM SEGGER STUDIO MAIS FÁCIL)

O objetivo deste BLOG é demonstrar de forma resumida como é possível programar o módulo NINA B1 via SEGGER STUDIO de uma forma mais simplificada. Para testes foi utilizado o EVK-NINA-B1 e software open-source do módulo Bluetooth Ruuvi.


RUUVI

Construir Ruuvi Firmware começou como um hobby do lado de um dia de trabalho para mim. Como se poderia esperar, o código construído em sprints de sábado tem uma característica distinta de fazer exatamente uma coisa e ser uma dor para refatorar em qualquer outra coisa depois.

Depois de me juntar oficialmente à equipe da Ruuvi como parceiro e começar a trabalhar em tempo integral com o projeto de firmware, demorei mais um ano para chegar a esse ponto, quando finalmente estou começando a me sentir satisfeito com o estado atual do firmware da Ruuvi.

Faz uma coisa e faz muito bem.

Requisitos comunitários e personalizados

Nossa comunidade sempre crescente construiu uma infinidade de bibliotecas, aplicativos e projetos em torno da RuuviTag. Agora, temos uma base sólida e experiência para criar novos recursos e melhorar.

À medida que a rede de nossos parceiros cresce, o número de solicitações de personalização também aumenta. Alguém quer um adesivo especial para a tag, alguém quer ter seu próprio formato de dados e alguém quer rodar o Ruuvi Firmware em sua própria placa ou em cima de sua própria pilha de rádio.

De relance, pode parecer que personalizar o firmware seria um projeto longo, sendo cada caso especial. No entanto, se tivermos uma visão mais ampla, a maioria dos projetos é apenas sobre configuração e escolhas: qual sensor nós temos para temperatura? Como isso está conectado? Quantas vezes deve ser amostrado? Em que taxa e formato os dados devem ser enviados? Qual pilha de rádio deve ser usada?

Isso leva ao futuro do desenvolvimento de firmware da Ruuvi com um objetivo de fácil portabilidade e personalização. Primeiro, identificamos os componentes do design que podem ser reutilizados em diferentes projetos: como o SDK em uso, arquivos de definição de placa e drivers. Em seguida, transformamos cada um deles em seu próprio repositório git, de modo que o usuário possa continuar construindo e atualizando seu aplicativo sem se preocupar com qualquer interrupção nas versões futuras dos componentes.



Nas próximas partes deste blog, vamos reconstruir a funcionalidade do Ruuvi Firmware 1.xe 2.x no nRF5 SDK 15 da Nordic Semiconductor usando o SEGGER Embedded Studio. No final, o código construído aqui será uma parte para o próximo produto Ruuvi.

Aqui está o roteiro...

1: Sleep
2: Debugging
3: Led blinking
4: Button — Interrupt
5: Environmental sensing
6: Accelerometer — polling
7: Battery measurement — naive approach
8: RTC
9: BLE broadcasting
10: NFC reading
11: Scheduler
12: Bootloader
13: Battery measurement — synchronize to radio
14: Accelerometer — interrupt
15: Watchdog
16: BLE GATT connection

17: NFC writing


Siga a série de blogs de firmware

https://blog.ruuvi.com/ruuvi-firmware-part-0-introduction-cfaecc4bbc0b

Se você deseja seguir os tutoriais, precisará, pelo menos, do SEGGER Embedded Studio e algumas RuuviTags ou outras placas nRF52832 da Nordic.

NA: utilizei o EVK-NINA-B1, que usa o NRF52832.

Participe do Projeto

Gostaríamos também de dar as boas vindas a todos para participarem deste projeto. Queremos criar um software que facilite a criação de aplicativos por outras pessoas. Todas as informações sobre o que funciona, o que não funciona, o que é necessário e o que é desnecessário para seus casos de uso nos ajudará a dar mais suporte aos requisitos dos usuários. Também é um fato bem conhecido que quanto mais cedo os erros são capturados, menor o impacto que eles causam, isso se aplica tanto ao design quanto ao código. Por favor, junte-se ao nosso Slack e fóruns para uma colaboração mais próxima e nos ajude a criar um código melhor para todos!

NA: utilize o SEGGER STUDIO 3.50



NA: utilizei o exemplo "Led blinking". Muita atenção, não esquecer se configurar as GPIO's. No exemplo estão mapeadas para o RUUVI, logo, deves mapear para o NINA-B1.

Consulte o Data Sheet para as GPIOS. (P0.X)


NA: Coloquei um LED na GPIO23 do EVK-NINA-B1 que corresponde ao P0.5, logo configurei em RUUVI_BOARD_RUUVITAG_B_H.h com

#define RUUVI_BOARD_LED_2                     5

Ao transferir o programa para o EVK-NINA-B1, teremos um BLINK!





Código Enxuto



Suporte: suporte@smartcore.com.br

Fontes:

https://blog.ruuvi.com/tagged/nrf52832
https://blog.ruuvi.com/ruuvitag-segger-embedded-studio-1e5a24cb6a43
 

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portifólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br