Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


Panneau latéral

projets:cnc-modulaire:accueil

Ceci est une ancienne révision du document !


CNC modulaire

Description

L'idée est de réaliser un axe robotisé que l'on retrouve souvent dans les machines à commandes numérique (CNC), comme les fraiseuses numériques et autres imprimantes 2D ou 3D (voir notre page fabrication numérique). Le premier test est pédagogique, il consiste à utiliser des composants pour la plupart basiques et à montrer comment ça marche. Ensuite, on pourrait perfectionner le modèle et obtenir des axes modulaires pour réaliser des choses en 2D ou en 3D, comme sur cette vidéo.

Dans cette vidéo, un buste imprimé en 3D (de notre super stagiaire) se déplace de haut en bas.

Matériaux

CNC-modulaire composants

Tutoriel

Dessin 2D

Pour la conception 2D on a rajouté un créneau dans la matière représenté sous la première pièce pour incruster les deux supports des axes porteurs dans la planche contre plaqué.

G-Code

Pour la création du G-code on a utilisé perçage, contour intérieur (pou les trou) et extérieur (pour la pièce), poche et la tige (outil) de 3mm:

Pour les quatre petits trou on a utilisé perçage pour creuser directement le bois.

Pour le contour extérieur, on ajoute deux attaches pour que la pièce ne se détache pas a la fin de l'usinage.

On a rajouté 4 petits coin pour que la pièce puisse prendre le diamètre de l'outil et permettre a la pièce de bien s'imbriquer.

Fraiseuse

}

Circuit électronique

cnc-modulaire-connectique.jpg

Code

Voir le code complet : cnc_modular.ino

/*
 * CNC MODULAR
 * Action : une pièce posée sur un axe CNC bouge de façon aléatoire.
 * Placer la pièce au milieu de l'axe.
 */
 
#include <Stepper.h>
 
int revolution = 200;  // 200 pas pour le NEMA17
int vitesse; // de 0 a 120
int tours;
int tabTours [] = { 20, 100, 30, 70 }; // doit etre pair
int tabVitesse [] = { 20, 90, 80, 40 }; 
int compteur = 0;
int nbValues = 4;
int maxTours = 0;
 
Stepper cnc (revolution, 9, 10, 11, 12);
// steps négatif = descente, positifs = montee
 
void setup() {
  // rien !
}
 
void loop()
{
  if (compteur == nbValues ) {
    setRandomValues();
    compteur = 0;
  }
 
  // --------- MONTEE --------- //
  tours = tabTours[compteur];
  vitesse = tabVitesse[compteur];
  cnc.setSpeed(vitesse);
  cnc.step(revolution * tours);
 
  delay(random(50,3000));
 
  // --------- DESCENTE --------- //
  tours = tabTours[(nbValues - 1) - compteur];
  vitesse = tabVitesse[(nbValues - 1) - compteur];
  cnc.setSpeed(vitesse);
  cnc.step(-revolution * tours);
 
  delay(random(50,3000));
 
  compteur++;
}
 
void setRandomValues() {
  for (int i = 0; i < nbValues; i++) {
   int val = random(20, 120);
   tabVitesse[i] = val;
   tabTours[i] = map(val, 20, 120, 5, 140);
  }
}

Modèle 3D

ASCII

Photos

Autre photos / gallerie ou autre

/home/resonancg/www/wiki/data/attic/projets/cnc-modulaire/accueil.1402925998.txt.gz · Dernière modification: 2014/06/16 15:39 de thome1