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 ---
Tout ce qui n'a pas de catégorie !
Piloter une CNC avec Raspberry PI
gwion
Expert
Expert
Messages : 1124
Enregistré en : février 2022

#51 Message par gwion » jeu. 26 déc. 2024 18:12

Du RPI vers les drivers ça doit fonctionner sans souci car on est dans les niveaux logiques TTL. Par contre, s'il y a des retours en 5V des drivers vers le RPI, ça peut piquer...

Piloter une CNC avec Raspberry PI
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#52 Message par F6FCO » jeu. 26 déc. 2024 18:18

Merci je vais voir çà. Effectivement je préfèrerai assurer, je pense que je vais me construire ma carte d'adaptation, j'ai tout ce qu'il faut dans les tiroirs, il faut juste que je trouve l'empreinte Eagle de la DB25.

RE: c'est bon, trouvé, c'est dans le répertoire con-subd, au prix ou elle est je vais la faire moi-même.
Et le PI fournit le 3.3v et le 5vcc, un vrai conte de fée.
Une porte nand prend 2 bits en entrée... :eek:

Piloter une CNC avec Raspberry PI
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1620
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#53 Message par venom » jeu. 26 déc. 2024 19:36

Aïe vous êtes entrain de me dire que je peux flingué mon Rpi avec un retour 5V ?

:? :eek: je vais devoir investir pour assuré les arrières.

@F6FC0 ça fonctionne comment les pcb que tu montre plus haut sur alivavite ?








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

Piloter une CNC avec Raspberry PI
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#54 Message par F6FCO » jeu. 26 déc. 2024 19:47

Attends que j'ai fais mes essais, si c'est concluant tu n'auras qu'à recopier. Mais oui c'est plus prudent de mettre une carte en interface au prix ou est le PI.

Ces modules sont des adaptateurs de niveaux TTL . Ils font la transition entre 3.3 <--> 5v dans les deux sens, tu rentres avec du 5vcc et tu sors avec du 3.3 ou le contraire dans l'autre sens sur les mêmes broches. Il faut lui fournir du 3.3 et du 5v et il fait tout le boulot.

Moi pour l'instant je suis en train d'essayer de piger cette histoire de masque GPIO. En gros je comprends le principe mais ce que je ne pige pas c'est pourquoi il a mis certaines cases en jaune.
https://www.e-techno-tutos.com/2023/12/ ... e-du-gpio/
Mal expliqué, j'ai compris en regardant son tableur, c'est juste pour la forme, il suffit de recopier le même masque et çà devrait rouler mais ne n'aime pas trop faire des trucs en double-aveugle.
En fait la valeur 27152376 évite de prendre en compte toutes les broches d'alim et gnd.
Une porte nand prend 2 bits en entrée... :eek:

Piloter une CNC avec Raspberry PI
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1620
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#55 Message par venom » jeu. 26 déc. 2024 22:57

Oui j'avoue ne pas trop comprendre le tableau :?
J'ai demander de mon côté a chatgpt voici ce qu'il retourne (a prendre avec des pincettes) :

1. Qu'est-ce qu'un tableau de masque dans le HAL ?

Le masque est une valeur binaire ou hexadécimale qui indique quelles broches ou fonctionnalités sont activées pour une certaine opération. Les masques sont souvent utilisés pour :

Configurer les broches GPIO en entrée ou en sortie.
Activer ou désactiver des fonctions spécifiques.
Mapper des signaux à des broches physiques.

2. Identifier les broches GPIO disponibles

Pour un Raspberry Pi :

Utilisez la commande suivante pour lister les broches GPIO disponibles :

gpio readall

Cela affiche un tableau des broches avec leur numéro, leur état actuel et leur configuration.

Notez les numéros des broches que vous souhaitez utiliser (par exemple, GPIO17, GPIO18, etc.).

3. Créer un masque pour les broches sélectionnées

Les broches sont représentées sous forme de bits dans un entier binaire :

Chaque bit représente une broche.
Un bit à 1 signifie que la broche est activée, et 0 signifie qu'elle est désactivée.

