НТУ «Сириус»: Прототип системы управления многоногим шагающим роботом (гексаподом) на базе микроконтроллера Baikal-U
Цель проекта:
Создание рабочего макета (прототипа) платформы 18-осевого робота-гексапода для отладки кинематики, реализации программного I2C-управления на архитектуре RISC-V и тестирования распределения силового питания.
Описание задачи:
Разработка программного драйвера шины I2C (bit-bang) для управления двумя контроллерами ШИМ PCA9685 с учетом особенностей работы портов МК.
Синхронизированное управление 18 сервоприводами MG90S для реализации цикла ходьбы.
Обеспечение стабильного раздельного питания логической и силовой части механики
Математическая калибровка суставов.
Ключевые особенности реализации:
Используемый микроконтроллер:
Микроконтроллер Baikal-U (BE-U1000), ядро 0 (CloudBEAR BR-350, архитектура RISC-V), отладочная плата EVU-BA.
Алгоритмы/программное обеспечение:
В связи с отсутствием высокоуровневых I2C библиотек в базовой прошивке МК, разработан кастомный алгоритм программного I2C-драйвера (Bit-Bang) с эмуляцией открытого коллектора (чтение/запись GPIO PA14, PA15, PB8, PB9).
Написаны алгоритмы генерации пакетов ШИМ-сигналов с частотой 50 Гц.
Реализована последовательная инициализация осей (внедрены программные задержки) для сглаживания скачков тока в момент включения.
Используемые инструменты: Среда встроенного интерпретатора MicroPython (запуск из ROM-памяти МК, модуль bupy), терминал minicom, загрузка программ через REPL (Paste Mode).
Поддерживаемые ОС: Без ОС (Bare metal).
Аппаратная часть:
2 x модуля расширения ШИМ PCA9685 (I2C interface).
18 x сервоприводов MG90S.
Понижающие DC-DC преобразователи XL4016 и LM2596 для питания силовой части.
Аккумуляторы на 7.4V – 8.4V.
3D-печатный корпус, адаптированный под габариты платы BE-U1000.
Образовательный или промышленный контекст:
Проект реализуется в рамках личного инженерного исследования.
Результаты:
Успешно собрана механика всех 6 конечностей (18 осей).
Доказана возможность прямого программного управления сложной периферией (bit-bang) через интерпретатор MicroPython.
Решена задача калибровки «программных нулей» и отладки движения. Из-за ограничений текущего тестового стенда по пиковому току, ходовые испытания и калибровка проводились поочередно (с одновременной подачей питания на 3 конечности).
Выводы:
Baikal-U (ВЕ-U1000) является высокопроизводительной и надежной платформой для создания систем управления сложной мехатроникой и робототехникой.
Использование архитектуры RISC-V и встроенного интерпретатора MicroPython позволяет успешно замещать популярные зарубежные контроллеры (Arduino, Raspberry Pi Pico) на этапе прототипирования робототехнических систем с определённым уровнем знаний.
Перспективы:
Проектирование и сборка финального контура питания с использованием дополнительных модулей XL4016 для обеспечения одновременной динамической работы всех 18 сервоприводов под весовой нагрузкой.
Переход к двухуровневой архитектуре управления, где Raspberry Pi 3 будет выступать в роли вычислителя верхнего уровня (компьютерное зрение, SLAM-навигация, принятие решений), а Baikal-U — в роли контроллера реального времени, отрабатывающего плавную кинематику ног по командам от малинки (связь по UART).
Интеграция в гексапод датчиков телеметрии и газоанализатора (в соответствии с перспективной блок-схемой).
Изображения/схемы:
Фото 1: Собранный прототип

Фото 2: Схема в EasyEDA