Каква е ясно разликата между стъпкови, постоянни и серво мотори, за да ги използвате с Raspberry Pi?


Отговор 1:

Под „серво мотор“ имаш предвид DC серво или променлив ток. Терминът обикновено означаваше DC, когато бях там, но предполагам, че сте имали предвид серво на променлив ток.

Първо, степер. Обикновено те искат контролерът да обърне полярността на своите проводници, за да се движи 1 стъпка, така че контролерът трябва просто да изчисли броя на необходимите стъпки, за да достигне целевата позиция, и да подаде толкова импулси на двигателя или усилвателите в правилна последователност за посоката на въртене, което искате. Има 4 намотки и 5 отвода, обща и A, B, C, D намотки. За да продължите напред, A и B получават мощност, C и D няма, Тогава B и C мощност, другите 2 няма. Тогава C anD мощност, другите 2 няма. Тогава D и A мощност, другите 2 няма. {Продължете от началото}. За да отидете на заден ход, A и D получават мощност, другите 2 няма. След това D и C, C и B, B и A и т.н. Контролерът трябва да следи къде е спрял и да изчисли първата си стъпка като логичната от там за необходимата посока. Мощността на последната стъпка от предишния ход трябва да се поддържа до следващия ход като вид спирачка. Контролерът трябва да прави увеличена импулсна честота като ускорение и забавяне в зависимост от инерцията на натоварването. Също така трябва да осигурите нулиране на системата, обикновено стартирайте системата обратно до предварително зададено нулево положение и зануляване на брояча на импулсите. Също така трябва да предоставите цифров вход, даващ разрешение за нулиране, напр. Всички инструменти са изтеглени безопасно и т.н. И цифров изход, изискващ разрешение за нулиране, когато е необходимо, и евентуално някои реакции на оператора.

DC сервовете обикновено имат прецизен датчик за квадратурен вал, който контролерът следи за информация за положението. Енкодерът изпраща обратно импулси на 4 проводника в последователност, подобна на контролната последователност на степър, вижте по-горе. Контролерът брои импулси във всяка посока, за да определи положението, като поддържа работещ + - брой импулси за определяне на текущото положение. Обикновено моторът е маневрен, където ниският полев ток се управлява чрез двойка усилватели, напред или назад и със контактор, управляван от контролера за подаване на ток на арматурата, а често и втори контактор, който работи с механична спирачка. Наистина сложните системи могат също така да използват аналогов усилвател (контролиран генератор?) За управление на тока на арматурата на двигателя. Вашият контролер трябва да чете енкодера, да съхранява данните за настоящото положение и да изчислява необходимите действия, да задвижва арматурата и релето за спирачките и да предоставя аналогови сигнали към усилвателите на полето напред и заден ход и евентуално усилвателя на арматурата на двигателя, както е необходимо, като се има предвид разрешени скорости на ускорение / забавяне, логика на нулиране на енкодера и т.н.

Променливите сервоприводи са много подобни на постояннотоковите, но имат по-прости изисквания за управление на двигателя, обикновено цифрова връзка за данни, която казва на задвижването на двигателя каква посока, скорост, скорост на ускорение и може би DC спирачка / задържане са необходими. Форматите и командите за данни ще бъдат достъпни от документацията на двигателя.


Отговор 2:

Двигателят с постоянен ток няма познания за положение или прецизно управление, закачате го и той просто се върти.

Моторът Stepper няма познания за положението, но можете да го контролирате прецизно, като го накарате да движи по една малка стъпка всеки път, когато прилагате мощност към навиването.

Серво мотор (да не се бърка с хоби серво), има познания за неговото положение (чрез енкодер) и може да бъде прецизно контролиран в резултат.

Ето малко повече подробности за всеки….

Обикновеният двигател с постоянен ток се завърта автоматично, веднага щом е свързан към захранването. Скоростта и въртящият момент, на които е способен, ще зависят от напрежението и тока на подадената мощност, както и от самия двигател, и няма нищо, което да дава индикация за положението на двигателя. По принцип тя е или „включена“ веднага щом я закачите, като доставяте енергия (и въртите с фиксирана скорост, освен ако не пулсирате силата си), или е изключена и следователно е изключена.

Stepper двигателят предлага прецизно средство за контрол на положението на двигателя, но самият двигател няма начин за измерване на това положение. Така че, когато приложите и освободите мощност към намотка (обикновено има няколко проводника, които позволяват отделно захранване за всяка намотка), тя ще се върти с малък прираст от няколко градуса. Мислете за това като затворете очи и кажете на някой друг да извърви една крачка. Средно знаете колко далеч е крачка, но не знаете, че всъщност са извървели стъпка, защото може би са се опитали да направят крачка и са се спънали или са се сблъскали в стена, просто не знаете дали са успешни или не ( няма отзиви за позицията). Можете да го наречете "отворен цикъл" контрол, тъй като не получавате обратна информация за случилото се. Така че това е като стъпков двигател, когато накратко приложите мощност към намотка, той прави усилие да се обърне, но не сте съвсем сигурни, че всъщност се е случило (може би натоварването е твърде голямо или времето ви е прекалено бързо, или не сте го направили t доставят достатъчно мощност).

Сервомоторът много прилича на вашия DC мотор, с изключение на това, че има много точна информация за позицията си, която го прави лесен за управление. Всъщност, за да превърнете постоянен мотор в серво мотор, просто поставете енкодер на вала и сега имате точна информация за положението на вала, което улеснява контрола на скоростта и посоката (чрез PWM). Енкодерите могат да бъдат много прецизни (до част от градуса), така че това ви позволява да изпращате контролни сигнали в тази позиция и да движите двигателя по какъвто желаете. Това е контрол „затворен цикъл“, защото винаги получавате обратна информация за въздействието на контролите си.

Така че всеки един от тези мотори може да се управлява от Raspberry Pi. По принцип всяка от тези три опции ще използва повече мощност / ток, отколкото вашият Raspberry Pi ще изведе директно, така че вместо това можете да използвате своя Pi за генериране на управляващите сигнали и след това да усилите мощността, изпратена до вашия мотор (обикновено с контролер на двигателя) тъй като това е най-просто). Но в някои случаи можете да контролирате мотора си, като имате своите контролни релета Pi или транзистори / мосфети, за да извършите необходимото превключване (google "H bridge"), а също и да следите стойностите на енкодера, ако имате такъв.


Отговор 3:

Двигателят с постоянен ток няма познания за положение или прецизно управление, закачате го и той просто се върти.

Моторът Stepper няма познания за положението, но можете да го контролирате прецизно, като го накарате да движи по една малка стъпка всеки път, когато прилагате мощност към навиването.

Серво мотор (да не се бърка с хоби серво), има познания за неговото положение (чрез енкодер) и може да бъде прецизно контролиран в резултат.

Ето малко повече подробности за всеки….

Обикновеният двигател с постоянен ток се завърта автоматично, веднага щом е свързан към захранването. Скоростта и въртящият момент, на които е способен, ще зависят от напрежението и тока на подадената мощност, както и от самия двигател, и няма нищо, което да дава индикация за положението на двигателя. По принцип тя е или „включена“ веднага щом я закачите, като доставяте енергия (и въртите с фиксирана скорост, освен ако не пулсирате силата си), или е изключена и следователно е изключена.

Stepper двигателят предлага прецизно средство за контрол на положението на двигателя, но самият двигател няма начин за измерване на това положение. Така че, когато приложите и освободите мощност към намотка (обикновено има няколко проводника, които позволяват отделно захранване за всяка намотка), тя ще се върти с малък прираст от няколко градуса. Мислете за това като затворете очи и кажете на някой друг да извърви една крачка. Средно знаете колко далеч е крачка, но не знаете, че всъщност са извървели стъпка, защото може би са се опитали да направят крачка и са се спънали или са се сблъскали в стена, просто не знаете дали са успешни или не ( няма отзиви за позицията). Можете да го наречете "отворен цикъл" контрол, тъй като не получавате обратна информация за случилото се. Така че това е като стъпков двигател, когато накратко приложите мощност към намотка, той прави усилие да се обърне, но не сте съвсем сигурни, че всъщност се е случило (може би натоварването е твърде голямо или времето ви е прекалено бързо, или не сте го направили t доставят достатъчно мощност).

Сервомоторът много прилича на вашия DC мотор, с изключение на това, че има много точна информация за позицията си, която го прави лесен за управление. Всъщност, за да превърнете постоянен мотор в серво мотор, просто поставете енкодер на вала и сега имате точна информация за положението на вала, което улеснява контрола на скоростта и посоката (чрез PWM). Енкодерите могат да бъдат много прецизни (до част от градуса), така че това ви позволява да изпращате контролни сигнали в тази позиция и да движите двигателя по какъвто желаете. Това е контрол „затворен цикъл“, защото винаги получавате обратна информация за въздействието на контролите си.

Така че всеки един от тези мотори може да се управлява от Raspberry Pi. По принцип всяка от тези три опции ще използва повече мощност / ток, отколкото вашият Raspberry Pi ще изведе директно, така че вместо това можете да използвате своя Pi за генериране на управляващите сигнали и след това да усилите мощността, изпратена до вашия мотор (обикновено с контролер на двигателя) тъй като това е най-просто). Но в някои случаи можете да контролирате мотора си, като имате своите контролни релета Pi или транзистори / мосфети, за да извършите необходимото превключване (google "H bridge"), а също и да следите стойностите на енкодера, ако имате такъв.