[recovery mode] Отключили свет. Что делать?

Всем привет. Меня зовут Сергей и я занимаюсь разработками 3D-принтеров. В данной статье пойдёт речь о том, что делать, если периодически отключают электропитание, а печатать (имеется в виду 3D печать) очень хочется.

3a5eea44ea864f1399508aee06ed2aef.jpg
Немного предыстории

Есть у меня заказчик из одного солнечного города, и там есть некоторые проблемы с питанием. Порой, свет отключают на пару секунд, а порой и несколько часов. Никакой периодичности или расписания, понятное дело, нет. С этой проблемой заказчик ко мне и обратился. Я, как и все, как и многие посоветовал ему поставить источник бесперебойного питания. Да, это помогает, но от кратковременных отключений. Что ещё сделать можно? Этим вопросом задался я…

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

Итак, что у нас есть:

1. Принтер. В данном случае это RK-1, но может быть и другой любой принтер. Как FDM (только при печати PLA пластиком или аналогами), SLA, так и DLP. Важное замечание-принтер должен отслеживать напряжения питания с блока питания (тавтология, но не страшно, суть понятна).
2. Сеть с нестабильным напряжением (питанием).

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

Реализация

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

Шаг первый.

Отслеживаем падение напряжения. Напряжение питания блока питания 24В, если напряжение питания падает менее 20В и находится в этой области более 10 мс, то запускается процесс остановки и сохранения.

Шаг второй

Выключение дисплея, остановка шаговых моторов и снятие с них нагрузки.

Шаг третий

Выключение лазерного диода.

Получается, что все основные потребители мы отключили и можем автономно работать какое-то время от блока питания. График падения напряжения выглядит примерно так:

a35e60d4de1e464b857da81b79684e24.JPG

Шаг четвёртый

Необходимо сохранить в энергонезависимую память следующие параметры:

  • текущее положение оси Z и режим (был подъем или опускание);
  • имя печатаемого файла;
  • номер строки файла, на которой были остановлены шаговые моторы.


На это тратится менее 10 мс. Всё, теперь можно спокойно «помирать»)

После включения «принтер» смотрит, есть ли записи об остановке печати. Ищет файл на флешке, ищет строку, на которой была остановлена печать. И запускает процесс печати.

Но, есть нюансы:

Первый: ось Z не нужно трогать, если движения по Z не происходило.

Второй: нельзя обнулять оси по концевикам. Дело в том, что концевики не так точны, как хотелось бы, хоть стоят и оптические. Нужно делать так: зная текущее положение на оси, сместиться к концевику и запустить там лазер, после чего вернуться в исходное положение и продолжить печать. Аналогичным образом можно поступить и в случае работы с FDM принтером. Хотя, возможно, там это и не скажется на модели (не видно будет).

Вот и небольшое видео о том, как это работает.

Спасибо за внимание. Какие методы вы ещё знаете?

© Geektimes