Sensor táctil capacitivo y Raspberry PI: cableado TTP223 y código Python

El sensor táctil capacitivo (TTP223) y Raspberry PI pueden mantener una entrada táctil para que su programa se ejecute solo a pedido del usuario. A diferencia de los botones de interruptor, son un poco más caros, pero aseguran una mayor fiabilidad y precisión.

Este tutorial le mostrará cómo usar un sensor táctil capacitivo (TTP223) con Raspberry PI y Python.

Cómo funcionan los sensores táctiles capacitivos

A medida que los dispositivos táctiles mejoraron considerablemente desde el año 2000, las primeras pantallas táctiles, que usaban tecnología resistiva, se reemplazaron completamente por pantallas capacitivas. Ambas tecnologías táctiles utilizan un flujo de corriente que se modifica con el toque de un dedo, ya que el dedo (como todas las partes del cuerpo humano, es altamente conductivo). Tenga en cuenta que la cantidad muy baja de corriente que fluye en estos dispositivos los hace seguros para su uso directo.

Los dispositivos táctiles resistivos utilizan el objeto táctil (el dedo) para cerrar un puente dentro de su circuito interno. Por lo general, esto sucede con piezas mecánicas que se mueven bajo presión. El toque da como resultado un flujo eléctrico que genera un resultado positivo. Cuando no se presiona, el circuito permanece abierto, por lo que NO hay flujo eléctrico:

Los dispositivos táctiles capacitivos, por otro lado, no incluyen partes móviles. Funcionan basándose en que el cuerpo humano actúa como un condensador. Entonces, todavía están compuestos por dos electrodos: las placas del capacitor (uno de los electrodos) y una segunda placa representada por dos objetos, el entorno del electrodo sensor (C0) y el otro un objeto conductor como un dedo humano ( CONNECTICUT).

Cuando un objeto conductor toca el sensor, el circuito medirá y detectará un cambio en la capacitancia, convirtiéndolo en una señal de disparo.

Se puede encontrar una buena explicación en este artículo de sensores táctiles de electronicshub.org.

Lo que necesitamos

Como de costumbre, sugiero agregar desde ahora a su carrito de compras de comercio electrónico favorito todo el hardware necesario, para que al final pueda evaluar los costos generales y decidir si continúa con el proyecto o los elimina del carrito de compras. Entonces, el hardware será solo:

Consulta precios de hardware en los siguientes enlaces:

Procedimiento paso a paso

Diagrama de cableado de TTP223 y Raspberry PI

Prepare las conexiones entre su sensor táctil capacitivo (TTP223) y Raspberry PI como se muestra en la siguiente imagen, de acuerdo con el pinout de Raspberry PI (que es el mismo que el pinout cero de Raspberry PI):

raspberry pi
CLAVO
TP223 táctil
PIN del sensor
GPIO17 SIG
+3,3V (o 5V) vcc
TIERRA TIERRA

No puedo mostrar imágenes «en vivo» de mi cableado, ya que usaré mi placa CrowPi2 que tiene cableado incorporado, pero el proceso de cableado debería ser simple ya que solo se necesitan 3 cables.

Preparar sistema operativo

Comience con la instalación del sistema operativo. Puede instalar Raspberry PI OS Lite para un sistema operativo rápido y sin periféricos o también puede trabajar con Raspberry PI OS Desktop, en este caso utilizando su terminal interno.

Actualice su sistema operativo. Desde la terminal, usa los siguientes comandos:

sudo apt update -y && sudo apt upgrade -y

La instalación del sistema operativo Raspberry PI ya debería incluir el paquete RPI.GPIO (de lo contrario, puede instalarlo con el comando «sudo apt install python3-rpi.gpio»).

Para usar el sensor TP223 con Raspberry PI no necesitamos paquetes específicos, por lo que podemos pasar directamente al código Python.

Obtener mi secuencia de comandos de Python -ttp223

El sensor táctil capacitivo funciona de una manera muy simple, ya que su salida SIG aumentará a 1 (alto) una vez que el sensor detecte un toque. Por otro lado, permanecerá en 0 (bajo) cuando no se toque,

Puede obtener mi código de prueba directamente en su Raspberry PI con el siguiente comando:

wget https://revhardware.com/download/python/ttp223/-ttp223.py

Las siguientes líneas explicarán cómo funciona este código.

Comenzamos, como de costumbre, importando los módulos requeridos

import time import RPi.GPIO as GPIO

En las siguientes líneas definimos el pin Raspberry PI asociado al TP223 SIG y lo gestionamos con una variable. Es una forma conveniente ya que en caso de que necesite cambiar el pin RPI, lo editará aquí y todo el código seguirá funcionando.

También configuramos el modo GPIO en BCM (nombre de Broadcom) y el PIN mencionado anteriormente para generar:

touch_pin = 17 GPIO.setmode(GPIO.BCM) GPIO.setup(touch_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

Ahora, usaré una función personalizada. A decir verdad, la detección táctil es realmente simple de detectar, ya que coincide con el estado de GPIO que sube a alto. Pero usar una función personalizada que describa cuál es el estado es, en mi opinión personal, una forma elegante de codificar, ya que hace que el código sea realmente fácil de entender.

Entonces, mi función personalizada, llamada «touch_det()», usa como entrada el número de pin SIG y devuelve:

  • un valor alto («1», que para python también significa «Verdadero») si el sensor detecta un toque
  • un valor bajo («0», que para python también significa «Falso») si el sensor no detecta un toque
def touch_det(pin):     touch=GPIO.input(pin)     return touch

El ciclo principal en este código de prueba simplemente verificará si el sensor detecta un toque en la declaración «IF». Si se cumple esta condición, imprime en el shell el Touch DateTime y una advertencia de «Touch Detected». Un retraso de tiempo de 0,2 segundos hará que la advertencia táctil sea legible para los ojos humanos, ya que sin ella leerá una gran cantidad de advertencias de detección en cada toque:

try:     while True:         if touch_det(touch_pin): print('['+time.ctime()+'] - '+'Touch Detected')         time.sleep(0.2)

Finalmente, la declaración «excepto» cerrará la ejecución del script en CTRL+C presionando en su teclado, para que el script termine limpiando el estado de GPIO:

except KeyboardInterrupt:   print('interrupted!')   GPIO.cleanup()

Ejecute el script de Python -ttp223.py

Puede ejecutar este script desde una terminal con el comando «python3 -ttp223.py». Dará como resultado advertencias táctiles solo cuando toque el sensor:

pi@raspberrypi:~ € python3 rpi-pir.py [Sun Sep  4 11:50:46 2022] - Touch Detected [Sun Sep  4 11:50:47 2022] - Touch Detected [Sun Sep  4 11:50:48 2022] - Touch Detected

Como se dijo, puede detener el script presionando CTRL+C.