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

Подписаться на 3Dtoday
rsergio
Идет загрузка
Загрузка
11.05.17
4020
43
печатает на RepRap
Техничка
44
Почему малиновым когда на официальном логотипе OctoPrint осьминог зеленый? Да все просто - он очень любит питаться малиной и апельсинами, а т.к. мой подсел на малину, то и приобрел соответствующий окрас :)
2d75c1f1e8d33d3c631fd594fbdc2e12.jpeg
Информации об OctoPrint на сайте довольно много, но она разрознена - надо собирать все в отдельных статьях, а я хочу рассказать свой небольшой путь от начала до текущего момента.

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

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

Какие вопросы хотелось решить:
  1. Не бегать к принтеру по каждому поводу, а иметь возможность дистанционно включать принтер, запускать подогрев стола и экструдера, мониторить температуру и т.д.
  2. Автоотключение принтера после завершения печати.
  3. Избавиться от карты памяти как носителя моделей между компьютером и принтером.
  4. Возможность наблюдать за печатью через web-камеру и автоматическая запись таймлапсов для последующего анализа хода печати.
  5. Более удобное управление движением по осям для быстрой подстройки уровня стола. И вообще более простое управление т.к. бегать по меню Marlin с помощью энкодера еще то удовольствие.
Почитав десяток статей по OctoPrint я понял, что надо бежать за Raspberry Pi 3 или Orange Pi. Второй вариант дешевле, но требует более глубокого погружения в тему. Первый вариант должен заработать "из коробки" и на борту уже присутствует Wi-Fi и 4 слота USB. Т.к. не стоял вопрос сделать как можно дешевле и Raspberry Pi 3 было легко купить в соседних магазинах, то остановился именно на этой плате.

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

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

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

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

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

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

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

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

На удивление все прошло гладко. В начале печати были "сопли", которые я обычно убираю пинцетом, но тут они сами размазались соплом.
На выходе получился нормальная такая коробочка, даже несмотря на то что к принтеру не подходили :)
c31125732dab0bc781f962fcb1301c52.JPG
Поняв на каком расстоянии мне нужно зафиксировать камеру я решил упростить держатель и перенести крепление на вертикальный профиль.
0157436aef4f4b631a25380afc8ad47a.JPG
Отлично, камера работает. Но работает на базовых настройках - с разрешением 640х480 и 10 кадров в секунду. C270 способна выдать HD разрешение 1280х720. Берем карточку, находим в корне файл octopi.txt и правим настройки USB камеры:
0d0985e35bbdddec9a468ad389b35cf4.png
Теперь картинка более привычна для мониторов формата 16:9
С одной задачей успешно справились. Дальше стояла задача управления питанием принтера. Я уже начал изучать опыт коллег, как вдруг вспомнил, что в моей системе умного дома Z-Wave есть один управляемый розеточный модуль, которому я уже давно не могу найти применение. Подключил принтер к нему и уже как минимум получил возможность управлять питанием удаленно через систему умного дома.
d458d92f22ea8e417324307222b8adee.JPG
Но для автоматизации надо было обучить 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. Он предлагает более удобный интерфейс для смартфонов и планшетов. С помощью него можно быстро двигать моторами находясь возле принтера с планшетом, а также осуществлять все остальные действия, включая наблюдение за процессом печати.
c2a082a091503a27d617cb42a6ecb237.JPG
Также были установлены еще следующие плагины:

  • 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Вт малинка с мегой могут от бесперебойного источника довольно долго прожить, остается решить вопрос анализа наличия сетевого напряжения и приостановки печати при его пропадании.
Подписаться на 3Dtoday
44
Комментарии к статье

Комментарии

11 Май 10:54
1
Очень своетую посмотреть в сторону телеграмма. Оч удобно сидя на работе открыть чатик с ботом и запросить фотку печати. Куда быстрее и удобнее чем открывать гуи. Потом упарвлять октой можно в вашем случае... не так. смотреть видео с камеры можно только находясь в подсети указанной в ip stream камеры. Т.е. с великой вероятностью в локалке. Или открывать порт во вне. А авторизации там нет... Но конечно все куда юзерфрендли на малине. На апельсине я камеру только через пень колоду завел )
Кста надо статью по подключению сенсора наваять. займусь сейчас.
11 Май 11:04
0
С web-камерой во внешнюю сеть решил пока просто - я ее подцепил к системе умного дома как обычную IP камеру.

А на смартфоне уже стоит приложение умного дома, где можно посмотреть и все камеры, плюс управлять розетками.
Там все с авторизацией и без проброса портов (через сервер производителя).
11 Май 11:08
0
А на смартфоне уже стоит приложение умного дома, где можно посмотреть и все камеры, плюс управлять розетками.
Там все с авторизацией и без проброса портов
Информации об OctoPrint на сайте довольно много, но она разрознена - надо собирать все в отдельных статьях
Получается и вашу не разрозненную информацию единицы смогу применить как общее целое и по факту она окажется такой же разрозненной? Я так понимаю.
11 Май 11:14
0
Есть такое. У меня завязано на мой умный дом, который мало у кого еще тут будет.
Поэтому я не стал вдаваться в подробности этого момента.

Плюс я не скажу, что сделал все что хотел. Просто рассказал свой опыт с покупки до настройки.
Это еще одна статья в копилку общего багажа знания.
12 Май 14:45
0
смотреть видео с камеры можно только находясь в подсети указанной в ip stream камеры. Т.е. с великой вероятностью в локалке. Или открывать порт во вне. А авторизации там нет...
openVPN?
12 Май 15:30
0
Гемор страшный. Ты на каждый девайс будешь опенвпн ставить? не спортивно...
12 Май 16:15
0
ты внутрисетевые девайсы имеешь ввиду или с собой носимые?

если первое - ставится на роутер. всё. на микротике так вообще - энейблится встроенный
если роутер тупой - пробросить порт, поставить openvpn-server на малинку/липисинку

если второе - ставится приложение из гугляплея + закидывается на планшет/телефон 3 файла - сертификат твоего СА, твой ключ и конфиг. можно даже один и тот же комплект на все устройства (ну если паранойю децл придушить). гемору - ноль. возможностей - вагон

и куда как более правильно с точки зрения секюрити, чем долбиться снаружи в веб-морду осьминога - или там https?
12 Май 16:23
0
Все.
Еще раз, ты приходишь куда-то и тебе надо посмотреть что да как у тебя там с принетром. Что ты будешь кому-то ставить впн?
12 Май 16:42
-1
достану из кармана планшет, цепанусь к ихнему вайфаю и посмотрю. или через 3Г если пароль жмотят

ИЧСХ - никая любопытная тварюшка логин/пароль не перехватит

да, я параноик. живой параноик ;)
12 Май 16:52
0
А если нет его? Если сел?
12 Май 17:03
0
а если там интернета нет? или электричества?

опенвпн - проверенное решение. если конечно интересует результат
11 Май 10:58
0
СПАСИБО!
Именно такой информации мне и не хватало.
11 Май 11:01
1
Собственно, поскольку информация разрознена и был этот пост написан, там в конце ссылки почти на все осьминожьи статьи.
Насчет USB клавиатуры думал, и пока думал, решил, что Nano с кнопками - проще. Раз, два.
11 Май 11:06
0
Спасибо за статьи - они очень помогли!

Но по поводу выбора камеры довольно мало информации.
Есть вот более дорогая С920 с FullHD и автофокусом, но не понятно стоит ли ее брать за 5 тысяч или ничем особо не лучше С270 за полторы.
11 Май 11:14
0
А это зависит от того, где эта камера будет размещаться, каково освещение, и что вообще нужно видеть. Поэтому выбор индивидуален.
Я думаю, что FullHD таки надо, а вот автофокус - нет.
12 Май 13:19
0
автофокус может скакать во время печати имхо
с телефона так снимаеш печать - потом бяка получается
12 Май 13:20
0
Так я и говорю, не нужен.
12 Май 13:32
0
Да, я посмотрел как работает автофокус на C920 - не очень стабильно на ближних деталях.

Зато вчера еще попробовал снимать с рук на экш-камеру Sony AS100V - вообще отлично. И четко, и угол широкий. Жалко что ее как web-камеру нельзя использовать :(

11 Май 11:12
1
Вот не поверишь - самым полезным для меня оказалась инфа о системе координат при сохранении STL :)
11 Май 11:15
1
А я не зря по это написал ;)

Бывалые про OctoPrint ничего нового не увидят, а вот с STL сам помучился, поэтому решил заодно поделится :)
11 Май 11:36
0
А чем не угодил NetFabb? Открываешь STL модель и правишь ее положение, сохраняешь обратно в STL и все. Попутно можно и подлечить модель от косяков.
11 Май 12:50
0
Тем что надо изучать еще одну программу :)
11 Май 11:38
2
Вот вам еще лайфхак: закидываем солидворковский STL в слайсер (Simplify3D или даже Repetier-Host), поворачиваем как нравится и сохраняем обратно в STL.
11 Май 13:40
0
В Симпли можно цифрой поворот указать?
11 Май 14:18
2
d48e48777e23667ba9c457d50caceea4.JPG

Кроме этого, можно прямо указать какой именно поверхностью класть на стол (Ctrl+L).
12 Май 05:54
1
Спасибо огромное!
12 Май 14:49
0
в куре тоже самое. причем в куре есть пользительная фишка - положить деталь на стол плашмя (когда модель хрен знает как ориентирована, да еще и нужная плоскость под произвольным углом)
11 Май 11:35
0
А вот еще мне подумалось интересное. Не связаны ли нередкие обрушения файловой системы на малине при некорректном отключении с тем, что там используется мезозойский FAT? Да, удобно, что можно из-под Windows поковырять, но...
12 Май 14:57
0
при всём богатстве выбора - альтернативы FAT нет. ну так что бы ВЕЗДЕ читалось, в т.ч. на ардуине

но если гарантированно ее только в распике использовать - почему не отформатировать на ext4?

ЗЫ у меня лично ни малинки, ни апельсинки нет. пока нет :)
12 Май 15:05
0
Я к тому, что дефолтные образы для малинки - в FAT, а для апельсинки - по хардкору, в EXT4. Малиноводы иногда спрашивали, слетала ли у меня файловая на апельсинах, а пока что не было прецедентов. Возможно, причина как раз тут.
12 Май 16:20
0
о, даже так? ну тогда и к бабке не ходи, и так всё ясно. 146% что ФАТ виноват
в арудине та же ведь фигня, если СД-шку на запись не закрывать (хотя вроде и не должно ничего по идее на карту писаться)
11 Май 11:50
0
Камера видимо вещь очень полезная, даже поглядев на эти ролики, я понял чего не хватает моему охлаждению ориентированному - примонтировать напротив ещё один куллер, но который будет не дуть, а втягивать в себя поток выброшенный первым, чтобы он распространялся по оси Z с минимумом, то-есть обдуваться будет только поверхность слоя, ну может с небольшими отклонениями по КПД. Да, думаю, это будет серьёзный апдейт охлаждения. Сколько смотрел на печать в своём принтере - никогда не додумался, даже программу написал специальную для управления охлаждением. А тут посмотрел на печать через веб-камеру, и сразу стало ясно что нужно.
11 Май 15:41
0
Спасибо большое! В избранное.

Я вот недавно купил ИБП, чтобы редкие пропадания напряжения на долю секунды не губили многочасовую печать.
Но остается проблема, если электричество отключат на 10 минут и более- аккумуляторы разрядятся в ноль и умрут из-за этого навсегда.

Как реализовать схему, чтобы ардуинка, увидев отсутствие напряжения в розетке на протяжении трёх минут, дала сигнал Октопринту на экстренную остановку принтера и его охлаждение (чтобы пробки не было в хотенде), а потом выключить ИБП?
11 Май 15:58
1
Я думаю надо идти следующим путем:

- От отдельного БП на 5В, не запитанного через ИБП, подавать сигнал на вход GPIO малины
- Создать плагин для Октопринта, который при пропадании сигнала на входе в течении заданного времени приостанавливал печать и запускал скрипт (поднятие Z, парковка по X) и потом отрубал основной БП, подпитывая только малинку с Мегой, чтобы они спокойно потом смогли продолжить печать после восстановлении питания и вмешательстве владельца.
11 Май 19:00
0
Неплохая задумка.
12 Май 10:50
0
Уточнил - надо 3.3 В, но не вопрос - через делитель или преобразователь.

Более сложный вопрос - при отключении удержания движков ось Z может немного сместится и при возобновлении печати слой может не лечь. В общем надо экспериментировать.
12 Май 16:26
0
Но остается проблема, если электричество отключат на 10 минут и более- аккумуляторы разрядятся в ноль и умрут из-за этого навсегда.
на более-менее приличном ИБП контроллер отрубит преобразователь ДО полного разряда АКБ. на управляемом - уровень отсечки задается программно. по дефолту 20% заряда обычно, если память не изменяет
12 Май 18:26
0
Да? Хорошо. Я не знал об этом. Спасибо.
12 Май 09:41
0
а почему не использовали родную камеру от Raspberry на шлейфе?
12 Май 10:48
0
1. Пишут, что она "не очень"
2. Сложно найти - самой малинкой много кто торгует, а вот аксессуарами в основном только интернет магазины, а хотелось побыстрее закрыть вопрос :)
12 Май 20:25
0
Добрый день!
Спасибо за полезности!
Не сталкивались с проблемой, что "GCode" Viewer не кажет? Печать модели запущена с Осьминога, но она храниться на SD принтера.
12 Май 21:31
0
С SD карты и таймлапс по Z не работает, поэтому я выключил поддержку SD карты принтера и использую только малинкину.
13 Май 00:42
0
Ок. Спасибо.

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Улучшение аккуратности по оси Y на FlyingBear P902

Поделимся настройками слайсеров для идеальной печати Anet A6))

Собранный DLP принтер и первые удачные образцы печати

3Dtoday за 60 секунд от 21 июля

Пермский механический завод наладит производство боевых 3D-печатных роботов

Новосибирская коллекция старинных колоколов будет восстановлена с помощью 3D-печати