Написать прошивку diy bldc servo для платы Arduino

10 000 руб. за проект
21 мая 2024, 15:41 • 8 откликов • 34 просмотра
алгоритм работы:
на устройство подается управляющий 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 сигнала
Файлы
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
  • Очень быстро выполнен проект
6 месяцев назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
ТЗ очень простое. Заказчик предложил свой исходник. По исходнику стало ясно в чем проблема. Отладить у исполнителя не было возможности, но заказчик работу принял сразу. Побольше бы таких заказчиков!!!
7 месяцев назад