Atualizando um antigo painel de mensagens com STM32

Atualizar equipamentos antigos é um bom desafio para se testar os conhecimentos adquiridos ao longo dos anos de estudo e trabalho, e desde sempre uma das atribuições de muitos engenheiros e/ou técnicos aplicados no desenvolvimento de produtos. Não é incomum, mesmo nos dias atuais, uma empresa possuir em seu catálogo de vendas um produto desenvolvido há anos, mas que é "sucesso" no segmento onde o mesmo é comercializado, seja por falta de concorrência ou mesmo um substituto à altura.

E é ai que reside o problema. A eletrônica evolui muito rapidamente. Novos componentes surgem a cada ano (as vezes nem isso!) e os velhos não são mais produzidos, ficando as empresas entregues a alternativa de usar estoques velhos e/ou de componentes "usados" junto a fornecedores não muito "confiáveis", apenas para ter acesso a uma parte necessária a seu produto, parte essa que em muitos dos casos é simplesmente a principal. O que fazer nesses casos? Atualizar todo o projeto ou apenas a parte problemática?!?

Como proceder com um possível estoque lotado de placas e/ou acessórios para montagem daquele produto?! Joga-se tudo fora?! Recicla-se?! E os custos disso?!

É ai que entra o profissional de desenvolvimento: primeiro realizando a atualização de uma parte do produto, viabilizando o aproveitamento do estoque de insumos, e em seguida preparando uma atualização maior e mais completa, colocando a empresa em uma situação mais confortável para a aquisição de componentes novos em fornecedores confiáveis!

O artigo que pretendo apresentar a seguir visa mostrar justamente uma experiência que tive recentemente com um painel de mensagens com LEDs comprado em um sucatão em 2019 (um pouquinho antes da pândemia da Covid-19).

 

Um pouco da história do equipamento

Eu estava em um daqueles meus "rolés" (tem quem diga que é "rolês" que se fala, eu mesmo não sei... rsrsrs) pela região da Santa Ifigênia (São Paulo) e o mesmo não estaria completo se eu não entrasse em uma ou duas lojas conhecidas como "sucatões". Você ficaria surpreso com o que se pode encontrar nesses locais, coisas realmente muito bacanas! São nessas lojas que vão parar alguns "aparatos" eletrônicos que as empresas desejam se livrar! Você encontra desde computadores antigos, motores, equipamentos "estranhos", placas diversas, etc, etc. Só visitando um desses locais com a paciência necessária para "garimpar" no meio das inúmeras pilhas de "sucatas eletrônicas" algo que possa lhe parecer "interessante".

No meu caso, eu estava atrás de coisas ligadas aos computadores de 8 bits da década de 1980. Acabei não encontrando nada a respeito, mas uma coisa me chamou atenção. Eu vi um pequeno painel de mensagens com LEDs jogado numa pilha de "coisas estranhas". Como eu trabalhei com isso (sim, trabalhei no desenvolvimento de painéis de mensagens aplicados em ônibus urbanos e rodoviários) eu achei que poderia aproveitar "aquilo" de alguma maneira. Iniciei uma negociação com o dono da loja para conseguir um bom preço e depois de muita "saliva" gasta, o painel estava "resgatado" e a um preço justo para ambas as partes.

Quando eu cheguei em casa com esse painel, a única coisa que eu fiz foi higienizá-lo e fazer aquele teste "cego" ligando o mesmo a uma fonte de 12V/1A (tensão indicada na traseira do mesmo). Você deve estar pensando, nossa!!! Você ligou sem abrir, sem saber nada a respeito! Ele poderia ter queimado, pegado fogo, explodido, sabe se lá né?! É poderia, mas não foi o caso! E não é que funcionou! Bom pelo menos ele ligou e mostrou um cursor nos "LEDs". Na traseira ele possuía uma entrada através de um conector RJ e também de um DB09. Logo entendi que ele poderia ser controlado via RS-232 e possivelmente através de um "dispositivo de controle/programação" como um teclado (talvez?!?!).

Em uma pesquisa rápida na internet descobri que esse painel precisaria de um "programa proprietário" para operá-lo através da RS-232. Seja como for, não era aquele o momento para fazer qualquer coisa e o mesmo foi "encostado" em um canto aqui no meu "lab", onde aguardaria paciente o momento do seu "novo resgate".


O segundo resgate

Após quase 2 anos encostado eu olhei para o painel e resolvi que era o momento de trabalhar no mesmo. De cara a ideia era estudar seu funcionamento e substituir o que estivesse no controle interno do mesmo. Qual não foi a minha surpresa quando descobri que a placa controladora do mesmo tinha um microprocessador Z80!



A placa trazia gravada em seu "silk" o ano (e acho que o mês também) de fabricação e numa etiqueta também constava o mesmo ano: 1998. Sim meu caro, ainda na década de 1990 praticamente inteira e entrando nos anos 2000 muitas empresas em nosso país ainda usavam o microprocessador Z80 e também o microcontrolador 8051 em seus produtos!



Eu chamo isso de "hardware legado" porque foram desenvolvidos na década de 1980 e estavam desde então sendo produzidos muito provavelmente porque quem os desenvolveu não faria mais parte do quadro de "colaboradores" da empresa, ou essa perdeu a documentação do projeto, ou porque simplesmente nunca teve interesse para fazer uma atualização daquele produto.

