quinta-feira, 30 de outubro de 2014

Recriando uma tábua digitalizadora para o MSX (update: código fonte)

Combinando o aprendido com o estudo das telas touchscreen resistivas e mais o funcionamento das tábuas digitalizadoras para o MSX, consegui recriar a minha própria. Eu recomendo fortemente a leitura dos artigos citados a fim de melhor compreender o que vai ser descrito aqui.

O circuito ficou a cargo de um PIC16F688, rodando com clock interno de 8MHz.  A PORTA A ficou inteira para o digitalizador, enquanto a PORTA  C ficou para a interface com o MSX.


O protótipo foi montado numa placa padrão. Os primeiros testes foram efetuados com um conjunto de potenciômetros, e posteriormente com o 'touchscreen'.



 O conector do sensor resistivo é um componente SMD, e teve que ser adaptado para a montagem na placa padrão.


 As abas do conector foram soldadas às ilhas e os terminais foram isolados com um pedaço de fita de kapton por baixo.

  

 


 Depois do conjunto montado, o primeiro programa usado para testar o Touchpad foi esse:


Eu notei que quando colocado sobre a mesa a detecção do toque não funcionou direito. Creio que será necessário incluir um delay entre o momento que eu ativo o resistor de pullup e a amostragem da tela. 
Com o sensor resistivo sobre o MSX a detecção fica quase normal. Fora isso, a leitura das coordenadas ficou muito boa, e a auto-calibração também funciona muito bem (vide artigo sobre a leitura do sensor resistivo)


 Em seguida fiz um programa para poder testar o funcionamento de uma forma mais visual.


E capturei o seguinte vídeo:



Ainda dá para melhorar um pouco a estabilidade da leitura, mas como prova de conceito já está OK.  O protótipo já tem todos os elementos necessários. Agora é melhorar o firmware.

Mas antes disso, o próximo passo vai ser montar o circuito numa caixa ou base.

Nenhum comentário: