Tabla de contenido:

Sensor táctil resistivo de 5 cables: 10 pasos
Sensor táctil resistivo de 5 cables: 10 pasos

Video: Sensor táctil resistivo de 5 cables: 10 pasos

Video: Sensor táctil resistivo de 5 cables: 10 pasos
Video: Arduino desde cero en Español - Capítulo 68 - TTP223 Sensor Táctil Capacitivo Digital Touch sensor 2024, Mes de julio
Anonim
Sensor táctil resistivo de 5 cables
Sensor táctil resistivo de 5 cables

¡Hola hola!

¡Ha pasado un tiempo desde que trabajé en este sitio y parece que han cambiado muchas cosas! Finalmente estoy listo para volver al volante para otro proyecto, ¡y creo que es hora de cambiar un poco las cosas yo mismo!

He tenido en mente durante algún tiempo un proyecto basado en Plate and Ball de 271828, pero tengo mucho que aprender sobre sensores y teoría de control antes de que esté terminado. ¡Pensé que mientras aprendiera un par de cosas, podría llevarlos conmigo!

Con ese fin, mi objetivo para estos tutoriales será una especie de híbrido entre mis tutoriales más pulidos y un récord para el proyecto en sí. Cada tutorial individual será un paso en ese viaje e incluirá detalles que he pasado por alto en el pasado, como el desarrollo del código (en lugar de solo el código completo) y los pasos en falso que tome en el camino.

Estoy muy emocionado por este nuevo proyecto, ¡y estoy emocionado de ver lo bien que funciona!

Hoy solo obtendremos un panel táctil simple de 5 cables que funciona con un DP-32.

¡Empecemos!

Paso 1: lo que necesitará

Lo que necesitarás
Lo que necesitarás

Debido a que este tutorial trata sobre cómo hacer funcionar un solo sensor, no necesitará mucho más que un microcontrolador y el panel táctil.

  • Un microcontrolador.

    Estoy usando mi DP32 con una placa de pruebas incorporada porque hace que la creación de prototipos sea increíblemente simple

  • Cables y alambres surtidos.

    Podría haber usado el cable plano integrado en el panel táctil, pero si se rompe, todo el panel es inútil. En cambio, estoy usando un cable de 6 hilos para reducir la tensión en el cable integrado

  • ¡El panel táctil resistivo de 5 hilos titular!

    Tenía un panel táctil resistivo de 4 hilos, pero el cable plano se rompió

¡Y eso es!

Paso 2: ¿Qué es un panel táctil resistivo de 5 hilos?

¿Qué es un panel táctil resistivo de 5 hilos?
¿Qué es un panel táctil resistivo de 5 hilos?
¿Qué es un panel táctil resistivo de 5 hilos?
¿Qué es un panel táctil resistivo de 5 hilos?
¿Qué es un panel táctil resistivo de 5 hilos?
¿Qué es un panel táctil resistivo de 5 hilos?

Si ha leído mi tutorial de panel táctil de 4 cables, estará familiarizado con la idea general de un sensor táctil resistivo, pero los paneles de 5 cables y los paneles de 4 cables funcionan de manera un poco diferente.

Me gusta este panel porque puede ver todos los trazos de cables, lo que facilita ver qué hace qué. En la primera imagen, coloreé cada trazo de manera diferente. Probablemente pueda ver que cuatro de los cables (rosa, amarillo, naranja y morado) van cada uno a una de las cuatro esquinas. El cable del medio (rojo) va al panel del sensor flexible.

En la segunda imagen, hemos configurado dos de los cuatro cables (arriba a la derecha y abajo a la derecha) a un voltaje alto (mostrado en rojo), mientras que los otros dos (arriba a la izquierda y abajo a la izquierda) están configurados a bajo voltaje (mostrado en azul). Esto crea un gradiente de voltajes en todo el panel. En este caso, el gradiente va a lo largo del eje X, por lo que un voltaje más alto representa una posición más alta a lo largo del eje X.

Cuando tocamos el panel con nuestro dedo, eso deprime el sensor flexible, conectándose a algún lugar a lo largo del gradiente del eje X. Los sensores de voltaje en nuestro microcontrolador pueden detectar este voltaje y decirle en qué parte del eje X está tocando su dedo.

En la tercera imagen, puede ver cómo cambia la configuración para permitirnos sentir a lo largo del eje Y. De esta manera, podemos saber en qué parte del espacio 2-D se toca nuestro dedo.

Paso 3: cableado

Alambrado
Alambrado
Alambrado
Alambrado

Como probablemente pueda ver en las imágenes de arriba, he conectado mis cuatro esquinas cada una a su propio pin de salida digital. Eso me permitirá establecerlos individualmente en alto o bajo. El pin de mi sensor se conecta a un pin de entrada analógica. Lo bueno de una pantalla táctil de 5 hilos, a diferencia de una de 4 hilos, es que solo necesita un pin analógico, mientras que uno de 4 hilos necesitaría 2.

Su cableado puede diferir, por supuesto, pero mi cableado es el siguiente:

Analógico 0 (pin 6) se conecta al sensor (pin medio)

Digital 3 se conecta a la parte superior derecha (pin superior)

Digital 2 se conecta a Top-Left (segundo pin superior)

Digital 1 se conecta a la parte inferior izquierda (segundo pin más inferior)

Digital 0 se conecta a la parte inferior derecha (pin inferior)

Vale la pena señalar nuevamente que estoy usando un cable de 6 hilos para ir entre el microcontrolador y el panel. Dejé el pin superior de este cable desconectado.

Paso 4: desarrollo de software

Desarrollo de software
Desarrollo de software

