Прошивка гироскутера под радиоуправление

Всем привет! Продолжаем эксперименты с прошивкой гироскутера от EmanuelFeru. Прошивка платы гироскутера под радиоуправление это ещё один способ заставить его шевелить своими моторами, на этот раз дистанционно, с пульта управления. Если Вы ещё ничего не знаете о прошивке, посетите страницу прошивка гироскутера под ручку газа. В начале той статьи рассказано какие платы подходят для такой прошивки, какое ПО потребуется установить на компьютер, какой будет нужен программатор и собственно сам процесс заливки прошивки.

Здесь расскажу пошагово именно о настройке прошивки и подключении приемника к контроллеру. Вам не обязательно быть программистом и специалистом в радиоэлектронике, чтобы так же прошить свой гироскутер. Всё довольно просто и доступно для начинающих.

радиоуправление гироскутер

Для экспериментов использован пульт (передатчик) и приёмник для радиоуправляемых моделей с протоколом сигналов на выходах PWM (ШИМ).

Прошивка также поддерживает протоколы PPM и iBUS.

Бюджетная апаратура FLYSKY FS-i6 с различными приемниками под PWM, PPM, iBUS с доставкой из Китая / быстрая доставка из РФ.

Для работы понадобится два канала. Первый для движения вперед/назад и второй для рулевого управления влево/вправо. Повороты осуществляются за счет вращения колес в противоположные стороны, либо разной скорости вращения. Команды руля и скорости исполняются одновременно и для поворота останавливаться не обязательно. Это очень удобно при управлении.

Я использовал каналы правого джойстика, так как при отпускании он автоматически возвращается в центральное положение, в котором моторы неподвижны.

Подготовка платы

Для протокола iBUS схема подключения есть в репрозитории автора исходника в разделе Wiki.

Конденсаторы и подтягивающие резисторы необходимы для защиты входов от импульсных помех. Без них возможна нестабильная работа устройства, а именно дерганье колес. Желательно запаять их прямо на плате.

Длинна сигнальных проводов между приемником и платой должна быть минимальной. Если по цветам провода на плате расположены в другом порядке, ориентируйтесь не по цветам а по расположению.

Питание приемника 5 вольт можно взять от выводов на датчики Холла для моторов. Максимальный ток с преобразователя 5В ограничен 100 мА, включая питание самих Холлов. Для приемника этого хватает, так как его потребление невелико и обычно составляет около 40-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_LVL5….#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 , но если при максимальной нагрузке моторы пищат, то увеличиваем пока не уйдет писк.

N_MOT_MAX – ограничение максимальных оборотов двигателей в об/мин.

VARIANT PWM SETTINGS

  • если радиоаппаратура с протоколом PPM или iBUS, смотрите разделы настройки для этих вариантов соответственно

В этом разделе я оставил всё по умолчанию. Здесь можно поэкспериментировать с STEER_COEFFICIENT (руление). Среднее значение этого коэффициента 16384. При этом максимальные обороты (режим FOC_CTRL + SPD_MODE ) при развороте совпадают с максимальными оборотами при движении вперед – назад. Чтобы их уменьшить – уменьшите коэффициент.

Это все настройки, которые я сделал. После заливки прошивки всё работает без калибровки, но если колеса дергаются или крутятся в нейтральном положении – сделайте калибровку.

Файл прошивки на случай трудностей при самостоятельной сборке (для проверки) :

Не забывайте привязать приемник к пульту !

Звуковые информирующие и сигналы ошибок контроллера

Прошивка платы гироскутера под радиоуправление и ручку газа это не все способы доступные для управления. О других также планируется рассказать, если это будет кому-то интересно. Напишите об этом в комментариях.

Дополнения к статье

Подключение двух конторллеров гироскутера к одному приемнику

платформа радиоуправляемая тележка полный привод

Способ для радиоаппаратуры без функции микшера вынесен в отдельную статью “Подключение двух конторллеров гироскутера к одному приемнику“.

Дополнительное управление с проводного джойстика

К левому уарту можно дополнительно подключить проводной джойстик. Чтобы получить возможность управления с него, в файле config.h необходимо активировать строку #define DUAL_INPUTS, убрав // в начале.

При этом, при отсутствии сигнала с приемника (например потеря связи с пультом) будет работать управление с проводного джойстика.

Обязательно проводим калибровку джойстика как при прошивке под ручку газа.

При потере связи с пультом моторы неконтролируемо вращаются

Если Вы наблюдаете неконтролируемое поведение моторов при потере связи приемника с пультом управления. Также, если управление двойное (с радиоаппаратуры на правом уарте и с проводного джойстика на левом уарте), но контроллер не переходит на запасное управление и неконтролируемо вращает моторы.

Это может быть вызвано включенной на приемнике функцией ФЕЙЛ-СЕЙФ (FAIL-SAFE). Назначение этой функции (в зависимости от настроек) – выдавать какой либо сигнал на каком либо выходе приемника при потере связи с пультом управления. В аварийной ситуации, например при потере связи на модели вертолета, его винт не остановится а понизит обороты для плавной посадки, чтобы избежать резкого падения. Функция может быть уже включена на новой аппаратуре “из коробки”.

По этой причине также невозможна активация дополнительного управления, так как сигнал с приемника всё же присутствует. Ищем мануал по своей аппаратуре и отключаем функцию.

Если очень хочется, поддержать автора можно тут 🙂



Присоединяйтесь к обсуждению!