Acho esse último o motivo mais plausível, afinal eu vi isso acontecer em vários momentos durante minha "ainda breve carreira" - muitos empresários infelizmente não entendem que a atualização constante de seus produtos pode ser a diferença entre o sucesso e o fracasso de suas empresas. A Apple que o diga, não é mesmo?!

Bom a minha ideia era atualizar o controle apenas, aproveitando a placa "painel" com os LEDs. Então eu sabia que sairia a placa de controle com a Z80 e ficaria apenas a placa com os LEDs e seus CIs de controle. Bastou fazer um pequeno estudo da placa que ficaria e dos "datasheets" dos componentes utilizados no controle dos LEDs e lá estava meu primeiro rascunho sobre a placa. E eu nem precisei fazer um desenho mais "profissional" do mesmo, afinal para as minhas intenções aquelas anotações me bastariam! Eu só precisava decidir qual microcontrolador utilizar e isso foi bem fácil. Há algumas semanas eu havia comprado um "módulo" com o microcontrolador STM32F030 (Cortex-M0), 20 pinos. Esse seria o "cara" a ser usado!!!!


O novo circuito de controle



Na figura acima você tem o circuito que eu preparei para me auxiliar na montagem. No mesmo o microcontrolador STM32F030 está representado exatamente como o módulo que eu adquiri.


Um "módulo" ou "placa módulo" nada mais é que uma placa com alguns componentes montados na mesma, e que tem por objetivo facilitar de alguma maneira o uso de um componente especifico que pode ser um microcontrolador, sensor, dispositivo de controle, etc. Esse módulos se tornaram muito comuns entre os "makers", pois facilitam e muito o desenvolvimento de protótipos permitindo que estes sejam preparados de uma maneira muito mais rápida.


Eu inseri uma pequena fonte do tipo "drop-down" montada com um CI regulador de tensão de 5V (7805). Essa é a tensão dos componentes de controle da placa painel e também aceita pela placa módulo e outros CIs na minha nova placa. Um diodo retificador foi ligado à entrada para proteger contra possíveis inversões da alimentação de 12VDC/1A. Os capacitores C1 a C4 são filtros sendo C2 e C3 indicados no manual do CI. U2 é um MAX232 utilizado como "drive" entre o microcontrolador e minha pequena rede do "pobretão" feita em cima da norma RS-232C. O relé RL1 serve para evitar que uma linha qualquer do painel seja ligada durante a inicialização. Dessa forma o microcontrolador tem tempo para "limpar" os buffers dos CIs utilizados na placa painel e somente então que este recebe a alimentação de 12VDC (sim, os LEDs recebem 12VDC na sua operação).


A montagem



Na figura acima você pode ver a placa original que eu usei. Trata-se de uma placa padrão e a conexão entre os vários pontos foi feita utilizando fio tipo "wire-wrapping" por baixo da placa. Como sei que a reprodução disso é praticamente impossível já que você teria de ter outro painel igual ao meu, eu não vou falar muito mais a respeito. O que eu fiz foi apenas preparar uma placa no mesmo tamanho da placa anterior (ou próximo disso) e providenciar para que as conexões entre a "nova" e "velha" placas ficassem corretas. Acredito que num projeto adaptado por você deveria ser esse o seu caminho também, não é?!


O programa

O programa de controle do meu "novo painel" é com toda certeza bem diferente do programa presente na placa de controle original, já que eu o utilizo de uma maneira bastante própria. O que eu fiz foi criar os caracteres maiúsculos e minúsculos, além dos números e alguns caracteres especiais, todos em uma matriz de 7 x 5 (o painel tem 7 linhas) e preparar a "varredura" da direita para a esquerda de uma mensagem a ser enviada de um outro dispositivo.

Uma coisa que me chamou bastante a atenção foi justamente como a varredura é feita nesse painel, bastante diferente dos que eu já desenvolvi/trabalhei. Nestes sempre usei a varredura por coluna e agora esse eu precisaria usar varredura nas linhas! É mais chato de se trabalhar, mas achei interessante o desafio.

Com a varredura pronta, bastou criar um "protocolo" de comunicação para a recepção dos dados e o projeto estava pronto. Para testar o painel criei um pequeno programa em C usando o GCC Linux e tudo estava pronto!



Recentemente eu criei um relógio usando o microcontrolador AVR ATMEGA8 com displays grandes (acho que irei chamá-lo de Relógio BIG II) e inseri nesse uma porta RS-232 e também o protocolo de comunicação do painel. Dessa forma, o relógio pode enviar a hora e data para o painel e este pode ficar alternando entre uma mensagem, data e hora. Ficou bem legal!!!!


O resultado

Um certo dia eu ouvi dizer: "Uma imagem diz mais que mil palavras". Então um vídeo pode dizer muito mais! rsrsrs



Conclusão

Se você ainda não teve uma oportunidade profissional para fazer esse tipo de atualização, minha sugestão é que você busque fazer algo similar por conta própria já para ir se familiarizando com o assunto, as dificuldades envolvidas, etc. É sempre bom se preparar de alguma forma!!! Bons projetos, montagens, atualizações, etc!!! A eletrônica vive!!!





Downloads:

- nenhum download disponível


Este projeto não foi publicado em nenhuma revista! (até agora... rsrsrs).

Especificações:

- Cérebro     - microcontrolador STM32F030F4P6
- NR Colunas - 96
- NR Linhas - 07
- Programa - desenvolvido em C usando SW4STM32
- Comunicação - RS-232 (19200bps, 8 bits, sem paridade, 1 stop bit)

 


Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.