ATARI ST et CNC

M

motsch

Nouveau
Bonjour as tout
qui peu savoir ou je peu trouvez un logitiel simple meme en gfa basic pour cnc sur atari ?
c est un peu le cirque

mais voila mon projet faire une cnc avec atari st
pour le moment je peut faire tournee mais 3 moteur pas a pas via gfa basic par le port //
mais pour faire un logitiel interpreteur gcode
c'est trop complique
 
Dernière édition par un modérateur:
M

Mcar

Compagnon
Ha atari ST tout un symbole pour moi avec son GFA !! mon deuxième ordinateur, le premier a été un Oric 1
je peux pas t'aider dans ton projet mais celui ci est vraiment original !!!
alors je m'installe
 
M

metalux

Compagnon
Bonjour
toute ma jeunesse le 520ST, j'avais à l'époque l'occasion de récupérer sur des cartes électroniques les fameux circuits intégrés 41256, j' en ais vendus des centaines pour transformer un 520 en 1040.
Bref! J'ai eu une foultitudes de softs ,les meilleurs en allemand et pour moi il n'en existait acun pour commander une cnc, tout au plus des traceurs en hpgl.

Bien que ce fût une superbe machine, c'est un peu obsolète amha, pourquoi pas se tourner vers pc ?
 
D

Doctor_itchy

Compagnon
hello

une cnc contrôlée par un ST ? j’espère que c'est un STE avec au moins 4mo de ram (les STF son limité a 1024ko et upgrade "compliquer" )

sinon a ma connaissance il n'y en a pas , il faudrait allez voir la Tosec de cette année , il y a peu être des surprise (tosec = gros fichier de plusieurs giga contenant toute la logithèque Atari , ou Amiga et bien d'autre micro

par contre coté capabilité on reste sur du 8 Mhz 16/32bit ,donc on auras des performance similaire a du mega2560 autonome voir peu être du stm32

la guerre est finie mais un Amiga 1200 aurais été plus adapté avec son 68020

(ps j'ai réparé des millier d’Amiga et Atari et autre micro d'époque , donc je connais bien ^^)
 
Dernière édition:
E

EncoreUnPseudo

Compagnon
Le processeur du St est un 68000: 32 bits
Il y a de la puissance sous le pied quand même par rapport à des pics, mais en basic… c’est mission impossible.
Avec un peu de chance tu t’en tirera en C, sinon assembleur
 
M

motsch

Nouveau
Bonjour metalux
C est juste par nostalgie et par défi que je m impose
Atari ste 4 mo
Mais ça fonctione plus tôt pas mal
J ai fait aussi une table tracante sur atari
Fusee a eau et plien de truc
J aime bidouiller sur cette machine
Au plaisir de te relire
 
J

jpbbricole

Compagnon
Bonsoir motsch

Dans ma jeunesse (ça fait très longtemps ), j'ai eu cette super machine!

Pour ton problème, pour le fun, la réponse de ChatGPT.

Cordialement
jpbbricole
 
M

motsch

Nouveau
Merci pour l info ou un falcon
Bonsoir motsch

Dans ma jeunesse (ça fait très longtemps ), j'ai eu cette super machine!

Pour ton problème, pour le fun, la réponse de ChatGPT.

Cordialement
jpbbricole
Bonsoir jp
Ah bas merdasse alors chat j ai pete va être ômon copain ,c est quand même fou comme truc à voir je vais copier le code et essayer très curieux de voir si ça fonctionne.
Pour le moment j ai fait un petit programme en gfa pour faire fonctionner mes axes via le joystick et ça fonctionne très bien j ai 8 bits 2 bits par moteur 1 bit de pas et un de direction je les pilote directement donc assez rapide pour moi et tout ça en gfa
Demain si j'ai le temps je vous montrerai tout ça

Bonne soirée
Jb
 
D

Doctor_itchy

Compagnon
oui 32bit le ST je voulais dire 8mhz .... bien que le ST est plutôt mixte 16/32bit car ce n'est pas vraiment du 32bit ( une partie de la machine est en 16bit ! )

et si c'est un STE alors on est en 16mhz

mais faut pas l'abimé dans un atelier le pauvre

et je doit encore avoir deux STF en rab quelque part (pas complet je pense) qui eux vont finir en vente quelque part (mais je garde le STE original , le STE tower et le TT030 )

coté code via GPT , alors il faut y allez par progression et pas lui demander "tout direct" sinon il a tendance a s'emmeller les codes

tu peu aussi voir du coté des forum spécialisé atari/amiga y en a peu etre un qui a déja codé quelque chose a ce sujet !

j'ai fouiné mes D7 j'ai bien un code pour faire un scanner a partir d'une imprimante matricielle mais rien d'autre ici et il me semble qu'il y a eu des "robot" contrôler par atari ( to7 ça c'est sur ) robot 6 axes ! , peu etre a voir de ce coté et refaire le code pour l'usage cnc
 
D

Doctor_itchy

Compagnon
la ou par contre cela pourrais collé plus , ce serais de commander GRBL avec ton atari ! , la pas besoin de trop de puissance de calcul ni de rapidité du port// , connexion série vers un arduino nano ou stm32 avec grbl dessus il ne reste que a lui envoyer du Gcode ce sera bien plus façile a codé en GFA que de crée un code d'interpolation complet
 
M

motsch

Nouveau
Oui bonne machine les ataris
Un tt 030 dit vous ?
32 mhz
La ça tourne nikel avec ce genre de rapace
Mais pas de tt pour faire la cnc le ste va faire le travail
Demain du bois dans le vieux fourneau dans le garage et je continue sur mon projet cnc
 
M

motsch

Nouveau
As la fin si je n y arrive pas c est comme ça que ça va finir
Mais c est un défi pour moi,
je me suis arrêté dans les année 80 90
c est con oui je l avoue
 
D

Doctor_itchy

Compagnon
bien pour collé au année 80/90 il faut mettre des vieux stepper , et des drivers style l297 et l298 , et crée une interpolation/décodage pure avec un 68000 en slave sur le port serie et autonome (donc ram et rom sur pcb spécifique a coté du cpu ) (comme ça ce fesait sur les charly robot par exemple ) puis commander via n'importe quel pc/micro/pet via le port serie

l'idée de grbl etait surtout la simplicité et le faible cout un nano ou un stm bluepill coute +- 5€ , et ou tu est sur que cela fonctionne

et ton code gfa sera extrement "simple" comparé a ce que tu veut faire

en gros tu veut faire un "turbocnc" sous atari ( vieux soft tournant sur DOS qui fait pareil ) tu pourrais peu etre aussi allez voir le soft , et t'en inspiré pour ton code (reste a le décompilé , y a des utilitaire pour ça ! )

trouvable ici http://www.dakeng.com/turbocnc.html
 
M

motsch

Nouveau
Vache vous connaissez bien le sujet
J avance très doucement 2 ans déjà dessus
Vivement la retraite....
Mais avec l aide de ce forum et des personnes comme vous je vais sans doute y arriver à la finir ma machine

J ai une entreprise qui me prend beaucoup de temps mais c est la vie
Les passions me donne de l énergie
Et dieu saus que j en ai besoin.
Merci pour votre aide
A très vite
 
D

Doctor_itchy

Compagnon
disont que je m'interesse a bcp de choses en éléctronique mécanique ,programation ect ect

et le forum est aussi la pour aider ceux qui débute ou qui "rebute" sur leur projet idée

sinon je suis aussi fervent collectionneur de "micro" , amiga et atari principalement , et aussi du C64 (en plus de les avoir réparé en "sav" pendant quelque année ) donc j'aime bien l'idée du projet , et vu le peu d'info la dessus ça me semble un gros défi
 
D

Doctor_itchy

