segunda-feira, 25 de maio de 2020

NINA W102 e ESP-IDF (WINDOWS e LINUX)

U-BLOX NINA W102 e ESP-IDF (WINDOWS)

O objetivo deste BLOG é demonstrar como é possível utilizar o ESP-IDF para programar o módulo U-BLOX NINA W com framework SDK ESP-IDF pelo WINDOWS. Foi utilizado o EVK-NINA-W para o teste.

Funcionou muito bem no WINDOWS 7 e WINDOWS 10
ATENÇÃO

Habilite esta opção antes de compilar! Mudança a partir do ESP-IDF 4.0.1

Criei um arquivo chamado
partitions_mine.csv com o seguinte conteudo
nvs, data, nvs, , 0x6000,
phy_init, data, phy, , 0x1000,
factory, app, factory, , 1M,

Ao utilizar o menuconfig, nao esquecer de copiar  sdkconfig para  sdkconfig.defaults. Partitions_Mine.csv deve estar na pasta root de seu projeto

ESP-IDF

Ferramentas de instalação do ESP-IDF


O instalador inclui a ferramenta de compilação cross-compiladores, OpenOCD, cmake e Ninja. O instalador também pode baixar e executar instaladores do Python 3.7 e Git For Windows, se ainda não estiverem instalados no computador.

O instalador também oferece o download de uma das versões do ESP-IDF.

Utilizando o Prompt de Comando

Demais operações requer uso do Prompt de Comandos

O Instalador de ferramentas do ESP-IDF cria um atalho no menu Iniciar para iniciar o prompt de comando do ESP-IDF. Este atalho inicia o prompt de comando (cmd.exe) e executa o script export.bat para configurar as variáveis ​​de ambiente (PATH, IDF_PATH e outras). Dentro deste prompt de comando, todas as ferramentas instaladas estão disponíveis.














Observe que esse atalho é específico ao diretório ESP-IDF selecionado no Instalador de ferramentas ESP-IDF. Se você tiver vários diretórios ESP-IDF no computador (por exemplo, para trabalhar com versões diferentes do ESP-IDF), você terá duas opções para usá-los:

Crie uma cópia do atalho criado pelo instalador de ferramentas do ESP-IDF e altere o diretório de trabalho do novo atalho para o diretório do ESP-IDF que você deseja usar.

Como alternativa, execute cmd.exe, mude para o diretório ESP-IDF que você deseja usar e execute export.bat. Observe que, diferentemente da opção anterior, dessa maneira, o Python e o Git precisam estar presentes no PATH. Se você não encontrar erros relacionados ao Python ou ao Git, use a primeira opção.



Iniciando um projeto

Agora você está pronto para preparar seu aplicativo para o ESP32. Você pode começar com o projeto get-started / hello_world no diretório examples no ESP-IDF

crie um pasta c:\esp

Copie o projeto hello_world para dentro desta pasta


Há uma variedade de exemplos de projetos no diretório de exemplos no ESP-IDF. Você pode copiar qualquer projeto da mesma maneira apresentada acima e executá-lo.

Também é possível criar exemplos no local, sem copiá-los primeiro.

Importante

O sistema de construção do ESP-IDF não suporta espaços nos caminhos do ESP-IDF ou dos projetos.

Conecte com seu Device

Descubra a COM onde esta conectado seu EVK-NINA-W.

Configure

Navegue para o diretório hello_world a partir da Etapa acima. Inicie um Projeto, defina o chip ESP32 como o destino e execute o utilitário de configuração do projeto menuconfig.

Execute idf.py menuconfig



Selecione ESP32 com 2MB e também a COM


Compile

idf.py build




Este comando compilará o aplicativo e todos os componentes do ESP-IDF e, em seguida, gerará o carregador de inicialização, a tabela de partição e os binários do aplicativo.

Se não houver erros, a construção será concluída gerando o arquivo .bin binário do firmware.



Gravando

Atualize os binários que você acabou de criar na sua placa ESP32 executando:

idf.py -p PORT [-b BAUD] flash
Substitua PORT pelo nome da porta serial da placa ESP32. Conecte seu dispositivo.


Você também pode alterar a taxa de transmissão do pisca-pisca substituindo BAUD pela taxa de transmissão necessária. A taxa de transmissão padrão é 460800.

idf.py -p 78 flash




Execução

idf.py -p COM78 monitor
Então reset o EVK-NINA-W

Um icone de atalho será criado para criar o ambiente para compilar a sua aplicação!
Click no icone e vá para pasta onde está o teu projeto!


E então digite:

idf.py build 

para compilar

A imagem abaixo mostra como compilar o exemplo do BLINK, execute menuconfig antes





Então pode executar o comando

idf.py -p 78 flash

Compilando no LINUX

O procedimento é muito parecido com o WINDOWS. Siga o link da espressif! 
Requer conhecimento básico do LINUX! Deves dar permissão para a SERIAL e foi utilizado o UBUNTU 18 e versão ESP-IDF 4.0.1

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#get-started-get-esp-idf



Testes com o exemplo abaixo com sucesso no Windows e Linux!

/* Blink Example This example code is in the Public Domain (or CC0 licensed, at your option.) Unless required by applicable law or agreed to in writing, this software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/gpio.h" #include "sdkconfig.h" /* Can run 'make menuconfig' to choose the GPIO to blink, or you can edit the following line and set a number here. */ #define BLINK_GPIO 23 //nina w gpio (LED) void blink_task(void *pvParameter) { /* Configure the IOMUX register for pad BLINK_GPIO (some pads are muxed to GPIO on reset already, but some default to other functions and need to be switched to GPIO. Consult the Technical Reference for a list of pads and their default functions.) */ gpio_pad_select_gpio(BLINK_GPIO); /* Set the GPIO as a push/pull output */ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); while(1) { /* Blink off (output low) */ gpio_set_level(BLINK_GPIO, 0); vTaskDelay(1000 / portTICK_PERIOD_MS); /* Blink on (output high) */ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); } } void app_main() { xTaskCreate(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL); }

FONTES: 

 

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

 

Nenhum comentário:

Postar um comentário

U-BLOX NINA W102 - KB-IDE - PROGRAMAÇÃO COM BLOCOS

  U-BLOX NINA W102 E KB-IDE Programação com BLOCOS O objetivo deste BLOG é demonstrar como é possível utilizar o KB-IDE para programar o mó...