sábado, 3 de abril de 2021

U-BLOX NINA W106 SENDO PROGRAMADO EM BASIC ANNEX RDS - LED BLINK

 U-BLOX NINA W106 SENDO PROGRAMADO EM BASIC ANNEX RDS  - LED BLINK


O objetivo deste BLOG é demonstrar como é possível utilizar programar o módulo u-BLOX NINA W106 (ESP32) no starter kit EVK-NINA-W1 com a linguagem BASIC ANNEX WiFi RDS (1.43 Beta). O exemplo fará um LED piscar a cada 500ms no GPIO2 (IO2 no Módulo/ Breakout).
UBLOX NINA W106

Wi-Fi 802.11b/g/n
Dual-Mode Bluetooth v4.2
Poderoso suporte de CPU aberta para aplicativos personalizados
Tamanho pequeno e várias opções de antena
Pino compatível com outros módulos NINA
Certificação global
Módulo baseado no ESP32, com 4MB FLASH

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

SOBRE A LINGUAGEM BASIC

BASIC (acrônimo para Beginner's All-purpose Symbolic Instruction Code; em português: Código de Instruções Simbólicas de Uso Geral para Principiantes) é uma linguagem de programação, criada com fins didáticos, pelos professores John George Kemeny, Thomas Eugene Kurtz e Mary Kenneth Keller em 1964 no Dartmouth College.

Basic pode ser uma opção de linguagem para se aprender lógica, uma vez que foi desenvolvida em alto nível (próxima da linguagem humana). Além da sua relativa facilidade de criar aplicações de forma simples e rápida.

BASIC também é o nome genérico dado a uma grande família de linguagens de programação derivadas do BASIC original. Provavelmente existem mais variações de BASIC do que de qualquer outra linguagem de programação.

BASIC ANNEX RDS

ESP-NOW, BLE, MQTT...ÓTIMO PARA IoT

Veja o HELP  do BASIC ANNEX RDS

Veja também FAQ


INTERPRETADOR ?

O interpretador básico funciona através da leitura de um arquivo de script salvo no sistema de arquivamento em disco local esp.

Este é o modo padrão se nenhum SDcard externo estiver conectado ao u-BLOX NINA W106.

Além disso, o Annex32 pode usar um SDcard externo como sistema de arquivos, permitindo até 16 Gbytes de espaço em disco.

Durante a inicialização, se um SDcard externo for detectado, ele será conectado automaticamente e usado como o sistema de arquivos padrão, caso em que o sistema de arquivo interno não será usado.

Como o u-BLOX NINA W106 contém uma boa quantidade de RAM, o script do usuário é copiado do disco para uma área dedicada na memória RAM onde é executado, junto com a lista das linhas do programa, os rótulos dos ramos e a lista do usuário definido sub-rotinas ..

Isso usa mais RAM em comparação com outras abordagens, mas permite uma execução mais rápida do programa.

Outra consideração de desempenho é que o u-BLOX NINA W106 deve ser capaz de executar várias atividades em segundo plano (servidor web, servidor de arquivos, etc.), portanto, precisa de memória livre suficiente para executar tais tarefas, e essas tarefas paralelas obviamente terão um impacto no desempenho do script ..

Portanto, em termos de desempenho, o interpretador não é particularmente rápido, mas deve ser rápido o suficiente para a maioria das tarefas que você pode exigir. 


Introdução

ANNEX WI-FI RDS é um poderoso interpretador de scripts para o popular módulo WI-FI ESP32 (u-BLOX NINA W106).
O módulo pode ser gerenciado com um IDE WEB dedicado e um conjunto de utilitários AnnexToolKit associado.

O ANNEX WI-FI RDS fornece as seguintes funcionalidades principais:
  • Servidor web assíncrono baseado em Websockets
  • Servidor web muito rápido/servidor de arquivos
  • Apenas uma porta TCP necessária para http e websockets
  • IDE integrado
  • Pode ser programado usando seu navegador web (mesmo com um telefone/tablet)
  • Pontos de interrupção, execução imediata de comandos, exibição de variáveis, passo único.
  • Ajuda sensível ao contexto disponível pressionando a tecla F2
  • Atualização OTA (Over the Air)
  • Poderoso utilitário de faca suíça associado AnnexToolKit
  • Programação de flash simplificada
  • Backup/restauração (de/de arquivos, para/de zip)
Funcionalidades do Interpretador Básico:

Variáveis de dupla precisão de ponto flutuante
Variáveis de string com tamanho ilimitado
Matrizes multidimensionais (pontos flutuantes ou string)
Manipulação de eventos assíncronsos
Manipulação de erros
I/O em todos os pinos disponíveis, incluindo PWM/SERVO
Controladores PID
Contadores de frequência
Entrada ADC analógica
Geração de tons
Suporte para SPI e I2C
Suporte protocolos TCP e UDP para comunicações
Suporte para envio de e-mails usando servidores SSL SMTP
Suporte para comunicações AJAX
Suporte para comunicações ESP-NOW
Suporte para comunicações MQTT
Suporte para transferência de arquivos FTP
Suporte algoritmos IMU Fusion 6 DOF e 9 DOF (Madgwick e Mahony)   
Forte integração com o javascript permitindo trocas entre script Básico e navegador web
Uma paleta completa de funções/comandos 
Mais de 300 Comandos/Funções disponíveis
Suporte para os seguintes módulos/componentes
  • Sensores de temperatura/umidade DHT11, DHT21 ou DHT22
  • Sensor de temperatura DS18B20
  • LCD HD44780 com módulo de interface I2C (1, 2 ou 4 linhas com 16 ou 20 chars por linha)
  • Display LCD baseado no chipset ST7920 com monocromático de 128x64 pixels 
  • Display OLED baseado no chipset SSD1306 ou SH1106 com monocromáticos 128x64 
  • Display TFT baseado em chipset ILI9341 com 320x240 pixels e 16 bits cores
  • Exibição TM1637 de 4 dígitos de 7 segmentos
  • TM1638 8 dígitos 7 segmentos display incluindo 8 leds e 8 botões
  • Exibição max7219 de 8 dígitos de 7 segmentos
  • Módulos de exibição de matriz de ponto MAX7219 8x8
  • Tiras led Neopixel WS2812
  • Tela de matriz de pontos Neopixel WS2812 8x8
  • Módulo PWM/SERVO PCA9685
  • Interface infravermelha com muitos protocolos RC (transmissão e recepção)
  • Módulo RTC (DS1307 ou DS3231)
  • Sensor ultrassônico HC-SR04 para medição de distância
  • Sensor de orientação absoluta BNO055
  • BME280 Sensor combinado de umidade e pressão
  • Proximidade Digital APDS9960, Luz Ambiente, RGB e Sensor de Gestos     

Primeiros Passos

  • Descompacte o pacote do Annex WI-Fi Basic para uma pasta de sua escolha.
  • Conecte o dispositivo ESP à porta Com serial do computador.
  • Execute o AnnexToolKit.exe da pasta pai descompactada.
  • Selecione o tipo de módulo, porta de comunicação e velocidade (taxa de transmissão) apropriados.
  • Se o seu dispositivo ESP não for capaz de 'flash automático', inicie-o no modo de flash manualmente (gpio0 a 0v na inicialização).
  • Clique no botão amarelo 'Flash Firmware + Dados' se estiver fazendo um flash pela primeira vez e siga as instruções na tela.
  • Após a conclusão bem-sucedida, o dispositivo será reinicializado e executará o novo firmware.
  • Conecte o wi-fi ao ESP SSID que aparecerá na lista de computadores de SSIDs Wifi disponíveis (leva alguns segundos).
  • Navegue até 192.168.4.1 para abrir a janela Saída padrão e, a seguir, clique com o botão direito do mouse no botão Editor para abri-lo em uma nova guia.
Estes são os primeiros passos para começar:

Faça o download do ANNEX  TOOLKIT para u-BLOX NINA W106 (ESP32), senha: annex


Abra o AnnexToolKit, selecione a Porta Serial, clique em Conectar e verifique o endereço IP mostrado na janela Serial Monitor. No exemplo foi escolhido o botão verde Flash Firmware ESP32 Only


Vendo se o boot ocorreu dentro do esperado


Neste caso, o Endereço é 192.168.1.8 porque foi pré-configurado para se conectar ao meu roteador wi-fi, caso contrário o endereço IP será padrão para 192.168.4.1 

Veja como pegar IP da sua REDE (modo Station)


Procurando e se conectando no ANNEX

Acessando 198.168.4.1 (IP inicial do ANNEX)

Coloque o SSID e SENHA de seu Access Point

Obtendo o IP da sua Rede Local

Uma vez configurado, ele entrará em sua REDE

Abra uma janela do navegador da Web e selecione o endereço IP do módulo. Clique em Editor


Agora você pode simplesmente digitar seu programa e salvá-lo no disco interno.

Podemos começar com um programa muito simples:

Digite print "Hello World" na janela do editor e clique em Save as, nomeie o programa /program/test.bas e clique em Save


Você pode ver na janela Serial Monitor que o arquivo foi salvo


A ajuda sensível ao contexto on-line está disponível para qualquer comando Annex. Isso requer que o computador seja conectado ao dispositivo e à internet ao mesmo tempo. Assim, o computador precisa de 2 interfaces de rede (uma para o dispositivo e outra para internet), ou o dispositivo deve ser configurado para logon ao seu roteador wi-fi para que ele esteja na mesma sub-rede que a conexão com a internet.

Ajuda online é muito fácil de usar, se você quiser ajuda para o comando PRINT, por exemplo, basta colocar o cursor na palavra imprimir na janela de edição e pressionar a tecla F2.

Esta janela pop-up aparecerá:


Agora você pode executar o programa clicando no botão Run

Na janela Serial Monitor você verá o resultado 


Agora você pode se divertir em experimentar qualquer programa usando a mesma lógica!

Fazendo o LED piscar a cada 500ms

'To define the pin 2 as output PIN.MODE 2, OUTPUT while 1 'The pin value can be set as below PIN(2)= 0 ' set 0 on the GPIO2 pin pause 500 'The pin value can be set as below PIN(2)= 1 ' set 1 on the GPIO2 pin pause 500 wend end


Sobre GPIOS

DIGITAL I/O
 
Os números dos pinos correspondem diretamente à numeração do pino GPIO u-BLOX NINA W106

A função do pino (entrada/saída) deve ser definida antes de usar a função PIN. MODE como abaixo :

Para definir o pino 5 como entrada:

PIN.MODE 15, INPUT

Para definir o pino 4 como entrada com um pullup:

PIN.MODE 4, INPUT, PULLUP

Para definir o pino 4 como entrada com um pulldown:

PIN.MODE 4, INPUT, PULLDOWN

Para definir o pino 2 como saída

PIN.MODE 2, INPUT

Para definir o pino 2 como coletor aberto de saída

PIN.MODE 2, INPUT, 1

Embora os números de pinos possam ser de 0 a 39, os pinos gpio 6 a 11 não devem ser usados porque estão conectados a chips de memória flash na maioria dos módulos. Tentar usar esses pinos como IOs provavelmente fará com que o programa falhe.

Os pinos 34 a 39 são somente INPUT e não podem ser configurados como PULLUP ou PULLDOWN.

Os pinos 0 a 33 podem ser INPUT, OUTPUT, INPUT PULLUP ou INPUT PULLDOWN.

Os pinos também podem servir a outras funções, como Serial, I2C, SPI.

Essas funções são normalmente ativadas pela biblioteca correspondente.

O valor de um PINO pode ser lido como mostrado abaixo :

A = PIN(5)' lido do pino GPIO5

O valor do pino pode ser definido como abaixo

PIN(2)= 0 ' set 0 no pino GPIO2

O valor do pino (0 ou 1) também pode ser facilmente alternado subtraindo-o a partir de 1 (porque 1-0=1 e 1-1=0), por exemplo:

PIN(2)= 1 - PIN(2)' alterna o valor do pino GPIO2

nota:

Se o módulo estiver equipado com PSRAM, os pinos GPIO 16 e 17 são reservados e não devem ser utilizados.

Fazendo com o programa execute durante o boot do u-BLOX NINA W106

Menu Config



Montagem circuito



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

 

Nenhum comentário:

Postar um comentário