Всем привет! Продолжаем эксперименты с прошивкой гироскутера от EmanuelFeru. Прошивка платы гироскутера под радиоуправление это ещё один способ заставить его шевелить своими моторами, на этот раз дистанционно, с пульта управления. Если Вы ещё ничего не знаете о прошивке, посетите страницу прошивка гироскутера под ручку газа. В начале той статьи рассказано какие платы подходят для такой прошивки, какое ПО потребуется установить на компьютер, какой будет нужен программатор и собственно сам процесс заливки прошивки.
Здесь расскажу пошагово именно о настройке прошивки и подключении приемника к контроллеру. Вам не обязательно быть программистом и специалистом в радиоэлектронике, чтобы так же прошить свой гироскутер. Всё довольно просто и доступно для начинающих.
В экспериментах использован пульт (передатчик) и приёмник для радиоуправляемых моделей с протоколом сигналов на выходах приемника PWM (ШИМ).
Прошивка также поддерживает протоколы PPM и iBUS.
Бюджетная аппаратура FLYSKY FS-i6 с различными приемниками под PWM, PPM, iBUS с доставкой из Китая / быстрая доставка из РФ.
Для управления гироплатой понадобится два канала приемника. Первый для движения вперед/назад и второй для рулевого управления влево/вправо. Повороты осуществляются за счет вращения колес в противоположные стороны, либо разной скорости вращения в одном направлении.
Я использовал каналы правого джойстика, так как при отпускании он автоматически возвращается в центральное положение, в котором моторы неподвижны.
Подготовка платы
Схема подключения приемника (протоколы PPM, PWM)к контроллеру гироскутера
Для протокола iBUS схема подключения есть в репрозитории автора исходника в разделе Wiki.
Конденсаторы и подтягивающие резисторы необходимы для защиты входов от импульсных помех. Без них возможна нестабильная работа устройства, а именно дерганье колес. Желательно запаять их прямо на плате.
Длинна сигнальных проводов между приемником и платой должна быть минимальной. Если по цветам провода на плате расположены в другом порядке, ориентируйтесь не по цветам а по расположению.
Питание приемника 5 вольт можно взять от выводов на датчики Холла для моторов. Максимальный ток с преобразователя 5В ограничен 100 мА, включая питание самих Холлов. Для приемника этого хватает, так как его потребление невелико и обычно составляет не более 50 мА. Если собираетесь использовать оставшиеся каналы приемника для дополнительных устройств, придется для питания применить отдельный понижающий стабилизатор на 5В. В этом случае плюсовой вывод приемника с платой не соединяем.
Подключение программатора и процесс прошивки описан в предыдущей статье.
Настройка прошивки
Вариант радиоуправления
Для радиоуправления по протоколу PWM в platformio.ini необходимо раскомментировать (убрать в начале знак “;“) строку default_envs = VARIANT_PWM. Если у Вас приемник с протоколами PPM или iBUS, соответственно проделываем это для своего варианта.
Остальные настройки производятся разделе Inc – config.h.
Батарея
Измеряем вольтметром и указываем текущее напряжение батареи в строке #define BAT_CALIB_REAL_VOLTAGE (у меня указано напряжение 35,88 В). Это избавит от преждевременного отключения контроллера при разряде батареи. А также от несвоевременных предупреждающих звуковых сигналов о её напряжении.
#define BAT_CELLS – указываем количество (S) ячеек батарее. Гироскутерная стандартная батарея 10S 2P.
#define BAT_LVL3….#define BAT_LVL1 – записываем напряжение на одной S ячейке батареи, при котором будет подаваться соответствующий звуковой сигнал. Если не нужна такая индикация, записываем заведомо меньшее напряжение, или отключаем индикацию в строках #define BAT_LVL2_ENABLE и #define BAT_LVL1_ENABLE, записав в них 0. Я оставил только #define BAT_LVL1_ENABLE при напряжении 31,0 В на батарее.
#define BAT_DEAD – напряжение при котором контроллер принудительно отключится. В примере это 30,0 В.
Раздел MOTOR CONTROL
#define CTRL_TYP_SEL – доступно три варианта:
- COM_CTRL
- SIN_CTRL
- FOC_CTRL
#define CTRL_MOD_REQ – в сочетании с SIN_CTRL возможен вариант VLT_MODE (управление напряжением) – не проверял его
в сочетании с FOC_CTRL возможны:
- VLT_MODE (управление напряжением) Без явного свободного наката, но и без режима удержания на месте.
- SPD_MODE (управление оборотами) Отклонением стика задаем нужную скорость, пока он ее не достигнет, в моторы подается максимальный ток. Наката нет от слова совсем, режим удержания на месте в нейтральном положении стиков.
- TRQ_MODE (управление током) Очень мягкий старт. Отклонением стика задаем подаваемый в моторы ток, при этом скорость сильно будет зависеть от приложенной нагрузки. Накат есть, но можно убрать активировав функцию ELECTRIC_BRAKE_ENABLE
Я использовал FOC_CTRL + SPD_MODE для своей тележки.
I_MOT_MAX – максимальный ток на каждый мотор в амперах (чем больше ток, тем сильнее тяга).
I_DC_MAX – максимальный ток на каждый мотор при котором срабатывает защита от превышения, рекомендуется устанавливать на 2А больше I_MOT_MAX , но если при максимальной нагрузке моторы пищат, то увеличиваем на 1 пока не уйдет писк.
N_MOT_MAX – ограничение максимальных оборотов двигателей в об/мин.
VARIANT PWM SETTINGS
- если радиоаппаратура с протоколом PPM или iBUS, смотрите разделы настройки для этих вариантов соответственно
В этом разделе я оставил всё по умолчанию. Здесь можно поэкспериментировать с STEER_COEFFICIENT (руление). Среднее значение этого коэффициента 16384. При этом максимальные обороты (режим FOC_CTRL + SPD_MODE ) при развороте совпадают с максимальными оборотами при движении вперед – назад. Чтобы их уменьшить – уменьшите коэффициент.
Это все настройки, которые я сделал. После заливки прошивки всё работает без калибровки, но если колеса дергаются или крутятся в нейтральном положении – сделайте калибровку.
Файл прошивки на случай трудностей при самостоятельной сборке (для проверки) :
Не забывайте привязать приемник к пульту !
Звуковые информирующие и сигналы ошибок контроллера
Прошивка платы гироскутера под радиоуправление и ручку газа это не все способы доступные для управления. О других также планируется рассказать, если это будет кому-то интересно. Напишите об этом в комментариях.
Дополнения к статье
Подключение двух конторллеров гироскутера к одному приемнику

Способ для радиоаппаратуры без функции микшера вынесен в отдельную статью “Подключение двух конторллеров гироскутера к одному приемнику“.
Дополнительное управление с проводного джойстика
К левому уарту можно дополнительно подключить проводной джойстик. Чтобы получить возможность управления с него, в файле config.h необходимо активировать строку #define DUAL_INPUTS, убрав // в начале.
При этом, при отсутствии сигнала с приемника (например потеря связи с пультом) будет работать управление с проводного джойстика.
Схема подключения джойстик + радиоуправление
Обязательно проводим калибровку джойстика как при прошивке под ручку газа.
При потере связи с пультом моторы неконтролируемо вращаются
Если Вы наблюдаете неконтролируемое поведение моторов при потере связи приемника с пультом управления. Также, если управление двойное (с радиоаппаратуры на правом уарте и с проводного джойстика на левом уарте), но контроллер не переходит на запасное управление и неконтролируемо вращает моторы.
Это может быть вызвано включенной на приемнике функцией ФЕЙЛ-СЕЙФ (FAIL-SAFE). Назначение этой функции (в зависимости от настроек) – выдавать какой либо сигнал на каком либо выходе приемника при потере связи с пультом управления. В аварийной ситуации, например при потере связи на модели вертолета, его винт не остановится а понизит обороты для плавной посадки, чтобы избежать резкого падения. Функция может быть уже включена на новой аппаратуре “из коробки”.
По этой причине также невозможна активация дополнительного управления, так как сигнал с приемника всё же присутствует. Ищем мануал по своей аппаратуре и отключаем функцию.
Если очень хочется, поддержать автора можно тут 🙂