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

Demarrage programme par bouton

Discussion dans 'EMC2 / LinuxCNC' créé par DEN, 15 Décembre 2015.

  1. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    Demarrage programme par bouton
    Bonjour à tous !

    Je voudrais avoir un bouton poussoir physique pour lancer le programme. Ca remplacerait l'utilisation de la touche R du clavier. J'avais commencé à coder un truc sur une attiny85 (genre arduino) pour avoir juste une touche R déportée câblée sur USB.

    Et puis en cherchant un peu je suis tombé sur ça :

    http://linuxcnc.org/docs/html/hal/halui-examples.html

    Est-il possible en utilisant cet exemple, de sortir un pin sur le port parallèle dédié au lancement du programme ? Ou suis-je sur la mauvaise voie ?

    Merci d'avance pour toute info !
     
  2. nopxor

    nopxor Compagnon

    Messages:
    1 363
    Inscrit:
    27 Mai 2010
    Localité:
    Yvelines
  3. gaston48

    gaston48 Compagnon

    Messages:
    6 186
    Inscrit:
    26 Février 2008
    Localité:
    59000
    Demarrage programme par bouton
    Bonsoir,
    Tu es dans la bonne voie,
    Ce sont des instructions à rentrer avec un éditeur dans les 2 fichiers .ini et .hal
    une instruction dans .ini dans la section:
    [HAL]
    HALUI = halui
    et les autres dans le fichier .hal
    Attention, il ne faudra plus utiliser stepconf après !

    tu remplaces cette instruction générique <your input pin> par une instruction
    analogue à celle ci : parport.0.pin.13.in 13 étant un exemple de pin d'entrée de libre sur ton port //

    Ensuite il faut que tu rentres un composant hal pour la fonction logique ET

    http://linuxcnc.org/docs/2.7/html/man/man9/and2.9.html

    Ces 2 lignes sont à rentrer également dans le fichier .hal avant les lignes du lien que tu as donné

    loadrt and2 count=1
    addf and2.0 servo-thread
     
  4. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    Demarrage programme par bouton
    Cool !

    C'est exactement ce que je cherchais à comprendre ! Je vais essayer, puis je donnerai un feedback dès que ça marche ...

    Merci beaucoup !
     
  5. Doctor_itchy

    Doctor_itchy Modérateur

    Messages:
    3 554
    Inscrit:
    20 Avril 2007
    Demarrage programme par bouton
    sinon un vieux joystick usb et tu as 10 as 14 entrée ttl assignable :) tu garde le pcb et tu soude les inter que tu as besoin , ça se trouve a 1€ dans les cash et en brocante :wink:
     
  6. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    Demarrage programme par bouton
    Bonne année à tous !

    Voilà le feedback sur mes essais comme promis :

    J'ai rajouté les lignes au fichier *.hal, et ça fonctionne, sauf que ça a la fâcheuse tendance à démarrer tout seul lorsqu'on ouvre un nouveau programme ...

    Donc un peu embêtant, si on fait pas gaffe ça peut faire de la casse ...

    Ah oui j'ai écrit : parport.0.pin-11-in , c'était cette synthaxe partout ailleurs, mais je pense pas que ça puisse changer le comportement prévu ...
     
  7. gaston48

    gaston48 Compagnon

    Messages:
    6 186
    Inscrit:
    26 Février 2008
    Localité:
    59000
    Demarrage programme par bouton
    Bonne année à toi aussi.
    Il faut que tu ailles scruter le signal avec halscope pour voir un peu avec quelle action le parasite est corrélé.
    De toute façon, comme c'est un interrupteur physique, tu as tout intérêt à un intercaler un anti-rebond logiciel
    qui va en même temps, en principe, éliminer une impulsions parasite brève.
    C'est le composant hal debounce qu'il faut intercaler entre le signal du port // et la commande halui

    http://linuxcnc.org/docs/2.7/html/man/man9/debounce.9.html

    loadrt debounce cfg=1
    addf debounce.0 base-thread
    setp debounce.0.delay 500

    debounce.0.0.in
    debounce.0.0.out
     
    Dernière édition: 6 Janvier 2016
  8. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    Demarrage programme par bouton
    Merci pour ta réponse,

    j'ai plus l'impression que c'est une question de "valeurs initiales", ou de logique : du type : dès que toutes les conditions au démarrage sont remplies ça démarre ...

    C'est peut-être pas un "and" qu'il faut ... ?

    Car c'est vraiment : je fais "file open ...", dès que le fichier est chargé ça part ...
     
  9. gaston48

    gaston48 Compagnon

    Messages:
    6 186
    Inscrit:
    26 Février 2008
    Localité:
    59000
    Demarrage programme par bouton
    L'entrée halui.program.run est activée par le bouton externe ou par le bouton axis
    et si le mode auto est validé.
    Je pense qu'il faudrait déjà voir si c'est une activation fugitive et reproductible avec halscope,
    ou si cela a une allure de parasite.
     
  10. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    Demarrage programme par bouton
    Merci pour les pistes !
    Je vais essayer de voir avec Halscope ce soir (jamais encore utilisé - ça sera une découverte).
    Pour la reproductibilité, en fait c'est systématique ... suffit d'ouvrir ou de réouvrir un fichier (avec du gcode) et le programme démarre (si les axes sont "enabled" et "zeroed") ...
    Mais par le bouton ça marche aussi ...
     
  11. gaston48

    gaston48 Compagnon

    Messages:
    6 186
    Inscrit:
    26 Février 2008
    Localité:
    59000
    Demarrage programme par bouton
    Quand je branche directement la sortie halui.mode.is-auto sur l'entrée halui.program.run
    il se produite le phénomène que tu décris.
    Normalement ça n'est pas possible car le signal, pour passer, doit satisfaire la condition ET avec l'activation
    du bouton.
    Donc pendant un bref moment, soit la condition ET n'est pas pris en compte, soit une pulse parasite se
    promène sur la voie bouton ? si c'est transitoire dans les 2 cas,
    faire passer and2.0.out à travers un timedelay ou un debounce devrait résoudre le soucis.
    Concernant la tempo du debounce comme c'est un compteur décompteur la valeur du paramètre
    doit correspondre à n fois une boucle basethread.
     
    Dernière édition: 6 Janvier 2016
  12. speedjf37

    speedjf37 Compagnon

    Messages:
    980
    Inscrit:
    15 Octobre 2009
    Localité:
    indre et loire
    Demarrage programme par bouton
    bonjour,

    j'utilise un pic en USB qui émule un clavier HID

    La touche R pour le Run
    P pour pause
    S pour la reprise reStart

    + les touches jog X Y Z (avec une touche Lent/Rapide)

    Toucher
    Valid
    Esc
    F2
    F3
    F7
    F8
    F9

    le proto
    telec_hid.png

    le pcb
    telec_hid_pcb.png

    il manque l'axe A ou B depuis que j'ai un 4e axe
    et la config est bizarre quant j'utilise la machine avec la broche horizontale (Z et X inversés)

    J'hésite à faire plusieurs interfaces

    Cordialement JF
     
  13. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    Demarrage programme par bouton
    Encore merci pour votre aide !

    J'ai réussi à faire fonctionner correctement le bouton :
    pour cela j'ai splitté la première ligne de l'instruction (voir http://linuxcnc.org/docs/html/hal/halui-examples.html) en deux, comme d'ailleurs suggéré dans le même lien.

    La partie USB m’intéresse aussi, mais ça sera pour un peu plus tard...
    Faut-il aussi le mapper dans HAL, ou c'est comme un deuxième clavier ?

    A bientôt!

    Denis.
     
  14. speedjf37

    speedjf37 Compagnon

    Messages:
    980
    Inscrit:
    15 Octobre 2009
    Localité:
    indre et loire
    Demarrage programme par bouton
    C'est un 2e clavier !

    JF
     
  15. gaston48

    gaston48 Compagnon

    Messages:
    6 186
    Inscrit:
    26 Février 2008
    Localité:
    59000
    Demarrage programme par bouton
    On peut rédiger les branchements net sous la forme d'une liaison par ligne pour la clarté de compréhension.
    Les flèches sont facultatives, mais si on les utilise, leurs sens est important depuis la version 2.7
    Le fait de scinder une ligne ne devrait pas résoudre le problème.
    Il s'est peut être passé autre chose au moment de l'édition de la modif.
    J'ai testé les premières jeux d'instructions (ligne non scindée), je n'ai pas ce soucis ?
    Mais je rentre sur une entrée/sortie mesa, pas sur un port//.
     
    Dernière édition: 7 Janvier 2016
Chargement...

Partager cette page