CNC Apple

De Sam's Projects.
Version du 14 février 2013 à 17:07 par Sam (discuter | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : Navigation, rechercher

A la base, c’était un robot que je voulais faire, malheureusement je n’avais pas de quoi découper précisément mon châssis, d’où l’idée de créer une CNC qui me permettrait de découper ce que je veux et ainsi mettre en place d’autres projets.

Mais ayant plus grand yeux que grand ventre, je suis parti sur une CNC à grande échelle (environ 80x60cm), ma première et pas dernière erreur. En effet, plus la CNC est grande , plus les chances qu’elle soit précise sont faibles. Enfin bref, j’ai quand même réussi à la faire fonctionner tant bien que mal.

Vous pouvez trouver toutes les photos de la construction sur ma Galerie Picasa.


Création sous Sketchup :


Sommaire

Liste des composants

Récupération

  • Arduino Mega (30€)
  • Roulements à billes
  • Dremel

Achat Castorama

1 Aluminium Cornie 20x20x1,5 2m 8,05€
3 MDF 80x40x1,6 3×6,50€ = 19,50€
1 MDF 80x60x1,6 10,70€
3 Tige filetée acier 8mm 1m 3×1,00€ = 3,00€
1 Boulon Tete Fraisée x10 3,60€
1 Aluminium Cornie 15x15x1,5 2m 6,90€
1 Boulon Tete Fraisée x10 2,25€
2 10 Boulon 2,65€ = 5,30€
2 10 Boulon 4,15€ = 8,30€

Achat Sparkfun

  • 3 Moteur Pas a pas 3×14,95€ = 44,85€
  • 3 EasyDriver Stepper 3×14,95€ = 44,85€

Total : 157,25€


Construction

Pour l’armature, j’ai utilisé du MDF, un bois très facile à découper et relativement beau (grain fin et lisse). Je n’avais pas à ma disposition d’outil tels qu’une scie sauteuse ou une perceuse à colonne. J’ai fait donc comme je pouvais pour percer et découper droit.

Pour le système de translation, j’ai utiliser des angles d’aluminium avec des roulements à billes :


Electronique

Pour contrôler les moteurs pas à pas, j’utilise des drivers spéciaux qui facilitent le contrôle.

Une grosse erreur à ne pas faire, que j’ai évidemment faite, c’est de vouloir souder tous les drivers à côté pour gagner de la place. Eh oui, si vous faites ça, les drivers vont s’envoyer des interférences entre eux et les moteurs ne marcheront pas correctement.

J’ai du donc découper la protoboard à la Dremel (non conseiller, t’as vite fait de déraper) pour séparer les drivers.

Logiciel

Schéma Windows only : Sketchup => DXF => DXF2Gcode => Gcode => Python Script Gcode to Serial => Arduino Gcode Interpreter => Motor Driver => Motor

J’ai trouver une façon plus simple qui fonctionne sous tous les OS :

Blender => Blender Python script to Gcode => Python Script Gcode to Serial => Arduino Gcode Interpreter => Motor Driver => Motor

Démarche à suivre :

Il faut créer votre objet 2D/Relief sous Blender, l’exporter au format Gcode (.nc) grâce au script python inclus, uploader le Reprap firmware à l’Arduino, qui lui attendra des commandes en Gcode via le port sérial, et donc que vous lui enverrez avec le script Python « Gcode to Serial ».

Vous trouverez plus d’infos sur les commandes Gcode ici.

Script Python Gcode to Serial :

#
# Pour envoyer un fichier Gcode à l'arduino, entrer dans un terminal :  python nc2serial.py < mongcode.nc
#
# Ce script lit ligne par ligne le fichier gcode et l'envoie au port serial de l'arduino
#
# port_id exemples : "COM1" sous Windows, "/dev/ttyUSB0" sous Linux, "/dev/tty.usbserial-A700dGI sous Mac
#
 
import serial,sys,time
port_id = "/dev/tty.usbserial-A700dGI8"
baud = 38400
 
print "FLUSHING..."
#ser = serial.Serial(port=port_id, baudrate=baud, timeout=2)
#while True:
#    response = ''
#    response = ser.readline()
#    print response.strip('\n')
#    if response is '':
#        break
#ser.close()
 
ser = serial.Serial(port=port_id, baudrate=baud, timeout=30)  
 
for line in sys.stdin.readlines():
    ser.write(line)
    print line.strip('\n')
    while True:
        response = ser.readline()
        print response
        if response.strip() in ['ok','start']:
            break
 
print "Serial closed"
ser.close()

Téléchargements

  • Blender 2.49
  • Fichier Blend avec script
  • Script Python Gcode to Serial
  • Arduino Code
Outils personnels
Espaces de noms

Variantes
Actions
Farfouillage
Liens divers
Boîte à outils