MBED STUDIO - NINA B112 - LED BLINK

Bluetooth com NINA B112 - Mbed CLI/STUDIO - Controlando LED via Celular


O objetivo deste BLOG é mostrar a instalação básica de software necessária para efetuar testes dos softwares exemplos BLE da Mbed no seu NINA B112. O exemplo transforma o NINA B112 em um BLE o qual pode ser comandado via APP para acender ou apagar um LED. Foi utilizado o EVK-NINA-B. No final é apresentada a alternativa que é o MBED Studio 1.0




Há várias opções para compilares o programa MBED.

Mbed online - trata-se de um compilador ONLINE Mbed, ou seja, você compila na nuvem e recebe arquivo executável para você gravar no NINA B1. Tem vários exemplos para BLUETOOTH e o que chama a atenção é que você pode exportar o projeto para várias IDE.  Utiliza SDK da Mbed.

Mbed offline (linha de comando) - neste modo, tudo é feito com linhas de comando, instalação, compilação, gravação. Requer editor para edição e compilador é o Mbed versão offline, GCC.  Utiliza SDK da Mbed. Tem vários exemplos para BLUETOOTH e acesso ao Hardware.
https://os.mbed.com/docs/v5.7/tutorials/quick-start-offline.html

Mbed eclipse - se você conhece o eclipse, pode importar o projeto que gerou com o Mbed online, normalmente há uma chamada do MAKEFILE, o qual chama o GCC.  Utiliza SDK da Mbed. Tem vários exemplos para BLUETOOTH e acesso ao Hardware.
https://os.mbed.com/compiler/

Agora também, o MBED STUDIO.
Similar ao Platformio
https://os.mbed.com/studio/

No caso, escolhemos MBED OFFLINE, então:

No Link 
Há uma série de exemplos que mostram como efetuar testes com BLE entre o NINA B112 e seu celular

Vamos baixar o exemplo do LED BLE, mas antes

Instale GIT em seu computador

Instale MBED offline em seu computador (CLI) (Sempre mantenha atualizado!)
https://os.mbed.com/docs/mbed-os/v5.15/introduction/index.html , sugiro o executável!

Requer Python 2.7.14

Após instalá-los

Escolha o exemplo

https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-ble-LED/


Click em IMPORT WITH CLI


E escolha IMPORT WITH CLI e então copy past

mbed import http://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-ble-LED/


C:\>mbed import http://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-ble-LED/
[mbed] Working path "C:\" (program)
[mbed] Importing program "bed-os-example-ble-LED" from "https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-ble-LED" at latest revision in the curre
nt branch
[mbed] Adding library "mbed-os" from "https://github.com/ARMmbed/mbed-os" at rev #5941d1718339
[mbed] Adding library "shields\TARGET_CORDIO_BLUENRG" from "https://github.com/ARMmbed/cordio-ble-x-nucleo-idb0xa1" at rev #811f3fea7aa8
[mbed] Auto-installing missing Python modules (colorama, urllib3, prettytable, junit_xml, pyyaml, jsonschema, future, six, mbed_cloud_sdk, requests, idna, pyser
ial, jinja2, intelhex, mbed_ls, mbed_host_tests, mbed_greentea, beautifulsoup4, pyelftools, manifest_tool, icetea, pycryptodome, pyusb, hidapi, cmsis_pack_manag
er, pywin32, wmi, psutil)...

C:\>

cd mbed-os-example-ble-LED
mbed deploy

mbed update
$ cd mbed-os
$ mbed update master   # This will update "mbed-os", not "my-program"

Para compilar, execute

mbed compile -t <ARM | GCC_ARM> -m <YOUR_TARGET>

Onde<YOUR_TARGET> =UBLOX_EVK_NINA_B1


Logo

mbed compile -t GCC_ARM -m UBLOX_EVK_NINA_B1


Aguarde....









Se tudo deu certo, você terá esta imagem (SOFDEVICE JÁ INCLUÍDO NO CÓDIGO)




Quando você executa o comando mbed compile, como fez anteriormente, o mbed cli cria um BIN ou um arquivo HEX em um diretório BUILD/<target-name>/<toolchain> sob o diretório do exemplo. Arraste e solte o arquivo no armazenamento removível.

Para efetuar a gravação voce pode usar o J-LINK SEGGER ou um DAP-LINK. No caso utilizamos o J-LINK SEGGER, através do Software J-FLASH lite



Selected file: C:/mbed-os-example-ble-LED/BUILD/UBLOX_EVK_NINA_B1/GCC_ARM/mbed-os-example-ble-LED.hex

Pronto, gravado!

Agora abre o APP ble SCANNER







Onde está o LED no NINA B112

C:\mbed-os-example-ble-LED\mbed-os\targets\TARGET_NORDIC\TARGET_NRF5x\TARGET_NRF52\TARGET_MCU_NRF52832\TARGET_MTB_UBLOX_NINA_B1>dir
 O volume na unidade C não tem nome.
 O Número de Série do Volume é 5EAA-F512

 Pasta de C:\mbed-os-example-ble-LED\mbed-os\targets\TARGET_NORDIC\TARGET_NRF5x\TARGET_NRF52\TARGET_MCU_NRF52832\TARGET_MTB_UBLOX_NINA_B1

28/03/2020  10:44    <DIR>          .
28/03/2020  10:44    <DIR>          ..
28/03/2020  10:44               728 device.h
28/03/2020  10:44             3.059 PinNames.h
               2 arquivo(s)          3.787 bytes
               2 pasta(s)   46.404.878.336 bytes disponíveis

C:\mbed-os-example-ble-LED\mbed-os\targets\TARGET_NORDIC\TARGET_NRF5x\TARGET_NRF52\TARGET_MCU_NRF52832\TARGET_MTB_UBLOX_NINA_B1>


E olhando para o código fonte

public:
    LEDDemo(BLE &ble, events::EventQueue &event_queue) :
        _ble(ble),
        _event_queue(event_queue),
        _alive_led(LED11),
        _actuated_led(LED2, 0),
        _led_uuid(LEDService::LED_SERVICE_UUID),
        _led_service(NULL),
        _adv_data_builder(_adv_buffer) { }
e olhando para PinNames.h

    LED1 = p4, // Red LED
    LED2 = p10, // Green LED

Ele vai acender o LED RGB do EVK-NINA-B quando você escrever 01 e apagar quando escrever 00.

Outro LED (LED2) ficará piscando a cada segundo!


Agora você tem uma opção via IDE ou seja,  MBED STUDIO, tornando mais fácil a programação MBED, veja as características:

Com o número de desenvolvedores com uma conta Mbed crescendo 20% desde o lançamento inicial no ano passado, alguns de vocês podem ser novos no Mbed Studio. Aqui está um resumo dos recursos e alguns antecedentes:

Novo: gerenciamento de destino personalizado
Novo: Keil uVision exportador
Novo: Melhores fluxos de trabalho de controle de origem para git e mbed.com
Novo: documentação completamente revisada
Novo: Suporte do Mbed OS 6 com exemplos
Novo: progresso do checkout para bibliotecas adicionadas ao painel de bibliotecas
Conjunto completo de dependências de ferramentas (git, hg, Arm Compiler 6, gdb, pyOCD, Mbed CLI, GreenTea, clangd etc) incluídas no produto junto com o acesso ao terminal a partir do Mbed Studio
Poderoso editor de Mônaco, incluindo C ++ intellisense para sua placa de desenvolvimento e um minimapa de código-fonte
Integração com os Serviços de Gerenciamento de Dispositivos Pelion
Suporte de preferências para o editor e o IDE
Recursos de gerenciamento e pesquisa da área de trabalho
Suporte para Linux (Ubuntu 18)
Saída serial (iniciada automaticamente quando você conecta uma placa)
Depuração de etapas
Suporte personalizado ao perfil de construção

BACKGROUND

Começamos nossa jornada em direção a esta versão do Mbed Studio há cerca de dois anos, com o objetivo de facilitar o desenvolvimento de produtos incorporados e de IoT com o Mbed OS, tanto em ambientes de desktop quanto em navegadores. Lançamos atualizações e melhorias constantemente desde 2019, com seus relatórios e sugestões de bugs nos guiando e nos ajudando a priorizar onde nos concentramos.

