Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


projets:charly_robot_grbl:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
projets:charly_robot_grbl:accueil [2017/03/16 10:51]
resonance [Charly Robot GRBL]
projets:charly_robot_grbl:accueil [2018/01/18 13:07] (Version actuelle)
resonance ancienne révision (2017/12/11 12:59) restaurée
Ligne 5: Ligne 5:
   * Description : Passer en GRBL une fraiseuse numérique Charlyrobot CRA4   * Description : Passer en GRBL une fraiseuse numérique Charlyrobot CRA4
  
-{{tag>cnc, grbl, arduino}}+{{tag>esadmm, ensadmm, cnc, grbl, arduino}}
  
 ===== Description ===== ===== Description =====
Ligne 29: Ligne 29:
 ===== Notes ===== ===== Notes =====
  
-  * les steppers ont 8 fils , 4 paire de deux.   (il yen a une paire rouge (1e bobine ) et une paire marron (2e bobine ) +  * Les steppers ont 8 fils , 4 paire de deux. (il y en a une paire rouge (1e bobine) et une paire marron (2e bobine). 
-  * les end stops sont des fils jaunes vif (certains sont bariolés), en paire avec les fils rouges (+ dans l'ancienne config). +  * Les end stops sont des fils jaunes vifs (certains sont bariolés), en paire avec les fils rouges (+ dans l'ancienne config). 
-  * le palpeur semble etre un fil gris clair.+  * Le palpeur semble être un fil gris clair.
   * L'alimentation d'origine délivre 32.5v   * L'alimentation d'origine délivre 32.5v
  
-==== Code test driver pas à pas : ==== +==== Code test drivers pas à pas : ====
  
 Nous allons tester les moteurs et drivers un par un avec ce code test :  Nous allons tester les moteurs et drivers un par un avec ce code test : 
Ligne 41: Ligne 40:
 {{:projets:charly_robot_grbl:ecran679.png|}} {{:projets:charly_robot_grbl:ecran679.png|}}
  
-ps : nous reglons les DIPSWITCHs :+ps : nous règlons les DIPSWITCHs :
   * pour un maximum de courant : SW1,SW2,SW3 = OFF OFF OFF, SW4 = ON     * pour un maximum de courant : SW1,SW2,SW3 = OFF OFF OFF, SW4 = ON  
-  * pour une resolution au 1/16e de pas : SW5 SW6 SW7 = ON ON OFF+  * pour une résolution au 1/16e de pas : SW5 SW6 SW7 = ON ON OFF
  
 <code c+> <code c+>
  
-//relier les entrées du driver à l'arduino+//Relier les entrées du driver à l'Arduino
 int dirPin = 2; int dirPin = 2;
 int pulPin = 3; int pulPin = 3;
Ligne 53: Ligne 52:
  
 void setup(){ void setup(){
-pinMode(dirPin, OUTPUT); +    pinMode(dirPin, OUTPUT); 
-pinMode(pulPin, OUTPUT); +    pinMode(pulPin, OUTPUT); 
-pinMode(enblPin, OUTPUT); +    pinMode(enblPin, OUTPUT); 
-digitalWrite(enblPin, HIGH);+    digitalWrite(enblPin, HIGH);
 } }
  
 void loop(){ void loop(){
-slide('L', 500, 500); //go Left for 500 steps at speed 500, (the lower the number is the faster the motor will go) +    slide('L', 500, 500); //go Left for 500 steps at speed 500, (the lower the number is the faster the motor will go) 
-delay(2000); +    delay(2000); 
- +    slide('R', 500, 500); //go Right for 500 steps at speed 500 
-slide('R', 500, 500); //go Right for 500 steps at speed 500 +    delay(2000);
-delay(2000);+
 } }
  
 void slide(int dir, int steps, int sspeed){ void slide(int dir, int steps, int sspeed){
 +    if (sspeed < 50) sspeed = 10; //keeps the speed above 10
 +    if (dir == 'L') digitalWrite(dirPin, HIGH);
 +    else if (dir == 'R') digitalWrite(dirPin, LOW);
  
-if (sspeed < 50sspeed = 10; //keeps the speed above 10+    while (steps > 0)
 +        digitalWrite(pulPin, HIGH); 
 +        delayMicroseconds(10); 
 +        digitalWrite(pulPin, LOW); 
 +        delayMicroseconds(10); 
 +        delayMicroseconds(sspeed); 
 +        steps--; 
 +    } 
 +
 +</code>
  
-if (dir == 'L') digitalWrite(dirPin, HIGH); 
-else if (dir == 'R') digitalWrite(dirPin, LOW); 
  
-while (steps > 0){ +==== Configuration GRBL ==== 
-digitalWrite(pulPinHIGH); +Nous devons configurer le grbl ... 
-delayMicroseconds(10); +https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9 
-digitalWrite(pulPinLOW); + 
-delayMicroseconds(10); + 
-delayMicroseconds(sspeed); +<code> 
-steps--; + 
-} +$0=10 (step pulse, usec
-}+$1=255 (step idle delaymsec
 +$2=0 (step port invert mask:00000000
 +$3=0 (dir port invert mask:00000000) 
 +$4=1 (step enable invertbool
 +$5=1 (limit pins invert, bool) 
 +$6=0 (probe pin invert, bool) 
 +$10=3 (status report mask:00000011
 +$11=0.010 (junction deviation, mm
 +$12=0.002 (arc tolerance, mm) 
 +$13=0 (report inches, bool) 
 +$20=0 (soft limits, bool) 
 +$21=0 (hard limits, bool) 
 +$22=0 (homing cycle, bool)    // homing ne marche pas bien , donc desactivé pour le moment 
 +$23=4 (homing dir invert mask:00000001) 
 +$24=250.000 (homing feed, mm/min) 
 +$25=1500.000 (homing seek, mm/min) 
 +$26=250 (homing debounce, msec) 
 +$27=1.000 (homing pull-off, mm) 
 +$100=640.000 (x, step/mm) 
 +$101=640.000 (y, step/mm) 
 +$102=640.000 (z, step/mm) 
 +$110=3000.000 (x max rate, mm/min) 
 +$111=3000.000 (y max rate, mm/min) 
 +$112=500.000 (z max rate, mm/min) 
 +$120=100.000 (x accel, mm/sec^2) 
 +$121=100.000 (y accel, mm/sec^2) 
 +$122=40.000 (z accel, mm/sec^2) 
 +$130=320.000 (x max travel, mm) 
 +$131=220.000 (y max travel, mm) 
 +$132=80.000 (z max travel, mm) 
 </code> </code>
-===== Photos ===== 
-Code pour afficher les images du projet : 
-<code>{{gallery>?&crop&lightbox}}</code> 
  
 +
 +<WRAP center  important 80%>
 +Si vous utilisé UGS le reglage de la vitesse de deplacement (Feedrate) manuelle est tres lente par defaut, il faut penser à la regler sinon vous penserez que ca ne marche pas !
 +</WRAP>
 +
 +note : sur WIn 10 UGS platform ne marche pas... il faut utiliser le Classic GUI il semble...
 +
 +
 +==== Code allumage fraiseuse bouton de façade ====
 +Nous avons choisi d'ajouter une petite Arduino nano et un relai 5V>220V pour contrôler avec les bouton de façade l'allumage de la défonceuse.
 +Les boutons sont en pullUp, et le stop est inversé... de plus nous obtenons pas mal de bruit qui déclenche l'allumage intempestif de la fraiseuse .... du coup nous rajoutons **des condensateurs** antibruit en parallèle et un code arduino tarabiscoté pour attendre que les boutons soit amaintenu appuyé quelques centaines de millisecondes pour agir...
 +
 +{{ :projets:charly_robot_grbl:p1040631.jpg?nolink&600 |}}
 +
 +<code c+>
 +float Compteur = 0;
 + 
 +int StartBouton = 4;
 +int StopBouton = 5;
 +int RelayPin = 3;
 + 
 +void setup(){
 +  pinMode(StartBouton, INPUT_PULLUP);
 +  pinMode(StopBouton, INPUT_PULLUP);       
 +  pinMode(RelayPin, OUTPUT); 
 +  //Debug
 +  Serial.begin(9600);                                     
 +} // close setup
 + 
 + 
 +void loop() {
 +  while (digitalRead(StartBouton) == LOW ){ 
 + 
 +    delay(100);  //resolution
 +    Compteur = Compteur + 100;   
 + 
 +    //Afficher le temps allumé
 +    Serial.print("ms_start = ");
 +    Serial.println(Compteur);
 +
 +                  if (Compteur >= 600){
 +                  digitalWrite(RelayPin, HIGH);
 +                  Serial.print("START");     
 +                } 
 + 
 +  }  //close while
 +
 +
 + // attention le bouton stop est inversé !
 +  while (digitalRead(StopBouton) == HIGH ){ 
 + 
 +    delay(100);  //resolution
 +    Compteur = Compteur + 100;   
 + 
 +    //Afficher le temps allumé
 +    Serial.print("ms_stop = ");
 +    Serial.println(Compteur);
 +
 +                  if (Compteur >= 300){
 +                  digitalWrite(RelayPin, LOW);
 +                  Serial.print("STOP");                   
 +                } 
 + 
 +  }  //close while
 + 
 +//reset compteur
 +Compteur = 0;
 +
 +
 +</code>
 +
 +
 +
 +=== Photos ===
  
  
 +{{gallery>?&crop&lightbox}}
/home/resonancg/www/wiki/data/attic/projets/charly_robot_grbl/accueil.1489657889.txt.gz · Dernière modification: 2017/03/16 10:51 de resonance