Raspberry Pi Pico - Capteur de mouvement

Ce guide vous montre comment utiliser le capteur de mouvement HC-SR501 avec le Raspberry Pi Pico pour détecter une personne. Nous aborderons les détails suivants :

Capteur de mouvement Raspberry Pi Pico

Préparation du matériel

1×Raspberry Pi Pico W
1×Raspberry Pi Pico Alternativement:
1×Câble Micro USB
1×Capteur de mouvement HC-SR501
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour Raspberry Pi Pico

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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 de mouvement HC-SR501

Capteur de mouvement HC-SR501

Le capteur PIR HC-SR501 est un détecteur de mouvement qui peut détecter les mouvements humains ou animaux. Il est utilisé dans de nombreuses applications, notamment :

  • Éclairage automatique : Allumer et éteindre les lumières en fonction du mouvement.
  • Contrôle des portes : Ouverture et fermeture automatiques.
  • Contrôle des escaliers mécaniques : Activation ou désactivation des escaliers mécaniques.
  • Systèmes de sécurité : Détection des intrus.

Plan de brochage

Le capteur de mouvement HC-SR501 a trois broches.

  • Broche GND : Connectez à GND (0 V).
  • Broche VCC : Connectez à VCC (5 V).
  • Broche OUTPUT : Émet un signal bas lorsque aucun mouvement n'est détecté et un signal haut lorsqu'un mouvement est détecté. Connectez cette broche à une broche d'entrée sur l'ESP32.

Le HC-SR501 est équipé d'un cavalier et de deux potentiomètres qui permettent d'ajuster ses réglages. Pour plus de détails, reportez-vous à l'Utilisations avancées du capteur de mouvement.

Pinout du capteur de mouvement HC-SR501

Comment cela fonctionne

Le capteur HC-SR501 détecte le mouvement en détectant les changements dans le rayonnement infrarouge. Pour que le capteur soit déclenché, un objet doit remplir deux conditions:

  • Il doit être en mouvement.
  • Il doit émettre un rayonnement infrarouge.

En conséquence :

  • Les objets en mouvement qui n'émettent pas de rayonnement infrarouge (comme un jouet robot) ne seront pas détectés.
  • Des objets qui émettent un rayonnement infrarouge mais restent immobiles (comme une personne qui reste immobile*) ne seront pas détectés.

Les humains et les animaux émettent naturellement des rayons infrarouges, ce qui les rend détectables par le capteur.

Comportement de la broche de sortie:

  • Aucun mouvement: Lorsqu'aucune personne ou aucun animal n'est dans la plage de détection du capteur, la broche de sortie reste à l'état bas.
  • Mouvement détecté: Lorsqu'une personne ou un animal entre dans la plage de détection, la broche de sortie passe de bas à haut.
  • Mouvement terminé: Lorsque la personne ou l'animal quitte la plage de détection, la broche de sortie revient de haut à bas.

La vidéo explique le fonctionnement de base du capteur de mouvement. Dans des situations réelles, son fonctionnement peut différer légèrement en fonction de ses réglages, comme indiqué dans la section Utilisations avancées.

Raspberry Pi Pico - Capteur de mouvement HC-SR501

Lorsque vous configurez une broche du Raspberry Pi Pico comme entrée numérique, elle peut indiquer si l’objet connecté est dans un état bas ou haut.

Connectez la broche du Raspberry Pi Pico à la broche de sortie du capteur HC-SR501. Ensuite, utilisez du code sur le Raspberry Pi Pico pour lire l'état de la broche de sortie et détecter le mouvement.

Diagramme de câblage

Schéma de câblage du capteur de mouvement Raspberry Pi Pico

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Paramètre initial

Time Delay AdjusterScrew it in anti-clockwise direction fully.
Detection Range AdjusterScrew it in clockwise direction fully.
Repeat Trigger SelectorPut jumper as shown on the image.
Réglage initial du capteur de mouvement Arduino.

Comment programmer un capteur de mouvement

  • Configurer une broche du Raspberry Pi Pico en mode d'entrée numérique.
HC_SR501 = Pin(SENSOR_PIN, Pin.IN)
  • Lire l'état de la broche de sortie du capteur.
motion_state = HC_SR501.value()

Code du Raspberry Pi Pico

/* * Ce code Raspberry Pi Pico a été développé par newbiely.fr * Ce code Raspberry Pi Pico 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-pico/raspberry-pi-pico-motion-sensor */ from machine import Pin import utime # Constants for pin and state SENSOR_PIN = 0 # The Raspberry Pi Pico pin (GP0) connected to the HC-SR501 motion sensor # Setup the motion sensor pin HC_SR501 = Pin(SENSOR_PIN, Pin.IN) # Initialize state variables motion_state = 0 prev_motion_state = 0 # Main loop while True: prev_motion_state = motion_state # Store the previous state motion_state = HC_SR501.value() # Read the current state from the motion sensor # Check for motion detection (transition from LOW to HIGH) if prev_motion_state == 0 and motion_state == 1: print("Motion detected!") # Optional: Additional actions when motion is detected # Check for motion cessation (transition from HIGH to LOW) elif prev_motion_state == 1 and motion_state == 0: print("Motion stopped!") # Optional: Additional actions when motion stops utime.sleep(0.1) # Sleep for 100 milliseconds

Étapes rapides

Veuillez suivre ces instructions étape par étape :

  • Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
  • Assurez-vous que le firmware MicroPython est installé sur votre Raspberry Pi Pico.
  • Si c'est la première fois que vous utilisez un Raspberry Pi Pico, consultez le tutoriel Raspberry Pi Pico - Premiers pas. pour des instructions détaillées.
  • Connectez le Raspberry Pi Pico au capteur de mouvement HC-SR501 selon le schéma fourni.
  • Connectez le Raspberry Pi Pico à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Thonny sur votre ordinateur.
  • Dans l'IDE Thonny, sélectionnez l'interpréteur MicroPython (Raspberry Pi Pico) en vous rendant dans Outils Options.
  • Dans l'onglet Interpréteur, sélectionnez MicroPython (Raspberry Pi Pico) dans le menu déroulant.
  • Assurez-vous que le port correct est sélectionné. L'IDE Thonny devrait détecter automatiquement le port, mais vous devrez peut-être le sélectionner manuellement (par exemple, COM3 sur Windows ou /dev/ttyACM0 sur Linux).
  • Copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Thonny.
  • Enregistrez le script sur votre Raspberry Pi Pico en:
    • Cliquez sur le bouton Enregistrer, ou utilisez les touches Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, vous verrez deux sections : Cet ordinateur et Raspberry Pi Pico. Sélectionnez Raspberry Pi Pico
    • Enregistrez le fichier sous main.py
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script. Le script s'exécutera.
  • Approchez votre main du capteur.
  • Consultez le message dans le Shell en bas de Thonny.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Motion detected! Motion stopped!
MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡

Si vous nommez votre script main.py et que vous le sauvegardez dans le répertoire racine du Raspberry Pi Pico, il s'exécutera automatiquement à chaque fois que le Pico sera alimenté ou réinitialisé. Cela est utile pour les applications autonomes qui doivent commencer à s'exécuter immédiatement après la mise sous tension. Si vous nommez votre script avec un autre nom que main.py, vous devrez l’exécuter manuellement depuis le shell de Thonnys.

Vidéo

Utilisations avancées

Cette section est consacrée à des connaissances approfondies. NE vous inquiétez pas si vous ne comprenez pas. Ignorez cette section si elle vous surcharge, et revenez un autre jour. Continuez à lire les sections suivantes.

Nous pouvons modifier les paramètres du capteur en utilisant un cavalier et deux potentiomètres, comme expliqué précédemment.

Réglage de la portée de détection

Ce potentiomètre règle la plage de détection (d'environ 3 mètres à 7 mètres).

  • Lorsqu'il est tourné complètement dans le sens des aiguilles d'une montre, la distance de détection est d'environ 3 mètres.
  • Lorsqu'il est tourné complètement dans le sens antihoraire, la distance de détection est d'environ 7 mètres.
Portée de détection du capteur de mouvement

Nous pouvons ajuster les réglages du potentiomètre pour obtenir une distance comprise entre 3 mètres et 7 mètres.

Régleur de délai

Ce bouton modifie le temps de retard.

  • Si vous le faites tourner complètement dans le sens des aiguilles d'une montre, le délai sera d'environ 5 minutes.
  • Si vous le faites tourner complètement dans le sens inverse des aiguilles d'une montre, le délai sera d'environ 3 secondes.

Ensuite, nous décrirons ce qu'est le délai temporel et sa connexion à Repeat Trigger.

Capteur de mouvement – ajuster le délai

Sélecteur de répétition du déclencheur

Ce cavalier de pontage permet de choisir un mode de déclenchement : déclenchement unique ou déclenchement répété.

Sélection du déclencheur du capteur de mouvement

Nous appellerons le réglage de délai (que vous pouvez modifier à l'aide de l'ajusteur de délai) time_delay. Imaginez-vous en train de vous déplacer dans la zone de détection du capteur pendant une longue période, que nous appellerons motion_time (ceci est plus long que time_delay).

  • En mode déclenchement unique, la broche OUTPUT passe de LOW à HIGH à plusieurs reprises. Elle reste HIGH pendant une durée appelée "time_delay" et LOW pendant une période constante de 3 secondes.
mode à déclenchement unique du capteur de mouvement
  • La broche OUTPUT reste en état haut pendant la durée du temps de mouvement plus le délai supplémentaire.
mode de déclenchement répétable du capteur de mouvement

Tests

Essayons les différents réglages de déclenchement. Tout d'abord, tournez le régleur de délai complètement sur la gauche pour régler le temps de retard à 3 secondes.

  • Mode de déclenchement unique :
    • Réglez le cavalier pour le mode de déclenchement unique.
    • Déplacez votre main devant le capteur pendant 10 secondes.
    • Retirez votre main de la zone du capteur.
    • Attendez 3 secondes, puis regardez le moniteur série pour voir les résultats.
    Shell x
    >>> %Run -c $EDITOR_CONTENT
    MPY: soft reboot Motion detected! Motion stopped! Motion detected! Motion stopped! Motion detected! Motion stopped!
    MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡
    • Mode déclencheur répétable :
      • Placez le cavalier pour démarrer le mode déclencheur répétable.
      • Continuez à déplacer votre main devant le capteur pendant 10 secondes.
      • Retirez votre main du capteur.
      • Attendez 3 secondes, puis regardez le moniteur série pour afficher la sortie.
      Shell x
      >>> %Run -c $EDITOR_CONTENT
      MPY: soft reboot Motion detected! Motion stopped!
      MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡

      En mode de déclenchement unique, le capteur s'allume deux ou trois fois. En mode de déclenchement répétable, il s'allume une seule fois.

      ※ Note:

      Pendant une période d'inactivité de 3 secondes, le capteur ne peut pas détecter de mouvement. Cela signifie qu'il n'est pas actif, mais cela ne pose généralement pas de problèmes.

      Il est recommandé d'utiliser le mode de déclenchement répétable.

      Dans les usages pratiques :

      • Les dispositifs ou machines s'allument généralement lorsqu'ils détectent une personne à proximité.
      • Les dispositifs ou machines ne s'éteignent pas immédiatement lorsque la personne s'éloigne. Ils s'éteignent après un court délai.

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !