Добре дошли в друг технически блог на Progressive Automations! Днес ще обясним как Arduino може да комуникира с нашия PA-04-HS.
Сензорът на Хол е електронен компонент, който позволява прецизен контрол на... линеен задвижващ механизъмОбикновено е разположен в скоростната кутия, до магнитен диск. Докато линейният задвижващ механизъм се движи, магнитният диск се върти, което създава магнитно поле, преминаващо през сензора на Хол. Това създава импулс на напрежение, който може да бъде преброен, за да се определи позицията, скоростта или посоката на линейния задвижващ механизъм. За да се използват тези сигнали обаче, е необходим микроконтролер, като например Arduino или Raspberry Pi. В тази статия ще се потопим в използването на задвижващ механизъм за Raspberry Pi и как да управляваме линеен задвижващ механизъм с Arduino. Както бе споменато, и двата микроконтролера ще бъдат демонстрирани с помощта на Progressive Automations. Линеен задвижващ механизъм с ефект на Хол PA-04-HS.
Изчисления на позиция, скорост и посока
Преди да се потопим в подробности, първото нещо, което трябва да разберем, е как сигналите, идващи от сензора на Хол, се използват за изчисляване на позицията, скоростта и посоката на линейния задвижващ механизъм. В PA-04-HS, сензорът на Хол е проектиран да генерира два сигнала в едно от двете двоични състояния: включено или изключено. Тези два сигнала ще се покачват и спадат, докато електрическият мотор се върти с фазова разлика от 90 градуса между тях. Не се притеснявайте, ако не знаете как да имплементирате нещо от това в код, който може да се чете от микроконтролер, ще ви го дадем по-късно в тази статия.
Позиция
Позицията на линейния задвижващ механизъм изисква някои изчисления, използващи сигналите на ефекта на Хол, и някои измервания на самия задвижващ механизъм. Уравнението за позицията на пръта на задвижващия механизъм изисква дължината на хода на задвижващ механизъми общия брой на откритите ръбове от напълно прибран до разгънат. Използвайки тези измервания, може да се използва следното уравнение:

Ръбовете, открити след пълното им прибиране в горното уравнение, ще започнат от нула и ще се увеличат с едно, когато се открие ръб в посока напред, и ще намалеят с едно, когато се открие ръб в посока назад.
Скорост
Скоростта на задвижващия механизъм може да се измери с помощта на сигналите на ефекта на Хол, като се имплементира таймер в програмата. Този таймер ще се използва за измерване на времето между засечените ръбове. Освен това е необходима изчислената стойност на промяната в хода за всеки засечен ръб. Използвайки тези стойности, може да се използва следното уравнение:

Посока
Посоката на движение на изпълнителния механизъм може да се определи чрез разглеждане на текущото състояние на двата сигнала (сигнал A и B) и сравняването му с последното състояние на двата сигнала. Това е така, защото двата сигнала ще се променят кой е водещ и кой е изоставащ в зависимост от посоката на движение на изпълнителния механизъм.


Кое е по-добро, Arduino или Raspberry Pi микроконтролер?
Не става въпрос за това кое е по-добро като цяло, а по-скоро кое е по-добро за вашето предназначено приложение. Би било по-добре да изберете Arduino, ако основната задача на вашето приложение е да чете данните от сензора на Хол и да връща определен набор от инструкции.
От друга страна, Raspberry Pi би бил по-практичен при решаване на задачи, които биха се изпълнявали на персонален компютър. Освен това, Raspberry Pi опростява управлението на работния процес в различни сценарии, като например свързване с интернет или управление на линеен задвижващ механизъм чрез мобилно устройство.
Може да е удобно да се използват и двата микроконтролера за решаване на различни задачи. Raspberry Pi би могъл да получи достъп до код и да настройва различни параметри, които след това могат да бъдат изпратени до Arduino, за да управлява линейния задвижващ механизъм въз основа на събраната информация.
Нека се потопим в спецификата и да ви покажем как да управлявате линеен задвижващ механизъм с Ардуино.
Arduino с линейни актуатори

Отново, в зависимост от вашето приложение, можете да избирате между използване на метод за запитване или прекъсване с микроконтролер, когато работите с цифрови сигнали. Запитването е програмиран метод, при който микроконтролер периодично проверява състоянието на вход, за да види дали е имало промяна. Прекъсванията са хардуерен механизъм, който незабавно измества фокуса на програмата на микроконтролера, когато състоянието на входа се промени.
For demonstration purposes, we will opt for the interrupt method to know the exact moment when a signal changes state. On an Arduino microcontroller, an interrupt is used by creating an Interrupt Servicing Routine (ISP).
Ето какво ще ви е необходимо:
- Ардуино Уно
- Линеен задвижващ механизъм с ефект на Хол PA-04-HS
- Щит за управление на двигателя MegaMoto
Свързване на Arduino и компоненти за щит
Сензорите на Хол имат 4 проводника: 5V, GND и 2 сигнални проводника. Всеки сигнален проводник подава импулси, докато двигателят се върти. Има и два проводника за задвижване, които се свързват с MegaMoto. Ще използваме само един от сигналите на Хол.
Свържете линейния задвижващ механизъм към Arduino и MegaMoto, както следва:
- Червен сензорен проводник към 5V пин на Arduino.
- Черен сензорен проводник към GND пин на Arduino.
- Жълт/оранжев проводник към пин 2 или 3 на Arduino (ако използвате различен Arduino, уверете се, че пиновете са прекъсващи).
- Червен проводник на задвижващия механизъм към MOTA на MegaMoto.
- Черен кабел за задвижване към MOTB на MegaMoto.
След като двигателите са правилно свързани към платките, свържете захранването, както следва:
- Свържете 12V към BAT+.
- Свържете GND към BAT-.
- Свържете 12V към Vin на Arduino.
- Свържете два бутона между пинове 7 и 8 на Arduino и ги свържете към GND.
Има 4 вида тригери за прекъсването: Нарастващ, Нападащ, Високо и Ниско. Чрез промяна на тригера можете да регулирате кога ще се случи прекъсването. Нарастващ е когато пинът претърпи преход от ниско към високо ниво, низходящ е когато претърпи високо към ниско ниво, нисък е когато пинът е ниско ниво, и висок е когато пинът е високо ниво.
За пълния код на Arduino, посетете нашето ръководство тук: Код за Arduino с линеен задвижващ механизъм на Холов ефект
Кодът ще премести задвижващия механизъм напред или назад с зададено количество, когато натиснете бутоните на пин 7 или 8 (активно LOW). Той включва и рутина за връщане в началото. Това е важно, тъй като ако движите двигателя напред-назад за дълго време, може да загубите брой тук-там и бавно да загубите представа къде се намирате. Рутината за връщане в началото връща линейния задвижващ механизъм в известна позиция, така че броячът да може да се нулира.
Задвижващ механизъм за Raspberry Pi
И така, как се свързва задвижващ механизъм към Raspberry Pi 2, 4 или по-нов модел? Управлението на линеен задвижващ механизъм с Raspberry Pi е лесно и може да се извърши през интернет, което позволява безжично управление. Следвайте стъпките в следващото ръководство, за да видите точно как: Управление на линейни задвижвания Raspberry Pi.
Raspberry Pi 4 се използва за стартиране на сървърния софтуер и получаване на команди за управление на линейния задвижващ механизъм. Това ръководство обаче не използва сензор на Хол. За целта може да се свърже платка Arduino към линейния задвижващ механизъм и Raspberry Pi, за да се изпращат/получават данни безжично. Въпреки че Raspberry Pi може да се използва и директно за четене на данни от сензори, подобно на Arduino, това може да е прекалено, ако контролирате само няколко линейни задвижващи механизма.
Управление на множество линейни задвижвания

Ако трябва да управлявате множество линейни задвижващи механизми с Raspberry Pi или Arduino, ще ви трябват няколко допълнителни компонента и кодът ще трябва да бъде коригиран. Два или повече линейни задвижващи механизма могат да бъдат синхронизирани чрез проследяване на броя на сензорите на Хол ефектора и ако броят на линейните задвижващи механизми се размине твърде много, всеки линеен задвижващ механизъм ще се забави, за да изравни позициите си.
Вижте пълния комплект инструкции тук: Управлявайте множество линейни задвижвания с микроконтролер
Като алтернатива, ако синхронизацията не е част от предвиденото от вас приложение, просто използвайте Arduino за един или два изпълнителни механизма, в зависимост от броя на наличните пинове за прекъсване. За да управлявате повече изпълнителни механизми, можете или да използвате повече Arduino платки, или да получите Arduino shield с повече пинове за прекъсване.
Заключение
Ако сте готови за предизвикателството, има допълнителни методи, които можете да опитате, използвайки Arduino с линейни задвижващи механизми за управление на движението, като например използване на някакъв удобен PID код, който можете да видите тук: PID управление на линейния актуатор. Сензор на Холов ефект вътре в линеен задвижващ механизъм, като например PA-04-HS, осигурява допълнително ниво на контрол, което може лесно да се настрои с помощта на Arduino или Raspberry Pi. Независимо дали приложението ви изисква само четене на данни от сензори или искате да изведете линейния си задвижващ механизъм на следващото ниво, като го включите онлайн, сензорът на Хол, комбиниран с микроконтролер по избор, е правилният избор.
Ако имате въпроси относно съдържанието на тази статия или просто желаете да обсъдим възможни продуктови решения, моля свържете се с нас и ще се радваме да помогнем!