Teclado capacitivo Mtouch 16 sensores


Hola otra vez, no ha pasado mucho tiempo a ver si las ideas siguen fluyendo así.
Últimamente habéis visto un par de cosas relacionadas con los sensores capacitivos en este blog y no os podéis creer las calenturas de cabeza que me han dado. Por fin he llegado al final del trayecto con ellos y me han quedado claras algunas cosas (EMHO) que quiero dejar plasmadas aquí.
El tema de los sensores capacitivos está un poco de moda, desde que Apple decidió incorporarlos a sus iPod, las placas de las cocinas eliminaron los paneles frontales y en algunas zonas públicas se incorporaban como una superficie interactiva y fácil de limpiar (sin bordes ni pulsadores).
Últimamente han aparecido unas cuantas empresas que han puesto a nuestra disposición controladores para este tipo de sensores y en ellos he estado inmerso en los últimos tiempos.

Antecedentes
El primer contacto, fue con la serie 10F de Microchip, en concreto con el 10F206 con buenos resultados al final, pero con el inconveniente de la necesidad de implementar un firmware (con su correspondiente programación del micro) para un solo sensor:

Personalmente, creo que para un solo sensor la mejor solución es el QT100A de Quantum. No hay que cargarle ningún firmware, y la sensibilidad depende de una pequeña red RC. Muy simple de implementar. Es el que he usado para el juego de la vida y en una pequeña PCB prototipo de dos sensores:

Con los buenos resultados del QT100A me decidía probar algo “más grande” y de la misma marca, el Qt1081 controlador de 8 sensores.
Lo más dificultoso de manejar es su encapsulado 32QFN. Es diabólico para los que hacemos las cosas desde nuestra casa :) y un inconveniente a mi entender es su procesamiento “paralelo” de los sensores. Es decir, tenemos 8 entradas de sensado y 8 salidas y además necesitamos implementar 8 redes RC que nos dan la sensibilidad y nos modifican el burst del pulso que hace la detección.
Esta era la placa controladora con su teclado:

Los resultados, además de ser un poco engorroso el tema de las RC, no fueron lo que yo esperaba. Demasiada circuitería en el diseño:
Controladores QT1081, PIC para gestionar las I/O con la USART, alimentación y conversor de niveles. Para mi aplicación en particular eran demasiados componentes.
Para lo que sí lo he encontrado muy interesante es para teclados de reducidadas dimensiones tipo iPod por su elevada integración y tensión de trabajo. Además una PCB de tamaño reducido acabaría con los problemas que yo me encontré en estas dimensiones.

A través de un amigo de un foro conocí los MPR084 de Freescale. Se antojaban interesantes. Con conexión I2C eran más manejables y además son configurables por software.
La programación es muy sencilla, pero despues de un par de intentos, no se adaptaban a mi diseño:

  • Necesitaba hacer un cambio de niveles de tensión del bus I2C y el PCA9306 me metía demasiado ruido.

Hice dos pruebas con planos de masa y sin ellos ( doble cara y simple cara ) y no me resultaron satisfactorios. Vamos que no me funcionó como yo quería.
Me releí los datasheets y las AppNotes, pero creo que las dimensiones de la PCB eran un problema .
A simple cara con la controladora:

Y a doble cara con plano de masa:

Finalmente, y después de haber pasado por un seminario de Microchip con el amigo Desig, de toquetear las placas con sus mtouch y sus placas de metacrilato sobre ellas, me dije que había que intentarlo.
El candidato, el PIC16LF727, un TQFP44 dedicado a sensores táctiles (además de otras aplicaciones), 3.3v de alimentación y de la serie nanoWatt de bajo consumo (60nA a 2v en standby!).

El diseño
El diseño, como manda Microchip. Esta vez a doble cara y con plano de masa para aislar pads.
Los componentes alrededor del PIC… un condensador de 100nF de desacople y una resistencia al MCLR (costumbre de la casa).
Todo está hecho en programación, los ajustes, los delays, los antirebotes , el control de pulsación…
El esquema es como sigue:

Le he añadido como comunicación serie un convertidor TTL-USB en la propia placa que al mismo tiempo me proporciona a través del FT232RL los 3.3v necesarios para alimentarlo.
Así, un solo cable y conexión USB.
Tambien incorpora una conexión de alimentación externa (3.3v) seleccionable con un jumper de soldadura y si no se quiere implementar el conversor, pues existen dos pads en la PCB que son el TX/RX de la USART del PIC16LF727

La PCB

Pues como ya comenté en un párrafo anterior, a doble cara para hacer que el plano de masa me bloquee cualquier falsa detección sobre las pistas de los pines de sensado en la cara inferior.
Lo he probado y de verdad que es muy eficiente siempre que el threshold esté bien calibrado.
Esta es la PCB:

