segunda-feira, 14 de dezembro de 2020

Acessando U-BLOX NINA B302 via BLE SERIAL

 Acessando U-BLOX NINA B302 via BLE SERIAL

Transmitindo "e" Recebendo Dados

O objetivo deste BLOG é mostrar um exemplo de CircuitPython que permite o NINA B302 se comunicar com o celular via Bluetooth e mandar e receber Dados, conhecido como BLE SERIAL, uma das formas mais parecidas com a UART SERIAL, modo TERMINAL.

BLE serial também é comum no U-BLOX NINA W102

 Foi utilizado um módulo U-BLOX NINA B302 para testes

Diferente do NINA B1, o B302 tem uma USB a qual permite que você possa criar um COM virtual e MSD e copiar os programas, graças ao bootloader do time da Adafruit.

Adafruit Team


1) Montagem

Um cabo USB foi soldado em D+, D-, GND e VBUS do NINA B302



2) Com seu gravador SEGGER J-TAG, será necessário gravar o BOOTLOADER da Adafruit

Instale os drivers da Adafruit



Também copie o SoftDevice





3) Conecte a USB no seu PC e os drivers serão instalados. Uma MSD vai aparecer, copie para ele o arquivo abaixo.


Este arquivo é o python Engine!

Instale

adafruit_drivers_2.3.4.0.exe

Altere em Adafruity_usbser.inf, caso contrário, o Windows não vai detectar o CDC (Serial)


USB\VID_1B4F&PID_5289&REV_0100&MI_00

4) Desconecte e conecte a USB no seu PC e os novos drivers serão instalados. Uma COM virtual aparecerá, na figura abaixo, apareceu COM55 e um MSD 


A COM é para ser o terminal de comunicação serial com o PYTHON, o MSD (CIRCUITPY) é para transferir o SCRIPT PYTHON

5) Executando um script python

Execute o EMU, abra a COM e tecle CONTROL-D, você verá as boas vindas do Python.

 
 

Será necessário agora baixar os módulos (libraries) compilados para executar com programa BLE.

Entre no link 


E baixe a última versão dos módulo.

adafruit-circuitpython-bundle-versao.x-mpy-20190426.zip


Crie uma pasta "lib" no drive CIRCUITPY e descompacte a pasta abaixo!



Agora é hora de testar o exemplo BLE passo a passo! Digite o programa a seguir:
 
# Basic example for using the BLE Connect UART # To use, start this program, and start the Adafruit Bluefruit LE Connect app. # Connect, and then select UART. Any text received FROM the connected device # will be displayed. Periodically, text is sent TO the connected device. import time from adafruit_ble import BLERadio from adafruit_ble.advertising.standard import ProvideServicesAdvertisement from adafruit_ble.services.nordic import UARTService SEND_RATE = 10 # how often in seconds to send text ble = BLERadio() uart_server = UARTService() advertisement = ProvideServicesAdvertisement(uart_server) count = 0 while True: print("WAITING...") # Advertise when not connected. ble.start_advertising(advertisement) while not ble.connected: pass # Connected ble.stop_advertising() print("CONNECTED") # Loop and read packets last_send = time.monotonic() while ble.connected: # INCOMING (RX) check for incoming text if uart_server.in_waiting: raw_bytes = uart_server.read(uart_server.in_waiting) text = raw_bytes.decode().strip() # print("raw bytes =", raw_bytes) print("RX:", text) # OUTGOING (TX) periodically send text if time.monotonic() - last_send > SEND_RATE: text = "COUNT = {}\r\n".format(count) print("TX:", text.strip()) uart_server.write(text.encode()) count += 1 last_send = time.monotonic() # Disconnected print("DISCONNECTED")
 
Execute em seu celular o BLE Scanner, procure por CIRCUITPY então se conecte a ele. Digite novamente e veja que estará conectado.
 



 
 
 



Se você salvar com o nome code.py, toda vez que resetar o NINA B302, ele já vai executar.

Questões: suporte@smartcore.com.br

FONTES: 

https://learn.sparkfun.com/tutorials/nrf52840-development-with-arduino-and-circuitpython/all
https://www.u-blox.com/sites/default/files/NINA-B3_DataSheet_%28UBX-17052099%29.pdf
https://forums.adafruit.com/viewtopic.php?f=60&t=148531&start=30
https://circuitpython.readthedocs.io/en/2.x/shared-bindings/microcontroller/__init__.html?highlight=microcontroller
https://www.youtube.com/watch?v=bserx54ZJPM&list=PLKGiH5V9SS1g90s9mHTMPJT1i8N4fXWNT&index=2&t=0s
https://codewith.mu/

https://circuitpython.org/

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