U-BLOX NINA B302 e CIRCUITPYTHON MAX7219
O objetivo deste BLOG é demonstrar como é possível programar o módulo U-BLOX NINA B3 com a linguagem de Scripts Python para acionar o IC MAX7219 e escrever dados em uma matriz de leds. Foi utilizado o módulo NINA B302 (opencpu) para o teste.
Em blog anterior sobre CircuitPython for mostrado como como fazer um LED piscar utilizando a LIB nativa.
Para fazer a escrita no MAX7219 será necessária a inclusão da LIB especial o mesmo.
adafruit_bus_device
adafruit_max7219
adafruit_framebuf.mpy
Sobre o MAX7219
O uso de display de LEDs permite exibir diversas informações para o usuário. Com a combinação dos LEDs em forma de diplays de 7 segmentos, bargraph ou uma matriz de pontos é possível criar números, imagens ou até mesmos palavras.
Agora abra o MU e cole o seguinte programa:
import time
import busio
import digitalio
from adafruit_max7219 import matrices
import microcontroller
mosi = microcontroller.pin.P1_02
clk = microcontroller.pin.P0_30
cs = digitalio.DigitalInOut(microcontroller.pin.P0_04)
spi = busio.SPI(clk, MOSI=mosi)
matrix = matrices.Matrix8x8(spi, cs)
while True:
print("Cycle start")
# all lit up
matrix.fill(True)
matrix.show()
time.sleep(0.5)
# all off
matrix.fill(False)
matrix.show()
time.sleep(0.5)
# one column of leds lit
for i in range(8):
matrix.pixel(1, i, 1)
matrix.show()
time.sleep(0.5)
# now scroll the column to the right
for j in range(8):
matrix.scroll(1, 0)
matrix.show()
time.sleep(0.5)
# show a string one character at a time
adafruit = 'Adafruit'
for char in adafruit:
matrix.fill(0)
matrix.text(char, 0, 0)
matrix.show()
time.sleep(1.0)
# scroll the last character off the display
for i in range(8):
matrix.scroll(-1, 0)
matrix.show()
time.sleep(0.5)
# scroll a string across the display
for pixel_position in range(len(adafruit) * 8):
matrix.fill(0)
matrix.text(adafruit, -pixel_position, 0)
matrix.show()
time.sleep(0.25)
Se você salvar com o nome code.py, toda vez que resetar o NINA B302.
Foi montado o circuito abaixo sendo que o MAX7219 foi ligado nos pinos
mosi = microcontroller.pin.P1_02
clk = microcontroller.pin.P0_30
cs = digitalio.DigitalInOut(microcontroller.pin.P0_04)
spi = busio.SPI(clk, MOSI=mosi)
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://gitter.im/mu-editor/general
https://www.embarcados.com.br/modulo-matriz-de-leds-com-max7219/
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