Premier projet électronique : déclencher un petit moteur.

Bonjour !

Je cherche à réaliser un petit module électronique, mais je n'y connais pas grand-chose en électronique, alors encore moins sur Arduino.

Pour vous faire une idée du niveau, je sais remplacer les composants électroniques en sale état (fendu, cassé, brulé, coulant), et généralement, mes réparations fonctionnent.

À côté de ça, je suis développeur Java, bricoleur et un peu débrouillard.

D'un point de vue général, mon projet va servir à — attendez avant de vous moquer — tirer la chasse d'eau.
Mon chat fait popo sur les WC. C'est cool, plus de litière.
Mais je ne peux pas partir de chez moi plus d'un jour, car je n'ai pas réussi à apprendre à mon chat à tirer la chasse d'eau.

Voilà comment j'imagine le projet dans sa version la plus simple :

À partir du moment où j'alimente le module, toutes les 12h ou un autre intervalle, le module déclenche un jeu d'actions qui visent à tirer la chasse d'eau.

Actuellement, j'imagine tirer la chasse d'eau grâce à un moteur fixé sur une étagère à 30cm au dessus du réservoir. Ce moteur enroulerait une corde, elle-même rattachée à la tige pour tirer la chasse d'eau.
Le module devrait donc actionner le moteur dans un sens, tenir 1 ou 2 secondes, puis faire tourner le moteur dans l’autre sens.

Je n’ai aucune idée de la force ou du type de moteur qui me permettrait de tirer la chasse d’eau. Donc si vous avez d’autres idées concernant la façon de tirer la chasse, je suis preneur.
Je sais qu’il existe des chasses d’eau électroniques, qui se déclenchent avec un capteur de proximité. Mais c’est financièrement hors de portée, et mettre de l’électronique dans la cuvette ne m’enchante pas.

Niveau autonomie électrique, dans le pire des cas, je peux me débrouiller pour avoir le 220v pas loin.

Ce qui serait un plus :

  • que le système entier fonctionne sur piles, et tienne 4 jours.
  • que le moteur soit alimenté par le module Arduino, et non par relais
  • que le module ait connaissance de l’heure : la fréquence réelle des popos n’est pas réellement toutes les 12h, mais plutôt à des horaires fixes. Mais je suppose que le fait que l’appareil gère l’heure entraine des problématiques pour régler l’heure à chaque fois que l’on alimente l’appareil. Et je ne sais pas comment le gérer sans faire bondir les coûts avec des boutons et un écran LCD, plus de la programmation pour gérer cet aspect-là.
  • le summum serait que le déclenchement ne soit pas basé sur le temps, mais sur le passage : si un espèce de capteur maintenu sur le dossier permettait de détecter l’arrivée du chat, alors il suffirait de déclencher le tirage de la chasse d’eau 3 minutes plus tard. Mais comme je n’y connais rien en Arduino, je suis incapable d’imaginer comment gérer la notion de passage devant le capteur, ni combien peux couter un tel capteur.

(Merci d’être arrivé jusque là :cold_sweat: )

Qu’en pensez-vous ?

Avec quel module Arduino débuter pour faire ce genre de choses ?

Au boulot, il y a souvent des PC qui partent à la casse. J’ai fonc facilement accès a des moteurs de ventilateur, de lecteurs de disquette, CD (celui qui fait tourner le disque ou celui du tirroir, qui me semble plus fort) ou disque dur. Mais je pense pas vraiment que ça soit ce genre de moteur qu’il me faut. :

Je n'ai eu l'idée du capteur de présence qu'en écrivant ce pavé, mais en fait, ça semble être une bonne solution vue tout les autres sujets que je trouve concernant la détection de mouvements. Et le détecteur est dans mes prix.

Mais principales questions subsistent :

Avec quel module Arduino commencer ?

Une façon plus simple / efficace de gérer le tirage de la chasse d'eau ?

Est-ce que c'est aussi simple que ça ?

http://www.wikidebrouillard.org/index.php/Capteur_de_présence_piloté_par_Arduino

Yep!

Super projet :grin: J'adore !!!

Vois si tu peux mettre une sonde HC-SR04 (détecteur ultrason à moins de 3€) à hauteur du trône pour détecter l'animal, on évitera déjà de gâcher de l'eau pour rien, c'est bon pour la planète.

Pour la partie chasse d'eau, c'est un peu plus complexe. Je suppose qu'il s'agit d'une chasse à "boutons" avec économie. le plus simple serait de simuler l'appui avec un doigt piloté ou d'engrèner le mécanisme plus discrètement sous la capot.
La principale contrainte est que la bac à eau est peu modifiable, adaptable (difficulté de percer, de passer des éléments électriques, électroniques) et il faudra envisager presque nécessairement une action extérieure.
Personnellement, j'aime bien l'idée d'un gros doigt mécanique qui appuirait sur le bouton au bon moment.

@+

Zoroastre.

Salut !

Après avoir lu ça , je crois comprendre que l'intérêt de l'ultrason par rapport au détecteur de mouvement, c'est que je vais pouvoir avoir une indication sur la proximité du chat par rapport au module ultrason, c'est bien ça ?

Pour la chasse d'eau, ce n'est pas un bouton poussoir, mais un système moins complexe où on tire un bouton, ce qui fait directement remonter le bouchon.

Actuellement, je trouve ce système plus pratique car la force nécessaire pour tirer le mécanisme me semble assez faible, alors que je trouve les mécanismes à bouton souvent plus durs.

A bientôt...

J'adore, parce qu'avec mes recherche un peut bizarres, je tombes sur des projets tout aussi bizarres...

:smiley:

Un moteur d'imprimante ?

Ça a de la force, je peux déterminer les fin de course, aller dans un sens puis dans l'autre.

Et puis surtout, y-a déjà un tuto tout fait !!!!

http://eskimon.fr/290-arduino-603-petits-pas-le-moteur-pas-pas

Ça tombe bien, j'avais l'intention d'aller à la déchetterie...

Il y a aussi le détecteur infrarouge (Pyroélectrique) PIR qui marche très bien.
Il n'y a alors pas besoin de passer bien centré dans le faisceau comme avec les ultrasons. Et ça consomme très peu en veille, c'est passif, contrairement aux modules ultrasons qui doivent émettre des bips sans arrêt.
Attention les chats entendent les ultrasons, ça fait un bruit de souris pour eux. :smiling_imp:

Les moteurs d'imprimante sont des moteurs pas à pas, ça a l'avantage qu'on sait sur quelle position exacte le moteur se trouve si on connaît sa position initiale.
Un moteur ordinaire c'est valable aussi avec 2 interrupteurs de fin de course.
Ou utiliser simplement un bon gros servomoteur de modélisme.

Pour faire marcher ça sur pile, il faudra regarder du côté des interruptions matérielles pour réveiller l'Arduino à heure fixe ou quand le chat passe. Sinon ta pile 9V ne tiendra pas la journée.

Pour les vrais geeks il y a ça (made in Japan)

vu sur http://www.usinages.com/blabla/par-dessus-par-dessous-dilemne-t70638-15.html

J'ai le moteur !

Monté sur une rampe pour faire bouger la tige de la chasse d'eau en plus !

Et un moteur de passe, pour un autre projet

Et le donneur d'organes...

C'est vrais que je m'était un peut inquiété des ultrasons par rapport au chat. Si en plus il est plus économique, ça sera super pour moi. On en revient donc au détecteur de mouvement.

J'ai fini par comprendre que le choix du module Arduino n'était pas si compliqué que ça.

Voilà ma liste des courses. Est-ce qu'il y a tout ce qu'il faut pour débuter sur Aduino ?

http://www.gotronic.fr/art-carte-arduino-uno-cms-19380.htm
http://www.gotronic.fr/art-boitier-9-v-inter-ada67-19555.htm
http://www.gotronic.fr/art-detecteur-infrarouge-sen0018-19369.htm
Plaque de montage rapide - Plaques d'essais sans soudure | GO TRONIC et des packs de câbles connexions (M/M, M/F, FF)

Pour la partie moteur pas à pas, je sais pas trop. Il y a la solution toute faite, à 20€.
http://www.gotronic.fr/art-shield-moteur-4-x-1-5-a-ada1438-20681.htm
Mais j'avoue que je trouve ça un peut cher comparé à la solution du tuto cité plus haut : un composant à moins de 1€, et des câbles. Mais du coups, comment faire une version "finale", sans la plaque de montage rapide et tout ces fils ?

Merci !!!

Et à très vite :wink:

Je prends ça plus le composant à 1€ (ULN2003A) et je peux faire le montage "définitif" comme indiqué sur le tuto pour faire tourner un moteur PAP ?

Salut!

Tu t’embêterais moins avec un servomoteur! (Angle facilement définissable et force plutôt cool!)

En revanche pour ton Pap, je sais pas si il aura assez de puissance pour soulevé ta chasse d'eau! dans l'hypothèse que oui, Alors oui un simple ULN2003A fera l'affaire! <

Et ton capteur est facile a utiliser! presque du TTL!

à toi de jouer :wink:

a+

En plus, je n'aurais pas besoin de gérer une alimentation externe pour le moteur, par besoin de ULN2003A et de carte pour le relier au reste.

C'est effectivement super intéressant.

Il me reste plus qu'à imaginer comment je passe d'un mouvement de servo-moteur à quelque chose qui actionne ma chasse d'eau.

EDIT : Où est l'arnaque ? Celui-ci supporte 9kg et fait à peine 10€ !
Il est pas cher, et je suis sûr d'avoir assez de force au bout du bras qu'il me faudra mettre pour avoir un mouvement suffisamment ample pour bien tirer la chasse. C'est celui-la que je prends où il y a un détail qui explique le prix ?

Du TTL ?! :o Transistor-to-Transistor Logic ?

À très bientôt :grinning:

Je vois pas d'arnaque! 9kg.cm! ça veut dire qu'il peut soulever 9kg si tu te déplace de 1cm par rapport a l'axe.
En plus pigions métal!

a+

Bon, ben ça y est !

Je passe la commande au papa noël.

Rendez-vous en fin décembre !

Merci pour tous vos conseils :wink:

Salut !!

Me Revoilà !

Désolé, le projet est resté dans les cartons quasiment un an. Je me suis engagé à faire un site web pour une association, ça à fini en usine à gaz. Et comme je voulais pas mener deux projets de front, j'ai laissé celui-ci en pause.

Mais là, je vais bientôt en avoir vraiment besoin.
Alors je m'active !! :cold_sweat:

Alors.

Tout le truc est géré en interruptions (WatchDog) que soit un bouton manuel ou le détecteur de mouvement déclenchent. Donc, l'essentiel du temps, ça ne loope pas.

Tout ce qui est des déclenchements c'est bon.

Mon souci, c'est le servo moteur.
Quand je lance l'exemple Sweep du site Arduino, impeccable.

Quand je l'intègre à mon projet, c'est moins parfait.

Au premiers movement, ça se passe comme prévu, mais ensuite, les delays semblent ne plus être pris en compte.

Ici, la fonction qui gère le mouvement du moteur.

void servoToPosition(int position){
  int actualPos = servo.read();
  Serial.print("Moteur va de l'angle ");
  Serial.print(actualPos);
  Serial.print(" a l'angle ");
  Serial.println(position);
  delay(100);
     
  for (; actualPos <= position; actualPos += 1) { 
    servo.write(actualPos);              
    delay(SERVO_DEGRE_DELAY);      
  }
  
  
  //Debug...
  delay(5000);
  Serial.println("Relache de servoToPosition");
  
}

Cette fonction est appelée au setup, pour mettre le moteur en position initiale.
Ça se passe bien, le moteur se met bien en position initiale, il attends bien 5 secondes, puis le circuit se met en veille.

Par la suite, tous les autres appels de servoToPosition foirent.
Tous les prints apparaissent à l'écran en même temps (et sans les 5 secondes à la fin), et le circuit se remet en veille avant que le servo ait eu le temps de faire ne serait-ce qu'un degré du mouvement demandé.

Qu'est-ce qui peut mettre en vrac le delay ? :o

Merci pour vos suggestions...

Pardon....

En plus d'une petite erreur algorithmique dans ma fonction (qui n'explique rien concernant le delay), je me suis rendu compte que ça marche beaucoup mieux quand c'est le thread principal qui déclenche ma fonction, plutôt que celui des interruptions.

Donc en fait, tout va bien :smiley:

À bientôt :wink:

Bonjour,
quel dispositif pour éviter d'actionner la chasse en continu en cas de problème électronique ou mécanique ?

Un solénoïde irait très bien pour faire ça. Pas besoin d'une course très grande et en cas de soucis elec il revient à sa position de repos.

Coucou !!

30 ans plus tard... me revoilà !

Dans les précédents épisodes...

J'ai quasiment tout recodé, notamment partie Timers en utilisant une librairie faite pour ça.
C'est bien plus propre, j'ai gagné en fonctionnalités, et perdu en bugs (dans le bon sens).

Je suis passé à un Arduino Micro, branché directement dans une breadbord.

C'est quasiment prêt, sauf que je tombe encore sur un problème dont je ne comprends pas l'origine.

Pour rappel / mise à jour :

J'ai un PIR chargé de détecter les mouvements au dessus de la cuvette.
J'ai un bouton poussoir pour le déclenchement manuel de la chasse d'eau.
J'ai un autre bouton poussoir pour faire un reset des tâches en attente, des locks, etc.
Un servo.
Le PIR et le servo sont sur 4 piles LR06, le micro sur 4 autres piles LR06 (ground partagé)

La bête est sensé être en veille la plupart du temps.
Quand le PIR ou l'un des bouton poussoir est pressé, il sort de veille.
La pile d'action à exécuter dans un certain temps se remplie.
Et quand la pile d'action est vide, on retombe en veille.

Et voilà mon problème :

Quand je viens de brancher les alimentations, tout fonctionne bien.
Puis je laisse la carte se mettre en veille.
Si je fait un truc, elle se réveille, et éventuellement titre la chasse sans problème.

Mais si je laisse la carte en veille plus longtemps (genre 15 minutes), la carte se réveille bien, la led d'activité réagis comme attendu, mais le servo fait un bruit genre "j'ai plus de pile, je peux pas avancer".

Les piles à plat ? Avec des piles neuves partout, ça fait pareil.

Servo planté ? Si je débranche puis rebranche l'alimentation du servo (sans toucher au reste), ça ne résous pas le problème.

Erreur de code ? Ma première réponse serait nom, si non j'aurai déjà un problème en sortie de veille en dessous des 15 minutes. Mais qui sait...

Je ne tombe pas réellement en veille lors du premier test ? Ça me ferait mal : j'utilise la LED 13 comme témoin de veille. J'éteint la LED juste avant de rentrer en veille, et je la rallume dès que j'en sort. Et je ne la touche pas d'avantage.

Un reset avec le bouton idoine sur la carte : ça repart ! Pour 1/4 d'heure.

Ça fait deux jours que je suis bloqué sur ça.
Et ça m'embête bien car d'une part, je me suis bien relancé dans le projet.
Et d'autre part, j'ai l'impression que c'est le dernier problème avant que le projet puisse passer 1 journée tout seul.

trimarco232:
Bonjour,
quel dispositif pour éviter d'actionner la chasse en continu en cas de problème électronique ou mécanique ?

La question m'a traversé l'esprit. Et pour le moment, ça sera une prière.

Jambe:
Un solénoïde irait très bien pour faire ça. Pas besoin d'une course très grande et en cas de soucis elec il revient à sa position de repos.

Hum... un truc comme un aiment actionné par électricité qui va de haut en bas, entrainant la chasse d'eau ?
Il faut pas une grande quantité d'énergie pour un truc pareil ?
Et j'ai un contrôle précis sur la position, la vitesse de mouvement ?
Avec le servo, j'arrive à faire un mini chasse d'environ deux litres, et qui redescend en douceur (important pour limiter le bruit. Ça va aussi se déclencher la nuit)

Hello,

La première chose à faire serait de mesurer la consommation de ton montage.
Il faut un multimètre en mode "ampèremètre" ou une pince ampèremétrique.
Mesurer la consommation en activité et en veille puis comparer avec la capacité de la batterie utilisée.

Joli projet ! (Au premier post, j'ai cru que c'était le 1er avril...mais non ! C'est un sujet vraiment original ! :slight_smile: )

Coyotte

Bonjour,
mesure également les tensions suivantes :

  • alim du servo
  • commande du servo
    et compares-les avec la situation normale