Jump to content
gehelem

Moteur de focus sur démultiplication ou pas ?

Recommended Posts

Il y a 2 heures, Greg34 a dit :

Je suis pas chez moi là, mais avant de décoller, j'ai trouvé le moyen de fixer le moteur avec la vis qui bloque le PO et j'ai fait aussi une pièce qui s'emboite dans la molette coté démultipliée histoire de simuler une poulie et ça bouge pas d'un poil.

Demain soir, je mettrais la photo en ligne du concept.

J'ai pas terminé encore, me faut imprimer un nouveau boitier pour le moteur mais je trouve que ça en jette :)

Oui !

J'étais tombé sur ton bel anneau, j'ai pas hésité longtemps quand j'ai percuté le temps que ça me mettrais à l'imprimer...

Du coup... à la zob... sangle.

 

Dis donc, tes poulies ne reduisent pas mais augmentent, me trompé-je ?

Pourquoi fais-tu comme ça ?

 

Pressé de voir le nouveau concept !

 

Share this post


Link to post
Share on other sites
Il y a 7 heures, gehelem a dit :

j'ai pas hésité longtemps quand j'ai percuté le temps que ça me mettrais à l'imprimer...

Oui, j'ai pas brillé sur cette idée ^^

 

Il y a 7 heures, gehelem a dit :

Dis donc, tes poulies ne reduisent pas mais augmentent, me trompé-je ?

Dans mon cas, j'avais fait l'inverse pour gagner en vitesse/force avec le PAP mais je vais réviser ce point aussi.

 

En fait, faut penser vélo.

En gros la formule revient à FocRPM = D1 x RPM / D2 ou:

D1 = diamètre de la poulie du moteur PAP

RPM = nombre de tours/minute du moteur PAP

D2 = diamètre de la poulie sur l'arbre du focuser

FocRPM = nombre de tours/minute de l'arbre du focuser

 

Là je prend au pif:

D1= 2 cm

RPM= 200

D2= 4 cm

FocRPM  = 2 x 200 / 4 soit 100.

Pour un tour de mon moteur PAP, mon arbre du focuser aura fait un 1/2 tour.

Dans ce cas, je réduis encore mais au détriment de la force je force plus en petit pignon et un grand plateau à l'arrière sur un vélo :)

 

 

Il y a 7 heures, gehelem a dit :

 

Pressé de voir le nouveau concept !

Et moi de le finir :D 

 

 

Share this post


Link to post
Share on other sites

Tiens

J'en ai 20, J'en donne 10

Pcb de myfocuserpro2

MP si intéressé(e)

20201014_193554.jpg

  • Merci / Quelle qualité! 1

Share this post


Link to post
Share on other sites
il y a une heure, gehelem a dit :

J'en donne 10

Sympa !

 

Comme promis, j'ai fait quelques photos histoire de détailler un max + le stl.

Désolé pour la qualité de l'impression, c'est du 'alazob' pour le moment.

 

Ca s'emboite juste dans le cylindre. Juste démonter les 2 molettes.

IMG_20201014_204138.jpg.a40c33cec96301b475895eb420b6ee01.jpg

 

La poulie qui entre en force dans la molette.

IMG_20201014_204156.jpg.daa33e58f583b593f5ca5ac8bfaee367.jpg

 

La poulie dentée séparée

IMG_20201014_204209.jpg.abf276251b0257cbfc4ad98dc441f561.jpg

 

