1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

CNC et carte ARDUINO

Discussion dans 'Electronique spécifique CNC' créé par carlos78, 27 Mars 2014.

  1. carlos78

    carlos78 Compagnon

    Messages:
    1 222
    Inscrit:
    23 Décembre 2010
    CNC et carte ARDUINO
    Bonjour,

    Je voudrais réussir à faire tourner des moteurs type Nema23 sur une carte FUNDINO Mega2560 (clone chinois de la carte officielle ARDUINO Mega2560) en utilisant des drivers unitaires TB6560.
    Comme je suis complêtement néophyte en ARDUINO, programmation, fonctionnement d'un driver, etc ... je m'appuie totalement sur les infos récoltés sur internet.
    Le hic (pour le moment) est que la carte Mega2560 est loin d'être la plus documentée pour le pilotage d'une CNC, et que je n'ai rien trouvé sur le cablage de ce driver.
    Ca commence plutot mal. FUNDUINO MEGA 2560 recto.jpg
    ↑  Carte FUNDUINO MEGA 2560 (Prix : 13€)
    DRIVER TB6560.jpg
    ↑  DRIVER TB6560 (Prix : 6.5€)
    :-D L'avantage c'est que l'investissement pour effectuer l'essai est très faible : 3 drivers et une carte FUNDUINO pour 32€ ...

    L'installation du driver de la carte se fait sans problème avec Windows (Vista) si on installe au préalable la dernière version du logiciel Arduino (Version 1.05 r2).
    La carte FUNDUINO se branche sur un port série. Le port USB est transformé en un port série COM (COM3 dans mon cas). Le logiciel Arduino fourni un environnement de travail permettant d'écrire ses programmes, de les compiler et de les televerser ensuite dans la carte. Il est fourni avec un tas d'exemples de programmation permettant d'apprendre pas à pas les différentes interactions avec des capteurs de toute nature grace à des bibliothèques spécialisées qui sont également fournies. Le prix des capteurs et actionneurs est très bas, on peut donc apprendre sans se ruiner.

    Pour le moment, avec un budget de 1,48€ j'ai réussi à faire tourner ce petit moteur 28BYJ-48.
    C'est un moteur bipolaire 5V ayant 64 pas et une réduction mécanique de 64.Ce qui fait que pour tourner d'un tour il faut 2048pas (64x64/2).
    Pour ce moteur on utilise directement la librairie stepper-h arduino. Il est alimenté directement par l'USB. Sa fréquence de 100Hz ne lui permet pas de tourner vite.
    :-D J'ai réussi à faire 1 tour en 6s dans les 2 sens. Moteur 28BYJ-48 et son driver.jpg
    ↑  MOTEUR 28BYJ-48 et son DRIVER


    Carlos78
     
  2. victorjung

    victorjung Compagnon

    Messages:
    552
    Inscrit:
    12 Octobre 2012
    Localité:
    Yverdon Suisse
    Dernière édition par un modérateur: 16 Avril 2015
  3. carlos78

    carlos78 Compagnon

    Messages:
    1 222
    Inscrit:
    23 Décembre 2010
    CNC et carte ARDUINO
    @VICTORJUNG : Merci pour l'info

    Un des problèmes pour faire tourner un moteur PAP avec du Gcode est (semble-t-il) que la librairie stepper-h arduino d'origine n'est pas du tout adaptée au fonctionnement d'une CNC et qu'il faut passer par un programme spécifique (GRBL). Son installation n'est pas pour tout de suite.

    Je voudrais dans un 1er temps vérifier le cablage d'un driver et me contenter simplement de faire tourner un moteur PAP que je connais (GB23H282, bipolaire 4 fils) avec une alimentation de 24V.

    Etant neophyte, je me pose quelques questions :

    1) Arduino dit qu'il faut toujours relier les GND des alimentations commande et puissance : VRAI/FAUX ? Faut-il alimenter la FUNDUINO avec une alim 5V externe (et non par l'USB) ?
    2) La DATASHEET du TB6560AHQ dit (en anglais) qu'il faut impérativement respecter une séquence lors de l'initialisation : Mise sous tension alim de commande / Mise sous tension alim de puissance / Mette ENABLE HIGH / Les outputs sont alors ENABLE / Mettre RESET HIGH / Les outputs sont alors DISABLE / Le compteur interne avance ... C'est pas très clair pour moi. Quelqu'un a-t-il un exemple d'initialisation ?
    3) Comment gère-t-on en amont le délai d'initialisation du dialogue avec le moniteur (par le COM) dans la phase d'initialisation du driver ?
    4) Le driver a 6 entrées : EN- / EN+ / CW- / CW+ / CLK- / CLK+ ou est le RESET ? sur la carte driver ? Est-il préferable de cabler EN- / CW- / CLK- directement au GND ou à des sorties numériques qu'on peut activer au bon moment en LOW ?
    5) J'ai lu sur internet qu'il y a 2 possibilités de cablage des 6 entrées : en "YIN" (cablage des EN-, CW-, CLK- au GND, activation par un signal HIGH)) et le "YANG" ( EN+, CW+, CLK+ au GND, activation par un signal LOW). J'aurais tendance à préferer le "YIN". Quel est l'intèrêt du cablage inverse ?
    6) En regardant quelques programmes je crois comprendre que pour avancer d'un pas il faut dans le programme une séquence en 3 temps qui consiste à mettre à LOW la sortie numérique sur laquelle est cablée CLK, puis la mettre en HIGH, puis programmer impérativement un DELAY très court. VRAI/FAUX ? Quel est l'impact de ce délai : Vitesse ? quelles sont les valeurs admissibles (MIN / MAX) ?
    7) Le changement de direction est simplement activé en inversant l'état de la sortie numérique sur laquelle est cablée CW. VRAI / FAUX ?
    8) Quel est l'impact du réglage du DECAY SETTING ? (0%, 25%, 50%, 100%)

    Carlos78

    :supz: ------- > LES REPONSES A CES QUESTIONS SONT PLUS LOIN
     
  4. victorjung

    victorjung Compagnon

    Messages:
    552
    Inscrit:
    12 Octobre 2012
    Localité:
    Yverdon Suisse
    CNC et carte ARDUINO
    Re: Moteur PAP et carte ARDUINO

    En effet stepper.h tu peux t'en inspirer la modifié maistelle qu'elle ne fait que tourner des moteurs, pour une cn faut gérer les accélérations tout ca tout ca...
    1) Arduino dit qu'il faut toujours relier les GND des alimentations commande et puissance :ca dépend comment c'est foutu, a priori la non, juste la masse de l'arduino et du drivers / Faut-il alimenter la FUNDUINO avec une alim 5V externe (et non par l'USB) ca change rien !
    2) La DATASHEET du TB6560AHQ dit (en anglais) qu'il faut impérativement respecter une séquence lors de l'initialisation : Mise sous tension alim de commande / Mise sous tension alim de puissance / Mette ENABLE HIGH / Les outputs sont alors ENABLE / Mettre RESET HIGH / Les outputs sont alors DISABLE / Le compteur interne avance ... C'est pas très clair pour moi. Quelqu'un a-t-il un exemple d'initialisation ?pas d'exemple mais suis ce qui est dit et ca devrait aller!
    3) Comment gère-t-on en amont le délai d'initialisation du dialogue avec le moniteur (par le COM) dans la phase d'initialisation du driver ? c'est quoi le moniteur pour toi je te suis pas trop
    4) Le driver a 6 entrées : EN- / EN+ / CW- / CW+ / CLK- / CLK+ ou est le RESET ? sur la carte driver ? Est-il préferable de cabler EN- / CW- / CLK- directement au GND ou à des sorties numériques qu'on peut activer au bon moment en LOW ?dans un premier temps j'essayerai au gnd comme le schéma
    5) J'ai lu sur internet qu'il y a 2 possibilités de cablage des 6 entrées : en "YIN" (cablage des EN-, CW-, CLK- au GND, activation par un signal HIGH)) et le "YANG" ( EN+, CW+, CLK+ au GND, activation par un signal LOW). J'aurais tendance à préferer le "YIN". Quel est l'intèrêt du cablage inverse ? Je connais pas ces cablages désolé
    6) En regardant quelques programmes je crois comprendre que pour avancer d'un pas il faut dans le programme une séquence en 3 temps qui consiste à mettre à LOW la sortie numérique sur laquelle est cablée CLK, puis la mettre en HIGH, puis programmer impérativement un DELAY très court. VRAI/FAUX ? Quel est l'impact de ce délai : Vitesse ? quelles sont les valeurs admissibles (MIN / MAX) ?a priori oui sur la vitesse, mini-> faut que le moteur ait le temps de tourner, maxi, qu'il fasse plus que 2 pas avant que tu t'endormes!
    7) Le changement de direction est simplement activé en inversant l'état de la sortie numérique sur laquelle est cablée CW. VRAI / FAUX ?oui simplement
    8) Quel est l'impact du réglage du DECAY SETTING ? (0%, 25%, 50%, 100%)ou se trouve se réglage ?

    toutes tes interrogations ou presque viennent de l'utilisation de la biblio stepper, tu voudrais pas essayer de faire tourner ton moteur avec un prog bien a toi ou tu allumes et eteins les sorties au bon moment!
    bon courage en tout cas
     
  5. orion-p87

    orion-p87 Nouveau

    Messages:
    27
    Inscrit:
    15 Septembre 2012
    Localité:
    San-Rafeù (Saint-Raphaël dans le Var)
  6. speedjf37

    speedjf37 Compagnon

    Messages:
    980
    Inscrit:
    15 Octobre 2009
    Localité:
    indre et loire
  7. carlos78

    carlos78 Compagnon

    Messages:
    1 222
    Inscrit:
    23 Décembre 2010
    CNC et carte ARDUINO
    @VICTORJUNG : je vais effectivement écrire moi-même quelques bouts de programme pour tester et me faire une opinion.
    Le "moniteur" c'est le moniteur série qui fait partie de l'environnement de développement ARDUINO. Le DECAY SETTING c'est les switchs S5 et S6 des drivers

    @ORION-P87 : Sur le site de civade.com il y a effectivement plein d'infos qui me serviront je l'espère pour installer le moment venu la version de grbl qui va bien (après l'avoir configurée). C'est ce site qui m'a amené par curiosité a essayé de tester l'ARDUINO pour une CNC. Dans son cas c'est une carte ARDUINO UNO et effectivement il utilise un shield ARDUINO spécifique qui reçoit directement des drivers TB6560 miniatures (les POLOLU). Du coup, Il y a effectivement beaucoup moins de problèmes de cablage puisque tout est intégré et prévu pour tourner sur une ARDUINO officielle. Sur You Tube, j'ai vu également que beaucoup branchent l'ARDUINO directement sur le connecteur parallèle d'une carte TB6560 complète (celle qui prévue pour 3 ou 4 moteurs PAP), du coup le cablage est là aussi simplifié.
    J'ai choisi ces drivers plus "classiques" parce que ceux-ci sont pas chers et qu'ils pourront toujours servir (si ça ne marche pas) sur une CNC en ajoutant une bob basique à 10€ branchée sur le port parallèle d'un vieux PC. Leur inconvenient (pour le moment) pour l'ignorant que je suis c'est leur cablage et qu'ils n'ont pas été faits spécifiquement pour l'ARDUINO.

    @SPEEDJF37 : j'ai justement commencé par chercher avec grbl mega 2560. Il devrait y avoir une solution pour charger grbl sur cette carte puisqu'elle est compatible de l'ARDUINO mega 2560.

    Carlos78
     
  8. carlos78

    carlos78 Compagnon

    Messages:
    1 222
    Inscrit:
    23 Décembre 2010
    CNC et carte ARDUINO
    Bonjour,

    Je commençais à désesperer de réussir à faire simplement tourner mon PAP avec ma carte Arduino Mega2560 et mes 3 drivers TB6560.
    Mes recherches sur le net n'ont rien donné si ce n'est des tas d'exemples de fichiers source qui sont tous incapables de faire tourner ce PAP, et des exemples de cablage des drivers assez foireux. Bref une très GROSSE perte de temps. La librairie stepper-h n'est pas du tout adapté à ce besoin, et les commandes simplistes qui consistent à envoyer un pulse sur le CLK (=STEP) sont inopérantes dans mon cas.

    :prayer: Grâce à l'aide de LETARTARE, j'ai réussi enfin à faire tourner le moteur !!!! IMG_3106.JPG
    ↑  Câblage driver TB6560 sur Funduino (Arduino) Mega2560


    TUTO d'installation pour ceux que ça intéresse (toutes les infos m'ont été fournies par LETARTARE) :

    CABLAGE ENTREES DU DRIVER :
    CLK+ et CW+ reliés au +5V de la carte arduino
    CLK- (STEP) sur la broche 22 (configurable dans le paramétrage)
    CW- (DIR) sur la broche 23 (configurable dans le paramétrage)
    aucune liaison sur EN- et EN+
    pas de GND commun entre le 5v de l'arduino (par usb) et le 24v de l'alimentation puissance.

    CABLAGE SORTIES DU DRIVER et ALIMENTATION :
    RAS c'est du classique : B-, B+, A-, A+, GND, +24V

    PARAMETRAGE DES SWITCHS DU DRIVER
    Ampérage 2A (SW1 On, SW2 Off, SW3 On, S1 Off)
    Stop courant 20% (S2 On)
    Mode d'excitation 1/1 = pas entier (S3 Off, S4 Off)
    Réglage Decay 100% (S5 On, S6 On)

    PROGRAMMATION DE LA CARTE ARDUINO MEGA 2560
    :lol: il faut à peine 10mn ...
    - récupérer le fichier zip telechargeable ici : https://github.com/LETARTARE/Grbl_with_Arduino. ce fichier contient 4 configurations de GRBL (cartes UNO et MEGA).
    - Extraire de ce zip le répertoire Grbl82Mega2560 dans le répertoire Libraries. Ce répertoire a été crée lors de l'installation de la carte arduino (C:/Program Files/arduino/libraries).
    - Lancer normalement l'environnement de développement arduino.
    - Charger le sketch qui se trouve maintenant dans l'onglet : "Fichier / Exemples / Grbl82Mega2560 / Grbl82Mega2560.ino"
    - Surprise : Ce sketch pour un non initié comme moi parait VIDE. Il n'en est rien.
    - Raccorder la carte arduino (vérifier si le port COM est OK)
    - Téleverser comme d'habitude ce programme sur la carte (sa taille est de 25 688 octets).
    :supz: C'est fini. La carte raccordée sur un port USB du PC est maintenant prête à donner des instructions aux drivers ...

    DIALOGUER AVEC LA CARTE ARDUINO MEGA 2560
    :lol: Encore 10mn ...
    - Installer la Version 3.5.1 de Grbl Controller Windows
    - Lancer le programme Grbl Controller 3.5.1 ( :-D en français)
    - Choisir le port de communication (COM3 pour moi), la vitesse de transmission à 57600 bauds. Sur l'onglet "Outils / Options" cocher la case "valider le mode 4 axes"
    - Raccorder la carte arduino au PC et appuyer sur la touche "OUVRIR"
    :supz: Le dialogue s"établi avec la carte ... On peut tester immédiatement les commandes manuelles et un programme Gcode. Capture ecran Grbl Controller 3.5.1.JPG
    ↑  Ecran Grbl Controller 3.5.1

    Ca marche impeccable . Les accélerations sont puissantes.
    Je vais maintenant m'intéresser au paramétrage de GRBL ...

    :mad: 3 jours que je cherchais et :-D :-D :-D à peine une 1/2 heure pour y arriver.

    Merci LETARTARE

    PS1 : ATTENTION aux différentes versions de Grbl :
    1- l'assignation des broches se retrouve
    soit dans "config.h" pour la 0.82,
    soit dans "pin_map.h" pour les 0.8c,
    soit dans "cpu_map.h" pour les 0.9x,
    elle est différente pour la Mega2560 selon les versions (0.82 et 0.9d),
    2- les versions de Grbl se situe dans "settings.h"

    PS2 : la version 3.5.1 de GrblController téléchargée sur le site Zapmaker est partiellement francisée.
    LETARTARE propose de remplacer le fichier GrblController_fr.qm (C:/Program Files/Grbl Controller/trlocale) par celui-ci Voir la pièce jointe GrblController_fr.zip

    Carlos78
     
  9. LETARTARE

    LETARTARE Ouvrier

    Messages:
    350
    Inscrit:
    27 Septembre 2010
    Localité:
    Haute-Savoie
    CNC et carte ARDUINO
    Bonjour à tous,
    @carlos78
    c'est simplement que Zapmaker (l'auteur du logiciel) n'a pas eu le temps d'insérer ma traduction (je suis le traducteur en français) dans la version proposée 3.5.1.

    Je tiens à préciser que la version de Grgl-0.82 pour la Mega2560 est une ancienne version (0.81) sauvée des eaux dont j’ai fait un double sur mon site dans laquelle j'ai juste corrigé quelques oublis de l'auteur (inconnu pour moi), mais cette version à l'avantage de piloter 4 axes théoriquement.
    Les essais de synchronisme complets des quatre axes n'ont pas été réalisés.

    Bien cordialement à tous.
     
  10. carlos78

    carlos78 Compagnon

    Messages:
    1 222
    Inscrit:
    23 Décembre 2010
    CNC et carte ARDUINO
    Bonjour,
    Le fichier config.h (celui contenu dans Grbl82Mega2560) contient les infos de paramétrage des pins sur la carte arduino Mega2560 :

    config.h - compile time configuration
    ...
    #define BAUD_RATE 57600
    ...
    #define X_STEP_BIT 0 // MEGA2560 Digital Pin 22
    #define Y_STEP_BIT 2 // MEGA2560 Digital Pin 24
    #define Z_STEP_BIT 4 // MEGA2560 Digital Pin 26
    #define C_STEP_BIT 6 // MEGA2560 Digital Pin 28
    #define X_DIRECTION_BIT 1 // MEGA2560 Digital Pin 23
    #define Y_DIRECTION_BIT 3 // MEGA2560 Digital Pin 25
    #define Z_DIRECTION_BIT 5 // MEGA2560 Digital Pin 27
    #define C_DIRECTION_BIT 7 // MEGA2560 Digital Pin 29
    ...
    #define STEPPERS_DISABLE_BIT 7 // MEGA2560 Digital Pin 30
    ...
    #define LIMIT_PULLUP
    #define X_LIMIT_BIT 6 // MEGA2560 Digital Pin 31
    #define Y_LIMIT_BIT 5 // MEGA2560 Digital Pin 32
    #define Z_LIMIT_BIT 4 // MEGA2560 Digital Pin 33
    #define C_LIMIT_BIT 3 // MEGA2560 Digital Pin 34
    ...
    #define HOME_X
    #define HOME_Y
    #define HOME_Z
    #define HOME_C
    ...
    #define SPINDLE_ENABLE_BIT 3 // MEGA2560 PWM Pin 6
    ...
    #define SPINDLE_DIRECTION_BIT 1 // MEGA2560 Digital Pin 36
    ...
    #define COOLANT_FLOOD_BIT 0 // MEGA2560 Digital Pin 37
    ...
    #define COOLANT_MIST_BIT 2 // MEGA2560 Digital Pin 35
    ...

    :-D :-D :-D :-D On peut donc piloter 4 moteurs avec les limites, controle de la broche et de l'arrosage ...

    J'ai cru comprendre qu'on ne peut pas changer impunement l'affectation des broches car il y a un traitement par mappage d'un masque qui est éffectué sur les blocs d'entrées de la carte arduino, ce qui permet de faire une écriture extrêmement rapide car simultanée sur les 8 entrées d'un bloc.

    J'ai fait des essais en jouant sur les microsteps et sur le réglage du decay car le réglage en pas entier est trop "rude" avec des à coups au démarrage et à l'arrêt.
    on peut mettre : 1/16 de pas et decay à 0%, ou 1/8 de pas et decay à 25%, ou 1/2 pas et decay à 50% je préfère car c'est plus fluide.

    Carlos78
     
  11. fabrice c

    fabrice c Modérateur

    Messages:
    3 034
    Inscrit:
    19 Juin 2008
    Localité:
    reunion
  12. carlos78

    carlos78 Compagnon

    Messages:
    1 222
    Inscrit:
    23 Décembre 2010
    CNC et carte ARDUINO
    @FABRICE C : Je n'ai pas testé avec un moteur.
    La broche apparait dans le fichier config.h (dans cette version de GRBL) comme étant pilotée par les pins 6 (Marche/Arrêt) et 36 (Sens de rotation) de la Mega2560 .
    :-D :-D J'ai essayé avec une LED branchée entre GND et la pin6 : La commande M3 allume la led et bien sur la commande M5 éteint la led
    J'imagine que ces 2 pins doivent ensuite commander des relais de puissance pour commander la broche. IMG_3109.JPG
    ↑  Relais 220v 7A (Prix 2€)

    Carlos78
     
  13. fabrice c

    fabrice c Modérateur

    Messages:
    3 034
    Inscrit:
    19 Juin 2008
    Localité:
    reunion
  14. carlos78

    carlos78 Compagnon

    Messages:
    1 222
    Inscrit:
    23 Décembre 2010
  15. LETARTARE

    LETARTARE Ouvrier

    Messages:
    350
    Inscrit:
    27 Septembre 2010
    Localité:
    Haute-Savoie
    CNC et carte ARDUINO
    Bonsoir,
    sur Mega2560 + Grbl0.82 le signal de ces broches peut varier selon la valeur de la directive de configuration "$8=xx" (0 ou 3 dans la suite).
    Sur les images suivantes CH1=Cw- et CH2=Clk- et pour une même commande "g01 X1000"
    1- "Clk-" est au niveau 1 pendant 20 µS et au niveau 0 pendant 100 µS, "Cw-" est au niveau 0
    GrblMegaDirClkDir.jpg
    ↑  directive " =0 " et la commande " g01 X1000 "

    2- Clk- est au niveau 0 pendant 20 µS et au niveau 1 pendant 100 µS, "Cw-" est au niveau 1
    GrblMegaDirClkInv.jpg
    ↑  directive " =3 " , on inverse les deux et la commande " g01 X1000 "


    Il faudra donc choisir la configuration de Grbl en accord avec l'étage de puissance du moteur, à vérifier sur votre montage.

    Bien cordialement
     
Chargement...

Partager cette page