OpenFactory-Xcarve

De Movilab
Aller à :navigation, rechercher
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)[modifier | modifier le wikicode]

$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[modifier | modifier le wikicode]

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


Depuis Fusion 360[modifier | modifier le wikicode]

Ca fonctionne out of the box

TODO: expliquer comment faire

Depuis OpenScad[modifier | modifier le wikicode]

Depuis HeeksCAD[modifier | modifier le wikicode]

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

Pilotage de la xcarve[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

Traduction en français de l'interface[modifier | modifier le wikicode]

Consulter le dépôt sur GitHub

Installation de Chilipeppr[modifier | modifier le wikicode]

Site web de Chilipeppr

Créer un utilisateur chilipeppr[modifier | modifier le wikicode]

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

Installation de l'interface serial <-> http-json[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

$ 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)[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

Se connecter à Chilipeppr

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

Installation de CNC.JS[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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)[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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

Besoins[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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

Comment ça marche ?[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

Soutenir Movilab

Vous pensez que nous allons dans le bon sens ? Si vous en avez l'envie nous vous invitons à nous rejoindre ou à faire un don.