Escrevendo mensagens com o Módulo Matriz de LED 8×16 e Raspberry Pi Deixe um comentário

A Raspberry Pi é uma placa que conta com uma gama de funcionalidades interessantes. Muitas são as vezes em que desejamos trazer informações como avisos, letreiros ou até mesmo placas de fachada em nossos projetos. Uma das opções para executar este tipo de projeto é utilização de um Módulo Matriz de LED junto com uma Raspberry Pi. Além de ser um modo fácil, versátil e comumente difundido de fazer esses tipos de projetos, as matrizes de LEDs trazem uma aparência retrô para os amantes da era 8-bits 🙂

No mercado, existem diversos modelos de matrizes de LEDs que podem ser utilizadas para aplicações e projetos, entretanto, elas são comumente vendidas sozinhas. Mas para facilitar as nossas vidas, temos os módulos! Estes são placas montadas com circuitos integrados (CI), as matrizes em si e alguma espécie de controlador para elas. Neste post, iremos conhecer o Módulo Matriz de LED 8×16 com MAX7219, entender seu funcionamento e suas facilidades.

Imagem 1 - Módulo Matriz de Led e Raspberry Pi

Portanto, ao utilizar um módulo, a facilidade de uso é ainda mais abrangente; e na hora de codificar (a hora do vamos ver!), temos muito menos trabalho de fazer tudo funcionar do jeito que a gente quer.

Então pegue sua Raspberry Pi, seu módulo e sua determinação e vamos nessa!

Materiais necessários

Para poder controlar e criar mensagens e desenhos com seu Módulo de Matriz de LED, vamos precisar de:

Lembrando que o cartão microSD deve ter o Sistema Operacional Raspbian instalado! Confira aqui como deixar seu sistema prontinho!

Montando o circuito do Módulo Matriz de LED e Raspberry Pi

Para montar o circuito, basta encaixar o módulo nos pinos GPIO. Como é feito exatamente como um Hat (os shields da Raspberry Pi), você verá que ele encaixará perfeitamente e estará pronto para uso.

Imagem 2 - Módulo Matriz de Led e Raspberry Pi

Configurações na Raspberry Pi para o Módulo Matriz de LED

Depois de ter encaixado seu módulo na placa, vamos às configurações necessárias no sistema operacional Raspbian para o funcionamento do projeto. Para garantir, vamos executar uma verificação de atualização:

sudo apt-get update

Em seguida, aplicamos as atualizações:

sudo apt-get upgrade

Após este processo, vamos ativar a interface SPI na placa, afim de habilitar o controle da matriz de LEDs. Para isso, abra o terminal e digite o seguinte comando:

sudo raspi-config

Agora, vá até a opção Interfacing Options:

Imagem 3 - Configurações Raspberry Pi

Em seguida, vá em SPI, e ative a opção quando perguntado.

Imagem 4 - Configurações Raspberry Pi

Tudo certo? Vamos verificar então, só para garantir:

lsmod | grep -i spi

Caso tenha dado tudo certinho, irá aparecer alguns comandos como esse:

Imagem 5 - Configurações Raspberry Pi

Agora sim! Com tudo isso feito, vamos instalar o que precisamos para fazer funcionar 😀 Primeiramente, instalemos as dependências da biblioteca:

sudo usermod -a -G spi,gpio pi
sudo apt-get install build-essential python3-dev python3-pip libfreetype6-dev libjpeg-dev

Em seguida, vamos instalar a biblioteca através do PyPi:

sudo -H pip install --upgrade luma.led_matrix

E finalmente, clone o repositório do GitHub, para que possamos acessar exemplos e afins:

git clone https://github.com/rm-hull/luma.led_matrix

Escrevendo mensagens  no Módulo Matriz de LED com Raspberry Pi

Com tudo pronto (UFA!!) vamos poder enfim testar as mensagens. O código já está preparado para utilização de dois módulos 8×8 (que é o nosso caso, tendo em vista que nosso módulo nada mais é que dois módulos 8×8 “unidos”). Além disso, alteramos o código para que ele faça um vertical scroll (assim ele cruza de um módulo a outro, em vez de duas frases iguais uma abaixo da outra).

Agora vamos abrir um editor de código. Para isso, vá em Menu Raspberry > Programming > Geany Programmer’s Editor. Em seguida, cole o código abaixo:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#Programa: Teste modulo MAX7219 com Raspberry Pi
#Autor: FILIPEFLOP
#baseado no programa exemplo da biblioteca MAX7219 & Arduino e Cia
#
# Copyright (c) 2017-18 Richard Hull and contributors
# See LICENSE.rst for details.

import re
import time
import argparse

from luma.led_matrix.device import max7219
from luma.core.interface.serial import spi, noop
from luma.core.render import canvas
from luma.core.virtual import viewport
from luma.core.legacy import text, show_message
from luma.core.legacy.font import proportional, CP437_FONT, TINY_FONT, SINCLAIR_FONT, LCD_FONT

def demo(n, block_orientation, rotate):
# create matrix device
serial = spi(port=0, device=0, gpio=noop())
device = max7219(serial, cascaded=n or 1, block_orientation=block_orientation, rotate=rotate or 0)
print("Testando HAT 8x16 LEDs")
msg = " FILIPEFLOP - 2019 "
print("Teste FF2019")
show_message(device, msg, fill="white", font=proportional(LCD_FONT), scroll_delay=0.2)

if __name__ == "__main__":
parser = argparse.ArgumentParser(description='matrix_demo arguments',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)

parser.add_argument('--cascaded', '-n', type=int, default=2, help='Numero de modulos MAX7219 interligados')
parser.add_argument('--block-orientation', type=int, default=90, choices=[0, 90, -90], help='Corrige a orientacao de blocos')
parser.add_argument('--rotate', type=int, default=2, choices=[0, 1, 2, 3], help='Rotacao display 0=0°, 1=90°, 2=180°, 3=270°')

args = parser.parse_args()

try:
demo(args.cascaded, args.block_orientation, args.rotate)

    except KeyboardInterrupt:
pass

Caso você deseje alterar a mensagem, basta que escreva o que desejar na string msg (linha 27), no exemplo está escrito “FILIPEFLOP – 2019”. E se quiser um horizontal scroll, modifique o parâmetro default=90 (linha 36).

O legal é sempre brincar com o código e descobrir novas coisas!

Salve o código e então execute ele no terminal:

python testemax7219.py

Imagem 6 - Módulo Matriz de LED e Raspberry Pi

O nome do nosso arquivo era testemax7219. Então se você for abrir o seu, coloque o nome que você salvou 😉

Agora, o que você pode fazer é continuar explorando a biblioteca e novas funções! Para ter uma demonstração completa, desde troca de fonte, brilho e várias outras opções, execute o arquivo de demonstração da biblioteca:

python luma.led_matrix/examples/matrix_demo.py

Curtiu? Deixa um comentário para gente saber!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *