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
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.
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
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:
Nenhum comentário:
Postar um comentário