Кремень КД Реклама
Кремень КМ Реклама

Как я подружился с малиновым осьминогом

rsergio
Идет загрузка
Загрузка
11.05.2017
26770
44
Техничка

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

59
Почему малиновым когда на официальном логотипе OctoPrint осьминог зеленый? Да все просто - он очень любит питаться малиной и апельсинами, а т.к. мой подсел на малину, то и приобрел соответствующий окрас :)
Как я подружился с малиновым осьминогом
Информации об OctoPrint на сайте довольно много, но она разрознена - надо собирать все в отдельных статьях, а я хочу рассказать свой небольшой путь от начала до текущего момента.

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

Вначале я пристроил имеющуюся IP-камеру Axis для наблюдения за принтером во время отсутствия дома. Уже хорошо, но в случае чего не было возможности никак повлиять на процесс. Потом я установил на планшет под управлением Android приложение GCodePrintr для возможности более удобного управления 3D принтером, но это были все полумеры, а хотелось комплексное решение.

Какие вопросы хотелось решить:
  • Не бегать к принтеру по каждому поводу, а иметь возможность дистанционно включать принтер, запускать подогрев стола и экструдера, мониторить температуру и т.д.
  • Автоотключение принтера после завершения печати.
  • Избавиться от карты памяти как носителя моделей между компьютером и принтером.
  • Возможность наблюдать за печатью через web-камеру и автоматическая запись таймлапсов для последующего анализа хода печати.
  • Более удобное управление движением по осям для быстрой подстройки уровня стола. И вообще более простое управление т.к. бегать по меню Marlin с помощью энкодера еще то удовольствие.

Почитав десяток статей по OctoPrint я понял, что надо бежать за Raspberry Pi 3 или Orange Pi. Второй вариант дешевле, но требует более глубокого погружения в тему. Первый вариант должен заработать 'из коробки' и на борту уже присутствует Wi-Fi и 4 слота USB. Т.к. не стоял вопрос сделать как можно дешевле и Raspberry Pi 3 было легко купить в соседних магазинах, то остановился именно на этой плате.

Вторая задача - это покупка web-камеры. Тут информации оказалось довольно мало. Есть информация о совместимых камерах, но не понятно какие лучше и почему. Где-то в подсознании засела информация, что нужно выбирать Logitech. Откуда я это взял уже не помню, но проанализировав таблицу совместимости и наличия камер в магазине остановился на модели C270. Потом уже узнал, что ее же продают в комплекте с официального сайта. Все удалось найти в одном месте недалеко от дома, что порадовало быстрым решением поставленной задачи.
Как я подружился с малиновым осьминогом
Очень порадовала коробка оригинальной Raspberry Pi - мелочь, а приятно :)

Карточку с OctoPint для Raspberry я уже подготовил заранее - нашел в наличии microSD на 2 Гигабайта и следуя простой инструкции все установил за 10 минут. На странице загрузки также есть подробное видео.

Для установки понадобится скачать образ OctoPrint и Etcher. Разархивируем zip файл, запускаем Etcher и переносим образ на карту памяти.
Как я подружился с малиновым осьминогом
Второй шаг - это настройка доступа к сети Wi-Fi (не требуется если будет использоваться Ethernet подключение по кабелю). Для настройки надо в файле octopi-network.txt разкомментировать строки с настройками (помечено красным) и вбить свои данные доступа к сети Wi-Fi (помечено зеленым).
Как я подружился с малиновым осьминогом
Теперь можно вставить карточку с обратной стороны малинки, найти в хозяйстве зарядку с microUSB, подключить кабель от web-камеры и принтера. Я заодно в магазине прикупил корпус для малинки, хотя потом подумал что за эти деньги можно было взять пол кило пластика FDplast и распечатать много корпусов :)
Как я подружился с малиновым осьминогом
Дальше рекомендуется с помощью Putty подключиться и сменить пароль по умолчанию, но это можно сделать позже. Теперь достаточно посмотреть на роутере какой IP адрес получила малинка, вбить его в браузер и получить приветственное окно ввода нового пользователя.
Как я подружился с малиновым осьминогом
После создания пользователя система предлагает обновится до последней версии - соглашаемся, перегружаемся и получаем готовую систему удаленной работы с 3D принтером. Остается сделать еще небольшое количество настроек и можно запускать на печать первую модель.

Web-камера подхватилась автоматически. Но качество картинки сначала не сильно порадовало - ближние объекты были не в фокусе, угол объектива захватывал только часть стола, да и крепление рассчитано скорее для размещение на мониторе. Предстояло решить две задачи - разобраться с фокусом и распечатать более удобное крепление камеры к принтеру.

С фокусом вопрос решился довольно быстро - хвала инженерам Logitech, что их камера разбирается без применения матерных слов и также просто собирается обратно. Сняв верхнюю крышку и открутив три винта становится доступна плата с установленной матрицей и объективом. Объектив уже настроен и зафиксирован каплей клея. Покрутив кольцо и сорвав фиксацию дальше можно уже подстроить фокус под нужное расстояние.
Как я подружился с малиновым осьминогом
Далее надо было закрыть вопрос с креплением. На thingiverse.com нашлось довольно много моделей под эту камеру, но ни одна не подходила на все 100%.

'Еще одна возможность попрактиковаться в SOLIDWORKS' - подумал я и приступил к моделированию крепления для своего принтера. Я не знал точного расстояния на сколько надо вынести камеру за пределы периметра и на сколько опустить, чтобы увидеть сопло под системой обдува, поэтому надо было сделать настраиваемое крепление. После моделирования вышло такая модель:
Как я подружился с малиновым осьминогом
Опять же спасибо инженерам Logitech за то, что стандартное крепление аккуратно можно снять и использовать проушину по своему усмотрению. Еще какое-то время ушло на печать и вот камера заняла свое место:
Как я подружился с малиновым осьминогом
Подстроил по изображению нужное положение и закрутил все винты.
Как я подружился с малиновым осьминогом
Модель крепления можно скачать тут. Когда начал выкладывать STL файлы то понял, что в процессе моделирования увлекся и не оптимально расположил модель в пространстве - при печати используется вид 'спереди', а модели располагались в других плоскостях и ложились на стол не оптимально. Конечно, перед печатью можно все повернуть, но негоже людей заставлять делать лишние движения.

Стал изучать как это можно поправить, потратил еще час, но так и не нашел решение. Все видео по солиду говорили, что можно переопределить плоскости. Да, это работает для работы внутри положения, но STL файлы все-равно сохранялись с координатами XY в плоскости 'спереди'. Изучая параметры сохранения файлов я наткнулся на понятие 'активная система координат'.
Как я подружился с малиновым осьминогом
Раскрутив эту тему мне удалось сохранить STL файл в нужной ориентации. Для этого идем в 'Справочная геометрия' - 'Система координат'. Указываем ребра, которые лежат в нужном направлении и потом сохраняем файл с новой системой координат.

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

На удивление все прошло гладко. В начале печати были 'сопли', которые я обычно убираю пинцетом, но тут они сами размазались соплом.
На выходе получился нормальная такая коробочка, даже несмотря на то что к принтеру не подходили :)
Как я подружился с малиновым осьминогом
Поняв на каком расстоянии мне нужно зафиксировать камеру я решил упростить держатель и перенести крепление на вертикальный профиль.
Как я подружился с малиновым осьминогом
Отлично, камера работает. Но работает на базовых настройках - с разрешением 640х480 и 10 кадров в секунду. C270 способна выдать HD разрешение 1280х720. Берем карточку, находим в корне файл octopi.txt и правим настройки USB камеры:
Как я подружился с малиновым осьминогом
Теперь картинка более привычна для мониторов формата 16:9
С одной задачей успешно справились. Дальше стояла задача управления питанием принтера. Я уже начал изучать опыт коллег, как вдруг вспомнил, что в моей системе умного дома Z-Wave есть один управляемый розеточный модуль, которому я уже давно не могу найти применение. Подключил принтер к нему и уже как минимум получил возможность управлять питанием удаленно через систему умного дома.
Как я подружился с малиновым осьминогом
Но для автоматизации надо было обучить OctoPrint управлять этим реле. Один из вариантов управления - с помощью http запросов к серверу умного дома. В этой задаче мне помог плагин PSU Contol. Выбрал управление через System Command. Прописав команду

curl 'http://192.168.2.10:3480/data_request?id=lu_action&DeviceNum=57&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1'

удалось включить питание принтера, а такой же командой с нулем на конце отключить питание.

Теперь принтер сам включается при посылки команд на прогрев стола или движения моторами и сам отключается после окончания печати. Ну и всегда можно вручную включить/отключить по кнопке в интерфейсе OctoPrint. Потребление Raspberry с питанием вебкамеры и Меги по USB всего около 4Вт, а значит можно спокойно оставлять всегда включенным и иметь возможность в любой момент запустить принтер в работу удаленно.

Система стала умнее, но это еще не все ;)

Следующим плагином стал Touch UI. Он предлагает более удобный интерфейс для смартфонов и планшетов. С помощью него можно быстро двигать моторами находясь возле принтера с планшетом, а также осуществлять все остальные действия, включая наблюдение за процессом печати.
Как я подружился с малиновым осьминогом
Также были установлены еще следующие плагины:
  • Fullscreen Webcam - позволяет по двойному клику увеличить изображение с камеры или даже перейти в полноэкранный режим.
  • Pushover - рассылка Push уведомлений на смартфон о всех событиях (окончания печати, неудачной печати, остановки для смены пластика и т.д.)
  • DisplayZ - добавляет вывод координаты Z в прогресс печати.
  • Printer Statistics - подробная статистика печати
  • DisplayProgress - вывод прогресса печати на экран принтера (по умолчанию ничего не выводится)
  • Custom Control Editor - возможность добавлять свои кнопки в интерфейс. Например, я добавил кнопку смены пластика командой M600
  • OctoPrint-Tempsgraph - улучшенный график температур



На 2-х Гигабайтной карте для файлов моделей и таймлапсов остается чуть меньше 400 мегабайт. Этого вполне достаточно, но подумал что это будет ограничивать, поэтому купил карту на 16 Гигабайт (хотел на 8, но они были дороже!) 10 класса и заново все развернул. Бонусом получил более быструю сборку таймлапсов за счет большей скорости чтения/записи карты.

В итоге типичное использование OctoPrint можно описать следующим образом:
  • Сидим за компьютером и смотрим что-нибудь интересное на thingiverse.com или создаем свое в редакторе.
  • Вдруг понимаем что уже надо готовить принтер к печати - открываем интерфейс Окто и включаем подогрев столика - блок питания автоматически включается и начинается разогрев.
  • Смотрим на графике за температурой стола и после его прогрева включаем также прогрев хотэнда.
  • Слайсим модель, сохраняем G-код и загружаем его в осьминожку.
  • Когда все прогрето или сразу запускаем на печать удаленно, или все-таки подходим к принтеру, все проверяем, протягиваем немного пластика, проверяем калибровку стола и только потом запускаем печать.
  • Контролируем первый слой и спокойно уходим делать свои дела периодически поглядывая на картинку с web-камеры. При необходимости уходим гулять с собакой/на работу/по магазинам.
  • По окончанию печати на телефон приходит push уведомление, а после остывания питание автоматически отключается.
  • Если наблюдаем в процессе печати, что края отошли или еще какая беда случилась, то останавливаем печать, выключаем питание и размышляем о случившимся...
  • При желании скачиваем таймлапс печати и смотрим как все происходило.



Обновкой доволен, но всегда остаются нерешенные задачи и пожелания.

Для себя пока выписал следующие:
  • Желательно иметь вторую камеру с общим видом, где было бы видно весь принтер, катушку с пластиком и положение головы в любой части стола. Вопрос решу просто дополнительной IP камерой, или надо C270 выносить чуть дальше, а может найти для нее линзу с более широким углом обзора.
  • Хочется подключить физическую клавиатуру, чтобы управлять принтером не только через планшет, но и быстро с помощью физических клавиш когда находишься рядом. Есть вариант использования Ардуины и матричной клавиатуры, но возможно проще будет подключить обычную маленькую USB клавиатуру. Еще вариант - прикрутить тачскрин на малинку и использовать Touch UI для локального управления.
  • Хотя в последнее время проблем с электричеством не наблюдается, но хочется обезопасить себя функцией остановки печати при пропадании электропитания. При потреблении 4Вт малинка с мегой могут от бесперебойного источника довольно долго прожить, остается решить вопрос анализа наличия сетевого напряжения и приостановки печати при его пропадании.

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

59
Комментарии к статье