quinta-feira, 14 de janeiro de 2021

U-BLOX NINA B302 - LENDO SPI COM ESPRUINO JAVASCRIPT

U-BLOX NINA B302 - LENDO SPI COM ESPRUINO JAVASCRIPT


O objetivo deste BLOG é demonstrar como é possível utilizar SPI (Serial Peripheral Interface) para realizar a leitura de sensores. Foi utilizado o BREAKOUT NINA B302.

SPI

O SPI (Serial Periférico Interface, interface periférica serial) é uma especificação de interface de comunicação serial síncronenta usada para comunicação de curta distância, principalmente em sistemas embarcados. A interface foi desenvolvida pela Motorola em meados da década de 1980 e tornou-se um padrão de fato. Aplicativos típicos incluem cartões Secure Digital e displays de cristal líquido.

Montagem


Adquirimos então os seguintes componentes



Montamos a BREAKOUT (B302)


O esquema elétrico é este



Algumas características do Kit

-Botão de RESET;
-Botão de Modo BOOTLOADER (W102);
-Plugável no PROTOBOARD;
-Acesso às várias GPIOS;

Pequena 


Espruino é um intérprete de JavaScript para microcontroladores que torna o desenvolvimento de software embarcado rápido e fácil. O intérpretador Espruino é um firmware de código aberto que roda em uma variedade de microcontroladores diferentes.

O Espruino em si não é apenas o firmware ou hardware do interpretador - há também o IDE da Web, ferramentas de linha de comando, documentação, tutoriais e módulos que formam uma solução completa para desenvolvimento de software embarcado.
 
Grave o código HEX do JAVASCRIPT usando o utility J-FLASH LITE ou NRFGO STUDIO no NINA B302



Resete o NINA B302

Instale o ESPRUINO IDE (Native)

Instale o USB DONGLE CSR 4.0 (drivers)


Mas atenção!

Para o Windows 8.1 e posterior
O IDE é capaz de usar os drivers BLE do próprio Windows. A única configuração necessária é que você vá para as configurações de Bluetooth do seu sistema e clique em Conectar (Parear no Windows 10) no seu dispositivo NINA B302. Isso expõe ao sistema e garante que ele apareça no IDE da Web. Para o Windows anterior ao 8.1
Como as versões do Windows anteriores à 8.1 não suportam Web Bluetooth no sistema operacional, o noble (que o Espruino IDE usa) precisa acessar diretamente o adaptador BLE - portanto, é necessário garantir que o driver WinUSB seja carregado para ele (como oposição a um driver específico do fabricante). Baixe o Zadig e execute-o - é apenas um executável Vá para Opções -> Listar todos os dispositivos Escolha o seu adaptador BLE (o meu é CSR8510 A10) Certifique-se de que o WinUSB esteja definido como o driver Agora, quando você executar o IDE da Web nativo e clicar em "conectar" no canto superior esquerdo, deverá ver uma lista de dispositivos BLE conectáveis.



Execute o ESPRUINO IDE (Native)


Faça o SCAN para encontrar o NINA B302


Conecte ao NINA B302


A Interface Periférica Serial é um BUS serial para periféricos que usa Clock, Data In e Data Out (e, muitas vezes, um pino Chip Select).

Para testes, foram utilizados os GPIOS do NINA B302

//D7 CLK
//D32 MISO
//D15 MOSI
//D13 CS
//D44 RST

e então configurada a SPI

SPI1.setup({ sck:D7, miso:D32, mosi:D15 });


Então foi instanciado um OBJETO

var sx = require("SX127x").connect({spi: SPI1, cs: D13, rst : D44 });


Neste exemplo, foi conectado no SPI um módulo SX1276

Transfira o SCRIPT JAVASCRIPT abaixo 


No B302 transfira o seguinte código Javascript e execute

SPI1.setup({ sck:D7, miso:D32, mosi:D15 }); var sx = require("SX127x").connect({spi: SPI1, cs: D13, rst : D44 }); // Until DIO0 line irqs are implemented we need this: setInterval(function() { sx.onIRQ(); }, 100); var config = { power : 14, // transmit power in dBm, allowed range: -4 to +17dBm or 20dBm. If you use Hope RF or TTGO module see the note below! freq: 915000000, // frequency in MHz, by default 868MHz bandwidth : 0, // 0: 125 kHz (default), 1: 250 kHz, 2: 500 kHz datarate : 7, // spreading factor, 7(default)..12 coderate : 1, // [1: 4/5 (default), 2: 4/6, 3: 4/7, 4: 4/8] preambleLen : 8, // preamble length, default: 8 fixLen : false, // fixed length? a boolean. If true, payloadLen needs specifying too crcOn : false, // CRC enabled? freqHopOn : false, // frequency hopping on? If true, hopPeriod should be set iqInverted : false, // Inverts IQ signals rxContinuous : true, // continuous reception? it's easiest to set this to true and manually cancel reception symbTimeout : false, // RxSingle timeout value when rxContinuous = false forcePaBoost : false // Required for HopeRF RFM9xW and TTGO LoRa32 modules }; sx.setTxConfig(config); sx.send("Hello", function() { console.log("TX done"); });