Resultado Final

El resultado ha superado todas mis expectativas en cuanto a sencillez de diseño, integración y calibrado.
La placa ha quedado así:

Y le he incorporado un panel de metacrilato de unos 2mm haciendo sandwich con una carátula (impresa en papel foto con una impresora de inyección EPSON) y la PCB resultando esto:

He escrito un pequeño programa para monitorizar el funcionamiento del teclado y ajustar desde el PC el threshold de los sensores y su histéresis y el resultado lo podéis ver en este pequeño vídeo.
Ha quedado un poco oscuro… a ver si alguien me regala una cámara HD :) y hago mejores vídeos

Salu2,
Droky

24 Responses to “Teclado capacitivo Mtouch 16 sensores”

  1. Xavier Belanche Says:

    Como siempre, fantástico!

  2. radikal Says:

    Immpresionante.

    ¡ Quemos un seminario sobre protocolos !

    Felicidades

  3. pabloko Says:

    Hola, una pregunta, estoy interesado en mtouch pero es para el ambito industrial, y he visto que con facilidad se producen fallos con emisores de radiofrecuencias, como un telefono movil cerca, vi claramente como el mtouch de microchip accionaba botones arcaicamente, has probado algo de esto?

  4. droky Says:

    Hola Pabloko.
    He probado lo del móvil y no hace ninguna intereferencia que lo vuelva loco. En el seminario de Microchip, tampoco hemos visto que se vuelva loco.
    Ahora bien, para un entorno industrial quizás necesites certificarlo EMI en un banco de pruebas como cualquier dispositivo industrial. También es posible que sea necesario un blindaje del circuito para evitar interferencias en maquinaria industrial como grandes motores o sistemas de desplazamiento electromágneticos o grandes cargas inductivas cercanas.
    Salu2

  5. pabloko Says:

    Hola, si, conozco el procedimiento jeje no me voy a tirar a la piscina de primeras y voy a hacer alguna prueba, para que veas el fallo que te digo, lo puedes ver aqui http://www.youtube.com/watch?v=_gL2VhAPEbA

    Me voy a intentar animar a montar un panel como el tuyo, creo que con 3 entradas simplemente se pueden obtener los 8 pads, vi algo en una AppNote… y me gustaria probarlo, estoy por intentar montar un panel para una mesa de mezclas y sistituir el mecanico…

    Sabeis si se pueden colocar los componentes detras de los pads, o la misma corriente del circuito hara interferencia…

    saludos, gran trabajo amigos

  6. droky Says:

    Hola Pabloko,
    Ese es el video al que me refiero. Es el único que circula por internet. Yo he hecho la misma prueba y no pasa nada. Ahora bien, si aumentas mucho la sensibilidad de los sensores desde el PC, con pasar la mano a esa distancia, aunque lleves un móvil o una patata agarrada, haces que se activen los sensores, muchos a la vez. Hoax tal vez??
    Sobre poner los componentes detrás de los pads… pues a mi no me ha quedado más remedio y así lo he hecho. Pero es posible que puedan llegar a afectar a los sensores.
    Y lo de las 3 entradas y los 8 pads… pues no lo he visto y me he tragado muchas Appnotes. Si lo encuentras, házmelo saber.
    Salu2

  7. pabloko Says:

    aqui puedes ver lo relaccionado con multiples pads con pocas entradas

    http://ww1.microchip.com/downloads/en/AppNotes/01104A.pdf

    Este sistema me esta empezando a desilusionar, hago pruebas y veo que es muy dificil obtener un resultado, no es algo con lo que pueda trabajar fiablemente, probando probando, imprimí una placa con bandas laterales clonando la forma que tienen en un panel resistivo, parece que voy a poder leer una frecuencia determinada y obtener la posicion x e y, creo que este metodo va aser mucho mas sencillo aunque mucho menos geek

    de todas formas me gusta muchisimo la idea, seguid con ello puesto que no hay mucho similar por ahi todavia, me alegro por vosotros

    saludos

  8. pabloko Says:

    Me he encontrado una web de un ruso que se curra un teclado de 36 botones con monedas, echarle un vistazo es bastante explicativo
    http://www.pic24.ru/doku.php/en/osa/articles/pk2_osa_piano

  9. droky Says:

    Interesante montaje. Estaría bien verlo sobre una PCB en lugar de las monedas.
    Gracias por el enlace.
    Salu2,
    Droky

  10. foras Says:

    tengo yo una duda general. Que programa usas para hacer los esquemáticos y los diseños de las PCBs?

  11. droky Says:

    Hola foras,
    Usamos Eagle, siempre Eagle.
    Salu2

  12. Meta Says:

    Hola:

    impresionante los trabajos.

    ¿Le interesa enlazarnos con nuestros Blog?

    http://electronica-pic.blogspot.com

    Saludo.

  13. droky Says:

    Hola Meta ¿Meta de TodoPic?
    No hay problema, ya estás linkado.
    Salu2

  14. julio cesar Says:

    Felicidades por este hermoso proyecto la verdad con esto que lo Touch esta de moda te quedo exelente, solo una pregunta que programa usas para hacer la hoja esquematica del circuito, la verdad no la lonosco.

  15. droky Says:

    Los esquemas y PCBs están hechas con Eagle.
    Salu2

  16. Sir Says:

    Hola,

    Muy Interesante…

    Una pregunta tonta…

    ¿cuanto de grosor puedes poner delante del teclado para que siga funcionado…?

    ¿Podrias interactuar detras de un cristal de unos 5 mm?

    Salu2

  17. droky Says:

    Según las especificaciones de Microchip, sí que funcionaría.
    Salu2

  18. Anonymous Says:

    Hola, yo solo tengo nocines de electrónica, pero estaba buscando justo esto para un proyecto en el que estoy metido. ¿Como podría hacerme con la placa?, ¿Vosotros me montariais una?, no me importa si me cobras, es mas seguro que hacerla yo por que no tengo mucha idea.

    Te pido por favor que me ayudes con esto, puedes contestarme en wikawi@hotmail.com, gracias de antemano, un saludo,

  19. piruletin Says:

    Buenas,

    Me ha encantado este proyecto para entretenerme en casa, pero al contrario que en otros de tus proyectos no estan los esquemas ni los fuentes, no sé si se trata de un error o que no quieres publicarlos.

    Si fuese posible me gustaría tenerlos para probarlo en mi casa.

    Saludos

    piruletin@telefonica.net

  20. Theo Says:

    Hi
    Can you please contact me, I would like to discuss this project with you and need your services for a project I am working with.
    Thanks

  21. Lord_Duran Says:

    Saludos.

    Ya me llego el microcontrolador PIC16LF727, quiero ir avanzando con este proyecto que me tiene sin dormir por eso de la emosion, pero tengo dudas en cuanto al PCB doble cara hecho en ares, el problema que tengo es el metodo a utilizar para pasar el diseño del PCB a placa y que coincida todo bien, cuál es el metodo que utilizas??.
    Otra duda es en cuanto a la forma de programar el PIC, seguramente es mediante ICSP (obviamente), busque informacion al respecto por la red, no encuentro muchos tutoriales por el internet aobre ello, el esquematico de ICSP plasmado en el datasheet del PIC es el mismo que utilizaste??, hago esta pregunta por que en ese esquematico se ve que dos circuitos de proteccion salen de la misma línea.

    Muchas gracias, y estare postendo mas dudas respecto a la programacion en CCS de este magnificio PIC.

  22. droky Says:

    Hola Lord_Duran, el método de insolar doble cara que uso, es hacer una especie de sobre con los dos fotolitos uniendo 3 lados con cinta adhesiva y perfectamente encuadrados los pines de uno con el de otro.
    Después introduzco la PCB dentro del “sobre” por el lado abierto, y todo queda en su sitioperfectamente cuadrado. Sujeto la placa con cinta adhesiva al “sobre” para que no se mueva al voltearlo en la insoladora y listo. Sencillo y efectivo.
    En cuanto a la conexión ICSP de programación uso el estándar del ICD2/ICD3:
    Conector ICSP: 1- VPP, 2- 3,3v, 3- GND, 4- ICSPDAT, 5-ICSPCLK, 6- NC
    Entre VPP(1) y 3,3v(2) hay una resistencia de Pullup 10k para el RESET (Pin VPP)
    Y al PIC, VPP (patilla 18), ICSPCLK (Patilla 16), ICSPDAT (patilla 17).
    Si quieres el esquema, mándame un mail con tu dirección.
    Salu2

  23. Lord_Duran Says:

    Muchas gracias por la respuesta.
    Enseguida te mando un mail para lo del esquemático

    Saludos.

  24. Evanildo A Costa Says:

    Olá amigo, tudo bem?
    voce por favor pode me enviar este projeto, de Mtouch para 16 teclas?
    eu preciso fazer um projeto quase igual ao seu, porém vou precisar ter as teclas M touch, e devo enviar o estado das teclas através da porta serial do MC.
    A comunicação serial será por meu de modulos ZIGBEE, o meu mc receptor será o pic 16f876A.
    portanto vou ter dois modelos de Microcontroladores. 16f727 e 16f876A.
    Bem espero que voce possa me ajudar.
    Obrigado, e Saludos.

    Evanildo A Costa

Leave a Reply


Copy Protected by Tech Tips's CopyProtect Popup Images .