Привет, меня зовут дядя Вова. Вероятно, вы уже читали мои статьи про тестирование. Но сегодня хочу рассказать вам о проекте, не связанном с работой — о радиоуправляемой машинке, которую я разрабатываю с нуля.
Когда‑то в статью моих коллег про хобби на удаленке попало начало рассказа об этом проекте, но сегодня хочу осветить разработку целиком. Это не тиражируемый конструктор, не кит‑комплект и не готовая модель на продажу. Но бегает она очень неплохо и в отличие от аналогов лишена лага радиоуправления. Скорее всего проект будет развиваться дальше.
![](https://habrastorage.org/getpro/habr/upload_files/9b4/6ae/116/9b46ae1166a102e2bb10dfb784d0cd5a.png)
Разработка собственной радиоуправляемой машинки с нуля началась с исполнения одной детской мечты. Как я уже когда‑то рассказывал, дожив до 30 лет, так и не успел поиграться с игрушечным транспортом на дистанционном управлении. Поэтому, вполне успешно покоряя бездорожье на собственном автомобиле, все‑таки купил модельку на батарейках.
![К слову о реальном бездорожье К слову о реальном бездорожье](https://habrastorage.org/getpro/habr/upload_files/756/d0f/891/756d0f8913d5a6f779e745ef0e854158.png)
Поведение радиоуправляемой модели на препятствиях из одеяла и ковриков чем‑то похоже на обычную машину — ее можно заставить буксовать или вытащить в раскачку. Как автомобилисту, мне было интересно попробовать различные маневры без необходимости куда‑либо ехать. Плюс в том, что проверить свои теории можно практически сразу, как только они приходят в голову. Но покупной машинке явно не хватало мощности. С этого начались апгрейды.
Первым делом я высадил две пальчиковых батарейки, которые были установлены в корпусе, и заменил их одним аккумулятором 18 650. Уже на этом этапе пришлось избавиться от бутафорского кузова и корпуса механики, который и являлся держателем батареек. С последнего я тогда снял все размеры и перепечатал под форм‑фактор 18 650.
![Покупная машинка без бутафорского кузова, но еще с держателем под пальчиковые батарейки. Покупная машинка без бутафорского кузова, но еще с держателем под пальчиковые батарейки.](https://habrastorage.org/getpro/habr/upload_files/eb6/20d/60a/eb620d60a2898a8b81111eff7123e719.jpeg)
Мощности прибавилось процентов на 20 (не удивительно - минимум 3.7 В аккумулятора 18650 против 3 В двух пальчиковых батареек). А по субъективным ощущениям машинка поехала чуть ли не в два раза лучше. Но теперь уже не хватало сцепления с поверхностью - колеса слишком легко срывались и буксовали. Так что на следующем этапе я распечатал на 3D-принтере покрышки побольше из TPU.
![Покупная машинка с аккумулятором 18650, распечатанным держателем аккумулятора и новой резиной. Покупная машинка с аккумулятором 18650, распечатанным держателем аккумулятора и новой резиной.](https://habrastorage.org/getpro/habr/upload_files/d6c/864/bee/d6c864bee37c561185eede2a49eb9a7c.png)
Колеса большого размера вполне предсказуемо нивелировали прирост мощности. С этим надо было что‑то делать. Хотелось более низкой передачи, так что я начал задумываться о создании собственного редуктора. Этот агрегат легко напечатать, но он уже не влез бы в старый «заводской» корпус модели. Так что пора было начинать всю разработку с нуля. Как минимум потому, что некоторые вещи проще сделать заново, чем переделывать.
С этими мыслями я сел прототипировать.
Редуктор
Первым делом я собрал прототип редуктора с несколькими валами и понижением 1 к 14. Благодаря такому серьезному понижению я мог бы использовать в своем агрегате достаточно слабый моторчик от оригинальной машинки — рукой его было уже не удержать.
![Прототип редуктора с понижением 1 к 14 (но уже установлен мотор, который я использовал в самосборной машинке). Прототип редуктора с понижением 1 к 14 (но уже установлен мотор, который я использовал в самосборной машинке).](https://habrastorage.org/getpro/habr/upload_files/48a/caf/b6b/48acafb6bc1d820a79454f2e0cccf48c.png)
![Пробная сборка с редуктором 1 к 14. Пробная сборка с редуктором 1 к 14.](https://habrastorage.org/getpro/habr/upload_files/e1a/49b/e54/e1a49be54fdfbf2eb8c480994bd1dc18.png)
По мощности — то, что нужно, но габариты редуктора были слишком большими. Так что в итоге я остановился на более компактном варианте с прямой передачей и понижением 1 к 2.5.
![Редуктор с прямой передачей и понижением 1 к 2.5. Редуктор с прямой передачей и понижением 1 к 2.5.](https://habrastorage.org/getpro/habr/upload_files/b98/a07/097/b98a07097bd954e3a9a48d1d827a89ea.png)
![Модель машинки с прямой передачей Модель машинки с прямой передачей](https://habrastorage.org/getpro/habr/upload_files/078/430/55c/07843055cc4e845c2001d74042e2c9c2.png)
Интересный факт про редуктор: шестерни я напечатал из разного пластика. Пришел к этому решению методом проб и ошибок. Ведущая шестерня — из SBS, а ведомая — из PLA. За счет того, что SBS более мягкий, существенно снижается шум и износ в процессе эксплуатации.
Рулевое управление
Кроме конструкции редуктора я экспериментировал с рулевой трапецией. Многие автомобилисты и не замечают, что колеса поворачиваются не параллельно. Они катятся вокруг общего центра (агрегат потому и называется трапецией, т.к. одно колесо поворачивает больше другого). Мне хотелось понять на практике, как вообще должен работать этот механизм именно на миниатюрных моделях — какие углы должна иметь трапеция на прототипе.
![Прототип рулевой трапеции. Прототип рулевой трапеции.](https://habrastorage.org/getpro/habr/upload_files/663/188/bdc/663188bdcfe51e7069b456a995546db6.png)
В своей радиоуправляемой модели я установил на рулевое сервопривод, который задает угол поворота. В покупном варианте был установлен обычный двигатель постоянного тока; как правило, его же ставят на более дешевые аналоги. Рулевую трапецию, управляющую поворотными кулаками с помощью двух тяг, после серии экспериментов реализовал по тому же принципу, что и на обычной машине.
Кстати, рулевое управление по сути является самой нагруженной частью, т.к. при ударе передним колесом в препятствие (это происходит если не постоянно, то очень часто) основная сила удара приходится либо в рулевой наконечник (уголок между резьбовой шпилькой и поворотным кулаком), либо в сервопривод.
Проблему решал в несколько этапов. До конца ее решить, конечно, невозможно (поэтому на внедорожные покатушки на реальном автомобиле я вожу с собой рулевую стяжку). Но мне удалось снизить частоту поломок:
я напечатал наконечники из PETG — он более устойчив к разломам от ударов;
перешёл на сервопривод с металлическими шестернями (на фото первая версия, с пластиковыми шестернями, у которых буквально «выбивало зубы»).
![Вид рулевой трапеции под капотом. Вид рулевой трапеции под капотом.](https://habrastorage.org/getpro/habr/upload_files/61a/e13/f25/61ae13f253407efbe99b41358959b2bf.png)
![Модель подвески в разрезе. Модель подвески в разрезе.](https://habrastorage.org/getpro/habr/upload_files/6bc/e97/954/6bce97954f31bd07052f59f3407e9ace.png)
Рама и кузов
Проектируя раму, я исходил из того, что строить модель буду на моторе от подаренного мне на запчасти струйного принтера. Это двигатель постоянного тока, который перемещает каретку вправо и влево.
Кстати, пока не разобрал этот принтер, был уверен, что такую задачу должен решать шаговик, как на 3D‑принтере. Но в том струйном принтере стоял именно двигатель постоянного тока. А для позиционирования вдоль хода печатающий головки была размещена лента с контрастными полосками. Начиная движение головы вдоль ленты, принтер считывал с помощью оптического датчика полоски и останавливался около нужной. Для меня такая схема работы была откровением. Но зато мне достался вполне приличный двигатель постоянного тока.
Конструкция получилась рамная. Плюс я люблю унификацию, поэтому многие детали спроектированы так, чтобы в итоге в проекте было минимальное количество моделей. Так я сам для себя сформулировал техническое задание. Поэтому рама состоит из пар одинаковых элементов, которые можно напечатать вместе.
![На этом фото видно пары одинаковых деталей. На этом фото видно пары одинаковых деталей.](https://habrastorage.org/getpro/habr/upload_files/131/f81/439/131f814397e1dfe3d3a37fafbdaa4e0a.png)
В пару оранжевых деталей за счет трения садится мотор. Еще две одинаковые голубые скобки, развернутые друг относительно друга, скрепляют части рамы воедино и одновременно фиксируют держатель для аккумуляторов и т. д.
![Оранжевые детали удерживают мотор Оранжевые детали удерживают мотор](https://habrastorage.org/getpro/habr/upload_files/e8d/aec/309/e8daec309ca0ff289831dae43bc75be4.png)
Переднюю подвеску держат детали, напоминающие рычаги реальной подвески. Но функцию рычагов они не выполняют — подвеска здесь жесткая. А дополнительные ступеньки позволяют выровнять раму машинки относительно горизонта. Поворотные оси колес распирает оранжевая деталь (без нее оси заваливаются внутрь), она же держит сервопривод рулевого и контрит гайки осей поворотных кулаков.
![Поворотные кулаки, “ступеньки” и рулевая трапеция. Поворотные кулаки, “ступеньки” и рулевая трапеция.](https://habrastorage.org/getpro/habr/upload_files/4d4/356/ca0/4d4356ca034defb8f7db06eefba18277.png)
![“Распорка” на штатном месте. Кстати, как раз тут видно, что рулевые наконечники - расходный материал (они тоже унифицированы). “Распорка” на штатном месте. Кстати, как раз тут видно, что рулевые наконечники - расходный материал (они тоже унифицированы).](https://habrastorage.org/getpro/habr/upload_files/957/aec/13a/957aec13a4a71d6c0d95a419220a3306.png)
![Если снять распорку, оси поворотных кулаков расходятся. Если снять распорку, оси поворотных кулаков расходятся.](https://habrastorage.org/getpro/habr/upload_files/522/125/f72/522125f72d99aee3bb315ffeb2d64656.png)
Детали рамы и кузова я старался проектировать так, чтобы печатать без поддержек. Но не во всех случаях это имело смысл. Например, распорка поворотных осей спереди получилась довольно сложной формы и ее было проще сделать с поддержками, чем перерисовывать в несколько деталей (или увеличивать габариты для получения плоскости, размещаемой на столе).
![Распорка осей поворотных кулаков - сложная форма потребовала печати с поддержками. Распорка осей поворотных кулаков - сложная форма потребовала печати с поддержками.](https://habrastorage.org/getpro/habr/upload_files/253/a2b/7bd/253a2b7bd8789fbe81c1c8327bf206f3.png)
![Видно, где я оторвал поддержки (а также шестигранные пазы под гайки, которые контрят гайки осей поворотных кулаков). Видно, где я оторвал поддержки (а также шестигранные пазы под гайки, которые контрят гайки осей поворотных кулаков).](https://habrastorage.org/getpro/habr/upload_files/82d/30c/ba9/82d30cba9b449be153340d5d59f32f10.png)
Рама напечатана из ABS. Некоторые детали я изначально делал из PLA, но мотор в ходе эксплуатации машинки активно греется, а для PLA это бывает критично. После некоторой эксплуатации у деталей, которые контактировали с мотором, ушли диаметры, так что сам мотор перестал держаться. Поэтому в том, что касается кузова, рулевого и «подвески», я полностью перешел на ABS.
Колеса
Каждое колесо модели состоит из двух деталей — диска и покрышки, которая держится на нем за счет трения. Диски распечатаны из ABS. Покрышки — из SEBS. Я пробовал и другие «резиновые» пластики, но понял, что не так важно, какой именно материал используется. Гораздо важнее, чтобы модель была пустотелая.
Выше я уже говорил, что печатал колеса побольше еще на этапе переделки покупной модели. На тот момент я еще не отработал технологию печати TPU, поэтому ту версию колес я напечатал с заполнением. И хотя сам пластик — самый мягкий из тех, что у меня есть, машинка слишком легко проскальзывала.
![Колеса с заполнением. Хотя они и сжимались руками, для машинки они были жестковаты. Колеса с заполнением. Хотя они и сжимались руками, для машинки они были жестковаты.](https://habrastorage.org/getpro/habr/upload_files/53f/52e/9c4/53f52e9c487d13384b63ec94c194f5b5.png)
Когда я сделал покрышки пустотелыми, результат оказался намного лучше.
![Мягкая покрышка, напечатанная без заполнения. Она намного мягче. Мягкая покрышка, напечатанная без заполнения. Она намного мягче.](https://habrastorage.org/getpro/habr/upload_files/205/f35/dd2/205f35dd226baf10401997e89ffee5a2.jpeg)
С учетом небольшого веса машинки, такую покрышку не надо ничем заполнять — она держится за счет жесткости бортов.
Изначально из соображений унификации для крепления всех колес я использовал шпильки М3. Но выяснилось, что на задней оси такая шпилька гнется под весом мотора и аккумуляторов. Поэтому сначала сзади, а потом и спереди пришлось перейти на М5.
Внутри передних колес в поворотные кулаки запрессованы подшипники (покупные). В первой версии модели я запрессовал по одному подшипнику с каждой стороны. Но их ширина — не более 2,5 мм, поэтому колесо на такой узкой опоре начало болтаться. Чтобы этого избежать, я перешел на двухрядные подшипники. Увеличил ширину поворотного кулака, но тем самым убрал лишние люфты.
Питание, электрика и логика
В собственной модели я решил использовать не один, а четыре аккумулятора 18 650, которые выдают от 14.8 до 16.8 В (в зависимости от состояния заряда). Поскольку управляется машинка при помощи Arduino Nano, которому нужно 5 В, питание к ней поступает через понижающий конвертер. А двигатель постоянного тока подключен к Arduino через Н‑мост.
![Отработка взаимодействия с Н-мостом Отработка взаимодействия с Н-мостом](https://habrastorage.org/getpro/habr/upload_files/498/d30/a45/498d30a455ac878ff1cf242dca5656ee.png)
Для связи с пультом управления (подробнее о котором расскажу далее) используется радиомодуль 2.4 ГГц.
Помимо основного двигателя и сервопривода, осуществляющего повороты, Arduino через самодельную плату управляет светотехникой — габаритами, ближним светом, лампой заднего хода и стоп‑сигналами.
![](https://habrastorage.org/getpro/habr/upload_files/1ec/d3b/9a7/1ecd3b9a724f6d52bf1671e978e4052e.png)
Тормоза
Отдельно хочу рассказать, как реализовал тормоза для модели. В ней нет ни дисков, ни барабанов, ни гидравлики, ни тросов, зато есть двигатель постоянного тока.
Логично было бы тормозить с помощью движения назад. Но в этом случае колеса будут прошлифовывать, а потом машина действительно поедет назад, а не остановится. Вместо этого у меня реализован своеобразный «ручник» (назовем его так, раз уж с мотором связана только задняя ось). При нажатии на него мотор начинает быстро переключаться вперед‑назад. Выглядит это как эпилептический припадок, сопровождающийся жужжанием, но машина при этом стоит на месте, а если до этого двигалась, то отлично тормозит. Ручник ведет себя прямо как настоящий — позволяет закладывать в повороты боком и выполнять аналогичные маневры.
Пульт управления
![Пульт управления Пульт управления](https://habrastorage.org/getpro/habr/upload_files/a4a/1e8/f1b/a4a1e8f1b4d8568172f005345871d928.png)
Я не стал проектировать для пульта управления красивый корпус, зато он получился довольно функциональным. Здесь также используется Arduino Nano, радиомодуль 2.4 ГГц и два покупных аналоговых джойстика. Оба они двухосевые, но для удобства управления я сделал так, что один отвечает за движение вперед / назад, а второй — за повороты влево / вправо.
![“Изнанка” пульта управления “Изнанка” пульта управления](https://habrastorage.org/getpro/habr/upload_files/932/948/f81/932948f81336fc6ad8e5bc11d6af648b.png)
У обоих джойстиков есть нажатия. Один отвечает за включение ближнего света, а на другом реализована своеобразная коробка передач. Дело в том, что с таким мощным мотором при старте сильным нажатием на газ, машинку срывает в букс. Поэтому я сделал программное ограничение. Изначально (на стоящей машине) вперед‑назад можно выжать только 50% мощности, т. е. максимальное отклонение джойстика соответствует только половине мощности мотора. При нажатии на джойстик это ограничение снимается. Получается своего рода цифровая вторая передача — максимальное отклонение джойстика начинает соответствовать 100% мощности.
Дополнительно на пульте есть кнопка ручника, о механизме работы которого я рассказывал чуть выше.
![Желтая - кнопка “ручника”. Желтая - кнопка “ручника”.](https://habrastorage.org/getpro/habr/upload_files/ae0/4b8/0d0/ae04b80d02f2d3afc6f79fc47fc4c82b.png)
Питается пульт от одного аккумулятора 18 650. Соответственно здесь используется уже повышающий конвертер, который преобразует 3.7–4.2 В (в зависимости от состояния заряда аккумулятора) в 5 В для Arduino Nano.
Видел аналогичные разработки, в том числе в живую на фестивале 3D‑печати в Москве. Не без гордости за свой проект отметил, что моя машинка шустрее реагирует на команды и не лагает. Все потому что протокол радиосвязи для пульта я разрабатывал сам с учетом всех оптимизаций, а не скачал первую попавшуюся прошивку из интернета. Мне удалось добиться еще и очень низкого энергопотребления — не более десятка миллиампер. По примерным подсчетам одного аккумулятора 2 А‑ч должно хватить надолго.
А что дальше?
![Модель машинки в разрезе Модель машинки в разрезе](https://habrastorage.org/getpro/habr/upload_files/d52/f67/8c8/d52f678c80c572103d05baab15547469.png)
Машинка ездит и радует, и, конечно, у меня масса планов по развитию проекта. Правда в связи со строительством дома и работами по ремонту одной из моих полноразмерных машин (https://www.youtube.com/@fix‑and‑run/) на радиоуправляемую модель почти не остается времени.
Проект определенно требует эволюции. Как минимум, машинке нужна независимая подвеска. А еще хочется сделать честный полный привод — с карданами и т. п., а не с двумя моторами — хотя я уже понимаю, что его будет очень тяжело реализовать из‑за габаритов печатных деталей (на своем принтере я не могу распечатать сколь угодно малые крестовины).
Также машинку можно дополнить разными датчиками. Например, у меня есть для Arduino довольно точный датчик дистанции, который показывает расстояние до сантиметра. Изначально брал его для гаража, чтобы повесить на стене что‑то типа обратного парктроника — сделать экран с отображением расстояния от этой стены до бампера, заметный с водительского места. Но гараж поменял и теперь это уже не актуально.
Я не хотел разламывать существующую модель, чтобы сделать ее донором для следующей версии. Второго мотора от струйного принтера у меня не было, и я заказал аналог с Китая. Правда, ошибся с названием модели, и мне пришел мотор примерно в три раза больше по размерам и мощности. К нему потребовался другой Н‑мост, рассчитанный на более высокие токи. И он у меня уже есть. В итоге следующая модель будет довольно «злая». Но я уже знаю, как разместить компоненты, чтобы не сильно увеличивать ее габариты.
Автор: Владимир Васяев
P. S. Мы публикуем наши статьи на нескольких площадках Рунета. Подписывайтесь на нашу страницу в VK или на Telegram‑канал, чтобы узнавать обо всех публикациях и других новостях компании Maxilect.
Комментарии (15)
Kotofay
00.00.0000 00:00+6При нажатии на него мотор начинает быстро переключаться вперед-назад.
А можно просто закорачивать мотор через мост одновременным включением верхней или нижней ветви. Называется динамическое торможение двигателя. Если есть какая то инерция то можно сделать не просто закоротку а через балластное сопротивление, тогда двигатель не будет становиться колом моментально.
Заодно и шестерни не будут страдать.
lgorSL
00.00.0000 00:00В передней подвеске обычно стараются делать так, чтобы ось вращения колеса при поворотах руля проходила примерно через центр площади контакта - тогда при нагрузках типа наезда на кочки на рулевую тягу не будут действовать силы.
Для радиоуправляемой машинки, наверно, неактуально, но если уж делать "реалистично", то и это можно поправить. В жизни эффект достигается в том числе и тем, что ось поворота колеса не вертикальная, а немного наклонена на 5-10 градусов (и в поперечном, и в продольном виде)
У той модельки что уже есть - можно попробовать сделать диски с другим вылетом и вдвинуть поворотный механизм внутрь колеса.
P.s. разный угол поворота передних колёс называется углом Аккермана.Felan
00.00.0000 00:00Я вот тоже хотел спросить, а почему угол кастера не сделали? Раз при ударах такая нагрузка большая? А если еще и подпружинить при этом, будет почти как у взрослых :)
Maxilect Автор
00.00.0000 00:00Кастор подразумевает подвеску. Как я уже писал у этой версии нет подвески.
Felan
00.00.0000 00:00Ну я не спец конечно, но почему бы его подразумевать вообще что либо такое? Он нужен просто для того, что бы вектор усилия на колесо при ударении с неровностями как раз развернуть так, что бы не было момента. А подвеска там или ничего, какая разница?
aydahar
00.00.0000 00:00А какова цель итоговая? Сделать именно всё самому с нуля?
Так то, по RC моделям мирового опыта более чем достаточно, в том числе есть отличные опенсорс проекты полностью 3d-печатных моделей (с рабочей подвеской и т.п.)
Ну и всякие мелочи, типа шестерней было бы сильно проще заказывать на том же Али, их полно под любые параметры.
На счёт пульта управления - посмотрите классические для RC-авто пульты пистолетного типа - они сильно удобнее. Кстати, а управление пропорциональное?
Maxilect Автор
00.00.0000 00:00По поводу управления... Если имеется в виду — сильнее жмёшь быстрее едет, то да. Как я уже писал для этого делал ограничитель скорости до 50%.
По поводу итоговой цели - это философский вопрос. Наверное, да. Персональный челлендж.
A-xyz
00.00.0000 00:00Остановить моторчик постоянного тока можно замыканием его выводов друг на друга, это было подсмотрено в одной телепередаче про японских школьников и их соревнования роботов.
MiguelDiaz
00.00.0000 00:00По поводу шин. Возможно вам будет интересно - только вот после вашей статьи увидел на муське свежий материал "Фотополимерная смола ERYONE Flex. Печатаем шины" от 20.02.2023, 08:39
SuperTEHb
Так а что за радиомодуль всё-таки?
И ещё вопрос: пробовали ли ПЭТг для редукторов? Лично у меня пластик показал себя простым для печати, но механически стойким и довольно прочным. Даже просто уголки сгладить наждачкой оказалось не такой уж и простой задачей.
dmitryrf
Скорее всего NRF24 или его аналог.
Maxilect Автор
Да, именно NRF24L01+ -- 2.4GHz radio module
Maxilect Автор
Пробовал разные сочетания, но как уже писал, идеальное сочетание - PLA-SBS