Автоматизированная система управления электрошасси

Автор Владимир Бендик, Вторник, февраля 27, 2024, 06:42:42

« предыдущая тема - следующая тема »
Вниз

Владимир Бендик

Вторник, февраля 27, 2024, 06:42:42 Последнее редактирование: Вторник, апреля 09, 2024, 06:17:46 от Владимир Бендик
Исполнитель: Бендик Владимир Игоревич, гр. 041об
Научный руководитель: Русинов Владислав Леонидович, СКБ «Промышленная робототехника и автоматизация»

 Дисклеймер
 Как вы могли заметить, тема этой работы звучит "Автоматизированная система управления электрошасси". Однако вспоминая первый курс и такой предмет как Введение в профессию, я также вспоминаю такую фразу: "Любой процесс, перед тем как автоматизировать, нужно сперва механизировать". Что из себя представляется механизация электрошасси я не понимаю, как и не понимаю, чем моя система управления особо автоматизирована, кроме того, нигде не сказано, что управление будет дистанционным. Ввиду этого, мне, наверное, стоило бы назвать тему "Разработка системы дистанционного управления электрошасси", но слово "автоматизированный" имеет слишком мощную маркетинговую роль, чтобы легко от него отказаться. Кроме того, на старте работ у меня не было электрошасси без системы управления. Абсолютно всё, имеющееся на данный момент было сделано с нуля, ввиду чего тему можно было бы назвать «Проектирование и разработка электрошасси и его системы управления», но это вообще стремно звучит, так что пусть все остается как есть. На этом с дисклеймером все, приятного чтения основной части.

 Введение
 По мнению Chat GPT 4: Электрошасси - это система автомобильного шасси, в которой традиционные механические компоненты, такие как двигатель внутреннего сгорания, трансмиссия и карданный вал, заменены электромоторами и электронными системами управления. В общем то все так, но в нашем случае речь идет о разработке не автомобильного шасси, а чего-то меньше и дешевле. Электрошасси разрабатываемое в рамках данной работы пригодно для перевозки маломобильных грузов, роботов-манипуляторов и людей (если им очень хочется на нем покататься).

 «Железная» часть
 Первоначальным этапом разработки было создание рамы, выполнена она по самым новейшим технологиям из сверхтехнологичных компонентов, а именно сварена из металлических профилей. На раме были закреплены мотор-колеса и предусмотрен отсек для систем управления и батареи. Все это было визуализировано в SolidWorks.

Рисунок 1 - Визуализация электрошасси в SolidWorks.

 Теперь чуть детальнее про используемые компоненты, начнем с вышеупомянутых мотор-колес. Мотор-колеса - это электрические приводы, которые объединяют мотор и колесо в одном компактном устройстве. В современное время для них обычно применяются BLDC моторы. Они широко используются в робототехнике, автомобильной промышленности и других областях, где требуется передвижение и маневрирование. Мотор-колеса с BLDC мотором будут оптимальным приводом для электрошасси по следующим причинам высокой эффективности и надежности, а также их использование позволит полностью отказаться от механических передач.
Исходя из всех технических требований и экономический соображений были выбраны мотор-колеса используемые в гироскутерах, ниже предоставлены характеристики выбранных колес и их внешний вид (с открытой крышкой).

Таблица 1 - Характеристики выбранного мотор-колеса.



Рисунок 2 - Внешний вид выбранного мотор-колеса.

 Для мотор-колес необходим также драйвер управления. Можно было бы детально расписать требования к драйверу при его выборе и условия работы с колесами, но реальность такова, что главное условие работы драйвера - это идти в комплекте с колесом. Если оно совпало, то без сомнений совпадет и все остальное.  И вот у нас драйверы шли в комплекте с колесами в одной упаковке в виде БУ гироскутеров купленных на Авито. Внешний вид такого драйвера и информация о его разъемах представлена на рисунке ниже:

Рисунок 3 - Драйвер управления моторами

 Моторы и драйверы есть. Осталось устройство для дистанционной связи драйверов и оператора, управляющего шасси. На роль такого устройства мог бы подойти обычный Uart bluetooth module, но было найдено решение интереснее - микроконтроллер ESP32.
Обладая на борту встроенным модулем wi-fi он позволяет развернуть полноценный сервер, что позволит управлять шасси с любого устройства имеющего браузер и возможностью подключения к wi-fi сетям (в дальнейшем будем называть это устройство АРМ). Наличие 2-х аппаратных UART интерфейсов позволит организовать независимую двухстороннюю связь с двумя драйверами, а высокие вычислительные мощности смогут пригодится при расширении возможностей шасси и добавлении таких функций как: автоматическое приложение маршрута или реализация постоянной скорости вращения колес.
Итого: общая функциональная схема устройств и их связей имеет следующий вид:

Рисунок 4 - Функциональная схема электрошасси.

 Как видно, на каждом этапе управления связь двухсторонняя, за счет этого у оператора всегда будет информация о скорости вращения каждого колеса и токах в нем.
 В завершении описания «железной» части хочется сказать о том, о чем еще не было упомянуто. В электрошасси отсутствуют какие-либо классические элементы рулевого управления. Повороты и маневрирование осуществляются «танковым» способом. Так как каждое колесо независимо от других, то мы можем крутить колеса на одной стороне со скоростью отличающейся от скорости колес на другой и таким образом задавать угол поворота шасси. А можно и вовсе крутить колеса в разные стороны, чтобы поворачиваться на месте. Казалось бы, абсурдное решение на самом деле является типовым для роботов подобного типа. Так маневрирует Яндекс доставщик, роботы Амазона и другие.

Рисунок 5 - Робот Яндекс-курьер. Обратите внимание, на отсутствие каких-либо механизмов рулевого управления.

 Программная часть
 Программная часть проекта состоит из двух отдельных программ: программы управления драйверами на основе микроконтроллера STM-32 и программы для ESP-32 связывающей пилота шасси и драйвера по средствам UART интерфейса.

 Для драйвера было выбрано ПО с открытым исходным кодом Hoverboard Firmware Hack FOC опубликованным на сайте github.com автором Emanuel Feru. ПО специально разработано для драйверов аналогичных выбранным мною. Данное ПО реализует векторное управление электродвигателем и представляет широкий набор пользовательских настроек: позволяет использовать различные режимы управления, а также выбрать наиболее удобный интерфейс ввода для поставленной задачи. Детально ознакомиться с ПО можно по ссылке "https://github.com/EFeru/hoverboard-firmware-hack-FOC". Программа требует определенной настройки которая осуществляется в файле "config.h". Мною при редактировании настроек был включен UART интерфейс и задана скорость его работы. Затем программа была откомпилирована и загружена в микроконтроллер через программатор ST-Link V2 и программу STM32 ST-LINK Utility.

 Для ESP-32 программа писалась самостоятельно. Писать программу для было решено в среде Arduino IDE с установленным ядром arduino-esp32. ESP-32 обладает встроенным Bluetooth ядром, для работы с которым удобно применять официальную библиотеку BluetoothSerial.h, кроме того, для работы с UART было решено использовать программную реализацию последовательного интерфейса при помощи библиотеки SoftwareSerial.h.
Для управления драйверами им необходимо посылать 2 переменные типа int16_t, что соответствует типу short в С++. Переменные именуются uSpeed и uSteer. Первая отвечает за скорость колес и задается в пределах от -1000 до 1000, однако в целях безопасности, ограничена через дефайн: #define SPEED_MAX_TEST 300. Вторая задаёт разницу между скоростью левого и пра-вого колеса для регулирования поворота в движении. Работает это следующий образом: допустим uSpeed=200, uSteer =100, в таком случае на каждое колесо изначально подается скорость 200, затем uSteer делится пополам, для одного колеса полученное значение отнимается, для другого прибавляется. По итогу скорость одного колеса становится 150, а другого 250. Шасси начинает ехать в сторону медленного колеса. Если uSteer будет больше uSpeed, то колеса будут вращаться в разные стороны.
 
  Чтобы правильно передать эти переменные и избежать ошибок необходимо иметь стартовый фрейм передачи, а также завершающий фрейм, содержащий в себе контрольную сумму переданного сообщения. Полный код функции отсылки данных представлен на рисунке 6.

Рисунок 6 - Функция отсылки данных на драйвер передних колес.   

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

  Основной цикл программы занимается тем, что обрабатывает сообщения, поступающие по Bluetooth, в качестве посылаемого числа рассматривается чис-ловой символ от 0 до 8, каждый символ изменяет переменные uSpeed и uSteer. Внешний вид цикла приведен на рисунке 7

Рисунок 7 - Основной цикл программы

 В качестве пульта управления удобно использовать смартфон на системе Android с приложением Bluetooth Terminal. Интерфейс этого приложения, во время работы, приведен на рисунке 8.

Рисунок 8 - Интерфейс приложения Bluetooth Terminal

  Заключение
  В ходе выполнения данного проекта было разработано электрошасси с дистанционным управлением через Bluetooth. Разработанное электрошасси прошло испытания которые показали сильные и слабые стороны конструкции. Системы управления и моторы показали себя с лучшей стороны. Все работает стабильно и имеет огромные запасы мощности, в ходе испытаний программное ограничение скорости не разу не было снято с 20% от максимума. Существенными минусом конструкции оказались жестко закрепленные колеса. Отсутствие нормальной подвески не позволит нормально использовать шасси вне ровных дорог. Т.к. механизм танкового поворота теряет свою адекватную работоспособность при отсутствии контакта с трассой любого из колес.
  В дальнейшем разработанное шасси будет использовано для создания на его основе робота способного самостоятельно передвигаться по заданным координатам. Веры в ближайший успех подобного у меня не много. Но постараемся.
   Для сильно заинтересовавшихся к статье также прикреплен ПДФ файл содержащий всю пояснительную записку и листы к курсовой работе.

ran

Начните с конца. Как всегда, это и будет начало.

RVL

Гамлет от Бендика!

ran

Здравствуйте!
Пожелание: при изменении доклада, пожалуйста, выставляйте новый "пост/ответ" "Обновлено", чтобы тема отражалась со значком "Новый".

Anatoliy

#4
Среда, марта 20, 2024, 17:10:31 Последнее редактирование: Среда, марта 20, 2024, 17:14:15 от Anatoliy
Добрый день. Используйте по возможности русифицированные названия. Не BLDC, а БДПТ (бесщеточный двигатель постоянного тока).

ran

Ну тут можно и поспорить. Мне, например, BLDC говорит гораздо больше, чем БДПТ. Но это вопрос вкуса.

RVL

Да, это вентильный двигатель! :-)

Владимир Бендик


Владимир Бендик

Добрый день. Используйте по возможности русифицированные названия. Не BLDC, а БДПТ (бесщеточный двигатель постоянного тока).
Добрый день. Я все-таки дописал используя аббревиатуру "BLDC". Приношу извинения, если вам это доставляет трудности в чтении.

Вверх