Neste novo tutorial, vamos ver como controlar uma matriz de LEDs de 8×8 com Raspberry Pi e um controlador MAX7219. O controlador MAX7219 é um chip capaz de controlar até 64 LEDs independentes já que incorpora um descodificador BCD e uma memória RAM interna para armazenar o estado de cada LED.
Para escrever este projeto, testamos o seguinte modulo:
Como pode ver, é uma matriz de leds montada sobre uma placa e um chip MAX7219 que a controla. A ideia deste projeto é divertirmo-nos um pouco mostrando textos e icones na matriz usando um script em Pyhton.
Montagem de fios e ligações
- O pino 1 (VCC) do modulo deve ser interligado ao pino 2 do Raspberry Pi (5v).
- O pino 2 (GND) do modulo deve ser interligado ao pino 6 do Raspberry (GND).
- O pino 3 (DIN) do modulo deve ser interligado ao pino 19 do Raspberry (MOSI).
- O pino 4 (CS) do modulo deve ser interligado ao pino 24 do Raspberry (SPI).
- O pino 5 (CLK) do modulo deve ser interligado ao pino 23 do Raspberry (CLK).
Preparar o Raspberry Pi
Ao procurar na Internet encontrei este repositório de GitHub onde se podem descarregar uns drivers que são perfeitos para controlar a matriz. O primeiro passo será descarregar los drivers. Uma vez descarregados, descomprimimos a pasta ‘max7219-master‘ no escritório e descarregamos com WinSCP ou similar no na pasta ‘/home/pi‘ do Raspberry Pi.
Uma vez descarregada a pasta, vamos introduzir os comandos na consola:
cd /home/pi/max7219-master sudo python max7219/setup.py install
Se lhe der erro de GCC é porque faltam umas dependências, instalámos executando este comando na consola e executamos os comandos do passo anterior:
sudo apt-get install python-dev
A placa Raspberry Pi dispõe de um SPI bus, que vem bloqueado por defeito, para habilitá-lo temos que desligar ‘spi-bcm2708‘ do blacklist, para isso abrimos o arquivo ‘/etc/modprobe.d/raspi-blacklist.conf‘ do Raspberry Pi e colocamos um ‘#‘ em frente de ‘blacklist spi-bcm2708‘, vai-nos ficar assim:
# blacklist spi and i2c by default (many users don't need them) #blacklist spi-bcm2708 blacklist i2c-bcm2708 blacklist snd-soc-pcm512x blacklist snd-soc-wm8804
Agora reiniciamos o Raspberry e já podemos executar um script de teste para ver se o nosso matriz de LEDs de 8×8 já funciona.
Scripts de teste
Agora que já temos o Raspberry preparado e o módulo ligado corretamente vamos lançar um script simples para mostrar mensagens em scroll:
#!/usr/bin/env python import max7219.led as led import max7219.transitions as transitions led.init() #Mensagem de scroll de baixo para cima led.show_message("Olá, como estás?", transition = transitions.up_scroll) #Mensagem em scroll da direita para a esquerda led.show_message("Olá, como estás?", transition = transitions.left_scroll) #Mensagem a mostrar caracteres um a um led.show_message("Olá, como estás?", transition = transitions.simple) #Apagamos todos os LEDs led.letter(0)
Também podemos mostrar carateres fixos através da função ‘letter‘, um exemplo de código seria:
#!/usr/bin/env python import max7219.led as led led.init() led.letter(XXX)
Se trocarmos XXX por um número, por exemplo 1, vai-nos mostrar uma cara sorridente tipo ‘Smile’. Se os alterarmos por um 3 vai-nos aparecer um coração e se alteramos por um 4 vai fazer um diamante. Ao testar diferentes números verá que também existem ícones, letras e números. Eu testei uns quantos e deu-me isto:
- 0 LEDs apagados
- 1 Smile
- 2 Cara de Pacman
- 3 Coração
- 4 Diamante
- 5 Carater raro
- 6 Árvore de Natal
- 7 Bandeira do Japão
- 8 Bandeira Japão invertida
- 9 Circulo
- 10 Circulo invertido
- 11 Símbolo masculino
- 12 Símbolo feminino
————————–
Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.
Não se esqueçam de fazer like na nossa página no facebook.
Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.