Categorias
Atualizações

Milton #7

NodeMCU é uma plataforma incrível. O preço é muito baixo para o que oferece (R$10 na China). Por outro lado, é relativamente jovem e tem partes pouco documentadas. Há pessoas explorando os limites do Esp8266 com ideias espetaculares todos os dias.

ESPVGAx2 é uma dessas ideias. O módulo pode ser excelente ponto de conexão wi-fi para sistemas embarcados, mas não foi pensado para gerar sinais VGA. Parte das limitações descritas por Sandro Maffiodo são chatas e contornáveis (p.ex. não retornar do loop). Outras, como o sequestro da memória para dar conta do framebuffer e não poder utilizar comunicação serial são mais complexas. Alternativas como as bibliotecas SoftwareSerial e I2C são possíveis, apesar de incluírem outro microcontrolador na equação.

Eu tentei, por vários dias e sem sucesso, utilizar a mesma biblioteca de teclado PS/2 do Arduino. Seria a escolha óbvia: conexão de apenas quatro portas no soquete PS/2 (dados, interrupção, 5V e GND) e ampla disponibilidade de teclados baratos por aí.

Entretanto, o módulo travava antes de gerar sinais VGA. A inclusão de um Arduino Nano como controlador do teclado e conexão I2C entre os dois resolveu, assim como via SoftwareSerial. O aumento de custos decorrente da inclusão do segundo microcontrolador (+R$30 no Brasil, R$ 10 na China) cria condições para tratar o NodeMCU como placa de vídeo, servidor de web e controlador de rede wi-fi, deixando o controle dos periféricos com o Arduino. Preciso testar melhor o conceito e o funcionamento, mas a princípio as vantagens superam as desvantagens.

É fato que não preciso do Arduino Nano todo. Poderia substituir a placa por um circuito específico com o ATmega328 (ou ATTiny85) e demais componentes necessários para controlar o número de portas que realmente preciso. NodeMCUs são muito mais baratos, de forma que talvez o caminho seja basear Milton no Arduino, que é mais estável e melhor documentado, apesar de mais caro.

Tive muito trabalho para entender a ESPVGAx2 e desenvolver os dois primeiros editores (milton:p e milton:u) para desistir dos sinais VGA. O dilema, por outro lado, me fez lembrar que Arduinos podem ser alternativas independentes para versões mais simples de Milton.

O monitor de vídeo de 4.3 polegadas chegou bem no momento da crise. Comprei destes modelos utilizados como câmera de ré para utilizar com a biblioteca TVOut do Arduino. A montagem foi simples e o resultado animador, mesmo com a baixa resolução (128×80, apenas preto e branco).

Arduino Uno com demonstração da biblioteca TVOut.

Televisores com entrada vídeo-composto (conectores “RCA”) podem ser até mais fáceis de encontrar que monitores VGA. Até essas TVs inteligentes enormes e conectadas mantêm as portas na parte traseira. Testei em todos os aparelhos velhos e novos que encontrei pela frente e consegui gerar sinais, sem sofrimento.

Uma versão reduzida de Milton, com saída para TV em vez de monitor VGA, baseada apenas em Arduinos, também pode ser viável. Descobri projetos que geram sinal de vídeo com Digisparks, que são mínimos.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.