В разработке робототехники и исследовательских проектах одной из ключевых задач для разработчиков является быстрое и стабильное управление высокопроизводительными бесщёточными приводами суставов.
В этом руководстве вы узнаете, как использовать плату разработки Arduino совместно с CAN-модулем MCP2515 для точного управления роботом-суставом CubeMars AK45-36 с помощью джойстика.
В процессе вы освоите основы подключения аппаратной части, настройку режима управления MIT и реализацию логики управления, что позволит легко интегрировать моторы CubeMars в ваши робототехнические проекты.
Перед началом убедитесь, что у вас есть следующее оборудование и программное обеспечение:
Аппаратное обеспечение:
Плата Arduino (например, Arduino Uno)
CAN-модуль MCP2515
Двухосевой джойстик
Источник питания постоянного тока и соединительные провода (jumper wires)
Программное обеспечение:
Arduino IDE
Библиотека mcp_can (предварительно установлена)
Правильное подключение является основой стабильной связи.
Необходимо обратить внимание на три ключевых соединения:
MCP2515 и Arduino (SPI-связь): Подключите модуль MCP2515 к Arduino через стандартный SPI-интерфейс (пины CS, SO, SI, SCK и т.д.).
Подключение CAN-шины (к мотору): Подключите выводы CAN_H и CAN_L модуля MCP2515 к соответствующим линиям CAN_H и CAN_L мотора AK45-36.
Джойстик и питание: Подключите сигнал оси X джойстика к аналоговому входу Arduino (например, A0).
Затем подключите мотор к подходящему источнику питания постоянного тока. Внимание: не перепутайте подключение питания мотора и CAN-сигнальных линий.
Для динамических задач управления, таких как слежение за джойстиком, настоятельно рекомендуется использовать режим MIT.
Этот режим позволяет передавать команды положения, скорости и крутящего момента в одном CAN-сообщении, обеспечивая крайне высокую скорость отклика.
Шаги настройки:
Используйте официальный модуль CubeMars USB-CAN, подключите мотор к компьютеру и откройте программное обеспечение верхнего уровня управления.
Установите CAN ID мотора (например, 0x01) и скорость передачи данных (должна совпадать с кодом Arduino, обычно 1 Mbps).
Нажмите «Войти в режим MIT».
После этого при ручном вращении вала мотора должно ощущаться заметное сопротивление, что означает успешную настройку.
В среде Arduino реализация управления мотором с джойстика проста и состоит из трёх основных шагов:
Считывание входных данных: Используйте аналоговый вход Arduino (например, A0) для считывания значений джойстика в реальном времени. Типичный диапазон: 0–1023.
Преобразование данных (mapping): Используйте функцию преобразования (например, map), чтобы линейно преобразовать значения джойстика в диапазон целевой позиции или скорости, поддерживаемый мотором AK45-36.
Отправка CAN-сообщений: Используйте CAN-библиотеку для упаковки преобразованных данных в стандартный CAN-кадр режима MIT и отправки на соответствующий CAN ID мотора.
Совет: полный пример кода Arduino, функции преобразования данных и описание протокола связи доступны в нашем официальном центре загрузок.
После завершения настройки включите питание мотора и Arduino. Перемещайте джойстик — вал мотора должен плавно вращаться вперёд и назад, следуя его движению.
Смотрите видео ниже для полной демонстрации и подробного объяснения.
В1: Мотор не реагирует после включения питания. Он не вращается при движении джойстика.
Ответ:Проверьте, была ли успешно отправлена команда Enable (включение). В режиме MIT мотор по умолчанию отключён. Сначала необходимо отправить специальное CAN-сообщение для его активации.
В2: Мотор вибрирует или медленно реагирует при управлении джойстиком.
Ответ:Обычно это связано с качеством связи по CAN-шине.Убедитесь, что CAN-сигнальные провода не проложены параллельно силовым проводам мотора. Если расстояние передачи большое, включите терминатор 120Ω с помощью DIP-переключателя на модуле MCP2515.
AK45-36 — лишь один из высокопроизводительных моторов семейства CubeMars. Независимо от того, разрабатываете ли вы квадропедального робота, гуманоидного робота, роботизированную руку или другие робототехнические платформы, CubeMars предлагает компактные и высокопроизводительные решения для приводов, адаптированные под ваши задачи.
[Узнать больше о характеристиках и размерах CubeMars AK45-36]