Stránka 7 z 11
					
				Re: 3 osý manipulátor bez PC
				Napsal: 30. 9. 2014, 5:59
				od melsoft
				jeykey píše:to: melsoft
upozorňuju, že program sem netestoval na motorech, takže sem ani nepřenastavoval žádný hodnoty, doladění je na Tobě
valce.txt
 
Moc děkuju ale bohužel takhle to nechodí. Procedura stepper.run() je volaná "málo často" tudíž motor se pohybuje rychlostí 1 krok za sekundu (asi ty pauzy = delay(1000) a tudíž je to nepoužitelné. Taky se to spouští bez ohledu na stav tlačítka. Pomoc, jsem ztracen! Půjde ten accel.stepper na tohle vůbec použít?
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 30. 9. 2014, 7:15
				od tarvisio
				Je možno změnit v tom programu prodlevu mezi jednotlivými řádky ?
Jsou například tyto příkazy na jednu osu a je dlouhá doba mezi jednotlivými řádky když se provádí program. 
moveX(40, 3.7);               
moveX(80, 3.1);               
moveX(40, 3.7);
moveX(0, 3.7);
Je to způsobeny tím Serial.print ?
Když začíná vykonávat jeden řádek tak blikne TX.
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 30. 9. 2014, 7:46
				od jeykey
				tarvisio píše:Je možno změnit v tom programu prodlevu mezi jednotlivými řádky ?
Jsou například tyto příkazy na jednu osu a je dlouhá doba mezi jednotlivými řádky když se provádí program. 
moveX(40, 3.7);               
moveX(80, 3.1);               
moveX(40, 3.7);
moveX(0, 3.7);
Je to způsobeny tím Serial.print ?
Když začíná vykonávat jeden řádek tak blikne TX.
print to nedělá, to mělo smysl jen když je za každým krokem, takhle je to nepodstatný, možná zkrátit náběh motoru, ten má vliv na dýlku posledního kroku a může to vypadat jako pauza,.
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 30. 9. 2014, 7:47
				od jeykey
				
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 30. 9. 2014, 7:58
				od tarvisio
				kutil_tim píše:to se bojíš tam dát  pauzu  třeba tak ?
int spocni = 10; 
moveX(40, 3.7);
delay(spocni);
moveX(80, 3.1);
delay(spocni);
moveX(40, 3.7);
delay(spocni);
moveX(0, 3.7);
Je to pěkný, ale já tam pauzu nepotřebuji. Mám jí tam už tak dost protože to dlouho čeká mezi řádky.
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 30. 9. 2014, 8:18
				od tarvisio
				kutil_tim píše:zkrátit že by tu ?
// functions
void moveX(float posun, float rychlost) {
  Serial.println("pohyb na ose X zahajen");
  int Current = 1;
  float Bx = Xcounter - posun;
  Bx = Bx * (-1);
  int Ot = Bx * (kroku_na_otacku_X / stoupani_sroubu_X);
  int zrychleni = 400; // tady se mění zrychlení motoru při rozjezdu (počet kroků na plnou rychlost)
  float maxDelay = 700; // tady se mění prudkost náběhu motoru (když dělá velký rázy, zvýší se číslo)
  float Ost = 1 / (kroku_na_otacku_X / stoupani_sroubu_X);
  rotate(Ot, rychlost, DIR_X_PIN, STEP_X_PIN, Current, zrychleni, maxDelay, Ost);
}
Zkoušel jsem, bohužel to nepomohlo.
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 30. 9. 2014, 8:29
				od tarvisio
				kutil_tim píše:a co toto ?
  if (view == 1) Serial.println(Ost);  //pokud je cosi pravda  
  delay(1000);//tak spočni sekundu a pak 
toč
//rotate a specific number of steps - (negitive for reverse movement)
  //speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger
To je ono ! Super, díky moc !
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 30. 9. 2014, 9:11
				od melsoft
				Tak teď je to "much better". Jen jsem ještě překopal toto:
    if (status_L_S = 1){
      for (int i = 0; i<=long_repeats; i++){
        stepper.setSpeed(long_speed);
        stepper.setCurrentPosition(0);
        stepper.moveTo(16000);
        while (stepper.currentPosition()!=16000){ 
        stepper.run();
        }}
      delay(long_pause);
      }
na toto:
    if (status_L_S = 1){
      for (int i = 0; i<=long_repeats; i++){
        stepper.setSpeed(long_speed);
        stepper.setCurrentPosition(0);
        stepper.moveTo(16000);
        while (stepper.currentPosition()!=16000){ 
        stepper.run();
        }
        delay(long_pause);
        }
      }
neb to nedělalo pauzy mezi protáčením v cyklu a trochu jsem poladil rychlosti a už to fiští. Ještě si musím ten status vyčíst z přepínačů a bude hotovo.
Díky moc jeykey, jsi génius!!!
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 1. 10. 2014, 6:50
				od tarvisio
				Nevěděl bys co je v programu špatně že to na základě příkazů jezdí jinak ?
První řádek příkazu to udělá správně, ale pak se to zamotá a jezdí jinak. Jak kdyby přičítalo k tomu prvnímu.
Popřehazoval jsem směry motorů aby mi to jezdilo správně, jinak nic.
Vím že tam byl nastavený absolutní systém, ale ten teď neposlouchá. 
Děkuji za pomoc.
Poslední funkční program:
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 1. 10. 2014, 12:21
				od tarvisio
				Toš to je škoda  
 
Ja myslím že už mi tam vše chodí podle mých představ, jen si to počítá nyní jak chce a pak to i jezdí jak chce  

 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 1. 10. 2014, 7:07
				od jeykey
				jak si přehazoval ty směry otáček tak tam zůstalo starý počítání
  if (dir == LOW) Ost = Ost*(-1);
musíš přepsat na:
  if (dir == HIGH) Ost = Ost*(-1);
klidně to předělej kutile Time, já tak trochu nestíhám, tak to vždycky dodělávám narychlo s hromadou jiných věcí
Tarvisio jestli to máš už v nějaký koncový podobě, tak bychom tam měli použít knihovnu accelstepper a doladit to do finálový podoby, bez těch evolučních zbytků.
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 1. 10. 2014, 8:12
				od tarvisio
				jeykey píše:jak si přehazoval ty směry otáček tak tam zůstalo starý počítání
  if (dir == LOW) Ost = Ost*(-1);
musíš přepsat na:
  if (dir == HIGH) Ost = Ost*(-1);
klidně to předělej kutile Time, já tak trochu nestíhám, tak to vždycky dodělávám narychlo s hromadou jiných věcí
Tarvisio jestli to máš už v nějaký koncový podobě, tak bychom tam měli použít knihovnu accelstepper a doladit to do finálový podoby, bez těch evolučních zbytků.
Děkuji za pomoc. Už vše funguje, jsem happy  
  
Jdu tvořit dále to zařízení ...
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 3. 10. 2014, 10:12
				od tarvisio
				Věděl by si mi poradit proč mi to na několik tlačítek pouští různé programy, které tam mám předvolené ?
Na každé tlačítko mám jiný pohyb, ale tlačítka mi někdy zablbnou a udělají program z druhého tlačítka.
Vstupy mám jako INPUT a taky nastaveny na HIGH.
Zde je schéma zapojení.
Děkuji za pomoc.
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 4. 10. 2014, 10:25
				od tarvisio
				tarvisio píše:Věděl by si mi poradit proč mi to na několik tlačítek pouští různé programy, které tam mám předvolené ?
Na každé tlačítko mám jiný pohyb, ale tlačítka mi někdy zablbnou a udělají program z druhého tlačítka.
Vstupy mám jako INPUT a taky nastaveny na HIGH.
Zde je schéma zapojení.
Děkuji za pomoc.
Myslím že to mám vyřešeno, byl problém v UNO.
 
			 
			
					
				Re: 3 osý manipulátor bez PC
				Napsal: 15. 10. 2014, 2:19
				od tarvisio
				Ahoj jeykey,
chci se zeptat proč je tam potřeba použít knihovnu accelstepper ?
Ono to takhle nebude spolehlivě fungovat ?
Ja to nyní už používám ten program. Vrtá mi to na tom malém soustruhu díly. Pohyby chodí zatím v pohodě.
Program trvá asi 23 sekund. Díly se mění ručně a potom se program spouští tlačítkem cca každých 10 sekund znova. Stává se mi, že mi program zahapruje a zastaví se a pak se znova rozjete, ale jakoby se celý posune v jedné ose o několik mm a pak mi to narazí, protože to přijede rychloposuvem dál něž by mělo. Musím restartovat, najet znovu výchozí polohy. Stává se mi to ca každých 200 ks když to vrtá v kuse.
Je to napojeno na arduino Mega, myslíš že kdyby tam bylo Due tak by problém mohl zmizet, protože je to výkonější ?