Arduino.ru
Получив сегодня утром быстрые и оч.полезные советы относительно выбора типов ультразвуковых и лазерных датчиков, воодушевился и решил еще один живо трепещущий вопрос задать.
А именно — управлениие и опробованное железо для управления мотор колесами от гироскутеров с помощью ардуино.
Мотор колеса от скутеров сейчас активно использоваться начали не только для именно самокатов или тележек на их базе, но и компактные мощные приводы для других устройств (в первую очередь всяких переносных) и для работы в тяжелых и вспеогодных условиях.
Цена колес невысока, разные диаметры и типы покрышек, ломаться почти нечему, их можно приобрести как по отдельностти так и раздербанив б\у гироскутер (заодно получив и батарею).
Короче, штука переспективная.
Управлять прямо гироскопом по датчикам Холла, собюдая баланс — таких проектов у меня в проекте пока нет. А вот просто навострится управлять этим колесом вперед-назад а также разгон и т.д. — это было бы нужно очень.
А главное — какие мосты и драйверы стоит для этого использовать.
Нашлось достаточно много инфы (да и продавцы гироскутерных запчатей подтверждают, что роботостроители потянулись за покупками). Но она достатчно «сырая» на мой взгляд. И весьма недавняя ( а хотелось бы еще и статистику уже понимать по применению в реальных условиях и проектах). И от этого не совсем ясно однозначное направление, что и как лучше использовать:
сразу здесь эта тема мне не попалась (хотя не может быть, чтобы не обсуждалась уже).
Если уже идет гдето обсуждение — плиз, ткните носом.
P\S Интересует именно управление гироскутерными колесами (хотя по идее наверно и вело и тому подобные — похожи). Посткольку важна не столько скорость, сколько сочетание вес\компактность\мощностьи ( на будущее) возможность точного позиционирования.
- Войдите на сайт для отправки комментариев
Так мы уже год как управляем вот таким колесом при помощи вот такой платы.
Могу цвета проводов рассказать. Или чего Вам собственно нужно-то?
- Войдите на сайт для отправки комментариев
Так мы уже год как управляем вот таким колесом при помощи вот такой платы.
Могу цвета проводов рассказать. Или чего Вам собственно нужно-то?
отлично! такое примерно колесо я и предполагаю использовать. 10 дюймовые с камерной покрышкой. Еще вроде по такойже цене и 14 дюймовые сегвейные нашол, но 14 слишком здоровенные.
по плате — огромное спасибо за инфу! вот уже нашол тут про нее (но мало)
а также видимо ее вживую я в стране врядли найду. Придется заказывать?
А нужно мне — вот то что вы и написали))) Большое спаисбо. А именно — какую плату взять для управления чтобы не городить огорода и понять, в какую строну копать)))
Кстати, если управляете уже достаточно давно — наверняка и опыт есть и какието косяки пойманы. Я бы с удовольствием воспользовался инфой и опытом НА ВОЗМЕЗДНОЙ основе в благоразумных пределах))) Сэкономленное время — сэкономленные деньги)))
Мне щас надо просто управлять этим колесом (точнее — двумя) в режиме вперед\назад , разгон\замедление\остановка ( до 5 -6 км\ч, не более). Это такая тележка с ящиком для перевозки взад вперед (без поворотов, по прямой) деталей. Режимы разгона и замедления и отсутсвие резких остановок и рывков — чтобы чегонить не упало с нее от рывка.
- Войдите на сайт для отправки комментариев

Ну, во-первых, если Вы ещё не купили колесо (или купили), Вы должны понимать есть ли у него датчики Холла. Та, плата, что у меня — для колеса с датчиками. Если колесо без датчиков, то плата вот такая.
На плате контакты подписаны буквами. А у колеса провода «подписаны» цветом. У моего колеса и моей платы соответсвие такое:
А — зелёный
B — жёлтый
C — синий
Из особенносте. Вперёд -назад управляется как описано, а вот со скоростью . в принципе тоже как описано, но имейте в виду, вход у платы управления низкоомный и жрёт заметный ток. Я подключал так:
Ну, пин не обязательно D3 — любой с ШИМом. Напряжение питания усилителя — любое от 7В до 20В. У меня реально — 9В. OUTPUT — к соответсвующему входу платы-контроллера колеса.
Так вот, при таком подключении усилитель сгорел! У него выходной ток не более 10мА, а там при резком разгоне оказалось больше! Выручил резистор 1К в цепи OUTPUT (между выходом усилителя и входом платы контроллера).
Других граблей вроде не было, работает нормально.
Для меня было проблемой запитать колесо, чтобы напряжение было стабильным и току хватало. Родной аккумулятор гироскутерв не понравился. Емкось у моего была 14Ah, напряжение — 36В (как раз напряжение колеса). Но при небольшом разряде, напряжение проседало, что нормально, а мне это не нравилось. Хотелось стабильного напряжения.
Выручили лодочные аккуьуляторы на 12В / 90Ah (можно автомобильные, но они стартовые, а лодочные — тяговые — это лучше). Соединил два штуки последовательно и поднял напряжение до 36 вольт вот такой DC-DC. Пара аккумуляторов одна, а DC-DC своя на каждый двигатель. В итоге на двигателе всегда стабильные 36В до тех пор, пока аккумуляторы не сядут до 12 (на двоих). Тогда вырубается повышалка (там можно настраивать напряжение вырубания) Повышалка легко даёт 10А, так что всё работает на ура.
- Войдите на сайт для отправки комментариев
Ну, во-первых, если Вы ещё не купили колесо (или купили), Вы должны понимать есть ли у него датчики Холла. Та, плата, что у меня — для колеса с датчиками. Если колесо без датчиков, то плата вот такая.
На плате контакты подписаны буквами. А у колеса провода «подписаны» цветом. У моего колеса и моей платы соответсвие такое:
А — зелёный
B — жёлтый
C — синий
Из особенносте. Вперёд -назад управляется как описано, а вот со скоростью . в принципе тоже как описано, но имейте в виду, вход у платы управления низкоомный и жрёт заметный ток. Я подключал так:
Ну, пин не обязательно D3 — любой с ШИМом. Напряжение питания усилителя — любое от 7В до 20В. У меня реально — 9В. OUTPUT — к соответсвующему входу платы-контроллера колеса.
Так вот, при таком подключении усилитель сгорел! У него выходной ток не более 10мА, а там при резком разгоне оказалось больше! Выручил резистор 1К в цепи OUTPUT (между выходом усилителя и входом платы контроллера).
Других граблей вроде не было, работает нормально.
Для меня было проблемой запитать колесо, чтобы напряжение было стабильным и току хватало. Родной аккумулятор гироскутерв не понравился. Емкось у моего была 14Ah, напряжение — 36В (как раз напряжение колеса). Но при небольшом разряде, напряжение проседало, что нормально, а мне это не нравилось. Хотелось стабильного напряжения.
Выручили лодочные аккуьуляторы на 12В / 90Ah (можно автомобильные, но они стартовые, а лодочные — тяговые — это лучше). Соединил два штуки последовательно и поднял напряжение до 36 вольт вот такой DC-DC. Пара аккумуляторов одна, а DC-DC своя на каждый двигатель. В итоге на двигателе всегда стабильные 36В до тех пор, пока аккумуляторы не сядут до 12 (на двоих). Тогда вырубается повышалка (там можно настраивать напряжение вырубания) Повышалка легко даёт 10А, так что всё работает на ура.
ну, ответ начну с благодарности. Инфа ценнейшая!
теперь по существу.
Колеса еще не покупались — ясность есть толлько по диаметру (10), а вот по покрышке даже по пневмо-непневмо уже есть варианты. Т.к. этот робот человека не возит. Сама тележка 4-х колесная. 2 других колеса — просто обычные недорогие от садовой тачки или дет.коляски.
По источнику приобретения — тоже рассматриваю варианты. Толи брать готовый скутер, раздербанивать а лишние детали отдавать всяким ремонтникам, либо брать колеса как запчасти. Но их ценник не особо мал (я находил варианты по 2500, а ваше колесо — 2900 даже).
Тут важен вопрос по аккуумулятору. Разбирая готовый — получаешь и аккумулятор ( отдельно — 2500) и 2 колеса (даже если тоже по 2500*2=5000) итого 7500. Такчто готовый скутер на разборку — неплохой вариант.
Вопрос же №2 тоже по типу аккумулятора. Я также как и вы смотрел в строну свинцовых необслуживаемых ( т.е. не юзать литийнеоны от скутера). Правда еще пока даелеко не залезал в выборе, но мысля про тяговые лодочные -прекрасная. Вот тутже сразу стала куча выпадать: http://bigteh.ru/product/akkumuljator-deka-evu1-31-ach-glubokogo-razrjada/ . Характеристики также суперские у них.
Одна проблема (хотяи не особая) — вес. Батареи по 8.5*2 = 17 кг, + колеса ( их вес по 3.4 кг) итого — 24 кг (ну и + корпус 6 кг, пластик и алюминий). Итого 30 кг. В принципе вес в относительно норме, но изначально была мысля делать очень легкой конструкцию. Ее задача — возить саму себя + нагрузку до 30 кг. с невысокой скоростью (до 5-6 км\ч). Пробег до 20 км.в рабочую смену, подзарядка возможна каждой ночью. Дли литийиона вроде походящая задача, там вопрос тока циклов заряда и сохранности при длительном хранении без работы.
Грубо говоря, если сам робот был бы совсем легким ( в пределах 10-12 кг) и еще и складным, то его удобно былобы увозить с объекта чтобы заночь не сперли ( эта фиговина работает на улице).
Сами же свинцовые батареи хороши даже своей тяжестью ( они бы создали низкий центр внизу между колкесными парами по бокам), я тоже так и думал делать (просто чото не сомтрел пока в район тяговых а думал прототим просто на обычных компактных свинцовых сделать). Они и дешевле — по 1200 гдето. И даже если не особо долговечны — проще чаще на новые менять ? Но конеччто надо или литий оставлять или идти в строну предложенных Вами тяговых батарей. Их характеристики впечатляют. Наверно пусть лучше рабочие покорячутся с 30 кг.))))) зато мощща.
Подключаем мотор-колесо от гироскутера к ESP32 (среда программирования Arduino ide)

Разбираем его. К сожалению, воспользоваться драйверами самого скутера у меня не получилось, они ушли на запчасти, а вот мотор-колеса и батарея пригодится в нашем проекте.
В гироскутере пара таких драйверов

Мотор-колесо имеет три силовых фазы (это бесколлекторный трехфазный двигатель) и энкодер в виде трех датчиков Холла (с питанием датчиков это 5 контактов) . Контакты по краям разъема – питание, внутренние сигналы от датчиков Холла.

Как я уже заметил, подключить к контроллеру имеющийся в комплекте гироскутера драйвер у меня не получилось.
На помощь пришел знаменитый китайский магазин.
По итогу был выбран драйвер BLD-300B. Особенностью драйвера можно считать «заточенность» на управление через подстроечный резистор (внутренний либо внешний). Такой драйвер можно использовать для регулировки вращения шпинделя фрезерного станка. Но мне нужно использовать его для управления вращением колеса. При этом должна адекватно работать обратная связь по скорости. Т.е. если сопротивление вращению увеличивается драйвер должен это компенсировать, добавив мощности мотору доведя скорость до заданной.

Если требуется, чтобы драйвер держал заданную скорость, переключите тумблер в положение ON
Если SW2 в положении OFF , при малых оборотах мотор колесо можно остановить рукой. После включения SW2, это сделать затруднительно.
Самая элементарная схема подключения изображена ниже. Нужно заземлить EN и BRK. После этого можно управлять мотором посредством внутреннего подстроечного резистора. 
В качестве источника питания для мотора я буду использовать батарею от разобранного гироскутера на 36V емкостью 4 амперчаса.
Входы драйвера EN, BRK, F/R через резистор подтянуты к 5 вольтам питания, как следствие, если их не подключать никуда, они будут находиться в состоянии высокого сигнала (на них будет 5 вольт).

Я протестировал вращение с использованием внутреннего потенциометра. Единственное, что мне не понравилось, это отсутствие полной блокировки вращения колеса, даже при использовании функции тормоза (колесо можно провернуть). При этом я не тестировал вращения в разные стороны.
Следующая схема позволяет изменять направление вращения и подключать тормоз. Но мне она не интересна, мне требуется научиться управлять при помощи микроконтроллера. 
Подключаем микроконтроллер
Первое, что я попробовал сделать, это научить микроконтроллер управлять скоростью мотора. Для этого я подключил вывод контроллера к SV входу драйвера. Но согласно документации частота PWM управления должна быть не менее 1Кгц. Стандартный ШИМ от Arduino Nano генерируется на частоте 500Гц. Решено использовать контроллер на базе ESP32
Для согласования уровня сигнала я использовал преобразователь уровней сигнала вроде того, что показан в центре схемы ниже. 
Программа содержит два файла, один описывает класс мотора motor_init.h, а второй — главная программа, работающая в цикле testmk1.ino .
Испытания прошли успешно.
Управляю направлением и тормозом
Следующим этапом я подключил контакты направления вращения и тормоза по схеме ниже. В программу также включил возможность управления мотором. Но, к сожалению, схема оказалась не рабочей. Преобразователь уровня стал работать в обратном направлении и передавал напряжение со входов DIR и BREAK драйвера на контроллер. Контроллер зависал, перезагружался – «паниковал».


Поразмыслив, и используя элементарную логику, я составил еще пару схем, первую с использованием полевых транзисторов, а вторую с использование оптопары. Обе они приводили к замыканию/размыканию через полупроводниковый элемент DIR и BREAK на землю. Обе они оказались работоспособными.
Последняя схема мне нравится больше, т.к. оптопара еще является защитой от высокого потенциала для контроллера. Возможно ШИМ (контакт SV) нужно выполнить в таком же «стиле».
Тестовые программы прикреплены к статье.
Трицикл из гироскутера/мини-сигвея: cборка, прошивка и настройка.
Всем добрый день! В этом обзоре речь пойдет, пожалуй, о моем самом увлекательном DIY проекте, который доставил такую массу положительных эмоций, как детям, так и их родителям.
Будем делать детский трицикл (трайк) из старого китайского мини-сигвея/гироскутера и детского велосипеда. Как всегда, в обзоре подробно представлю используемые доступные компоненты и комплектующие, процесс изготовления и сборки конструкции трицикла с задней подвеской, подготовки и установки электро-компонентов, настройки параметров и прошивки контроллера мотор-колес для комфортной езды и управления.
Обзор получился достаточно объемным, я постарался представить все основные моменты и особенности реализации поставленной задачи, поэтому придется выделить значительное время для подробного ознакомления с материалом.
Я сразу попрошу простить меня инженеров-машиностроителей, электроинженеров и программистов за ошибки в используемой мной терминологии, я в этом только стараюсь разбираться, отнеситесь пожалуйста со снисхождением, как к обзору от лингвиста-строителя).
ВВЕДЕНИЕ.
Идея реализации данного проекта возникла в момент, когда наш мини-сигвей под названием «A8», которому уже 4 года, в очередной раз сломался.


Сигвей перестал реагировать на поворот ручки, соответственно пропала функция поворота. Необходимо было разбираться с датчиком Холла, но честно сказать, заниматься этим уже не было желания. Сигвей уже ранее начал проявлять признаки неадекватного поведения, несколько раз отключался на ходу, излишне накренялся назад при ускорении, на нем уже становилось опасно ездить.
Поэтому родилась идея использовать его мотор-колеса и сделать трицикл, как наиболее простую конструкцию. Направившись в сеть за развитием идеи, я вдруг осознал, что всё уже давно происходит без меня, и моя идея уже давно проработана большим количеством людей).
Поэтому перед непосредственной реализацией я ознакомился с опытом других самодельщиков, и отметил для себя следующие основные моменты:
— трицикл должен иметь заднюю подвеску, так как мы живем в частном секторе, и у нас рядом с домом нет ровных асфальтированных дорог (максимум укатанные асфальтовой крошкой грунтовые дороги), а выезжать на городскую проезжую часть не совсем правильно;
— трицикл должен быть двухместным, так как детей у нас двое, а организованное поочередное катание, рано или поздно, всё равно приведет к громкому конфликту и жалобам;
— трицикл надо собирать на родном контроллере от сигвея/гироскутера, так как много энтузиастов занимаются открытыми прошивками для плат на микроконтроллерах STM32/GD32, которые установленны в данных китайских изделиях. Появляется возможность получить исправления ПО, гибкие настройки, дополнительные функции, в отличии от готовых китайских контроллеров для электротранспорта.
Идейными вдохновителями моего трицикла послужили работа и видеоролики автора Youtube-канала ILYANOV. Он разработал свою конструкцию трицикла, а также сделал свою альтернативную прошивку контроллера гироскутера для удобного управления в качестве трицикла. У него есть бесплатный (с ограничением максимальной скорости) и платный вариант прошивки. Сумма за платную прошивку больше символическая, но вскоре я наткнулся в сети на другие варианты альтернативных прошивок, с более гибким конфигурированием и более эффективной работой мотор-колес. Об этом чуть позже.
Сразу скажу, что идею задней подвески я позаимствовал у товарища ILYANOV, как простой и доступный вариант, однако не стал использовать в своей конструкции раму самого гироскутера.
В ходе непродолжительного моделирования была получена, и согласована с детьми, следующая конструкция трицикла:

КОМПЛЕКТУЮЩИЕ:
Для изготовления и сборки трицикла мною были куплены следующие компоненты и материалы:
Программатор ST-Link V2. Его будем использовать для загрузки новой прошивки микроконтроллера STM32/GD32 на плате сигвея/гироскутера.
Ссылка: ST-Link V2 stlink mini STM8STM32 STLINK simulator download programming With Cover

Комплект ручек на руль велосипеда, с ручкой акселератора на датчике Холла, с интегрированным вольтметром для контроля напряжения аккумулятора, и двумя кнопками: кнопка с фиксацией(красная) и кнопка без фиксации (зеленая), которую будем использовать в качестве кнопки электронного тормоза.
Ссылка: Electric Bike Voltage Display 1 Pair Universal LED Voltage Display Twist Throttle for 12-99V Ebike Scooter Durable

Шины и камера для тачки, размерность «6”- 4.00». Так как родные шины мотор-колес низкопрофильные, больше подходят для ровного асфальта, и большую скорость на них не развить, то было решено поменять их на шины большего наружного диаметра. Покупать что-то специальное от Kenda, по 2-2,5 т.р. за шину пока не было желания (не было полной уверенности в успехе реализуемого проекта), поэтому был рассмотрен более дешевый вариант шин Delta в интернет-магазине.
Ссылка на шины: Шина «Delta» 400-6 для пневматического колеса
Ссылка на камеры: Камера 400-6 для пневматического колеса

Для изготовления амортизируемой задней подвески был куплен самый простой велосипедный амортизатор с заявленной жесткостью 850 LBS, что в итоге оказалось маловато, хотя может амортизатор не соответствует заявленной жесткости.
Ссылка: Задний амортизатор рамы KZ-880B, 165 mm/420030

