среда, 7 сентября 2016 г.

6.3. Как устроен 3D-принтер и что он делает

Урок: 6.3. Как устроен 3D-принтер и что он делает

Транскрибация урока: Теперь приступим к рассмотрению нашего 3D принтера. По сути, он из себя представляет станок с числовым программным управлением. Суть работы таких станков в целом заключается в том, что некий рабочий орган перемещается по двум или более координатам, а управление всем этим делом осуществляется программно, то есть не человек руками осуществляет все манипуляции. В нашем случае рабочим органом является экструдер, который плавит подаваемый в него пруток, и, таким образом, вытекающая из-под него нитка оказывается в нужных местах, после чего застывает, и в итоге мы получаем объемное изделие. Вообще, координатные станки могут быть, например, двумерный плоттер или режущий станок с, например, лазером или фрезерный станок — в общем, их великое множество. В нашем случае здесь не только 3 оси, по которым происходит перемещение, но также четвертой осью можно считать систему подачи прутка в экструдер. Такая технология печати называется FDM — fused deposition modeling — когда какой-то материал наплавляется слой за слоем сам на себя, и вот получается такая вырастающая модель. Вообще, технологий 3D-печати существует множество, например: стереолитография, когда фотополимер засвечивается ультрафиолетом в нужных местах и там затвердевает, или технология SLS, которая позволяет работать даже с металлами, там очень мелкий порошок спекается лазерным лучом, опять же, в нужных местах. Ну, и другие технологии. Наш принтер происходит из семейства reprap — это такой проект, где одной из идей является максимальное распространение, максимальная доступность подобных станков, 3D-принтеров, а другая идея заключается в том, что на самом таком 3D-принтере можно изготовить части для другого 3D-принтера. Если присмотреться к нашему, можно увидеть, что некоторые крепления, те, которые серого цвета, напечатаны на точно таком же принтере. На самом деле, при желании вы можете сами дома собрать такой же принтер либо из готового конструктора, как в нашем случае, либо раздобыв необходимую электронику, а корпус смастерив самостоятельно из материалов, доступных на любом строительном рынке. Итак, еще раз скажу, в чем заключается принцип его работы. Вот сюда, в экструдер, протягивается пластиковый пруток, который там расплавляется, и из тоненького сопла вытекает горячая расплавленная нитка, которая налипает в то место, где сейчас расположен экструдер. Соответственно, он может перемещаться по оси Х, ось Y сама перемещается под ним — это вот этот стол, и также может подниматься по оси Z, по вот этим вот винтовым передачам. Таким образом, вылезшая нитка прилипает к месту под ней: это либо стол, который нагревается для лучшего прилипания, либо предыдущий слой. И, таким образом, слой за слоем деталь наращивается. Давайте внимательнее посмотрим, какие детали вообще в этом принтере используются, чтобы это все работало. Ну, во-первых, привод по трем осям осуществляется за счет четырех шаговых двигателей: один из них перемещает нас по оси Y, другой — по оси Х, и сразу два перемещают по вертикальной оси. Чтобы не было перекосов их используется 2. Плюс пятый двигатель отвечает за четвертую ось, за протяжку прутка. Затем принтеру нужно понимать, где находятся сопла, и для этого у него есть 3 концевика, концевых выключателя — по сути, просто кнопочки, которые нажимаются теми или иными частями принтера при перемещении, и, достигнув концевиков, он понимает, что он достиг... достиг 0 по той или иной оси, то есть он может припарковаться, и от того..., припарковаться, то есть приехать в 0 по всем осям и, начиная с этого места, отсчитывать свои координаты. Затем у нас есть нагреваемый стол. Как я уже говорил, его нагрев нужен для прилипания первого слоя. И, естественно, нагревается сам экструдер, который плавит пластик. Для того чтобы можно было этим нагреванием управлять, под столом и рядом с экструдером есть датчики температуры. И, по сути, на этом электроника заканчивается. Еще есть кулер, который может пригодиться для охлаждения деталей с малой площадью сечения. То есть если у вас слой получился очень маленький, нужно скорее его остудить, чтобы следующий слой, который будет на него наплавляться, не стекал вместе с ним вниз. Все это управляется с помощью электроники, расположенной вот здесь вот. Там стоит Arduino Mega, на ней еще одна специальная плата — ну, на это мы сейчас посмотрим отдельно. А питается вся конструкция от такого вот блока питания обычного, как используется в настольных компьютерах. Давайте взглянем на управляющую электронику. В ее основе лежит Arduino Mega, которая тоже Arduino, но более мощная и с гораздо большим количеством портов ввода-вывода. И на нее ставится вот такая плата расширения, ее называют RAMPS, на ней разведено все, что касается управления 3D-принтером. Во-первых, чтобы перемещать шаговые двигатели нам нужны также драйвера. Здесь используются вот такие маленькие драйвера, под них здесь есть посадочные площадки. Также здесь есть схема управления питанием. Сюда заходит питание с блока питания, и отсюда же питание раздается для всех моторов, для нагревательных элементов и для всего остального. Сюда же подключается кулер, и сюда же подключаются датчики: датчики температуры и концевики. Вот такая вот нехитрая схема. Предлагаю ее зарисовать, как мы это обычно делаем. Итак, что у нас есть здесь в физическом мире? Это 5 шаговых двигателей, я даже не буду рисовать их все, напишу «умножить на 5». Это концевые выключатели. Это датчики температуры. И это 2 нагревательных элемента. Шаговики подключаются через драйвера, нагревание также происходит опосредованно, то есть мы не греем подложку прямо напряжением с пина Arduino. Ах да, и также я забыл кулер. {{РИСУЕТ}} В общем, здесь есть у нас куча посредников, размещенных на плате RAMPS. {{РИСУЕТ}} О том, что происходит вот в этой программной части, я вам покажу тот самый скетч, который заливается в Arduino Mega, который управляет 3D-принтером. Я даже не буду ничего комментировать. Возможно, для вас это будет стимулом лучше разобраться с Arduino и со всеми аспектами программирования и работы координатных станков, потому что, на самом деле, для того чтобы грамотно перемещать рабочий орган далеко не достаточно просто вращать моторы. Здесь еще нужно помнить о том, что все это работает в неидеальном физическом мире, где моторам нужно дать верное ускорение, верно их затормозить, учесть нюансы того, что могут возникать разнообразные, там, резонансы и так далее — в общем, управление далеко нетривиальное. Обращу ваше внимание, что в этом проекте не единственный скетч на 2000 строк, здесь много-много присоединяемых файлов. На досуге вы можете поизучать их, их можно найти в Интернете и просто почитать. Вернемся к нашей схеме. Мы уже увидели, из чего 3D-принтер состоит, зафиксировали на привычной схеме. Осталось понять, каким образом все же происходит печать. Здесь у нас есть связь с компьютером через тот же самый последовательный порт, с которым мы работали на протяжении всего курса. И компьютер отправляет туда G-код. G-код — это стандарт в работе с ЧПУ-станками, это такой язык, набор команд, который служит для сообщения станку, ну, в нашем случае 3D-принтеру, куда ему нужно перемещаться и какие действия нужно выполнять: там, нужно ли ему нагревать экструдер, например, или остужать, или нужно ли протягивать пруток и так далее. Как G-код попадает в 3D-принтер? На компьютере установлен специальный управляющий софт, на который мы чуть позже посмотрим, и он, этот софт, отправляет G-код в Arduino. Откуда же появляется G-код? G-код появляется после обработки 3D-модели в специальной программе, слайсере. Она берет 3D-модель и превращает ее в набор координат, то есть разрезает ее на слои, и каждый слой представляет в виде набора координат. На самом деле, работа со слайсером — это одно из самых тонких мест во всем процессе производства деталей, потому что от его настроек зависит и качество, и скорость производства деталей. В его настройках указываются все скорости перемещения, а они различаются для разных типов работы, например, перемещение в холостую — быстрое, рисование контура — медленное, заполнение детали — более быстрое, чем рисование контура, но более медленное, чем перемещение. Заполнение тоже бывает разное: оно может происходить по разной схеме, и степень заполнения тоже может быть разная. Мы также чуть позже посмотрим настройки слайсера. Ну и чтобы слайсеру было что резать, ему нужна модель, — модель, которую можно подготовить в любой программе, подходящей для редактирования 3D-моделей. Это могут быть инженерные системы автоматического проектирования, могут быть художественные программы для дизайнеров 3D-моделлеров. Отдельно мне хочется упомянуть про такую систему, OpenSCAD. Кстати, она бесплатная, можете скачать. Там модель создается не путем работы мышкой, не в визуальном редакторе, а путем набора команд, то есть модель описывается командами, координатами, преобразованиями частей деталей и так далее. Интересное и, мне кажется, полезное умение таким образом создавать модели. Ну, в общем, нас интересует, что тот или иной редактор выдает на выходе файл формата .stl. Это один из стандартов трехмерных файлов. И, значит, этот .stl попадает в слайсер, слайсер превращает его в G-код, G-код через управляющую программу отправляется в Arduino, и дальше Arduino вот этим вот гигантским скетчем делает свое дело: крутит шаговики, нагревает и остужает экструдер, и, таким образом, мы в итоге получаем деталь. Сейчас мы будем переходить к собственно созданию детали. Но прежде хочется упомянуть о том, что, придумывая и создавая деталь, нужно учитывать особенности технологии, которой мы пользуемся. В нашем случае, когда мы используем FDM 3D-печать, нужно помнить о нескольких вещах. Ну, кроме того, что мы печатаем пластиком, и это накладывает известные ограничения на возможности деталей: это не то же самое, что вырезать ее из дерева или отлить из металла. Она будет создаваться послойно, то есть ее прочность в разных осях будет разная. Например, если мы захотим между слоями закрутить шуруп, скорее всего, деталь в этом месте треснет. Ну, конечно же, опять же это зависит от настроек, насколько плотно напечатана деталь. Затем печатается она путем выдавливания прутка из экструдера и налипания прутка на предыдущий слой. Соответственно, если мы хотим, например, напечатать арку, в верхней ее части вылившемуся пластику не на что будет опереться, то есть он просто провиснет вниз. Поэтому нужно либо избегать таких мест, либо пользоваться специальными ухищрениями, такими как создание поддержек, то есть элементов детали, которые будут напечатаны, но которые не относятся к собственно, к собственно детали, к той детали, которую мы хотим получить. Они могут быть автоматически сгенерированы тем же слайсером, а потом после получения деталей мы можем просто механически их удалить, они нужны только на этапе печати, чтобы какая-то часть детали, чтобы пластик для какой-то части детали мог на что-то опираться. Также можно вспомнить о том, что из-за слоистости внешний вид может быть не самым приятным, особенно, если это мелкая деталь, и ее нужно будет внимательно разглядывать, но здесь на помощь могут прийти всякие методы постобработки, например, механическая постобработка с помощью наждачной бумаги или надфиля или даже химическая. Многие используют ацетоновую баню для придания детали, напечатанной из АБС-пластика, гладкости. Ну а теперь давайте придумаем какую-нибудь деталь.

Часть: Видео

Модуль: Как создать новый предмет за час

Описание модуля: Научившись управлять шаговым двигателем, можно создавать устройства, которые будут делать очень точные перемещения. Например, 3D-принтер, который будет рассмотрен, а затем использован для печати детали.

Курс: Строим роботов и другие устройства на Arduino. От светофора до 3D-принтера

Описание курса: На протяжении тысячелетий люди усовершенствовали орудия труда, изучали силы природы и подчиняли их себе, использовали их энергию для работы машин, а в прошлом веке создали машины, которые могут управлять другими машинами. Теперь создание устройств, которые взаимодействуют с физическим миром, доступно даже школьнику.

Наш курс состоит из серии практических задач про создание вещей, которые работают сами: изучают мир, принимают решения и действуют – двигаются, обмениваются данными друг с другом и с человеком, управляют другими устройствами. Мы покажем, как собирать эти устройства и программировать их, используя в качестве основы платформу Arduino.

Пройдя этот курс, вы сможете создавать устройства, которые считывают данные о внешнем мире с разнообразных датчиков, обрабатывают информацию, получают и отправляют данные на ПК, в Интернет, на мобильные устройства, управляют индикацией и движением. Создание устройств будет включать проектирование, изучение компонентов, сборку схем, написание программ, диагностику. Попутно с созданием самих устройств вы сделаете визуализацию на ПК, создадите веб-страницу, которую будет демонстрировать одно из ваших устройств, а также разберетесь с устройством и работой FDM 3D-принтера.

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

Курс не требует специальных знаний у слушателей, доступен даже ученикам старших классов средней школы. Плюсом будут навыки программирования и владение английским языком на уровне чтения технической документации, однако обязательным это не является.

Весь курс посвящен практике и самым лучшим решением для вас будет раздобыть электронику, повторять показанные примеры и экспериментировать самостоятельно.

Программа:
  • Неделя 1 Один старый и много новых знакомых
  • Неделя 2 Контроллер изучает мир
  • Неделя 3 Цель обнаружена
  • Неделя 4 Как полить цветок из другого города
  • Неделя 5 Мобильный робот
  • Неделя 6 Как создать новый предмет за час
Преподаватель: Алексей Перепелкин (1), Дмитрий Савицкий (2)

Описание преподавателя: (1) Алексей Перепёлкин занимается развитием робототехники на базе ЛИОТ МФТИ. В 2012 году открыл для себя новое захватывающее чувство – когда устройство, которое сам построил и запрограммировал, работает. Свернул с финансовой дорожки и создал кружок робототехники для подростков. Готовил их к соревнованиям. Стал посещать конференции, а затем проводил мастер-классы для тех, кто тоже хочет организовать занятия. Совместно с коллегами в 2013 году разработал новые соревнования – Робопрофи – для конкурса Робот для жизни и провел их. В 2014 году впервые провел Arduino-номинацию на фестивале Робофест, а для российского финала Russian Robot Olympiad 2014 сделал творческую категорию. С тех пор эти соревнования стали регулярными. Летом 2014 провел двухнедельную мастерскую в детском лагере Никола-Ленивца, а затем преподавал в выездной школе, посвященной программированию и робототехнике, которую провели ABBYY и Яндекс. В 2015 году стал руководителем направления робототехники в GoTo Camp, выездных школах, где участники создали десятки проектов, от прототипов умных домов и операторских тележек до робота-бубниста и принтера для незрячих. В 2014 году с коллегами начал проект Роболабы: мероприятия для школьников и студентов, где участники параллельно решают усложненные задачи, а затем проводят рефлексию сделанной работы и оценивают чужие в ходе серии мероприятий.

