Retrofit petite Realmeca avec cartes MESA

  • Auteur de la discussion Laurent_CNC
  • Date de début
M

matt07600

Apprenti
Bonjour, je suis de retour après un petit break, j'ai fait une ébauche du fichier excel que tu me demandais au départ Gaston, merci de me dire comment le faire évoluer si tu peux, merci d'avance, je joins aussi l'implantation des touches sur le pupitre.
À bientôt
IMG_20160901_123341.jpg
Voir la pièce jointe Classeur1.xlsx
 
Dernière édition:
G

gaston48

Compagnon
Bonjour,
je n'ai toujours pas pigé pour les led ...
voilà à quoi pourrait ressembler ce composant hal dédié à ton clavier.

Voir la pièce jointe realkeyb.zip [div=none][arrow][/arrow][/div]

version simple:
les 2 commutateurs sur ligne 0 et 8 colonnes
clavier à matrice 11 lignes 8 colonnes

important:
Apres avoir chargé ces 2 fichiers dans gedit sous linux, les "enregistrer sous" avec le même nom
en vérifiant bien que l'option " fin de ligne " est bien sous " Unix/linux " sinon le compilateur refuse.
 
M

matt07600

Apprenti
Salut Gaston, je vais regarder ce que tu m'as donné sur un ordinateur.
Pour les Leds voici un exemple: la Led L2C2 s'allume si je fournis +5v à la pin DB6 et le -5v à la pin DB16, dit moi si tu veux que je présente les choses autrement (pour le reste aussi) et si tu veux que je te fasse des schémas spécifiques.
@+
 
G

gaston48

Compagnon
Je suis désolé, mais sans un schéma du type #205 je ne pige pas ...
D’après tes données de tableur, il semble que la ligne1 ne soit pas uniquement réservées
aux commutateurs mais que les touches L1C3 à L1C8 l'empruntent aussi ?
 
V

vres

Compagnon
Les fichiers aurai été plus lisible en faisant les lignes en lignes et les colonnes en colonnes. A chaque intersection tu mettais l'affectation.


Voici un schéma avec toutes réserves d'après les renseignements que tu as donné. Je n'ai pas représenté les diodes mais ça ne change pas grand chose a la compréhension.
Il y a surement des erreurs.
Toutes les touches et toutes les Leds ne sont pas affectées bien sur.
clavier matt.jpg


Le fonctionnement :
- On met successivement chaque ligne à 5V
- On lit l'état des touches sur les colonnes 1 à 8 et on allume les leds avec une sortie collecteur ouvert sur les colonnes 9 à 12.

Es-tu obliger d'utiliser les led ?:roll:
 
G

gaston48

Compagnon
Ah ben là je comprends mieux.
cncserv ou vois-tu l'information de la ligne 12 par exemple sur le tableau ?
ou tu as pris les connections DB encore libres DB 1 3 4 5 et 16 17 et tu les as attribué au hasard ?
 
V

vres

Compagnon
Non je n'ai rien fait par hasard, j'ai essayé de décrypter le schéma ici : https://www.usinages.com/attachments/img_20160831_183312-jpg.294662/
et ici : https://www.usinages.com/threads/re...a-avec-cartes-mesa.89790/page-14#post-1034652
Le commun du clavier est forcement une ligne car les sorties sont des colonnes.
Après pour la numérotations des lignes et des colonnes, j'ai pris comme ça venait mais ça n'a pas trop d'importance.

Pour la Colonne du buzzer, ce n'est pas très clair et il manque la broche 1 de la sub-d.
 
V

vres

Compagnon
J'ai un peu de mal à décrypter mais peut être l'usage de tableau serai peut-être plus clair et plus rapide.
Visiblement ce n'est pas du C standart.

Comment fonctionne le délai entre l'écriture de la ligne et la lecture de la colonne ?
 
M

matt07600

Apprenti
Bonjour, je suis en train d'essayer de comprendre votre échange et voir si je peux compléter le scéma de cncserv, sinon non ce n'est pas obligatoire d'utiliser les Leds, c'est sur qu'on peut leurs trouver des fonctions intéressantes, mais si c'est trop compliqué on peut faire sans.
Merci à vous deux.
 