Для изготовления каркаса трицикла был куплен следующий стальной профиль:
- Профилированная труба 20х20х2 – 3м;
- Профилированная труба 40х20х2 – 3м;
- Профилированная труба 40х40х3 – 1м (был в наличии);
- Пластина 40х4 – 1 м (были обрезки в наличии);
- Штанга реактивная средняя 2101-07, ссылка: Штанга реактиваня
- Втулка амортизатора заднего 2101-07 распорная большая металл, ссылка: Втулка амортизатора

В качестве передней части нашего трицикла был куплен БУ детский велосипед. При поиске приоритетным являлось наличие переднего ручного тормоза:

ИЗГОТОВЛЕНИЕ И ПОДГОТОВКА И ОСНОВНЫХ КОМПОНЕНТОВ И УЗЛОВ:
Первым делом, изготовление было решено начать с подготовки колес и задней оси трицикла.
Мотор-колесо зажал в тиски и выполнил замену покрышки и камеры. Отверстие под ниппель в алюминиевом ободе колеса пришлось немного рассверлить сверлом 9мм, так как у новой камеры основание ниппеля было заметно толще:

Получились вот такие внушительные бублики:

В качестве задней оси было решено использовать профилированную трубу 20х20х2. Диаметр оси самого мотор-колеса составляет 16мм, и я предварительно тестировал на небольшом обрезке, как подходит квадратный профиль на ось. Был небольшой люфт в 1мм, но при условии планируемой затяжки оси в профиле двумя болтами, меня данный люфт устраивал.
Затем я купил 3 метра нового профиля, и вот он уже подходил под ось мотор-колеса просто идеально, даже заходил с трудом в натяг, получилось даже лучше, чем я ожидал.
Соответственно, отрезал кусок профиля для будущей оси трицикла и подготовил гайки и болты фиксации мотор-колес:

Просверлил отверстия в профиле и прикинул место крепления гаек:

Обварил гайки, закрутил болты:

Подготовил отверстия под вывод проводов от мотор-колес, собрал готовую заднюю ось:

Задний подрамник сделал из профиля 40х20х2, выполнил надрезы в профиле и согнул в тисках форму будущего подрамника:

Приварил внутреннюю перемычку подрамника и обварил все стыки:

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

Распорная втулка оказалась с несколько большим внутренним диаметром, чем ожидалось – 16 мм, а меньшим диаметром найти не удалось. Поэтому поступил тем же способом – сверлим отверстие, привариваем гайку и фиксируем ось во втулке болтом М8:

Размещаем наш полученный подрамник и примеряем квадратный профиль рамы, прихватываем и привариваем втулку к профилю рамы:

Соединяем профиль рамы и подрамник, используем болт, шайбы и гайку М12:

Для крепления амортизатора подрамника подготовил пластины из полосы 40х4 и сделал отверстия 8мм. Отверстий сделал несколько, для возможной замены амортизатора и смены его положения:

Выставляем угол наклона подрамника к раме и примеряем пластины с амортизатором, подрезаем пластину под нужный угол для крепления к трубе подрамника и привариваем:

Подготавливаем ответную часть крепления амортизатора, из куска профиля 20х20х2 и пластин с отверстием 8 мм:

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

Подготовил и приварил пластины крепления заднего сиденья, с отверстиями 8 мм:

Соответствующим образом и пластины переднего сиденья:

Для продолжения работы, необходимо было изготовить сами сиденья, потому что от них зависело место крепления подножек для водителя и пассажира, ну и точка крепления передней части велосипеда к раме трицикла.
Из фанеры 12 мм лобзиком вырезал основания сиденья и спинки (в этот раз не на распиловочном столе, так как он лишился пилы для работ на улице):

Разметил крепежные отверстия и забил усовые гайки М8

К основаниям приклеил поролон, оставшийся от изготовления кровати (40мм + 10мм):

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

Нижнюю часть фанерного основания сиденья я впоследствии покрасил черной краской, а вот для задней части спинки было решено сделать панель из фанеры 6 мм, и также обтянуть кожей:

Раму сиденья сделал из профиля 40х20х2, выполнил надрез, согнул под нужным углом, обварил стыки, разметил и просверлил отверстия 8мм для крепления к кронштейнам на раме трицикла:

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

Крепление задней оси к подрамнику выполняем болтами М8, сверлим отверстия и крепим:

Подножки для водителя и пассажира изготовил из трубы 20х20х2 и пластин 40х4. Крепим болтам М6:

Плату контроллера и аккумулятор трицикла я запланировал разместить в самом подрамнике, для этого высоты профиля 40мм не хватало, и я нарастил его вниз до уровня задней оси профилем 20х20х2, итого глубина отсека получилась 60 мм:

Верхнюю и нижнюю крышку отсека я решил сделать из оргстекла:

Крепление крышек сделал на болты М6, резьбу нарезал метчиком прямо в профиле подрамника:

Берем все детали трицикла и отправляем грунтовать и красить:

Для закрытия торцов профилей приобрел торцевые заглушки для профиля, перед покраской использовал грунтовку по пластику:

Крышку «моторного» отсека зашлифовал 120 зерном, и также отправил в покраску:

Элементы рамы и подрамника покрасил в оранжевый цвет, для сидений, крышек «моторного» отсека и перехода передней части от велосипеда к раме был выбран черный цвет:

Пока сохнет грунтовка, краска и лак, можно опять сделать перерыв и перейти к электронной части нашего транспортного средства.
Еще до запуска проекта я получил программатор ST-LINK V2 и загрузил прошивку от автора ILYANOV через программу STM32 ST-LINK Utility (https://www.st.com/en/development-tools/stsw-link004.html). Всё получилось. По данной ссылке можно найти файлы прошивок автора и его схемы подключения: ссылка. Но позже я открыл для себя альтернативную прошивку другого автора, о которой речь пойдет далее.

Для данного проекта используется только основная плата сигвея/гироскутера, дополнительные гироплаты откидываются. В сети есть хорошая картинка с обозначением всех I/O платы:

В соответствии с имеющимися компонентами и платой получилась следующая схема подключения:

Плата у меня на микроконтроллере STM32F103. Необходимое напряжение +3.3В я взял с корпуса преобразователя AMC1117 отдельным проводом, который завел в общий жгут проводов от USART2 (на самом USART2 есть только +15В, которые использовать нельзя):

Для того, чтобы линии АЦП USART2 не были подвержены наводкам, а также для защиты от неадекватной реакции платы на обрыв провода от ручки акселератора или тормоза, необходимо зашунтировать выводы ADC2 и ADC1 конденсатором 0,1-0,01 мкФ и выполнить подтяжку резисторами 2-10 кОм к GND.
У меня не было SMD деталей, поэтому использовал обычные выводные, и самый мелкий конденсатор у меня был 2200 пФ, который также подошел. Без конденсаторов у меня даже колеса начинали резво вращаться, когда я просто дотрагивался до корпусов мотор-колес пальцами рук:

Для установки резисторов и конденсаторов приходилось снимать радиатор с платы и возвращать назад. Обратите внимание на торчащий провод красного цвета сбоку платы (обвел красным кругом).

Это как раз тот провод +3,3В, который я добавил. В ходе вращения платы при установке радиатора, этот провод +3,3В попал оголенным проводником на корпус радиатора, и произошло замыкание. Конденсаторы на плате не были разряжены, и я коротнул +3.3В.
Результат не заставил себя долго ждать – плата не работает.
Я сначала подумал, что пробило преобразователь питания +3.3В AMC1117, так как на нем при подаче питания было только 1,2В, но после его замены (взял с гироплаты) ничего не изменилось.
В ходе дальнейшей диагностики было обнаружено, что чип STM32 мертв, короткое замыкание. Разочарованию не было предела. Я до этого читал, что при любых манипуляциях с платами необходимо разряжать емкости, тем более что на данной плате это делается, просто зажав кнопку питания, но почему-то об этом вспоминаешь, когда уже всё плохо. Столько уже сделано работы, и всё, платы нет.
На следующее утро был произведен обзвон нескольких мастерских по ремонту гироскутеров, и получена цена на БУ плату от гироскутера – 2000р. А чуть позже, небольшой поиск на Авито выдал несколько результатов БУ гироскутеров в городе по схожей цене. К вечеру был приобретен целый гироскутер, с нерабочей батареей, за 2000р.

В итоге у меня появилась плата, нерабочая батарея (6шт. банок в батарее мертвые, остальные 14 были с напряжением 3,5-3,8В), и комплект новых мотор-колес для очередного проекта. На старой плате надо менять чип микроконтроллера, но в наличии нет паяльной станции-фена, только Т12, и нет пока опыта.
Новая плата оказалась на чипе GD32F103, что сначала насторожило. Но по отзывам энтузиастов, прошивается также, и теме же прошивками, что и STM32. Сейчас могу сказать, что никаких проблем с совместимостью нет.
Также, на данной плате мосфеты прикручены к радиатору нейлоновыми винтами, на красной плате были стальные винты с пластиковыми втулками-шайбами:

Плату разместил на основание «моторного» отсека на стойках из винтов, гаек и шайб М3

Для коммутации всех приходящих линий от устройств управления, кнопок включения и разъема зарядки на плату, я решил изготовить вот такую не большую плату с винтовыми клеммниками. На плате также размещен перемененный резистор, которым я планировал регулировать силу электронного тормоза, потому что я использую для тормоза простую кнопку с двумя значениями 0% и 100%. На практике оказалось, что переменный резистор не нужен, и электронным тормозом пользуешься только когда не хватает переднего ручного, и максимальная эффективность тормоза только приветствуется.

Для коммутации проводов от батареи, предохранителя и кнопки отключения батареи я использовал маленькие проходные клеммники на мини-DIN рейке.

В автомагазине приобрел держатель для плавкого предохранителя, для защиты батареи от различных неприятностей:

Разместил коммутационную плату и DIN-рейку с клеммниками на основании:

Соответствующим образом разместил батарею, зафиксировал штатной прижимной деталью, покрасил основание с обратной стороны черной краской, и всё подключил:

Ставим основание на подрамник:

Прикручиваем заднюю ось трицикла и подключаем фазные провода мотор-колес и коннекторы от датчиков Холла:

СБОРКА:
Несем всё на улицу и приступаем к сборке трицикла. Соединяем раму и подрамник:

Болт фиксации оси крепления подрамника в распорной втулке посадил на фиксатор резьбы:

Гайку М12 оси подрамника законтрил старым способом: просверлил сквозное отверстие 3мм через гайку и болт М12, вставил гвоздь и загнул:

Ставим амортизатор. Для крепления использую везде гайки с нейлоновыми ставками, чтобы не открутились на ходу:

Крепим подножки водителя и пассажира:

Собираем сиденья и ставим на раму, крепим также на болты М8:

Ставим новые ручки на руль:

Для установки кнопки включения, гнезда зарядки батареи, кнопки отключения батареи, решил использовать клеммную коробку черного цвета, с резиновыми мембранами для ввода/вывода кабелей:

Разместил кнопку включения и гнездо зарядки:

Для крепления клеммной коробки на раму, разместил металлическую пластину на клепках, и к ней закрепил болтами и гайками саму коробку:

Завел кабель от ручки акселератора через коробку, она пройдет транзитом до подрамника, а также гофры для прокладки двух линий: силовой кабель 3х2,5 мм2 для кнопки отключения батареи (а в будущем двух батарей), контрольный кабель 3х2х0,5 мм2 для кнопки включения, гнезда зарядки и 2 жилы в запас. Кабель 3х2,5 в одной гофре 16мм, кабель 3х2х0,5, и кабель от ручки – в другой гофре;

Для будущего переключения двух батарей, и для аварийного отключения батареи в случае неадекватного поведения трицикла, приобрел влагозащищенную кнопку на 30А и установил в крышку клеммной коробки:

Для ввода гофр в «моторный отсек» решил использовать латунные кабельные вводы. Просверлил отверстия ступенчатым сверлом, и закрепил комплектными гайками:

Получился вот такой аппарат:

ПОДГОТОВКА И ЗАГРУЗКА ПРОШИВКИ:
Как писал ранее, в качестве программной части, я выбрал открытый проект энтузиаста Emanuel Feru на Github: github.com/EmanuelFeru/hoverboard-firmware-hack-FOC
Данный проект предлагает использовать как синусный, так и векторный (FOC) принцип управления 3-х фазных электродвигателей, с функцией ослабления поля (Field Weakening), в результате получаем очень мягкую работу мотор-колес, отличную плавность набора скорости и крутящего момента, а также плюсом и более высокую скорость.
Для конфигурирования, компиляции и загрузки прошивки в микроконтроллер будем использовать то, что рекомендует сам автор проекта – PlatformIO IDE, которая устанавливается в качестве расширения в Visual Studio Code от Microsoft. Сказать честно, ранее мне никогда не приходилось пользоваться данными инструментами, так как я несколько далек от программирования.
Я всё это делал под MacOS, но проверил в виртуальной машине на Windows 10, всё устанавливается и выполняется также. (Единственная проблема была при установке PlatformIO в Visual Studio Code на Windows 10, был цикличный процесс установки, пока я в системе не поставил дистрибутив Python 3.7)
Открываем в PlatformIO (установленной в Visual Studio Code) папку со скаченным с Github проектом, и открываем файл platformio.ini, в котором нам дают выбор вариантов нашей прошивки. Там много вариантов реализации и управления, но нам интересен вариант VARIANT_HOVERCAR, поэтому раскомментируем строку:

Затем, перейдем в подпапку “Inc” и откроем файл “config.h”

В этом файле будет редактировать необходимые нам параметры перед компиляцией.
Первым делом перейдем в раздел “BATTERY”, где в строке
Нам необходимо указать реальное значение напряжения батареи в милливольтах. А в строке
вводится значение, измеренное АЦП контроллера, которое мы получим через серийный порт чуть позже.

Перейдем в раздел “MOTOR CONTROL”
И проверим выбранный режим управления электродвигателем в строке
Чтобы у нас использовался режим FOC

В этом же разделе можно отключить одно из колес, если используется только одно мотор-колесо (иначе прошивка после включения будет ругаться на обрыв одного из колес)
А также включить режим ослабления поля (Field Weakening) для увеличения максимальной скорости движения нашего транспортного средства. Скорость увеличивается значительно:

Я использовал значение FIELD_WEAK_MAX 8, так как в ходе тестирования на стуле, при значении FIELD_WEAK_MAX 10 у меня продолжили вращаться колеса при сбросе ручки акселератора. Правда это было до шунтирования USART2 конденсаторами от наводок. Надо попробовать опять значение 10:

Раздел “DEBUG SERIAL” рассказывает нам как получить данные с USB-SERIAL адаптера подключившись к USART3 и как интерпретировать полученные данные. Это мы сделаем после первоначальной прошивки.

И наконец переходим в раздел VARIANT_HOVERCAR SETTINGS
говорит, что используется Torque Mode, что дает плавный разгон, равномерную езду через препятствия и в гору, а самое главное – накат, движение по инерции при отпускании ручки акселератора, без торможения двигателем. Это очень увеличивает время пробега на батарее, так как можно разогнаться, и определенное время двигаться по инерции.

Данный параметр обеспечивает систему от обрыва провода питания или GND от ручки акселератора и тормоза на USART2.
Параметром #define ADC_PROTECT_THRESH 300 задается порог срабатывания защиты по минимальным и максимальным значениям.
Ввиду того, что у меня для тормоза используется просто кнопка, у которой только два значения: 0 и 4095 (min/mac ADC1-value while poti at minimum-position (0 — 4095), то у меня не получается использовать функцию защиты. Параметр ADC_PROTECT_THRESH нельзя поставить меньше 1, и при иных значениях после включения питания в прошивке включается защита по нулевому значению кнопки тормоза (как бы обрыв) и трицикл пищит зумером, и никуда не едет.
Поэтому я закомментировал строку #define ADC_PROTECT_ENA, отключив защиту, тем более что у меня уже есть аппаратная защита, в виде установленных резисторов подтяжки на USART2;
и тоже самое для ADC1, можно не трогать, так как автор реализовал режим автоматической калибровки максимальных и минимальных значений напряжения от ручки акселератора и тормоза при зажатии кнопки включения платы более 5 секунд, что мы сделаем после прошивки.
оказались очень кстати, потому что при сборке трицикла, я перепутал левое и правое колесо, и они у меня закрутились в обратную сторону. Данный параметр инвертирования стороны вращения мотор-колес позволил исправить направление вращения без перекоммутации.
надо обязательно закомментировать. Автор проекта использует одну боковую плату гироскутера со своей альтернативной прошивкой для индикации заряда батареи блоком светодиодов. Если плату не подключать, но при запуске прошивка вещает зумером, что имеется проблема, и двигаться дальше отказывается.
надо наоборот раскомментировать, так как это даст нам возможность подключиться к нашей плате с помощью USB-TTL адаптера через USART3 и получить данные по фактически определённому контроллером напряжению нашей батареи, и сделать корректировку.
Поможет включить функцию стояночного тормоза. После полной остановки и неактивной ручки акселератора наше транспортное средство будет невозможно сдвинуть с места, мотор-колеса будут сопротивляться, естественно в ущерб заряду батареи. Я не использую.

После всех внесенных изменений можно перейти к компиляции нашей прошивки. Жмем на кнопку “PlatformIO: Build” в нижнем левом углу и компилируем нашу прошивку по выбранному варианту и параметрам, смотрим на результат процесса в нижнем окне Terminal:

После завершения процесса компиляции прошивки, мы готовы загрузить ее в микроконтроллер на плате.
Для этого я изготовил трехжильный кабель и подключил USB-адаптер ST-LINK V2 к плате по следующей схеме. Предварительно на плате припаял гребенку для подключения:

+3.3В с адаптера ST-LINK V2 для питания STM32 везде советуют не брать, прошивать только с подключенной к плате основной батареей. Хотя я пробовал и так, у меня ничего не сгорело, возможно повезло. У коллеги donBaton микроконтроллер всё-таки сгорел. Лучше избежать проблем.
Перед прошивкой может потребоваться снять защиту от записи Flash-памяти микроконтроллера. На двух моих платах потребовалось выполнить данную процедуру.
Я это сделал с помощью программы STLINK Utility под Windows, но это можно также сделать на Linux и MacOS с помощью пакета OpenOCD
Подробно об этом рассказывается по данной ссылке: github.com/EmanuelFeru/hoverboard-firmware-hack-FOC/wiki/How-to-Unlock-MCU-flash (How to Unlock MCU Flash)
Представлю несколько скриншотов с процессом разблокировки MCU Flash:

После разблокировки опять возвращаемся в PlatformIO, подключаем наш кабель, зажимаем кнопку включения питания и нажимаем кнопку “PlatformIO: Upload” в программе. Зуммер радостно пропищит, окно Terminal выдаст информацию об успехе:

После первоначальной прошивки полезным будет откалибровать батарею, для того чтобы микроконтроллер правильно определял напряжение питания. Для этого используется USB-TTL адаптер.
Я приобрел самый простой адаптера на CP2102 по данной ссылке: CP2102 USB 2.0 to UART TTL 5PIN Connector Module Serial Converter

Для его работы в MacOS (и скорее всего и в Windows) необходимо установить специальный драйвер:
CP210x USB to UART Bridge VCP Drivers
Устройство определилось в системе и стало доступно по адресу /dev/cu.usbserial-0001

Подключаем адаптер к плате по следующей схеме:

Запускаем окно чтения виртуального серийного порта командой в терминале:
В окне побежали следующие строки с данными:

Нам интересно значения в строке под цифрой 5 и 6. Значение под цифрой 5 – измеренное значение АЦП, а под цифрой 6 – пересчет в значение напряжение питания.
Значение под цифрой 5 необходимо записать.
Затем выключаем трицикл кнопкой выключения/выключения, подключаем опять наш USB-программатор ST-LINK V2, открываем опять файл “config.h” в PlatformIO, переходим в раздел “BATTERY”, и в строке
Вносим текущее значение напряжения батареи, измеренное мультиметром, в милливольтах, а в строке
указываем измеренное значение АЦП, которое мы получили под цифрой “5” шагом ранее, с серийного порта.

Снова компилируем нашу прошивку, и опять загружаем в микроконтроллер платы.
Теперь у нас прошивка правильно определяет напряжение нашей батареи, что можно проверить, опять подключив USB-TTL адаптер, и проверив полученное значение напряжения под цифрой “6”.

Теперь нам необходимо откалибровать нашу ручку акселератора и кнопку тормоза. Для этого автор прошивки предусмотрел режим автокалибровки. Необходимо выключить плату трицикла, и снова включить, зажав кнопку включения на 5-8 секунд. Зуммер на плате издаст дополнительный сигнал, сообщив, что мы вошли в режим калибровки. Теперь у нас есть 20 секунд, в течение которых нам нужно плавно покрутить пару раз ручку акселератора от минимума до максимума, и отпустить. Соответственно, несколько раз включить кнопку тормоза и отпустить. Порядок не важен. Через 20 секунд прошивка сама выйдет из режима калибровки и все параметры наших органов управления (минимальные и максимальные значения напряжения на ADC2 и ADC1) будут сохранены. Это необходимо делать после каждой загрузки новой прошивки, если мы делаем в ней изменения и заливаем новую.
Кстати, если во время режима автокалибровки подключиться к плате USB-TTL адаптером и вывести данные с серийного порта, то экран оповестит нас о начале режима автокалибровки, и покажет статус после завершения.

В принципе всё, можно ехать! На небольшом отрезке неровной грунтовой дороги я разогнался до 32 км/ч, на асфальте думаю шустрее поедет. У детей динамика внушительней.
UPD: Задний ход включается двойным нажатием кнопки тормоза, при полной остановке трицикла. Включается зуммер заднего хода, и можно двигаться назад. Затем опять двойным нажатием на тормоз выключаем режим заднего хода, и едем вперед.

Бюджет проекта и требуемые доработки:
Основные моменты которые необходимо учесть при доработке данной конструкции трицикла:
— Отбойник нижнего подрамника. После сборки и полной загрузке пассажирами, выяснилось, что профиль заднего сидения встречается с подрамником на большом ходе амортизатора — слишком мягкий амортизатор. После некоторых раздумий, я обнаружил, что амортизатор можно настроить, закручивая нижнюю резьбовую чашку по оси вверх, на сжатие пружины. Жесткость увеличилась, и сидение перестало бить по крышке подрамника. По началу у меня была идея поставить сразу резиновый отбойник, на всякий случай, от задней подвески Нивы. Но проехавшись по местным магазинам автозапчастей, такой не нашел, и я про это вскоре забыл.
Забыл зря, так как на хороших кочках дети всё-таки смогли найти слабые места конструкции:

На скорую руку мною был придуман следующий отбойник/ограничитель ходя заднего подрамника, из болта, гаек и старого подшипника:

Работает хорошо, но постукивает, надо думать над другой реализацией.
— Подножки водителя и пассажира. После нескольких дней разъездов на новом транспортном средстве, краска с подножек начала стираться. Соответственно, нужно было это исправить. Не нашел ничего проще и быстрее, чем обтянуть их двойным слоем плотной термоусадки:

— Батарея. Это, на данный момент, самый критичный момент в данном проекте, так как родная батарея уже немного устала, и её хватает лишь на 5-7 км, что совсем грустно.
Разобрал мертвую батарею от купленного БУ гироскутера, достал из него плату BMS, купил новых аккумуляторов, соберу новую батарею. Их оставшихся банок двух старых штатных батарей соберу еще одну батарею и поставлю как вторую в подрамник, с возможностью переключения ранее приобретенной клавишей:

- переднюю фару и задние фонари;
- небольшую сетку-багажник на спинку заднего сидения;
- крылья на задние колеса (пока не знаю какой конструкции и формы);
Бюджет проекта:
| № | Наименование | Цена (руб.) |
| 1 | Гироскутер | 2’000 р. |
| 2 | Метал. профиль | 700 р. |
| 3 | Штанга | 430 р. |
| 4 | Поролон/клей/экокожа | 800 р. |
| 5 | Крепеж | 500 р. |
| 6 | Шины/камера | 800 р. |
| 7 | Ручка/кнопка/клеммники | 950 р. |
| 8 | Амортизатор | 650 р. |
| 9 | Велосипед | 1’500 р. |
| 10 | Краска/грунт/лак | 960 р. |
| 11 | Программаторы | 250 р. |
| — | ИТОГО: | 9’540 р. |
На этом всё! Если есть вопросы, постараюсь ответить. Если есть предложения по доработке и улучшению — давайте вместе обсудим, тем более, что это уже второй обзор на данную тему.
Мотор колесо от гироскутера схема подключения

Плата гироскутера с установленной прошивкой под ручку газа – отличный бюджетный контроллер для двух мотор колес. Заменяет два обычных контроллера с максимальным током до 25А.
Контроллер отлично подходит для таких проектов как:
- электросамокат
- детский электромобиль
- детский электроснегокат
- детский электротрайк
- электровелосипед
- радиоуправляемая платформа
- тележка с электроприводом
Прошьем и подготовим к подключению управления Ваш контроллер, либо отправим готовый наш с нужными Вам настройками

Характеристики контроллера
- векторное/синусное управление мотор колесами
- поддерживается работа мотор колес только с датчиками Холла 120 градусов (это все гироскутерные колёса)
- один контроллер управляет двумя мотор колесами (возможна прошивка на один мотор)
- ручное управление с обычных ручек или педалей для электротранспорта на датчиках Холла или потенциометрах
- радиоуправление с аппаратуры работающей на PWM протоколе
- ток на каждый мотор (настраивается с шагом 1 А) до 25 А. При токе более 20 А обязательно используйте дополнительный радиатор для лучшего охлаждения!
- режимы управления: момент/скорость (подробнее о режимах ниже)
- реверс
- ограничение максимальных оборотов мотор колес (настраивается) для безопасности в детских проектах
- повышение максимальных оборотов мотор колес без поднятия напряжения батареи (настраивается)
- напряжение питания 24 – 60 В
- направление вращения каждого мотор колеса также может быть настроено под Ваш проект
Возможные способы управления кроме ручки газа
- двух осевой проводной джойстик. Левый/правый поворот, вперед/назад.

- пульт дистанционного управления от RC моделей. Левый/правый поворот, вперед/назад.
Возможные режимы работы моторов
- мощность (ток). В этом режиме поворотом ручки управления задаем мощность (тягу, крутящий момент) подаваемую в моторы. При одном и том же положении ручки газа скорость движения зависит от нагрузки. При отпускании газа в нейтральное (нулевое) положение, колеса имеют свободный накат. Плавный старт, лучший вариант для самоката, трайка, электромобиля итд.
- скорость (напряжение). Ручкой управления задаются обороты. Преодолевая приложенную нагрузку на максимальной мощности моторы стремятся достичь заданных оборотов. В этом режиме свободного наката нет. Более резкий старт, вариант подходит для радиоуправляемых моделей, приводов механизмов.
Схемы подключения управления к контроллеру
Схема подключения ручек газа и тормоза на датчиках Холла
Схема подключения ручки газа и кнопки тормоза без регулировок
Схема подключения ручки газа и кнопки тормоза с регулировкой усилия тормоза
Схема подключения ручки газа и кнопки тормоза с регулировкой усилия тормоза и ограничением мощности
Внимание. Схемы предполагают,что на левый красный провод подведено +3,3 В, установлены подтягивающие резисторы и помехоподавляющие конденсаторы на входы сигнала тормоза и газа. По умолчанию (в заводском исполнении) на красный провод подведено +15 В . Не забывайте об этом при самостоятельной переделке! Напряжение более 3,3В выведет из строя сигнальный вход.
Калибровка ручек управления
Для обучения контроллера работе с Вашими ручками газа и тормоза необходимо сделать калибровку. Она проводится один раз и далее информация хранится в энергонезависимой памяти. При смене ручек управления на другие обучение нужно провести заново. Описание калибровки.
Прежде чем заказать контроллер для двух мотор колес у нас, ознакомьтесь с инструкцией по самостоятельной прошивке, возможно для Вас это будет более удобным вариантом.
Контроллер поставляется без корпуса. Вы должны быть аккуратны и исключить риск случайных коротких замыканий на печатной плате металлическим мусором, проводов между собой. При отключении платы от аккумуляторной батареи сохраняется заряд на электролитических конденсаторах в цепях питания. Чтобы его снять нажмите кнопку включения питания при отключенной аккумуляторной батарее.
При полностью заряженном аккумуляторе не применяйте сразу резкий электронный тормоз! В начале торможения происходит дозаряд аккумулятора рекуперацией. БМС плата защиты, установленная в аккумуляторе может отключить его в целях защиты от избыточного заряда. На контроллер при этом может поступить высокое напряжение с мотор колес, это может стать причиной выхода его из строя!
При близком полном разряде батареи нужно быть также особенно аккуратным, так как она может отключиться в неподходящий момент и электронный тормоз не будет работать!
Прошивка гироскутера под радиоуправление
Всем привет! Продолжаем эксперименты с прошивкой гироскутера от EmanuelFeru. Прошивка платы гироскутера под радиоуправление это ещё один способ заставить его шевелить своими моторами, на этот раз дистанционно, с пульта управления. Если Вы ещё ничего не знаете о прошивке, посетите страницу прошивка гироскутера под ручку газа. В начале той статьи рассказано какие платы подходят для такой прошивки, какое ПО потребуется установить на компьютер, какой будет нужен программатор и собственно сам процесс заливки прошивки.
Здесь расскажу пошагово именно о настройке прошивки и подключении приемника к контроллеру. Вам не обязательно быть программистом и специалистом в радиоэлектронике, чтобы так же прошить свой гироскутер. Всё довольно просто и доступно для начинающих.

Для экспериментов использован пульт (передатчик) и приёмник для радиоуправляемых моделей с протоколом сигналов на выходах PWM (ШИМ). Прошивка также поддерживает протоколы PPM и iBUS.
Бюджетная апаратура FLYSKY FS-i6 с различными приемниками под PWM, PPM, iBUS с доставкой из Китая / быстрая доставка из РФ.
Для работы понадобится два канала. Первый для движения вперед/назад и второй для рулевого управления влево/вправо. Повороты осуществляются за счет вращения колес в противоположные стороны, либо разной скорости вращения. Команды руля и скорости исполняются одновременно и для поворота останавливаться не обязательно. Это очень удобно при управлении.
Я использовал каналы правого джойстика, так как при отпускании он автоматически возвращается в центральное положение, в котором моторы неподвижны.
Подготовка платы
Схема подключения приемника (протоколы PPM, PWM)к контроллеру гироскутера
Для протокола iBUS схема подключения есть в репрозитории автора прошивки.
Конденсаторы и подтягивающие резисторы необходимы для защиты входов от помех. Без них не будет стабильной работы устройства. Желательно запаять их прямо на плате.
Длинна сигнальных проводов между приемником и платой должна быть минимальной. Если по цветам провода на плате расположены в другом порядке, ориентируйтесь не по цветам а по расположению.
Питание приемника берем от выводов на датчики Холла для моторов. Максимальный ток с преобразователя 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
I_MOT_MAX – максимальный ток на каждый мотор в амперах.
I_DC_MAX – максимальный ток на каждый мотор при котором срабатывает защита от превышения, рекомендуется устанавливать на 2А больше I_MOT_MAX .
N_MOT_MAX – ограничение максимальных оборотов двигателей в об/мин.
VARIANT PWM SETTINGS
В этом разделе я оставил всё по умолчанию. Здесь можно поэкспериментировать с SPEED_COEFFICIENT (ускорение) и STEER_COEFFICIENT (руление). Больше коэффициент – сильнее эффект.
Это все настройки, которые я сделал. После заливки прошивки всё работает без калибровки. Я не сразу угадал на какие каналы приемника подключать контроллер, но методом перебора удалось их найти.
Аппаратура PWM, напряжение батареи на момент прошивки 36,00 В и BAT_LVL1 320 BAT_DEAD 300
Не забывайте привязать приемник к пульту !
Прошивка платы гироскутера под радиоуправление и ручку газа это не все способы доступные для управления. О других также планируется рассказать, если это будет кому-то интересно. Напишите об этом в комментариях.
Дополнения к статье
Подключение двух конторллеров гироскутера к одному приемнику

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