(2) Физик, научный сотрудник, выпускник МФТИ. Запустил кружок робототехники в 2011 году. Рассказал Алексею Перепелкину о том, как здорово вести кружок робототехники. Рассказал об этом еще целому ряду людей. Побеждал со своими командами на соревнованиях. Проводил проектную работу с участниками исследовательской выездной школы МКШ с 2013 года, где руководил реализацией физических и робототехнических проектов, например, «Вслед за солнцем», в котором изучалась эффективность динамической ориентации солнечных батарей на солнце. Вместе с коллегами разрабатывал и был судьей Робопрофи. Участвовал в подготовке проекта Роболабы. Вновь пришел в МФТИ для проведения факультативного курса «Основы создания киберфизических устройств»

Организатор: Лаборатория инновационных образовательных технологий МФТИ (1), Лаборатория инновационных образовательных технологий МФТИ (2)

Описание организатора: (2) Московский физико-технический институт (неофициально известный как МФТИ или Физтех) является одним из самых престижных в мире учебных и научно-исследовательских институтов. Он готовит высококвалифицированных специалистов в области теоретической и прикладной физики, прикладной математики, информатики, биотехнологии и смежных дисциплин. Физтех был основан в 1951 году Нобелевской премии лауреатами Петром Капицей, Николаем Семеновым, Левом Ландау и Сергеем Христиановичем. Основой образования в МФТИ является уникальная «система Физтеха»: кропотливое воспитание и отбор самых талантливых абитуриентов, фундаментальное образование высшего класса и раннее вовлечение студентов в реальную научно-исследовательскую работу. Среди выпускников МФТИ есть Нобелевские лауреаты, основатели всемирно известных компаний, известные космонавты, изобретатели, инженеры.

Категория: Компьютерные науки

Описание категории: Специализации и курсы по компьютерным наукам посвящены разработке и дизайну программного обеспечения, алгоритмическому мышлению, человеко-компьютерному взаимодействию, языкам программирования и истории вычислительной науки. Курсы в этой широкой области помогут вам мыслить абстрактно, методически подходить к проблемам и вырабатывать качественные решения.

Тематика: Разработка ПО

Материал:



Практика
Если у вас есть дополнение Киберфизика.Больше движения, вы можете исследовать работу с шаговым двигателем на практике. Показанный скетч лежит в архиве w6_sketch.zip https://drive.google.com/open?id=0B6zopUwNtrV0LTBUdlFpRldGcWc

Эта обзорная неделя предназначена не только для вдохновения вас на использование 3D-принтера, но и для того, чтобы вы могли немного отдохнуть и сосредоточиться на на финальном тесте и задании про комбинации.

Ссылки на материалы
Драйвер шагового двигателя в виде Troyka-модуля http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:troyka:stepper

Вы можете не только проектировать детали самостоятельно, но и найти тысячи готовых моделей на Thingiverse http://www.thingiverse.com/

RepRap http://reprap.org/wiki/RepRap/ru

Инструмент для программирования моделей OpenSCAD http://www.openscad.org/

Скетч https://drive.google.com/open?id=0B6zopUwNtrV0cWFpWmFfNTZzTTg, управляющий 3D-принтером