RUUVI OPEN SOURCE - GITHUB
(PROGRAMAÇÃO COM SEGGER STUDIO MAIS FÁCIL)
(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.
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
Suporte: suporte@smartcore.com.br
Fontes:
https://blog.ruuvi.com/tagged/nrf52832
https://blog.ruuvi.com/ruuvitag-segger-embedded-studio-1e5a24cb6a43
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...
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
- O código de cada parte esta disponível em https://github.com/ruuvi/ruuvi.firmware.c .
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