Проектирование Электро-Механической Marble Machine v2.0
Я хочу рассказать о второй версии моей электро-механической Marble Machine и о процессе ее проектирования. Про первую спиральную машину я уже писал здесь на хабре. Времени с тех пор прошло не мало, и вот, в принципе, задуманное осуществлено: два подъемника и два спуска работают совместно, как одна система, передают друг другу шары перемешивая их в случайном порядке. Честно говоря мне не все здесь нравится, кое-что требует переделки или более тонкой настройки, но я рад, что в целом у меня получилось. Результат на видео!
Я работаю программистом. При программировании часто бывает так, что неделю пишешь и отлаживаешь код, но потом, переосмыслив, просто удаляешь все, что созданно непосильным трудом за неделю, и пишешь заново за два часа уже начисто, работающее и причесанное. При разработке моей Marble Machine я столкнулся с тем, что здесь, в физическом мире, такой принцип не работает. Или работает, но слабо… или я пока не понимаю, как его заставить работать таким образом.
Здесь есть ряд проблем.
Первая проблема — это, вероятно, моя недостаточно высокая квалификация проектировщика марбл машин; считаю это временным недостатком, возможно я еще смогу прокачать свои навыки. Я использовал среду проектирования КОМПАС-3D. Сказать по правде освоение этого инструмента идет не просто. Возможно, сейчас я могу использовать примерно 2–3% возможностей КОМПАСа. Мне пришлось перечитать кучу инструкций и пересмотреть кучу демонстрационных видео на youtube. В настоящее время я научился проектировать отдельные детали, но я пока не умею в чертеже, в 3D модели соединить их в единую конструкцию, чтобы убедиться, что вращающиеся части правильно взаимодействуют, не цепляют друг друга где не нужно, что их ход достаточен. Потом, я не очень представляю себе, возможно ли в современных 3D редакторах моделирование движения свободных деталей, например, движение шара по наклонной плоскости, моделирование места падения шара и так далее. В общем, тут мне есть чему поучиться.
Я могу привести такой пример моего самообучения КОМПАСу. Еще когда я проектировал первую спиральную Марбл Машин, я столкнулся с проблемой, что не знаю, как мне сделать несколько плоскостей находящихся под небольшим углом. Легко проектировать детали у которых основные плоскости ортогональны. А что делать если мне нужны спускающаяся змейка? Я тогда придумал и использовал вот такой странный прием (ничего лучше мне тогда на ум не пришло):
Начертил на плоскости профиль спуска, затем выдавил его:
Затем отсекал о него все лишнее проецируя эскизы сверху:
Сейчас я уже понимаю, насколько трудно и глупо было использовать такой прием. Гораздо проще было бы использовать смещенные плоскости компаса, но я же тогда не умел это делать… Сейчас бы я сделал такую деталь гораздо проще.
Вторая проблема отчасти связана с первой проблемой — это время печати. 3D принтер с послойной печатью печатает довольно долго. Получается, что если я пока не умею моделировать взаимодействие деталей в софте, то для проверки работоспособности узла нужно потратить кучу времени и пластика. У меня бывало так, что я проектирую две детали, потом печатаю, а они плохо стыкуются друг с другом и нужно что-то менять в модели. А это опять расходы времени и пластика. Но пластик-то хоть не дорогой, его не так жалко, а вот время… это да, его жалко.
Третья проблема — отсутствие опыта. Многие сделанные мною ошибки происходят из наивности и неопытности. Marble Machine — это робот-автомат с бессчисленным числом состояний, если считать местоположения всех шаров отдельным состоянием. У машины много подвижных механических частей. При проектировании крана я надеялся, что я смогу соединить движущиеся пластиковые детали через отверстия в них просто винтами/шпильками с гайками на шайбах. Но оказалось, что это так не работает. Спроектированные в пластиковых деталях отверстия после печати получаются либо слишком малыми, либо слишком большими, либо быстро разбалтываются в процессе работы. Гайки даже через шайбы всегда откручиваются. Гайки самоконтрящиеся с нейлоновым кольцом улучшают ситуацию, но люфты все равно остаются неприемлимыми. Не затянуть гайку — будет болтаться, а затянуть — будет большое трение, мотор не потянет. Все это я испытал на себе пока не понял, что нужно делать по возможности правильно, а именно: везде на подвижные части нужно ставить подшипники. Такое простое решение, которое и люфты убирает и подвижность отличная, трение минимальное и ничего самопроизвольно не откручивается. Пришлось многие модели переделывать под использование подшипника. Например, вот модели двух деталей шатуна, к шаговому двигателю:
и вот:
Теперь они соединяются через подшипник. От посадочного места подшипника спроектировал паз, чтобы была возможность вставить подшипник плотно в натяг и даже есть возможность затянуть его винтом.
Вот на этих фото показаны места, где теперь уже стоят подшипники:
и еще:
Потом, следующая проблема — это жесткость конструкции. Как видите, я стремлюсь создать эдакий механический роботизированный арт-объект, и комбинация белого, черного и блестящего металла не случайна. В штанге крана я хотел поместить металлическую шпильку М4. Она должна была придать штанге нужную прочность и должна была бы блестеть «в лучах софитов» (если бы они у меня были). Однако, не получилось. С металлической шпилькой значительно увеличивается вес и инерционность штанги. Мой бедный шаговый двигатель с трудом тащил такую штангу вверх, ну, а вниз она сама чуть не падала. Здесь пришлось пойти на крайне меры: я напечатал на своем принтере пластиковую белую шпильку (белый PLA) диаметром 4 миллиметра, которую просто вклеил внутрь штанги туда, где хотел ставить металическую шпильку. Получилось хорошо. Не очень жестко, зато очень легкая конструкция. Вторая идея, которая мне пришла позже — кран должен быть с противовесом! И почему я сразу об этом не подумал? Вот тут вопрос, переделывать модель и перепечатывать всю штангу целиком или напечатать небольшое дополнение к существующей штанге и «поработать напильником»? Я выбрал второе, так быстрее — сделал отдельную деталь, которая бы содержала в себе места под подшипники и коробочку под груз — противовеса:
От штанги отпилил хвост и приклеил с помощью дихлорэтана новую деталь к старой.
Здесь на фото видно место склейки. Хотя… тут не все однозначно, ведь как сбалансировать кран? Он же имеет переменный вес, когда сбрасывает шары… Нужно сказать, что все же я недооценил вес самих металлических шаров. Они хоть и не большие, 12.5 мм, но каждый весит 8 грамм, да действуют на широкое плечо. Когда кран поднимает три шара сразу, а потом бросает их в верхнем положении, на штанге возникают упругие вибрации. И как бы мне их заранее учесть? Не представляю себе. Можно ли это как-то рассчитать в КОМПАСЕ или другой САПР?
Вообще, при разработке этой Marble Machine я столкнулся с тем, что многое работает не так, как я себе это представляю. Например, самое простое, воронка для сбора шаров. Вот тут я сделал 3D рендеринг этой детали:
Казалось бы, что тут может пойти не так? Но на самом деле, даже эта воронка работает иначе, не так, как я думал! Я сделал дно в виде части поверхности сферы и думал, что шары будут кататься по такой чаше и их скорость будет расти при движении вниз к выпускному отверстию. Но нет же! Оказывается, что шары катятся и ниже по спуску крутизна поверхности оказывается меньше, они замедляются по мере приближения к выходу. Возможно, играют роль ступеньки 0.2 мм — толщина слоя печати? Что-то это не совсем то, что я хотел или думал. Но это место по крайней мере не стал переделывать.
Еще одна важная проблема — как состыковать две марбл машины в одну? Спиральная машина у меня уже была и работает, можно ли ее оставить как есть? Чтобы согласовать по уровню поток шаров от первой спиральной машины, мне пришлось ее полностью разобрать, спроектировать в КОМПАСЕ и напечатать подставку под стойку спирали, чтоб сделать ее повыше и заново собрать машину. Потом нужно было придумать переключатель потоков, триггер, ловушку под триггером, дорожки и развороты. Вообще процесс создания был довольно интересным. У меня есть знакомый, а у него жена — художница и помню долго рисовала картину с рыбами. Прихожу к ним в гости, смотрю, нормальные такие рыбы. Через неделю прихожу —, а рыбы на той же картине уже в другую сторону плывут. Вот у меня что-то такое тоже было. Сегодня придумал и сделал, но завтра все переосмыслил и перепроектировал, напечатал другую модель, установил, испытываю.
Далее расскажу, какие еще были спроектированы детали. Ниже представлен 3D рендеринг этих моделей. Стойка крана:
На стойке предусмотрены посадочные отверстия под платы драйвера двигателя.
На стойку крана я креплю вторую деталь: держатель шагового двигателя:
Тут так же возникла непредвиденная проблема — держатель получился слишком прочный и слишком толстый. Теперь у двигателя есть проблемы с охлаждением. Возможно придется перепроектировать этот узел.
На стойке сверху винтами крепится деталь «треугольник» с посадочным местом под подшипник, для поддержки штанги крана:
Две части от штанги крана:
и вот:
Одна из самых главных частей — это переключающий триггер:
и еще, чаша, для ловли шаров с триггера:
Есть еще много других второстепенных деталей, которые так или иначе приходилось на ходу придумывать, проектировать и печатать.
Сказать по правде, после сборки всей механики, когда я перешел к электрической и к программной части проекта я даже вздохнул с облегчением, тут же все просто!
Запрограммировать FPGA плату Марсоход3bis, запустить два шаговых двигателя, подключить соленоид крана и организовать опрос герконового датчика мне показалось гораздо более простым делом, чем проектирование и реализация механики робота Marble Machine. Но программирование FPGA, это уже другая история, если кому интересно, то можно почитать здесь.
Сейчас я уже думаю о проектировании следующих типов подъемников для следующей версии Marble Machine v3. Тут есть варианты: винт архимеда, ступенчатые подъемники, шестерни. Есть о чем подумать и над чем поломать голову.