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 :

Réalisation manège bateau pirate


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Décembre 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Décembre 2024
    Messages : 2
    Par défaut Réalisation manège bateau pirate
    Bonjour à tous
    Je suis nouveau et débute sur la programmation.

    J'ai acheté des carte Uno (clone) et des servomoteurs TowerPro Micro Servo 9g SG90

    J'ai réussi à programmer la carte après bien des péripéties !!!

    Je cherche à réaliser un programme afin d'avoir un mouvement fluide de balancier partant d'une position initiale 90° (axe du bras du bateau) et faisant balancer ce dernier en augmentant les angles de 10° à chaque fois pour revenir à sa position initial en faisant les angles inverses à la fin.

    Egalement faire une pause de 1 minutes entre chaque tours de manège.


    A l'heure actuelle, j'ai bien réussi à réaliser un mouvement balancier mais le servo se désaxe et ne retrouve jamais sa position d'origine.

    Pour information c'est une maquette en playmobil qui fait 700gr

    Merci beaucoup pour votre aide qui va m'ettre précieuse étant sur la reproduction d'un parc d'attractions

    Bien à vous

    Yann

  2. #2
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Décembre 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Décembre 2024
    Messages : 2
    Par défaut Programmes mis en place
    J'ai testé 2 programmes différents

    Programme 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #include <Servo.h>
     
    Servo servoMotor;
     
    void setup() {
      // put your setup code here, to run once:
    servoMotor.attach(9);
    servoMotor.write(0);
    }
     
    void loop()
    {
     
    servoMotor.write(90);
    delay (1000);
    servoMotor.write(95);
    delay (1000);
    servoMotor.write(85);
    delay (1000);
    servoMotor.write(100);
    delay(1000);
    servoMotor.write(85);
    delay (1000);
    servoMotor.write(100);
    delay (1000);
    servoMotor.write(80);
    delay (1000);
    servoMotor.write(105);
    delay (1000);
     
    }


    Programme 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include <Servo.h>
     
    Servo monServo;
    int vitesse;
    int angle;
     
    const int angleMin  = 1250;
    const int angleMax = 1750;
     
    /*
     * La fonction setup() est exécutée 1 fois
     * au démarrage du programme
     */
    void setup()
    {
        monServo.attach(9);
        angle = angleMin;
        vitesse = 1;
    }
     
    /*
     * La fonction loop() est exécutée
     * répétitivement
     */
    void loop()
    {
        monServo.writeMicroseconds(angle);
        /* calcule le nouvel angle */
        angle = angle + vitesse;
     
        if (angle > angleMax) {
            /*
             * le nouvel angle dépasse le maximum
             * on le recale au maximum et on inverse la vitesse
             */
            angle = angleMax;
            vitesse = -1;
        }
        else if (angle < angleMin) {
            /*
             * le nouvel angle dépasse le minimum
             * on le recale au minimum et on inverse la vitesse
             */
            angle = angleMin;
            vitesse = 1;
        }
        delay(3);
    }

  3. #3
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 788
    Par défaut
    Hello,

    Comme tu débutes en programmation, prends tout de suite une bonne habitude: indente convenablement ton code. Cela en facilitera la lecture, autant à toi qu'à tous ceux qui le liront pour te donner un coup de main.

    Edit: pour poster du code

  4. #4
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 017
    Par défaut
    Bonjour
    Une bonne bibliothèque pour faire des animations avec des servo, VarSpeedServo, natamment sa fonction sequencePlay.
    https://github.com/netlabtoolkit/VarSpeedServo

    Cordialement
    jpbbricole

  5. #5
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut
    Bonjour,

    Je crois comprendre que c'est une balançoire miniature et que le servo doit lui donner l'impulsion au bon moment (et non lui imposer une position qui nécessiterait beaucoup plus de puissance à cause des inerties en jeu même sur une maquette.

    A titre d'illustration, donner une petite poussée au bon moment à une balançoire ne demande pas beaucoup d'énergie pour qu'un enfant s'amuse. Mais vouloir contrôler la position exacte à tout instant de la balançoire demandera beaucoup de force et d'énergie.

    En résumé, il faut synchroniser les impulsions avec la fréquence propre de la balançoire. Un capteur (optique ou magnétique) détecte le passage bas et le système donne une impulsion à la balançoire. Pour éviter tout risque d'antiphase qui amènerait le système à pousser quand il faudrait tirer, un deuxième capteur pourrait être utile pour détecter le sens du mouvement. Le couplage mécanique entre l'actionneur et la balançoire doit être lâche (il ne doit pas tenir la balançoire). Il est plus simple de ne travailler que dans un sens.

    Salutations

  6. #6
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    je suis d'accord il faudrait expliquer si, dans votre montage, le servo est solidaire du manège (l'angle du servo détermine la position du bateau) ou s'il sert à donner une impulsion (quand et comment?).

    si c'est directement la position et que le servo a le couple nécessaire, essayez de vous inspirer de cette simulation

    https://wokwi.com/projects/416622857045480449

  7. #7
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 788
    Par défaut
    @Jay M: ne faut-il pas inverser les lignes 28 et 29 dans le sketch ?

  8. #8
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    L’avantage de faire dans ce sens c’est que le signal est déjà actif sur la broche au moment où on attache le servo et donc il se positionne directement au bon endroit - ça évite un mouvement erratique au démarrage

  9. #9
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 788
    Par défaut
    Merci de ta réponse. J'en apprends tous les jours.

  10. #10
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut
    Bonjour,

    Dans le cas d'un couplage fort, il faut que le programme ait un rythme de balancement le plus proche possible de celui de relaxation du pendule équivalent à la balançoire.

    Il faut bien comprendre que la balançoire se comporte comme un système résonnant qu'il faut solliciter avec sa fréquence propre car toutes les autres (hors les multiples exclues dans un couplage fort) ne passeront pas : cela signifie simplement que le mouvement imposé se heurtera à une résistance forte.

    Un coup d'œil à un cours sur les pendules pourrait être utile.

    Je ne recommande pas vraiment un couplage fort car, même avec la bonne fréquence, il faudra tenir compte que l'approximation sinusoïdale du mouvement ne vaut pas pour des mouvements de balancier de fortes amplitudes.

    Salutations

  11. #11
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut
    Bonjour Jay M,

    Citation Envoyé par Jay M Voir le message
    L’avantage de faire dans ce sens c’est que le signal est déjà actif sur la broche au moment où on attache le servo et donc il se positionne directement au bon endroit - ça évite un mouvement erratique au démarrage
    Ce souci du détail est remarquable. Eviter les errements mécaniques durant une ou deux microsecondes pour un système qui, au mieux, réagit à quelques dizaines de millisecondes, relève quand même un peu de l'esthétisme .

    Même la simulation, qui pourrait ne pas être représentative de l'inertie mécanique, ne réagit pas à l'inversion des lignes. Bien sûr, si on fait un pas à pas, on redonne au système mécanique des délais qu'il n'a pas.

    Salut

  12. #12
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    C’est une habitude
    Souvent on attache le servo dans le setup et on lui donne un angle bien plus tard. Dans ce cas c’est visible.
    C’est vrai qu’ici ce n’est pas très important

Discussions similaires

  1. Delphi 7.1, MySQL et dbEXpress sont dans un bateau...
    Par jl_s dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/01/2006, 00h36
  2. Réponses: 1
    Dernier message: 07/04/2005, 13h31
  3. Query Begin et Commit son sur un bateau....
    Par faoz75 dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/08/2003, 11h48

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