Compagnon
sinon tu n'est apparament pas le seul a tenté ce genre de bidouille , ici avec un C64

 
K

Kiragregis

Nouveau
Bonsoir Motsch,

Si cela peux vous aider, j'ai réalisé un projet similaire avec un Amstrad CPC 6128. l'article original n'étant plus en ligne nul part, je me permets de vous le mettre a disposition ci dessous :
Pour remettre dans le contexte, ce projet a maintenant plus de 12 ans, on ne trouvait pas aussi facilement de cartes driver pas a pas, tout était a faire...


Fraiseuse Numérique Pilotée à l’aide d’un CPC

Pour ceux que ca pourrais intéresser, voila un petit article technique pour accompagner la vidéo CNC 3 axes sur CPC.



Présentation :

Pourquoi ce projet ?

Tout simplement par ce que j’avais envi d’avoir une fraiseuse numérique et de la piloter avec mon bon vieux CPC. Sur internet on trouve plein de vidéos de fraiseuse « Home made », mais la plus part utilise des composants standards et un PC avec un logiciel provenant du net.

C’est là qu’es l’originalité du projet, utiliser le moins de produits standard utilisé habituellement pour ce genre de machine.

Alors quoi de plus inattendu que de piloter cette machine avec un CPC !



Description :

Ce projet permet de piloter un robot 3 axes depuis un CPC, il met en œuvre 3 moteur pas à pas grâce à des cartes de contrôles

A l’heure actuelle le programme ne permet de piloter qu’un axe à la fois, sauf pour le plan X Y pour lequel les axes sont « synchronisés ».

Il n’y a que les axes X et Y qui sont synchronisés pour plusieurs raisons, la première est que ca demande un morceau de programme assez complexe (pour moi en tout cas), la deuxième raison vient des limites du CPC, L’Amstrad a du mal à suivre, et on vient vite a être limité au niveau des impulsions qu’il peut envoyer aux cartes de contrôle d’axes sur le port imprimante.




Liste du matériel :

  • Un CPC 6128 (bin ouais normal)
  • Une carte d’interface (made in by me )


Dossier de la carte : http://cncloisirs.com/fichiers/Construction.Cartes%c0R%e9aliser/L298_card.zip

  • Du temps et de la patience

Principes de déplacements

Principe de pilotage d’une carte de contrôle de moteur pas à pas :


Sur une carte on n’utilise que 4 des 5 pin présent pour la connectique,
  • La masse
  • Le +5v
  • La broche « impulsions »
  • La broche « sens »
Donc pas de problèmes pour les deux premier, c’est juste l’alimentation de la carte.

Les deux suivantes sont celles qui seront utilisé pour contrôler le pas et le sens d’un moteur. La carte se base sur l’état 0 des entrées, petite explication.


Pour des mouvements suivant un seul axe c’est assez simple, il suffit donc de piloter les 2 bits associés à un axe pour piloter un sont mouvement.

Passons maintenant à un mouvement en diagonale suivant les axes X et Y.

Etant donné que l’on utilise des cartes de contrôles basic et un Amstrad pour les piloter on ne peut pas réellement piloter 2 axes simultanément (en tout cas pour ma part)

Mon astuce a donc été de décomposer les diagonales en « marche d’escalier »

Petit exemple concret :

Premier cas simple, imaginons que le robot se trouve à la position (0,0) suivant (X,Y) et que l’on veux une diagonale de 10 pas suivant X et de 5 suivant Y se qui donne (10,5)



Le mouvement sera décomposer en échelons comme ci-dessus et le programme commandera 1 suivant Y puis 2 pas suivant X jusqu’a arriver à la position de destination.

La détermination des pas X et Y est ici simple, le programme prend la plus grande des valeurs (ici X avec 10) et la divise par la plus petite (ici Y avec 5)

On obtient 10/5=2

Le programme n’as plus qu’a effectué une un déplacement de 1 suivant Y puis de 2 suivant X et de renouveler ces 2 mouvements 5 fois pour se retrouver en (10,5).


