Neste mês, continuando a série de artigos com aplicações do BASIC Stamp® veremos um mini terminal com comunicação serial RS232 e display de cristal líquido.
Muitos sistemas usam um computador central para controlar funções remotas. Em várias aplicações os usuários se comunicam com o computador central através de pequenos terminais que enviam e recebem dados do sistema. Como exemplos, podemos citar as seguintes aplicações:
Terminal de consulta de preços em lojas
Terminal de consulta e requisição de material em estoque
Controle de produção
Display de máquinas e de controle de processos
Terminal de estacionamento.
A princípio parece ser muito complicado para uma pessoa com conhecimento básico de eletrônica e programação poder fazer um sistema desse tipo, mas utilizando o BASIC Stamp© a tarefa se torna rápida e fácil. As pessoas experientes que já tiveram a oportunidade de fazer um sistema parecido, poderão ver como o BASIC Stamp© e' muito eficiente e poderoso.
Mini-Terminal
Como o BASIC Stamp© é facilmente programável e tem suporte para comunicação serial, se torna um excelente candidato para essas aplicações de interface entre usuários e computador central.
No esquema da figura 1, verificamos que poucos componentes são utilizados para a confecção do mini terminal. O display de cristal líquido usado nesse projeto e baseado no circuito integrado Hitachi 44780 que compõem a maioria dos LCD disponíveis no mercado. Veja a matéria em edições futuras.
FUNCIONAMENTO
Quando o circuito é energizado, o programa do BASIC Stamp® inicializa o LCD, que é configurado para escrever caracteres da esquerda para a direita, cursor ativado e interface de 4 bits (0 LCD recebe um byte em duas operações, um nibble de cada vez). Para eliminar qualquer caractere estranho, o programa limpa a tela do display. Após a inicialização, o programa entra em loop esperando o recebimento de um caractere pela interface serial RS232 com baud rate de 2400 baud. Quando o caractere é recebido, e verificado se está dentro de uma pequena lista de caracteres especiais (backspace (retrocesso), control-C e return). Se não estiver, o programa escreve o caractere na tela do display e volta ao loop onde aguardará por um novo caractere. Se um caractere backspace é recebido, o programa movimenta o cursor um caractere para trás (movimento da esquerda para a direita) e escreve um caractere branco (espaço) para apagar o que estava nessa posição, movimenta o cursor para trás novamente. Esse segundo movimento para trás se faz necessário porque o LCD avança automaticamente o cursor após escrever um caractere.
Se um caractere control-C é recebido, o programa executa um comando de “clear screen” (limpa a tela) no LCD, que escreve brancos em todas as posições da tela do display e colocar o cursor na posição mais a esquerda.
Se um caractere return e recebido, o programa interpreta a mensagem como requisição de uma resposta do usuário. O programa fica em um loop esperando que o usuário pressione uma das quatro chaves. Uma vez pressionada. o programa envia um caractere (“0"até “3") que representa o número da chave para o computador central. Volta ao loop principal para aguardar um novo caractere. Por causa de todo esse processamento. a interface não pode receber caracteres enviados rapidamente. O programa do computador central deve colocar um pequeno atraso (delay) entre o envio de cada caractere (+- 3 milissegundos). Se você reduzir o baud rate para 300 baud e setar para 1.5 ou 2 stop bits, você não precisará do de!ay (mudar o baud rate tanto do computador como do programa do BASIC Stamp®).
Do ponto de vista eletrônico o circuito implementa alguns truques, o primeiro envolve a comunicação serial RS232. O processador do BASIC Stamp®, um PlC16C56 da Microchip, é equipado com diodos de proteção nos pinos de I/O. Quando o BASIC Stamp® recebe um dado RS232, com níveis lógicos de tensões entre -1 2 e + 12 volts, os diodos limitam a tensão para os níveis usados internamente pelo PIC que são O e +5 volts.
Os resistores são para limitar a corrente que passam através dos diodos evitando assim danifica-los. A maioria dos PCs aceitam trabalhar dessa maneira sem maiores problemas. Trabalhando dessa maneira o sistema não é tão imune a ruídos como um que utiliza as regras do RS232. Se você deseja utilizar o mini terminal em um ambiente ruidoso ou a longas distâncias, o uso de um driver/receiver RS232 deve ser considerado, você pode optar pelo Maxim MAX232 que é de fácil implementação e necessita ser alimentado apenas por + 5volts.
Outro truque é a utilização dos pinos de I/O tanto para escrever no LCD como para ler o estado das chaves. O que acontece se o usuário pressiona a chave quando o LCD está recebendo dados?
Nada no BASIC Stamp® pode receber a corrente do resistor pull-up de 1 kg sem afetar o estado da linha que vai para o LCD.
E quando o BASIC Stamp® está lendo as chaves. O LCD está desabilitado e suas linhas em estado de alta impedância. Resumindo, o LCD e as chaves podem compartilhar as linhas de dados sem interferências.
Finalmente, note que os resistores estão colocados entre as linhas de dados e as chaves, que estão conectadas ao +5 volt.
Isto é uma prevenção de baixo custo contra descargas eletrostáticas causadas pela ponta do dedo do usuário quando este pressiona a tecla.
Essa proteção não é totalmente efetiva, mas devido ao seu baixo custo ela se adapta bem ao circuito proposto.
Abaixo você encontra o programa em BASIC que deverá ser carregado no BASIC Stamp©, ele usa 2/3 da memória EEPROM, o que significa que você pode fazer mais implementações para atender as suas necessidades.
Testando o Mini Terminal
Para testar o Mini Terminal, você pode usar qualquer programa de emulação de terminal (por ex. TELlX) ou o Terminal do Windows (geralmente ele está na janela acessórios). Configure o terminal para daud rate para 2400 baud, 8 bits sem paridade e 1 stop bit a para utilizar a saída serial que você tem disponível. Faça um cabo para interligar o Mini Terminal com o PC.
Abaixo você tem as ligações para o conector do lado do PC, as linhas pontilhadas são necessárias para desabilitar o handshaking por hardware. Uma vez conectado e o terminal corretamente configurado, é só escrever no teclado que aparecerá no display, a tecla backspace retrocede um caractere e pressionando simultaneamente “Crtl” e “C” (control – C) limpa a tela do display.
Habilite o “ECHO” do terminal para você acompanhar o que você está digitando.
Programando uma aplicação
O Programa a seguir é um exemplo de programa em QBASIC para rodar no PC e mostrar uma aplicação do Mini Terminal. A opção pelo QBASIC é que ele está disponível no sistema operacional DOS da Microsoft (versão 5.0 ou superior), portanto na maioria dos PCs e pelo fato de ser de fácil utilização e compreensão. O programa visa mostrar um processo simples de escrita e leitura, um processo mais complexo, como um controle de estoque por exemplo, demandaria várias linhas de programação e para ser mais eficiente teríamos que optar pela linguagem “C” que é muito mais complexa.
Funcionamento do Programa QBASIC:
O programa limpa a tela do display e escreve a mensagem “Acione uma tecla", quando o usuário aciona uma tecla, o programa analisa qual tecla foi acionada e imprime uma mensagem especifica para a tecla, aguarda um pequeno tempo e volta a repetir o processo.
Você deve ter percebido que o programa utilizou a saída serial COM2 com baud rate de 300 baud e com 2 stop bits, essa configuração foi utilizada para evitar a colocação de um delay entre cada caractere (tempo necessário para o Mini Terminal analisar o caractere).
Então para compatibilizar o programa do BASIC Stamp© com o programa do QBASIC, você deve alterar as configurações das instruções SERIN e SEROUT do BASIC Stamp® que utilizam baud rate de 2400 baud para 300 baud. o que significa trocar N2400 por N300 nas instruções.
Conclusão
O objetivo desse artigo foi mostrar como é possível se fazer aplicações complexas utilizando o mínimo de componentes, 0 que é uma tendência mundial.
A eletrônica está se transformando rapidamente e os fabricantes d componentes estão disponibilizando módulos cada vez mais eficientes e complexos.
O BASIC Stamp© exemplifica bem essa tendência, onde um minúsculo módulo disponibiliza funções extremamente poderosas e eficientes de uma maneira tão simples que qualquer pessoa com o mínimo conhecimento de eletrônica e programação pode utiliza-las. E se toma uma ferramenta poderosa para os profissionais mais experientes ganharem tempo em tarefas que anteriormente exigiam várias horas de projeto, montagens e testes.