Мой первый KitRover: попытка сделать машинку с управлением по сети. (часть 1)
- суббота, 22 августа 2026 г. в 00:00:15
Данная статья берет свое начало из статьи (Покрути это колесо).
После первой удачной попытки покрутить колёсами, о которой писал в предыдущeй статье, я начал думать о том, какой я хочу видеть свою сборку: из чего собирать, чем управлять, как делиться. И на тему последнего у меня две мысли...
Возможность собрать ровер из готовых модулей, которые можно найти на известных площадках. Требования в электронике на уровне соединения проводов, чтобы мог собрать и ребёнок.
Уменьшить порог входа, используя минимальное количество комплектующих, которые заставят сборку ездить по камнате. Увеличить доступность за счет дешевизны комплектующих при расширении ровера разными модулями.
Я приверженец быстрого старта, поэтому хотелось иметь быстрый и простой запуск, без ввода команд в консоли, как это сделано в сборке Keyestudio. Возможность прошить микроконтроллер простым drag-and-drop, как это делается с файлами .uf2, хороший ориентир для этого пункта, а для настройки одноплатника должно хватить записи OS на SD Card.
Прежде чем начинать, нужно было сперва определиться с тем, каким хочется видеть результат. Первым делом вспомнил о продуктах Amazon prime, Uber и Яндекса, но все они сделаны для конкретной задачи, а мне хотелось чего-то универсального, с возможностью добавлять или убирать какие-либо части, или работать с несколькими модулями в паре.

Фантазируя о том, как я в солнечный день иду с ПВЗ, а мои заказы трясутся в собственном ровере, напомнило мне доставщика из Яндекса. Так решил, что начну с большой версии. Я понимал, что, если не покручу это колесо, то двигаться дальше в проекте нет смысла.
Прошерстив доску объявлений, я приобрел мотор-колеса и плату управления ZS-X11H v1 для работы с ними.

Для запуска колеса мне потребовалось замкнуть jump'ер, чтобы контроллер принимал сигнал с внешнего PWM, и соединить провода:
Колесо | ZS-X11H v1 | Raspberry Pico | Блок питания |
Blue | MA | ||
Green | MB | ||
Yellow | MC | ||
VCC | 36V | ||
GND | GND | ||
Hall data | Hall signal | ||
Reverse pin | GPIO 2 | ||
Break pin | GPIO 3 | ||
P: Signal input | GPIO 4 (PWM) | ||
GND | GND |
Для подключения Hall data пришлось разобрать колесо и подогнать соответствия букв на плате с цветами проводов. Пины GPIO условны, главное для Signal input использовать PWM-pin.
Раз колеса начали вращаться, настало время соединить их вместе и иметь стенд для разработки. Главная задача - это сделать просто, дёшево и, по возможности, надежно. Использовать крепления как в гироскутерах мне не хотелось, как и хомуты для вала колеса, т. к. это съедает клиренс. Также хотелось спрятать сам вал, т.к. из него выходит кабель к плате управления. Фрезеровщика в моём городе не нашлось, да и мастера из других городов называли цену, которая меня огорчала и была нецелесообразна на данном этапе.
Возникшая идея для крепления колес требовала куска трубы, её нарезки и расточки у ближайшего токаря. Прежде чем прийти к нему с объяснением того, что я хочу, да и иметь возможность покрутить идеи, рассмотреть их с разных сторон, пришлось потратить пару вечеров на изучение 3D-моделирования.
Решение простое: засунуть вал в трубу и поджать. Для этого нужно:
8 резьбовых заклёпок;
8 гужонов;
4 куска полосы;
4 куска трубы после расточки и снятия части под зажим.
Выглядит решение следующим образом:


Каркас для ровера решил делать из профильной трубы 30x15x1.5 с запилами под 45°. Накидал делати в 3D и сделал сборку:

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



Для удобства я взял Raspberry Pico, который уже умел управлять колесами. Устройством, которое передавало бы ему команды, а также позволяло посмотреть всё это в деле, я выбрал Raspberry Pi 4B. Накидав код для отправки в UART, получил следующий результат:
Здесь я попытался вспомнить и записать этапы проекта, проходившие осенью 2024 года. Как развивался проект дальше, я расскажу в следующих частях повествования. Мне удалось настроить управление ровером и побегать за ним, пытаясь предотвратить его столкновение с автомобилем, т.к. после удаления от меня на какое-то расстояние, случилась panic() в Go, и связь с устройством потерялась. Для управления продолжаю работать над мобильным приложением на Flutter & Dart, а прошивку для микроконтроллера пишу на TinyGo.
Это моя вторая статья, поэтому не стесняйтесь поддержать. Если данная тема кому-то интересна, дайте знать в комментариях. Любопытно мнение о проделанной работе.
Благодарю за прочтение.