OpenFactory-Xcarve

De Movilab.org
2015.11.30 OF CNC v2-01.jpg
Page liée : Montage CNC par OpenFactorySainté

Présentation de la fraiseuse numérique par Mr Bidouille


configuration du firmware grbl pour Xcarve (large)

$3=3 (dir port invert mask:00000011)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=1 (soft limits, bool)
$21=0 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=3 (homing dir invert mask:00000011)
$24=25.000 (homing feed, mm/min)
$25=750.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=40.000 (x, step/mm)
$101=40.000 (y, step/mm)
$102=188.000 (z, step/mm)
$110=8000.000 (x max rate, mm/min)
$111=8000.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=250.000 (x accel, mm/sec^2)
$121=250.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=760.000 (x max travel, mm)
$131=750.000 (y max travel, mm)
$132=80.000 (z max travel, mm)

Pour plus de détails, voir la doc grbl 0.9: https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9

Générer du gcode

Infos sur les fraises/matériaux/vitesse de coupe par le Labomédia


Depuis Fusion 360

Ca fonctionne out of the box

TODO: expliquer comment faire

Depuis OpenScad

Depuis HeeksCAD

HeecksCAD est un logiciel de CAO simple, semble disposer d'un module CAM : HeecksCNC

Pilotage de la xcarve

La solution technique que nous avons retenue pour piloter la x-carve utilise un RaspBerry Pi. Ce dernieri délivrera d'un coté l'interface home-machine au travers d'une interface HTTP, et dialoguera de l'autre avec la carte GRBL de la x-carve à laquelle il envera les commandes G-Code.

Plusieurs solutions existent pour implémenter cette solution. Nous en avons testé deux qui se ressemblent beaucoup :

- chilipeppr
- cncjs

Les interfaces et fonctionalités des deux outils sont très proches. La principale différence entre ces deux solutions réside sur le fait qu'avec Chilipeppr, c'est le client HTTP transmet le g-code tout au long du job, alors qu'avec cncjs, le g-code est stocké sur le raspbery. Cette dernière solution est plus sécure, car dans le cas d'un arrêt du client (fermeture du navigateur, coupure réseau...) le travail en cours n'est pas interrompu.

les procédures d'installation des deux solutions sont documentées ci-dessous.

Installer une Raspbian

Traduction en français de l'interface

Consulter le dépôt sur GitHub

Installation de Chilipeppr

Site web de Chilipeppr

Créer un utilisateur chilipeppr

$ sudo adduser --system --home=/opt/chilipeppr chilipeppr

Installation de l'interface serial <-> http-json

Télécharger le packet

$ sudo su - chilipeppr --shell=/bin/bash
$ wget -qO- https://github.com/chilipeppr/serial-port-json-server/releases/download/v1.88/serial-port-json-server-1.88_linux_arm.tar.gz | tar xvz
$ mv serial-port-json-server-1.88_linux_arm serial-port-json-server

Test du service

$ sudo su - chilipeppr
$ /opt/chilipeppr/serial-port-json-server/serial-port-json-server -hostname xcarve

vous devriez obtenir quelque chose comme ça :

chilipeppr@raspberrypi:~$ /opt/chilipeppr/serial-port-json-server/serial-port-json-server -hostname xcarve
2016/03/10 17:02:25 main.go:89: Version:1.88
2016/03/10 17:02:25 main.go:96: Hostname: xcarve
2016/03/10 17:02:25 main.go:102: Garbage collection is on using Standard mode, meaning we just let Golang determine when to garbage collect.
2016/03/10 17:02:25 main.go:115: Starting server and websocket on 192.168.0.233:8989
2016/03/10 17:02:25 main.go:118: The Serial Port JSON Server is now running.
2016/03/10 17:02:25 main.go:119: If you are using ChiliPeppr, you may go back to it and connect to this server.
2016/03/10 17:02:25 main.go:129: You can enter verbose mode to see all logging by starting with the -v command line switch.
2016/03/10 17:02:26 main.go:144: Your serial ports:
2016/03/10 17:02:26 main.go:151: 	{/dev/ttyACM0 Arduino Srl Arduino Uno (ttyACM0) [] 754313433343516021C1 02 Arduino Srl              0043 2a03}
2016/03/10 17:02:26 main.go:151: 	{/dev/ttyAMA0 ttyAMA0 []      }

faites ctrl+c pour arrêter le service et reprendre la main.

Installation en tant que service (lancement au boot)

Passer root (si votre utilisateur n'a pas les privilèges requis pour vous promouvoir root, passez d'abord pi comme indiqué ci-dessous)

chilipeppr@raspberrypi:~$ su - pi
Mot de passe : 
pi@raspberrypi:~ $ sudo su -
root@raspberrypi:~# 

Créer le fichier d'unité systemd

vim /etc/systemd/system/chilipeppr-serial-json.service

placez-y le contenu suivant et sauvegardez :

[Unit]
Description=Chilipeppr serial port json server
After=network.target

[Service]
ExecStart=/opt/chilipeppr/serial-port-json-server/serial-port-json-server -hostname xcarve
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=chilipeppr-serial-json.service

Pour lancer le service :

systemctl start chilipeppr-serial-json

Vérifiez qu'il tourne :

root@raspberrypi:~# ps -ef |grep json-server | grep -v grep
root      2281     1  1 17:26 ?        00:00:01 /opt/chilipeppr/serial-port-json-server/serial-port-json-server -hostname xcarve
root@raspberrypi:~# 

Pour l'activer au boot :

sudo systemctl enable --system chilipeppr-serial-json.service

rebootez le raspberry et vérifiez que le service a bien été démarré grace à la commade

ps -ef |grep json-server | grep -v grep

Se connecter à l'interface

Se connecter à Chilipeppr

A faire : tuto d'utilisation de la CNC, tout le protocole pour l'utiliser.

Installation de CNC.JS

Créez le user cncjs

$ sudo adduser --system --home=/opt/cncjs cncjs

Installez le gestionnaire de paquets nodejs

$sudo apt-get install npm

passez root puis cncjs

pi@raspberrypi:~ $ sudo -s
root@raspberrypi:/home/pi# su - cncjs --shell=/bin/bash

Déterminez le dossier d'install des paquets du framework npm

echo "prefix=~/node_modules" >> ~/.npmrc

Mettez a jour npm

npm install -g npm

installez la lib libicu-dev

sudo apt-get install libicu-dev

installez l'application cncjs

$npm install -g cncjs

Permettez à l'utilisateur cncjs d'accéder au port série

pi@raspberrypi:~ $ sudo adduser cncjs dialout


Test du service cncjs

Lancer le service en ligne de commande depuis un terminal

$ su - cncjs --shell=/bin/bash
cncjs@raspberrypi:~$ node_modules/bin/cnc

vous devez obtenir quelque chose comme ça :

Server is listening on 0.0.0.0:8000

depuis un navigateur web, connectez-vous à l'interface : http://<@IP_du_raspberry>:8000, vous devez voir l'interface de pilotage de la CNC

revenez à la fenêtre terminal, faites ctrl+c pour arrêter le service et reprendre la main.

Installation en tant que service (lancement au boot)

Passer root (si votre utilisateur n'a pas les privilèges requis pour vous promouvoir root, passez d'abord pi comme indiqué ci-dessous)

$ su - pi
Mot de passe : 
pi@raspberrypi:~ $ sudo su -
root@raspberrypi:~# 

Créez le fichier d'unité systemd

vim /etc/systemd/system/cncjs.service

placez-y le contenu suivant et sauvegardez :

[Unit]
Description=Service cncjs
After=network.target

[Service]
ExecStart=/opt/cncjs/node_modules/bin/cnc
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=cncjs.service

Démarrez le service :

systemctl start cncjs

Vérifiez qu'il tourne :

root@raspberrypi:~# ps -ef |grep cncjs | grep -v grep
root     24914     1 99 16:10 ?        00:00:03 node /opt/cncjs/node_modules/bin/cnc
root@raspberrypi:~# 

Pour l'activer au boot :

sudo systemctl enable --system cncjs.service

rebootez le raspberry et vérifiez que le service a bien été démarré, toujours grâce à la commade

ps -ef |grep cncjs | grep -v grep

Construction d'une boîte de protection

La boîte pendant sa construction
Les plans de la boîte

Besoins

La boîte répond d'abord a un besoin de sécurité : protéger les individus en cas d'accident ou de problème, si une pièce ou un morceau s'envole il restera enfermé dans la boîte.

Il s'agit aussi de limiter le bruit et éviter que la poussière se balade partout.

Matériels

  • Plaque en bois MDF (neuf)
  • 19 mètres de cornières en zinc (neuf)

Comment ça marche ?

La CNC est protégé par un capot en glace.

Au niveau de la broche un compresseur va soufflé la poussière, elle sera aspiré par un entonnoir en dessous.

Sources d'informations