berceau automatique commandé par les pleurs de bébé

bonjour,

Je suis l'heureux grand père d'un petit fils, et voici mon projet:
je voudrais connecter un servomoteur (commandé par un micro) au lit de bébé pour le bercer pendant 5 minutes quand il pleure.
(ceux qui on des enfants me comprendront...)

J'ai fait l'essai avec le sketch "sweep" (voir ci-dessous) ça marche très bien mais je ne sais pas comment y inclure la commande par le micro et définir le temps de 5 mn pendant lequel le servo doit marcher et ensuite s’arrêter jusqu'aux prochains pleurs de bébé.

merci d'avance pour votre aide.

PS: le micro
https://fr.aliexpress.com/item/3pin-Voix-Capteur-De-D-tection-Sonore-Module-Intelligent-Smart-V-hicule-Robot-H-licopt-re/32677423078.html?spm=a2g0s.9042311.0.0.szl9X3

le servo:
https://fr.aliexpress.com/item/DOMAN-RC-DM-S0600MD-56g-0-14s-6-5kg-cm-metal-gear-6kg-digital-servo/32231828088.html?spm=a2g0s.9042311.0.0.szl9X3

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created

int pos = 0;    // variable to store the servo position
char command;
void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}


void loop()
{
  for(pos = 0; pos < 90; pos += 1)  // entre < et ; mettre le debattement
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(5);                       // le chiffre fait varier la vitesse d'aller (a regler eventuellement avec un potentiometre)
  }
  for(pos = 90; pos>=1; pos-=1)     // entre < et ; mettre le debattement
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(5
    );                       // le chiffre fait varier la vitesse de retour
  }
}
  1. il est préférable de prévoir de bonnes butées mécaniques pour les bercements afin de ne pas faire un "berceau éjectable" :grin: C'est fragile ces petites bêtes.

  2. pour avoir une référence de temps tu as la fonction millis().
    Pour son utilisation voir l'exemple "blink without delay"

merci pour votre réponse,

pas d'inquiétude pour le renversement, le lit est monté sur ressorts. Bébé est en sécurité.

j'ai trouvé sur le forum une autre solution pour compter le nombre d'aller retour au lieu du temps, ce qui revient au meme pour moi
qu'en pensez vous ?

autres suggestions bienvenues . je signale que je suis débutant avec arduino.

if( TEST_IF_SOUND_LEVEL_MEANS_HE_IS_CRYING )
{
    // rock the cradle 100 times
    for( int count=0; count<100; count++ ){
        rockTheCradle();
    }

}

votre moteur fait vraiment bouger le berceau ? il me semble sous dimensionné

Couple de décrochage: 6.5kg.cm.at (4.8 v) 7.5kg.cm.at (6 v)

J-M-L:
votre moteur fait vraiment bouger le berceau ? il me semble sous dimensionné

6,5 kg.cm cela fait 325g à 20cm de l'axe.

C'est un berceau pendulaire monté sur pivot ....

https://www.google.fr/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwjRsu-AzvjYAhUoKcAKHSCHCTsQjRwIBw&url=https%3A%2F%2Flajoliemaison.fr%2Fcomparatif%2Fle-meilleur-hamac-pour-bebe%2F&psig=AOvVaw2dlYjt6dgTFhXzH58vdCIW&ust=1517158437935627

Serge .D

Bonjour,

il s'agit s'un movement de pendule : avec une force juste capable de vaincre les frottements, on peut lui faire faire des loopings !
donc la question n'est pas tant la valeur du couple, que la manière dont il commandera / contrôlera le mouvement

intéressant !

pour répondre aux questions concernant la force du servo:

le servo est suffisant, sachant que le lit de bébé est monté sur 4 ressorts de 2cm de diam et 7 cm de longueur.

comme le dit trimarco232, il s'agit d'un mouvement pendulaire avec peu de resistance une fois le mouvement lancé.

avez des idées concernant le code ?

merci d'avance

Oui mais pour lancer le mouvement depuis l’arret Complet - ça me parait un peu léger pour l’inertie .. enfin who knows

Ce sera une Poussée momentanée comme quand quelqu’un est sur une balançoire et movement de balancier libre ? Ou couplage sur l’axe en permanence ? Un dessin / photo du montage ? Comment l’axe du moteur est couplé au berceau ?

pour répondre à jml,

mon projet est inspiré par celui ci, et la vidéo montre que ça marche.
j'ai testé avec un poids de 3 kg à la place du servo et tout est ok.

http://www.karlander.net/projekt/arduino-crib_rocker.html

malheureusement, je ne comprends rien au code lié à ce projet. (timer etc..)

si vous pouvez m'éclairer et me montrer comment adapter ce code à mon projet .... je rappelle que je suis débutant.

merci d'avance

As tu commencé par utiliser le tuto d'Eskimon ?
C'est le meilleur départ possible quand on commence avec les microcontrôleur.

On n’adapte généralement pas du code sans comprendre ce que l’on fait... si vous ne savez pas programmer, le mieux c’est de commencer par apprendre - sinon tout ce qu’on pourra vous dire va vous passer au dessus de la tête, comme le code que vous avez

pour répondre à 68tjs et jml,

je suis entièrement d'accord avec vous, il est préférable d'apprendre, de comprendre avant de faire et de se lancer dans des projets qui ne sont pas de mon niveau.
les tutos d'eskimon sont remarquables, mais .......

La naissance de bébé étant prévue autour du 8 mars, je suis pressé par "l'urgence", donc plus dans le "faire" que dans le "comprendre".

C'est dans cet esprit que j'ai demandé de l'aide dans ce forum et je remercie par avance ceux qui voudront bien me donner un coup de main.

étant bien entendu que la prochaine étape sera l'apprentissage, mais là j'aurais tout mon temps, c'est à dire quelques années avant que mon petit fils soit capable de jouer avec les robots que je lui fabriquerais.

merci à tous (un papy débutant)