Arduino Forum

International => Français => Topic started by: Nathanael_B on Nov 28, 2017, 04:21 pm

Title: [Résolu] Problème de micropas
Post by: Nathanael_B on Nov 28, 2017, 04:21 pm
Bonjour,

Pour motoriser un télescope (voir détails ici (https://forum.arduino.cc/index.php?topic=475664.0)), je me suis équipé d'une carte MEGA 2560 REV3 (https://www.genapart.com/electronique/el1001/#cc-m-product-12726172632) et d'une carte RAMPS 1.4 (https://www.genapart.com/electronique/el1002/#cc-m-product-12736467732), de moteurs pas à pas (https://www.genapart.com/motorisation/mo1001/#cc-m-product-12752438032) et de pilotes DRV8825 (https://www.genapart.com/electronique/el1004/#cc-m-product-12760636232).

J'ai un problème de micropas qui n'est pas logiciel. Lorsque je lance le moteur, sur une série de 32 micropas, j'en ai 24 ok, puis un saut au 32ème avec un arrêt de la durée de 8 micropas, de sorte que la vitesse globale du moteur est respectée, mais le mouvement (la rotation) n'est pas continu.
J'ai changé le driver DRV8825, l'emplacement du moteur (pour éviter un problème de connection), vérifier que le logiciel envoie des impulsions régulières mais rien n'y fait.
Quelqu'un a-t-il déjà eu ce problème ou une idée de comment le résoudre?

Merci par avance,

Nathanaël
Title: Re: Problème de micropas
Post by: cbrandt on Nov 28, 2017, 04:24 pm
Bonjour,

Je n'ai pas encore joué avec le micropas, mais il semble qu'il faille correctement régler le petit potentiomètre de limitation de courant sur la carte DRV8825 pour ne pas sauter de pas:
https://www.pololu.com/blog/484/video-setting-the-current-limit-on-pololu-stepper-motor-driver-carriers (https://www.pololu.com/blog/484/video-setting-the-current-limit-on-pololu-stepper-motor-driver-carriers)
Title: Re: Problème de micropas
Post by: Nathanael_B on Nov 28, 2017, 04:30 pm
Oui tu as raison, je ne l'ai pas précisé mais effectivement j'ai réglé la Vref du potentiomètre à 1.05v pour limiter le courant à 2.1A par phases (Vref x 2 sur le drv8825).
Nathanaël
Title: Re: Problème de micropas
Post by: cbrandt on Nov 28, 2017, 05:10 pm
Tu as essayé un programme tout simple qui envoie en boucle les impulsions toutes les quelques millisecondes ? Sur un seul moteur pour voir ? Moteur relié mécaniquement à rien du tout ?
Title: Re: Problème de micropas
Post by: Nathanael_B on Nov 28, 2017, 06:21 pm
Oui, j'envoie une impulsion en boucle toutes les 0.3s donc je peux les compter en tenant le moteur dans les doigts (relié à rien). J'obtiens :
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 _ _ _ _ _ _ _ 1 2 3 etc...
et au 25ème micropas, le moteur avance d'un 1/4 de pas d'un coup puis attends le 1er micropas suivant. La rotation en tr/s est correcte mais le mouvement à un à coup dans le dernier quart de pas.
A vitesse rapide, ça fait pareil bien qu'évidemment je ne puisse pas compter les micropas.

J'ai changé : le drv8825, l'emplacement sur la ramp's1.4, la cable qui relie le moteur, toujours pareil ou presque (avec l'autre drv8825, le phénomène se produit sur le micropas 23 je crois).

Je peux encore changer la carte ramps mais pas le moteur j'en ai qu'un et j'aimerais bien être sur que ça puisse fonctionner avant d'en acheter un autre...

Nathanaël
Title: Re: Problème de micropas
Post by: ChPr on Nov 28, 2017, 07:06 pm
Pour moi, je trouve que ça ressemble à un bug logiciel, comme si les codes des positions 25 à 32 étaient identiques. A voir dans la bibliothèque qui génère ces micro-pas.

Cordialement.

Pierre
Title: Re: Problème de micropas
Post by: cbrandt on Nov 28, 2017, 08:19 pm
Il est comment ton programme de test ?
Title: Re: Problème de micropas
Post by: Artouste on Nov 28, 2017, 08:33 pm
Oui, j'envoie une impulsion en boucle toutes les 0.3s donc je peux les compter en tenant le moteur dans les doigts (relié à rien). J'obtiens :
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 _ _ _ _ _ _ _ 1 2 3 etc...
et au 25ème micropas, le moteur avance d'un 1/4 de pas d'un coup puis attends le 1er micropas suivant. La rotation en tr/s est correcte mais le mouvement à un à coup dans le dernier quart de pas.
A vitesse rapide, ça fait pareil bien qu'évidemment je ne puisse pas compter les micropas.

J'ai changé : le drv8825, l'emplacement sur la ramp's1.4, la cable qui relie le moteur, toujours pareil ou presque (avec l'autre drv8825, le phénomène se produit sur le micropas 23 je crois).

Je peux encore changer la carte ramps mais pas le moteur j'en ai qu'un et j'aimerais bien être sur que ça puisse fonctionner avant d'en acheter un autre...

Nathanaël
Bonjour
Je ne connais pas les modules à base de de drv8825 , mais je pense que la gestion des microspas est un peu comme sur les a4988 "tributaire" de l'etats des entrées dédiées aux micropas.
tu a un oscilloscope ou un analyseur logique ?
si oui je regarderais si il y a de l'activité du au logiciel sur ces entrées.
il y a une lib qui gere ces moteurs. ?
tu a tenté de faire des tests basiques avec celle celle ci   (https://github.com/laurb9/StepperDriver)?

Title: Re: Problème de micropas
Post by: Nathanael_B on Nov 28, 2017, 09:36 pm
Bonsoir,

Voici mon programme de test très basique et dessous l'image du drv8825. les micropas sont définis par M0, M1 et M2 à 1 (cavaliers sur la ramps1.4)
Je n'ai pas d'oscilloscope ni d'analyseur logique.

Nathanaël

Code: [Select]

#define pinStep    36 // Signal de PAS (avancement)
#define pinDir     34 // Direction
#define pinEnable  30 // Enable

void setup() {
 
  Serial.begin(115200); // ouvre le port com avec l'arduino
  pinMode( pinEnable, OUTPUT );
  pinMode( pinDir   , OUTPUT );
  pinMode( pinStep  , OUTPUT );
}

void loop() {
 
  int i = 0;
  digitalWrite( pinEnable, LOW);
  digitalWrite( pinDir, HIGH); // Direction avant
  digitalWrite( pinStep, LOW); // Initialisation de la broche step

  // Avance de 200 pas x 32 micropas = 1 tour
  for ( i = 0; i < 6400; i++) {
    Serial.println(i);
    digitalWrite( pinStep, HIGH );
    delay( 150 );
    digitalWrite( pinStep, LOW );
    delay( 150);
  }
  Serial.println ("pause");
  delay (60000);
}


(https://a.pololu-files.com/picture/0J4232.600.png?f2f6269e0a80c41f0a5147915106aa55)
Title: Re: Problème de micropas
Post by: Artouste on Nov 28, 2017, 10:42 pm
Bonsoir,

Voici mon programme de test très basique et dessous l'image du drv8825. les micropas sont définis par M0, M1 et M2 à 1 (cavaliers sur la ramps1.4)
Je n'ai pas d'oscilloscope ni d'analyseur logique.

Nathanaël

Code: [Select]

#define pinStep    36 // Signal de PAS (avancement)
#define pinDir     34 // Direction
#define pinEnable  30 // Enable

void setup() {
  
  Serial.begin(115200); // ouvre le port com avec l'arduino
  pinMode( pinEnable, OUTPUT );
  pinMode( pinDir   , OUTPUT );
  pinMode( pinStep  , OUTPUT );
}

void loop() {
  
  int i = 0;
  digitalWrite( pinEnable, LOW);
  digitalWrite( pinDir, HIGH); // Direction avant
  digitalWrite( pinStep, LOW); // Initialisation de la broche step

  // Avance de 200 pas x 32 micropas = 1 tour
  for ( i = 0; i < 6400; i++) {
    Serial.println(i);
    digitalWrite( pinStep, HIGH );
    delay( 150 );
    digitalWrite( pinStep, LOW );
    delay( 150);
  }
  Serial.println ("pause");
  delay (60000);
}


(https://a.pololu-files.com/picture/0J4232.600.png?f2f6269e0a80c41f0a5147915106aa55)
OK
si je resume à ce stade de ce que j'ai compris :
ton probleme n'intervient avec ton équipement mécanique que sur de la commande en /32
avec le petit code  que tu a exposé au dessus ?
Je me souviens avoir eu au debut de mes essais de paps avec  du a4988  des problemes de drive micropas avec la durée des fronts (geré par delay() )
delay(150) = c'est 0.15 seconde :smiley-mr-green:



 

 
Title: Re: Problème de micropas
Post by: Nathanael_B on Nov 29, 2017, 11:35 am
Bonjour,

Le problème se produit en 1/16 de pas (1 2 3 4 5 6 7 8 9 10 11 12 13 _ _ _ 1 2 etc...) ou 1/32 pas. Pour 2, 4, ou 8 micropas, je n'ai pas de soucis.

Dans le petit programme de test ci-dessus j'ai volontairement allongé la période pour pouvoir compter les pas (à la main, environ 3 micropas par seconde).

Dans le programme original (ici (https://forum.arduino.cc/index.php?topic=475664.15), en bas de page) les micropas sont de 9375 microsecondes afin d'assurer un déplacement suffisamment fluide du télescope et ce programme est à mon avis inutilement complexe pour résoudre mon problème qui survient quelque soit le mode de "fabrication" des micropas.

Nathanaël
Title: Re: Problème de micropas
Post by: Artouste on Nov 29, 2017, 10:58 pm
Bonjour,

Le problème se produit en 1/16 de pas (1 2 3 4 5 6 7 8 9 10 11 12 13 _ _ _ 1 2 etc...) ou 1/32 pas. Pour 2, 4, ou 8 micropas, je n'ai pas de soucis.

Dans le petit programme de test ci-dessus j'ai volontairement allongé la période pour pouvoir compter les pas (à la main, environ 3 micropas par seconde).

Dans le programme original (ici (https://forum.arduino.cc/index.php?topic=475664.15), en bas de page) les micropas sont de 9375 microsecondes afin d'assurer un déplacement suffisamment fluide du télescope et ce programme est à mon avis inutilement complexe pour résoudre mon problème qui survient quelque soit le mode de "fabrication" des micropas.

Nathanaël
Bonsoir
attention avec la notion de micro-pas
elle est tributaire de l'equipage mecanique/magnetique primaire =  "regarder les caractéristiques exactes du moteur utilisé"
le micro pas  , n'est pas une position mecanique  stable/verifiable  (stabilisable en résolution angulaire   )  pou un moteur PAP
pour un moteur PAP basique 200 pas (1.8°) la résolution  angulaire ( 1.8/32) reviendrait à garantir en précision un angle tenu a 0,05625° , sans faire jouer la dynamique
Title: Re: Problème de micropas
Post by: Nathanael_B on Nov 30, 2017, 04:10 pm
Bonjour,

Merci pour ces précisions. En fait ça tombe bien car je n'ai pas besoin de positionner très précisément le télescope mais juste besoin qu'il "suive" les étoiles avec une grande linéarité. Dans mon montage, je peux suivre une étoile avec des pas simples. Mais cela va donner lieu à des "à-coups", c'est pour ça qu'il faut que j'utilise des micropas, pour que les "à-coups" soient en deça de la précision de suivi requise. Mais cela est dynamique, car le suivi du télescope est constant (on lui impose juste quelques faibles variations de vitesse pour rattraper l'étoile guide quand elle dévie).

Reste que mon moteur ne tourne pas rond, en tout cas pas régulièrement, dès lors que je veux le faire tourner en 1/16 ou 1/32 de pas. Pourtant, tout le matériel devrait être compatible puisque j'ai pris l'ensemble chez le même revendeur de matériel pour impression 3D (cf les références sur le 1er post).

J'ai soudé les fils directement sur la ramps et changé toutes les cartes. Seul le moteur n'a pas été changé mais il fonctionne bien en 1/4 de pas alors... je sèche.

Nathanaël
Title: Re: Problème de micropas
Post by: Artouste on Nov 30, 2017, 11:03 pm
Bonjour,

Merci pour ces précisions. En fait ça tombe bien car je n'ai pas besoin de positionner très précisément le télescope mais juste besoin qu'il "suive" les étoiles avec une grande linéarité. Dans mon montage, je peux suivre une étoile avec des pas simples. Mais cela va donner lieu à des "à-coups", c'est pour ça qu'il faut que j'utilise des micropas, pour que les "à-coups" soient en deça de la précision de suivi requise. Mais cela est dynamique, car le suivi du télescope est constant (on lui impose juste quelques faibles variations de vitesse pour rattraper l'étoile guide quand elle dévie).

Reste que mon moteur ne tourne pas rond, en tout cas pas régulièrement, dès lors que je veux le faire tourner en 1/16 ou 1/32 de pas. Pourtant, tout le matériel devrait être compatible puisque j'ai pris l'ensemble chez le même revendeur de matériel pour impression 3D (cf les références sur le 1er post).

J'ai soudé les fils directement sur la ramps et changé toutes les cartes. Seul le moteur n'a pas été changé mais il fonctionne bien en 1/4 de pas alors... je sèche.

Nathanaël
bonsoir
le decay mode de ton drv est établi comment ?
Title: Re: Problème de micropas
Post by: Nathanael_B on Dec 01, 2017, 05:03 pm
bonsoir
le decay mode de ton drv est établi comment ?
ça je ne sais pas du tout, j'ai juste mis le drv8825 sur la ramps1.4 en suivant les instructions de cette page (https://www.genapart.com/accueil/infos-ramps/)...
Nathanaël
Title: Re: Problème de micropas
Post by: Artouste on Dec 01, 2017, 10:18 pm
ça je ne sais pas du tout, j'ai juste mis le drv8825 sur la ramps1.4 en suivant les instructions de cette page (https://www.genapart.com/accueil/infos-ramps/)...
Nathanaël
Bonsoir
le decay mode  basé sur le composant DRV8825 est fonction de l'etat du pin 19 
voir datasheet  (http://www.ti.com/lit/ds/symlink/drv8825.pdf)
(NB ne pas confondre "composant et module" 8)



N'ayant pas de drv8825  (en compo unitaire ou sur module "sous le coude" )

Je ne peux pas répondre à ta place
Title: Re: Problème de micropas
Post by: Artouste on Dec 03, 2017, 12:36 pm
Bonsoir
le decay mode  basé sur le composant DRV8825 est fonction de l'etat du pin 19
voir datasheet  (http://www.ti.com/lit/ds/symlink/drv8825.pdf)
(NB ne pas confondre "composant et module" 8)



N'ayant pas de drv8825  (en compo unitaire ou sur module "sous le coude" )

Je ne peux pas répondre à ta place
bonjour
complément à ma réponse
sur les modules le pin19 u drv8825 est en l'air (http://www.cjoint.com/doc/17_12/GLdlHE6jOE6_drv8825mod1.jpg)
ici un lien d qq'un ayant eu des problemes peut etre similare aux tiens (http://www.morgan3dp.com/stepstuck-revisited-drv8825/)

avec sa "conclusion" :  Movement as smooth as butter! :smiley-mr-green:
Title: Re: Problème de micropas
Post by: Nathanael_B on Dec 04, 2017, 01:41 pm
Merci à tous les deux.
La pin 19 en effet c'est une piste, j'ai vu sur ton précédent lien que je pourrais mettre la pin 19 à 1 pour 1/32. Pour l'instant le radiateur est collé dessus et je n'ai pas bien les outils pour souder une pin d'un composant aussi petit... une combine en plus de l'info? J'ai juste un fer à souder classique. Je peux peut-être me faire une panne ultra fine en cuivre pour l'occasion. Et puis j'ai deux composants, je peux toujours essayer.
Nathanaël
Title: Re: Problème de micropas
Post by: Artouste on Dec 04, 2017, 02:34 pm
Merci à tous les deux.
La pin 19 en effet c'est une piste, j'ai vu sur ton précédent lien que je pourrais mettre la pin 19 à 1 pour 1/32. Pour l'instant le radiateur est collé dessus et je n'ai pas bien les outils pour souder une pin d'un composant aussi petit... une combine en plus de l'info? J'ai juste un fer à souder classique. Je peux peut-être me faire une panne ultra fine en cuivre pour l'occasion. Et puis j'ai deux composants, je peux toujours essayer.
Nathanaël
Bonjour
un petit truc (http://www.priceminister.com/offer?action=desc&aid=1770472549&productid=960350269) qui rend bien bien des services dans des cas ponctuels comme çà.
J'etais un peu dubitatif au début, mais j'aurais du mal aujourd'hui à m'en passer.
un petit article dessus (https://hackaday.com/2017/08/31/review-aneng-lt-001-usb-soldering-iron/)
Title: Re: Problème de micropas
Post by: Artouste on Dec 05, 2017, 11:22 pm
Bonjour
un petit truc (http://"http://www.priceminister.com/offer?action=desc&aid=1770472549&productid=960350269") qui rend bien bien des services dans des cas ponctuels comme çà.
J'etais un peu dubitatif au début, mais j'aurais du mal aujourd'hui à m'en passer.
un petit article dessus (https://hackaday.com/2017/08/31/review-aneng-lt-001-usb-soldering-iron/)

bonsoir
et anecdotiquement concernant ma dernière reponse
voir ce post recent sur hackaday  (https://hackaday.com/2017/12/04/upgrading-a-usb-soldering-iron/)
Title: Re: Problème de micropas
Post by: Nathanael_B on Dec 17, 2017, 01:32 am
Bonsoir.
C'était bien ça. J'ai mis la broche 19 à 5v et le mouvement devient continu. Il doit bien y avoir un micropas qui "saute" de temps en temps, mais ça n'aura pas d'impact pour mon application.
J'ai finalement fait ça avec une loupe d'horloger et mon fer à souder classique mais j'ai juste mis en contact la broche 18 nFAULT qui est à 5v en temps normal avec sa voisine 19 DECAY.
Merci infiniment.
Nathanaël