Par exemple, si vous voulez activer GPIO17 et GPIO18, leur position dans le masque sera respectivement les bits 17 et 18 :

Masque binaire : 0000 0000 0000 0011 0000 0000 0000 0000
Masque hexadécimal équivalent : 0x00030000

4. Configurer les broches dans le fichier HAL

Dans le fichier .hal, vous utilisez des commandes pour attribuer ces masques à des fonctionnalités spécifiques. Par exemple :

loadrt hal_gpio cfg="0x00030000"

Cela charge un composant pour les broches GPIO spécifiées par le masque.
5. Exemple complet d'utilisation d'un masque dans le fichier HAL

Voici un exemple d'utilisation pour configurer deux broches GPIO en sortie :

Activez les broches GPIO17 et GPIO18 avec un masque.
Configurez-les comme sorties.

Fichier HAL :

# Charger le module GPIO avec le masque des broches 17 et 18
loadrt hal_gpio cfg="0x00030000"

# Connecter des signaux à ces broches
addf hal_gpio.read servo-thread
addf hal_gpio.write servo-thread

# Configurer GPIO17 comme sortie pour activer un moteur
setp hal_gpio.0.out-00 TRUE

6. Déboguer le tableau de masques

Utilisez la commande suivante dans LinuxCNC pour tester votre configuration :

halrun

Puis chargez vos fichiers .hal et vérifiez avec :

show pin
show param

Cela permet de vérifier si les broches GPIO sont correctement mappées et fonctionnent comme attendu.



J'ai demander a chatgpt de décortiqué la ligne
loadrt hal_pi_gpio dir=27152376 exclude=0

Voilà le retour :

Analysons cette commande spécifique et son impact dans le fichier HAL de LinuxCNC :
1. Commande décomposée :

loadrt hal_pi_gpio dir=27152376 exclude=0

loadrt hal_pi_gpio :
Charge le module hal_pi_gpio, qui permet à LinuxCNC d'accéder et de contrôler les broches GPIO du Raspberry Pi.

dir=27152376 :
Définit la direction (input ou output) des broches GPIO utilisées. Cette valeur est un masque binaire ou un équivalent décimal.

exclude=0 :
Indique que toutes les broches GPIO du Raspberry Pi sont disponibles pour être configurées. La valeur 0 signifie que rien n'est exclu.

2. Décryptage du masque dir=27152376 :

La valeur 27152376 est un entier décimal. Convertissons-la en binaire pour identifier quelles broches GPIO sont configurées en entrée (0) ou en sortie (1).

Convertissons 27152376 en binaire :

27152376 (décimal) = 0001 1010 1101 1011 0111 1001 1000 (binaire)

Chaque bit de ce nombre représente une broche GPIO, en commençant par la broche 0 (bit le plus à droite).
0 : La broche est configurée en entrée.
1 : La broche est configurée en sortie.

Alignons ce masque avec les broches GPIO :
GPIO 0 (bit 0) : 0 → Entrée
GPIO 1 (bit 1) : 0 → Entrée
GPIO 2 (bit 2) : 0 → Entrée
GPIO 3 (bit 3) : 1 → Sortie
GPIO 4 (bit 4) : 1 → Sortie
...
GPIO 31 (bit 31) : 0 → Entrée

On peut résumer ainsi :
Les GPIO configurées en sortie sont : GPIO3, GPIO4, GPIO5, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11, GPIO12, GPIO14, GPIO15, GPIO17, GPIO18, GPIO19, GPIO20, GPIO22, GPIO23.

3. Configurer les broches restantes :

Si vous devez exclure certaines broches (par exemple, réservées pour d'autres fonctions comme I2C ou UART), modifiez le paramètre exclude. Par exemple :

loadrt hal_pi_gpio dir=27152376 exclude=0x00003000

Ici, les broches GPIO12 et GPIO13 (bits 12 et 13) sont exclues.

4. Tester et vérifier la configuration :

Après avoir ajouté cette commande dans votre fichier .hal :

Lancez LinuxCNC ou utilisez halrun pour tester.
Vérifiez les broches GPIO configurées avec :

show pin

Assurez-vous que les broches configurées répondent comme prévu (entrée ou sortie).


Apparemment exclude permet d'inclure ou d'exclure certaines pine.

Si ça peut aider a avancer :wink:







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

Piloter une CNC avec Raspberry PI
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#56 Message par F6FCO » ven. 27 déc. 2024 00:29

J'ai bien pigé le principe, la seule question que je me pose c'est pourquoi il a coloré certaines lignes en jaune, apparemment çà n'a aucun rapport.
Une porte nand prend 2 bits en entrée... :eek:

Piloter une CNC avec Raspberry PI
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1620
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#57 Message par venom » ven. 27 déc. 2024 01:34

F6FCO a écrit :J'ai bien pigé le principe, la seule question que je me pose c'est pourquoi il a coloré certaines lignes en jaune, apparemment çà n'a aucun rapport.


J'ai une conversation avec le créateur du blog avec qui j’ai déjà échanger par mail. Je vais simplement lui demander ont sera fixer. Qu'est ce que tu en pense ? :sifflotte: :-D

Je vous tiens au courant des que j'ai la réponse :wink:






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

Piloter une CNC avec Raspberry PI
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#58 Message par F6FCO » ven. 27 déc. 2024 09:19

Demande lui pour valider mais j'ai compris pour la couleur jaune, c'est simplement les pins réglées en input.

Pour le reste c'est assez simple et on le comprend en examinant les opérations sur les cellules du tableur:
- il faut mettre la valeur 1 dans la colonne D (in=0 / out=1, le contraire des PIC) pour déterminer si elle sera en entrée ou en sortie. Tu détermines ainsi ta colonne "mask" en multipliant la valeur de la colonne E par 1 ou 0.
- Pour obtenir la valeur finale tu additionnes les valeurs de la colonne G et la colonne F et tu obtiens ainsi la valeur finale à placer dans le HAL.
Finalement on n'a rien à toucher, on aurait aussi bien pu le faire d'une autre manière suivant l'affectation des pins choisie. Ce qu'il a fait est bon, il faut placer la valeur 27152376 dans le HAL.
Je vais faire le PCB d'interface, mais au lieu de le dessiner en dur je vais le rendre souple en le faisant réglable par des straps sur barette.
Une porte nand prend 2 bits en entrée... :eek:

Piloter une CNC avec Raspberry PI
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1620
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#59 Message par venom » ven. 27 déc. 2024 09:37

Oui c'est bien ça. Voici sa réponse toute fraîche :
Les lignes jaunes sont les lignes configurees en entrée IN ( colonne 3 à zero). 
Comme précisé avant le tableau, certains broches ne sont pas modifiables 
et doivent dans tous les cas rester à zéro => broches 3-5-7-27-28. Les broches 8-10-11-12-16-
18 et 13 peuvent elles être configurees en sorties.


Mais si j'ai bien compris la c'est configurer pour 4 axes. Nous avons besoin que de 3 axes. Car après il faut des pins pour les fin de course, big red button etc.... ?







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

Piloter une CNC avec Raspberry PI
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#60 Message par F6FCO » ven. 27 déc. 2024 10:02

Oui c'est çà, pour simplifier l'explication chaque pin à une valeur propre (colonne E) et on additionne les valeurs des pins configurées en OUT, çà donne la valeur finale à mettre dans le HAL. c'est plus simple avec les PIC :wink:

Le 4eme axe on n'en a pas besoin pour graver des PCB, je n'en tiens pas compte avec l'interface. En gros un 4 axe c'est pour faire tourner la pièce et faire de la sculpture en révolution, pratique si tu veux te sculpter des pions de jeu d'échec par exemple. Un mandrin est bridé sur la table et la pièce tourne pendant la gravure.
https://www.facebook.com/cnc.router.sfa ... id=SEO----
https://www.geekbuying.com/item/TWO-TRE ... rans/en/fr
Une porte nand prend 2 bits en entrée... :eek:


Retourner vers « Coin Fourre-tout »

Qui est en ligne

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