Deuxième cas plus complexe, ici on fait un déplacement de 9 suivant X et de 5 suivant Y (9,5), on part toujours de (0,0), dans ce cas la division du plus grand déplacement par le plus petit donne 9/5=1.8 on obtient un résultat à virgule. Voila comment le programme traite ce genre de cas.



Le mouvement suit la même logique que l’exemple précédent, sauf que pour le dernier mouvement en X et le dernier en Y le programme connait la position du robot et se débrouille juste pour arriver aux valeurs de destinations (9,5)


Présentation du programme :


Fonctions réalisées :



Dans l’état actuel du programme il est possible de commander en manuel chacun des axes à tours de rôle, de charger un fichier contenant une série de coordonnées de déplacements et de lancer l’exécution des déplacements définit par le fichier trajectoire. Un dessin apparait alors, les traits jaunes représentent les déplacements déjà réalisés, le trait rouge le déplacements en cour.

Il n’est pas nécessaire d’avoir la partie hardware pour le développement du programme vu qu’il n’y a aucun retour d’information récupérer par l’Amstrad, il et donc tout a fait possible de lancer l’usinage « juste » pour vérifier que le dessin qui est tracé correspond bien a ce que l’on veut faire, un mode « simulation » est prévu par la suite.



Ouais je sais y a encore du boulot sur l’interface


Adressage du port imprimante :



Adressage du port imprimante sur l’Amstrad se fait grâce à la commande &EF00,valeur.

Dans mon programme pour visualiser l’état du port j’utilise « valeur » en binaire, pour cela on rajoute &X devant « valeur » pour que le basic sache que l’on « parle » en binaire.


Petit exemple de programme pour un mouvement (théorique)

10 For x=0 to 200

20 out &EF00,&X10

30 out &EF00,&X11

40 next

Ce petit programme correspond à une rotation dans le sens négatif si on regarde sur le premier dessin.

Pour les 2 premiers bits je n’ai pas rencontré de trop gros problèmes, c’est en rajoutant les bits des autres axes, autrement dis en agissent sur un mot « valeur » de 6 bits que quelques problèmes apparaissent, je suis pars moment obligé de mettre une remarque « ‘ » entre 2 ligne d’adressage du port, ici par exemple : 25 ‘


Format des fichiers trajectoires :

Le programme d’usinage ne se déverrouille qu’une fois qu’un fichier de trajectoire a été chargé à l’aide du menu prévu pour ca (version beta)

Les fichiers trajectoires sont générer à partir d’un autre programme plutôt orienté FAO/CAO (encore en développement)

Chaque fichier a l’extension .TRJ

Possède un bit de test pour vérifier lors du chargement que le fichier et bien compatible,

le nombre de ligne de trajectoire que contient le fichier

Et enfin la série de coordonnées au format PosX(l),PosY(l),PosY(l)



Exemple de format d’enregistrement : (programme croix.trj)

(Récupéré à l’aide de ManageDsk)

1

8

100,0,0

100,100,0

0,100,0

0,0,0

100,100,0

0,100,0

100,0,0

0,0,0

1111,0,0


Inventaire du fichier cpcnc.dsk :

L’image disque qui va avec cet article contient 5 fichiers :



-CPCNC.bas

Qui est le programme principal pour piloter la fraiseuse



- testfg.trj

Qui est le fichier trajectoire de test (celui utilisé sur la vidéo)



- croix.trj

Qui est un autre fichier trajectoire pour mètre en évidence le problème de temps du au calcul et à l’exécution pour les diagonales



- gentrj.bas

Qui est un programme basic pour enregistrer une liste de coordonnées dans un fichier au format.TRJ



- gencercl.bas

Qui sert a générer des trajectoires circulaires a partir d’un point de départ, une arrivée, un rayon et un sens. C’est un morceau que je dois encore travailler pour l’intégrer dans le programme principal. Une fois le programme lancé, les flèches déplace un point, « ENTER » pour valider, taper « c » pour le menu cercle…


