Aller au contenu


Photo
- - - - -

Pilotage simultané de moteurs pas à pas pour machine à commande numérique


2 réponses à ce sujet

#1 ojal

ojal

    Membre

  • Membres
  • 11 messages

Posté 11 juin 2018 - 12:29

Bonjour,

Dans le cadre de réalisation de petits projets DIY, je souhaite piloter des déplacements issus du mouvement de plusieurs moteurs pas à pas..

Piloter un moteur ne pose pas de problème particulier, en général j'utilise une bibliothèque existante ARDUINO ou alors je pilote un nombre de pas directement en gérant les impulsions sur le moteur... Je ne sais pour le moment pas exploiter toutes les caractéristiques des moteurs cimme leur vitesse max ou leur couple max ni les facteurs comme les accélérations...

Dans le cadre de nouveaux projets, je souhaiterais pouvoir piloter plusieurs moteurs en même temps. 

Le cas le plus simple - et très classique - serait par exemple de piloter 2 axes linéaires perpendiculaires et de faire en sorte que la combinaison des mouvements de ces 2 axes pilote un segment plus ou moins grand de droite... Ca semble basique, mais pour le moment je ne sais pas faire... Je ne souhaite pas utiliser de bibliothèque toute faite car je souhaite maitriser complètement le projet... Je veux bien recopier ou m'inspirer de choses existantes si j'arrivet à les comprendre... Il ne sert absolument à rien de réinventer la roue 1f642.png    Je sais par exemple utiliser GRBL, mais je suis pour le moment incapable de comprendre quoi reprendre du code de GRBL.

 

Merci par avance pour votre aide 1f642.png



#2 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 11 juin 2018 - 02:47

Si tu veux, tu peux t'inspirer de la librairie AccelStepper pour piloter plusieurs moteurs. C'est celle que j'utilise sur mon bras robot.
Tu peux tout gérer avec, y compris les accélérations et décélérations. En la décortiquant tu pourras sûrement refaire les choses toi même afin de tout gérer.

#3 Forthman

Forthman

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 379 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 11 juin 2018 - 02:50

Bonjour Ojal,

 

Comme tu dois t'en douter, on ne pilote jamais simultanément les deux (ou plus) moteurs.

Comme tu sais déjà piloter un moteur unique, tu sais que tu dois faire une pause entre chaque impulsion d'horloge,

et c'est ce temps qui déterminera la vitesse.

Par exemple, pour un PAP de 200 points par tours, avec une pause de 3 millisecondes entre chaque impulsion,

ce dernier va tourner à 100trs/min

 

pour faire une diagonale parfaite, il suffit d'incrémenter les deux moteurs entre chaque temporisation.

par contre, si tu veux qu'un moteur tourne deux fois moins vite, il faut lui envoyer l'impulsion un coup sur deux

 

Il existe un algorithme parfait pour faire ça : l'algorithme de tracé de segment de Bresenham

tu peux aller jeter un oeil sur wikipédia : https://fr.wikipedia...nt_de_Bresenham





Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users