Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
Soft de commande CNC en asm
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Bonjour Satinas,
Pour résumer:
Envoyer du PC directement sur le PIC
- Au démarrage du programme un seul ordre envoyé pour relever l'outil ( sinon si on déplace outil bas on va tout casser )
- Le PIC dit "OK envoie moi la ligne suivante"
- Le PC envoie une salve de trois ordres pour les trois axes X,Y,Z (deuxième ligne). Le PIC envoie "stop" et prend le temps de traiter ces trois ordres. Ca peut prendre plusieurs secondes le temps de déplacer les chariots.
- Une fois fini le PIC dit "OK, envoie moi la ligne suivante"
etc.
etc.
Voici un gcode simplifié qui dessine un carré de 80x80. J'ai rajouté des commentaires qui ne figureront pas dans le gcode
Un autre gcode qui dessine deux carrés concentriques, un de 80x80 et un de 60x60
Pour comprendre vous pouvez utiliser un stylo et du papier millimétré ou une page de cahier à petits carreaux
Jérémy, est-ce que ce serait possible de ne pas tenir compte des apostrophes entre les balises CODE ? c'est ce qui provoque les changements de couleur
Pour résumer:
Envoyer du PC directement sur le PIC
- Au démarrage du programme un seul ordre envoyé pour relever l'outil ( sinon si on déplace outil bas on va tout casser )
- Le PIC dit "OK envoie moi la ligne suivante"
- Le PC envoie une salve de trois ordres pour les trois axes X,Y,Z (deuxième ligne). Le PIC envoie "stop" et prend le temps de traiter ces trois ordres. Ca peut prendre plusieurs secondes le temps de déplacer les chariots.
- Une fois fini le PIC dit "OK, envoie moi la ligne suivante"
etc.
etc.
Voici un gcode simplifié qui dessine un carré de 80x80. J'ai rajouté des commentaires qui ne figureront pas dans le gcode
Code : Tout sélectionner
Z10 ; l'outil monte en position de repos à 10mm au-dessus de la pièce
X0 Y0 Z10 ; déplacement au coin bas gauche de la pièce, outil toujours relevé
X0 Y0 Z1 ; l'outil descend à +1mm au dessus de la pièce
X0 Y0 Z0 ; l'outil descend en prise de passe pour la gravure
X80 Y0 Z0 ; on déplace l'outil à X80 pour graver la ligne horizontale du bas du carré
X80 Y80 Z0 ; on déplace l'outil pour graver la ligne verticale droite du carré
X0 Y80 Z0 ; on déplace l'outil en X0 pour graver la ligne horizontale du haut
X0 Y0 Z0 ; on grave la ligne verticale gauche
X0 Y0 Z10 ; on relève l'outil en position de repos
M30 ; fin du programme
Un autre gcode qui dessine deux carrés concentriques, un de 80x80 et un de 60x60
Pour comprendre vous pouvez utiliser un stylo et du papier millimétré ou une page de cahier à petits carreaux
Code : Tout sélectionner
Z10
X10 Y10 Z10 ; grave carré de 60x60 comme gcode du haut
X10 Y10 Z1
X10 Y10 Z0
X70 Y10 Z0
X70 Y70 Z0
X10 Y70 Z0
X10 Y10 Z0
X10 Y10 Z10 ; on remonte l'outil au repos
X10 Y0 Z10
X10 Y0 Z1 ; descend outil
X10 Y0 Z0 ; et on grave carré 80x80
X80 Y0 Z0
X80 Y80 Z0
X0 Y80 Z0
X0 Y0 Z0
X10 Y0 Z0
X10 Y0 Z10
M30 ; fin programme
Jérémy, est-ce que ce serait possible de ne pas tenir compte des apostrophes entre les balises CODE ? c'est ce qui provoque les changements de couleur
Modifié en dernier par F6FCO le dim. 13 mai 2018 11:53, modifié 6 fois.
Soft de commande CNC en asm
Bonjour à tous,
Ah c'est comme ça que fonctionne du Gcode. Je n'ai jamais abordé le sujet. Pas mal.
@++
Ah c'est comme ça que fonctionne du Gcode. Je n'ai jamais abordé le sujet. Pas mal.
@++
Soft de commande CNC en asm
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
C'est çà, mais attention je l'ai beaucoup simplifié pour notre utilisation mais en gros c'est le principe.
Dans un gcode normal pour CNC les déplacements sont en nombres à virgules, tu trouveras en plus les ordres G qui gèrent les déplacements rapides ou lents, absolus ou relatifs, les ordres S et F qui gèrent la vitesse de rotation de l'outil, les ordres T et M qui gèrent les outils, etc. etc., plein de choses qui ne nous sont pas utiles ici.
Voici le même programme des deux carrés concentriques avec un gcode prévu pour ma grosse CNC:
Dans un gcode normal pour CNC les déplacements sont en nombres à virgules, tu trouveras en plus les ordres G qui gèrent les déplacements rapides ou lents, absolus ou relatifs, les ordres S et F qui gèrent la vitesse de rotation de l'outil, les ordres T et M qui gèrent les outils, etc. etc., plein de choses qui ne nous sont pas utiles ici.
Voici le même programme des deux carrés concentriques avec un gcode prévu pour ma grosse CNC:
Code : Tout sélectionner
G21 G90 G64 G40F1000
G0 Z10.0
T24 M6
G17
M3 S1000
G0 X10.0 Y10.0
G0 Z1.4
G1 F300.0 Z0.0
G1 F800.0 X70.0
G1 Y70.0
G1 X10.0
G1 Y10.0
G0 Z10.0
G0 Y0.0
G0 Z1.4
G1 F300.0 Z0.0
G1 F800.0 X80.0
G1 Y80.0
G1 X0.0
G1 Y0.0
G1 X10.0
G0 Z10.0
M5
M30
Modifié en dernier par F6FCO le dim. 13 mai 2018 11:50, modifié 1 fois.
Soft de commande CNC en asm
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
F6FCO a écrit :Source du message Jérémy, est-ce que ce serait possible de ne pas tenir compte des apostrophes entre les balises CODE ? c'est ce qui provoque les changements de couleur
Oui j'y avais déjà pensé mais a mon niveau ce n'est pas possible. Il faudrait une balise code pour chaque langage, pour déterminer les caractères de commentaires ! et la on joue dans une autre cour.
Je vais quand même me renseigner.
EDIT : quels sont les caractéres utilisés pour les commentaires ? le ; ? ou l'apostrophe ?
Soft de commande CNC en asm
Soft de commande CNC en asm
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
satinas a écrit :Il faut prendre un 18F4525, car le 18F4550 a sa pin C7 partagée par la sortie SDO du port spi et l'entrée RX de l'uart (il a fallu libérer de la place pour les 2 pins usb D- D+).
Va pour le 18f4525 alors. Mais si je comprends bien ce que tu dis çà ne pose un problème que dans les cas ou on veut utiliser en même temps l'uart et le SPI ?
Soft de commande CNC en asm
Bonjour F6FCO, satinas, Jérémy, et tout le forum,
Pour le cas d'un PIC18F4550 ce que veut dire satinas, c'est soit tu utilises RX/TX, soit tu utilises le SPI,
ou alors il faut jongler avec les bits, et ça c'est des ennuis à ne plus en finir, le choix du pic est très important lors de la création
d'un programme.
Pour ma part je suis parti sur un Pic18F4525, mais ça c'est pour notre terrain de jeux, car par la suite, je prendrai un PIC18F8720
A+
Pour le cas d'un PIC18F4550 ce que veut dire satinas, c'est soit tu utilises RX/TX, soit tu utilises le SPI,
ou alors il faut jongler avec les bits, et ça c'est des ennuis à ne plus en finir, le choix du pic est très important lors de la création
d'un programme.
Pour ma part je suis parti sur un Pic18F4525, mais ça c'est pour notre terrain de jeux, car par la suite, je prendrai un PIC18F8720
A+
Modifié en dernier par Temps-x le dim. 13 mai 2018 19:22, modifié 1 fois.
Soft de commande CNC en asm
Oui, ça veut dire que si on veut faire du spi, on interdit la réception série et l'émission elle aussi est perturbée, donc pas de 18F4550.
Voila la chose, une macro Tera Term, ça marche comme décrit précédemment, à part que les paquets sont de taille variable. Je trouve qu'elle arrive un peu tôt, mais au moins ça c'est fait :)
On envoie les lignes gcode une par une dans un paquet. Tout est en ascii sauf le checksum en binaire. Par la suite on peut envisager que le pic stocke un tas de lignes gcode dans sa grosse ram, sans risque d'exploser le buffer car il est maître dans le transfert.
ELLNNNggggggggC
E = entête -> '_'
L = longueur de la ligne gcode
N = numéro de la ligne gcode >= 0
g = ligne gcode
C = checksum calculé sur tout les octets précédents
Le checksum est calculé par Tera Term avec l'instruction "checksum8", j'ai pas vu comment il fait, ça doit être marqué quelque part. J'ai pris 0x46 et 0x55 pour ACK et NAK car les autres valeurs posaient des problèmes.
Chaque ligne gcode et son checksum s'affichent à l'écran après leur envoi à 115200 bauds. Il faudra ensuite enlever cet affichage en supprimant les lignes de codes dans la macro.
Prendre la dernière version 4.98 de Tera Term. On lance la macro par le menu Tera Term Control/Macro. Il y a d'autres moyens ...
Après avoir sélectionné le fichier gcode, la macro s'arrête car elle attend le premier ACK (lettre 'F').
Voila la chose, une macro Tera Term, ça marche comme décrit précédemment, à part que les paquets sont de taille variable. Je trouve qu'elle arrive un peu tôt, mais au moins ça c'est fait :)
On envoie les lignes gcode une par une dans un paquet. Tout est en ascii sauf le checksum en binaire. Par la suite on peut envisager que le pic stocke un tas de lignes gcode dans sa grosse ram, sans risque d'exploser le buffer car il est maître dans le transfert.
ELLNNNggggggggC
E = entête -> '_'
L = longueur de la ligne gcode
N = numéro de la ligne gcode >= 0
g = ligne gcode
C = checksum calculé sur tout les octets précédents
Le checksum est calculé par Tera Term avec l'instruction "checksum8", j'ai pas vu comment il fait, ça doit être marqué quelque part. J'ai pris 0x46 et 0x55 pour ACK et NAK car les autres valeurs posaient des problèmes.
Chaque ligne gcode et son checksum s'affichent à l'écran après leur envoi à 115200 bauds. Il faudra ensuite enlever cet affichage en supprimant les lignes de codes dans la macro.
Prendre la dernière version 4.98 de Tera Term. On lance la macro par le menu Tera Term Control/Macro. Il y a d'autres moyens ...
Après avoir sélectionné le fichier gcode, la macro s'arrête car elle attend le premier ACK (lettre 'F').
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par satinas le dim. 13 mai 2018 17:13, modifié 1 fois.
Soft de commande CNC en asm
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Ok Temps-X, c'est bien ce que j'avais compris
Génial Satinas, tu es trop fort. J'ai regardé ton code et je n'y comprends pas grand chose. Je prends la route dans quelques instants, je met tout çà sur une clé USB et je regarderai çà le soir, j'aurai surement des questions au retour
Je présume que 'gcode2.txt' est le nom du fichier gcode, je vais en créer un pour faire les essais.
Edit:
au cas ou vous voudriez faire des essais entre-temps, voici le gcode que je viens de faire (on dessine un carré de 80x80)
Génial Satinas, tu es trop fort. J'ai regardé ton code et je n'y comprends pas grand chose. Je prends la route dans quelques instants, je met tout çà sur une clé USB et je regarderai çà le soir, j'aurai surement des questions au retour
Je présume que 'gcode2.txt' est le nom du fichier gcode, je vais en créer un pour faire les essais.
Edit:
au cas ou vous voudriez faire des essais entre-temps, voici le gcode que je viens de faire (on dessine un carré de 80x80)
Code : Tout sélectionner
Z10
X0 Y0 Z10
X0 Y0 Z1
X0 Y0 Z0
X80 Y0 Z0
X80 Y80 Z0
X0 Y80 Z0
X0 Y0 Z0
X0 Y0 Z10
M30
Soft de commande CNC en asm
Bonsoir F6FCO, satinas, et tous le forum,
Excellent de faire un bout de Gcode pour bien comprendre, alors voilà ce que je comprends pas, si tu pouvais s'il te plait me l'expliquer
Pour le reste j'ai compris, merci d'avoir eu l'idée de faire une chose simple, bon j'ai reçu mon micro lecteur de carte
Je préfère travailler sur une chose à la fois, je ne prendrais pas le même écran que vous, surement un LCD 4 lignes
Mais l'écran TFT sera présent par la suite
ça sera la surprisse, bien sur je partagerais mon code ASM avec tous ceux du forum, surtout avec Gérard
A+
Excellent de faire un bout de Gcode pour bien comprendre, alors voilà ce que je comprends pas, si tu pouvais s'il te plait me l'expliquer
Code : Tout sélectionner
Z10
X0 Y0 Z10
X0 Y0 Z1
X0 Y0 Z0
Pour le reste j'ai compris, merci d'avoir eu l'idée de faire une chose simple, bon j'ai reçu mon micro lecteur de carte
Je préfère travailler sur une chose à la fois, je ne prendrais pas le même écran que vous, surement un LCD 4 lignes
Mais l'écran TFT sera présent par la suite
ça sera la surprisse, bien sur je partagerais mon code ASM avec tous ceux du forum, surtout avec Gérard
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 59 invités