Я хочу рассказать о второй версии моей электро-механической 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. Тут есть варианты: винт архимеда, ступенчатые подъемники, шестерни. Есть о чем подумать и над чем поломать голову.

Комментарии (8)


  1. Ungla
    10.09.2019 14:59

    Круть! Ещё одна достойная печати вещица!


  1. IronHead
    10.09.2019 15:35
    +2

    Зачем здесь марсоход?
    Весь смысл таких машин в том, что все должно быть «запрограммировано» механически. Например: при поднятии штанги — она размыкает выключатель, при этом прекращает работу электромагнит, который отпускает отпускает шарик, то есть голая механика.
    Как только у этой механики появляется мозг — вся суть теряется.
    Шаговые двигатели заменяете на моторы с редуктором, логику реализуете концевыми выключателями и все.
    Подали питание и механизм начал жить своей механической жизнью


    1. nckma Автор
      10.09.2019 15:48

      Пожалуй так и сделаю в следующий раз.


    1. Sly_tom_cat
      10.09.2019 18:57

      Тоже удивился — зачем там мозги.
      Да 2 движка шаговых — перебор — как по мне так двигатель должен быть один а от него все крутится должно.

      Даже соленоид можно было заменить механическим захватом, который тягой раскрывается в верхней точке и закрывается в нижней.


      1. nckma Автор
        10.09.2019 19:37

        В принципе, теоретически вы правы.
        А вот практически мне стоило очень больших усилий все это запустить и чтобы надежно работало: чтобы согласовать потоки, чтоб к примеру на спираль не попадало больше, чем она может переварить, чтоб не вылетали за борта шары (подбор угла дорожек влияет на скорость движения шаров), чтобы при бросании с крана они падали куда нужно, чтоб не застревали на триггере и т.д.
        И сейчас наличие нескольких моторов и плата — это не усложнение, а наоборот упрощение системы. Возможно я все это переосмыслю и переделаю, позже.
        Сейчас думаю добавить еще подъемников и спусков…


  1. vladimirad
    11.09.2019 10:01

    А потом мы подумаем, как это все применить.


    1. nckma Автор
      11.09.2019 10:23

      Это же символ жизни — подъемы и падения.


  1. bisoft
    12.09.2019 10:15
    +1

    Не знаю как в Компасе в TFlex можно задать как детали взаимосвязаны и потом посмотреть, как оно все будет двигаться, если например потянуть или начать поворачивать какую то часть. Учебная версия почти не содержит ограничений и ее можно применять для хобби и 3д печати.
    В ютубе можно найти кучу примеров www.youtube.com/watch?v=ltcu9xwS3HQ