Aller au contenu


Photo
- - - - -

Piège à rats avec trappe actionnée par un capteur

Piège Rats Trappe capteur

43 réponses à ce sujet

#1 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 23 mars 2022 - 11:54

Bonjour à tous,

 

Ma demande rejoint dans les grandes lignes celle postée le 1er mai 2020 par "ntds" à laquelle se sont efforcé de répondre "oracid" , "mike118" et "sandro".

Je croyais, Ô miracle, en ouvrant ce post découvert par hasard en tapant sur Google « actionner un servo avec un capteur », trouver la solution que je cherchais puisque comme "ntds" je cherche à actionner un servomoteur pour faire un mouvement de 0 à 90° et revenir immédiatement à sa place en utilisant un capteur de présence fonctionnant de jour comme de nuit.

Dommage que la demande de "ntds" n’ait pas abouti, vos suggestions ne l’ayant pas satisfait à ce que j’ai compris. Donc vous n’avez pu développer.

Au fur et à mesure des nouvelles recherches entreprises sur le Net, j’ai compris qu’il me fallait investir dans un matériel adapté, c’est pourquoi j’ai acheté (avant de découvrir votre site

  • 1 carte de développement UNO R3 compatible (Arduino non officielle mais ça ne devrait pas causer de problème)
  • 1 Shield L298P compatible Arduino R3 ( au cas où)
  • 1 servo 20kg, alimentation 4,8-6,6V (excusez du peu)
  • 1 Adaptateur secteur 9V 1A + 1 connecteur pile 9V (Je privilégie l'adaptateur secteur)

 

 En revanche, je n’ai pas acheté le capteur ne sachant pas lequel conviendrait dans mon cas de figure.

 

Je précise que je suis un papi de 78 ans ayant bossé 21 ans dans un bureau d’étude en construction métallique pour la mise en œuvre du béton à l'aide de coffrages, et 20 ans comme technico-commercial dans la même branche, je n’y connais rien à l’électronique, ni à la programmation informatique mais j’ai constaté que pour mon projet, je devrai programmer ce qui me parait assez compliqué mais ce n'est peut être qu'une impression.

 

Voilà mon projet :

  

Etant envahi par des rats qui viennent piller mon poulailler, j’avais tenté de les capturer à l’aide d’un piège à trappe munie d’un contrepoids, mais sans résultat.

Les captures vidéo que j’ai réalisées la nuit montrent. que lorsqu’ils viennent sur la trappe au moindre frémissement de celle-ci, ils détalent. C'était sans compter avec leur méfiance.

Je souhaite conserver le principe de la trappe mais en l’aménageant différemment.

 

Ce qu’il faudrait pour le bien, c’est une trappe que commanderait un capteur. Dès que les "bébètes" s’engageraient complètement sur la trappe, pour rejoindre une réserve de nourriture aménagée pour les appâter, le capteur disposé sur une paroi du tunnel d'accès à la mangeoire à proximité de cette dernière, détecterait leur museau et enverrait un signal au servo qui actionnerait immédiatement la trappe envoyant les rongeurs dans une caisse située juste en dessous. La trappe se refermant aussitôt avec une toute petite temporisation (3/4 de seconde), le temps qu'ils arrivent au fond, les rats se retrouveraient "piégés".

 

Ce qui m’a incité à poursuivre ce projet après l'échec du piège avec contrepoids sur la trappe, c’est une vidéo réalisée par un dératiseur professionnel pour un appareil qui est destiné à piéger des rats grâce à une trappe basculante commandée par un capteur de présence. (juste ce qu'il me faut mais trop chère pour moi car plus de 1500 €)

(Vu que tout le monde peut la voir, Je vous joins le lien sans pour autant en faire la pub)  

 

Je pense vous avoir tout dit de mes attentes. Je souhaite simplement recevoir les instructions qui me permettront de les concrétiser autrement dit savoir quoi faire et comment le faire sachant que ce domaine m’est complètement étranger. (Branchement et programmation de la carte de développement UNO R3)

Je compte dans un 1er temps modifier mon piège en y incorporant une trappe qui sera actionnée par un servo grâce à un capteur, avec un faisceau dont l’angle d’action  leur laisserait le temps de bien s'engager sur la trappe avant qu'elle bascule, ( quitte à disposer un cache pour éviter de détecter leur présence trop tôt).

Si le système fonctionne comme prévu, j'en ferai un 2ème, toujours sur le principe de la trappe basculant de 90°, mais qui serait actionnée par un piston linéaire (vérin ) 12V..course 150 mm (vitesse 150 mm/s)
Là aussi j'aurais besoin d'avis éclairés pour la programmation, mais on n’en est pas encore là.
A votre disposition pour tout renseignement complémentaire.

 

 

Pièces jointes :

 

Photos piège actuel (avec contrepoids) =>

piège à trappe - vue 1.jpg

Piège à trappe - vue 2.jpg

Piège à trappe - vue 3.jpg

 

Vidéo 1 : piège avec contrepoids « en service »

Fichier joint  videoPiegeRat.zip   21,49 Mo   108 téléchargement(s)

Vidéo 2 : piège avec trappe automatique (You Tube)


 

Fichier(s) joint(s)



#2 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 259 messages
  • Gender:Male

Posté 23 mars 2022 - 01:42

Bonjour,

et bienvenue!

 

Pour ceux qui le cherchent, le sujet de 2020 est celui-ci : https://www.robot-ma...pteur-presence/(la principale difficulté était que ntds voulait faire de l'industrialisation, ce qui est beaucoup plus compliqué que de faire 1 ou 2 prototypes pour un usage perso).

 

Bref, à priori, ton projet ne me semble pas trop compliqué.

 

 

Pour détecter les rats, je te propose d'utiliser un capteur de distance infrarouge : c'est un capteur qui mesure la distance de l'obstacle le plus proche dans un cône très étroit (quelques degrés) : si le rat coupe le "faisceau", la distance mesurée change, donc tu sais qu'il y a un rat. Il y en a avec différentes portées. Celui-ci (https://www.robot-ma...a02yk0f-70.html) pourrait je penses convenir (détection entre 4 et 30cm).

Je te conseilles juste de vérifier que les rats ne voient pas l'infrarouge (sinon, s'ils n'entendent pas les ultra-sons, il y a aussi des capteurs ultra-sons qui peuvent convenir, mais c'est un peu moins directif).

 

Pour le servo, est-ce que tu aurais le lien (pour vérifier s'il peut être alimenté directement depuis l'arduino, ou s'il faut un convertisseur séparé)?


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#3 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 23 mars 2022 - 02:09

Je ne connais pas ton Shield qui me semble plutôt être destiné à des moteurs à courant continu.

 

Pour des servos, actuellement, j'utilise ce Shield qui a l'avantage d'avoir un interrupteur et une alimentation 5V, intégrés. https://fr.aliexpres....21ef5e5bkbA42W

Tu as le choix entre 2 versions, l'une avec une prise d'alimentation  PH2.0-2P qui pourrait te causer quelque problème, et l'autre avec une prise PC standard.

 

Tu alimentes le tout avec une alimentation de PC portable (12V) et le tour est joué.

 

Sinon, les pièges à glue, c'est pas mal . . .



#4 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 23 mars 2022 - 02:33

Je confirme moi aussi que le projet est parfaitement réalisable. 

Et en effet il te faudra apprendre à programmer mais c'est pas si dur. 
Tu peux éventuellement commencer par lire ça : 
https://www.robot-ma...es/tuto-arduino

 1° Déjà si tu arrives à faire clignoter une led ou afficher du texte sur le moniteur série tu auras validé une première étape : " Savoir programmer ton arduino "

 2° Ensuite il te faudra " Savoir utiliser ton servomoteur "  ( Code + branchements et là il y aura éventuellement la notion d'alimentation évoquée par Sandro )

 3° Il te faudra alors " Savoir utiliser ton capteur " ( Code + branchements il faudra avoir choisi le capteur ;)

 4° Enfin il ne te restera plus qu'à assembler les deux codes précédents en un seul pour lier l'action du servomoteur au capteur. 

 5° Et pour finir il te faudra fixer l'ensemble des éléments sur ton piège et éventuellement ajuster des valeurs. 




Niveau matériel :
Sur le principe une arduino uno ça marchera pour ton besoin par contre peux tu mettre une image de ton shield pour s'assurer qu'il sera pratique pour câbler les différents éléments ? ( Sinon souvent je recommande d'utiliser une arduino nano + un shield nano   ( qui est très proche du shield proposé par oracid ) , l'avantage de ce genre de shield c'est qu'il facilite le câblage. 

Pour le servomoteur, je pense en effet qu'il risque de consommer trop par rapport au petit convertisseur présent sur la uno.. à tester ... ( il te faudra éventuellement un convertisseur 5V ... De plus on verra si l'alim 9V 1A suffit, mais je pense que pour 1 seul servomoteur ça devrait suffire ) 

Pour le capteur plusieurs capteurs différents devrait fonctionner. On peu très bien imaginer un capteur comme le propose sandro, qui fait " barrière " et si le faisceau est coupé, déclencher le piège. On peut aussi imaginer un capteur de contact comme un "microrupteur " si jamais les rats arrive à repérer l'infra rouge ... 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#5 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 26 mars 2022 - 03:57

Bonjour à tous,

Merci à vous trois pour vos messages, 

Ma réponse :

 

1 / Pour sandro

 

Capteur:

 

Dans la mesure ou il n'émet pas de lumière, les rats n'hésiteront pas à s'approcher de l'appât. Il faut donc un capteur de présence infrarouge indétectable.  

 

* Merci de me communiquer un lien correspondant.

 

Il est communément admis que les rats captent les ultrasons. Il existe d'ailleurs des systèmes à ultrasons utilisant les hautes et les basses fréquences qui ont la propriété de faire fuir les rongeurs qui ont été conçus dans ce but. On dit aussi que les rats finissent par s'y habituer préoccupés qu'ils sont avant tout par la recherche de nourriture, La gêne occasionné devient secondaire.

 

Servo: (A voir en pièce jointe)

 

J'ai posé ta question au vendeur:

 

Cet article peut-il être alimenté directement depuis une carte Arduino, ou s'il faut un convertisseur séparé?

 

Réponse du vendeur chinois: En 2 langues

 

S'il y a une sortie 5V, elle peut être alimentée directement. P(If there is a 5V output, it can be powered directly.)

V A

* Cela répond-il à ta question et justifie - il l'emploi de ce servo?

 

 

2 / Pour oracid et mike118: 

 

Shield L298P: (A voir en pièce jointe)

 

Il  s'emboite sur ma carte UNO.  

Je l'avais acheté principalement pour être utilisé sur un second piège dont la trappe serait manoeuvrée par un vérin électrique au lieu d'un servo. j'avais vu ça sur une vidéo que je te joins également mais je ne pensais pas qu'un shield était nécessaire pour un servo.

 

De toute façon dans mon piège, il y la place pour installer le plus gros.

 

 

Outre le servo et le shield L298P, je joins, en pièces jointes, les captures d'écran de l'Arduino UNO + différents accessoires livrés avec ; celle de l'alimentation 9V 1A ( N'aurait-il pas fallu une12V?)

 

Pour ne rien vous cacher, ayant déjà vu certaines parties de programme sur différents tuto, j'appréhende énormément la réalisation de celui qui me concerne et du branchement des composants.

J'ai l'impression d'être devant un mur de 10 m de haut, un peu comme un élève de 6èmre en cours de maths face à un agrégé de mathématique.

 

 

* Pouvez-vous m'indiquer les différentes étapes à franchir, dans l'ordre; en quelque sorte un tableau de marche et surtout par quoi je devrais commencer y compris en préparation?

 

Dans cette attente,

 

Cordialement

 

 

 

 

 

 

 

 

 

 

Image(s) jointe(s)

  • Shield L298P.png
  • HD LW-20MG – Servo numérique à couple élevé,.png
  • Arduino UNO + accessoires.png
  • Alimentation 9V 1A.png


#6 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 26 mars 2022 - 04:13

J'avais oublié cette vidéo en pièce jointe

Fichier(s) joint(s)



#7 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 259 messages
  • Gender:Male

Posté 26 mars 2022 - 04:53

Bonjour,

1 / Pour sandro

 

Capteur:

 

Dans la mesure ou il n'émet pas de lumière, les rats n'hésiteront pas à s'approcher de l'appât. Il faut donc un capteur de présence infrarouge indétectable.  

 

* Merci de me communiquer un lien correspondant.

Est-ce que tu t'es renseigné sur le spectre visible par les rats? Le capteur dont je t'ai donné n’émet aucune lumière visible par l'homme. Par contre, il émet dans l'infra-rouge. Certains animaux (par exemple les abeilles) voient l'infra-rouge, beaucoup d'autres non. Je te laisse le soin de te renseigner sur ce point (soit en cherchant sur internet, soit si tu trouves pas en demandant sur un forum de biologie).

 

Si tu veux un capteur "passif", qui n'émet pas d'infra-rouges mais se contente de détecter la chaleur corporelle des rats, c'est possible, mais ce sera bien plus compliqué, surtout si tu veux que ça marche aussi de jour.

 

 

 

Servo: (A voir en pièce jointe)

 

J'ai posé ta question au vendeur:

 

Cet article peut-il être alimenté directement depuis une carte Arduino, ou s'il faut un convertisseur séparé?

 

Réponse du vendeur chinois: En 2 langues

 

S'il y a une sortie 5V, elle peut être alimentée directement. P(If there is a 5V output, it can be powered directly.)

V A

* Cela répond-il à ta question et justifie - il l'emploi de ce servo?

Vu la réponse, je crains que le vendeur ne s'y connaisse pas du tout en électronique (sinon il t'aurait parlé de courant, ou t'aurait donné un nombre maximum de moteurs que tu peux brancher sur le convertisseur de l'arduino). Est-ce que tu aurais le lien vers le site ou tu as acheté le moteur stp? Ça permettre de voir s'il comporte des informations utiles (une photo où on ne peut même pas lire entièrement l'étiquette ne m'avance pas beaucoup)


 


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#8 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 26 mars 2022 - 05:51

Pour sandro,

 

Merci pour ton retour,

 

 

Concernant le servo

 

Ta question:

Est-ce que tu aurais le lien vers le site ou tu as acheté le moteur stp? Ça permettre de voir s'il comporte des informations utiles (une photo où on ne peut même pas lire entièrement l'étiquette ne m'avance pas beaucoup).

 

Voici le lien :  Power HD LW 20MG – Servo numérique à couple élevé, étanche, avec engrenage métallique, pour modèles 1/8 1/10 RC | AliExpress

 

 

Concernant le capteur :

 

Celui qu'on aperçoit sur la présentation du piège Piper 2.0 que j'ai postée  c'est quoi à ton avis?

Celui que je veux utiliser devrait être opérationnel de jour comme de nuit car j' ai vu des rats qui se baladent aussi pendant la journée dans le poulailler.



#9 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 259 messages
  • Gender:Male

Posté 26 mars 2022 - 07:18

Pour le servo : il n'y a malheureusement pas d'informations de consommation de courant, et je n'en ai pas trouvé non plus en faisant une rapide recherche sur internet. En revanche, si on regarde ce moteur (https://www.ato.com/...-rc-servo-motor ) qui a des caractéristiques mécaniques assez semblables, on est à presque 1A en fonctionnement normal, et 2.3A moteur bloqué. Donc si le tient est dans le même ordre de grandeur, alors le régulateur 5V interne de l'arduino est loin d'être suffisent (on lit classiquement des courants max de 400mA, même si selon les conditions on peut pousser plus, mais 2.3A c'est clairement beaucoup trop).

 

Vu le courant, on ne peut pas juste convertir les 9V 1A, car ça ne fait pas assez de puissance. Il te faut donc directement un convertisseur 220V->5V, avec un courant d'au moins 3A (ou 2A avec une bonne protection contre les sur-courants)

 

 

 

Pour le capteur : d'après https://www.laraymon..._attachment=207, il s'agirait d'un capteur infra-rouge. Par contre, je ne saurais pas dire si c'est un capteur infra-rouge type télémètre (comme celui que je propose), ou type capteur de température (comme les thermomètres sans contact qu'on a vu pas mal pendant le covid).

 

Un capteur de distance infra-rouge devrait fonctionner comme il faut tant qu'il ne reçoit pas de lumière directe du soleil. (Un capteur infrarouge type capteur de température lui dépendra de la température : si elle se raproche trop de la température corporelle d'un rat (38°C), alors on ne pourra plus faire la différence)


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#10 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 26 mars 2022 - 10:16

Pour sandro:

 

J'ai envoyé dans mon post du 23 mars une vidéo à la suite des 3 photos de mon piège actuel.

Revisionne-là à partir de 3'10'',  c'est à partir de cet instant qu'on aperçoit le capteur sur un des flans du système; ça te donnera peut-être une idée de ce que c'est exactement.

 

J'ai découvert  aussi ce capteur qui ressemble pas mal à celui de la vidéo:                                                              Capteur de mouvement à rayon infrarouge PIR 12V, interrupteur tactile de corps, lampe intelligente automatique, allumage et extinction, détecteur de bande | AliExpress

                            

 

Ton avis svp ?

 

A +



#11 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 259 messages
  • Gender:Male

Posté 27 mars 2022 - 01:26

Pour le capteur du PIEPER : j'ai regardé la vidéo, mais ça ne m'a pas beaucoup avancé (ça m'avais permis d'éliminer l'option ultra-sons à 99%, ce qui a été confirmé par la notice qui dit que c'est de l'infra-rouge) : en général, voir un capteur ne suffit pas forcément pour en identifier le type (encore moins quand il est monté, et qu'on n'en voit qu'une face et de loin). Le plus probable me semble du capteur infra-rouge de type faisceau, mais à moins que tu ne connaisse quelqu'un qui possède cet appareil, ce sera dur à vérifier (si tu arrives à mettre la main sur un exemplaire, alors il suffit de tester si une feuille de papier se fait détecter : si oui, c'est de type faisceau (car la feuille n'est pas chaude)).

 

Pour ton lien aliexpress, c'est un détecteur de mouvement passif, qui détecte la "chaleur" (via le rayonnement infra-rouge émit par tout corps chaud). L'aspect "à facettes" est très classique de ces capteurs. Ils ont souvent des angles de détection très large (ici 120°), ce qui n'est probablement pas optimal pour ton application. De plus, celui-ci est programmé en minuteur (allumé pendant 30s après une détection), ce qui est moins pratique qu'un capteur qui te dira si à l'instant t il y a un rat ou pas.


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#12 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 27 mars 2022 - 01:31

Il semblerait que le rat ne voit pas le rouge. Rat Behavior and Biology : Que voient les rats ? - Association Agorat du Rat Domestique

Une chance !



#13 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 29 mars 2022 - 11:10

Pour sandro

 

Bonjour,

Merci pour ton retour,

Est-ce qu'on peut en trouver un dans ceux que propose le lien si dessous

Si oui quelle option il faudrait choisir parmi les 5 proposées?

 

Capteur infrarouge actif, commutateur de capteur Intelligent, mesure de Distance humaine photoélectrique, commutateur de capteur de mouvement | AliExpress



#14 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 17 mai 2022 - 03:23

Bonjour à tous,

Après ce long silence je reviens vers vous, toujours en quête d'une solution qui  permettrait de voir mes projets de pièges aboutir.

Entre temps j'ai dû plancher sur un autre  "casse-tête" à savoir empêcher le pillage de 3 distributeurs de grains.

J'ai imaginé une solution dans laquelle une trappe vient se rabattre le soir sur les orifices de d'accès aux graines à l'aide d'un actionneur linéaire 12V (course 100mm) piloté par un capteur de luminosité DLR 4broches et s'ouvre le lendemain dès qu'il fait jour

 

En fouillant sur youtube j'ai trouvé des tutos qui proposaient des solutions pour réaliser différentes installations.

Il y en a un qui prévoit de réaliser une porte automatique de poulailler avec un servo commandé par un capteur de luminosité.

(1) Comment faire une porte de poulailler AUTOMATIQUE!! - YouTube

 

La description comporte également le lien du code qui a été utilisé que je vous joins 

https://gildastoulou...xsite.com/my...

Ce code passe le cap de la vérification sans problème

 

Un autre tuto explique comment programmer Arduino du moteur shield (c'est le L298P) -voir photo au début de ce forum

⚙️ Le Motor Shield Arduino pour piloter un moteur pas à pas ou à courant continu ⚡ (electrotoile.eu)

 
J'ai "bidouillé" un code en me servant de la programmation: 
1/  du servo avec capteur de luminosité cité plus haut
2/  du moteur shield avec moteur dc proposé sur cette page.
 
 
Cela donnerait (ne riez pas)
 
int PinLumiere=0;        //Broche Analogique de mesure d'éclairement
int PinSeuilLumiere=8;   //Broche Numérique mesure d'éclairement
int tension=0;     //Mesure de tension (valeur élevée si sombre)
 
void setup() {
 
 //Configuration du Canal A
 pinMode(12, OUTPUT); // Broche Arduino réservée pour vérin
  pinMode(PinLumiere, INPUT);       //pin A0 en entrée analogique
  pinMode(PinSeuilLumiere, INPUT);  //pin 8 en entrée numérique
}
 
void loop(){
 
 Tension = analogRead(PinLumiere); // Lit la tension analogique
  if(tension>350)  // vous pouvez changer la valeur "350" qui correspond au niveau   de luminosité lorsque le vérin s’allonge  
                      // et revient à sa position d’origine
 
 digitalWrite(12, HIGH); // Le vérin s’allonge
 analogWrite(3, 255); // Vitesse maximale pour le vérin
 
 if(tension<350)  
 digitalWrite(12, LOW); // Le vérin revient à sa position d’origine
 analogWrite(3, 255); // Vitesse maximale pour le vérin 
  }
 
 
mais il y a un Beug,  on lit le message d'erreur concernant la ligne:

 

Tension = analogRead(PinLumiere); // Lit la tension analogique

 

Arduino : 1.8.19 (Windows 10), Carte : "Arduino Uno"
 
actionneur___capt_lum__TEST_\actionneur___capt_lum__TEST_.ino: In function 'void loop()':
 
error: 'Tension' was not declared in this scope
 
Pouvez-vous me dire :
 
1/ si je suis sur la bonne piste en essayant de regrouper 2 programmes
2/ d'où provient ce beug
 
A votre disposition pour tout autre renseignement
 
Cordialement
 
 
 


#15 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 17 mai 2022 - 03:32

Tension et tension c'est pas pareil. Remplace Tension par tension dans ta ligne 

Tension = analogRead(PinLumiere); // Lit la tension analogique 

et ça devrait aller. ( T => t )


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#16 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 18 mai 2022 - 08:04

Merci pour le retour.

Vous avez vu juste

Je viens de remarquer mon erreur en y regardant de plus près. ( Comme quoi une erreur ça ne tient pas à grand chose, même un ;point virgule oublié et ça foire)

 

Toutefois, vous ne m'avez pas dit si ce code  "tient la route" pour faire fonctionner le vérin 12V  en
fonction de la luminosité (il faudra que j'attende de le télécharger, de faire le branchement et ensuite l'essai)
 

Si j'ai bien compris, 

 

Le processus d'installation est le suivant :

1/ Positionner le shield sur mon Arduino Uno

2/ Connecter les fils du vérin + et - sur les connecteurs concernés du shield L298P

3/ Connecter  également le VCC , le GND ainsi que les 2 autres fils du capteur de luminosité sur les pins concernés du shield 8 et A0.

4/ Brancher l'alimentation 12V sur les bornes + et - du shield.

 

et ça devrait le faire n'est-ce pas?

 
 
Un autre point  me "chiffonne".
Il y a un passage sur la page que je vous ai indiquée à propos de la programmation d'un Arduino avec le shield L298P qui précise:
 
Broches Arduino réservées pour le Motor Shield Vous vous demandez peut-être quels sont les pins Arduino utilisés pour la commande du Shield moteur. En effet, pour pouvoir utiliser ce driver moteur avec l'Arduino, il est nécessaire de connaître les pins réservées.
Eh bien, voici ci-dessous les broches réservées à la commande du Motor Shield :
Pour le moteur A
• Pin n°12 (broche digitale pour la direction)
• Pin n°3 (broche PWM pour la vitesse)
• Pin n°9 (broche digitale pour le Frein)
• Pin n°A0 (broche analogique pour la Consommation)
Pour le moteur B
• Pin n°13 (broche digitale pour la direction)
• Pin n°11 (broche PWM pour la vitesse)
• Pin n°8 (broche digitale pour le Frein)
• Pin n°A1 (broche analogique pour la Consommation)


 

Pourquoi est-il nécessaire de connaître les broches réservés pour que le shield remplisse ses fonctions?

ça aurait pu être les broches 3, 4, 5 et A3 ou je ne sais quoi d'autre.

Y a-t-il une action à mener concernant ces broches? par exemple sectionner les autres?

Là, j'aimerais comprendre.  

Si quelqu'un pouvait m'expliquer

J'attends vos réponses.

Cordialement



#17 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 259 messages
  • Gender:Male

Posté 18 mai 2022 - 08:43

Bonjour,

int PinLumiere=0;        //Broche Analogique de mesure d'éclairement
...
pinMode(PinLumiere, INPUT);       //pin A0 en entrée analogique

Si tu veux référencer une pin analogique, il faut remplacer 0 par A0 (sinon c'est la broche numérique 0). NB : A0 est un "define" (une constante pour simplifier) vers un nombre magique qui correspond à la broche A0

 

 

Broches Arduino réservées pour le Motor Shield Vous vous demandez peut-être quels sont les pins Arduino utilisés pour la commande du Shield moteur. En effet, pour pouvoir utiliser ce driver moteur avec l'Arduino, il est nécessaire de connaître les pins réservées.
Eh bien, voici ci-dessous les broches réservées à la commande du Motor Shield :
Pour le moteur A
• Pin n°12 (broche digitale pour la direction)
• Pin n°3 (broche PWM pour la vitesse)
• Pin n°9 (broche digitale pour le Frein)
• Pin n°A0 (broche analogique pour la Consommation)
Pour le moteur B
• Pin n°13 (broche digitale pour la direction)
• Pin n°11 (broche PWM pour la vitesse)
• Pin n°8 (broche digitale pour le Frein)
• Pin n°A1 (broche analogique pour la Consommation)
 

Pourquoi est-il nécessaire de connaître les broches réservés pour que le shield remplisse ses fonctions?

ça aurait pu être les broches 3, 4, 5 et A3 ou je ne sais quoi d'autre.

Y a-t-il une action à mener concernant ces broches? par exemple sectionner les autres?

Les 8 boches listées sont connectées à l'intérieur du shield. Donc si le shield est connecté à l'arduino "normalement" (ie enfiché dessus, pas avec des fils), alors tu n'as plus le droit d'utiliser ces pins pour autre chose.

Pourquoi? Car sinon, il y a un risque que le shield et "l'autre chose" essayent d'y imposer des tensions différentes simultanément (court circuit), ou que l'un interprête un signal sur le pin comme lui étant destiné alors qu'il ne l'est pas (par exemple, si tu essayais de brancher une led sur la pin 9, si tu allumes la led, ça activerait le frain du moteur A!

 

Dans ton cas, en particulier, ça veut dire que tu n'as pas le droit de mettre ton capteur de luminosité sur la pin A0 comme tu fais actuellement, car la pin est déjà utilisé pour la mesure de la consommation du moteur A. A1 est aussi réservée pour le moteur B (même si tu n'utilises pas de moteur B). Tu peux par exemple utiliser A2 (ou A3 ... A5)

Qu'est-ce qui se passerait si tu laisses le capteur de lumière sur A0? Le shield essaye d'y imposer une tension proportionnelle au courant qu'il consomme. Le capteur de lumière essaye d'y imposer une tension différente (dépendant de la luminosité) : au mieux tu obtiens un "mélange" des deux qui ne veut plus rien dire, au pire ça fait un vrai court-circuit et tu crames un composant.

 

 

 

Enfin, par rapport à ton code :

1) quand tu dépasses le seuil, tu ordonnes au vérin de bouger en permanence, même s'il est déjà en bout de course. A moins que ce ne soit un vérin "intelligent" qui détecte la fin de course, il vas forcer en permanence, ce qui est très mauvais pour le verin, risque de faire du bruit, et vas consommer beaucoup d'électricité pour rien. Au minimum, il faut prévoir un delai max pendant lequel le vérin tourne dans un sens donné. Ou mieux, ajouter des interrupteurs de fin de course (qui permettent d'arrêter le moteur quand la trappe est entièrement ouverte ou fermée

2) tu utilises quasiment le même seuil pour ouvrir et fermer (il n'y a que la valeur 350 qui fait rien, mais où tu n'ordonnes pas non plus d'arrêter le moteur). Du coup, si la luminosité est proche de 350, la moindre variation vas provoquer une ouverture/fermeture (un nuage, une ombre, ...). Je te conseillerais plutôt : si >400 : ouvrir, si <300 :fermer, sinon arrêter le moteur
 

 

 

 


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#18 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE
  • Interests:Bricolage en tout genre.

Posté 18 mai 2022 - 03:38

Bin reçu le message sandro,

 

Donc en résumé:

 

1ère remarque  =>  int PinLumiere=0; //Broche Analogique de mesure d'éclairement

 

                       pinMode(PinLumiere, INPUT);       //pin A0 en entrée analogique

 

Si tu veux référencer une pin analogique, il faut remplacer 0 par A0 (sinon c'est la broche numérique 0). NB : A0 est un "define" (une constante pour simplifier) vers un nombre magique qui correspond à la broche A0

 

Je dis => OK , Je vais remplacer int PinLumiere=0 Par int PinLumiere=A2 puisque A0 et A1  sont  déjà "réservés"

                                          et    int PinSeuilLumiere=8;   //Broche Numérique mesure d'éclairement

         deviendra (au choix) :      int PinSeuilLumiere=2;   //Broche Numérique mesure d'éclairement

puisque la broche 8 est déjà "réservée"

 

 

 

 

 

 

2ème remarque => Les 8 boches listées sont connectées à l'intérieur du shield. Donc si le shield est connecté à l'arduino "normalement" (ie enfiché dessus, pas avec des fils), alors tu n'as plus le droit d'utiliser ces pins pour autre chose.

 

Je dis => OK bien compris

 

3ème remarque => quand tu dépasses le seuil, tu ordonnes au vérin de bouger en permanence, même s'il est déjà en bout de course. A moins que ce ne soit un vérin "intelligent" qui détecte la fin de course, il vas forcer en permanence, ce qui est très mauvais pour le vérin, risque de faire du bruit, et vas consommer beaucoup d'électricité pour rien. 

 

Je dis => Le vérin que j'ai testé, stoppe quand il arrive en fin de course aussi bien à l'aller qu'au retour (c'est un vérin "intelligent" comme tu dis)

Du coup pas nécessaire d'ajouter quelque chose au code, si j'ai bien compris

 

4ème remarque => Tu utilises quasiment le même seuil pour ouvrir et fermer (il n'y a que la valeur 350 qui fait rien, mais où tu n'ordonnes pas non plus d'arrêter le moteur). Du coup, si la luminosité est proche de 350, la moindre variation vas provoquer une ouverture/fermeture (un nuage, une ombre, ...). Je te conseillerais plutôt : si >400 : ouvrir, si <300 :fermer, sinon arrêter le moteur

 

Je dis => Tu suggères de tout mettre sur la même ligne mais  comment le traduire dans la réalité?

Est-ce qu'en reprenant le code, si j'écris ce qui suit, il manquerait quelque chose?

Sinon comment fait-on?

 

Pour se résumer, je t'envoie le "code final provisoire" qui après vérification comporte une erreur concernant les lignes => if(tension>400:ouvrir) ;     // niveau de luminosité lorsque le vérin s’allonge  

               if(tension<300:fermer) ;   // niveau de luminosité lorsque le vérin se rétracte

 

LE CODE INITIAL DEVIENDRAIT/

 

int PinLumiere=A4;        //Broche Analogique de mesure d'éclairement
int PinSeuilLumiere=2;   //Broche Numérique mesure d'éclairement
int tension=0;     //Mesure de tension (valeur élevée si sombre)
 
void setup() {
 
 //Configuration du Canal A
 pinMode(12, OUTPUT); // Broche Arduino réservée pour vérin
  pinMode(PinLumiere, INPUT);       //pin A4 en entrée analogique
  pinMode(PinSeuilLumiere, INPUT);  //pin 2 en entrée numérique
}
 
void loop(){
 
 tension = analogRead(PinLumiere); // Lit la tension analogique
  if(tension>400:ouvrir);  // niveau de luminosité lorsque le vérin s’allonge                    
 digitalWrite(12, HIGH); // Le vérin s’allonge
 analogWrite(3, 255); // Vitesse maximale pour le vérin
 
 if(tension<300:fermer);   //niveau de luminosité lorsque le vérin se rétracte
 digitalWrite(12, LOW); // Le vérin revient à sa position d’origine
 analogWrite(3, 255); // Vitesse maximale pour le vérin 
 
  }
                              
 
MESSAGE D'ERREUR:
 
 

Arduino : 1.8.19 (Windows 10), Carte : "Arduino Uno

 

Programme: Verin avec capteur_lumiere_mercredi_18-05:

error: expected ')' before ':' token

 

   if(tension>400:ouvrir);  // niveau de luminosité lorsque le vérin s’allonge          

 

  if(tension<300:fermer);   //niveau de luminosité lorsque le vérin se rétracte   

      

exit status

expected ')' before ':' token

 

 

 

Peux-tu me dire où ça bloque.

En tout cas, merci pour tes remarques.

Cordialement

 

 



#19 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 259 messages
  • Gender:Male

Posté 18 mai 2022 - 04:15

Bonjour,

1 à 3 : rien à dire

 

4) ce que je t'avais donné, ce n'était que du pseudo-code

en pratique, ça donne quelque chose comme :

 if(tension>400)  // niveau de luminosité lorsque le vérin s’allonge                    
 {
   digitalWrite(12, HIGH); // Le vérin s’allonge
   analogWrite(3, 255); // Vitesse maximale pour le vérin
 }

 if(tension<300)   //niveau de luminosité lorsque le vérin se rétracte
 {
   digitalWrite(12, LOW); // Le vérin revient à sa position d’origine
   analogWrite(3, 255); // Vitesse maximale pour le vérin 
 }

 


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#20 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 18 mai 2022 - 04:37

Première remarque, afin de rendre tes messages plus lisible tu peux éditer ton message pour à minima mettre ton code dans la balise code 

 

if(tension>seuil) {
 action();
}

Pour plus d'info sur comment poster du code ( et d'autres choses) tu as ce lien : https://www.robot-ma...obot-Maker.html

Donc merci d'éditer tes messages précédents pour le bien de tous :P 

Ensuite pour répondre à ta question, 

Le compilateur te dit qu'il y a " : " qui ne sont pas attendu là où tu les as mis ... 
Regarde un peu plus haut comment j'ai écrit mon " if " il n'y a pas de " : " ...

 

Edit : Je me suis fait devancé par Sandro pour la réponse =)  Je n'avais pas vu sa réponse quand j'ai posté la mienne. La sienne est et reste valable bien entendu =)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 




Répondre à ce sujet



  



Aussi étiqueté avec au moins un de ces mots-clés : Piège, Rats, Trappe, capteur

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users