Aller au contenu

Demande de confirmation du pas de la vis de focus sur C8 EDGE (projet de focuser DIY)


Messages recommandés

Posté

Je suis en cours de mise au point de mon focuser pour mon C8 EDGE (projet MyFP2).

Pour paramétrer le programme, je dois déterminer le CFZ et surtout le déplacement du miroir en fonction du tour de vis du focuseur du tube optique.

 

Pour le CFZ, simple! Pour F/10, CFZ=220 Micron

 

J'ai recherché sur les forums, le pas de la vis de mise au point et le nombre de tours maximum (entre butées) de la vis de mise au point du C8 EDGE (et non EDGE, car je pense que ce sont les mêmes conceptions sur ce point précis).

 

J'ai trouvé que le pas de la vis est de 0,75 mm/tour (ou 0,74 ??)

Et le nombre de tours entre les deux butées est de 42 environ.

Soir une course totale du miroir de 31,5mm environ.

 

Avez vous les mêmes données de votre coté? Pouvez vous me confirmer cela??

 

Merci à vous.

Posté

Salut,

 

90% des softs d'astro travaillent en pas, pas en distance pour le focus.

Connaitre le ratio pas vs distance est donc secondaire dans 90% du cas.

 

En F/D10, tu a tellement de marge de focus que normalement tu n'auras aucun problème de "précision" de ton système de focus. C'est la bonne nouvelle.

 

Il en découle que tu n'a pas besoin de travailler en micros pas sur ton moteur pas à pas!

C'est "important" car le couple varie en fonction du nombre de micros pas, et les moteurs ont un "bloquage" naturel "sur les pas".

Donc, si tu est en "pas plein", arrivé à destination, tu peux "couper" le moteur et sauver de la puissance sur ton setup, surtout si tu est nomade 🙂

 

Pour la partie électronique. Si tu n'as pas déja un truc, j'ai des PCB qui controlent 1 moteur pas à pas, avec un control par ordi (Ascom), et 4 touches pour un controle manuel si sa t'intéresse...

Il faut qu eje publie le truc d'ailleur!

 

Cyrille

Posté

Merci pour ton soutien!!

Le lien  que tu donnes vers github ne fonctionne pas.

Effectivement à F10 la CFZ est "monstrueuse"! Je n'aurai pas de pbs de précision même avec un moteur à 200step/tours.

Mais le soft que j'utilise offre la possibilité de renseigner le micromètre/step. Alors je cherche cette confirmation auprès de spécialistes (j'ai pas retrouvé cette donnée sur le site de BAYLE qui est pourtant d'une grande précision! http://www.bbayle.com/page_modif_c8/)

Merci pour ton offre de PCB, mais j'ai déjà le matos pour faire deux électroniques. J'ai des moteurs de récup d'imprimantes aussi.

Étonnant qu'il n'y ait pas ici les données que je recherche. Je vais faire des demandes sur d'autres forums.

 

Posté

Salut,

 

J'avais pas mis la repo en public 🙂 Maintenant, c'est fait!

https://github.com/Cyrille-de-Brebisson/One_Motor_Focuser

 

Pour les moteurs d'imprimante, méfie toi et vérifie la resistance. Si c'est des moteurs basse resistance (sous les 10ohms), pas de problème, mais certaines utilisent des moteurs haute resistance (genre 30ohms) qui demandent des haut voltages (24, 30V)...

 

L'avantage de mon système c'est qu'il marche en 5V, donc juste une connection USB 🙂

 

Cyrille

inAction.jpg

Posté

Les nema 17 ont l'avantage d'etre TRES peut cher et d'avoir pas mal de couple. Mais ils font 43mm.

 

Les nema 14 (comme dans la photo), sont environ 2 fois plus cher, ont moins de couple, mais sont plus petit a 28mm.

Il faut voir la difference entre un nema17 "plat" (20mm) qui coute 6€ pour 14n/cm de couple, et un nema11 de 34mm qui coute 10€ pour seulement 7n/cm de couple...

 

J'avais un pb d'encombrement pour le PO ci dessus. D'ou mon choix d'un nema11. Mais sinon, j'aurais pris un nema17!

 

Cyrille

Posté

J'ai vu que tu utilises un driver différent de celui qui est sélectionné dans le montage de Robert BROWN (projet myFP2 que j'ai adopté)

C'est certain qu'avec le TMC2209 tu as plus de courant pour le moteur. Alors qu'avec le DRV8825 ou l'ULN2003 on est vite limité à des courants de 0,4/0,5A.

Il me semble que cela explique tu peux trouver des NEMA 17 très peux chers car ce sont les moteurs d'imprimantes numériques à large diffusion. Alors que les moteurs avec courants admissibles plus faibles (de l'ordre de 0,5A) sont moins courants, donc plus chers. Je me trompe??

Dans la doc du myFP2, il est indiqué que la programmation du TMC2209 est bcp plus gourmande en espace mémoire sur un nano.

 

 

Posté

Bonjour,

 

Les DRV8825 sont contrôlés analogiquement et "une fois pour toute" pour la puissance, et nécessitent entre 2 et 3 pin de controle par chip.

Les TMC2209 peuvent être contrôlés digitalement pour la puissance, et peuvent etre contrôlés par 1 seule pin dédié a un chip + 1 pin partagée entre 4 contrôleurs. Il est donc possible de contrôler 4 drivers avec 5 pins, au lieu de 12 pour les DRV...

 

le DRV2209 peuvent avoir jusqu’à 256 micros pas (au lieu de 32 un *8 en précision!) et sont beaucoup plus silentieux (pas super important).

