Horlogerie, micro-contrôleurs et CN

  • Auteur de la discussion JCS
  • Date de début
D

Dudulle

Compagnon
J'essaie, depuis longtemps, de m'affranchir du PC et le remplaçant par autre chose. Je ne parviens pas à utiliser mon principe avec Arduino, trop compliqué pour moi.


Tu pourrais utiliser une duinomite. On peut les programmer en BASIC, comme ça tu ne serais pas dépaysé. En gros ça s'utilise comme un ordi avec QB. On peut y brancher un clavier et un écran VGA.
Tu as une présentation ici : https://forum.hardware.fr/hfr/elect...roleurs_fpga/cartes-duinomite-sujet_171_1.htm
 
J

JCS

Compagnon
Tu pourrais utiliser une duinomite. On peut les programmer en BASIC, comme ça tu ne serais pas dépaysé. En gros ça s'utilise comme un ordi avec QB. On peut y brancher un clavier et un écran VGA.

Merci Dudulle,

S'il y a un port série et que le prix est abordable se serait formidable !

Je vais étudier ça.

@+
JC
 
Dernière édition:
D

Dudulle

Compagnon
Oui il y a un port série, et il faut compter une 30aine d'euro pour une carte.
 
J

JCS

Compagnon
Merci Dudulle,

C'est vraiment très intéressant. Je vais étudier ça. C'est dommage que je n'ai pas eu vent de cela plus tôt !

Toutefois, en attendant, je vais me concentrer sur le très intéressant travail de Jpbbricole.

Mais je vais sûrement acheter cette carte, si elle est toujours disponible.

@+
JC
 
D

Dudulle

Compagnon
On peut toujours la trouver bien qu’elle soit ancienne et qu'elle ai eu une diffusion assez faible.
 
S

speedjf37

Compagnon
Le "loup", avec Arduino, est que malgré de nombreuses recherches sur le Net et essais, je n'ai pas encore trouvé une solution simple et compréhensible par mon petit cerveau, pour lire simplement des données sur une carte SD. Si je la trouve, le problème sera résolu et je pourrais alors adapter mon principe sur Arduino et miniaturiser ma machine à tailler.

Bonjour,

Un Arduino avec GRBL et un Offline-Controller


edit 1; ça mange du gcode et ça peut être tout petit avec une nano et aller j'usqu'a 4 axes
edit 2: @didou utilise cela
JF
 
Dernière édition:
J

JCS

Compagnon
Bonjour Speedjf37 pour ces infos.

Malheureusement, GRBL c'est encore de l'hébreu pour moi ! :cry: Un de mes rêves est de réaliser un jour une machine à usiner 3 axes. Mais se sera sûrement dans une autre vie...
Le problème est que je n'ai pas le temps d'approfondir tout ce qui m'intéresse.

J'ai une très grande admiration pour l'extraordinaire travail de Didou ! Je vais regarder à nouveau cette discussion à tête reposée. Merci de me l'avoir fait découvrir.

Edit : je viens de découvrir que notre génial Jpbbricole a créé des discussions pour initier à GRBL. Dès que j'aurais terminé la restauration de mon oignon Louis XIV, je vais regarder ça de près.

@+
JC
 
Dernière édition:
S

speedjf37

Compagnon
Malheureusement, GRBL c'est encore de l'hébreu pour moi

GRBL c'est une boite noire pour 99% des utilisateurs.

C'est un pilote de moteurs pas à pas sur 3 axes (en général) qui mange du Gcode (un peu limité ).
En gros cela replace un PC avec Mach3 ou LinuxCnc.
les drivers (miniatures) sont installés sur un shield (une carte d'extension) ou intégrés sur la carte arduino.
On peut alimenter GRBL ( en USB ) avec un logiciel sur PC Raspberry tablette etc.
Il y a un plugin sur CAMBAM pour piloter directement une machine GRBL

On peut aussi avec un module arduino ( off-line controller):
1 )piloter avec des boutons XYZ + Start Pause Reset
2) lire le Gcode d'un fichier sur une carte SD (à partir d'un menu)

Donc tout ce passe dans le gcode qui peut être généré:
1) par n'importe quelle chaîne logicielle DAO/CAO FAO CAM.
2) à la main en écrivant les instructions dans un fichier texte.


