Epoch
O projeto Epoch consiste em utilizar um display de pinball para apresentar um contador de segundos desde a fundação do Garoa (como o que fica na parte inferior esquerda deste wiki).
Para os segundos transcorridos entre 01/jan/1970 0:00:00.000 e a momento de fundação do Garoa, veja Epoch Garoa.
Nos dígitos mais a esquerda do contador é sempre apresentado "641204" que corresponde a "GAROA". O contador propriamente dito começa no sétimo dígito.
O Display
O display possui na frente dois blocos de 8 dígitos e no outro lado o circuito e um conector:
O diagrama de blocos do circuito do display é:
Para cada bloco (A e B) temos quatro sinais (a8, a4, a2 e a1) que codificam em binário o dígito a apresentar. Os 7447 convertem estes sinais binários na ativação dos segmentos correspondentes. A saída do 7447 vai para os 8 dígitos; três sinais (S0, S1 e S2) selecionam um deles. A decodificação destes sinais é feita pelo 74238, o 2803 e os transistores são usados devido à corrente que circulará quando todos os segmentos forem acesos simultaneamente.
A pinagem do conector (no que diz respeito aos pinos que interessam para o projeto):
A página Painéis_de_displays_de_7_segmentos possui documentação adicional do display, compilada quando recebemos o display e começamos o trabalho de engenharia reversa.
Hardware
A ideia básica foi usar um microcontrolador para acionar o display. Uma conexão RS232 com um micro é usada para programar o valor inicial e um relógio com bateria é usado para manter atualizada a data e hora quando o microcontrolador estiver desligado. O microcontrolador escolhido foi o PIC16F882-I/SP. É um modelo relativamente recente com algumas características interessantes para este projeto:
- Encapsulamento PDIP com 28 pinos, dos quais até 24 podem ser usados como E/S digital
- Clock interno de 8MHz, calibrado na fábrica
- USART para comunicação serial
Para o relógio foi usado o DS1302. Além do tradicional relógio/calendário e Ram (no caso 31 bytes), este chip é capaz de fazer carga lenta (trickle-charge) da bateria de backup, uma bateria recarregável de NiCad de 3,6V 60mA/h, destas que se encontra em algumas placa mães de PC.
Para converter o nível dos sinais de Rx e Tx entre TTL e RS232 foi usado o tradicional MAX232.
O circuito é bastante simples. Além dos três CIs (PIC, DS1302 e MAX232) temos o cristal e a bateria para o DS1302, um pullup para o sinal de reset do PIC e os capacitores para o MAX232. Os sinais para programação in-circuit do PIC vão para um conector, para permitir a carga do software sem precisar retirá-lo do circuito:
Os primeiros testes foram feitos em uma breadboard. A montagem foi feita em uma placa de circuito impresso padrão, destas que possuem trilhas semelhantes às conexões da breadboard.
Conectores
O conector de Gravação é utilizado para gravar o firmware. Nele deve ser conectado um gravador PIC padrão.
O conector de Ajuste é utilizado para ajustar o relógio. Deve ser conectado via um conversor serial TTL USB ("FTDI"). O ajuste é feito conectando a 9600bps, formato 8N1. Enviando CR ("Enter") para o Epoch ele responderá com ">". A data e a hora atuais devem ser enviados no formato ddmmaahhmmss, seguido de um novo CR.
Relato Detalhado
Um relato mais detalhado pode ser visto nos post abaixo:
Software: interface com o DS1302
Software: programa principal, Display e tratamento da Serial
Disponível também no GitHub do Garoa, caso alguém queira propor melhorias: https://github.com/garoa/Display_Epoch