Le DRV peut gérer plus de courant, mais c'est pas le facteur principal pour moi.

 

Au final:

- Le contrôle "puissance" du TMC permet de réduire la puissance consommée en mode "on ne bouge pas". 

Dans ma https://github.com/Cyrille-de-Brebisson/eq_control par exempla, pour réduire la consommation et pouvoir tourner sur une petite batterie USB, j'eteind le driver du focuser une fois le focus atteind (je ne travaille qu'en pas entier ici). Et lorsque le focuser marche, j'eteind le moteur RA...

- Le contrôle de puissance permet de faire un homing sur un focus. Diminuer la puissance de contrôle, aller dans un sens "assez longtemps" pour être sur d'arriver à la maison... remettre la puissance au normal.

 

J'utilise maintenant des ESP32-C3 super mini, avec moins de pin IO que le Nano, donc le nombre faible de pin de controle est très important!

J'ai beaucoup travaillé avec le Nano, mais avec les ESP, il n'y a plus aucun intéret, c'est pas moins cher et c'est beaucoup moins puissant.

 

Pour ce qui est de la conso mémoire, tout dépend.

En dessous le code que j'utilise (fait par moi même), il doit prendre moins d'1KB sur le nano (celle la est une version esp32 avec du soft serial... donc pas méchant... C'est sur que les libraires "standard" ne sont généralement pas sympa à ce niveau.

 

 

 

class Ctmc2209 { public:
    static uint16_t const tmc2209Delay= 8; // 8micro s = 125Kb/s = 12.5KB/s = 1.6millis for a read/modify/write of a register... Trying 500kb/s did not work...
    static void inline udelay(int i) { delayMicroseconds(i); }
    uint8_t serialPin;
    static uint8_t const GCONFAdr= 0;
    static uint8_t const CHOPCONFAdr= 0x6C;
    static uint8_t const IHOLD_IRUNAdr= 0x10;
    uint8_t GCONF[8], CHOPCONF[8];
    Ctmc2209(uint8_t serialPin😞 serialPin(serialPin)
    {
        static uint8_t const IGCONF[8]=    { 5, 255, GCONFAdr|0x80, 0, 0, 1, 0b11000001 };       memcpy(GCONF, IGCONF, 8);       // GCONF.pdn_disable=1, GCONF.mstep_reg_select = 1 (use MRES for step count)
        static uint8_t const ICHOPCONF[8]= { 5, 255, CHOPCONFAdr|0x80, 0x33, 0x00, 0x00, 0x53 }; memcpy(CHOPCONF, ICHOPCONF, 8); // TOFF=3, microsteps=8(0), INTPOL=1, HSTRT= 5, DBL=0, double edge off (because we can do up/down in 1 function)
        CGPIO::output((1<<serialPin)); CGPIO::set(serialPin,1);
    }
    void sendRegs()
    {
        sendPacket(GCONF, 8);
        sendPacket(CHOPCONF, 8);
    }
    static uint8_t swuart_calcCRC(uint8_t const * s, uint8_t l)
    {
        uint8_t crc= 0; // CRC located in last byte of message
        do {
            uint8_t currentByte = *s++; // Retrieve a byte to be sent from Array
            for (uint8_t j=0; j<8; j++)
            {
                if ((crc>>7) ^ (currentByte&0x01)) crc= (crc<<1) ^ 0x07;
                else crc= crc<<1;
                currentByte>>= 1;
            }
        } while (--l!=0);
        return crc;
    }
    // send packet. Will calculate the checksum for you. size/s has to be the full packet lenght (with crc)
    // Assumes that line is high before and output mode
    void sendPacket(uint8_t *s, uint8_t size, int addr=3) // send 1 packet to 1 address...
    {
        s[1]= addr;
        s[size-1]= swuart_calcCRC(s, size-1);
        do { // send size bytes
            uint8_t v= *s++;
            portDISABLE_INTERRUPTS(); //            noInterrupts(); // Time sensitive
            CGPIO::set(serialPin, 0); udelay(tmc2209Delay); // start bit
            for (uint8_t i= 0; i<8; i++) { CGPIO::set(serialPin, v&1); udelay(tmc2209Delay); v>>=1; }
            CGPIO::set(serialPin, 1); udelay(tmc2209Delay); // stop bit
            portENABLE_INTERRUPTS(); // interrupts();
        } while (--size!=0);
    }
    void TOFF(uint8_t val) // update CHOPCONF.TOFF 0:stop stepper, 3:start stepper
    { CHOPCONF[6]= (CHOPCONF[6]&~15)|val; sendPacket(CHOPCONF, 8); }
    // 0=256microsteps, 1:128, ..., 7:2, 8:1 (no microsteps)
    void microsteps(uint8_t val) // update CHOPCONF.MRES
    { CHOPCONF[3]= (CHOPCONF[3]&~15)|val; sendPacket(CHOPCONF, 8); }
    void shaft(uint8_t dir) // update GCONF.shaft 0:direction 1, 1:direction 0
    { GCONF[6]= (GCONF[6]&~8)|(dir<<3); sendPacket(GCONF, 8); }
    // 0=256microsteps, 1:128, ..., 7:2, 8:1 (no microsteps)
    void setPower(uint32_t val) // change register x10 (power control)
    {
        uint8_t power[8]=    { 5, 0, 0x10|0x80, 0, uint8_t(val>>16), uint8_t(val>>8), uint8_t(val), 0 }; sendPacket(power, 8);
    }
};

Rejoignez la conversation !

Vous pouvez répondre maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous pour poster avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.