En gros pas besoin de réinventer la roue (même si c'est le plaisir de certains), juste à mettre du carburant et piloter !!!

JF
 
J

jpbbricole

Compagnon
Bonjour Speedjf37
Je suis un inconditionnel de GRBL, mais je pense que d'après les désiderata de JCF, ce serait lui compliquer le travail.
Comme il parle de 3 axes, s'il désire évoluer dans ce sens, rien n'empêche d'intercaler une machine GRBL entre le programme et sa fraiseuse. Le programme que je développe s'adaptera facilement.

Cordialement
jpbbricole
 
J

JCS

Compagnon
Je suis un inconditionnel de GRBL, mais je pense que d'après les désiderata de JCF, ce serait lui compliquer le travail.
Comme il parle de 3 axes, s'il désire évoluer dans ce sens, rien n'empêche d'intercaler une machine GRBL entre le programme et sa fraiseuse. Le programme que je développe s'adaptera facilement.

En fait je travaille essentiellement avec une machine CN 3 axes, pour tailler mes roues. Mais je la pilote entièrement à partir d'un vieux PC et du langage BASIC, que je pratique depuis les années 1980, Commodore VIC 24 et 64, ZX81 et premiers PC...

Il y a bien longtemps que j'ai envie de m'initier au GRBL, mais pas assez de temps et beaucoup trop d'occupations...
Mais comme on a plus le droit de sortir ni de voyager et que l'on ne voit plus un client, ça laisse des ouvertures...

@+
JC
 
Dernière édition:
J

jon

Compagnon
c'est bien tout ça :) je vois que le confinement a du bon :)


Amicalement.
 
Dernière édition:
J

jpbbricole

Compagnon
Bonsoir Jean-Claude
En effet, Il suffit d'ajouter un afficheur LCD 2 lignes et 1 bouton poussoir. De relier le pin 7 à un drivers de moteur PAP et nous avons un diviseur numérique universel !
Je me suis "prêté à l'exercice" comme on dit!
1586974456555.png

J'ai écrit un texte explicatif du système et le programme est assez avancé.
____________________________________________________________________________________________________________________
____________________ Composition du système
1 Arduino UNO (ou tout autre)
1 Lecteur de cartes SD
1 Afficheur LCD i2C 16x2
1 Bouton poussoir
1 LED verte
1 Driver de MPAP A4988
1 MPAP Nema17
____________________ Format des fichers
Une ligne de commande (LDC) débute toujours par nombre qui est celui du nombre de pas du MPAP. Il peut être suivi par un paramètre avec une virgule qui les sépare. Ainsi on peut avoir :
250,TP10 (100 pas 10 milliSecondes par pas)
50 (50 pas 10 milliSecondes par pas)
100,TP5 (100 pas 5 milliSecondes par pas)
75 (75 pas 5 milliSecondes par pas)
Un paramètre comme TP10 reste actif pour les LDC suivantes jusqu’à ce qu’une autre LDC se termine par un TP5 par exemple, ce sera cette valeur qui sera active.
Pour passer une commande sans mouvement du MPAP se libelle ainsi :
0,DICCW (Rotation du MPAP sens contraire des aiguilles d’une montre)
0,>F3B.TXT (Lance le fichier de LDC F3B.TXT)

Le système, reconnaît actuellement ces paramètres :
TPnn (Période d’un pas du MPAP)
DICW (Rotation du MPAP sens des aiguilles d’une montre)
DICCW (Rotation du MPAP sens contraire des aiguilles d’une montre)
>NOM.TXT (Lancer le fichier NOM.TXT)

Par defaut TP (periode du pas en milliSec.) est défini par la variable mpapPeriodeMs, le temps de l’impulsion, en microSec. par mpapImpulsionUs.
Bien sûre, un simple fichier comme le F3.TXT du début, avec seulement des valeurs de déplacements fonctionne très bien.

____________________ Modes de fonctionnements
Au démarrage le système se trouve en mode automatique.
Si au démarrage le BP est pressé, le système se met en mode manuel et il s’affiche :
Mode manuel et le BP peut être relâché.
Ceci peut être inversé en changeant la variable systemModeAuto.
Pour changer de mode, presser ou pas le BP et faire un reset de l’Arduino.

____________________ Mode automatique
Par défaut, en mode automatique, le système lance le fichier dont le nom se trouve dans la variable sdFichierParDefaut et il s’affiche :
F3.TXT GO ? (Pour autant que F3.TXT soit le fichier par défaut).
Il suffit de presser le BP pour démarrer. A la fin de chaque pas il s’affiche :
la commande reçue suivi de ok
Presser BP pour passer au pas suivant. Pendant les mouvements du moteur, la LED verte clignote et devient fixe à l’arrêt du MPAP.
A la fin de l’exécution d’un fichier de commandes, le système se met en mode manuel. Pour relancer le fichier, envoyer la commande 0,>F3B.TXT par exemple ou redémarrez le système en mode automatique.

____________________ Mode manuel
Dans ce mode, toutes les commandes contenues dans une LDC peuvent être « lancées » depuis la ligne de commande du moniteur série de l’IDE Arduino ou de n’importe quel terminal série, à 115200 bits/Sec. Toutes autres manipulations se font comme en mode Automatique.

Pour lancer un fichier de commandes :
0,>F3.TXT

Pour faire tourner le MPAP 250 pas periode de 10 milliSec.:
250,TP10

Inverser le sens du MPAP :
0,DICCW
____________________________________________________________________________________________________________________

C'est un premier jet. Si ce début t'intéresse, je continue. Donnes moi tes critiques et tes améliorations.

Bonne soirée
Aordialement
jpbbricole
 
J

JCS

Compagnon
Salut Jpb,

Bravo et merci pour ton dévouement et ta réactivité !

Serait-il possible, dans un premier temps, d'avoir une version plus simple du diviseur, que je verrais ainsi :

Afficheur :
première ligne je verrais : DIVISON XD sur XF
XD nombre de divisions déjà effectué, XF nombre de dents contenu dans le fichier.
Deuxième ligne : Bouton = suite

Format fichier :
Seule la première ligne contient le paramètre de vitesse
puis les nombres de pas pour chaque division.

Le fichier peut être généré manuellemnt ou automatiquement avec un petit logicielet et éventuellement modifié manuellement.

Pour un diviseur seul, on a pas besoin de faire varier la vitesse. On laisse toutefois à l'utilisateur la possibilité de la modifier facilement, sans avoir à bidouiller le sketch, pour toutes les divisions.

Le mode manuel demande que l'Arduino soit connecté à un PC. Or ce que je cherche, c'est de ne plus avoir d'ordinateur proche de ma machine à tailler, par manque de place.
J'ai un ordinateur dans mon bureau, mais je ne souhaite pas en avoir sur mes établis.
Toutefois, cela peut-être très intéressant pour une autre version !

Fonctionnement :

On créé sur un PC un fichier que l'on met sur une carte SD et que l'on nomme F3.TXT, dans le cas présent, j'avais choisi ce nom parce qu'il contenait 3 valeurs, pour les tests.
Mais peut-être que DIV.TXT ou DIVISION.TXT seraient plus appropriés.

On introduit la carte dans le lecteur Arduino, on allume et on appuie sur le bouton pour la première division, ainsi de suite...

A la fin, l'afficheur peut indiquer : Terminé Nouvelle passe O/N ?

Je pense que l'on aurait alors un outil très simple à utiliser et facile à reproduire, qui pourrait intéresser de nombreux utilisateurs.

Il pourrait par la suite évoluer en fonction de demandes.

On verra en temps utile comment générer très simplement les fichiers et même, si ça intéresse du monde, comment fabriquer la mécanique d'un diviseur et/ou une machine à tailler complète, avec peu de moyens.

Merci encore !

@+
JC
 
J

jpbbricole

Compagnon
Bonsoir Jean-Claude

Ok, je suis sur la bonne voie. Le programme fonctionne déjà selon tes critères, j'ai un peu de cosmétique à faire et, en fin d'usinage, offrir la possibilité de redémarrer le même fichier. Pour le moment, je "cache" le mode manuel.
Pour générer les fichiers, serais-tu intéressé par une solution Excel?
Demain je fais une vidéo de demo du programme.

Bonne nuit
jpbbricole
 
J

JCS

Compagnon
Re bonsoir JPB,

Super. Si c'est plus simple, pour redémarrer on peut faire un reset ou éteindre et rallumer, dans un premier temps.
Excel est une bonne idée pour générer le fichier. C'est ainsi que je faisais au début. Après je me suis fait un petit programme en Basic qui me génère le fichier, mais ça ne fonctionne pas sous W10 :sad: ICI le programme Basic que j'utilise, il est à la page 10.
Il y a 3 infos à renseigner pour un diviseur seul : nombre de divisions, vitesse moteur, nombre de pas moteur pour un tour exact du diviseur.

Bonne nuit.
JC.
 
Dernière édition:
J

jpbbricole

Compagnon
Bonsoir Jean-Claude
Si c'est plus simple, pour redémarrer on peut faire un reset ou éteindre et rallumer, dans un premier temps.
En mode automatique, qui est le mode par défaut, le programme tourne en boucle, il débute par DIV.TXT Go? fait les n pas et retourne à DIV.TXT Go?.
Le fichier par défaut se nomme, maintenant DIV.TXT. Le paramètre de période du MPAP TP a été changé en vitesse de rotation en Herz HZ.

Une petite vidéo:

Je vais faire le schéma de tout ça et ripoliner le programme.

A+
Cordialement
jpbbricole
 
J

JCS

Compagnon
J'osais à peine en rêver, Jpbbricole l'a fait !

Bravo JPB, tu es génial ! C'est exactement ce que je souhaitais ! Peut-on avoir le sketch et le fichier, afin que je vois comment il est fait, pour le reproduire. Merci d'avance.
Je présume que ça fonctionne aussi avec un Nano.
Je vais commander un boîtier, pour faire un beau diviseur qui équipera ma machine à tailler faite à partir d'un tour Lorch , où il n'y a besoin que de la division. Je m'en sers pour fabriquer ou retoucher des pièces très délicates. Cela m'évitera de tout débrancher et rebrancher lorsque j'en ai besoin.

J'ai un petit problème qui me turlupine, j'ai plusieurs lecteurs de cartes SD pour Arduino, mais ils n'ont pas de moyens de fixation et je ne suis pas trop pour la colle.

Merci encore, JPB et bonne soirée.

@+
JC
 
J

jpbbricole

Compagnon
Bonsoir Jean-Claude

Je présume que ça fonctionne aussi avec un Nano
En principe oui, mais je vais tester.

J'ai un petit problème qui me turlupine, j'ai plusieurs lecteurs de cartes SD pour Arduino...
Ils sont tous comme celui-ci? Si non donnes-moi les références.
Pour le sketch, il faut que je peaufine. Il faut que je fasse le schéma et le générateur de fichiers "sous" Excel est bien avancé.

Bonne soirée
jpbbricole
 
J

JCS

Compagnon
Ils sont tous comme celui-ci? Si non donnes-moi les références.

Affirmatif ! Il en existe avec des trous de fixation ?

Pour le sketch, il faut que je peaufine. Il faut que je fasse le schéma et le générateur de fichiers "sous" Excel est bien avancé.

Y a pas le feu au lac, comme vous dites en Helvétie, je n'aurai certainement pas le temps de m'en occuper avant ce w-e. La semaine je confine à l'atelier et le w-e à la maison !

Bonne soirée.
JC
 
J

jpbbricole

Compagnon
Bonsoir Jean-Claude
Affirmatif ! Il en existe avec des trous de fixation ?
Les tiens ont quand même 2 trous, autrement si tu as un connecteur double rangs (2x8), une fois le module connecté, c'est. souvent assez rigide comme fixation.

Bonne nuit
jpbbricole
 
J

jpbbricole

Compagnon
Bonsoir Jean-Claude
Je te mets en PJ le programme pour calculer les pas et générer le fichier pour le système, il faut juste renseigner les paramètres entourés de vert. Je l'ai écrit dans Excel, il tourne aussi dans Libre Office.
Peux-tu le tester et me dire s'il faut faire des modifications.

Bonne soirée
Cordialement
jpbbricole
 

Fichiers joints

  • CnAlpha Outils.zip
    20.3 KB · Affichages: 47
J

JCS

Compagnon
Salut JPB,

Je viens d'essayer ton fichier avec Open Office, malheureusement, rien ne se passe. Si je change de nombre de dents. Les données restent identiques et il n'y a pas de fichier généré sur mon disque D, lorsque je clique sur la case idoine.

Mais c'est un détail pour moi, pour l'instant. Il suffit que tu m'envoies un modèle de fichier afin que j'en connaisse la structure, pour le reproduire.
Je me demande si un petit utilitaire transparent ne serait pas plus simple et efficace qu'Excel ?

Mais c'est un détail, ce qui importe c'est le sketch Arduino !

Bonne soirée.

JC.
 
J

jpbbricole

Compagnon
Bonsoir Jean-Claude

Excel, c'était pour le fun!
Le format du fichier est tout simple:
Nom du fichier DIV.TXT
Première ligne:
0,HZ200
200 étant la fréquence en Hz des pas du MPAP, à toi d'ajuster cette valeur pour ton installation.
Le reste du fichier comme l'exemple de F3.TXT.
Si le paramètre 0,HZnnn est omis, c'est la valeur par défaut, dans le programme qu fixe la vitesse, actuellement 100Hz
variable mpap.vitesseHz = 100;

Pour le programme ce sera pour ce week-end.

Bonne soirée
jpbbricole
 
J

jpbbricole

Compagnon
Bonjour Jean-Claude

Voici le programme :
En PJ, il y a le programme avec la bibliothèque pour l’affichage LCD i2C, à mettre dans le répertoire libraries de l’IDE Arduino, il y a aussi, le schéma des 3 parties soit Arduino, MPAP et frontal, ainsi que le descriptif du système.
Je fais un test avec un Nano, mais je ne pense pas qu’il y doive avoir des problèmes.

PS: Attention à l’adresse de l'affichage i2C, dans le programme elle est à
#define lcdI2cAddress 0x27 // 39 décimal
Les paramètres des autres ports peuvent être trouvés les schémas.et le programme.



A+
Cordialement
Jpbbricole
 

Fichiers joints

  • CnAlphaJPBB Kit 20200418b.zip
    1.2 Mo · Affichages: 31
Dernière édition:
Haut