lundi 2 septembre 2013

Contrôle d'un moteur pas à pas

Bonjour à tous,
Au début de mon projet de CNC, j'avais parlé d'acheter mes contrôleurs de moteur pas à pas sur internet. J'ai cependant changé d'avis et je vais plutôt les réaliser moi même car cela est plus intéressant et moins cher.

Pour cela j'ai utilisé le composant TB6600HG qui est un driver de moteur pas à pas et qui possède les caractéristiques suivantes :

  • Mode pas entier, demi-pas, 1/4, 1/8, 1/16
  • Tension d'alimentation maximale de 50 V
  • Courant maximal par phase 4.5 A

dimanche 5 mai 2013

Un programme plus simple pour contrôler l'axe d'imprimanrte

J'ai trouvé beaucoup plus simple que mon post précédent pour contrôler l'axe d'imprimante. J'utilise pour cela deux bibliothèques : Encoder et PID.

Le programme ci-dessous fait bouger l'axe de gauche à droite :


/*
* Contrôle d'un axe d'imprimante en utilisant les bibliothèques
* Encoder et Pid
*
*/


#include <Encoder.h>
#include <PID_v1.h>

const int pin_channelA = 2;  // codeur optique
const int pin_channelB = 3;  // codeur optique
const int pin_t1 = 10;       // moteur, pont en H
const int pin_t2 = 9;        // moteur, pont en H
double Setpoint, Input, Output;

Encoder encoder(pin_channelA, pin_channelB);
PID myPID(&Input, &Output, &Setpoint, 6.4, 0.32, 0.00064, DIRECT);

unsigned long time;
unsigned long last_time = 0;
int cons = 1;
int val = 1;

void setup() {
  myPID.SetMode(AUTOMATIC);  // demarrer Pid
  pinMode(pin_t1, OUTPUT);
  pinMode(pin_t2, OUTPUT);
  myPID.SetSampleTime(1);
  myPID.SetOutputLimits(-255, 255);
  Output = 0;
}

void loop() {
  Input = encoder.read() + cons;  // En entrée du Pid : valeur du codeur + consigne
  myPID.Compute();
  if (Output > 0) {  // sens avant
    analogWrite(pin_t1, Output);
    digitalWrite(pin_t2, LOW);
  }
  else if (Output < 0){  // sens arrière
    analogWrite(pin_t2, -Output);
    digitalWrite(pin_t1, LOW);
  }
  else {  // arrêt
    digitalWrite(pin_t1, LOW);
    digitalWrite(pin_t2, LOW);
  }

  // on incrémente ou décremente la consigne toute les 2 ms
  time = millis();
  if (time-last_time > 2) {
    cons+=val;
    if (cons>500)
      val=-1;
    if (cons==0)
      val = 1;
    last_time = time;
  }
}

vendredi 21 décembre 2012

lundi 26 novembre 2012

Commande des pièces

J'ai bien avancé ces derniers temps, j'ai commandé et reçu les pièces pour construire la structure et les guidages :

Les éléments de guidage viennent de chez "linearmotionbearings2008" sur Ebay. La qualité est bonne dans l'ensemble, certaines pièces ont un peu de rouille.
Voici les tubes en acier commandés chez "leboutte" en Belgique. Les prix sont très correct.


J'ai aussi reçu les tôles métalliques commandées chez "lametallerie" mais je n'ai pas fait encore de photo.
Vous pouvez trouver un récapitulatif des pièces que j'utilise dans mes documents Google sous le nom "Liste pièces".

jeudi 1 novembre 2012

Modélisation CNC finale

Voici la modélisation de ma CNC dans sa version finale :
J'ai simplifié la structure au maximum. Toutes les pièces utilisées sont issues des fournisseurs suivants :

  • linearmotionbearings2008 sur Ebay pour les éléments de guidage et d'entrainement;
  • leboutte.fr pour les tubes en acier;
  • cnc-plus.de pour la tête de fraisage et son support;
  • je ne sais pas encore pour les moteurs.

J'ai mis ma modélisation à votre disposition sur mon Google Document. Vous pouvez y accéder en cliquant sur l'onglet "Documents" de mon blog.