Não havendo erro de comunicação via SPI, aparecerá a mensagem TX DONE


Abaixo alguns dispositivos que conversam via SPI


Questões: suporte@smartcore.com.br

FONTES: 

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

terça-feira, 12 de janeiro de 2021

U-BLOX NINA B302 BLE - DETECTOR PRESENÇA DE PET PRÓXIMO COM JAVASCRIPT

U-BLOX NINA B302 BLE - DETECTOR PRESENÇA DE PET PRÓXIMO COM JAVASCRIPT


O objetivo deste BLOG é demonstrar como é possível utilizar o NINA B302  como detector de presença de um PET. Será um utilizado um Beacon para ser o dispositivo a ser detectado o qual será preso na coleira do Animal, na ausência do mesmo (via RSSI), um  LED será LIGADO. Foi utilizado o BREAKOUT NINA B302.


Adquirimos então os seguintes componentes



Montamos a BREAKOUT (B302)


O esquema elétrico é este



Algumas características do Kit

-Botão de RESET;
-Botão de Modo BOOTLOADER (W102);
-Plugável no PROTOBOARD;
-Acesso às várias GPIOS;

Pequena 


Espruino é um intérprete de JavaScript para microcontroladores que torna o desenvolvimento de software embarcado rápido e fácil. O intérpretador Espruino é um firmware de código aberto que roda em uma variedade de microcontroladores diferentes.

O Espruino em si não é apenas o firmware ou hardware do interpretador - há também o IDE da Web, ferramentas de linha de comando, documentação, tutoriais e módulos que formam uma solução completa para desenvolvimento de software embarcado.
 
Grave o código HEX do JAVASCRIPT usando o utility J-FLASH LITE ou NRFGO STUDIO no NINA B302



Resete o NINA B302

Instale o ESPRUINO IDE (Native)

Instale o USB DONGLE CSR 4.0 (drivers)


Mas atenção!

Para o Windows 8.1 e posterior
O IDE é capaz de usar os drivers BLE do próprio Windows. A única configuração necessária é que você vá para as configurações de Bluetooth do seu sistema e clique em Conectar (Parear no Windows 10) no seu dispositivo NINA B302. Isso expõe ao sistema e garante que ele apareça no IDE da Web. Para o Windows anterior ao 8.1
Como as versões do Windows anteriores à 8.1 não suportam Web Bluetooth no sistema operacional, o noble (que o Espruino IDE usa) precisa acessar diretamente o adaptador BLE - portanto, é necessário garantir que o driver WinUSB seja carregado para ele (como oposição a um driver específico do fabricante). Baixe o Zadig e execute-o - é apenas um executável Vá para Opções -> Listar todos os dispositivos Escolha o seu adaptador BLE (o meu é CSR8510 A10) Certifique-se de que o WinUSB esteja definido como o driver Agora, quando você executar o IDE da Web nativo e clicar em "conectar" no canto superior esquerdo, deverá ver uma lista de dispositivos BLE conectáveis.



Execute o ESPRUINO IDE (Native)


Faça o SCAN para encontrar o NINA B302


Conecte ao NINA B302


Transfira o SCRIPT JAVASCRIPT abaixo 


No B302 transfira o seguinte código Javascript e execute

// Start scanning var Found = false; NRF.setScan(function(d) { console.log(d.id); if(d.id === "d3:8c:46:d1:ae:10 random") Found = true; }); // See if PET is near each 5s function VerifyPet() { setInterval(function() { if(Found === true) { D13.write(true); Found = false; } else { D13.write(false); } }, 5000); } VerifyPet();




P0.13 = D13 = IO1 (JAVASCRIPT)

O programa inicia um SCAN BLE e procura por um BEACON cujo MAC é d3:8c:46:d1:ae:10, caso encontre, altera FLAG para true. Uma outra rotina é chamada a cada 5 segundos, a qual verifica o status do FLAG, acionando ou não ou LED. Para simular um Beacon, foi gravado o ESPRUINO em outro Breakout!


Questões: suporte@smartcore.com.br

FONTES: 

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