ዝርዝር ሁኔታ:

የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለ Arduino የሚነዳ 6 ደረጃዎች
የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለ Arduino የሚነዳ 6 ደረጃዎች

ቪዲዮ: የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለ Arduino የሚነዳ 6 ደረጃዎች

ቪዲዮ: የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለ Arduino የሚነዳ 6 ደረጃዎች
ቪዲዮ: RAMPS 1.4 - LCD (REPRAP DISCOUNT SMART CONTROLLER) 2024, ሀምሌ
Anonim
የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለአርዱዲኖ ይነዳ
የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለአርዱዲኖ ይነዳ
የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለአርዱዲኖ ይነዳ
የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለአርዱዲኖ ይነዳ
የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለአርዱዲኖ ይነዳ
የ Stepper የፍጥነት መቆጣጠሪያ ምናሌ ለአርዱዲኖ ይነዳ

ይህ የ SpeedStepper ቤተመፃህፍት የእግረኛውን ሞተር የፍጥነት መቆጣጠሪያ ለመፍቀድ የ AccelStepper ቤተ -መጽሐፍት እንደገና መጻፍ ነው። የ ‹SpeedStepper› ቤተ -መጽሐፍት የተቀመጠውን የሞተር ፍጥነት እንዲቀይሩ እና ከዚያ እንደ AccelStepper ቤተ -መጽሐፍት ተመሳሳይ ስልተ -ቀመር በመጠቀም ወደ አዲሱ ስብስብ ፍጥነት ያፋጥኑ/ያሽከረክራል። የ SpeedStepper ቤተ -መጽሐፍት እንዲሁ የመደመር እና የመቀነስ ወሰን እና ‹ቤት› አቀማመጥ እንዲያዘጋጁ ያስችልዎታል። ወደ ቤት አቀማመጥ ለመመለስ የ goHome ትዕዛዝ አለ።

ገደቦች - የ SpeedStepper ቤተመፃህፍት አቅጣጫን እና የእርምጃ ውጤቶችን ብቻ የሚነዳ እና ስለዚህ የእርከን ሞተርን ለማሽከርከር እንደ ቀላል አሽከርካሪ ካለው የሞተር ሾፌር ጋር መገናኘት አለበት። AccelStepper ቤተ -መጽሐፍት አስፈላጊ ከሆነ ወደዚህ ቤተ -መጽሐፍት ሊገለበጡ የሚችሉ ተጨማሪ የመንዳት አማራጮችን ይሰጣል።

ሶስት የምስል ንድፎች ቀርበዋል ፣ እያንዳንዳቸው ያለ ሞተር ወይም የሞተር ሾፌር ሊሠሩ ይችላሉ። speedStepperPlot ንድፍ ምሳሌ የፍጥነት ትዕዛዞችን እና የ goHome ትዕዛዙን ያወጣል እና የውጤቱን ፍጥነት እና አቀማመጥ ሴራ ያመነጫል። የ SpeedStepperSetup ንድፍ የሞተርን ቤት እና ገደቦችን ለማቀናበር እና ከዚያ ሞተሩን ለማንቀሳቀስ እና ፍጥነቱን ወደላይ እና ወደታች እና ወደ ቤት ለመሄድ በምናሌው የሚነዳ ቅንጅትን ይሰጣል። የ SpeedStepperProfile ንድፍ የፍጥነት መገለጫ የማዋቀር እና የማስፈጸም ምሳሌ ያሳያል።

AccelStepper ቤተ-መጽሐፍት ጥሩ የአቀማመጥ ቁጥጥርን በሚሰጥበት ጊዜ በአውሮፓ ላይ የባዮሎጂካል ናሙናዎችን ለመሰብሰብ ለፕሮቶታይፕ በረዶ-ማቅለጥ ምርመራ የፍጥነት መቆጣጠሪያ አስፈላጊ ነበር። ከሞተር ይልቅ ክብደትን የተጠቀሙበት የቀድሞው የፕሮቶታይፕ ስሪት ቪዲዮ እዚህ አለ። ክለሳ 1.1 አንድ ተጠቃሚ የፓምፕን የፍጥነት መገለጫ ለመቆጣጠር ዘዴ ከጠየቀ በኋላ የፍጥነት መገለጫዎችን አክሏል።

ይህ ቤተ -መጽሐፍት በአርዱዲኖ ኡኖ እና በ Mega2560 ላይ ይሠራል ፣ ግን ለሙከራው ትልቁ ማህደረ ትውስታ / ፈጣን ፕሮሰሰር SparkFun Redboard Turbo ጥቅም ላይ ውሏል።

ይህ አስተማሪ ለአርዱኖ በ Stepper Speed Control Library ላይ በመስመር ላይም ይገኛል

አቅርቦቶች

የምሳሌ ንድፎችን ለማሄድ Arduino UNO ወይም Mega2560 ብቻ እና የሶፍትዌር ቤተ -ፍርግሞቹ ያስፈልጋሉ

ለቤተመፃህፍት አግዳሚ ወንበር ሙከራ SparkFun Redboard Turbo በቀላል አሽከርካሪ ፣ በ 200 ደረጃዎች/ሪቪ ፣ 12V 350mA stepper ሞተር እና በ 12 ዲሲ አቅርቦት 2 ሀ ወይም ከዚያ በላይ ፣ ለምሳሌ https://www.sparkfun.com/products/14934። ዩኤስቢ ወደ ማይክሮ ኬብል ዩኤስቢ ወደ TTL ተከታታይ ገመድ አርዱዲኖ አይዲኢ V1.8.9 እና ኮምፒተር ለማሄድ ።የስፔተር ቤተ-መጽሐፍት podod ፓርሰር ቤተ-መጽሐፍት ለ ‹BlockingInput› እና ለ ‹FfodBufferedStream ›ክፍሎች ሚሊስን ለማገድ ላልሆነ መዘግየቶች

ደረጃ 1 የቤተ መፃህፍት ተግባራት

የ SpeedStepper ቤተ -መጽሐፍት በቤተመጽሐፍት በተወሰነው ወሰን የተገደበውን የእርከን ሞተር ይሠራል። ላሉት የተለያዩ የቤተ መፃህፍት ዘዴዎች የ SpeedStepper.h ፋይልን ይመልከቱ። ከኋላቸው ያለው የአመክንዮ ዝርዝር መግለጫ እዚህ አለ።

የእርምጃዎች (የጥራጥሬ) ብዛት በመቁጠር የእርምጃው አቀማመጥ ይከታተላል። ቤተ -መጽሐፍት በ setPlusLimit (int32_t) እና setMinusLimit (int32_t) አቀማመጥ መካከል ያለውን ቦታ ይገድባል። የመደመር ገደቡ ሁል ጊዜ> = 0 እና የመቀነስ ገደቡ ሁል ጊዜ <= 0. በሚነሳበት ጊዜ የሞተር አቀማመጥ 0 (ቤት) ሲሆን ገደቦቹ ወደ በጣም ትልቅ +/- ቁጥሮች (ስለ +/- 1e9 ደረጃዎች) ተዘጋጅተዋል። setAcceleration (ተንሳፋፊ) ሞተሩ ፍጥነትን ወደ ላይ ወይም ወደ ታች ምን ያህል በፍጥነት እንደሚቀይር ያዘጋጃል። ሞተሩ ወደ የመደመር ወይም የመቀነስ ገደቡ ሲቃረብ ገደቡ እስኪያቆም ድረስ በዚህ ፍጥነት ይቀንሳል። ሲጀመር ፍጥነቱ ወደ 1.0 ደረጃዎች/ሰከንድ/ሰከንድ ተዘጋጅቷል። የፍጥነት ቅንብር ሁል ጊዜ የ +ve ቁጥር ነው። የ setSpeed (ተንሳፋፊ) ቅንብር ምልክት ሞተሩ የሚንቀሳቀስበትን አቅጣጫ ያዘጋጃል።

setSpeed (ተንሳፋፊ) ሞተሩን ለማፋጠን / ለማሽከርከር ፍጥነቱን ያዘጋጃል ፣ አሁን ካለው ፍጥነት። በ setSpeed (ተንሳፋፊ) በኩል ሊዘጋጅ የሚችል ፍጥነት ፣ በፍፁም እሴት ፣ በቅንብሮች ፣ setMaxSpeed (float) ፣ ነባሪ 1000 ደረጃዎች/ሰከንድ እና setMinSpeed (ተንሳፋፊ) ፣ ነባሪ 0.003 ደረጃዎች/ሰከንድ። እነዚህ ነባሪዎች እንዲሁ ቤተ -መጽሐፍት ለ setMaxSpeed () እና ለ setMinSpeed () የሚቀበሉት ፍጹም ጠንካራ ኮድ የፍጥነት ገደቦች ናቸው። ከፍተኛ ፍጥነት> 1000 ደረጃዎች/ሰከንድ ማዘጋጀት ከፈለጉ maxMaxSpeed (1000) ን ወደሚፈለገው ከፍተኛ ፍጥነት ለመለወጥ በ SpeedStepper.cpp ፋይል ውስጥ የመጀመሪያውን መስመር ማርትዕ ያስፈልግዎታል። በተግባር ፣ ከፍተኛው ፍጥነት እንዲሁ ወደ ቤተ -መጽሐፍት አሂድ () ዘዴ በጥሪዎች መካከል በጊዜ የተገደበ ነው። ለ 1000 እርከኖች / ሰከንድ የሩጫ () ዘዴ ቢያንስ በየ 1 ሜኤስኤስ መጠራት አለበት። ከዚህ በታች ያለውን መዘግየት ክፍል ይመልከቱ።

ከደቂቃ ፍጥነት ያነሰ ፍጥነት ለማቀናበር መሞከር ሞተሩ እንዲቆም ያደርገዋል። እያንዳንዳቸው እነዚህ ማቀናበሪያዎች ተጓዳኝ ማግኛ አላቸው ፣ የ SpeedStepper.h ፋይልን ይመልከቱ። ለፍጥነት ፣ getSetSpeed () በ setSpeed () በኩል ያቀናበሩትን ፍጥነት ይመልሳል ፣ getSpeed () ወደ እርስዎ ፍጥነት ፍጥነት ሲያፋጥነው/ሲቀንስ የሚለዋወጥ የአሁኑን የሞተር ፍጥነት ይመልሳል። ሞተሩ በሚያስቡት አቅጣጫ የማይሄድ ከሆነ ሞተሩ ወደ +ve ፍጥነቶች የሚሄድበትን አቅጣጫ ለመቀያየር invertDirectionLogic () መደወል ይችላሉ።

getCurrentPosition () ከ ‹ቤት› (0) ጋር ሲነፃፀር የአሁኑን የሞተር አቀማመጥ ይመልሳል። የአሁኑን የሞተር አቀማመጥ setCurrentPosition (int32_t) መሻር ይችላሉ። አዲሱ አቀማመጥ በተቀመጠው የመደመር/የመቀነስ ገደቦች ውስጥ ለመሆን የተገደበ ነው።

መጀመሪያ ላይ ሞተሩ በቦታው ላይ ቆሟል 0. የመደወል setSpeed (50.0) በ +ve አቅጣጫ ወደ ከፍተኛ ፍጥነት ወደ 50 ደረጃዎች/ደቂቃ ፍጥነት እንዲጀምር ያደርገዋል። HardStop () መደወል ሞተሩን ባለበት ወዲያውኑ ያቆማል። በሌላ በኩል የማቆሚያ () ዘዴን መጥራት ፍጥነቱን ወደ ዜሮ ያዘጋጃል እና ሞተሩን ወደ ማቆሚያ ያሽከረክራል። መደወልን stopAndSetHome () ሞተሩን ወዲያውኑ ያቆምና ቦታውን ወደ 0. ያዋቅራል የመደመር/የመቀነስ ገደቦች አልተለወጡም አሁን ግን ወደዚህ አዲስ 0 (ቤት) አቀማመጥ ተላልፈዋል። GoHome () በመደወል ደረጃውን ወደዚህ 0 (ቤት) አቀማመጥ ይመልሳል እና ያቆማል። መደወያ setSpeed () ወደ ቤት መሄዱን ይሰርዛል።

የ SpeedStepper ቤተ -መጽሐፍት እንዲሁ በ setProfile (SpeedProfileStruct* profileArray ፣ size_t arrayLen) ፣ startProfile () ፣ stopProfile () ፣ የአሂድ መገለጫ ለማቋረጥ እና isProfileRunning () በሚለው ዘዴዎች በኩል የፍጥነት መገለጫ ቁጥጥርን ይሰጣል። የ SpeedStepperProfile ምሳሌን ንድፍ ይመልከቱ።

ደረጃ 2 የሞተር ሳይኖር የ SpeedStepperPlot ምሳሌን ማስኬድ

የሞተር ሳይኖር የ SpeedStepperPlot ምሳሌን ማስኬድ
የሞተር ሳይኖር የ SpeedStepperPlot ምሳሌን ማስኬድ

Arduino IDE V1.8.9 ን ይጫኑ እና የ SpeedStepper ቤተ -መጽሐፍትን ያውርዱ እና SpeedStepper.zip ን ያስቀምጡ እና ከዚያ የ Arduino IDE ምናሌ ንጥሉን ይጠቀሙ ንድፍ Library ቤተ -መጽሐፍትን ያካትቱ።

ምሳሌዎቹን ይክፈቱ → SpeedStepper → speedStepperPlot ምሳሌ ንድፍ (አስፈላጊ ከሆነ IDE ን እንደገና ያስጀምሩ)። ይህ ንድፍ ከ Serial ጋር ለመስራት ተዋቅሯል ፣ ለምሳሌ። UNO እና Mega ወዘተ በ SparkFun Redboard Turbo ላይ ለማሄድ ከዚህ በታች ይመልከቱ።

ይህንን ምሳሌ ለማስኬድ ምንም የመንጃ ሰሌዳ ወይም የእርከን ሞተር አያስፈልግም። እነዚህ ምሳሌዎች D6 እና D7 ን እንደ ውፅዓት ይጠቀማሉ። በስዕሉ አናት አጠገብ የ STEP_PIN እና DIR_PIN ቅንብሮችን በመቀየር የውጤት ፒኖችን ወደ ማንኛውም ዲጂታል ውፅዓት መለወጥ ይችላሉ።

የፍጥነት ንድፉን (RED) እና አቀማመጥ (ብሉዝ) ለማሳየት የመሣሪያዎችን → ተከታታይ ፕሌትተርን በ 115200 ባውድ ላይ ንድፉን ይስቀሉ እና የመደመር ገደቡ ወደ 360 ተቀናብሯል ይህም ፍጥነቱ ከ 100 ነጥብ ገደማ ወደ ዜሮ እንዲወርድ ያደርገዋል። በ x- ዘንግ ላይ። የመቀነስ ገደቡ -510 ነው። ፍጥነቱ ወደ 0.0 ተጠይቋል ምክንያቱም ቦታው ~ -390 ላይ ይቆማል። በ 380 ነጥብ በ x- ዘንግ ላይ ፣ goHome cmd የተሰጠውን ደረጃውን ወደ ዜሮ ይመልሳል።

በተለያዩ የፍጥነት እና የፍጥነት ሂደቶች መካከል ይህ የፍጥነት ደረጃ (ስቴፕፕፕት) ንድፍ ሚሊሺን ጊዜን ይጠቀማል። በብዙ ሁኔታዎች የ SpeedStepperProfile ን በመጠቀም ፣ በሚቀጥለው ምሳሌ ላይ እንደሚታየው ፣ ቀላል ነው።

ደረጃ 3 የሞተር ሳይኖር የ SpeedStepperProfile ምሳሌን ማስኬድ

የሞተር ሳይኖር የ SpeedStepperProfile ምሳሌን ማስኬድ
የሞተር ሳይኖር የ SpeedStepperProfile ምሳሌን ማስኬድ

ምሳሌዎቹን ይክፈቱ → SpeedStepper → speedStepperPlot ምሳሌ ንድፍ ፣ ይህ ንድፍ አርዱዲኖ ሴሪያል ፕሌተርን በመጠቀም ከላይ የተጠቀሰውን ሴራ ያመርታል እና ለምሳሌ ፓምፕ ከሠራ የታዘዘ የፍጥነት መገለጫ የማሄድ ምሳሌ ነው።

የእንፋሎት ፍጥነት መገለጫዎች በ SpeedStepper.h ፋይል ውስጥ በተገለጸው በ SpeedProfileStruct ድርድር የተሠሩ ናቸው።

መዋቅር SpeedProfileStruct {

የመንሳፈፍ ፍጥነት; // በዚህ ደረጃ መጨረሻ ላይ የታለመው ፍጥነት ያልተፈረመ ረጅም ዴልታሞች; // ከአሁኑ ፍጥነት (በዚህ ደረጃ ሲጀመር) ወደ ዒላማው ፍጥነት ለማፋጠን ጊዜ ፤

ያንን የዒላማ ፍጥነት ከቀዳሚው የዒላማ ፍጥነት ለመድረስ ለእያንዳንዱ እርምጃ እና ጊዜ ፣ ዴልታቲሞች ፣ ኤምኤስኤ ውስጥ የዒላማውን ፍጥነት የያዘ የ SpeedProfileStruct ድርድርን ይግለጹ። ዴልታኤምኤስ ዜሮ ወይም በጣም ትንሽ ከሆነ ፣ ከዚያ ፍጥነት ወዲያውኑ ወደ አዲሱ የዒላማ ፍጥነት ይዝለላል። አለበለዚያ ፣ የሚፈለገው ማፋጠን ይሰላል setAcceleration () ለአዲሱ የዒላማ ፍጥነት ወደ setSpeed () ጥሪ ይከተላል። በሁሉም ሁኔታዎች መገለጫው አሁን ባለው የመደመር እና የመቀነስ አቀማመጥ ገደቦች እና ከፍተኛ/ደቂቃ የፍጥነት ቅንብሮች ይገደባል። ፍጥነት ለመያዝ ከፈለጉ የቀድሞውን ፍጥነት እንዲይዙት በሚፈልጉት ጊዜ ብቻ ይድገሙት። አዲሱ የዒላማ ፍጥነት ከአሁኑ ፍጥነት ጋር አንድ ስለሆነ ፣ የተሰላው ፍጥነቱ ዜሮ ይሆናል ፣ እና ምንም ለውጥ የለም።

ይህ SpeedProfileStruct ድርድር ከላይ ያለውን ሴራ አዘጋጅቷል

const SpeedProfileStruct መገለጫ = {{0, 0} ፣ // አስቀድሞ ካላቆመ ወዲያውኑ ያቁሙ {0, 1000} ፣ // ዜሮ ለ 1 ሰከንድ ይያዙ {-50 ፣ 0} ፣ // ወደ -50 {-200 ዝለል ፣ እ.ኤ.አ. {0, 1500} ፣ // ዜሮ ለ 1.5 ሰከንድ {50 ፣ 0} ፣ // ወደ 50 {200 ፣ 2000} ፣ // ወደ 200 {200 ፣ 6000} ዝለል ፣ // ለ 6 ሰከንድ {50 ይያዙ ፣ 2000} ፣ // ከፍታው ወደ 50 {0, 0} ፣ // // ያለማቋረጥ ያቁሙ {0, 1000} // ዜሮ // ይያዙ / ለማሴር ውፅዓት}; const size_t PROFILE_LEN = sizeof (መገለጫ) / sizeof (SpeedProfileStruct); // የመገለጫ ድርድርን መጠን ያሰሉ

መገለጫው የተቀመጠው setProfile (SpeedProfileStruct* profileArray ፣ size_t arrayLen) በመደወል ነው። stepper.setProfile (መገለጫ ፣ PROFILE_LEN);

መገለጫው ከተዋቀረ ፣ ከአሁኑ የሞተር ፍጥነት (ብዙውን ጊዜ ከቆመበት ይጀምራሉ) ለመጀመር የ startProfile () ን ይደውሉ። በመገለጫው መጨረሻ ላይ ሞተሩ በመጨረሻው የዒላማ ፍጥነት መሥራቱን ይቀጥላል። መገለጫው አሁንም እየሰራ መሆኑን ለማየት የ isProfileRunning () ዘዴ ሊጠራ ይችላል። መገለጫውን ቀድመው ለማቆም ከፈለጉ መገለጫውን ትቶ ሞተሩን ያቆመውን stopProfile () መደወል ይችላሉ።

ደረጃ 4 የሞተር ሳይኖር የ SpeedStepperSetup ምሳሌን ማስኬድ

የምሳሌው ንድፍ ለራስዎ የእግረኛ ሞተር ትግበራ ለመሠረት የተነደፈ ነው። እሱ እዚያ ከሌለ ወደ ሞተሩ ወደ መኖሪያ ቤቱ እንዲንቀሳቀሱ የሚያስችልዎ ምናሌ የሚነዳ በይነገጽን ይሰጣል እና ከዚያ የመደመር እና የመቀነስ ገደቦችን እንደገና ያስጀምሩ እና ከዚያ ሞተሩን በዚያ ክልል ውስጥ ያሂዱ። የ “ሩጫ” ምናሌ ፍጥነቱን እንዲጨምሩ እና እንዲቀንሱ ፣ አሁን ባለው ፍጥነት እንዲቀዘቅዙ ፣ እንዲያቆሙ እና ወደ ቤት እንዲመለሱም ያስችልዎታል።

ደረጃውን ለመቆጣጠር የእራስዎን ዳሳሽ ግብዓቶች ማከል እንዲችሉ ይህ ንድፍ ሉፕ () ምላሽ ሰጪ እንዲሆን የሚያደርጉ በርካታ የሶፍትዌር ባህሪያትን ያሳያል። የፍጥነት መቆጣጠሪያውን የሚያደናቅፉ መዘግየቶችን ለማስወገድ ህመም ያስከትላል። (መዘግየቶች ክፉ ናቸው ይመልከቱ)

ከላይ የ SpeedStepperPlot ን ለማሄድ ያገለገሉ ቤተ -ፍርግሞችን ይጫኑ እና ከዚያ የ pfodParser ቤተ -መጽሐፍትንም ይጫኑ። የ pfodParser ቤተ -መጽሐፍት ዑደቱን () እንዳይሠራ በማገድ የተጠቃሚውን ግብዓት እና የምናሌ ውፅዓት ለማስተናገድ የሚያገለግሉትን NonBlockingInput እና pfodBufferedStream ትምህርቶችን ይሰጣል።

ምሳሌዎቹን ይክፈቱ → SpeedStepper → speedSpeedSetup ምሳሌ። ይህ ንድፍ ከ Serial ጋር ለመስራት ተዋቅሯል ፣ ለምሳሌ። UNO እና Mega ወዘተ በ SparkFun Redboard Turbo ላይ ለማሄድ ከዚህ በታች ይመልከቱ።

ይህንን ምሳሌ ለማስኬድ ምንም የመንጃ ሰሌዳ ወይም የእግረኛ ሞተር አያስፈልግም። እነዚህ ምሳሌዎች D6 እና D7 ን እንደ ውፅዓት ይጠቀማሉ። በስዕሉ አናት አጠገብ የ STEP_PIN እና DIR_PIN ቅንብሮችን በመቀየር የውጤት ፒኖችን ወደ ማንኛውም ዲጂታል ውፅዓት መለወጥ ይችላሉ። ንድፉን ወደ ቦርዱ ይስቀሉ እና ከዚያ የ ‹SETUP› ምናሌን ለማየት በ Tools → Serial Monitor በ 115200 ይክፈቱ።

SETUP pos: 0 sp: 0.00 +Lim: 500000 -Lim: -500 LATENCY: stepper: 492uS loop: 0uS p -set Home Home l -set ገደቦችን ሸ -goHome r -run>

ስዕሉ በሚሠራበት ጊዜ የእርምጃው የአሁኑ ቦታ እንደ ‹ቤት› (0) አቀማመጥ ይወሰዳል። ደረጃውን ወደ እውነተኛ ‹ቤት› አቀማመጥ እንደገና ማኖር ከፈለጉ የ SET መነሻ ምናሌን ለማሳየት የ p ትዕዛዙን ያስገቡ።

የቤት አዘጋጅ POS: 0 sp: 0.00 + Lim: 1073741808 -Lim: -1073741808 LATENCY: stepper: 752uS loop: 3852uS x -setHome እዚህ እና መውጫ >

በደረጃው ላይ የተቀመጡትን ገደቦች ተወግደዋል ፣ ስለዚህ የእርምጃውን ቦታ በየትኛውም ቦታ ላይ ማስቀመጥ ይችላሉ። ከአካላዊ ገደቦች እንዳያልፍዎት ጥንቃቄ ማድረግ አለብዎት ወይም የሆነ ነገር ሊሰብሩ ይችላሉ።

ደረጃውን ወደ ፊት ማንቀሳቀስ ለመጀመር የ + cmd ን ይጠቀሙ ፣ በተሳሳተ አቅጣጫ ሲንቀሳቀስ ካዩ ለማዘዝ ትእዛዝ ያልሆነ ወይም ባዶ መስመር ብቻ ያስገቡ እና ከዚያ የማዞሪያ አቅጣጫውን ለመቀየር ማጭበርበሪያ ይጠቀሙ። ለሚቀጥለው ሩጫ ይህንን ለማስተካከል በ invertDirectionLogic () ጥሪ ውስጥ ለማካተት ንድፉን ማዘመን አለብዎት።

ደረጃውን ወደ ትክክለኛው ዜሮ አቀማመጥ ለማስቀመጥ +/ - cmds ን ይጠቀሙ። ሞተሩ በዝግታ ይጀምራል እና ከዚያ በሚገፋበት ጊዜ ፍጥነቱን ያጠናክራል ፣ እሱን ለማቆም ይጠቀሙ እና ባዶ መስመር። ለዚህ እና ገደቦች ምናሌው ከፍተኛው ፍጥነት በማዋቀሪያMenus.cpp አናት ላይ በ MAX_SETUP_SPEED ተዘጋጅቷል።

አንዴ ሞተሩ በ ‹ቤት› ቦታው ላይ ከተቀመጠ በኋላ የአሁኑን ቦታ እንደ 0 እንደገና ለማቀናበር እና ወደ SETUP ምናሌ ለመመለስ x cmd ን ይጠቀሙ።

ገደቦችን ማዘጋጀት ከፈለጉ ፣ ብዙውን ጊዜ በመነሻ ቅንብር ላይ ብቻ ፣ ወደ SET LIMITS ምናሌ ለመግባት l cmd ን ይጠቀሙ።

SET LIMITS POS: 0 sp: 0.00 + Lim: 1073741808 -Lim: -1073741808 LATENCY: stepper: 944uS loop: 5796uS l -setLimit እዚህ + -አስተላልፍ - -ተገላቢጦ ሸ -goHome x -መውጣት -hardStop>

ወደ የመደመር ገደቡ የበለጠ ወደፊት ለመሄድ + cmd ን ይጠቀሙ እና ከዚያ የመደመር ገደቡን ለማቀናበር l cmd ይጠቀሙ። ከዚያ የ h ትዕዛዙ ወደ 0 እና ወደ - cmd ለመንቀሳቀስ ጥቅም ላይ ሊውል ይችላል - ሞተሩ በተቀነሰ ገደብ ላይ ወደ ቦታው የሚያከብር ከሆነ። የመቀነስ ገደቡን ለማዘጋጀት እንደገና l cmd ን ይጠቀሙ። የመደመር እና የመቀነስ ገደቦችን አቀማመጥ ልብ ይበሉ እና የማዋቀር () ዘዴውን setPlusLimit እና setMinusLimit መግለጫዎችን ከእነዚህ እሴቶች ጋር ያዘምኑ።

ገደቦቹ ሲዘጋጁ ወደ ቅንብር ምናሌ ለመመለስ x cmd ን ይጠቀሙ እና ከዚያ የ RUN ምናሌን ለመክፈት r cmd ን መጠቀም ይችላሉ።

RU MENU pos: 0 sp: 3.31 + Lim: 500000 -Lim: -500 LATENCY: stepper: 944uS loop: 5796uS + -Speed - -Speed down h -goHome. -hardStop-የበረዶ ፍጥነት> +ፖዝ 4 ስፒል 9.49 +ሊም 500000 -ሊም -500 ውጣ ውረድ stepper 792uS loop 5664uS ፖስ 42 ስፒ 29 29.15 +ሊም 500000: 792uS loop: 5664uS pos: 120 sp: 49.09 +Lim: 500000 -Lim: -500 LATENCY: stepper: 792uS loop: 5664uS pos: 238 sp: 69.06 +Lim: 500000 -Lim: -500 LATENCY: stepper: 792uS loop: 5664uS

+ Cmd ወደ ፊት አቅጣጫ ማፋጠን ይጀምራል እና ቦታውን እና ፍጥነትን በየ 2 ሰከንዶች ያትማል። ሞተሩ በሚፈልጉት ፍጥነት ላይ ሲደርስ ፍጥነቱን በሌላ በማንኛውም ቁልፍ (ወይም ባዶ ግብዓት) ማቆም ይችላሉ። ለማቆም - cmd ወደታች በመጠቀም ፍጥነቱን መቀነስ ይችላሉ። ካቆሙ - cmd በተቃራኒው ያፋጥናል።

ይህ የ RUN ምናሌ የፕሮጀክትዎን በእጅ ቁጥጥር ይሰጣል። ለራስ -መቆጣጠሪያ አንዳንድ ሌሎች ዳሳሾችን ማከል ያስፈልግዎታል።

ደረጃ 5 - መዘግየት

የእግረኛው ሞተር መቆጣጠሪያ በእያንዳንዱ እርምጃ በሚታዘዘው ሶፍትዌር ላይ የተመሠረተ ነው። የተቀመጠውን ፍጥነት ለማቆየት ፣ ስዕልዎ ቀጣዩን እርምጃ በትክክለኛው ጊዜ ለአሁኑ ፍጥነት ለማቃጠል ብዙውን ጊዜ ወደ stepper.run () ዘዴ መደወል አለበት። በአነፍናፊዎች በኩል ለመቆጣጠር አዲስ ልኬቶችን በፍጥነት ማካሄድ መቻል አለብዎት። የአቀማመጥ/የፍጥነት ህትመት ስዕልዎ በፍጥነት በቂ መሆኑን ለማረጋገጥ ሁለት LATENCY ልኬቶችን ያካትታል።

Stepper Latency (pfodBufferedStream)

የእርከን መዘግየት በተከታታይ ጥሪዎች መካከል ወደ stepper.run () ዘዴ ከፍተኛውን መዘግየት ይለካል። የእርከን ሞተርን በ 1000 ደረጃዎች በሰከንድ ለማሄድ ፣ የእግረኛው መዘግየት ከ 1000uS (1mS) ያነሰ መሆን አለበት። የዚህ ንድፍ የመጀመሪያ ስሪት የብዙ ሚሊሰከንዶች መዘግየት ነበረው። ይህንን ተጨማሪ ጥሪዎች ለማሸነፍ ወደ runStepper () ዘዴ (ወደ stepper.run () የሚጠራው) በኮዱ በኩል በተጨመረበት። ትንሹ Serial Tx ቋት ከሞላ በኋላ ምናሌው እና የውጤት ህትመት መግለጫዎች ንድፉን ስለታገዱ ይህ ችግሩን ሙሉ በሙሉ አልፈታም። ይህንን እገዳ ለማስቀረት ፣ pfodBufferedStream ከ pfodParser ቤተ -መጽሐፍት የሕትመት መግለጫዎች በፍጥነት ሊጽፉለት የሚችሉት 360 ባይት የውጤት ማተሚያ ቋት ለማከል ጥቅም ላይ ውሏል። ከዚያ pfodBufferedStream በዚህ ጉዳይ 115200 በተገለጸው ባውድ ተመን ባይት ያወጣል። pfodBufferedStream መጠባበቂያው ሲሞላ ወይም ከልክ በላይ መጥረጊያዎችን ሲጥል የማገድ አማራጭ ሊኖረው ይገባል። ስዕሉ ሴራዎችን ለመላክ በመጠባበቅ ረቂቁ እንዳይታገድ እዚህ ማጠራቀሚያው ሲሞላ ማንኛውንም ተጨማሪ chars ን ለመጣል ተዘጋጅቷል።

Loop Latency (የማይታገድ ግቤት)

የሉፕ መዘግየት በተከታታይ ጥሪዎች መካከል ወደ loop () ዘዴ መካከል ከፍተኛውን መዘግየት ይለካል። ይህ የአዳዲስ የመለኪያ ልኬቶችን እንዴት ማካሄድ እና የሞተርን ስብስብ ፍጥነት ማስተካከል እንደሚችሉ በፍጥነት ያዘጋጃል። ከዚያ ምን ያህል ፈጣን መሆን እንዳለበት እርስዎ ለመቆጣጠር በሚሞክሩት ላይ የተመሠረተ ነው።

በሕትመት መግለጫዎች ምክንያት መዘግየቶች የተወገዱት ከላይ pfodBufferedStream ን በመጠቀም ነው ፣ ነገር ግን የተጠቃሚውን ግብዓት ለማስኬድ የግብዓቱን የመጀመሪያ ቻር መውሰድ እና ቀሪውን መስመር ችላ ማለት ያስፈልግዎታል። በ pfodParer ቤተ-መጽሐፍት ውስጥ ያለው የ NonBlockingInput ክፍል ግብዓት ሲኖር ፣ ንባብ ግቤት () ን በመጠቀም ፣ ዜሮ ያልሆነ ቻርትን ለመመለስ እና የ “ግቤት” ን በመጠቀም ፣ የሚከተሉትን ቁምፊዎች ለማፅዳት እና ለመጣል (ጥግ) ሳይዘጋ ለ 10mS ምንም chars እስካልተቀበለ ድረስ። ()

በእርግጥ የ loop መዘግየት ዳሳሾችን ለማንበብ እና አዲሱን ስብስብ ፍጥነት ለማስላት በሚያክሉት ተጨማሪ ኮድ ይጨምራል። ብዙ አነፍናፊ ቤተ -ፍርግሞች መለኪያን በመጀመር እና ውጤቱን በማምጣት መካከል መዘግየትን (..) በመጠቀም ብቻ የመቁረጥን ይወስዳሉ። በምትኩ ሚሊሰዴሌን ለመጠቀም ፣ ተስማሚ ማገጃ ከማዘግየት በኋላ ልኬቱን ለማንሳት እነዚህን ቤተመፃህፍት እንደገና መጻፍ ያስፈልግዎታል።

ደረጃ 6: SpeedStepperSetup ን በ Stepper Motor እና SparkFun Redboard Turbo ማስኬድ

በ Stepper Motor እና SparkFun Redboard Turbo አማካኝነት SpeedStepperSetup ን ማስኬድ
በ Stepper Motor እና SparkFun Redboard Turbo አማካኝነት SpeedStepperSetup ን ማስኬድ
በ Stepper Motor እና SparkFun Redboard Turbo አማካኝነት SpeedStepperSetup ን ማስኬድ
በ Stepper Motor እና SparkFun Redboard Turbo አማካኝነት SpeedStepperSetup ን ማስኬድ

የ SpeedStepperSetup ንድፉን በእውነቱ ለማሄድ የእግረኛ ሞተር ፣ የመንጃ እና የኃይል አቅርቦት እና በዚህ ምሳሌ ውስጥ SparkFun Redboard Turbo ያስፈልግዎታል።

ከላይ ያለው የሽቦ ዲያግራም (የፒዲኤፍ ስሪት) ግንኙነቶችን ያሳያል። በ SpeedStepperSetup ንድፍ ውስጥ የ SERIAL ፍቺን ወደ #ገላጭ SERIAL Serial1 ይለውጡ

የእንፋሎት ሞተር ፣ የኃይል አቅርቦት ፣ አሽከርካሪ እና ጥበቃ

ብዙ ዓይነት ዓይነቶች እና መጠኖች የእግረኛ ሞተሮች አሉ። እዚህ ሁለት ጥቅል 12V 350mA stepper ሞተር ለሙከራ ጥቅም ላይ ይውላል። ይህንን ስቴፕለር ለማብራት የ 12 ቮ ወይም ከዚያ በላይ እና ከ 350mA የሚበልጥ የኃይል አቅርቦት ያስፈልግዎታል።

ይህ ቤተመፃህፍት አቅጣጫ እና የእርምጃ ውፅዓት ብቻ ይሰጣል ስለዚህ ከእርከን ሞተር ጋር ለመገናኘት ሾፌር ያስፈልግዎታል። የከፍተኛ ቮልቴጅ የኃይል አቅርቦትን በአስተማማኝ ሁኔታ መጠቀም ይችላሉ ፣ ለምሳሌ ለ 3.3V ሞተር 6V አቅርቦትን ለመጠቀም ቀላሉ ነጂው እና ትልቁ ቀላል አሽከርካሪው የአሁኑን ወደ የሞተሩ ሽቦዎች ይቆጣጠራሉ። ቀላሉ አሽከርካሪ በ 150mA/coil እና 700mA/coil መካከል ማቅረብ ይችላል። ለከፍተኛ ሞገዶች ፣ ትልቁ ቀላል አሽከርካሪ በአንድ ጥቅል እስከ 2 ኤ ድረስ ሊያቀርብ ይችላል። በቀላል ድራይቭ ገጽ ታችኛው ክፍል ላይ ተደጋጋሚ ጥያቄዎችን ያንብቡ።

እነዚህ ምሳሌዎች D6 እና D7 ን እንደ የደረጃ እና አቅጣጫ ውጤቶች ይጠቀማሉ። በስዕሉ አናት አቅራቢያ የ STEP_PIN እና DIR_PIN ቅንብሮችን በመቀየር የውጤት ፒኖችን ወደ ማንኛውም ዲጂታል ውፅዓት መለወጥ ይችላሉ።

የ Sparkfun Redboard Turbo ፕሮግራም ማድረግ

የቀይ ሰሌዳውን ቱርቦ ፕሮግራም ማድረጉ ችግር ያለበት ነው።መርሃግብሩ ካልተሳካ ፣ መጀመሪያ የመልሶ ማግኛ ቁልፍን አንዴ ይጫኑ እና በአርዱዲኖ መሣሪያዎች ምናሌ ውስጥ ያለውን የ COM ወደብ ይምረጡ እና እንደገና ይሞክሩ። ያ ካልሰራ ፣ የመልሶ ማግኛ ቁልፍን ሁለቴ ይጫኑ እና እንደገና ይሞክሩ።

ቀላል አሽከርካሪውን ማገናኘት

ባለሁለት ሽቦ stepper ሞተሮች 4 ሽቦዎች አሏቸው። ከእያንዳንዱ ጥቅል ጋር የሚገናኙትን ጥንዶች ለማግኘት ባለ ብዙ ማይሜተር ይጠቀሙ እና ከዚያ አንዱን ሽቦ ወደ ቀላል ሾፌር ኤ ተርሚናሎች እና ሌላውን ወደ ቢ ተርሚናል ያገናኙ። የእንቅስቃሴውን አቅጣጫ ለመቀያየር በማዋቀሪያ ምናሌው ውስጥ s cmd ን መጠቀም ስለሚችሉ በየትኛው አቅጣጫ ቢጠጉዋቸው ምንም ለውጥ የለውም።

የሞተር ኃይል አቅርቦቱ ለ M+ እና GNDS የቦርዱ አመክንዮ ደረጃ ከ 3/5V አገናኝ ጋር ተገናኝቷል። እንደ SparkFun Redboard Turbo ላሉት የ 3.3 ቪ ማይክሮፕሮሰሰር ውፅዓቶች አገናኙን አንድ ላይ ያጥሩ (ከከፈቱት ለ 5 ቪ ዲጂታል ምልክቶች ተስማሚ ነው ፣ ለምሳሌ UNO ፣ Mega) GND ፣ STEP ፣ DIR ፒኖችን ወደ ማይክሮፕሮሰሰር GND እና ደረጃውን ያገናኙ dir ውፅዓት ፒኖች ሞተሩን ለማሽከርከር ሌሎች ግንኙነቶች የሉም።

ዩኤስቢ ወደ TTL ተከታታይ ገመድ

የ SpeedStepperSetup ንድፉን ከኡኖ/ሜጋ ወደ ሬድቦርድ ቱርቦ ሲያንቀሳቅሱ በቀላሉ #define SERIAL Serial ን በ #define SERIAL SerialUSB ለሬድቦርድ ቱርቦ ዩኤስቢ ተከታታይ ግንኙነት እንዲስማማ አድርገው ቢቀበሉትም ፣ ግን የተገኘው የእንቆቅልሽ መዘግየት 10mS ያህል እንደሆነ ያገኙታል። ያኔ 10x ቀርፋፋ ነው ለ UNO። ይህ የሆነው ሬድቦርድ ሲፒዩ የዩኤስቢ ግንኙነትን እንዴት እንደሚይዝ ነው። ይህንን ለማምጣት ዩኤስቢን ከ TTL ተከታታይ ገመድ ወደ D0/D1 ያገናኙ እና የእርምጃ ሞተርን ለመቆጣጠር የሃርድዌር ተከታታይ ግንኙነቱን ለመጠቀም#SERIAL Serial1 ን ያዘጋጁ። Serial1 ን በመጠቀም ለ LATENCY: stepper: 345uS loop: 2016uS ይህም ለ 3 ጊዜ ፈጣን እና ለዕድገት መዘግየት UNO ይሰጣል

የተርሚናል ፕሮግራም

በ ‹Cdd› መስመር ውስጥ ቻርዱን ውስጥ ማስገባት እና ከዚያ እሱን ለመላክ የ ‹አርዱዲኖ› ተከታታይ ሞኒተር የእርምጃ ሞተርን ለመቆጣጠር ለመጠቀም ትንሽ ከባድ ነው። ይበልጥ ፈጣን ምላሽ ሰጪ ዘዴ ከዩኤስቢ ወደ TTL ኬብል COM ወደብ የተገናኘውን ተርሚናል መስኮት ፣ ቴራቴርምን ለፒሲ (ወይም CoolTerm Mac) መክፈት ነው። ከዚያ በዚያ መስኮት ውስጥ የ cmd ቁልፍን መጫን ወዲያውኑ ይልካል። አስገባን መጫን ባዶ መስመር ብቻ ይላኩ።

የሞተር ፍጥነቱን ክልል ማቀናበር

ከላይ እንደተገለፀው ፣ ቀላሉ ድራይቭ ለ 1/8 ኛ ደረጃዎች የተዋቀረ ነው ፣ ስለዚህ 1000 እርምጃ/ሰከንድ ሞተሩን በ 1000/8/200 ደረጃ/አብዮት = 0.625 ሬቪዎች በአንድ ሴኮንድ ወይም በከፍተኛው 37.5 ራፒኤም ያሽከረክረዋል። ግብዓቶችን ወደ MS1/MS2 በመቀየር በ 1/8 ፣ ¼ ፣ ½ እና ሙሉ ደረጃዎች መካከል መቀያየር ይችላሉ። ለሙሉ ደረጃዎች ሁለቱንም MS1 እና MS2 ን ከ GND ጋር ያገናኙ። ይህ እስከ 300 ሬብሎች ፍጥነቶችን ይፈቅዳል። ተገቢውን የ MS1/MS2 ቅንጅቶችን መምረጥ በሞተር እና በተነዳው ክፍል መካከል ለተጫነው የማርሽ ጥምርታ እንዲያስተካክሉ ያስችልዎታል።

የሃርድዌር ጥበቃ

የ SpeedStepper ቤተ -መጽሐፍት በሞተር እንቅስቃሴው ላይ የአቀማመጥ ገደቦችን እንዲያቀናብሩ ቢፈቅድልዎትም ፣ የቦታውን መንካት የሚከናወነው በሶፍትዌሩ የወጡትን ደረጃዎች በመቁጠር ነው። ሞተሩ ካቆመ ፣ ማለትም ፣ የማዞሪያው ቀጣዩ ደረጃ ሞተሩን ለማሽከርከር በቂ ካልሆነ የሶፍትዌሩ አቀማመጥ ከሞተር አቀማመጥ ጋር አይመሳሰልም። ከዚያ የ ‹goHome› ትዕዛዙን ሲጠቀሙ ሞተሩ የቤቱን አቀማመጥ ከመጠን በላይ ይሸፍናል። በሃርድዌር ላይ ጉዳት እንዳይደርስ ለመከላከል የሞተር የኃይል አቅርቦቱን ለማቋረጥ በጠንካራ ገደቦች ላይ ገደቦችን መቀያየርን መግጠም አለብዎት

የሞተር የአሁኑን ገደብ ማዘጋጀት

በመጀመሪያ ፣ ወደ ፖታቲሞሜትር ዝቅተኛው አቀማመጥ ያዋቅሩት። ማለትም በ TP1 ላይ ያለው ቮልቴጅ አነስተኛ ነው። ፖታቲሞሜትሩ ስሱ ነው ፣ ስለሆነም ፖታቲሞሜትር ሜካኒካዊ ማቆሚያዎቹን አልፈው አያስገድዱት። በዝግታ በተረጋጋ ፍጥነት ማሽከርከርን ሞተር ያቀናብሩ ፣ ከዚያ ሞተሩ በደረጃዎች መካከል እስካልዘለለ ወይም እስኪያልፍ ድረስ ፖታቲሞሜትሩን በቀስታ ይለውጡ።

መደምደሚያ

ይህ ፕሮጀክት በተግባራዊ ትግበራ ውስጥ የ SpeedStepper ቤተ -መጽሐፍትን እንዴት እንደሚጠቀም ያሳያል። የ AccelStepper ቤተ-መጽሐፍት ጥሩ የአቀማመጥ ቁጥጥርን በሚሰጥበት ጊዜ በአውሮፓ ላይ የባዮሎጂካል ናሙናዎችን ለመሰብሰብ ለፕሮቶታይፕ በረዶ-ማቅለጥ ምርመራ የፍጥነት መቆጣጠሪያ አስፈላጊ ነበር ስለዚህ AccelStepper ቤተ-መጽሐፍት የፍጥነት መቆጣጠሪያን በመጨረሻ ገደቦች እና በ goHome ተግባር ለማቅረብ እንደገና ተፃፈ።

የሚመከር: