U-BLOX NINA W106 SENDO PROGRAMADO .NET nanoFramework - SLEEP/WAKE UP
Testado no VISUAL STUDIO 2015 e 2019
O objetivo deste BLOG é demonstrar como é possível utilizar o .NET nanoFramework para programar o módulo U-BLOX NINA W106. Foi utilizado o EVK-NINA-W1 para o teste e o exemplo consiste mostrar a execução de várias Threads.
"Ao contrário do Arduino (por exemplo) você pode fazer debug a sério do código que está executando. Sem necessitar de ligações ou hardware complexo com o JTAG no caso de programação C pura."
.NET nanoFramework é uma plataforma livre e de código aberto que permite a escrita de aplicativos de código gerenciados para dispositivos incorporados restritos. É adequado para muitos tipos de projetos, incluindo sensores de IoT, wearables, prova acadêmica de conceito, robótica, criações de hobistas/fabricantes ou até mesmo equipamentos industriais complexos. Isso torna o desenvolvimento dessas plataformas mais fácil, rápido e menos caro, dando aos desenvolvedores incorporados acesso a tecnologias e ferramentas modernas usadas pelos desenvolvedores de aplicativos desktop.Os desenvolvedores podem aproveitar o poderoso e familiar Microsoft Visual Studio IDE e seu conhecimento .NET C# para escrever rapidamente código sem ter que se preocupar com os meandros de hardware de baixo nível de um microcontrolador. Os desenvolvedores do Desktop .NET se sentirão "em casa" e poderão usar suas habilidades no desenvolvimento de sistemas embarcados, ampliando o pool de desenvolvedores embarcados qualificados.Ele inclui uma versão reduzida do CLR (Common Language Runtime, tempo de execução da linguagem comum .NET) e possui um subconjunto das bibliotecas de classe base .NET, juntamente com as APIs mais comuns incluídas na Universal Windows Platform (UWP) permitindo o reaproveitamento de códigos de aplicativos de desktop, aplicativos IoT Core, milhares de exemplos de código e projetos de código aberto.Usando o Microsoft Visual Studio, um desenvolvedor pode implantar e depurar o código diretamente em hardware real.
Roteiro baseado
Instalando nanoFirmwareFlasher para copiar bootloader
GitHub - nanoframework/nanoFirmwareFlasher: 🛠 nano firmware flasher (nanoFramework toolbox)
É uma ferramenta global .NET Core CLI que permite atualizar um alvo nanoFramework com
nanoBooter, nanoCLR, aplicativo gerenciado ou arquivos de backup. Faz parte da caixa de
ferramentas nanoFramework, juntamente com outras várias ferramentas que são necessárias
no desenvolvimento, uso ou gerenciamento de repositório do nanoFramework. Um vez instalado é
necessário atualizar o UBLOX NINA W106.
Necessita .NET 5.0 Desktop Runtime (v5.0.3) e Download .NET Core 3.1 Runtime
Gravação do Bootloader
Sinal que está Rodando!
Baixe e instale o Visual Studio Community 2017/2019
Habilite o Workload do Desktop com .NET
Crie um Projeto Blank com .NET nanoFramework (Blank Application nanoFramework)
Abrindo o exemplo Blinky
Altere o código para
using System;
using System.Diagnostics;
using System.Threading;
using nanoFramework.Hardware.Esp32;
namespace Test
{
public class Program
{
/// <summary>
/// This example shows how to use change default pins for devices and to use the Sleep methods in the
/// nanoFramework.Hardware.Esp32 nuget package.
///
/// Putting the Esp32 into deep sleep mode and starting after timer expires.
///
/// Other examples of Deep sleep are commented out
/// </summary>
public static void Main()
{
// How to set Alternate pins for Devices ( COM1/2/3, SPI1/2, I2C, PWM ) then open device as normal
Configuration.SetPinFunction(33, DeviceFunction.COM2_RX);
Configuration.SetPinFunction(32, DeviceFunction.COM2_TX);
// Sleep Test
Debug.WriteLine("ESP32 Sleep test started");
Debug.WriteLine("Check wakeup cause");
Sleep.WakeupCause cause = Sleep.GetWakeupCause();
Debug.WriteLine("Wakeup cause:" + cause.ToString());
switch (cause)
{
// System was woken up by timer
case Sleep.WakeupCause.Timer:
Debug.WriteLine("Wakup by timer");
break;
// System was woken up in normal running mode
case Sleep.WakeupCause.Undefined:
Debug.WriteLine("Set wakeup by timer for 10 seconds");
Sleep.EnableWakeupByTimer(new TimeSpan(0, 0, 0, 10));
Debug.WriteLine("Go to Deep sleep in 5 secs");
Debug.WriteLine("When coming out of deep sleep the system will reboot");
Thread.Sleep(5000);
Debug.WriteLine("Deep sleep now");
Sleep.StartDeepSleep();
break;
default:
break;
}
try
{
}
catch (Exception )
{
// Do whatever please you with the exception caught
}
finally // Enter the infinite loop in all cases
{
while (true)
{
Thread.Sleep(200);
}
}
}
}
}
Atualize versões dos pacotes
Compile o código
Pacotes .NET nanoFramework
LINKS
API docs: https://docs.nanoframework.net/api/Windows.Devices.Adc.html
Browse our samples repository: https://github.com/nanoframework/samples
Check our documentation online: https://docs.nanoframework.net/
Join our lively Discord community: https://discord.gg/gCyBu8T
Report issues: https://github.com/nanoframework/Home/issues
Follow us on Twitter: https://twitter.com/nanoframework
Follow our YouTube channel: https://www.youtube.com/c/nanoFramework
Questões: suporte@smartcore.com.br
Agradecimentos:
JOSÉ SIMÕES
Husband, father, developer, maker, CEO at @Eclo, founder of @nanoframework. MVP. Developer: .NET C# , C/C++, IoT, Azure, Lego
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.
Mais detalhes em www.smartcore.com.br
Nenhum comentário:
Postar um comentário