Orodha ya maudhui:

Menyu ya Udhibiti wa Kasi ya Stepper inayoendeshwa kwa Arduino: Hatua 6
Menyu ya Udhibiti wa Kasi ya Stepper inayoendeshwa kwa Arduino: Hatua 6

Video: Menyu ya Udhibiti wa Kasi ya Stepper inayoendeshwa kwa Arduino: Hatua 6

Video: Menyu ya Udhibiti wa Kasi ya Stepper inayoendeshwa kwa Arduino: Hatua 6
Video: Creality Ender-3 S1 Plus REVIEW: Better than a PRUSA? 2024, Julai
Anonim
Menyu ya Kudhibiti kasi ya Stepper inayoendeshwa kwa Arduino
Menyu ya Kudhibiti kasi ya Stepper inayoendeshwa kwa Arduino
Menyu ya Kudhibiti kasi ya Stepper inayoendeshwa kwa Arduino
Menyu ya Kudhibiti kasi ya Stepper inayoendeshwa kwa Arduino
Menyu ya Kudhibiti kasi ya Stepper inayoendeshwa kwa Arduino
Menyu ya Kudhibiti kasi ya Stepper inayoendeshwa kwa Arduino

Maktaba hii ya SpeedStepper ni kuandika tena maktaba ya AccelStepper kuruhusu udhibiti wa kasi wa motor stepper. Maktaba ya SpeedStepper hukuruhusu kubadilisha kasi ya seti ya gari na kisha kuharakisha / kupungua kwa kasi mpya ya kuweka kwa kutumia algorithm sawa na maktaba ya AccelStepper. Maktaba ya SpeedStepper pia hukuruhusu kuweka pamoja na kupunguza kikomo na nafasi ya 'nyumbani'. Kuna amri ya goHome kurudi kwenye nafasi ya nyumbani.

Upungufu: Maktaba ya SpeedStepper inaendesha tu mwelekeo na matokeo ya hatua na kwa hivyo inahitaji kushikamana na dereva wa gari, kama Dereva Rahisi, kuendesha gari la stepper. Maktaba ya AccelStepper hutoa chaguzi zaidi za kuendesha gari ambazo zinaweza kunakiliwa kwenye maktaba hii ikiwa inahitajika.

Mifano tatu ya michoro hutolewa, ambayo kila moja inaweza kuendeshwa bila motor au dereva wa gari. kasiStepperPlot mchoro hutoa mfano amri za kasi na amri ya goHome na inazalisha njama ya kasi inayosababisha na msimamo. Mchoro wa kasiStepperSetup hutoa mipangilio inayotokana na menyu ili kuweka nyumba na mipaka ya gari na kisha kuendesha gari na kurekebisha kasi juu na chini na kwenda Nyumbani kumaliza. Mchoro wa kasiStepperProfile unaonyesha mfano wa kuanzisha na kutekeleza wasifu wa kasi.

Wakati maktaba ya AccelStepper inatoa udhibiti mzuri wa nafasi, udhibiti wa kasi ulihitajika kwa Probe ya kuyeyuka Barafu ya Kukusanya Sampuli za Kibaolojia kwenye Europa. Hapa kuna video ya toleo la mapema la mfano, ambayo ilitumia uzani badala ya motor. Marekebisho 1.1 iliongeza wasifu wa kasi baada ya mtumiaji kuomba njia ya kudhibiti wasifu wa kasi wa pampu.

Maktaba hii inaendesha Arduino Uno na Mega2560, lakini kwa mfano kumbukumbu kubwa / kasi zaidi processor SparkFun Redboard Turbo ilitumika.

Hii inayoweza kufundishwa pia inapatikana mkondoni kwa Maktaba ya Udhibiti wa Kasi ya Stepper kwa Arduino

Vifaa

Ili kuendesha michoro ya mfano tu Arduino UNO au Mega2560 na maktaba za programu zinahitajika

Kwa upimaji wa benchi ya maktaba SparkFun Redboard Turbo ilitumika na Dereva Rahisi, hatua 200 / rev, 12V 350mA stepper motor na 12 DC usambazaji 2A au kubwa, n.k. https://www.sparkfun.com/products/14934. USB A hadi kebo ya Micro

Hatua ya 1: Kazi za Maktaba

Maktaba ya SpeedStepper inaendesha motor stepper imepunguzwa na mipaka iliyowekwa na maktaba. Tazama faili ya SpeedStepper.h kwa njia anuwai za maktaba zinazopatikana. Hapa kuna muhtasari wa mantiki nyuma yao.

Msimamo wa stepper unafuatwa kwa kuhesabu idadi ya hatua (kunde). Maktaba hupunguza nafasi ya kuwa kati ya nafasi za setPlusLimit (int32_t) na setMinusLimit (int32_t). Kikomo cha pamoja kila wakati> = 0 na kikomo cha kutoweka kila wakati ni = <= 0. Wakati wa kuanza, nafasi ya gari ni 0 (nyumbani) na mipaka imewekwa kwa nambari kubwa za +/- (karibu +/- 1e9 hatua). setAcceleration (kuelea) inaweka jinsi kasi ya gari itabadilika kasi iwe juu au chini. Wakati motor inakaribia kikomo cha kuongeza au kupunguza itazidi kupungua kwa kiwango hiki mpaka itaacha kikomo. Kwenye kuanza kasi imewekwa kwa hatua 1.0 / sec / sec. Mpangilio wa kuongeza kasi daima ni nambari ya + ve. Ishara ya mipangilio ya setSpeed (kuelea) huweka mwelekeo ambao motor itasonga.

setSpeed (kuelea) huweka kasi ya kuharakisha / kupunguza kasi ya gari hadi, kutoka kwa kasi yake ya sasa. Kasi ambayo inaweza kuweka kupitia setSpeed (kuelea) imepunguzwa, kwa dhamana kabisa, kwa mipangilio, setMaxSpeed (kuelea), hatua 1000 / sec na setMinSpeed (kuelea), hatua default 0.003 / sec. Chaguo-msingi hizi pia ni mipaka ya kasi ngumu kabisa ambayo maktaba itakubali kwa setMaxSpeed () na setMinSpeed (). Ikiwa unataka kuweka kasi ya juu> hatua 1000 / sekunde utahitaji kuhariri laini ya kwanza kwenye faili ya SpeedStepper.cpp kubadilisha maxMaxSpeed (1000) hadi kasi ya juu unayotaka. Katika mazoezi kasi ya juu pia imepunguzwa na wakati kati ya simu kwa njia ya maktaba ya run (). Kwa hatua 1000 / sec njia ya kukimbia () lazima iitwe angalau kila 1mS. Tazama sehemu ya Latency hapa chini.

Kujaribu kuweka kasi chini ya kasi ya min itasababisha motor kusimama. Kila moja ya seti hizi zina kipata sawa, angalia faili ya SpeedStepper.h. Kwa kasi, getSetSpeed () inarudi kasi uliyoweka kupitia setSpeed (), wakati GetSpeed () inarudisha kasi ya sasa ya gari ambayo inatofautiana wakati inaharakisha / inapunguza kasi yako kuweka kasi. Ikiwa motor haiendi kwa mwelekeo unaofikiria a + ve unaweza kupiga simu invertDirectionLogic () ili kubadilisha mwelekeo unaosonga kwa mwendo wa kasi.

getCurrentPosition () inarudisha nafasi ya sasa ya gari ikilinganishwa na 'nyumbani' (0). Unaweza kubatilisha nafasi ya sasa ya gari setCurrentPosition (int32_t). Msimamo mpya umepunguzwa kuwa ndani ya kuweka pamoja / kupunguza mipaka.

Hapo awali motor imesimamishwa katika nafasi ya 0. Kuita setSpeed (50.0) itasababisha kuanza kuharakisha katika mwelekeo wa + ve kwa kasi ya juu ya hatua 50 / min. Kupiga simu kwa bidii () itasimamisha gari pale ilipo. Kwa upande mwingine kuita njia ya stop () kutaweka kasi hadi sifuri na kupunguza kasi ya gari kusimama. Kupiga simu stopAndSetHome () itasimamisha gari mara moja na kuweka msimamo wake kuwa 0. Thamani za pamoja / kupunguza mipaka hazibadilishwa lakini sasa zinarejelewa kwa nafasi hii mpya ya 0 (nyumbani). Kuita goHome () itarudi stepper kwenye nafasi hii 0 (nyumbani) na kusimama. Kuita setSpeed () kutaghairi kwenda nyumbani.

Maktaba ya SpeedStepper pia hutoa udhibiti wa wasifu wa kasi kupitia njia za kuwekaProfile (SpeedProfileStruct * profileArray, size_t arrayLen), startProfile (), stopProfile (), kukatisha wasifu unaoendesha, na isProfileRunning (). Tazama mchoro wa mfano wa kasiStepperProfile.

Hatua ya 2: Kuendesha Mfano wa SpeedStepperPlot Bila Magari

Kuendesha Mfano wa SpeedStepperPlot Bila Pikipiki
Kuendesha Mfano wa SpeedStepperPlot Bila Pikipiki

Sakinisha Arduino IDE V1.8.9 Pakua na usakinishe maktaba ya SpeedStepper Hifadhi SpeedStepper.zip na kisha utumie Mchoro wa menyu ya Arduino IDE Mchoro → Jumuisha Maktaba → Ongeza maktaba ya ZIP kuagiza maktaba Pakua na usakinishe maktaba ya millisDelay pia

Fungua Mifano → SpeedStepper → speedStepperPlot mfano mchoro (Anzisha tena IDE ikiwa ni lazima). Mchoro huu umesanidiwa kufanya kazi na Serial, k.m. UNO na Mega nk. Kwa kukimbia kwenye SparkFun Redboard Turbo angalia hapa chini.

Hakuna bodi ya dereva au motor ya stepper inayohitajika kutekeleza mfano huu. Mifano hizi zinatumia D6 na D7 kama matokeo. Unaweza kubadilisha pini za pato kuwa pato lolote la dijiti kwa kubadilisha mipangilio ya STEP_PIN na DIR_PIN karibu na sehemu ya juu ya mchoro.

Pakia mchoro kwenye ubao na kisha ufungue Zana → Plotter ya serial saa 115200 baud kuonyesha njama ya kasi (RED) na msimamo (BLUE) Kikomo cha pamoja kimewekwa kwa 360 ambayo husababisha kasi kupanda hadi sifuri kutoka karibu hatua 100 kwenye mhimili wa x. Kikomo cha kuondoa ni -510. Msimamo unasimama kwa ~ -390 kwa sababu kasi imehitajika hadi 0.0. Kwa saa 380 kwenye mhimili wa x, cm ya goHome inatolewa ambayo inarudi stepper kuweka sifuri.

Mchoro huu wa kasiStepperPlot hutumia millisDelays hadi wakati kubadilisha kati ya kasi anuwai na kasi. Mara nyingi kutumia SpeedStepperProfile, kama ilivyo katika mfano unaofuata, ni rahisi.

Hatua ya 3: Kuendesha Mfano wa SpeedStepperProfile Bila Magari

Kuendesha Mfano wa SpeedStepperProfile Bila Pikipiki
Kuendesha Mfano wa SpeedStepperProfile Bila Pikipiki

Fungua Mifano.

Profaili za kasi za Stepper zinaundwa na safu ya SpeedProfileStruct, ambayo inaelezewa kwenye faili ya SpeedStepper.h.

muundo SpeedProfileStruct {

kasi ya kuelea; // kasi ya kulenga mwisho wa hatua hii deltaTms ndefu isiyosainiwa; // wakati wa kuharakisha kutoka kasi ya sasa (mwanzoni mwa hatua hii) hadi kasi ya lengo};

Fafanua safu ya SpeedProfileStruct iliyo na kasi ya kulenga kwa kila hatua na wakati, deltaTms, katika mS, kufikia kasi hiyo ya kulenga kutoka kasi ya kulenga ya awali. Ikiwa deltaTms ni sifuri au ndogo sana, basi kasi itaruka tu mara moja kwa kasi mpya ya lengo. Vinginevyo, kasi inayohitajika itahesabiwa setAcceleration () itaitwa ikifuatiwa na simu ya setSpeed () kwa kasi mpya ya lengo. Katika hali zote wasifu utapunguzwa na mipaka iliyopo ya pamoja na ya kupunguza nafasi na mipangilio ya kasi / max. Ikiwa unataka kushikilia kasi, rudia tu kasi iliyotangulia na wakati unayotaka ifanyike. Kwa kuwa kasi mpya ya kulenga ni sawa na kasi ya sasa, kuongeza kasi iliyohesabiwa itakuwa sifuri na, hakuna mabadiliko yanayotokea.

Safu hii ya SpeedProfileStruct ilizalisha njama hapo juu

maelezo mafupi ya SpeedProfileStruct = {{0, 0}, // simama mara moja ikiwa tayari haijasimamishwa {0, 1000}, // shika sifuri kwa 1sec {-50, 0}, // ruka hadi -50 {-200, 2000}, // ngazi ya -200 {-200, 6000}, // shikilia -200 kwa 6sec {-50, 2000}, // ngazi ya chini hadi -50 {0, 0}, // // simama bila mpangilio {0, 1500}, // shika sifuri kwa 1.5sec {50, 0}, // ruka hadi 50 {200, 2000}, // ngazi kuelekea 200 {200, 6000}, // shika 200 kwa sekunde 6 {50, 2000}, // barabara unganishi hadi 50 {0, 0}, // // simama bila mpangilio {0, 1000} // shikilia sifuri // kwa kupanga njama}; const size_t PROFILE_LEN = sizeof (profile) / sizeof (SpeedProfileStruct); // hesabu saizi ya safu ya wasifu

Profaili imewekwa kwa kupiga setProfile (SpeedProfileStruct * profileArray, size_t arrayLen) n.k. stepper.setProfile (wasifu, PROFILE_LEN);

Mara tu wasifu ulipowekwa, piga startProfile () kuanza kuiendesha kutoka kwa kasi ya sasa ya gari (kawaida utaanza kutoka kusimamishwa). Mwisho wa wasifu, motor itaendelea tu kukimbia kwa kasi ya mwisho ya lengo. Njia ya isProfileRunning () inaweza kuitwa kuona ikiwa wasifu bado unafanya kazi. Ikiwa unataka kusimamisha wasifu mapema unaweza kupiga stopProfile () ambayo itaachana na wasifu na kusimamisha motor.

Hatua ya 4: Kuendesha Mfano wa SpeedStepperSetup Bila Magari

Mchoro wa mfano umeundwa kwa besi za matumizi yako ya gari ya stepper. Hutoa kiolesura kinachoendeshwa na menyu ambacho hukuruhusu kuhamia kwa gari kwenda kwenye nafasi yake ya nyumbani, ikiwa haiko tayari na kisha kwa hiari kuweka upya mipaka ya kuongeza na kupunguza kisha uendeshe motor ndani ya anuwai hiyo. Menyu ya 'kukimbia' hukuruhusu kuongeza na kupunguza kasi, kufungia kwa kasi ya sasa, simama na pia urudi nyumbani.

Mchoro huu unaonyesha idadi ya vipengee vya programu ambavyo vinaweka kitanzi () msikivu ili uweze kuongeza pembejeo zako za sensorer kudhibiti stepper. Inachukua maumivu kuzuia ucheleweshaji ambao utaingiliana na udhibiti wa kasi. (Angalia Kuchelewa ni Uovu)

Sakinisha maktaba zinazotumiwa kuendesha SpeedStepperPlot, hapo juu, na kisha usakinishe maktaba ya pfodParser. Maktaba ya pfodParser hutoa madarasa ya NonBlockingInput na pfodBufferedStream ambayo hutumiwa kushughulikia pembejeo ya mtumiaji na pato la menyu na kuzuia kitanzi () kukimbia.

Fungua Mifano → SpeedStepper → speedSpeedSetup mfano. Mchoro huu umesanidiwa kufanya kazi na Serial, k.v. UNO na Mega nk. Kwa kukimbia kwenye SparkFun Redboard Turbo angalia hapa chini.

Hakuna bodi ya dereva au motor ya stepper inayohitajika kutekeleza mfano huu. Mifano hizi zinatumia D6 na D7 kama matokeo. Unaweza kubadilisha pini za pato kuwa pato lolote la dijiti kwa kubadilisha mipangilio ya STEP_PIN na DIR_PIN karibu na sehemu ya juu ya mchoro. Pakia mchoro kwenye ubao na kisha ufungue Zana → Serial Monitor saa 115200 ili uone menyu ya SETUP.

SETUP pos: 0 sp: 0.00 + Lim: 500000 -Lim: -500 LATENCY: stepper: 492uS kitanzi: 0u p - weka Nyumbani l - weka mipaka h - goHome r - run>

Mchoro unapoendesha nafasi ya sasa ya stepper inachukuliwa kama nafasi ya 'nyumbani' (0). Ikiwa unahitaji kuweka tena stepper kwenye nafasi ya kweli ya 'nyumbani', ingiza amri ya p kuonyesha menyu ya SET HOME

SET NYUMBANI pos: 0 sp: 0.00 + Lim: 1073741808 -Lim: -1073741808 LATENCY: stepper: 752uS kitanzi: 3852uS x - setiNyumbani hapa na uondoke + - Sambaza - - Rejea s - badilisha Mbele / Rejea - ngumuStop >

Kama unavyoona mipaka iliyowekwa kwenye mchoro imeondolewa ili uweze kuweka tena stepper mahali popote. Unahitaji kutunza hauiendeshi kupita mipaka ya mwili au unaweza kuvunja kitu.

Tumia cmd + kuanza kusonga stepper mbele, ikiwa unaiona ikienda kwa njia isiyofaa ingiza amri isiyo ya kawaida au laini tupu tu kuizuia na kisha utumie scommand kubadilisha mwelekeo wa mbele. Unapaswa kusasisha mchoro ili ujumuishe simu ya invertDirectionLogic () katika usanidi ili kurekebisha hii kwa kukimbia kwingine.

Tumia cms + / - kuweka nafasi ya stepper kwenye nafasi sahihi ya sifuri. Pikipiki huanza polepole na kisha huongeza kasi kadri inavyoendelea, tumia tu na laini tupu kuizuia. Kasi ya juu kwa hii na menyu ya mipaka imewekwa na MAX_SETUP_SPEED juu ya setupMenus.cpp.

Mara tu motor ikiwa imewekwa katika nafasi yake ya 'nyumbani', tumia x cmd kuweka tena nafasi ya sasa kama 0 na kurudi kwenye menyu ya SETUP.

Ikiwa unahitaji kuweka mipaka, kawaida tu kwenye usanidi wa kwanza, tumia l cmd kuingiza menyu ya SET LIMITS

SET VIKOMO pos: 0 sp: 0.00 + Lim: 1073741808 -Lim: -1073741808 LATENCY: stepper: kitanzi cha 944uS: 5796uS l - seti Punguza hapa + - Sambaza - - Rejea h - goHome x - toka - hardStop>

Tumia + cmd mbele zaidi kwa kikomo cha kuongeza na kisha tumia l cmd kuiweka kama kikomo cha kuongeza. Amri ya h inaweza kisha kutumiwa kurudi kwa 0 na - cmd tumia kusonga ikiwa inaheshimu msimamo wa motor kwa kikomo cha chini. Tumia tena cmd kuweka kikomo cha kuondoa. Kumbuka nafasi za mipaka ya kuongeza na kupunguza na sasisha njia ya kuweka () setPlusLimit na setMinusLimit statement na maadili haya.

Wakati mipaka imewekwa tumia x cmd kurudi kwenye menyu ya SETUP na kisha unaweza kutumia r cmd kufungua menyu ya RUN

KIMBIA MENU pos: 0 sp: 3.31 + Lim: 500000 -Lim: -500 LATENCY: stepper: kitanzi cha 944uS: 5796uS + - kuharakisha - - kuharakisha h - goNyumbani. - HardStop - kufungia kasi> + pos: 4 sp: 9.49 + Lim: 500000 -Lim: -500 LATENCY: stepper: 792uS kitanzi: 5664uS pos: 42 sp: 29.15 + Lim: 500000 -Lim: -500 LATENCY: stepper: Kitanzi cha 792u: 5664uS pos: 120 sp: 49.09 + Lim: 500000 -Lim: -500 LATENCY: stepper: kitanzi cha 792uS: 5664uS pos: 238 sp: 69.06 + Lim: 500000 -Lim: -500 LATENCY: stepper: 792uS kitanzi: 5664uS

+ Cmd huanza kuharakisha katika mwelekeo wa mbele na kuchapisha msimamo na kuharakisha kila sekunde 2. Wakati motor inafikia kasi unayotaka unaweza kuacha kuongeza kasi na kitufe kingine chochote (au pembejeo tupu). Unaweza kupunguza kasi kwa kutumia - cmd chini ili kusimama. Ikiwa imesimamishwa - cmd itaongeza kasi kwa kurudi nyuma.

Menyu hii ya RUN hutoa udhibiti wa mwongozo wa mradi wako. Kwa udhibiti wa auto utahitaji kuongeza sensorer zingine.

Hatua ya 5: Ucheleweshaji

Udhibiti wa motor stepper inategemea programu inayoamuru kila hatua. Ili kudumisha kasi iliyowekwa, mchoro wako unahitaji kupiga hatua ya stepper.run () mara nyingi ya kutosha kupiga hatua inayofuata kwa wakati unaofaa kwa kasi ya sasa. Kwa udhibiti kupitia sensorer unahitaji kuwa na uwezo wa kusindika vipimo vipya mara moja. Nafasi / kuchapishwa kwa kasi ni pamoja na vipimo viwili vya LATENCY kukuruhusu uangalie mchoro wako ni wa kutosha vya kutosha.

Latency Latency (pfodBufferedStream)

Latency ya stepper hupima ucheleweshaji wa kiwango cha juu kati ya simu mfululizo kwa njia ya stepper.run (). Ili kuendesha motor stepper kwa hatua 1000 kwa sekunde, latency ya stepper inahitaji kuwa chini ya 1000uS (1mS). Toleo la kwanza la mchoro huu lilikuwa na latency ya millisecond nyingi. Ili kushinda simu hizi za ziada kwa njia ya runStepper () (ambayo inaita stepper.run ()) ambapo imeongezwa kupitia nambari. Hii haikutatua kabisa shida kwa sababu menyu na taarifa za kuchapisha pato zilizuia mchoro mara tu bafa ndogo ya Serial Tx imejaa. Ili kuzuia uzuiaji huu, pfodBufferedStream kutoka maktaba ya pfodParser ilitumiwa kuongeza bafa ya kuchapisha ya byte ya 360 ambayo taarifa za kuchapisha zinaweza kuziandikia haraka. Kisha pfodBufferedStream hutoa baiti kwa kiwango cha baud maalum 115200 katika kesi hii. pfodBufferedStream lazima iwe na chaguo la kuzuia wakati bafa imejaa au tu toa chars za kufurika. Hapa imewekwa kuacha chars yoyote ya ziada wakati bafa imejaa ili mchoro usizuiwe kusubiri Serial kutuma chars.

Ucheleweshaji wa Kitanzi (Uingizaji wa Uzuiaji)

Ufuatiliaji wa kitanzi hupima ucheleweshaji wa kiwango cha juu kati ya simu mfululizo kwa njia ya kitanzi (). Hii inaweka kasi gani unaweza kusindika vipimo vipya vya sensorer na kurekebisha kasi ya seti ya gari. Jinsi ya haraka basi inahitaji kuwa inategemea kile unajaribu kudhibiti.

Ucheleweshaji kwa sababu ya taarifa za kuchapishwa uliondolewa kwa kutumia pfodBufferedStream hapo juu, lakini kusindika pembejeo ya mtumiaji unahitaji kuchukua char ya kwanza tu ya pembejeo na kupuuza laini yote. Darasa la NonBlockingInput kwenye maktaba ya pfodParer hutumiwa kurudisha char isiyo ya sifuri wakati kuna pembejeo, kwa kutumia kusomaInput (), na kufuta na kutupa herufi zifuatazo, kwa kutumia waziInput (), mpaka hakuna chars zinazopokelewa kwa 10mS bila kuzuia kitanzi ()

Kwa kweli latency ya kitanzi itaongezwa na nambari ya ziada unayoongeza kusoma sensorer na kuhesabu kasi mpya ya kuweka. Maktaba nyingi za sensa huchukua njia ya kutumia tu kuchelewesha (..) kati ya kuanza kipimo na kupata matokeo. Utahitaji kuandika tena maktaba hizi kutumia millisDelay badala yake, kuchukua kipimo baada ya ucheleweshaji usiofaa wa kuzuia.

Hatua ya 6: Kukimbia SpeedStepperSetup na Motor Stepper na SparkFun Redboard Turbo

Kuendesha kasiStepperSetup na Motor Stepper na SparkFun Redboard Turbo
Kuendesha kasiStepperSetup na Motor Stepper na SparkFun Redboard Turbo
Kuendesha kasiStepperSetup na Motor Stepper na SparkFun Redboard Turbo
Kuendesha kasiStepperSetup na Motor Stepper na SparkFun Redboard Turbo

Ili kuendesha mchoro wa SpeedStepperSetup kwa kweli utahitaji motor stepper, dereva na usambazaji wa umeme na kwa mfano huu SparkFun Redboard Turbo.

Mchoro wa wiring hapo juu (toleo la pdf) unaonyesha unganisho. Katika mchoro wa SpeedStepperSetup badilisha ufafanuzi wa SERIAL kwa #fafanua SERIAL Serial1

Magari ya Stepper, Ugavi wa Umeme, Dereva na Ulinzi

Kuna aina nyingi na saizi za motors za stepper. Hapa coil mbili 12V 350mA stepper motor hutumiwa kupima. Ili kuwezesha stepper hii unahitaji usambazaji wa 12V au zaidi na zaidi ya 350mA.

Maktaba hii hutoa tu mwelekeo na pato la hatua kwa hivyo unahitaji dereva kuunganishwa na motor ya stepper. Dereva Rahisi na Dereva Kubwa Rahisi hudhibiti sasa kwa coils za gari ili uweze kutumia usambazaji wa umeme wa voltage ya juu salama, kwa mfano kutumia usambazaji wa 6V kwa motor 3.3V. Dereva Rahisi inaweza kusambaza kati ya 150mA / coil na 700mA / coil. Kwa mikondo ya juu, Dereva Kubwa Rahisi anaweza kusambaza hadi 2A kwa coil. Soma Maswali Yanayoulizwa Sana chini ya ukurasa wa Hifadhi Rahisi.

Mifano hizi zinatumia D6 na D7 kama matokeo ya Hatua na Mwelekeo. Unaweza kubadilisha pini za pato kuwa pato lolote la dijiti kwa kubadilisha mipangilio ya STEP_PIN na DIR_PIN karibu na sehemu ya juu ya mchoro.

Kupanga programu ya Sparkfun Redboard Turbo

Kupanga Redboard Turbo ni shida. Ikiwa inashindwa kupanga programu, bonyeza kwanza kitufe cha kuweka upya mara moja na uchague tena bandari ya COM kwenye menyu ya Zana za Arduino na ujaribu tena. Ikiwa hiyo haifanyi kazi, bonyeza mara mbili kitufe cha kushinikiza upya na ujaribu tena.

Wiring up Dereva Rahisi

Magari mawili ya coil stepper yana waya 4. Tumia multimeter kupata jozi zinazounganisha kwa kila coil na kisha waya waya moja kwenye vituo vya Dereva Rahisi A na coil nyingine kwa B terminal. Haijalishi ni njia gani unazungusha waya kwa sababu unaweza kutumia s cmd kwenye menyu ya usanidi kubadilisha mwelekeo wa harakati.

Ugavi wa umeme wa umeme umeunganishwa kwa M + na GNDSeta kiwango cha mantiki cha bodi na kiunga cha 3 / 5V. Fupisha kiunga pamoja kwa matokeo ya microprocessor 3.3V, kama SparkFun Redboard Turbo (ukiiacha ikiwa wazi inafaa kwa ishara za dijiti za 5V, mfano UNO, Mega) Unganisha pini za GND, STEP, DIR kwa microprocessor GND na hatua na pini za pato la uchafu. Hakuna muunganisho mwingine unaohitajika kuendesha gari.

USB kwa Cable Serial TTL

Unapohamisha mchoro wa SpeedStepperSetup kutoka Uno / Mega kwenda Redboard Turbo unaweza kuchukua nafasi ya #fasili SERIAL Serial na #fafanua SERIAL SerialUSB ili kukidhi muunganisho wa redboard ya Redboard Turbo, hata hivyo utagundua kuwa latency inayosababisha stepper ni karibu 10mS. Hiyo ni polepole 10x basi kwa UNO. Hii ni kwa sababu ya Redboard cpu inashughulikia unganisho la USB. Ili kuja hapa, unganisha USB kwa Cable ya TTL Serial kwa D0 / D1 na uweke # fafanua SERIAL Serial1kutumia unganisho la vifaa vya kudhibiti vifaa vya stepper. Kutumia Serial1 inatoa LATENCY: stepper: 345uS kitanzi: 2016uS ambayo ni mara 3 kwa kasi kisha UNO ya stepper na latency latency

Programu ya Kituo

Arduino Serial Monitor ni ngumu kidogo kutumia kudhibiti motor stepper kwani lazima uweke char kwenye laini ya cmd kisha bonyeza Enter ili kuituma. Njia ya kujibu zaidi ni kufungua dirisha la terminal, TeraTerm ya PC (au CoolTerm Mac), iliyounganishwa na USB hadi bandari ya TTL cable COM. Halafu kwenye dirisha hilo kubonyeza kitufe cha cmd huituma mara moja. Kubonyeza Ingiza tuma laini tupu.

Kuweka kiwango cha kasi ya motor

Kama ilivyo na waya juu, Hifadhi Rahisi imesanidiwa kwa hatua ya 1/8, kwa hivyo hatua 1000 / sekunde itageuza gari kwa 1000/8/200 hatua / mapinduzi = 0.625 revs kwa sekunde au 37.5 rpm upeo. Kwa kubadilisha pembejeo kuwa MS1 / MS2 unaweza kubadilisha kati ya 1/8, ¼, ½ na hatua kamili. Kwa hatua kamili unganisha MS1 na MS2 kwa GND. Hii itaruhusu kasi ya hadi 300 rpm. Kuchagua mipangilio inayofaa ya MS1 / MS2 hukuruhusu kurekebisha kwa uwiano wa gia iliyowekwa kati ya motor na sehemu inayoendeshwa.

Ulinzi wa vifaa

Wakati maktaba ya SpeedStepper hukuruhusu kuweka vizuizi vya nafasi kwenye harakati za magari, kukamata nafasi kunafanywa kwa kuhesabu hatua zinazotolewa na programu. Ikiwa vibanda vya magari, yaani torque haitoshi kuendesha motor hatua inayofuata basi nafasi ya programu itakuwa nje ya usawazishaji na nafasi ya gari. Halafu unapotumia amri ya 'goHome' motor itapitisha nafasi ya nyumbani. Ili kuzuia uharibifu wa vifaa unapaswa kutoshea swichi za kikomo kwenye mipaka ngumu ili kukatisha usambazaji wa umeme

Kuweka kikomo cha sasa cha motor

Kwanza, iweke kwa mpangilio wa chini zaidi wa potentiometer. yaani voltage katika TP1 ni ya chini. Potentiometer ni laini, kwa hivyo usilazimishe potentiometer kupita vituo vya mitambo. Weka mwendo wa kuendesha gari kwa kasi ndogo polepole, halafu geuza polepole polepole mpaka motor isiruke au kuchechemea kati ya hatua.

Hitimisho

Mradi huu unaonyesha jinsi ya kutumia maktaba ya SpeedStepper katika programu ya vitendo. Wakati maktaba ya AccelStepper inatoa udhibiti mzuri wa nafasi, udhibiti wa kasi ulihitajika kwa Probe ya kuyeyuka barafu ya kukusanya Sampuli za Kibaolojia kwenye Europa kwa hivyo maktaba ya AccelStepper iliandikwa tena ili kutoa udhibiti wa kasi na mipaka ya mwisho na kazi ya goHome.

Ilipendekeza: