U-BLOX NINA W106 SENDO PROGRAMADO EM B4R - Embarcando código C e C++ no projeto
O objetivo deste BLOG é demonstrar como é possível programar o módulo u-BLOX NINA W106 (ESP32) no starter kit EVK-NINA-W1 com a linguagem B4R e fazer uso de Funções/Comandos/LIBS externas desenvolvidas em Arduino C, C++ (Wiring).
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.brt
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.
Simple, powerful and modern
development tools.
With B4X, anyone who wants to, can develop real-world solutions.
B4R é uma ferramenta de desenvolvimento 100% gratuita para programas nativos como o U-BLOX NINA W106.
O B4R segue os mesmos conceitos das outras ferramentas B4X, fornecendo uma ferramenta de desenvolvimento simples e poderosa.
B4R, B4A, B4J e B4i juntos fazem a melhor solução de desenvolvimento para a Internet das Coisas (IoT).
B4R é uma ferramenta de desenvolvimento do fabricante do basic4Android.
Você baixa a ferramenta de https://www.b4x.com/b4r.html e os requisitos são Arduino 1.8+ e o pacote ESP32 que devem ser instalados no seu PC de desenvolvimento, depois de instalar o B4R você configurar o caminho para o IDE Arduino para que eles possa utilizar as ferramentas Arduino que estão instaladas para compilação e programação.
Com B4R você pode Programar (Compilar) em BASIC e C++ juntos!!!
B4R é 100% free!
Instalação
u-BLOX NINA W106 é baseado no ESP32, escolha "ESP32 Dev Module"
Sub Process_Globals
Public Serial1 As Serial
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Delay(1000)
Log("AppStart")
'Chamando o código escrito em ArduinoC
RunNative("sendMessage", Null)
'Chamando o código escrito em ArduinoC
End Sub
#if c
void sendMessage(B4R::Object* o) {
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
Serial.println("Hello From Arduino");
}
#End If
Pressione F5 para iniciar a compilação
Então o programa será transferido para o U-blox NINA W106 (coloque no modo de BOOT)
Transferindo
Execução
O exemplo basicamente
- Com o uso de #if c e #End If abre o compilador para inserir código Arduíno C
(Função SendMessage) - RunNative("sendMessage", Null)para fazer chamada da função SendMessage
Veja outro exemplo
Sub Process_Globals
Public Serial1 As Serial
Private Result, N1, N2 As Int 'ignore
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
N1 = 10
N2 = 20
RunNative("Add", Null)
Log("Result: ", Result)
End Sub
#if C
void Add (B4R::Object* o) {
//lower case variables
b4r_main::_result = b4r_main::_n1 + b4r_main::_n2;
}
#End if
A assinatura do método nativo deve ser escrita acima. Ele pode, opcionalmente, retornar um B4R::Object*.
Na maioria dos casos, é mais simples trabalhar com variáveis globais.
Observe que os nomes de variáveis globais são mínúsculas precedido de _ e o nome inclui o módulo atual no seguinte formato b4r_<módulo corrente em minúsculo>.
Você pode adicionar comandos #include como demonstrado no exemplo seguinte.
Neste exemplo, usaremos uma biblioteca externa chamada Narcoleptic. Com esta biblioteca podemos colocar a placa em deep sleep para preservar a bateria.
A biblioteca está disponível aqui:
Você precisa baixar os arquivos h e cpp e colocá-los sob
...\arduino\libraries\Narcoleptic
...\arduino\libraries\Narcoleptic
Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
Log(Millis)
RunNative("Delay", 5000)
Log("after: ", Millis, " (the internal timer was not updated during the sleep)")
End Sub
#if C
#include <Narcoleptic.h>
void Delay (B4R::Object* o) {
Narcoleptic.delay(o->toULong());
}
#End if
DÚVIDAS
suporte@smartcore.com.br
REFERÊNCIAS
Sobre a SMARTCORE
A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.Nosso portfó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.
Bibliotecas Disponíveis para IoT (veja nos forúms para BLE)
Core - v2.00
rAdafruit_ILI9341 - v1.00
rAdafruit_MCP4725 - v1.00
rAdafruit_PWMServoDriver - v1.00
rAdafruit_STMPE610 - v1.00
rAdafruitBMP280 - v1.00
rAdafruitGFX - v1.01
rAdafruitMotorShieldV2 - v1.00
rAdafruitNeoPixel - v1.00
rAdafruitRGBMatrix - v1.00
rAdafruitSSD1306 - v1.10
rAPDS9960 - v1.00
rCurieBLE - v1.00
rDht - v2.00
rDS1302 - v1.00
rEEPROM - v1.20
rESP8266 - v1.00
rESP8266FastSSD1331 - v1.32 - Written by Massimo Meli
rESP8266FileSystem - v1.00
rESP8266Ping - v1.00
rESP8266WiFi - v1.30
rEthernet - v1.11
rIRremote - v1.00
rIRremoteESP8266 - v1.12
rKeypad - v1.00
rLedControl - v1.00
rLiquidCrystal - v1.00
rLiquidCrystal_I2C - v1.01
rMAX7219LedMatrix - v1.01
rMCP2515 - v1.00
rMCUFRIEND_kbv - v1.00
rMFRC522 - v1.01
rMQTT - v1.30
rNSRainbow - v1.00
rOneWire - v1.00
rRandomAccessFile - v1.80
rRF24 - v1.00
rSD - v1.03
rSeeedOLED - v1.00
rServo - v0.90
rSFE_BMP180 - v1.10
rSoftwareSerial - v1.00
rStepper - v1.00
rTM1637 - v1.10
rTTP229 - v1.00
rWebSocketClient - v1.20
rWiFi101 - v1.00
rWire - v1.10
Perguntas frequentes sobre o B4R
P: O B4R é totalmente gratuito, inclusive para fins comerciais?
R: Sim.
P: Posso acessar o código-fonte C e os objetos gerados?
R: Sim. O código e os objetos compilados estão disponíveis na pasta Objetos.
P: As bibliotecas são de código aberto?
R: Sim. As bibliotecas B4R são de código aberto (licença MIT). O código está disponível no GitHub.
P: Estou recebendo este erro na inicialização: "O aplicativo não pôde ser inicializado corretamente, erro 0xc0000135".
R: Instale o Microsoft .Net Framework 4+
Windows Vista +: .Net Framework 4.5.2.
Windows XP: .Net Framework 4.0.
DÚVIDAS
suporte@smartcore.com.br
REFERÊNCIAS
Nenhum comentário:
Postar um comentário