Le résultat voulu (j'ai pas terminé le boitier du PAP là... c'est encore l'ancien modèle)...

Me faut encore aligner le PAP à la poulie avec un tendeur de courroie.

IMG_20201014_204255.jpg.ac394a7d9c8aadf4a862d7cbb62903c5.jpg

3d1.jpg.451d3d9725bb8839b0121dc1542fe1b2.jpg3d2.jpg.321d81e1b588789d690b5d768bedf1fb.jpg

Et le STL histoire d'avoir une meilleure vision : support.stl

Je peux virer le moteur vu qu'il est monté sur glissière.

C'est compact, ça bouge pas ! suis l'plus heureux :D !

 

P.S: en plus c'est plus rapide à imprimer !

Edited by Greg34

Share this post


Link to post
Share on other sites

J'avance un peu sur le bricolage ... (et toujours dans le sujet ! racco sur la partie démultipliée !)

Même la vis pour bloquer le PO est utilisée.

 

IMG_20201017_184259.thumb.jpg.bb0ca7be564bbc8af598918f9a895c8f.jpg

 

 

 

Share this post


Link to post
Share on other sites

Salut à tous,

A mon tour de vous montrer le type de montage que j'envisage sur la molette démultipliée. L'idée principale, c'est démontable. Car l'instrument est utilisé pour du visuelle également. Donc, je tente d'utiliser le support du chercheur pour maintenir le bazar. La courroie doit pouvoir être retirée soit en dévissant la vis de la glissière du support chercheur pour détendre la courroie, soit en glissant cette courroie pour la faire sortir de la molette. Je crains, pour le moment que la tension soit trop importante et fatigue l'axe de cette molette. 

Tony

miseEnPlace.jpg

A oui, j'ai oublié de préciser : c'est sur un newton 150/750 😅

Edited by TonyBANKS75

Share this post


Link to post
Share on other sites

Salut @TonyBANKS75,

 

Regardes bien mon montage, tout est démontable mais on peut laisser la fixation sur le PO (zéro vis à démonter sauf les 2 mollettes sur le côté pour faire glisser le support en 3D).

La boite contenant la partie elec & le moteur se glisse dans le rail imprimé en 3D sur le PO.

Pour gérer la tension de la courroie, je vais mettre un tendeur de courroie avec possibilité de régler la force de tension.

 

il y a 32 minutes, TonyBANKS75 a dit :

A oui, j'ai oublié de préciser : c'est sur un newton 150/750 😅

 

Je veux pas dire d'ânerie mais sur le 200/1000, on a le même PO.

A noter aussi que pour du visuel, la courroie n'empêchera pas le moteur de tourner et le PO de monter/descendre :)

Share this post


Link to post
Share on other sites

J'ai bien vu le beau concept @Greg34 😉.

C'est une très belle idée.

Bon je continue mon idée. Et si ça marche pas, je verrai à m'inspirer de ton idée 😇

Effectivement, on a probablement le même PO.

Tony 

Share this post


Link to post
Share on other sites

@Greg34 @TonyBANKS75 vous pouvez preciser les refs de vos courroies ?

Je voudrais m'en commander un jeu de différentes tailles et j'ai pas mes joujoux sous la main...

Share this post


Link to post
Share on other sites

Alors j'ai pas la référence exacte sous la main, mais c'était un jeu de courroies sp2 6mm de ce genre 

Pour poursuivre la conversation sur le focuser monté sur la molette 1/10, voici les 2 premiers résultats avec pilotage sous Ekos. Pas mirobolants et la vérification avec un masque de bahtinov me laisse dubitatif.

Question : avec quel logiciel fais tu la mise au point ? Car avant de remettre le montage sur l'établi,  je voudrais bien vérifier avec un autre soft 🤔.

Tony

 

Capture_decran_du_2020-10-21_21-46-35.png

Capture_decran_du_2020-10-21_21-37-31.png

Share this post


Link to post
Share on other sites
il y a 25 minutes, TonyBANKS75 a dit :

avec quel logiciel fais tu la mise au point ?

Ekos uniquement...

J'ai remarqué que l'algo "linear machin" me donnait des résultats moins mauvais 

De même, en farfouillant le paramètre "star détection" (de mémoire) on peut améliorer le zinzin (le truc avec les options centroid et autres)

Mais la misère c'est de piger le processus, à quoi correspondent max travel, initial step size et autres, ça me laisse perplexe... surtout que leur usage semble dependre de l'algorithme utilisé 

NB

J'ai trouvé un truc sous linux qui permet de faire le job, jamais essayé 

Si ça t'intéresse je te retrouve le truc

 

Edit - c'est en alphabeta...

https://www.lost-infinity.com/fofi-a-free-automatic-telescope-focus-finder-software

Share this post


Link to post
Share on other sites

@gehelem, pour les couroies, idem que @TonyBANKS75 mais en mode radin :D ->https://fr.aliexpress.com/item/4000236292479.html?spm=a2g0o.cart.0.0.651f3c00OsFdpk&mp=1

 

Il y a 3 heures, gehelem a dit :

L'approche du type est super intéressante, et pleine de réponses de base...

 

Merci pour le lien, ça a l'air pas mal.

J'avais commencé (comme beaucoup de choses que je termine jamais ...) un soft dans le genre, j'avais mis une vidéo du soft en l'état.

Ca marchait un peu comme le Bahtinov grabber ce soft, on capture une zone d'écran et j'affichais le diamètre de l'étoile sur 2 axes avec un graphique FWHM/position pas moteur.

Le but du jeu est de relire la valeur la plus basse et de positionner le moteur sur cette valeur.

 

 

Pour ce qui est de la création de poulies en 3D, je viens de tomber sur cette vidéo ci-dessous qui devrait nous permettre de gagner plus en précision  (je viens de télécharger le soft, c'est top !)

 

Edited by Greg34
  • Merci / Quelle qualité! 1

Share this post


Link to post
Share on other sites

Courroie trop courte ? j'imprime une poulie plus grosse :be:

 

Et dans mon bricolage, j'ai fait un truc sans faire exprès ...

IMG_20201023_202735.jpg.16cba752a768ae387ccf748f1d2a48d8.jpg

 

Vu que c'est fixé que sur la glissière...en jouant avec la vis, ça me tend un poil la courroie juste ce qu’il faut ! :bras:

Share this post


Link to post
Share on other sites

Au fait, sur les crayford et crémaillères démultipliés, quand on tourne la molette "grossière", on a bien la "fine" qui tourne, dix fois plus vite, non ? Donc peu importe laquelle est entraînée par le moteur, la molette "fine" sera autant sollicitée.

 

Je conseillerais de faire en sorte qu'un pas entier corresponde à un déplacement plus petit que la résolution souhaitée, parce que, rappelons-le, en mode micro-pas, la position précise du moteur est maintenue uniquement s'il est alimenté, et "saute" au pas entier le plus proche en l'absence d'alimentation. C'est évidemment plus facile en profitant de la démultiplication de la molette "fine", car avec un moteur de 400 pas par tour, on arrive à 4000 pas pour un tour de la molette, ce qui est largement assez précis (les trucs qui se disent à 0,1 µm voire moins et qui coûtent la peau des fesses, désolé de le dire, c'est complètement superflu). On peut évidemment ne pas se soucier de consommer du courant alors que rien ne bouge, tout dépend de la consommation du moteur et de la capacité de la batterie.

Quant au jeu, en principe, avec un réducteur à billes et un vrai crayford, les deux fonctionnant par friction (par roulage, en fait), il est nul. Le seul qui intervient est celui de la réduction entre le moteur et le crayford.

 

Il y a quelque temps, j'ai fait l'acquisition, via les PA, du système de focalisation électrique pour les Feather Touch (moteur + unité centrale + raquette, avec de superbes boîtiers en métal), l'ancienne version de Starlight Instruments. Je passe sur le fait que j'ai dû tourner une douille d'adaptation du pignon (3.2 mm de diamètre extérieur et 2,4 mm de diamètre intérieur :s ), mais surtout, le pignon se met à la place de la molette "fine" et c'est donc l'axe de cette dernière que le moteur fait tourner. Je ne connais pas les systèmes plus récents (Micro Touch de Starizona), mais je doute que ce soit différent.

Share this post


Link to post
Share on other sites
Il y a 2 heures, Moot a dit :

Je conseillerais de faire en sorte qu'un pas entier corresponde à un déplacement plus petit que la résolution souhaitée, parce que, rappelons-le, en mode micro-pas, la position précise du moteur est maintenue uniquement s'il est alimenté, et "saute" au pas entier le plus proche en l'absence d'alimentation.

 

Tout à fait ! Par défaut, j'ai configuré en hard le driver en 1/16 sur la première version.

Pour refaire un vrai pas mécanique, je vais appliquer x16 (j'ai la rame de dessouder les pins xD) et ça me permettra aussi de 'couper' le moteur quand il n'est pas sollicité afin de ne pas perdre le vrai pas.

 

Il y a 2 heures, Moot a dit :

C'est évidemment plus facile en profitant de la démultiplication de la molette "fine", car avec un moteur de 400 pas par tour, on arrive à 4000 pas pour un tour de la molette

 

Dans ce cas, on est sur un rapport de 1:1 directement sur l'arbre.

Le mien est un 200 pas (1,8° d'angle de pas) soit 2000 pas pour un tour de la molette démultipliée.

Avec la poulie, j'augmente encore la résolution : poulie de 12mm sur le PAP et poulie de 43,4mm sur l'arbre démultiplié (mon arbre démultiplié fait un tour complet quand mon moteur PAP en aura fait 3,6).

Je viens de tester à l'instant c'est à peine perceptible ...(c'est trop d'la balle ! :be:)

 

Il y a 2 heures, Moot a dit :

les trucs qui se disent à 0,1 µm voire moins et qui coûtent la peau des fesses, désolé de le dire, c'est complètement superflu

 

Par contre, avec un tel degré de précision, je me suis toujours demandé comment on arrivait à gérer la MAP avec la turbulence ... :?:

Quand j'avais commencé mon soft pour gérer la MAP, j'avais moyenné les différentes FWHM dans un tableau de données afin de limiter l'impact de la turbu ...genre si beaucoup de turbu, j'augmente la taille du tableau pour en moyenner davantage et inversement si le ciel le seeing est correct.

Share this post


Link to post
Share on other sites

Merci pour vos développements @Greg34 @Moot on est bien en phase 😃

 

D'ailleurs @Greg34 ton montage m'intéresse, tu peux mettre les fichiers qq part ?

Pareil pour ton firmware d'ailleurs, car je suis aussi en train d'en écrire un pour pouvoir utiliser un encodeur optique branché sur les pins interrupt de l'arduino (pour bouger le truc à la main c'est 1000x mieux que les boutons)

Share this post


Link to post
Share on other sites
Il y a 1 heure, gehelem a dit :

on est bien en phase 😃

 

:be:

 

Dans le zip, je t'ai tout mis (les STL, le firmware et les sources pour piloter le tout) -> focus prj.zip

Le tout en licence RAS (Rien A S'couer) !

Par contre, je précise que :

- c'est prévu pour un nema14 (le 17 est trop volumineux)

- le firmware est pour un NodeMcu -> à migrer en 100% arduino

- les sources sont pour delphi à la base -> on doit pouvoir migrer le soft sous Lazarus en virant la class Twsocket.

 

Je me tâte encore à faire une version sans fils mais en tcp cette fois-ci (l'udp ça pue, ou alors me faudrait faire un ack à chaque envoi de paquets avec un ordre de réception etc ...).

Juste une sonde de température et d'humidité (bmp280?) histoire de faire les darks aussi à la même temp & l'humidité pour déclencher une future résistance ou plier le matos :D

Share this post


Link to post
Share on other sites
il y a 17 minutes, Greg34 a dit :

Le tout en licence RAS (Rien A S'couer) !

La meilleure !!

 

Merci bcp

(Je laisse le soft de côté moi c'est indi qui pilote, donc protocole moonlite)

Share this post


Link to post
Share on other sites

En parlant de Moonlite, je viens de téléverser cette version :

#include <AccelStepper.h>

int STBY = D3; //standby power driver (enable)
int Probe = D4;
int STEP = D5;
int DIR  = D6;

static const int STEPS_PER_REVOLUTION = 200;  // change this to fit the number of steps per revolution for your motor

AccelStepper stepper(1, STEP, DIR);

#define MAXSPEED 10000

#define MAXCOMMAND 8

char inChar;
char cmd[MAXCOMMAND];
char param[MAXCOMMAND];
char line[MAXCOMMAND];
long pos;
int isRunning = 0;
int _speed = 32;
int eoc = 0;
int idx = 0;
long millisLastMove = 0;

void setup()
{  
  Serial.begin(9600);

  pinMode(STBY, OUTPUT); //met la broche en sortie
  digitalWrite(STBY, HIGH);
  
  stepper.setSpeed(MAXSPEED);
  stepper.setMaxSpeed(MAXSPEED);
  stepper.setAcceleration(5000);

  memset(line, 0, MAXCOMMAND);
  millisLastMove = millis();

}


void loop(){
  if (!Serial.available())
  {
    if (isRunning) {
      stepper.run();
      millisLastMove = millis();
    } 
    else {
      if ((millis() - millisLastMove) > 1000) {
        digitalWrite(STBY, HIGH);
      }
    }

    if (stepper.distanceToGo() == 0) {
      stepper.run();
      isRunning = 0;
    }
  } 
  else {

    // read the command until the terminating # character
    while (Serial.available() && !eoc) {
      inChar = Serial.read();
      if (inChar != '#' && inChar != ':') {
        line[idx++] = inChar;
        if (idx >= MAXCOMMAND) {
          idx = MAXCOMMAND - 1;
        }
      } 
      else {
        if (inChar == '#') {
          eoc = 1;
        }
      }
    }
  } // end if (!Serial.available())

  // process the command we got
  if (eoc) {
    memset(cmd, 0, MAXCOMMAND);
    memset(param, 0, MAXCOMMAND);

    int len = strlen(line);
    if (len >= 2) {
      strncpy(cmd, line, 2);
    }

    if (len > 2) {
      strncpy(param, line + 2, len - 2);
    }

    memset(line, 0, MAXCOMMAND);
    eoc = 0;
    idx = 0;

    // the stand-alone program sends :C# :GB# on startup
    // :C# is a temperature conversion, doesn't require any response

    // LED backlight value, always return "00"
    if (!strcasecmp(cmd, "GB")) {
      Serial.print("00#");
    }

    // home the motor, hard-coded, ignore parameters since we only have one motor
    if (!strcasecmp(cmd, "PH")) { 
      stepper.setCurrentPosition(8000);
      stepper.moveTo(0);
      isRunning = 1;
    }

    // firmware value, always return "10"
    if (!strcasecmp(cmd, "GV")) {
      Serial.print("10#");
    }

    // get the current motor position
    if (!strcasecmp(cmd, "GP")) {
      pos = stepper.currentPosition();
      char tempString[6];
      sprintf(tempString, "%04X", pos);
      Serial.print(tempString);
      Serial.print("#");
    }

    // get the new motor position (target)
    if (!strcasecmp(cmd, "GN")) {
      pos = stepper.targetPosition();
      char tempString[6];
      sprintf(tempString, "%04X", pos);
      Serial.print(tempString);
      Serial.print("#");
    }

    // get the current temperature, hard-coded
    if (!strcasecmp(cmd, "GT")) {
      Serial.print("20#");
    }

    // get the temperature coefficient, hard-coded
    if (!strcasecmp(cmd, "GC")) {
      Serial.print("02#");
    }

    // get the current motor speed, only values of 02, 04, 08, 10, 20
    if (!strcasecmp(cmd, "GD")) {
      char tempString[6];
      sprintf(tempString, "%02X", _speed);
      Serial.print(tempString);
      Serial.print("#");
    }

    // set speed, only acceptable values are 02, 04, 08, 10, 20
    if (!strcasecmp(cmd, "SD")) {
      _speed = hexstr2long(param);
      stepper.setMaxSpeed(MAXSPEED);
    }

    // whether half-step is enabled or not, always return "00"
    if (!strcasecmp(cmd, "GH")) {
      Serial.print("00#");
    }

    // motor is moving - 01 if moving, 00 otherwise
    if (!strcasecmp(cmd, "GI")) {
      if (abs(stepper.distanceToGo()) > 0) {
        Serial.print("01#");
      } 
      else {
        Serial.print("00#");
      }
    }

    // set current motor position
    if (!strcasecmp(cmd, "SP")) {
      pos = hexstr2long(param);
      stepper.setCurrentPosition(pos);
    }

    // set new motor position
    if (!strcasecmp(cmd, "SN")) {
      pos = hexstr2long(param);
      stepper.moveTo(pos);
    }


    // initiate a move
    if (!strcasecmp(cmd, "FG")) {
      isRunning = 1;
      digitalWrite(STBY, LOW);
    }

    // stop a move
    if (!strcasecmp(cmd, "FQ")) {
      isRunning = 0;
      stepper.moveTo(stepper.currentPosition());
      stepper.run();
    }
  }
} // end loop

long hexstr2long(char *line) {
  long ret = 0;

  ret = strtol(line, NULL, 16);
  return (ret);
}

Arrêt du moteur en fin d'action et accélération avec la lib 'AccelStepper'.

Share this post


Link to post
Share on other sites
il y a 15 minutes, Greg34 a dit :

Arrêt du moteur en fin d'action et accélération avec la lib 'AccelStepper'.

Mort de rire

On est **vraiment** en phase 😃

Share this post


Link to post
Share on other sites
Il y a 2 heures, gehelem a dit :

Mort de rire

On est **vraiment** en phase 😃

 

Excellent ! :D

 

C'est vrai qu'à force de tester tout et n'importe quoi, on finit toujours par revenir à des choses simples et efficaces.

Tellement je joue la simplicité, je suis passé à une version filaire et je mettrais pas la sonde de température sur le focuser car lors des relevés de temp, elle est bloquante dans la boucle principale.

Son seul rôle sera de faire tourner le bitoniau !

Par contre, j'ai bien envie d'utiliser une sonde de température/humidité mais dans un autre module histoire d'asservir les darks, résistances chauffantes etc... (mais ça fera partie d'un autre bricolage de geek plus tard ^^)

 

J'ai terminé mon bricolage !

C'est nickel, je pense pas pouvoir faire mieux pour le coté méca ? c'est fluide, rapide et précis.

Reste à pouvoir sortir le matos un jour ...

 

1.jpg.b461c2a26df6c3b25ca68fa48ea4ca7e.jpg

 

2.jpg.599ebf4d8cef6fedd99d53d560f3e790.jpg

 

  • Merci / Quelle qualité! 5

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.