В первой части я рассказал про концепцию проекта. Во второй части разбираем конструкцию робота MIRO по косточкам (много картинок).
В самом начале говорю Спасибо всем за идеи и поддержку после первой публикации! Нужно немного времени, чтобы выстроить формат совместного сопровождения проекта. Поэтому всех, кто решил присоединиться, попрошу дать мне немного этого времени — скоро все будет!
Оглавление: Часть 1, Часть 2, Часть 3, Часть 4, Часть 5.
Как я уже упоминал в первой части, старые версии MIRO были практически лишены пластиковых деталей, выполненных с использованием 3D принтера, и были почти целиком изготовлены из листовых материалов методом лазерной резки. Применялся акрил и фанера. Плюс тут только один – относительная дешевизна небольших партий. Ну и относительно высокая скорость производства самих изделий. Но в процессе эксплуатации от такого подхода пришлось отойти. Основные причины заключаются в том, что собранные из листовых материалов детали, крепежные элементы неточны, ненадежны, несут за собой продолжительную сборку с кучей мелких шаечек, шайбочек, замочков. У всей конструкции отсутствует приятное ощущение «сбитости». Да и масса ограничений на форму и геометрию. С 3D печатью все значительно проще.
Одним из основных требований при проектировании корпуса я обозначил простоту печати – по возможности детали корпуса должны печататься вообще без поддержек. Ну или с какими-то очень простыми поддержками. Чтобы все было честно – отличного робота я смог напечатать на нашем дешевом ANET A6 прям, что называется, «из коробки».
Все проектирование выполнено в Autodesk Fusion 360.
Робот состоит из множества корпусных деталей, которые условно можно разделить на три группы:
- группа деталей, выполненных по технологии 3D печати
- группа деталей, которые выполнены по технологии лазерной резки
- серийные изделия.
Условность здесь заключается в том, что имеется ввиду наиболее очевидный способ производства деталей. Но никто не мешает напечатать на принтере детали второй группы.
Итак, робот собирается вокруг центральной платформы, выполненной из фанеры 4мм (группа 2). Т.к. в этой детали очень много отверстий и прорезей, а сама она является несущей, не рекомендуется использовать для ее производства акрил — он достаточно хрупкий.
Почти все детали соединяются между собой болтами различной длины и гайками М3. И только для крепления плат приходится применять М2,5. Печатные детали имеют полости для «запрессовки» гаек (плотного наживления).
Сверху к платформе крепятся две подложки (группа 1) под печатные платы: ARDUINO и Raspberry Pi.
Эти подложки, вместе с дополнительными полостями под гайки в креплениях мотор-редукторов, позволяют извлекать из робота и заменять любой контроллер, драйвер двигателей, регулятор напряжения – словом почти всю электронику робота, сняв одну лишь верхнюю крышку.
Подложка под Raspberry Pi с одной стороны фиксируется на два болта, а с другой стороны имеет лепесток, вставляющийся в прорезь под подложкой для платы ARDUINO. Снизу в подложки запрессовываются гаечки М2,5 для последующего болтового крепления соответствующих плат.
Снизу к центральной платформе устанавливаются крепления (группа 1) для мотор-редукторов и оптических щелевых энкодеров.
В передней части на три болтика устанавливается еще одна деталь группы 1 – держатель сервопривода камеры.
В принципе, на этом этапе можно начинать крепить электронику. На рендере не показана плата Raspberry Pi, потому что она куда-то дропнулась из проекта, но она вот там на зеленой подложке. Плата расширения показана тоже «какая-то» — как я и обозначал в первой статье – «бутерброд» может быть исполнен по разному (либо ARDUINO UNO и сверху плата расширения с ESP8266 и трехпиновыми штыревыми разъемами, либо плата ARDUINO+WiFi и плата расширения подобная той, что на картинке).
Как видно, в MIRO используются обычные дешевые «желтенькие» моторы. Это один из самых отвратительных компромиссов механики проекта. Они ненадежные, они шумные. Но они доступные. Прежде всего по наличию в любом уголке. Кроме того, к ним как известно, легко доставляются щелевые энкодеры уже после редуктора. А с учетом того, что сигнал от энкодеров по прерываниям обрабатывает простая и, опять же, доступная ATMEGA328 – это то, что нужно. Некоторые двигатели с энкодером до редуктора «положат» этот чип сразу. В общем, решение применять именно эти моторы – это болезненный компромисс. Но в MIRO мы сделали все, чтобы немножко улучшить их эксплуатационные свойства – крепления моторов плотно обнимают эти моторчики со всех сторон, уменьшая обычные для китайских наборов нарушение соосности колес и дополнительные люфты, вызванные недостаточно жесткостью корпуса редуктора. Энкодеры, как на картинке, просто вставляются в пазы печатной детали крепления моторов.
Далее к платформе крепятся 8 печатных деталей стенок внешнего корпуса (группа 1): 4 сверху и 4 снизу.
Снизу все закрывается крышкой (группа 2), в которую через переходник-проставку (группа 1) устанавливается заднее опорное колесико. Опорное колесо – серийное, распространенное, ищется по запросу «3PI N20 UNIVERSAL BALL WHEEL».
Немаленькая такая проблемка, как выяснилось, — найти нормальное опорное колесико для небольшого робота. У всех шариковых колес есть один минус – жесткий шарик, через которые на корпус робота передаются все вибрации от передвижения. И колесики с втулкой тоже все пластиковые. Мы даже разработали для MIRO свое колесо на втулке – с протектором из уплотнительного кольца стандартного типоразмера. Но его проект пока нормально не подгружали никуда. Оно не простое в изготовлении, потому что в нем используются сразу два миниатюрных подшипника. Их легко заказать из Китая, но под рукой они точно мало у кого есть. Но зато качество перемещения робота, ощущение от MIRO с этим колесом совсем другие – робот движется мягко и тихо. Кто заходил на сайт mirorobot.ru, тот мог заметить упоминание о нем в проектах.
Справа и слева, а также сзади робота вместо пластиковый печатных деталей, применяются вставки из тонкого (1 мм) ПВХ-пластика (группа 2). Для фиксации вставок в стенках внешнего корпуса есть пазы. Через боковые вставки легко добраться до USB-разъемов Raspberry Pi, а через заднюю вставку – к USB платы ARDUINO (либо ARDUINO+WiFi) без снятия верхней крышки корпуса.
В верхней крышке (группа 2) имеется отверстие для установки врезной ручки (группа 1) для переноски робота.
Сама же верхняя крышка крепится на роботе все тем же болтовым соединением (смотри главную иллюстрацию к первой публикации).
Ведущие колеса робота выполнены по технологии 3D печати, вместе с протектором, представляющим собой серийное изделие – силиконовый браслет (группа 3) диаметром 65мм. Это самый распространенный размер – если вам на какой-то тусовки подарят такой браслет – 90%, что он подойдет. Ну или его можно купить в рекламных компаниях, производящих и продающих различную брендированную продукцию («мерч»).
Спереди и сзади робота на защелках устанавливаются передний и задний модули (группа 1).
Вот для примера передний модуль SENS1.
Модули сверху никак не закрываются – просто вставляются по направляющим между нижней крышкой и центральной платформой.
Для их удобного извлечения, в деталях стенок корпуса имеются вырезы под пальцы, чтобы удобно было сжать защелки и вынуть модуль.
На рисунке хорошо видно положение модулей в роботе со снятой нижней крышкой.
В заднем модуле располагается аккумулятор (сейчас это сдвоенный 18650, 7.4В), но уже принято решение чуть увеличить глубину заднего модуля под LiPo аккумулятор 2200-2500мАч (проверено – входит).
В задней левой стенке корпуса имеется отверстие под палец (да, да, под указательный палец) для доступа к тумблеру питания. Такое решение было принято осознанно – на крышке или внешней стенке корпуса не хотелось делать тумблер, который легко случайно переключить.
Теперь о задачах (не о проблемах, потому что это все решается). Во-первых, на рендерах не показано, но в реальности внутри робота хаос из проводов (фото прилагается).
Мы частично их немного прибрали вон той черной клипсой справа, закрепленной все в те же отверстия для крепления левого мотора, но все еще хаос. Надо с этим разобраться.
Во-вторых, и это задача, связанная с первой, модули сейчас подключается достаточно убого – через технологические отверстия в центральной платформе и корпусах модулей прокидываются провода и с обоих концов сажаются на штыревые разъемы (в случае с задним модулем – аккумулятор соединяется с ответным разъемом на проводе). Это конечно не красиво.
И вот тут как не упирайся, а напрашивается единственное решение – нужна своя материнская плата. Хотя бы чисто для проброса вывода коммутационных разъемов модулей под центральной платформой (внутри корпуса «папа», из модулей торчат «мамы») – чтобы модули были полностью обособленными единицами со стандартным механическим интерфейсом. Вот этим планируем заняться. В принципе, плата будет иметь однозначно не более двух слоев, так что выполнить ее будет под силу и в домашних условиях всем желающим. А у нас станок есть.
Еще полгода назад я делал видео, иллюстрирующее процесс сборки. С тех пор конструкция несколько поменялась. Самое главное – мы отказались от нижнего центрального отсека для аккумулятора — такое его расположение без эффективного наполнения заднего модуля приводило к недостаточной устойчивости робота при торможении. Немного улучшили эргономику, облегчили детали. Но других принципиальных изменений не вносилось. Поэтому это видео хорошо иллюстрирует устройство робота. А новое делать пока не в приоритете, тем более, что именно движок анимации в Fusion 360 глючен.
Предвижу вопрос о том, почему не напечатать сразу корпус со всеми этими деталями внешних стенок и центральной платформой одной цельной деталью? Это было непростое решение – для того, чтобы дать возможность изготовить робота владельцам принтеров, с размером стола менее 205 мм по длине и ширине. Диаметр робота как раз 201 мм. Конечно, сегодня большинство даже недорогих принтеров имеют стол под 300 мм, но «на руках» у пользователей очень много принтеров с гораздо меньшей площадью печати.
Но детали для печати на больших принтерах уже готовы и будут опубликованы в ближайшее время – мы по ним делали мастер-модели для литья в силикон.
В репозитории лежит также набор деталей для печати в формате STL с толщиной слоя 0,2 мм с подготовленными легко отделяемыми поддержками (папка STLwSUPPORTS). Выключаете все поддержки в слайсере и просто ставите на печать в правильной плоскости. Где там «правильная» плоскость поможет определить документ MIRO PARTS LIST & MANUFACTURING (из этого же репозитория), в котором все детали изображены в изометрическом виде сверху/сбоку так, как если бы они лежали на печатном столе.
Ну надеюсь более или менее изложил. Я опустил некоторые мелочи, вроде отдельных деталей направляющих модулей и держателя камеры. Если есть непонятные места – пишите, буду корректировать. Ну и конструктивному обсуждению всегда рад.
В следующей части разберем ПО на стороне ESP8266.