En el pasado, solía soltar un archivo de software completo para que lo usara, tal vez con una breve descripción de lo que hace todo. No me gusta eso. Quiero que esta serie trate sobre proyectos en desarrollo y, para ello, incluiré el desarrollo real de este software de principio a fin.

Como de costumbre, usaré el IDE de Arduino, con el núcleo de Digilent. Cada sección incluirá un archivo de código, una captura de pantalla, así como una descripción de las adiciones y lo que estamos tratando de lograr.

Por ahora, estoy comenzando con un programa de parpadeo de estilo de retardo simple, exactamente igual al que encontraría en la carpeta Ejemplos. Si lee ese largo encabezado que escribí, verá que cada paso en este proceso modificará el programa para acercarlo a nuestro objetivo final.

Paso 5: Parpadeo de la máquina de estado

Parpadeo de la máquina de estado
Parpadeo de la máquina de estado

Mi primer paso es cambiar la función de parpadeo de una basada en "delay ()" a una máquina de estado.

Para aquellos que no están acostumbrados a cambiar sentencias, funciona de manera similar a una sentencia if. Este (en el cuadro naranja) prueba nuestra variable "estado" (que comienza en 0). Luego salta al caso de nuestro estado actual. Verá que los casos 0 y 2 son responsables de encender y apagar el LED (respectivamente), mientras que los casos 1 y 3 son responsables de esperar entre interruptores.

Paso 6: Botón parpadeante

Parpadeo del botón
Parpadeo del botón
Parpadeo del botón
Parpadeo del botón
Parpadeo del botón
Parpadeo del botón

A continuación, quería que el botón se usara para hacer parpadear la luz. En lugar de complicar demasiado esto, simplemente moví todos los estados hacia abajo en uno (el estado 0 se convierte en el estado 1, etc.). Al hacer esto, tenga cuidado de incrementar los estados de salida así como el estado mismo (vea la imagen 3).

También eliminé el segundo estado de "espera". Eso significa que el botón enciende la luz durante un segundo y puede presionar el botón nuevamente inmediatamente después de que se apaga.

Vale la pena señalar que este sistema elimina automáticamente el rebote del botón por nosotros, porque tenemos que esperar a que el LED se apague antes de volver al estado 0 donde el botón puede activar el ciclo nuevamente.

Paso 7: comunicación en serie

Comunicación serial
Comunicación serial
Comunicación serial
Comunicación serial

Esta actualización es muy pequeña. Todo lo que quería hacer era establecer una conexión serial y enviar mensajes. En la primera imagen, puede ver que comienzo Serial en la función setup (). Dentro de nuestra máquina de estado, agregué líneas a los estados 1 y 3 que enviarán mensajes simples a la computadora a través de serie.

Paso 8: lectura de coordenadas

Coordenadas de lectura
Coordenadas de lectura
Coordenadas de lectura
Coordenadas de lectura
Coordenadas de lectura
Coordenadas de lectura
Coordenadas de lectura
Coordenadas de lectura

Es bueno que el último paso haya sido fácil, porque este fue fantástico.

Para empezar, agregué variables para nuestro panel táctil, incluidas algunas variables de tiempo dedicadas tanto para el panel táctil como para nuestro botón. Verás por qué en un momento.

He reescrito completamente la máquina de estados. Es un poco confuso mirar el código, así que he incluido un diagrama de bloques que debería ilustrar lo que se ha hecho.

Cosas a tener en cuenta: ahora hay tres pasos de "espera". Uno para cada configuración del panel táctil, para dejar que los voltajes se asienten antes de tomar una medición, y otro para darle tiempo al botón para que rebote correctamente. Estos pasos de espera son la razón por la que quería dar tanto al botón como al panel táctil sus propias variables de tiempo.

Nota: La constante DEBOUNCE_TIME puede ser un poco baja. Siéntete libre de aumentarlo.

Paso 9: limpieza

Limpiar
Limpiar
Limpiar
Limpiar
Limpiar
Limpiar

¡Hemos llegado a la versión final del código para este proyecto!

Para empezar, agregué una función llamada loop_diff () para calcular el tiempo transcurrido. El reloj interno del DP32 es largo sin firmar y, aunque es extremadamente improbable, existe la posibilidad de que el reloj se repita en algún momento durante el tiempo de ejecución de este código *. En ese caso, simplemente restar el tiempo actual del tiempo ahorrado en btn_time o panel_time nos dará algo extraño, así que escribí loop_diff () para detectar cuándo ocurren los bucles y comportarme en consecuencia.

También hice una pequeña limpieza. Eliminé la variable "state_time" que ahora no se usa. Cambié de la etiqueta LED_BUILTIN (que es un estándar de Arduino) a la etiqueta PIN_LED1 (que es estándar para chipKit y DP32). También eliminé todos los mensajes a través de Serial sobre el inicio y finalización del proceso, lo que hace que nuestros datos a través de Serial sean mucho más limpios.

* Hice las matemáticas hace años, y creo que para la función millis () tomaría algo así como una semana de tiempo de ejecución constante antes de que la variable se repita.

Paso 10: Pensamientos finales

Pensamientos finales
Pensamientos finales

¡Y eso es!

Si lo ha seguido, ¡ahora debería tener un panel táctil en funcionamiento conectado a su microcontrolador! Este fue un proyecto pequeño, pero es parte de un proyecto más grande. Estoy trabajando para algo como Plate and Ball de 271828, y tengo un largo camino por recorrer antes de que eso suceda. Voy a intentar acompañarte durante todo el proceso, y cada parte debe ser su propio pequeño proyecto.

Este es un proceso de aprendizaje para mí, así que siéntete libre de dejar tus pensamientos y sugerencias en los comentarios a continuación.

Gracias, ¡nos vemos la próxima vez!

Recomendado: