Металл2024 Реклама
Метобр2024 Реклама

Кастрация прошивки 3D принтера

operrr
Идет загрузка
Загрузка
13.05.2018
4220
13
Техничка

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

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

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

2
Статья относится к принтерам:
Prusa i3 Anet A8
С ростом сложности 3D моделей, и особенно с увеличением скоростей печати производительности микроконтроллеров управляющих плат 3D принтеров( а большая часть это атмега) может не быть недостаточно, что приводит к ухудшению качества печати, фризам и зависаниям. В основном конечно недостаток производительности будет ощутим при переходе на более высокие скорости печати. Я неоднократно высказывал свое мнение о скоростной печати(можете перейти по ссылке и посмотреть видео), я не то что бы противник и мне тоже порой приходится печатать достаточно быстро, но я все-таки придерживаюсь мнения, что получить высокодетализированое и что самое важное качественное изделие можно только при печати на небольших скоростях. Но опять же - это только лично мои наблюдения и выводы, они могут кардинально разниться с вашим и естественно быть не верными.

Тем не менее, пользователи хотят печатать быстро, это их право и остается найти решение как избежать, а точней всего как минимизировать эту потерю производительности. Решение уже есть, и оно работает скажем так 'из коробки' - это переход на 32-х битную платформу. Таких решений не мало, у них много плюсов, но есть и минусы. Самый главный минус при переходе на 32бита это стоимость оборудования. Если связка меги и рампса обойдется вам менее чем в 1000руб, то тот же самый 32битный MKS увеличит затраты в 3-4 раза. Для кого-то это копейки, но я бедный, жадный и люблю принимать нестандартные решения.

И так, если мы отбрасываем возможность перехода на 32 бита, то остается только одно - ускорить работу существующей системы.

За основу конечно берем атмегу 2560. Можно конечно увеличить тактовую частоту путем замены кварца, но это черевато не стабильностью а так же нужно вносить существенные изменения в прошивку. Второй способ - это ускорение работы прошивки путем ее облегчения. Я конечно знаком с основами программирования, но самостоятельно и тем более в одну каску перепелить прошивку мне не по силам. Я долго анализировал то, как я общаюсь с своим принтером , что мне нужно, что не нужно и сделал некоторые выводы.

1. Обдув детали.

Как это работает. В процессе печати прошивка перебирая строки G-кода встречает команду на включение обдува и начинает выполнение соответствующей функции. Т.е. она начинает формировать шим сигнал с определенной скважностью импульсов, тем самым заставля вращаться вентилятор с заданной скоростью. Да, это не сложная функция, но она в любом случае отнимает процессорное время. Соответственно отключив эту функцию мы пусть совсем чуточку, но разгрузим процессор. Вы скажете бред! обдув нужен! и я с вами полностью соглашусь, тем более, что современные программы позволяют очень гибко работать с обдувом включая и выключая его только в нужный момент и с нужной интенсивностью. Но как раз в тот момент, когда я думал на счет обдува, мне на глаза попалась вот эта парочка.
Кастрация прошивки 3D принтера
Печатал я ее на заре моего знакомства с миром 3D печати, тогда я был ну очень поверхностно знаком с слайсерами и совсем не разбирался в тонкостях настройки. Точно помню, что печатал из куры - это был мой первый слайсер, и на тот момент обдув изделия для меня имел два режима - вкл и выкл, я даже не регулировал скорость. Статуэтка высотой всего 10см, она конечно не идеальная, но при таком размере пропечатались пальцы, уши и другие мелкие детали и с учетом отсутствия у меня на тот момент какого-либо опыта я считаю, что она получилась очень даже не плохо. Но к чему я все это говорю - пока я ностальгировал о том как я печатал эту парочку я поймал себя на мысли о том, что крайне редко вот так гибко настраиваю обдув и как показывает практика можно с легкостью обойтись без всех этих новомодных функций. Так как же нам управлять обдувом, который все-таки нужен, но при этом не тратить процессорное время? Да элементарно!

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

2. Нагрев стола.

Многие принтеры вообще не имеют в арсенале стола с подогревом и при этом чувствуют себя не плохо. Но как ни крути, при нынешнем разнообразии пластиков подогрев стола жизненно необходим. Многие кстати включают PID стола, и я не был исключением. Но немного побаловавшись его отключил. В большинстве случаев стол представляет из себя бутерброд состоящий в основном из аллюминия у которого очень высокая тепловая инертность. Если площадь и объем термоблока хотенда достаточно маленькие, то те же самые сквозняки могут влиять на колебания температуры, а средне статистически стол весит под киллограм и повлиять на температуру такой массы прогретого металла не так уж и просто. По этому в прошивке указываем, что стола с подогревом у нас нет, тем самым минусуем выполнение еще одной функции и опять же разгружаем процессор. Но так как подогрев нам все-таки необходим, то как-то же нужно им управлять и контролировать. Тут нам на подмогу приходит любая ардуинка, в моем случае будет нано, так как в закромах у меня их предостаточно. Ну а написать скетч который будет обрабатывать данные с термодатчика, выводить их на экран и с помощью мосфета управлять нагревательным элементом стола в наше время сможет наверное каждый второй школьник. После физической реализации проекта будет отдельное видео, где я выложу скетч для всех желающих. Идем дальше.

3. Экран.

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

Теперь подведем итоги:

Перечень 'деактивированных функций'

1. Функция генератор ШИМ обдува детали

2. Функция управления нагревом стола

3. Функция обработки SD карт

4. Функция обработки кнопок или энкодера

5. Функция отвечающая за вывод информации на дисплей


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

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

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

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

2
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама