Aller au contenu


Photo
- - - - -

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

Piège Rats Trappe capteur

43 réponses à ce sujet

#21 Oracid

Oracid

    Pilier du forum

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

Posté 18 mai 2022 - 06:09

Sur le site d'Arduino, tu as toutes les références et à chaque fois un exemple d'utilisation. C'est bon à savoir.

https://www.arduino.cc/reference/fr/



#22 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 18 mai 2022 - 06:36

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

j'ai essayé , et on me dit que la page introuvable

 

Vu mon manque d'expérience en la matière, je ne vois pas trop ce que tu me demandes quand tu dis: 

 

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

 

 

De quoi s'agit-il exactement? du code proprement dit ou de mon texte en général.?

Pourrais-tu poster le code comme j'aurais dû le faire.

je te le mets tel que je l'ai recopié sur l'Arduino

 

A l'attention de Sandro:

 

Suite à ton message, j'ai modifié et  contrôlé le code et puis l'ai téléversé sur ma carte Arduino Uno comme une lettre à la poste.)

Reste à savoir si le montage va fonctionner.

 

 

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)  // 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<200)   //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 
  }
}


#23 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 19 mai 2022 - 12:24

 

 

Vu mon manque d'expérience en la matière, je ne vois pas trop ce que tu me demandes quand tu dis: 

 

De quoi s'agit-il exactement? du code proprement dit ou de mon texte en général.?

Pourrais-tu poster le code comme j'aurais dû le faire.

je te le mets tel que je l'ai recopié sur l'Arduino

 

 

 

Tu peux tester à nouveau les liens, un caractère de trop s'était glissé ... https://www.robot-ma...obot-Maker.html
 

 

Pour le reste je parlais de poster à minima ton code de cette façon :


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){ // 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<200){   //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 
 }
}

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  

 

 

 


#24 nate9595

nate9595

    Membre

  • Membres
  • 30 messages

Posté 11 juillet 2022 - 12:28

Très intéressant merci pour le partage !



#25 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 06 août 2022 - 03:23

Bonjour à tous,

 

Etant toujours en quête de réaliser mon projet, de piloter un vérin (actionneur linéaire) 12V avec un capteur ultrason (HCSR04) , je me suis employé à écrire un code qui reprendrait les infos de 2 autres codes à savoir Vérin + Capteur LDR et Servo+ Capteur HCSR04

La compilation s'est effectuée sans problème, mais je n'ai pas pu les tester car le vérin est utilisé par ailleurs.

Pensez-vous qu'il donnerait satisfaction sachant que le vérin après avoir été déclenché, doit s'allonger et revenir à sa position initiale dans la seconde qui suit.

Cordialement

Skinou 



#26 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 06 août 2022 - 03:25

Re, J'avais oublié de joindre le fichier 

 

dsl

Fichier(s) joint(s)



#27 Sandro

Sandro

    Pilier du forum

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

Posté 06 août 2022 - 05:10

Bonjour,

je crois que tu nous a joint le mauvais fichier : il contient le texte de ton message précédent au lieu de ton code


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.


#28 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 06 août 2022 - 08:48

Re, 

J'ai confondu vitesse et précipitation.

Là, ça devrait être bon cette fois-ci.

cdlt

 

 

 

skinou212

// TEST VERIN + CAPTEUR HCSR04
#include <HCSR04.h>

UltraSonicDistanceSensor capteur_distance(3, 4);

void setup () {

//Configuration du Canal A
 pinMode(12, OUTPUT); // Broche Arduino réservée pour vérin
}

void loop () {	

 int distance = capteur_distance.measureDistanceCm(); 
 if ( distance > 1 && distance < 25 ) {                
 digitalWrite(12, HIGH); // Le vérin s’allonge
 analogWrite(3, 255); // Vitesse maximale pour le vérin                                
 delay(500); // On attend 500 millisecondes avant que le vérin se rétracte
    
  } else {
  // si la distance n’est pas comprise entre 1cm et 25cm 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                                
  }
 // On attend 1 seconde avant d’effectuer une nouvelle boucle (loop)     
delay(1000);                                         
}


Modifié par Melmet, 09 août 2022 - 07:51 .
La balise code c'est top :)


#29 Sandro

Sandro

    Pilier du forum

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

Posté 10 août 2022 - 07:01

Je ne suis pas sûr que le code corresponde vraiment au comportement que tu souhaites :

- si on entre dans le if, on n'ira pas dans le else (dans le même tour du loop), donc l'allongement se fait pendant 500+1000 = 1500 ms = 1.5s

- tant que l'obstacle est présent, le verin ne se retractera pas (car tu entrera encore une fois dans le if) : le verin continuera au contraire à s'allonger

- si tu n'as pas de chance, tu peut attendre une seconde dans le delay(1000) avant de commencer à allonger ton verin (de quoi laisser le temps à un rat assez malin de repartir)

- quand tu écris if( distance>1 && distance <25), tu n'entres dans le if que pour des distances entre 2 et 24cm, ce qui ne correspond pas à tes comentaires : il faut soit utiliser ">=1" et ">=25' ou ">0" et "<26"

 

Je te propose l'alternative suivante :

// TEST VERIN + CAPTEUR HCSR04
#include <HCSR04.h>

UltraSonicDistanceSensor capteur_distance(3, 4);

void setup () {

//Configuration du Canal A
 pinMode(12, OUTPUT); // Broche Arduino réservée pour vérin
}

void loop () {	

  int distance = capteur_distance.measureDistanceCm(); 
  if ( distance > 0 && distance <= 25 ) {                
    digitalWrite(12, HIGH); // Le vérin s’allonge
    analogWrite(3, 255); // Vitesse maximale pour le vérin                                
    delay(500); // On attend 500 millisecondes avant que 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               
    delay(1000); // On attend 1 seconde pour laisser le temps au vérin de  se rétracte                        
  }
 // On enlève le delay de la boucle principale : comme ça, dès que le rat arrive, on est prêt    
}

Avec ce conde, dès que la distance est entre 0 (exclu) et 25 cm(inclus), alors quasi immédiatement le vérin s'allonge pendant 0.5 secondes, puis immédiatement se rétracte (pendant 1s pour être sur qu'il ait le temps de se refermer entièremement)
 


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.


#30 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 11 août 2022 - 12:30

Bonjour,

Merci sandro pour ce retour. avec les explications que tu m'as fournies

Comme je lai expliqué en envoyant mon code "bidouillé" je me suis servi de 2 codes pour en faire un dont le dernier vérin + capteur LDR que m'a transmis mike118 courant juillet

Je vais récupérer un vérin et tester dès que possible le code que tu m'as envoyé et te tiendrai informé.

Cdlt

 



#31 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 12 août 2022 - 08:50

Bonjour sandro,

L'essai du vérin avec le capteur à ultrason a avorté.

Je me suis rappelé que le pin 3 est celui dédié au moteur (vitesse) du coup j'ai branché le TRIG sur le pin 2, l'ECHO restant sur le 4

Nouvel essai.

Le vérin sort à fond et puis plus rien 

Quand je sollicite le capteur il rentre de 2mm et ressort d'autant et plus rien. Si je renouvelle l'opération il refait la même chose. 

J'ai pris une petite vidéo que j'ai envoyée par mms à mike118 mais je ne sais pas ce que ça a donné.

As-tu une idée où ça poserait problème?

Maintenant çà vient peut-être de moi.

Cdlt



#32 Sandro

Sandro

    Pilier du forum

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

Posté 12 août 2022 - 09:02

Bonjour,

tu confirmes que quand tu passe ta main tès rapidement, le verin commence par se rétracter, et ensuite s'allonge?

 

Si oui, il tourne probablement dans le mauvais sens. Si tel est le cas, c'est normal qu'il soit tout sorti (car j'ai exprès mis une durée plus longue pour la seconde phase, qui était sensé garantir qu'il soit tout rétracté).

Si c'est ça, pour résoudre le problème, il suffit de changer le sens pouir tes deux digitalWrite(12, XXX), tu inverse LOW et HIGH. Normalement , tu devrais avoir le verin qui par défaut est tout rétracté, et qui s'allonge quand tu passes ta main devant le capteur.

Si le verin ne bouge pas assez, alors essaye d'augmenter les durées dans les delay (en gardant le second un peu plus long que le premier)


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.


#33 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 12 août 2022 - 12:35

J'ai bien reçu des vidéo mais elle sont de très très mauvaises qualité...


Mais oui grosso modo le verin est sorti à fond et quand on passe la main il rentre légèrement et ressort ... Donc oui ça peut se changer assez facilement...

 

Je joins les vidéo reçu : 
Fichier joint  videoSkinou212.zip   925,7 Ko   66 téléchargement(s)


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  

 

 

 


#34 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 12 août 2022 - 01:04

Re,

J'ai interverti les LOW et HIGh ça n'a rien donné de bon.

Comme le vérin faisait des sauts de puce après chaque détection ce qui devait correspondre aux 500ms j'ai remplacé 500ms par 9000ms qui correspond à peu près à la durée d'extension du vérin 100 mm que je possède actuellement.

Résultat :Quand le capteur détecte, le vérin 150s'allonge en totalité, marque un petit temps d'arrêt et se rétracte jusqu'au bout.  :ignat_02:  :ignat_02:  :ignat_02:  

 

Donc, si j'utilise un vérin 150 mm ultra rapide (comme prévu)  150mm/s je devrais ramener la valeur 9000ms à 1000 ms pour qu'il fasse le retour au bout d'une seconde? C'est ça?

 

Cdlt



#35 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 12 août 2022 - 01:16

Si tu veux que je t'envoie la vidéo du résultat (20s) prise avec mon smartphone dis moi comment le faire

A+



#36 Sandro

Sandro

    Pilier du forum

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

Posté 12 août 2022 - 02:01

Si ton vérin fait 150mm de long et a une vitesse max de 150mm/s, et que tu veux qu'il s'allonge entièrement, alors pour l'alongement tu mets 1000ms, et pour le retour tu mets un peu plus (par exemple 1500ms) pour être sur de réussir à rétracter jusqu'au bout). Si avec les 1000ms de l'aller tu vas jusqu'au bout, alors tu peux probablement utiliser la même duréee pour le retour.

 

Pour joindre des fichiers, tu dois commencer par aller sur l'éditeur complet (bouton "plus d'options de réponse" en bas à droite), puis en bas, sous "joindre des fichiers", tu fait "browse" (si ton ordi est en français, tu aura peut être quelque chose comme "parcourir" à la place), puis tu choisis ton fichier, puis "open" (ou "ouvrir"), et enfin "joindre ce fichier" (en bas).

NB : si le format de fichier n'est pas supporté, tu le mets dans un .zip, qui lui est supporté


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.


#37 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 519 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 14 août 2022 - 08:11

Rien a voir, mais dans le meme objectif :) : https://www.youtube....h?v=LA21193Wel4


Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#38 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 11 septembre 2022 - 07:19

Bonjour,

Ça fonctionne avec le vérin qui s'allonge en 9 s

J'attends de recevoir le vérin qui fera 150mm /s.

A ce moment-là je remplacerai la vitesse de 9000 millisecondes

par une de 1000 millisecondes et ça devrait le faire 

Merci pour les infos

Skinou 212



#39 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 14 octobre 2022 - 08:46

Fichier joint  sketch Capteur IR + Servo.mp4   32,83 Mo   65 téléchargement(s)

 

Bonjour à toute l'équipe,

 

Après pas mal de reflexion pour définir un piège à rats "connecté" qui tiendrait la route, je pensais avoir trouvé le système infaillible en utilisant un capteur ultrason HC-SR04 pour commander le servo qui actionnerait la trappe.

Lors des essais, le système a très bien fonctionné . Mais c'est une autre histoire quand il est en présence des rats.

En filmant l'approche des rongeurs, j'ai constaté qu'il reculent systématiquement en arrivant dans la zone d'influence du capteur.

J'en ai déduit qu'ils doivent être sensibles à l'émission des ultrasons.

En conséquence je me suis orienté vers l'utilisation d'un capteur Infra Rouge.

Vous trouverez ci-dessous le code que j'ai installé sur ma carte UNO. Il doit y avoir un problème car le servo bouge sans arrêt.

Pourriez-vous me dire ce qui ne va pas dans ce code?

Ci-joint une petite vidéo de ce que ça donne

Cordialement

Skinou 212

 

 

//squetch capteur IR commande servo

# include <Servo.h> //permet de faire appel à la bibliotheque servo

 

#define ObstaclePin 8

#define CommandeServoPin 9

Servo monservo;

 

 

void setup()

{

pinMode (ObstaclePin, INPUT); // broche déclarée comme entrée, pas de pullup ... ??!

monservo.attach(CommandeServoPin ); // commande du Servo venant de la bibliotheque

}

 

void loop()

{

if( digitalRead(ObstaclePin) )

{

monservo.write(0);

delay(500);

}

else

{

monservo.write (90);

delay(500);

}

 

delay(500); // à adapter

}

 



#40 skinou212

skinou212

    Membre

  • Membres
  • 22 messages
  • Gender:Male
  • Location:HAUTS DE FRANCE

Posté 14 octobre 2022 - 08:46

Fichier joint  sketch Capteur IR + Servo.mp4   32,83 Mo   65 téléchargement(s)

 

Bonjour à toute l'équipe,

 

Après pas mal de reflexion pour définir un piège à rats "connecté" qui tiendrait la route, je pensais avoir trouvé le système infaillible en utilisant un capteur ultrason HC-SR04 pour commander le servo qui actionnerait la trappe.

Lors des essais, le système a très bien fonctionné . Mais c'est une autre histoire quand il est en présence des rats.

En filmant l'approche des rongeurs, j'ai constaté qu'il reculent systématiquement en arrivant dans la zone d'influence du capteur.

J'en ai déduit qu'ils doivent être sensibles à l'émission des ultrasons.

En conséquence je me suis orienté vers l'utilisation d'un capteur Infra Rouge.

Vous trouverez ci-dessous le code que j'ai installé sur ma carte UNO. Il doit y avoir un problème car le servo bouge sans arrêt.

Pourriez-vous me dire ce qui ne va pas dans ce code?

Ci-joint une petite vidéo de ce que ça donne

Cordialement

Skinou 212

 

 

//squetch capteur IR commande servo

# include <Servo.h> //permet de faire appel à la bibliotheque servo

 

#define ObstaclePin 8

#define CommandeServoPin 9

Servo monservo;

 

 

void setup()

{

pinMode (ObstaclePin, INPUT); // broche déclarée comme entrée, pas de pullup ... ??!

monservo.attach(CommandeServoPin ); // commande du Servo venant de la bibliotheque

}

 

void loop()

{

if( digitalRead(ObstaclePin) )

{

monservo.write(0);

delay(500);

}

else

{

monservo.write (90);

delay(500);

}

 

delay(500); // à adapter

}

 





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