IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Détecteur mobile de présence humaine


Sujet :

Arduino

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 21
    Par défaut Détecteur mobile de présence humaine
    Bonjour,

    Les geeks, j'en appelle à votre aide sur un projet où je veux me servir d'un capteur PIR dans un prototype de montre - bracelet et donc destiné à être en mouvement. En fait j'ai 2 soucis:
    - Le 1er: c'est ce je ne veux pas que mon système réagisse à la présence du porteur du bracelet..
    Ce que je trouve difficile à faire parce que d'après mes recherches, le PIR peut détecter une présence humaine dans un cône de 120° sur une distance de 3 à 5 mètres.
    - Le 2e: c'est que je veux pouvoir réagir en fonction de la distance à laquelle la présence est détectée.
    Je sais que la distance de détection est réglable manuellement grâce à un potentiomètre sur le PIR entre 3 et 5 mètres, mais pour mon application 3 mètres est un énorme comme distance.
    De ce fait, je me demande s'il n'y aurait pas moyen de pouvoir déterminer dans mon code la distance à laquelle la présence humaine a été détectée et réagir en fonction..


    Donc en gros, je voudrais contrôler ma distance de détection au sein de mon programme: pour d'une part éviter que le système réagisse pour les toutes petites distances (épargner le porteur) et en même temps qu'il réagisse pour les autres présences à une distance que je pourrais contrôler..

    Vraiment toutes vos suggestions seraient les bienvenues.
    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 883
    Par défaut
    Ces capteurs sont "passifs": il n’y a pas de diode infrarouge pour éclairer une certaine zone de surveillance en regardant le flux de retour -> le capteur est autonome et donc on n'a pas beaucoup de contrôle sur ce que l'on regarde.

    Le potentiomètre de sensibilité joue plus ou moins sur la distance. En pratique, c'est plus le flux IR qui va jouer : un gros truc chaud loin qui bouge sera aussi détecté qu'un petit machin chaud près du détecteur (le détecteur n'en sait rien) et vous ne pourrez pas descendre sous 3m - c'est assez lié au capteur qui utilise l’effet pyro-électrique (cristaux qui sont naturellement polarisés et qui peuvent générer une tension lorsqu’ils sont soumis à une variation de température)

    Vous pouvez réduire cependant le cône en obstruant (un petit coup de typex ou marqueur noir) certaines des petites facettes des lentilles de fresnel qui sont sur la coque plastique entourant le capteur. ça empêchera à cette face de rediriger son flux infrarouge vers le détecteur.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 21
    Par défaut
    Je comprends.
    Puisque ce n'est pas possible, je pense à autre chose:
    Serait - il possible dans mon programme de pouvoir savoir combien de détection viennent d'avoir lieu?
    Je m'explique: puisque le porteur du dispositif sera forcement détecté, déterminer si une autre détection a lieu en plus de la première permettrait de savoir quand réagir..

    Qu'en pensez - vous?

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 883
    Par défaut
    Citation Envoyé par Agbgio9 Voir le message
    Je comprends.
    Serait - il possible dans mon programme de pouvoir savoir combien de détection viennent d'avoir lieu
    Pas avec ce type de capteur. Les faces polygonales du capuchon sont toute équipées de petites rayures (fresnel) et redirigent le flux IR vers les 2 fentes du capteur. Arrivée sur le capteur tous les flux sont mélangés et on ne sait pas de quelle(s) face(s) le rayon provient.

    Ces capteurs sont produits en très grande série pour faire des détecteurs de présence, quelqu’un se déplace dans le cône, ça déclenche un relais qui alllume une lumière. Faut pas leur en demander plus..

    En poussant un peu et en obstruant toutes les faces sauf celle pile du dessus et en montant le capteur sur un système motorisé capable de pointer dans plein de direction et qui lui ferait tester donc un cône restreint, vous pourriez en combinant la connaissance de la position des moteurs et la détection décider s’il y a quelqu’un dans un axe donné..

    Mais ça me parait un gros bazar (et pas sûr que ça marche bien) pour détecter si une personne ne garde pas sa mesure barrière de distance COVID (si c’est cela que vous voulez bidouiller )

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 21
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Pas avec ce type de capteur.
    ......
    Mais ça me parait un gros bazar (et pas sûr que ça marche bien) pour détecter si une personne ne garde pas sa mesure barrière de distance COVID (si c’est cela que vous voulez bidouiller )
    Oui en effet de cette application qu'il est question..
    Que me conseilleriez vous donc..?😖

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 883
    Par défaut
    Citation Envoyé par Agbgio9 Voir le message
    Que me conseilleriez vous donc..?
    pour mesurer une distance il faut un capteur de distance.

    il y a des technos en "ultra son" qu'on voit partout dans les petits robots
    Nom : US.png
Affichages : 665
Taille : 163,3 Ko

    des capteurs "time of flight" (infrarouge qui ne va pas loin du tout ou laser genre VL53L0X)
    Nom : ToF.png
Affichages : 651
Taille : 185,2 Ko Nom : ToF2.png
Affichages : 644
Taille : 321,0 Ko

    des "Lidars" genre "TF Mini LiDAR"
    Nom : Lidar.png
Affichages : 644
Taille : 43,4 Ko

    Ils sont plus ou moins directionnels (avec un cône plus ou moins large suivant la techno - les ultra-sons s'étalent, les lasers restent très concentrés).

    Monter un capteur de ce type sur le poignet n'est pas forcément le meilleur endroit car vous bougez pas mal vos mains et donc ça pointera un peu partout...
    Le monter sur une casquette serait sans doute plus approprié, ça aurait le mérite de "regarder" là où l'utilisateur regarde.

    ça vous dit s'il y a un obstacle à une certaine distance mais pas si c'est un corps chaud...

    en le montant sur une casquette, un PIR serait aussi envisageable, l'utilisateur ne serait plus vu, mais vous n'aurez qu'une détection de présence à une distance approximative que vous ne mesurez pas vraiment.

    en combinant les deux, vous aurez (avec un peu de chance si vous avez réduit le cône du PIR pour l'aligner avec le cône du capteur de distance) la distance du corps chaud détecté par le PIR.

    ————

    Si vous regardez l'approche fournie par Google et Apple et utilisée par un certains nombre de gouvernements, ils se sont dit qu'il y a vraiment bcp de monde avec des smartphone et donc c'est votre smartphone qui "regarde" en bluetooth s'il y a un autre smartphone pas trop loin émettant un signal disant "J'ai l'application COVID, voici un identifiant anonyme à enregistrer si tu restes près de moi assez longtemps". ça fonctionne même dans votre poche. Ensuite si quelqu'un de malade est détecté, il peut décider de charger sa liste de N° anonymes sur le site du gouvernement et pour toutes les application aller voir de temps si c'est un N° anonyme que l'on a vu. Si vous vous retrouvez dans cette liste dans ce cas l'application vous conseillera d'aller voir un docteur.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 21
    Par défaut
    Citation Envoyé par Agbgio9 Voir le message
    Serait - il possible dans mon programme de pouvoir savoir combien de détection viennent d'avoir lieu?
    Je crois avoir une idée: configurer mon PIR en mode détection multiple.
    Puisqu'en principe, ayant réglé mon potentiomètre de la durée du niveau haut sur 3sec, le pin de détection devrait être à l'état haut au max 3sec, dans le cas d'une seule détection de mouvement. Et s'il y a plusieurs détections, les 3sec seront évaluées à partir de la détection du dernier mouvement et donc techniquement le pin sera HIGH pendant bien plus que 3sec.
    Je me dit qu'il suffit donc de compter le temps pendant lequel le pin du capteur restera au niveau haut à partir d'une première détection et de gérer le reste avec un peu d'algo..

    Qu'en pensez vous?
    Je sais que celà impliquerait de déclencher un TIMER à partir de la première détection, mais je ne suis pas du tout amatteur de l'usage des interruptions internes. Un coup de pouce me serait salutaire à ce sujet

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 883
    Par défaut
    Citation Envoyé par Agbgio9 Voir le message
    Je me dit qu'il suffit donc de compter le temps pendant lequel le pin du capteur restera au niveau haut à partir d'une première détection et de gérer le reste avec un peu d'algo..

    Qu'en pensez vous?
    J’en pense que je ne vois pas comment ça règle votre problème de distance ou d’auto détection

    Citation Envoyé par Agbgio9 Voir le message
    Je sais que celà impliquerait de déclencher un TIMER à partir de la première détection, mais je ne suis pas du tout amatteur de l'usage des interruptions internes. Un coup de pouce me serait salutaire à ce sujet
    Quand on compte des temps en secondes pas la peine d’utiliser les interruptions. Votre arduino tourne super rapidement donc utilisez juste millis et digitalRead

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 21
    Par défaut
    Citation Envoyé par Jay M Voir le message
    J’en pense que je ne vois pas comment ça règle votre problème de distance ou d’auto détection
    Justement, çà ne règlera pas le problème de distance mais celui d'auto détection peut être.
    Supposant que le capteur détecte déjà la présence de celui qui le porte, seulement un délai de 3sec en niveau haut sera déclenché; mais si pendant ce délai un autre présence est détectée, le niveau haut durera un peu plus et son délai devrait être pris en compte à partir de l'instant de la dernière détection. C'est bien comme çà que çà marche non, le mode détection multiple? Sauf si je me goure..

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 21
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Votre arduino tourne super rapidement donc utilisez juste millis et digitalRead
    Oui mais est ce que millis permet de compte le temps à partir de l'exécution de l'instruction qui la précède?
    Je me dis que je devrais compter 3sec juste à partir de ma détection..
    Ou en disant: "Votre arduino tourne super rapidement" vous sous entendez qu'une telle précision est inutile??

  11. #11
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 883
    Par défaut
    Citation Envoyé par Agbgio9 Voir le message
    Justement, çà ne règlera pas le problème de distance mais celui d'auto détection peut être.
    Supposant que le capteur détecte déjà la présence de celui qui le porte, seulement un délai de 3sec en niveau haut sera déclenché; mais si pendant ce délai un autre présence est détectée, le niveau haut durera un peu plus et son délai devrait être pris en compte à partir de l'instant de la dernière détection. C'est bien comme çà que çà marche non, le mode détection multiple? Sauf si je me goure..
    Le capteur PIR est un capteur capable de détecter de la chaleur en mouvement (détecte les variations de rayonnements infrarouge dans son champ de vision) et en déduit une présence.

    Le capteur possède deux modes de fonctionnement :

    Un mode de détection unique qui permet de détecter un seul mouvement à la fois. On détecte, on déclenche, ensuite ça retombe à 0 pendant un certain temps pendant lequel le capteur est inactif même si la personne est toujours en mouvement dans le champ d'action du capteur.

    Un mode de détection multiple qui permet de détecter plusieurs mouvements pendant la phase où le capteur est déjà déclenché donc de relancer le compteur du temps à l'état haut à partir du dernier mouvement détecté. Dans ce cas la broche reste active tant qu'il y a du mouvement devant le capteur et quelques secondes ensuite.

    ==> mais ce mouvement peut être celui du porteur du bracelet ou d'une autre personne - le capteur n'en sait rien, il ne voit qu'un flux de chaleur en mouvement....

    Donc non ça ne marchera pas.

    Du moment que votre porteur est dans le champ d'action du PIR, vu le fonctionnement de base du capteur vous ne pouvez rien faire ==> il faut virer le porteur du champ de détection, soit en obstruant certaine partie du capteur pour qu'il soit plus directionnel, soit en l'installant à un endroit où il ne voit pas le porteur (d'où l'idée de le fixer sur une casquette).

Discussions similaires

  1. client/serveur : synchronisation, tempo et ping de présence
    Par balibalo dans le forum Développement
    Réponses: 3
    Dernier message: 21/06/2004, 11h32
  2. [Débutant]Programmer un mobile en java
    Par Pill_S dans le forum Java ME
    Réponses: 3
    Dernier message: 28/05/2004, 13h06
  3. Réponses: 11
    Dernier message: 02/04/2004, 18h33
  4. Détecter la présence de MSDE
    Par Drahu dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/03/2004, 17h04
  5. Internet sur PC portable depuis Téléphone Mobile (via GSM)
    Par krugernet dans le forum Développement
    Réponses: 4
    Dernier message: 16/11/2003, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo