Написать прошивку diy bldc servo для платы Arduino
10 000 руб. за проект
алгоритм работы:
на устройство подается управляющий PWM сигнал, серводвигатель поворачивается на требуемый угол. Угол поворота определяется по значениям с потенциометра (многооборотистый переменный резистор).
Задача: написать код программы для платы ArduinoNano, чтобы сервомотор поворачивался на тремуемый угол максимально быстро и точно. При реализации применить алгоритм PID регулятора.
Среда разработки любая, желательно ArduinoIDE или VS Code Platformio
*рассмотрю варианты решения созданием кастомной прошивки для VESC
Двигатель безколлекторный, управляется контроллером VESC. На вход vesc нужно подавать PWM сигнал, от 1000 до 2000мс. Центральная точка 1500мс - мотор невращается(stop), значения меньше 1500 - мотор вращается против часовой стрелки, значения больше 1500 - мотор вращается по часовой стрелке. Скорость вращения мотора тем больше чем больше отклонение шим сигнала от центрально значения.
Пример: PWM:1500, speed 0
PWM:2000, speed MAX(CW), мотор вращается с моксимальной скоростью по часовой стрелки
PWM:1000, speed MAX(CCW), мотор вращается с моксимальной скоростью против часовой стрелки
PWM:1550 -мотор медленно вращается по часовой стрелке
Датчик угла поворота соединен с валом мотора через редуктор. Значения на входе АЦП меняются линейно в зависимости от угла поворота.
Максимальный угол поворота по часовой стрелке составляет 540 градусов, и ему соответствует значение с потенциометра 665
Максимальный угол поворота против часовой стрелке составляет -540 градусов, и ему соответствует значение с потенциометра 359
Центральное положение (0 градусов) соответствует значение с потенциометра 512
Управляющий сигнал PWM
PWM_Min 1000 //us
PWM_Mid 1500 //us
PWM_Max 2000 //us
Есть скетч, в котором остается написать алгоритм вращения мотора с обратной связью.
В скетче уже реализовано : Сичтывание управляющего сигнала, сичтывание значения с потенциометра, отправка управляющего PWM сигнала
на устройство подается управляющий PWM сигнал, серводвигатель поворачивается на требуемый угол. Угол поворота определяется по значениям с потенциометра (многооборотистый переменный резистор).
Задача: написать код программы для платы ArduinoNano, чтобы сервомотор поворачивался на тремуемый угол максимально быстро и точно. При реализации применить алгоритм PID регулятора.
Среда разработки любая, желательно ArduinoIDE или VS Code Platformio
*рассмотрю варианты решения созданием кастомной прошивки для VESC
Двигатель безколлекторный, управляется контроллером VESC. На вход vesc нужно подавать PWM сигнал, от 1000 до 2000мс. Центральная точка 1500мс - мотор невращается(stop), значения меньше 1500 - мотор вращается против часовой стрелки, значения больше 1500 - мотор вращается по часовой стрелке. Скорость вращения мотора тем больше чем больше отклонение шим сигнала от центрально значения.
Пример: PWM:1500, speed 0
PWM:2000, speed MAX(CW), мотор вращается с моксимальной скоростью по часовой стрелки
PWM:1000, speed MAX(CCW), мотор вращается с моксимальной скоростью против часовой стрелки
PWM:1550 -мотор медленно вращается по часовой стрелке
Датчик угла поворота соединен с валом мотора через редуктор. Значения на входе АЦП меняются линейно в зависимости от угла поворота.
Максимальный угол поворота по часовой стрелке составляет 540 градусов, и ему соответствует значение с потенциометра 665
Максимальный угол поворота против часовой стрелке составляет -540 градусов, и ему соответствует значение с потенциометра 359
Центральное положение (0 градусов) соответствует значение с потенциометра 512
Управляющий сигнал PWM
PWM_Min 1000 //us
PWM_Mid 1500 //us
PWM_Max 2000 //us
Есть скетч, в котором остается написать алгоритм вращения мотора с обратной связью.
В скетче уже реализовано : Сичтывание управляющего сигнала, сичтывание значения с потенциометра, отправка управляющего PWM сигнала
- Файлы
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.