Raspberry Pi - Capteur Tactile

Ce tutoriel vous explique comment utiliser le capteur tactile capacitif avec le Raspberry Pi. En détail, nous allons apprendre :

Préparation du matériel

1×Raspberry Pi 4 Model B
1×Touch Sensor
1×Jumper Wires
1×(Optional) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur tactile

Un capteur tactile capacitif, également appelé bouton tactile ou interrupteur tactile, est fréquemment utilisé pour faire fonctionner des appareils (par exemple, une lampe tactile). Il a le même but qu'un bouton. De nombreux appareils modernes en sont équipés à la place d'un bouton, car il donne au produit une apparence plus soignée.

La disposition des broches du capteur tactile

Le capteur tactile a trois broches :

  • Broche GND : Celle-ci doit être connectée à la masse (0V).
  • Broche VCC : Celle-ci doit être connectée au VCC (5V ou 3.3V).
  • Broche SIGNAL : Ceci est une broche de sortie. Elle sera BASSE quand elle n'est pas touchée et HAUTE quand elle est touchée. Cette broche doit être connectée à une broche d'entrée du Raspberry Pi.
Brochage du capteur tactile

Comment ça marche

  • Lorsque le capteur n'est pas touché, la broche SIGNAL du capteur sera à un niveau BAS.
  • Cependant, lorsque le capteur est touché, la broche SIGNAL du capteur sera à un niveau HAUT.

Raspberry Pi - Capteur Tactile

La broche SIGNAL du capteur tactile est reliée à une broche d'entrée d'un Raspberry Pi.

En examinant l'état d'un port GPIO de Raspberry Pi (configuré comme port d'entrée), nous pouvons détecter si le capteur tactile a été activé ou non.

Diagramme de câblage

Schéma de câblage du capteur tactile Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield

Comment programmer pour un capteur tactile

  • Configure la broche Raspberry Pi en mode entrée numérique avec la fonction GPIO.setup().
GPIO.setup(TOUCH_PIN, GPIO.IN) # Configurer la broche tactile comme entrée
  • Utilise la fonction GPIO.input() pour déterminer l'état de la broche du Raspberry Pi.
touch_state = GPIO.input(TOUCH_PIN)

Il existe deux cas d'utilisation courants pour le capteur tactile :

  • Le premier : Si l'état d'entrée est HAUT, effectuez une action. Si l'état d'entrée est BAS, effectuez l'action opposée.
  • Le second : Si l'état d'entrée change de BAS à HAUT (ou de HAUT à BAS), effectuez une action.

Selon l'application, l'un de ceux-ci est sélectionné. Par exemple, lors de l'utilisation d'un capteur tactile pour contrôler une LED :

  • Si l'objectif est d'allumer la LED lorsque le capteur est touché et de l'éteindre lorsque le capteur n'est pas touché, le premier cas d'utilisation doit être utilisé.
  • Si le but est de faire alterner la LED entre allumée et éteinte chaque fois que le capteur est touché, le deuxième cas d'utilisation doit être utilisé.

Code Raspberry Pi pour capteur tactile

Nous allons apprendre deux exemples de code :

  • Raspberry Pi lit la valeur du capteur tactile et l'affiche dans le Terminal.
  • Raspberry Pi vérifie si le capteur est touché ou relâché.

Raspberry Pi lit la valeur du capteur tactile et l'affiche dans le terminal

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à Internet si vous devez installer des bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, voir Installation du logiciel - Raspberry Pi.
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Voir comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Créez un fichier script Python touch_sensor.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-touch-sensor import RPi.GPIO as GPIO # Set the GPIO mode to BCM (Broadcom SOC channel numbering) GPIO.setmode(GPIO.BCM) # Set the pin number connected to the touch sensor TOUCH_PIN = 12 # Set the GPIO pin as an input GPIO.setup(TOUCH_PIN, GPIO.IN) try: while True: # Read the state from the touch sensor touch_state = GPIO.input(TOUCH_PIN) # The touch sensor outputs LOW (0) when not touched, and HIGH (1) when touched if touch_state == GPIO.LOW: print("Touch sensor is not touched.") else: print("Touch sensor is touched!") except KeyboardInterrupt: # Clean up the GPIO settings on program exit GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
python3 touch_sensor.py
  • Posez votre doigt sur le capteur puis retirez-le.
  • Vérifiez le résultat dans le Terminal.
PuTTY - Raspberry Pi
Touch sensor is not touched. Touch sensor is not touched. Touch sensor is not touched. Touch sensor is touched! Touch sensor is touched! Touch sensor is touched! Touch sensor is touched! Touch sensor is touched! Touch sensor is touched! Touch sensor is not touched. Touch sensor is not touched.

Le script s'exécute en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

Le Raspberry Pi détecte si le capteur est touché ou relâché.

Étapes rapides

  • Créez un fichier de script Python TO_BE_UPDATED.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-touch-sensor import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM (Broadcom SOC channel numbering) GPIO.setmode(GPIO.BCM) # Set the pin number connected to the touch sensor TOUCH_PIN = 12 # Set the GPIO pin as an input GPIO.setup(TOUCH_PIN, GPIO.IN) # Variable to track the touch sensor state prev_touch_state = GPIO.LOW # Assuming the sensor is not touched initially try: while True: touch_state = GPIO.input(TOUCH_PIN) if touch_state != prev_touch_state: if touch_state == GPIO.HIGH: # Sensor touched event print("Touch sensor is touched!") else: # Sensor released event print("Touch sensor is released!") prev_touch_state = touch_state time.sleep(0.1) # A small delay to debounce the input except KeyboardInterrupt: # Clean up the GPIO settings on program exit GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
python3 touch_sensor_events.py
  • Touchez et maintenez votre doigt sur le capteur.
  • Vérifiez la sortie dans le Terminal.
PuTTY - Raspberry Pi
Touch sensor is touched!
  • Retirez votre doigt du capteur.
  • Vérifiez la sortie sur le terminal.
PuTTY - Raspberry Pi
Touch sensor is touched! Touch sensor is released!

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!