quarta-feira, 4 de dezembro de 2019

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)






CONHEÇA PYTHON

https://github.com/ehmatthes/pcc/releases/download/v1.0.0/beginners_python_cheat_sheet_pcc_all.pdf

ERRATA:
SERIGRAFIA DOS PINOS DO LADO DIREITO SUPERIOR
(NOMES DOS PINOS REPOSICIONADOS)



Questões: suporte@smartcore.com.br

FONTES: 

https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/introduction
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