Ao fornecer o conjunto completo de dependências de ferramentas de software necessárias para trabalhar com o Mbed OS em um único instalador, o Mbed Studio aprimora drasticamente a primeira vez que é configurado em um ambiente Mbed. Nossa escolha de trabalhar com a estrutura do Eclipse Theia IDE significa que temos uma base de código que inclui o poderoso editor Microsoft Monaco e uma plataforma que pode ser implementada no navegador no futuro. Alguns de vocês já estão ajudando a testar uma visualização fechada da versão do navegador, por isso, obrigado pela sua contribuição até agora!

Por fim, o Mbed Studio substituirá o Online Compiler, e acreditamos que a experiência seja um grande avanço.

Novos recursos na 1.0

Gerenciamento de destino personalizado
Agora suportamos a configuração de hardware personalizado, conectado através de testes de depuração. Inicialmente, concentramos esse suporte em sondas baseadas em ST-Link e DAPLink. O objetivo final é facilitar a passagem de uma placa de desenvolvimento para uma PCB personalizada.



Exportador Keil uVision
Você pode exportar (ou melhor, converter) seu programa para uso com o Keil uVision; portanto, se você enfrentar um desafio difícil de depuração ou quiser usar rastreamento, gravador de eventos ou qualquer outro recurso poderoso de depuração do uVision, poderá abrir seu projeto em uVision. Também adicionamos um exportador de zip.

Publicar no git e os.mbed.com
Introduzimos um novo fluxo para definir um repositório remoto. Portanto, se você criou um repositório no GitHub ou os.mbed.com, agora pode interagir com ele mais facilmente no Mbed Studio.

Suporte para Mbed OS 6
O Mbed OS 6 já é suportado no Mbed Studio e você pode atualizar o Mbed OS 5 para a versão mais recente no painel de gerenciamento de bibliotecas. Para aumentar a velocidade de criação do projeto, introduzimos uma nova versão em cache do Mbed OS 6, além do cache existente do Mbed OS 5.

Como o Mbed OS 6 introduz algumas alterações no suporte à placa, atualizamos o Mbed Studio para que não restrinja mais a escolha do destino com base na versão do sistema operacional. Isso permite que você experimente o perfil bare metal ou obtenha placas da comunidade. Agora exibimos uma notificação para informar se o quadro é suportado em uma determinada versão do sistema operacional.

Documentação
Nossos redatores técnicos trabalharam duro nos últimos meses para atualizar a documentação do Mbed Studio no mbed.com. Eles têm seções atualizadas para a maior parte do IDE, incluindo os novos recursos já mencionados nesta postagem. Você pode acessar os documentos em https://os.mbed.com/docs/mbed-studio/

Correções de bugs
Na 1.0, corrigimos um grande número de problemas. Aqui estão os mais comumente relatados que resolvemos:

Reiniciando o monitor serial depois que ele foi fechado.
9 e 3 teclas com num-lock atuando como página para cima e para baixo após uma alteração no layout do teclado.
Barra de rolagem do navegador de arquivos.
Congelamento ocasional ao conectar placas de desenvolvimento no Windows.

Exemplo do projeto acima no MBED STUDIO com NINA B112 (EVK-NINA-B1)


Compilando



Com o Mbed Studio, você pode importar programas do os.mbed.com, um serviço de hospedagem Git ou seu sistema de arquivos local. Você também pode importar um programa exportado do Mbed Online Compiler ou iniciar com um programa vazio. Você pode criar, executar e depurar programas do Mbed OS em placas de desenvolvimento suportadas pelo Mbed.

Veja aqui com importar um projeto MBED ou criar um novo!


Atenção:

Nota: O Mbed Studio usa pyOCD para se comunicar com a plataforma conectada. Se você tentar executar um programa em uma plataforma com uma versão DAPLink que não seja suportada pelo pyOCD, ele falhará com o código de saída 1. Ainda estamos adicionando suporte ao pyOCD e mais plataformas estarão disponíveis ao longo do tempo. Sugiro ST-LINK-V2.


Tenha certeza que pyocd esteja funcionando!


Atualize o firmware do seu ST-LINK V2


Apagando


Gravando


APP SCANNER



Questões: suporte@smartcore.com.br

 
 

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

 

Comentários

Postagens mais visitadas deste blog

U-BLOX NINA B112 ACESSANDO MODEM GSM VIA MBED STUDIO

MBED BLE - NINA B112