Conclusion

Bon, à l’heure actuel les bases sont opérationnelles, pour la maquette de fraiseuse réalisé a partir de moteurs pas a pas de lecteurs DVD et de lecteur disquette le fonctionnement en ligne droite est correcte je dirais (comme sur la vidéo), par contre dé que l’on commence à faire des diagonales on réduit considérablement la vitesse d’avance de le machine (charger le fichier croix.trj pour avoir une idée), et c’est bien là qu’ai le problème, en utilisant des moteurs plus gros, donc plus adapté a faire de l’usinage j’obtiens des vitesses d’avances du robot de 1.4mm/min… faut pas être pressé, par contre je peux positionné mon axe à 1/400 mm près avec mes moteur de 400 pas et ma réduction vis sans fin de 1 tour/mm soit une tige fileté M6 :D



(Test de déplacements avec moteur plus costaud mais pas pressé)​



Me voila arrivé à la fin de mon exposé, j’espère avoir été claire et avoir écrit un sujet intéressant. Si vous êtes intéressé je reste à vôtres disposition pour plus de détails.

EN PJ le programme en langage basic Amstrad
 

Fichiers joints

  • CPcnCv31.txt
    9.9 KB · Affichages: 5
M

motsch

Nouveau
C est super je vien juste de voir votre projet sur you tube c est moi qui vous a fait la demande sur you tube
Vraiment bien détaillé votre projet cnc amstrad
Je ne sais pas quel fréquence à le cpc mais ça fonctionne plutôt pas mal
Respect total .
Jb
 
K

Kiragregis

Nouveau
Du coup en résumé, il a fallu codé un interpréteur de "G code" maison, crée un logiciel de CAO pour générer ce fameux G code.
Mais le plus compliqué" reste la puissance de nos vieux ordis, la fréquence de commutation sur le port imprimante, couplé a du code en basic ne permet pas d'obtenir de grande vitesse de déplacement, surtout lors de déplacement de plusieurs axes "en même temps".

Pour amélioré ce point j'avais en tête de reprendre le programme pour n'en faire qu'un simple lecteur de gcode, et de le faire communiquer avec un Arduino pour la partie pilotage. mais c'est de la triche je trouve...

J'avais deviné que c'etais vous, c'est pour ca que je me suis permis de vous repondre ici
 
D

Doctor_itchy

Compagnon
ha j'ai pu voir la video

bien si tu veut passer sos grbl ce n'est pas tres compliquer , il te faut simplement un arduino nano (au minimum , mais on peu aussi le mettre sur un mega2560 , ou un STM32 blue pill qui pour moi est le top pour grbl et bien sur dans le cas du stm32 il faut grbl32 ! )

une fois le microprocesseur choisis tu va downloader grbl puis le flasher simplement sur la carte (sans modif pour le moment )

puis il faut brancher la carte , la le port serie est accessible via les pin TX et RX de la carte , a cabler vers l'hote (on passe outre l'usb qui ici ne sert a rien ) , puis suivant le schéma de branchement GRBL tu cable tes drivers !

attention que si tu opto pour un STM32 , celui çi a ses pin en 3.3V et pas 5V comme tes driver et ta carte // actuelle ! , il faudras donc adapté les tension de chaque sortie !

le STM32 a l'avantage d'etre un uc a 32bit et des fréquence tres élévée , donc des vitesse de déplacement tres élévée et plus fluide , une meilleurs interpolation , ect

le nano lui est en 8bit mais cela devrais suffire pour débuté et comprendre le fonctionnement

une fois connecter GRBL se configure en grande partie via des commande Serie (tout est référencer )

bien sur par la suite tu peu tout a fait modifier GRBL dans le code source , c'est du "arduino" et "simple" pour changer ce que tu veut et adapté au besoin !

GRBL32 pour le STM32 https://github.com/pvico/grbl32

GRBL 1.1 pour le nano https://github.com/grbl/grbl


