Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu.

  • 103 odgovora
  • 19.464 pregleda

Najnovija ↓

Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 15.07.2021. u 19:06 · pre 64 meseca #81
U tvom kodu nigde ne postoji ubrzavanje/usporavanje, samo "dvestaizmesta"
Ako hoćeš sa mikroprekidačima/senzorima, običan DC motorček i bez elektronike bi moglo da radi (sa dodatkom vremenskih relea).
Potpis
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 15.07.2021. u 20:58 · pre 64 meseca #82
Dobro, nije moj kod, samo sam na njega medju prvima naleteo i mislio sam da nece biti prob da kad testiram sa senzorima, da cu lako dodati pauze koje mi trebaju... :) Za ubrzavanje usporavanje cu koristiti sp.stepper biblioteku svakako, ovo sam hteo da probam jer sam imao ovaj primer snimljen od pre neku nedelju, a nisam bio siguran da znam odmah da koristim ovo ste ste mi dali ti i Bogdan.

Za sada cu pokusavati sa ovim step motorom, kad sam se vec upetljao ovoliko. :) Kao sto rece Nole:"Odustajanje nikad nije bila opcija". :)
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 15.07.2021. u 21:42 · pre 64 meseca #83
Ako imaš Home prekidač/senzor, to ti je i više nego dovoljno. Referentna tačka (0 - nula) se uspostavi jednom i ukoliko ne dođe do nekih anomalija - gubljenja koraka, sve je prosto.
Steper biblioteka se bakće ubrzanjem/usporenjem i dolaska na zadatu poziciju.
Smisliš način kako da po potrebi menjaš dužinu/visinu podizanja i mirna bačka.
Potpis
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 19.07.2021. u 18:56 · pre 64 meseca #86
Kratak report... :)

Ubacio sam jedan sketch jos u petak koji se zove ping-pong kome sam dodao pauze kako sam zeleo, ovaj radi sa AccelStepper bibliotekom, da kazem, radi ok. ali mu ne nesto ne vidim da radi acekleracija :) Ono osnovno sto sam pokusavao da dobijem radi. Kasnije sam video da je uz lib. ima i sketch "Bounce" ali njega nisam stigao da probam jos. On je jednostavniji od ovog sto sam probao. Verujem da i taj radi slicno. Ostaje mi sad da pokusam da se prvom prilikom posvetim ovom sa preporucenom spidgonzales lib-om da dobijem isti rezultat, ali sa ovom opcijom postepenog ubrzanja.

Drugo, nisam uspeo da reprogramiram onaj uno koji je poblesavio, sa drugim ispravim, dobijam gresku koja navodno asocira da neka konekcija nije dobra ili kristal ne osciluje. Videcu kad budem isao u radionicu da zakacim osciloskop pa da vidim da li to "pije"vodu. Probacu kad budem mogao da skinem sam cpu pa da ga programiram direktno, ako u medjuvremenu ne kupim programator. Ima jos tih par neinvazivnih metoda pre nego mu otvorim dushu i pod elektronskim mikroskopm sam podesim fuse bitove :)

Trece, onaj prvobitni tmc drajver sa kojim sam obavio prve testove (ne racunajuci a4988), takodje ne radi. Srecom imam ih jos 3, pa mi tu nije prob. Verovatno je otkazao kada i sam uno. Neki spajk (lee) ih izgleda ubio oboje istovremeno. :)
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 19.07.2021. u 19:26 · pre 64 meseca #87
ako u toku rada otpadne jedna od 4 zice motora, ili ako je bila otkacena
vrati se nazad sanse da se nepovratno spali sve spojeno su oko 80%

ako se doda 8 izlaznih dioda na 4 zice motora (svaka zica po dve diode,
jedna prema vmot druga prema gnd) ta sansa za spaljivanje pada sa 80% na
30% ali i dalje ostaje ozbiljna sansa da se sve spali ako pri radu zica
motora otpadne sa drajvera ... neke stotine do iljade volti mogu se
izgenerisu tu.. ako spajas to na komp koji ista vredi, obavezno kroz
izolacioni usb adapter
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 19.07.2021. u 20:59 · pre 64 meseca
izmenjeno 1 put, poslednji put SASA M. 19.07.2021. u 21:38
  1. SASA M.19.07.2021. u 21:38zapis iz teksta poruke
#88
Crtao sam manje vise univerzalnu plocicu gde moze da se upotrbeni jedan ili drugi "kompatibilni" motor drajver i arduino nano jer mislim da mi nesto dodatno od hardvera nece trebati. Trenutno ovo sto sam zadnje probao je prebaceno na protoboard sa tom konfiguracijom. Ranije je uno bio pored,a li nije bio nesto preterano fiksan. Pravicu tu cim budem imao test plocu sa lemnim tackama, a ko zna mozda jednog dana narucim normalnu plocu. Ako napravim onu 5-osnu koju sam spominjao na prosloj strani, mozda sam izradim stampanu plocu na njoj. ;)



Nije jos dovrseno, imam nekoliko revizija, mozda bude otprilike ovako.
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 28.07.2021. u 18:16 · pre 64 meseca #92
@ZAS011
Jos uvek sam na prizemlju :)


Napravio malu polocicu i stavio elemente na nju da ne vise okolo jer mi je protoboard trebao za nesto drugo, pustio malo u rad sa tim ping pong sketch-om koji sam nasao na net-u. Dosta mi je trebalo vremena da sve napravim, uspelo tek iz drugog puta jer sam koristio neku losu zicu za mostove, pa sam morao sve iz pocetka. Evo dole par slika kako izgleda.

Imam jedan problem sa tim sketch-om, ako je neko voljan da ga pogleda, postavicu ga onda ovde... Elem, taj ima 2 limit switch-a kao sto mi treba, kada se ukljuci podesen je da ide u jednom smeru do prvog limita onda do drugog i tako bi trebalo u nedogled... Sve je ok dok je pokretni deo izmedju ta dva limita, medjutim problem nastaje kada se prikljuci na napon dok je pokretni deo na tom prvom limit switch-u, on ga ignorise i krece u smeru ka njemu kao da ga nema i naravno prodje ga kao da nije tu. Nemam ideju kako da to resim. Ici cu kasnije do radionice da uzmem spravu, da donesem kuci da bih mogao da eksperimentisem.



Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 28.07.2021. u 21:52 · pre 64 meseca
izmenjeno 1 put, poslednji put SASA M. 28.07.2021. u 22:05
  1. SASA M.28.07.2021. u 22:05zapis iz teksta poruke
#94
Code:
#include <AccelStepper.h> //accelstepper library

const byte limitSwitch_1 = 2; //pin for the microswitch using attachInterrupt()
const byte limitSwitch_2 = 3; //pin for the microswitch using attachInterrupt()

bool switchFlipped = false; //stores the status for flipping
bool previousFlip = true; //stores the previous state for flipping - needed for the direction change

// direction Digital 4 (CCW), pulses Digital 5 (CLK)
AccelStepper stepper(1, 5, 4);

void setup()
{
  //Limit Switches
  pinMode(limitSwitch_1, INPUT_PULLUP); // internal pullup resistor (debouncing)
  pinMode(limitSwitch_2, INPUT_PULLUP); // internal pullup resistor (debouncing)
  
  attachInterrupt(digitalPinToInterrupt(limitSwitch_1), FlipDirection, FALLING);   //do not change it to 'CHANGE'
  attachInterrupt(digitalPinToInterrupt(limitSwitch_2), FlipDirection, FALLING); 
  //---------------------------------------------------------------------------

  //Serial Communication
  Serial.begin(9600); //defining some baud rate
  Serial.println("Testing Accelstepper"); //print a message
  //---------------------------------------------------------------------------

  //Stepper parameters
  //setting up some default values for maximum speed and maximum acceleration
  stepper.setMaxSpeed(5000); //SPEED = Steps / second  
  stepper.setAcceleration(10000); //ACCELERATION = Steps /(second)^2    
  stepper.setSpeed(5000);
  delay(500);
  //---------------------------------------------------------------------------

}

void loop()
{
  
  stepper.runSpeed(); //step the motor (this will step the motor by 1 step at each loop indefinitely)
  flipCheck();   //checking the flip in each loop
}

void flipCheck()
{
  if(switchFlipped == true)
  {    
     Serial.println(previousFlip); //This was just a control flag for debugging
    
     if(previousFlip == true) //If the previous flip is 1, we have positive direction
     {    
        delay(5000);
        stepper.setSpeed(5000);       
     }
     if(previousFlip == false) //If the previous flip is 0, we have negative direction
     {  
      delay(2000);
       stepper.setSpeed(-5000);
     }
     switchFlipped = false; 
  //We have to reset this, so in the next iteration of the loop, the code will not enter this part, only when there was a click again
  }
 
}

void FlipDirection()
{    
  switchFlipped = true; //we change the status to true, so the code will enter the flipCheck() function 
  previousFlip = !previousFlip; //change the state to different from the previous - this controls the direction
 
}


Ovo je taj primer: https://www.youtube.com/watch?v=usYdMPWf7xw&t=689s

Ja sam samo dodao delay da na krajevima stane odredjeno vreme, takodje njegovi limit prekidaci su bukvalno na krajevima same ose pa verovatno nije ni mogao da vidi kako se ponasa. MOja osovina je skoro 40cm dugacka a limiti su tako stavljeni da je prvi stavljen na sredinu a drugi na kraj.

Kod mene je hall senzor umesto mehanickih prekidaca, ne znam koliko je potrebna funkcija debounce
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 28.07.2021. u 22:32 · pre 64 meseca #96
Hvala Gorane za brzo javljanje, dodao sam 2 videa kao ilustraciju. Po mojoj logici, interapt se desio pri ukljucenju i kao sam citao on ima prioritet, logicnije mi je da se mozda tu zablokira a ne da krene sa izvrsenjem programa, kao da taj pin nije aktiviran. Mozda gresim, naravno...
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 29.07.2021. u 10:28 · pre 64 meseca #97
Imaš jedan mali problem u razmišljanju.
Tvoj motor, kod nailaska na granično senzor mora da uspori, tako da taj tvoj "ping-pong" ima da pravi premašaj svaki put kada aktivira granični.
Ako ti granični služe da bi korigovao gubitak koraka, uzmi veći motor, po snazi.
Potpis
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 29.07.2021. u 17:47 · pre 64 meseca #98
Na prvom videu se vidi da kretanje nije prebrzo i on koliko sam mogao da zapazim staje trenutno i uvek na istom mestu kada se magnet priblizi hall senzoru. Prakticno sada i ne moze brze od ovog i da hocu, pa inerciju savlada bez problema. :) Nisam dugo snimao jer bih premasio velicinu fajla koji moze ovde da se okaci, ali iz posmatranja ne vidim vizuelno da se desilo u bilo kom momentu da se ne zaustavi na istom mestu. Mada jesam citao neke tekstove vezne za preciznost hall senzora bas za ove svrhe, na mene te tolerancije nisu bile bitne jer su mnogo nize od onog sto sam ja mislio da mi uopste treba za ovakav sklop.

Po programu on ide napred-nazad bez brojanja koraka, samo je zadato da ide u jednom ili drugom smeru predefinisanom brzinom dok ne naidje na limit sw. da bi promenio smer i to je sve. Ima komandu za ubrzanje, ali kao da ta funkcija ne radi.
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 30.07.2021. u 13:39 · pre 64 meseca #99
Kod Flexy/SpeedyStepper biblioteke ne može da ti se desi da ukoliko je motor na senzoru, krene u pogrešnu stranu.
Ono što moraš da uradiš je Homing, i program zna gde ti je mehanička polazna tačka. Homing radi tako da, ako nije na prekidaču, krene ka istome, aktivira ga (zna da je na istome) i onda krene u suprotnu stranu dok ga ne deaktivira, i to je HOME pozicija.
Ako prilikom poziva homing funkcije, osa "sedi" na prekidaču, samo će da se pomeri da ga oslobodi. Znači, nema odlaska "u podrum".

Pogledah na brzinu keywords od biblioteke, i čini mi se da ti nisi ni pogledao šta sve ima u njoj.

Code:
moveTo
move
run
runSpeed
setMaxSpeed
setAcceleration
setSpeed
speed
distanceToGo
targetPosition
currentPosition
setCurrentPosition
runToPosition
runSpeedToPosition
runToNewPosition
stop
disableOutputs
enableOutputs
setMinPulseWidth
setEnablePin
setPinsInverted
maxSpeed
Potpis
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Re: Arduino uno, slaba ponuda servo motora za hobby na domacem trzistu. 31.07.2021. u 19:35 · pre 64 meseca #100
Probao sam ranije primer demo koji je stigao kada sam instalirao ovu speedy biblioteku i video sam da se malo pomeri od prekidaca, mislim da mozda za hall senzor taj pomak nije dovoljan, jer se desi da kada se pomeri da se indikacija (le dioda) na senzoru ugasi kada dodje do njega, ali onda posle sekund ponovo upali, kao da je se ponovo aktivrala logika u hall senzoru. Medjutim tada kad sam probavao, nisam obracao paznju puno na to, jer tad nisam uspeo da zadam da kada uradi homing da ga nateram da pomeri pokretni deo u nekom smeru za bilo koju vrednost, npr 10cm (ili bilo koliko cm). :)

Tu sam eksperimentisao sa komandom stepper.moveToPositionInMillimeters(100); koju sam video u njegovom dokumentu, ali sam onda odustao privremeno da pokusavam jer sam naleteo na ovaj kod koji sam gore okacio sa AccelStepper lib, kako mi je bio proradio sa njim otprilike kako sam ja zeleo, odneo sam sve u radionicu da napravim malo bolju plocicu, a tamo nisam imao komp, niti bih mogao tamo da eksperimetishem sa bilo kojim skecom.

Izgubio sam par dana dok sam napravio, kao sto sam napisao, i onda sam testirao kako se kolica ponasaju kada idu levo desno malo duze, tj gore dole jer mi je to tada bio cilj, buduci da nisam nikad imao u rukama ovakav sklop i nisam znao kako se ponasa u radu. Onda sam primetio onaj problem sa pocetnom pozicijom na limit prekidacu kad dodje struja. Sada sam sklopociju doneo kuci, pa imam mogucnost da je prikacim na komp i da eksperimentishem.
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme