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 ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#71 Message par F6FCO » dim. 13 mai 2018 11:20

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 :evil: )
- 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 :wink:
Modifié en dernier par F6FCO le dim. 13 mai 2018 11:53, modifié 6 fois.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 953
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#72 Message par venom » dim. 13 mai 2018 11:31

Bonjour à tous,

Ah c'est comme ça que fonctionne du Gcode. :shock: Je n'ai jamais abordé le sujet. Pas mal.






@++
Mon site web
Mon discord : venom#4888

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#73 Message par F6FCO » dim. 13 mai 2018 11:36

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:

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.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#74 Message par Jérémy » dim. 13 mai 2018 11:49

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 :wink:


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 ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#75 Message par F6FCO » dim. 13 mai 2018 11:52

Merci Jeremy, sinon à nous de penser à ne pas mettre d'apostrophes, mais çà va être difficile, j'ai appris à taper à Mach2 sur une Japy alors imagine sur un clavier :lol:
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#76 Message par F6FCO » dim. 13 mai 2018 15:34

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 ?
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#77 Message par Temps-x » dim. 13 mai 2018 16:21

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+
Modifié en dernier par Temps-x le dim. 13 mai 2018 19:22, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Soft de commande CNC en asm
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#78 Message par satinas » dim. 13 mai 2018 17:10

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.

gcode.ttl.txt

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
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#79 Message par F6FCO » dim. 13 mai 2018 17:10

Ok Temps-X, c'est bien ce que j'avais compris :wink:

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

Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#80 Message par Temps-x » mar. 15 mai 2018 01:51

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

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

Micro-carte-sd-1.jpg


Micro-carte-sd-2.jpg


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 :wink:

ça sera la surprisse, bien sur je partagerais mon code ASM avec tous ceux du forum, surtout avec Gérard exit dehors!!

==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 45 invités