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

Manette JOG en Do it Myself

Discussion dans 'Electronique' créé par chlore, 10 Septembre 2014.

  1. chlore

    chlore Compagnon

    Messages:
    2 329
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    Manette JOG en Do it Myself
    Voici un petit projet que je suis en train de réaliser : une commande manuelle pour ma CNC

    Si ma fraiseuse est assez commune, une BF20 même pas "L", son électronique de CNC l'est un petit peu moins sur le forum : servo moteurs AC 200 W pour les axes X,Y,Z, servo moteur 100W pour le 4eme axe (à base d'harmonic drive) et servo moteur 750W en guise de broche (solution provisoire qui s'éternise et que je vais de fait titulariser, j'espère qu'il ne va pas se mette en grève dès que le CDI sera signé). Tout le monde est de la même marque et même de la même série soit SAMSUNG FARA CSDJ+
    Le tout est commandé par GALAAD via une carte interpolatrice Pulsar de chez axemotion.


    Jusqu'à présent je n'utilisais que les signaux step/dir des servo pour les axes et la commande de vitesse +/- 10V pour la broche (via un potentiomètre).
    Pour ce qui est des commandes manuelles je me servais soit du clavier soit d'une manette de jeu type XBOX sans fil.
    MAIS C'EST FINI !


    Il existe pour Mach3 des manettes de commandes spécifiques "CNC" mais pour Galaad rien alors j'ai décidé de faire la mienne.

    Le cahier des charges :

    - Fonctionner de manière totalement indépendante de Galaad/carte interpolatrice pour avoir une vraie commande manuelle avec DRO intégré
    - Fonctionner avec Galaad/carte interpolatrice et dans ce cas la manette ne sert plus qu'à lancer/arrêter la CNC plus quelques fonctions supplémentaires telles que définition des origines, pilotage de sonde 3D etc ...
    - Etre capable de piloter un tour numérisé (pas encore acheté) et mon router alu (pas fini) qui seront/sont équipés des mêmes types de servo moteurs (100W pour le router (la broche est un 400W mais d'une autre marque : à voir) et à voir pour le tour mais cela devrait être des 100W aussi pour les axes et si je change le moteur de broche cela sera idem la BF20 : 750W).
    - Comme il va y avoir beaucoup d'info a passer et à recevoir la manette devra avoir un afficheur LCD tactile couleur pour limiter le nombre de boutons ce qui permettra en plus d'être capable de s'adapter à chaque machine et/ou fonctions auto/manu.
    - Le tout en "sans fil"

    Pour cela :
    Développer une électronique/programmation capable de commander les servo soit en mode "vitesse" (cas de la broche généralement) soit en mode "position"et récupérer des info : retour codeur pour faire un DRO, état des alarmes servo si jamais il y en a, retour vitesse et surtout couple réel.

    Les commandes/info seront sur un PCB sur chaque servo, le tout collecté et géré par une carte spécifique (dont le coeur sera une arduino méga 2560) assurant la liaison avec Galaad et/ou la manette.


    A l'heure actuelle :
    Le boitier manette est fait : impression 3D chez Shapeways (une centaine d'euro quand même mais la qualité est là). Reste à faire les finitions : ponçage, apprêt, peinture + vernis soft touch.

    Les cartes qui sont sur chaque servo : quelques détails à régler avant de faire une autre fournée car j'ai oublié de tenir compte de l'impédance des circuits analogiques (retour vitesse et couple) ce qui diminue la vitesse d’acquisition des ADC. Mettre une régulation 5V sur chaque carte pour ne plus se servir de celle fournie par la carte arduino (en réalité 4.7 V) qui en plus est un peu juste pour me permettre d'avoir le +/-10V sur les charges "pump" pour la commande analogique (mode vitesse) mais bon ça ce n'est pas gros problèmes car de toute façon en fait les servo sont programmer pour fonctionner en -/+ 8V (600 tours/volt) mais cela m'oblige à changer les AOP LM358 par des "rail-to-rail".
    La carte de gestion (sur la Mega 2560) reste à faire, n'existe même pas à l'état de proto (par contre j'arrive très bien à piloter un axe/broche).

    Il reste à définir si je vais mettre le retour codeur sur chaque carte servo (je commence à manquer de place) ou tous sur la carte de gestion.

    Le sans fil sera traité plus tard.

    La compatibilité avec Galaad va m'obliger à développer un driver windows HID ce qui pour moi est le plus dur (mais j’espère pas insurmontable)

    Quelques photos :

    Le boitier tel que réçu de Shapeways. Noter le "velouté" de la surfaces. Les cotes sont respectées à quelques 1/100 près tout au moins celles que j'ai contrôlé ! Les deux parties s'emboitent à la perfection. Le seul truc qui n'est pas top c'est l'emplacement du clavier (profondeur 25/100) les bord sont arrondis. je ferais une reprise en fraisage

    3d.jpg
    1.jpg
    2.jpg
    velouté.jpg
    detail.jpg
    Clavier 600 dppi.jpg

    La batterie et le "jog". Comme le jog et l'écran travaillent en 5V il va falloir un booster pour passer de 3.7V à 5V

    bat - jog.jpg

    Les cartes "servo" qui sont montées sur chaque servo. Les PCB ont été fait chez Seeed avec traitement plaqué or.

    PCB.jpg
    samsung.jpg
    envers.jpg

    L'ecran LCD 3.5": La page DRO/commande manuelle du jog (l'axe en orange est l'axe en cours de déplacement par le jog). Possibilité de travailler en mode Absolu ou relatif, jauge de puissance (couple) pour les axes sauf le A qui ne sert à rien (trop faible pour que ce soit utile), boutons de retour/définition d'origine (machine ou pièce, bouton "..." permettant d'avoir d'autres boutons de réglages. Bouton de réglage de sensibilité du jog (0.01/0.02 mm ou 0.01/0.10 ° pour le A). Marche/arret broche. Sens broche. Plus d'autres a faire ...

    LCD.jpg
     
  2. Fennec

    Fennec Ouvrier

    Messages:
    269
    Inscrit:
    5 Janvier 2008
    Localité:
    Suisse VD
    Manette JOG en Do it Myself
    Eh ben tu as l'air calé en électronique :) Et ça ça s'annonce prometteur.
    J'aime bien ton écran LCD graphique couleur, ça change de toutes les MPG pour mach (made in china) avec leur écrans mono chrome et textuels !
    Tu devrais la peaufiner + wireless et la commercialiser pour Glaad :D

    Tout de bon pour la suite
     
  3. Pierreg60

    Pierreg60 Compagnon

    Messages:
    2 590
    Inscrit:
    1 Novembre 2006
    Localité:
    F-57700 Moselle
  4. wika58

    wika58 Modérateur

    Messages:
    10 366
    Inscrit:
    17 Décembre 2006
    Localité:
    F-54560 / Lorraine
  5. chlore

    chlore Compagnon

    Messages:
    2 329
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    Manette JOG en Do it Myself
    En fait au niveau électronique c'est pas vraiment compliqué, il n'y a rien qui sorte des sentier battus. Je n'ai rien inventé on trouve les principes sur le web, c'est juste de l'assemblage sur un seul circuit (de 50*50 mm maxi). Le plus dur en fait c'est le routage du circuit en prenant soin d'isoler au max l'analogique du numérique.

    Pour la carte servo ,il y a :
    1 DAC qui permet de sortir une tension de 0 à 5V qui est transformé en -10 à +10V à l'aide d' ampli op alimentés par un "charge pump"(qui permet de transformer une tension de +5V en une alim symétrique +/- 10V). Cela permet de faire la commande de vitesse en analogique
    1 ADC double canal qui permet de lire les tensions analogiques de vitesse et de couple (sortie en +/- 10V ramenées en 0-5V à l'aide d'un réseau de résistances auquel je vais rajouter un ampli op pour faire l'adaptation d’impédance)
    1 port GPIO qui me permet de lire les défauts pouvant se présenter (et arrêter tout les autres servo) , de mettre en marche le servo, de changer le mode (vitesse ou position) ainsi que de faire le RAZ du servo en cas d'erreur.
    Et je pense rajouter un compteur/décodeur quadrature pour lire le retour du codeur
    Tout ces circuits forment un bus SPI.
    Il y un aussi un driver de ligne pour permettre d'utiliser au max la vitesse des step/dir (cela ne devrait pas être utile car la fréquence maxi de la carte interpolatrice est de 200 kHz et un simple câblage en direct aurait pu suffire mais bon on ne sait jamais, au moins je n'aurais à pas revenir dessus le jour où ...)
    Plus 3 optocoupleurs (simulation de contacteur en 24V) quelques résistances et condensateurs.

    La carte de gestion (shield) sur la carte arduino ne comportera que peu d'électronique('une gestion des interruptions pour les alarmes servo car pas assez d''entrée "interupt" sur la carte arduino ainsi qu'un aiguilleur pour les dir/step) . Ce sera surtout une carte permettant de connecter tout ce petit monde y compris certaines entrées sorties de la carte interpolatrice qui seront donc en doublon comme par exemple les signaux dir/step, les limites, le palpeur, etc ...)
    Il y aura un émetteur récepteur HF

    Dans la manette :
    L'afficheur LCD est un afficheur dit "intelligent" qui recevra les paramètres via HF (en fillaire dans un premier temps). Cet afficheur est doté d'un GPIO capable de gérer le petit clavier ainsi que de traiter les signaux en quadrature du "jog". C'est l'afficheur qui se charge du graphisme, (l'arduino ne prend en charge que les valeurs brutes).
    Il y aura un circuit de gestion de la batterie (charge et booster de tension).
    Un circuit de mise en route et arrêt de l’électronique (l’arrêt doit se faire par soft car il est déconseillé de couper bêtement le LCD comme avec un simple switch)
    et bien sur un émetteur/récepteur HF

    Comme déjà dit dans la présentation ce qui me fait le plus peur c'est le développement du driver HID (qui permet de simuler un clavier/souris) pour communiquer avec Galaad. J'ai deja programmé sous windows mais jamais des drivers. A priori la clé USB HF est déjà fonctionnelle en HID (ce qui me retire une très grosse épine du pied car c'est de la prog de 8051 que je n'ai jamais fait)


    Donc en gros c'est principalement de la programmation (l'afficheur, l'arduino et le driver windows)
     

Partager cette page