V

vres

Compagnon
@gaston48
ce qui ma surpris un peu, c'est que l'on a une déclaration qui ressemble à un tableau :
Est dans le code on a quelques choses qui ressemble à un appel de fonction :
C'est peu être une macro.
J'ai survolé la page de ton lien mais il me faudrait un peu de temps pour comprendre.

Après je me posai la question sur le délai entre 2 lectures de Ligne. D'après ce que j'ai compris FUNCTION est appelée de facon cyclique, tu pourrai peut-être ne lire qu'une seule ligne a la fois.

@matt07600
Pour utiliser les Leds il faut un peu de hardware: sortie à collecteur ouvert et beaucoup de code.

Pour compléter le schéma, avec ton tableau ça devrait être assez simple.

Tu peux aussi réatribuer les touches en imprimant un vinyl adhésif que tu lamines ensuite à froid.
 
G

gaston48

Compagnon
La syntaxe des instructions est emprunté au langage C, mais le résultat de la compilation
n'est pas un exécutable classique, mais un "composant" temps réel qui va s'intégrer
dans le fichier .HAL de linuxcnc qui comprend toutes les parties hard de la CNC
A partir de ce composant, se "branchent" des entrées et des sorties qui sont déclarées
au début de son code avec le mot " pin " . ces pin vont se brancher sur la 7i77
par exemple, mais aussi vers d'autres composant de .HAL.
Quand on charge se composant au début du fichier .HAL on lui alloue aussi une tache
temps réel ici avec calcul flottant. Le composant actuel est rafraîchi toutes les 500 ns.

Voilà les sources de la majorité des composants standards fourni avec linuxcnc
des très simples et des très complexes ...
le format .comp est le plus simple, il est compilé d'abord en .c avec un compilateur
spécial à linuxcnc qui va lui rajouter tout un environnement, puis installé au format .ko

http://git.linuxcnc.org/gitweb?p=li...1497279620df040166ae4b9a828525e5110e9;hb=HEAD

les GPIO de la 7i77 sont en collecteur ouvert
En rajoutant les led, je verrais un code comme ça, pas de boucles, un test led par led
comme plusieurs peuvent être allumées en même temps...


Voir la pièce jointe realkeyb_comp.txt


Je déclare un tableau de variables pour pouvoir les lire individuellement
avec une boucle for, mais je peux aussi sortir toutes les valeurs du tableau
pour identifier une combinaison particulière (commutateur par exemple).
 
Dernière édition:
V

vres

Compagnon
A mon avis pour allumer une led il faut mettre la ligne et la colonne sur 1 ( la sortie collecteur ouvert inverse le signal)
Comme toutes les leds sont enchainées j'ai peur qu'elles soient pas alimentées assez longtemps pour être visible.
 
G

gaston48

Compagnon
Oui certainement, là c'est un premier jet pour que ça parle un peu à matt
pour la persistance, on a toujours pas défini finalement le rôle des capas.
 
M

MR VECTRA

Compagnon
les programmeurs en marche , bravo et bonne continuation :wink:
 
M

matt07600

Apprenti
Bonjour à tous, ce week-end je voulais travailler sur la machine mais malheureusement je n'ai pas eu le temps ( l'auto qui ne démarrée plus, au final c'est le relais de préchauffage qui a lâché).
Cncserv: c'est une très bonne idée le vinyl adhésif, mais dans un premier temps si on arrive à faire fonctionner les touches du style broche +/-, arrosage, les axes, départ cycle...ce sera déjà très bien (à voir pour la suite).
Gaston: quand tu dis "on a toujours pas défini finalement le rôle des capas", tu veux dire qu'il faut que je me décide sur le rôle des touches et des commutateurs?
Bonne semaine.
 
G

gaston48

Compagnon
Bonsoir à tous,
cncserv, Ah c'est beaucoup plus élégant et astucieux. Il faut que je rouvre mes bouquins aussi ...
Ensuite je compilerais pour voir si cela ne coince pas et si cela ne plante pas non plus.
J'ai déjà tenté une boucle d'attente qui plantait ? il faut faire attention on est sous RTAI mais
il y des exemples qui fonctionnent.
Tu devrais coder pour linuxcnc, il y a tant de sujets qui sont en attente :whistle:

matt, pour l'instant on tente d'acquérir l'ensemble du clavier, quand cela sera fait, rien ne t'oblige
à l'exploiter complètement, cela ne va pas mobiliser des ressources inutilement.
Concernant les condensateurs, c'est l'utilité des 23 couples de condensateurs résistances diodes,
sachant qu'il y a 24 empreinte de diodes.
 
M

matt07600

Apprenti
Bonjour, j'ai fais une petite mise à jour du schéma de cncserv en représentent seulement les touches et les Leds existante.
Cordialement
Ps: je vais essayer de suivre la DB1 sur le pupitre
IMG_20160905_145224.jpg
 
V

vres

Compagnon
La ligne pour le/les buzzer(s) n'est pas prévue dans le code.
 
M

matt07600

Apprenti
Bonsoir, je suis un peu perdu, faut il que je fasse des essais avec le code du message #218 ou que j'attends que Gaston fasse des tests avec le code du #226?
 
V

vres

Compagnon
Je ne sais pas trop comment ca marche. Gaston va surement mieux t'éclairer que moi.
 
M

matt07600

Apprenti
Après relecture du post je m'aperçois que la dernière version du fichier realkeyb.comp de Gaston est dans le message #223, je vais faire des essais avec ce dernier.
@+
 
G

gaston48

Compagnon
Bonjour,
cncserv, ton code marche bien, quelques bricoles pour respecter la syntaxe des déclarations de variable.
Concernant la boucle d'attente, 500 ns de temps de boucle du thread, que j'avais indiqué,
(que tu as pris pour des micro_seconde mais c'est pas grave) n'est pas la bonne info.
En réalité on peut en toute circonstance la saisir avec le paramètre global " fperiod " en seconde ou " period " en ns.
elle fait en réalité 150 micro_seconde environ.
Je n'ai pas tout piger du fonctionnement de cette boucle d'attente et quand j'insère des "tests" ça m'a l'air
de la perturber ...
Voilà ton code est fonctionnel, mais il me faudrait le clavier et une 7i77 pour bien tester
Le travail de matt maintenant serait de brancher la db25 sur la 7i77 et la 5i 25 dont il faut réserver 15 sorties et 8 entrées
En tout on dispose de
7i77 32 entrées et 16 sorties
5i25 2 ième connecteur: 34 gpio donc au choix: configurable en entrées ou en sorties mais une partie multiplexées, 17 disponible directement je crois.

le fichier est renommé realkbcs.comp

 
Dernière édition:
V

vres

Compagnon
C'est parfait:supz:
Par curiosité comment fait-on pour l'affectation de E/S ?
 
G

gaston48

Compagnon
J'avais déjà communiqué un fichier tuto d'installation. Je le remets mise à jour sous forme de code :
attention avec le nom initial du composant : realkeyb

cncserv tu as sortie le calcul du produit de l'avance par l'override du composant, je pense qu'on peut
laisser ce produit dans le composant.

 
Dernière édition:
M

matt07600

Apprenti
7i77 32 entrées et 16 sorties
5i25 2 ième connecteur: 34 gpio donc au choix: configurable en entrées ou en sorties mais une partie multiplexées, 17 disponible directement je crois
Du coup je ne peux pas me servir de ma 7i78?
Il faut que je connecte les entrées/sorties directement sur un câble parallèle ( branché sur le P2 de la 5i25 par l'intermédiaire de l'adaptateur)?
 

Sujets similaires

part's-and-co
Réponses
19
Affichages
1 137
part's-and-co
part's-and-co
P
Réponses
2
Affichages
219
pro-ms
P
Castor24
Réponses
12
Affichages
318
Philippe85
P
Réponses
51
Affichages
2 896
pro-ms
P
D
Réponses
33
Affichages
1 049
dh42
esloch
Réponses
52
Affichages
2 054
esloch
esloch
Haut