Мне нравятся марбл машины. Это уже третья машина, которую я делаю. Проектирую в САПР FreeCAD и печатаю на 3D принтере. Моя первая марбл было довольно простой, вторая была посложнее. И вот я сделал третью. Постепенно, работая с 3D принтером, разрабатывая всякие механические штуки, я усвоил для себя несколько простых правил: если две детали подвижны относительно друг друга - ставь подшипник; даже если все детали разные их много, то старайся стандартизировать хоть что ни будь, например, метод соединения разнородных деталей, желоба, башмачки вертикальных опор или даже просто цвет деталей "белый низ - чёрный верх"; по возможности избегай ударных нагрузок, например, падения шариков, это создаёт значительный шум и разбалтывает механизм; мои первые две марбл машины очень страдали этими недугами; как можно меньше склеек, лучше, чтоб всё разбиралось, а чтобы соединение винт-гайка было надежным - ставь шайбу Гровера; прежде чем печатать какую-то деталь разработай и смоделируй весь механизм, где будет эта деталь стоять. Последний пункт один из самых важных. Поначалу я очень страдал от непонимания этой простой истины. Моя разработка марбл машины была очень хаотичной. Сегодня я хочу, чтобы шарики скатывались влево и здесь я поставлю ловушку, а там придумаю что ни будь. Напечатаю ловушку и путь к ней, потом что-то пошло не так.. нет пусть лучше скатываются вправо, а тут я буду делать.. а что делать ещё и сам не придумал. В результате, разработаю деталь и напечатаю, потом понимаю, что она не совсем подходит, а вот если бы у неё вот этот поворот был чуть круче, вот тогда бы.. Казалось бы, пока одна деталь печатается, ты проектируешь другую и это же экономия времени? В реальной жизни так не работает. В реальной жизни только теряешь время и портишь пластик. Нужно вычертить весь проект, все детали расставить по местам, посмотреть, чтоб они все хорошо соединялись, чтоб был приемлемый перепад высот. И вот только тогда имеет смысл начинать печатать. Так, постепенно, я освоил сборку сложных деталей во FreeCAD. Например, вот так выглядит модель винта Архимеда для марбл в сборе: А вот это сборка деталей спуска после гусеничного подъемника: Или вот снимок ну почти полностью собранной модели марбл машины: Не знаю как на хабре вставлять в статью 3D модели для просмотра. Возможно ли это? Была бы интересная фишка. Читатели бы могли вращать и рассматривать модель со всех сторон ну и всё такое.. Как вы понимаете, моя марбл машина состоит не только из пластиковых деталей. Здесь есть еще моторчики и плата управления. Я использую шаговые двигатели 28byj-48. Здесь их три: на винте Архимеда, на гусеничном подъемнике и на делителе потока. Двигатели просты в управлении и имеют небольшие габариты. Меня уже как-то критиковали, мол двигатель должен быть только один и он должен приводить в движение всю машину. Ну тем не менее, мне проще использовать несколько моторчиков. Таков мой путь. Плату контроллера я так же разработал сам в САПР KiCAD: Да, я знаю, что существуют всякие "ардуины", но мне как-то ближе и роднее ПЛИС, на моей плате стоит CPLD Altera MAX3128. Логических элементов не очень много, но для разных самоделок типа моей хватает вполне. Плата выглядит вот так: Эта плата в моем проекте управляет тремя шаговыми двигателями (а вообще-то может управлять четырьмя) и самое сложное, что здесь есть это управление делителем потока шариков. Это в центре марбл машины такой качающаяся стрелка. Там стоит простой ИК датчик. Когда стрелка идет влево "программа" в ПЛИС ожидает срабатывания датчика, после чего стрелка идет вправо на заданное число шагов и там разворачивается. Программа в ПЛИС написана на Verilog HDL и компилируется в среде Altera Quartus v13.0. На самом деле у меня большие планы на эту маленькую платку. Да, я собираюсь использовать её во всех своих марб машинах и не только. Это пока еще у меня логика работы машины очень простая. А вот когда проект будет сложнее или потребуется к примеру управление по сети или WiFi, то тогда я планирую устанавливать эту плату на Raspberry Pi или какой ни будь другой одноплатник. Я уже испытал эту возможность. Например, вот здесь на видео: Здесь платка МА3128 установленная на одноплатник Orange Pi PC2 управляет сразу четырьмя шаговыми моторчиками, а программа управления написана на питоне. Таким образом, будущие машинки смогут иметь очень продвинутую логику работы. Схему платы и некоторые ПЛИС проекты для этой платы можно посмотреть на github: https://github.com/marsohod4you/MA3128 Ну и более подробное описание МА3128 и как её программировать в среде Altera Quartus, вот здесь. Вот так получается, что для создания моей марбл машины я применил многое из арсенала своих знаний: 3D проектирование во FreeCAD, проектирование печатной платы в KiCAD, программирование ПЛИС на верилоге в САПР Altera Quartus.  Следующий этап проекта - объединить все когда-то сознанные мною Marble машины в единый живой механизм.  Программист