tout est parfaitement documenté

comme carte

le stm32



le nano






courage pour la suite
 
M

motsch

Nouveau
Apparament ça fonctionne mieux moi .
j ai bien un amstrad à la maison
Je ne sais pas quand mais ce serait rigolo de voir comment ça tourne
En tout cas pour le transfert de fichier pc vers amstrad c est dur dingue non ?
au pire je recopie le programme
Même si je ne comprends pas tout c est pas grave
Puissant le basic sur l amstrad.
Si non
400 pas Avec 1 mm par tour vous avez une précision extrême
Moi qui pensais être le seul .
Dans ce projet
 
M

motsch

Nouveau
 
M

motsch

Nouveau
Ah mon avis à la fin c est comme çà que ça va finir grbl çe sera bien plus simple ;
Il y avais bien a l époque CNCPROFI sur atari
Mais imposible de trouver la version complète .
le pire c etait un logitiel PRO .

Pour l arduino ,j'y connais rien et les langage python ou autre encore pire

Par contre tout les ans ont fait l ADN à tantonville rassemblement de vieux ordinateur
Et la j ai bien un copain qui pourra me bricolé ça .
 
D

Doctor_itchy

Compagnon
j'ai un nano sous grbl qui traine sur mon bureau car je dev un controleur servo moteur DC avec encodeur et co !

exemple simple avec grbl (oui y a deux nano , un qui est sous grbl et l'autre qui gere le moteur DC a balais )





Your browser is not able to display this video.



ha l'adn , j'ai du m'y rendre sans doute , a un moment je fesait les convention rétro

sinon le soft "germain" je ne le connaissais pas ! , cela dit si ça doit etre possible de le décompilé et le modifier , il y avais des soft pour ça a l'époque ! , déja pour le mettre en français et ensuite pour voir si on peu l'adapté pour causer a grbl (car il doit etre fait pour causer avec une interface propre et prioritaire ! )
 
K

Kiragregis

Nouveau
Pour le transfert, sur CPC en tout cas, il y a un générateur de disquette .DSK (format amstrad) du nom de ManageDsk. du coup quelques copié/collé de fichier txt, puis importation dans ManageDsk et on obtiens asse facilement des images dsk avec les fichier que l'on veux.
Il ne reste plus qu'a la copier sur une vrais disquette, a l'origine sur une 3", dans les année 90 sur une 3.5", et aujourd'hui l'arrive des gotek a bien simplifier l'usage des disquettes sur les vielles machines...
400 pas c'est effectivement très précis, C'était de la recup, et j'avais trouvé que ca a l'époque...
 
D

Doctor_itchy

Compagnon
coté "pas" ça dépend surtout du drivers et de sa gestion microstepping ! , le soucis c'est que plus on a de micropas plus le controleur devras envoyer de pulse pour faire un tour , et plus il devras le faire tres vite si on veut un déplacement "rapide" et le faire bien pour ne pas raté des pulses , de ce coté sous GRBL c'est le µC utilisé qui gere et la vitesse de rotation max dépend de lui , dans le cas du port // ça dépend de la machine hote ! , evidement ce sera plus rapide sous grbl que sur un port //
 
M

motsch

Nouveau
Oui c est clair peu pas aller plus vite que la music
Et il faut lui faire faire que cette fontion pulse sur le port //

Avec un print je bouffe du temps machine a max 2 x moi rapide heureusement que je ne travail pas avec des moteur boucle fermée qui renvoi le pas effectué ( si j ai bien compris)

En plus la le code et pas compilé avec le gfa ont peu testé en direct vraiment top le gfa
Une fois compilé ça tourne plutôt vite .

Ps
J aimerais vous voir à l adn c est as 25 km de Nancy à tantonville
Bonne fin soirée
 

Sujets similaires

Réponses
157
Affichages
4 554
Ptitmickey
P
D
Réponses
9
Affichages
571
Doctor_itchy
D