Linuxcnc sur Raspberry

  • Auteur de la discussion Pierre9209
  • Date de début
P

Pierre9209

Nouveau
Bonjour


Je vous expose mon projet ici pensant que c'est la bonne rubrique.


Je suis débutant sur ce forum, et dans beaucoup de domaines notamment sur Rapsberry et Linux.


Je souhaite acheter une fraiseuse CNC 3 axes. L'idée d'utiliser une Rapsberry Pi3 modèle B avec comme OS Linuxcnc-2.7-wheezy me plairait bien. Dans le cas ou ce ne serait pas possible que me conseilleriez vous ? Sachant que mon unité de commande pour la CNC est en port parallèle.


Le projet est de centralisé l'ensemble des cartes, la Pi3 B plus l'unité de commande de la CNC dans un premier temps et dans un second temps y ajouter une seconde Pi3 B pour driver l'unité de commande d'une imprimante 3D, le tous dans le même boîtier .


Pourquoi la Rapsberry ?


  1. les 4 Ports USB me permettront de mettre les fichiers d'usinage directement

  2. le Port Ethernet relier à ma box pour les mise à jour éventuelle

  3. le Wi-fi pour la prise en mais des systèmes à travers une tablette ou un PC ainsi que pouvoir transférer des des fichiers sur la Pi3 désirer

  4. ses performances et la compacité de la carte.

Merci aux personnes qui pourront me conseiller sur ce projet afin de le mener à bien
 
L

Luo Lan

Apprenti
Je n'ai pas testé mais je pense pas qu'utiliser un raspberry soit une solution viable.
Je pense que le Beaglebone est préférable pour installer MachineKit la version de LinuxCNC
en tout cas il est préférable d'utiliser un linux minimaliste spécialisé dans le pilotage des CNC comme machinekit
http://www.machinekit.io/ plutot qu'une debian généraliste

Le beaglebone possède 2 unité PRU unité de programmation temps réel
http://beagleboard.org/pru il peut envoyer des signaux à 200Mhz vers les borches GPIO pour piloter des moteurs pas à pas je ne pense pas que Raspberry possède ces possibilités

En tout cas je n'ai jamais entendu parler de solutions à base de raspberry pour piloter des CNC
Si tu veux rester dans la catégorie équivalent Raspberry, le concurrent de texas instrument Beaglebone pilote déja des cnc avec des shields

http://www.pmdx.com/PMDX-432

Moi j'utilise plutôt pour mes cnc et imprimantes 3D des solutions dédiés basé également sur des processeur ARM avec un linux minimaliste
cela s'appelle Smoothieboard la même carte gère n'importe quelle machine fonctionnant au Gcode (cnc découpeuse laser imprimante 3d) dans une seule carte
Exemple de cnc imprimante 3d que j'ai concu avec une seule carte smoothieboard
http://www.makerslide-machines.com/wp-content/uploads/2016/11/impression-3D-formosa.mp4
J'ajouterai une tête laser un peu plus tard
 
Dernière édition:
O

osiver

Compagnon
J'ai profité d'une promo pour un RPI3 à moins de 30€ port inclus dans le but de me faire un peu la main sur ce système.
Pour le moment, ce n'est pas vraiment dans le but de faire une CNC mais qui sait.
J'ai installé une raspbian jessie (la dernière) ainsi que Kernel RT-preempt. De plus j'ai installé linuxcnc 2.7.
Ce qui est assez magique, c'est que l'on peut directement le commander par SSH et/ou VNC par wifi sans un fil, à part l'alimentation.

Avec 1Go de mémoire et un processeur 64bits 4 coeurs à 1,2Go, un paquet de ports GPIO/SPI/I2C..., il me semble qu'on a de quoi faire tourner une CNC.
Pour comparaison, ma F3-CNC est pilotée par un méchant microprocesseur 8bits.
Je ne sais pas exactement pourquoi c'est aussi peu utilisé. On dirait que cette carte est plus utilisée pour faire des serveurs de médias.
 
P

Pierre9209

Nouveau
J'ai profité d'une promo pour un RPI3 à moins de 30€ port inclus dans le but de me faire un peu la main sur ce système.
Pour le moment, ce n'est pas vraiment dans le but de faire une CNC mais qui sait.
J'ai installé une raspbian jessie (la dernière) ainsi que Kernel RT-preempt. De plus j'ai installé linuxcnc 2.7.
Ce qui est assez magique, c'est que l'on peut directement le commander par SSH et/ou VNC par wifi sans un fil, à part l'alimentation.

Avec 1Go de mémoire et un processeur 64bits 4 coeurs à 1,2Go, un paquet de ports GPIO/SPI/I2C..., il me semble qu'on a de quoi faire tourner une CNC.
Pour comparaison, ma F3-CNC est pilotée par un méchant microprocesseur 8bits.
Je ne sais pas exactement pourquoi c'est aussi peu utilisé. On dirait que cette carte est plus utilisée pour faire des serveurs de médias.
je ne sais pas quelle version de linux choisir la Wheezy ou la Jessie. j'ai télécharger les deux version et je verrais bien quand j'aurais reçu la Pi3. le soucis c'est la config du port GPIO.
 
P

Pierre9209

Nouveau
Je n'ai pas testé mais je pense pas qu'utiliser un raspberry soit une solution viable.
Je pense que le Beaglebone est préférable pour installer MachineKit la version de LinuxCNC
en tout cas il est préférable d'utiliser un linux minimaliste spécialisé dans le pilotage des CNC comme machinekit
http://www.machinekit.io/ plutot qu'une debian généraliste

Le beaglebone possède 2 unité PRU unité de programmation temps réel
http://beagleboard.org/pru il peut envoyer des signaux à 200Mhz vers les borches GPIO pour piloter des moteurs pas à pas je ne pense pas que Raspberry possède ces possibilités

En tout cas je n'ai jamais entendu parler de solutions à base de raspberry pour piloter des CNC
Si tu veux rester dans la catégorie équivalent Raspberry, le concurrent de texas instrument Beaglebone pilote déja des cnc avec des shields

http://www.pmdx.com/PMDX-432

Moi j'utilise plutôt pour mes cnc et imprimantes 3D des solutions dédiés basé également sur des processeur ARM avec un linux minimaliste
cela s'appelle Smoothieboard la même carte gère n'importe quelle machine fonctionnant au Gcode (cnc découpeuse laser imprimante 3d) dans une seule carte
Exemple de cnc imprimante 3d que j'ai concu avec une seule carte smoothieboard
http://www.makerslide-machines.com/wp-content/uploads/2016/11/impression-3D-formosa.mp4
J'ajouterai une tête laser un peu plus tard
j'aime bien l'idée de tette interchangeable sur la CNC! si je peu rester avec le Raspberry, je préfere.
il correspond plus à ce que je souhaite obtenir au final.
 
O

osiver

Compagnon
Ce qu'il y a de bien aussi c'est que rien n'est obligé ! Le système (OS) tient sur une µSD de 8Go à 4€ (il en occupe la moitié et peut être sérieusement réduit) et on peut donc essayer toutes les variantes que l'on veut, juste à changer la µSD et le redémarrage se fait en quelques secondes, réseau inclus 8-)
Sur une machine Linux, on peut monter la carte µSD et manipuler les fichiers directement.
 
S

speedjf37

Compagnon
oui mais il est prévu pour PC et je ne sais pas si il peu tourner sur un Pi3 pour cela il faudrait adapter le GPOI pour le rendre compatible avec le contrôleur de la CNC que je vais m'acheter, à défaut je pourrais toujours monter une carte adapter au Pi3 comme celle ci http://wiki.protoneer.co.nz/Raspberry_Pi_CNC
Bonjour,

Dans le cas de cette carte ,on se retrouve dans une config PC -> GRBL sur Arduino et liaison série.
On est loin de Linuxcnc ou de Machinekit

Cordialement JF
 
R

RacingMat

Compagnon
Avec 1Go de mémoire et un processeur 64bits 4 coeurs à 1,2Go, un paquet de ports GPIO/SPI/I2C..., il me semble qu'on a de quoi faire tourner une CNC.
tu voudras bien nous dire ce que donne le test de latence, STP ? :)
 
O

osiver

Compagnon
Test avec 4 threads, 1 par cœur :

Capture du 2017-02-01 11-21-53.png


la charge processeur était de 100% avec "cat /dev/zero > /dev/null", 3 terminaux en SSH ouverts par remmina sur le wifi : 1 pour le test, 1 pour cat..., 1 pour top

Le même avec les mêmes conditions mais un seul cœur utilisé :
Capture du 2017-02-01 11-28-50.png
 
M

moissan

Compagnon
le raspberry actuel raspberry pi 3 est beaucoup plus puissant que le premier modele , il est bien possible qu'a l'epoque du premier raspberry le beaglebonne blacke etait la seule solution , peut etre que maintenant le raspberry pi 3 suffi a linux cnc ... linux cnc marchait bien sur des vieux pc moins puissant que le raspberry actuel

mais attention , en informatique les puissance de calcul sont difficile a mesurer , on peut avoir une grosse puissance utile pour certain programme et inutile pour les entrée sortie
 
F

furynick

Compagnon
D'après ce que j'ai lu sur la Doc LinuxCNC c'est que les ports USB ne sont pas compatibles avec le temps réel.
La question est donc de savoir s'il est possible de configurer LinuxCNC pour utiliser le GPIO de la Pi.
 
O

osiver

Compagnon
Tout à fait @moissan !
Il y a déjà un facteur 2 à 3 entre lePI1 et le PI2 puis environ 33% de plus, rien qu'à cause de la fréquence d'horloge entre le PI2 et le PI3.
C'est de la puissance brute, donc à contrôler par rapport à une application et par rapport aux interpréteurs, compilateurs, languages, librairies.
Il y a un rapport intéressant sur le sujet où on voit qu'un PI3 dans les meilleures conditions peut manipuler une sortie GPIO à plus de 65MHz 8-)
https://github.com/hzeller/rpi-gpio-dma-demo
 
M

moissan

Compagnon
bien sur que l'usb ne suffit pas ! le gpio est la solution , mais est ce que chez linux cnc il ont programé ce qu'il faut pour utiliser le gpio du raspberry ?

le BBB est un peu plus cher que le raspberry mais au niveau d'une cnc la difference est negligable ... donc tant que le BBB est une solution disponible pourquoi se casser la tête avec le raspberry ?









,







,
 
C

coredump

Compagnon
Attention en temps réel la puissance d'un processeur n'est absolument pas gage de latence faible, c'est même plutôt le contraire.
Pour tout les rpis les gpio tournent à 25MHz max, sur une beaglebone les IO dédiées au PRU c'est 200MHz.
 
M

moissan

Compagnon
25Mhz ou 200Mhz c'est de toute façon largement au dessus de ce que l'on a besoin pour faire tourner des moteur pas a pas !

le chiffre utile n'est pas la frequence maxi que le microcontroleur peut faire ... le chiffre utile c'est a quel vitesse il peut executer un programme precis sans rater des pas
 
O

osiver

Compagnon
@moissan ,

Déjà parce qu'il fournit des E/S bien plus nombreuses, parmi lesquelles le wifi et le SSH permettant d'accéder à la machine potentiellement depuis le monde entier.
La présence de sortie HDMI (afficher le travail en cours localement), la présence de l'interface caméra ...
La carte µSD permet de transférer les fichiers pièces, les ports USB de connecter une clé/lecteur de carte SD/disque dur ou SSD pour des bibliothèques de pièces, clavier/souris, raquette, que sais-je encore ?
 
C

coredump

Compagnon
@moissan ,

Déjà parce qu'il fournit des E/S bien plus nombreuses, parmi lesquelles le wifi et le SSH permettant d'accéder à la machine potentiellement depuis le monde entier.
La présence de sortie HDMI (afficher le travail en cours localement), la présence de l'interface caméra ...
La carte µSD permet de transférer les fichiers pièces, les ports USB de connecter une clé/lecteur de carte SD/disque dur ou SSD pour des bibliothèques de pièces, clavier/souris, raquette, que sais-je encore ?

Tu ne peux pas utiliser la uSD du rpi pour le transfert de fichier car tu as ton linux dessus. Par contre sur la bbb oui car il a une flash interne (emmc) en plus du lecteur de carte. Elle a aussi une sortie HDMI, mais il peut y avoir des interactions avec les capes qu'on mets dessus.
Pour le wifi c'est un simple dongle usb donc on peut faire la même chose sur la bbb.
Pour la caméra il faut voir si ça n'inpacte pas le temps réel.
Au final tout le travail a été déjà fait sur la bbb, et reste quasiment à faire du la RPi3, mais pas de raison de ne pas y arriver.
 
O

osiver

Compagnon
Tu ne peux pas utiliser la uSD du rpi pour le transfert de fichier car tu as ton linux dessu
Faux ! C'est une carte µSD normale, on peut monter sans problème le système de fichiers.
C'est un cas pas très malin car on a toutes les autres interfaces disponibles et que ça suppose d'arrêter le Pi mais c'est possible
Pour le wifi c'est un simple dongle usb
Sur le 3, le wifi est inclus sur la carte. :wink:
Pour la caméra il faut voir si ça n'inpacte pas le temps réel.
C'est sûr !
Imaginez le cas de la machine qui est partie pour une longue impression 3D dont on peut surveiller le déroulement à la fois par l'interface GUI et par une caméra montrant l'avancée du travail ... le tout depuis son boulot 8-)
 
M

moissan

Compagnon
si je devait surveiller une cnc avec une camera , ou prendre des video pour publier ensuite je ne le ferai surtout pas avec le truc qui pilote la cnc !

le truc qui pilote la cnc ne doit rien faire d'autre ! il ne faut pas chercher les bug , il arrivent bien assez sans les chercher

la wifi qui se connecte au monde entier il vaut mieux la couper
 
C

coredump

Compagnon
Oui tu peux toujours partager la carte, mais autant prendre une clef USB dans ce cas. Le wifi du 3 est aussi sur USB, en fait ça ne change pas grand chose par rapport à un petit dongle en dehors du port libéré.

Pour la caméra on a ça au boulot sur l'imprimante 3d qui est dans la salle serveur, ça permets de la surveiller sans avoir à se déplacer.
 
M

Marc PELTIER

Compagnon
Je vais rajouter mon grain de sel parce que j'ai vu passer quelques malentendus.

De nos jours, les moteurs pas-à-pas sont pratiquement toujours gérés en mode micro-pas, ce qui rend la question de la fréquence maximale de génération des pas assez critique. Si l'on veut utiliser 256 micro-pas par pas, ce qui réduit drastiquement les soucis de résonance et de bruit, il faut une fréquence de pas 256 fois supérieure, ce n'est pas rien. En général, on bute sur une fréquence maximale que l'électro/informatique peut gérer, et quand on compare avec la vitesse physique que ça donne sur la machine, on se rend compte qu'il faut se contenter d'un mode micro-pas qui donnera plus de bruit et de problèmes.

En première approximation, on peut donc classer la pertinence d'un système informatique pour la CNC, selon la fréquence de pas qu'il est capable de générer, et ça n'a rien à voir avec la puissance informatique pure.

Pour fixer les idées, voici les ordres de grandeur :

PC Windows (quelle que soit la puissance informatique) sortant les signaux sur un port parallèle : 15 à 40 kHz, généralement entre 20 et 30 kHz.
Arduino Mega tournant GBRL : 30 à 50 kHz
Carte spécialisée Smoothieboard : 100 kHz
Carte spécialisée DuetWifi : 180 kHz
BeagleBone Black avec MachineKit : 300 kHz (1 à 2 MHz avec programmation spéciale)
PC Windows avec une carte industrielle MESA ou similaire : 10 MHz

On se retrouve donc avec le paradoxe que le simple Arduino, dont le programme s'exécute de façon déterministe, fait mieux qu'une machine multitâches puissante, mais dont le timing n'est pas déterministe, de sorte que l'on doit se contenter d'une notion de "temps de latence" minimum sur lequel on pourra plus ou moins compter, et faire avec.

Bien sûr, pour faire marcher une CNC dans la vraie vie, un système informatique moderne, avec sous-système graphique et réseau, est en pratique indispensable. La solution est donc évidente : la génération des pas doit être confiée à un sous-système spécialisé au timing déterministe, tout comme la génération des graphiques ou du son. C'est l'architecture des cartes industrielle MESA, qui donnent des performances époustouflantes.

Ce qui fait l'intérêt du BeagleBone Black, c'est qu'il reproduit nativement cette architecture optimale, en embarquant deux exemplaires d'un sous-système, vraiment fait pour ça, et très efficace : les PRUs, qui tournent à 200 MHz avec des instructions sur un seul cycle : ça dépote ! Moins qu'une carte MESA, mais ça dépote !

Si l'on veut faire la même chose avec un Raspberry, même très puissant, il faudra aussi déléguer la gestion des signaux de pas à un sous-système, ici un PIC32 sur une carte fille. Si l'on est un passionné aficionado du Raspi, pourquoi pas, mais ça n'est pas compétitif par rapport au BBB, à mon avis, quel que soit le critère.

En tout cas, si ça doit obliger à passer par un antique port parallèle DB25, limité de tous les côtés, très peu pour moi !
 
Dernière édition:
T

toff

Compagnon
Bonjour à tous,
pour la question première, j'avais vu la méthode d'install sur un RPI sur base Debian Jessie http://www.machinekit.io/docs/getting-started/installing-packages/.

Pour ce qui est de la fréquence nécessaire, le raisonnement de Marc est bon mais me parait très orienté impression 3D, car en usinage il ne faut pas trop monter en micro pas sous peine de ne plus avoir assez de couple.
 
M

Marc PELTIER

Compagnon
@toff

Les micro-pas sont toujours désirables, pour des questions de bruit et de résonances. Mais ils n'influent ni sur le couple, ni sur la résolution.

Je m'explique :

Un moteur pas-à-pas ne développe son couple maximum, pour un courant donné, que lorsque les pôles magnétiques sont déphasés d'un demi-pas physique, juste avant le décrochement, c'est à dire la perte d'un pas. C'est toujours vrai, quel que soit le nombre de micro-pas qui lui ont permis d'arriver dans cette position physique.

En conséquence, il ne faut pas compter sur les micro-pas pour augmenter la résolution, c'est une illusion. La résolution est toujours fixée par le nombre de pôles physiques du moteur, qui définit l'angle de pas (1,8° ou 0,9°), et le couple est toujours fixé par le courant maximum admissible dans les bobines, pour une température raisonnable. Les micro-pas ne sont utilisés que pour lisser les transitions de courant et donc les chocs magnétiques induits.
 
N

nathan33240

Apprenti
Bonjour
Moi j utilise octoprint sur mon raspberry pour commander mon imprimante 3d relier en usb et ca fonctionne tres bien.
http://octoprint.org
 
T

toff

Compagnon
Ah ben merde, je m'étais convaincu du contraire. Bon je ne vais pas polluer, mais du coup cela m'amène plein de questions....
 

Sujets similaires

esloch
Réponses
52
Affichages
1 859
esloch
esloch
grandioso
Réponses
4
Affichages
245
C
Haut