Как стать автором
Обновить

Мотор «от Xiaomi»

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров16K

Как известно, движение — жизнь. А пошаговое движение — надёжный путь к любой цели (даже если эта цель в простом движении по кругу). Вот и я, лениво передвигаясь по бесконечной ленте товаров китайского маркетплейса наткнулся на необычный гаджет. Называется это чудо китайской инженерии «Xiaomi Cyber Gear», и мимо трёх этих слов нельзя пройти спокойно, если проживаешь в 2024-м году.

В сущности, это и не гаджет даже, а компонент для Xiaomi Cyber Dog. Эта робо‑псина не так популярна в Ютубе и в России, как изделия от Unitree, но видимо достаточно популярна, чтобы продавать к ней запчасти. Впрочем, любителям DIY, к коим я себя причисляю, данный моторчик тоже может быть интересен.

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

Встречают в коробке, а провожают в ящике... В общем, встречает нас красивая картонная коробка, как от смартфона, не какой‑то антистатический пакетик. Внутри коробки китайская агитация, qr‑код на WiChat с кошка‑жена, радикально чёрный демпферный пенопласт и сам мотор. Тоже чёрный.

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

Самое главное, что можно рассказать про этот двигатель: это шаговый двигатель со встроенным энкодером и контроллером, взаимодействие с которым происходит по CAN-шине на скорости 1Мбит. Питается мотор от 24-х вольт, максимальное число оборотов - около трёхсот в минуту, минимальное - очень медленно. Детали можно прочитать в справочном буклете из коробки.

Xie xie!
Xie xie!

У мотора есть своё приложение-компаньон для Windows, из него можно подавать тестовые команды мотору, смотреть за показателями датчиков. Из него же мотору можно... обновить прошивку. Но я с приложением не стал связываться, так как оно на китайском целиком и полностью.

Ещё один интересный факт. Драйвер для мотора на основе socketcan я нашёл в GitHub, он был написан, внезапно, на Swift, в этот момент я узнал, что Swift для сервера существует и вполне себе жив. После недолгого этапа вкатывания мне даже понравилось. Есть в нём определённая лёгкость. Впрочем, мы не об этом сегодня собрались.

Питание и CAN-шина
Питание и CAN-шина

Драйвер взаимодействует с двигателем по CAN‑шине, позволяет управлять скоростью в режиме двигателя «speed», углом поворота и скоростью в режиме позиционирования «location», также позволяет управлять током в режиме «current», но я не пробовал, наверное, это для робо‑собаки и имитации работы мышц, а у меня был другой тип нагрузки.

Двигатель очень мощный, на мой взгляд, руками его не остановить. Энкодер точный, но не сильно точный, с ним приходится играть в «доведи меня до нужной кондиции» в несколько приёмов на разной скорости. Чем‑то напоминает... а впрочем не будем об этом.

Управлял двигателем из RPi 4 + СAN hat (но работает и с обычным MCP2515 и со встроенным в ESP32 can‑драйвером). Там же, внутри RPi писал код через VSCode Remote + Swift, как я и сказал, всё получилось довольно легко и удобно, двигатель уже описан высокоуровневыми классами и методами, думать о байтах не пришлось вовсе. Выглядит код примерно так:

let motorA = CyberGear.Motor(canID: 017, bus: canBusA)
try! motorA.runMode(.speed)
try! motorA.enable()

На видео демонстрация плавного набора скорости (в цикле и через Task.sleep(), простите, люди добрые)

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

В целом очень приятный DIY-компонент, современный и удобный. Это как раз тот компонент в проекте (о котором я никогда не расскажу) с которым не возникло никаких проблем. Подключил и забыл. Рекомендую.

Ссылка на драйвер: https://github.com/CmST0us/CyberGearKit

Теги:
Хабы:
Всего голосов 26: ↑19 и ↓7+18
Комментарии27

Публикации

Истории

Работа

iOS разработчик
19 вакансий
Swift разработчик
28 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн