Столик для принтера своими руками


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

На самом деле планшетный принтер может служить не только дополнением к станку с ЧПУ для прямой печати красочных изображений на готовой продукции. Он может выступать в качестве вполне самостоятельного средства производства! Например, для печати на футболках и ткани (текстильный принтер), печати на кафельной плитке и стекле (для студии дизайна интерьера), для изготовления печатных плат при производстве электроники, и многое-многое другое. Т.е. как мы видим, планшетный принтер — это отдельный бизнес, начать который под силу любому уже с первой зарплаты, просто изготовив планшетный принтер своими руками!

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

Для начала нужно понять, в чем заключается переделка струйного принтера. Обычный струйный принтер рассчитан на печать по бумаге, а мы хотим осуществлять прямую печать на твердой поверхности. Значит нам нужно просто переделать механизм подачи бумаги, вместо которого требуется установить подвижный столик с плоской поверхностью для расположения объекта, на котором будет производиться прямая печать (фанера, дерево, футболка, плитка, стекло, чехол от иТелефона, буханка хлеба с памятной надписью и т.д.).

Приводить в движение плоский столик можно все тем же двигателем от механизма протяжки бумаги, но при этом нужно понимать, что ничего тяжелее куска тряпки такой столик «протащить» под принтером не сможет. Да и сам столик должен быть из какого-то «воздушного» материала, например, оргстекла или пластика, и желательно с дырками для облегчения веса. А иногда для широкоформатных принтеров целесообразно двигать не столик под принтером, а сам принтер над столом! Эта задача штатному движочку уж точно не под силу!

Я считаю, что нужно оставить родной столик для принтера своими руками двигатель принтера в покое и приспособить наиболее подходящий под задачи «хэви-лифтинга» шаговый двигатель. Выбор шаговых двигателей настолько велик, что можно протащить под принтером хоть пол кубометра кирпичей и осуществить на них прямую печать. Лично я сторонник универсальности и не люблю изначально запирать себя в рамки «печати только на ткани», поэтому я выбрал вариант переделки струйника в планшетный принтер с применением именно внешнего шагового двигателя для привода подвижного стола.

Для управления шаговым двигателем нужен контроллер и драйвер. С драйвером шагового двигателя вопросов никаких нет — это может быть самый простой A4988 стоимостью в 180 рублей, который обеспечивает выходной ток на обмотку двигателя аж до 2 Ампер (с применением радиатора и внешнего охлаждения вентилятором). Этого более чем достаточно для управления шаговым двигателем средней мощности.

Энкодер принтераОсталось понять, для чего нужен контроллер и какие функции он будет выполнять. Если разобрать любой струйный принтер и обратить внимание на механизм подачи бумаги, то можно увидеть длинный вал с прорезиненными роликами, приводимый в движение небольшим моторчиком через зубчатую передачу. Там же на валу располагается прозрачный диск с маленькими черными делениями — это так называемый энкодер. Диск энкодера проходит через черненький такой оптический датчик, а эти деления на диске помогают электронике принтера понять, на сколько прокрутился вал подачи бумаги, иными словами — на сколько сдвинулся лист в принтере. Нашему контроллеру по большому счету нужно просто преобразовать «смещение бумаги» в «смещение стола». Для этого он тоже должен «читать» данные с энкодера (считать черные риски) и преобразовывать эти данные в шаги для шагового двигателя.

ArduinoВ качестве контроллера можно применить всеми любимую плату Arduino. Купить простейшую Arduino можно за 500 рублей. Кто-то скажет, что Arduino слишком медленная — это не совсем верно, а точнее, совсем не верно! Arduino — это просто удобная среда разработки на микроконтроллерах AVR фирмы Atmel. Никто не запрещает в среде Arduino использовать «родные» команды этого микроконтроллера вместо библиотечных функций среды Arduino, которые действительно медленные. С «родными» командами ваш микроконтроллер будет работать практически с частотой тактирования (а это как никак 16 МГц, стабилизированных кварцевым резонатором на плате). Для сравнения, сигнал с энкодера принтера может поступать с частотой не больше нескольких сотен герц или килогерц, т.е. наш микроконтроллер будет грубо говоря 1 такт работать, а остальные 1000 тактов отдыхать!

Оптический датчик энкодера принтера имеет два канала (условно — A и B). При вращении диска энкодера на выходе оптического датчика будут появляться прямоугольные импульсы. Направление вращения диска энкодера можно узнать, определив из какого канала импульс приходит первым. Если в канале A пришел импульс, а в канале B импульса еще нету, то диск крутится по часовой (к примеру); если в канале A пришел импульс, а в канале B импульс также уже есть, то вращение идет против часовой стрелки (опять же — к примеру). В реальной программе мы сможем потом легко сменить «-» на «+», если окажется, что мотор крутится не туда.

Подключение оптического датчика к Arduino происходит через цифровые входы D2 и D3 (на плате Arduino отмечены циферками «2″ и «3″ соответственно). Остается подключить к выходу Arduino контроллер шагового двигателя на базе модуля A4988. Он на вход принимает сигналы STEP (один шаг или микрошаг шагового двигателя) и DIR (направление вращения: 1 — в одну сторону, 0 — в другую). На Arduino для выходов STEP и DIR мы можем назначить любые понравившиеся нам пины, например — 12 и 13. На 13-ом выводе обычно сидит еще и светодиод прямо на плате Arduino, который даст нам еще и визуальное подтверждение передачи шагов STEP в драйвер шагового двигателя. Если хотите, можно DIR повесить на вывод 13, тогда светодиод будет гореть при вращении в одну строну и гаснуть, при вращении в другую — тоже наглядно.

Программа для микроконтроллера получается очень простой. Вот ее листинг:

// Пины для входа с энкодера

#define ENC_A_PIN 2

#define ENC_B_PIN 3

// Чтение значения с энкодера
#define ENC_A ((PIND & (1 << ENC_A_PIN)) > 0)
#define ENC_B ((PIND & (1 << ENC_B_PIN)) > 0)

// Пины STEP/DIR
#define STEP_PIN 13
#define DIR_PIN 12

// Отправка данных в порты STEP/DIR
#define STEP(V) (PORTB = V? PORTB | (1 << (STEP_PIN-8)) : PORTB & ((1<<(STEP_PIN-8))))
#define DIR(V) (PORTB = V? PORTB | (1 << (DIR_PIN-8)) : PORTB & ((1<<(DIR_PIN-8))))

void setup() {
intSetup();
driveSetup();
}

void driveSetup(){
pinMode(STEP_PIN, OUTPUT);
STEP(0);

pinMode(DIR_PIN, OUTPUT);
DIR(0);
}

volatile boolean A, B;

void intSetup(){
pinMode(ENC_A_PIN, INPUT);
A = ENC_A;
attachInterrupt(0, onEncoderChannelA, CHANGE);

pinMode(ENC_B_PIN, INPUT);
B = ENC_B;
attachInterrupt(1, onEncoderChannelB, CHANGE);
}

volatile unsigned long pulses = 0;
volatile boolean gotDir = false;
volatile boolean cw = false;

unsigned long pps = 2; // pulses per step

void loop() {

if(pulses >= pps){
pulses = 0;
STEP(1);
delayMicroseconds(10);
STEP(0);
}

if(gotDir){
DIR(!cw);
gotDir = false;
}
}

void onEncoderChannelA(){

A = ENC_A;

if((A && B) || (!A &&!B)){
if(!cw) gotDir = true;
cw = true;
}else{
if(cw) gotDir = true;
cw = false;
}

pulses ++;
}

void onEncoderChannelB(){

B = ENC_B;

if((B && A) || (!B &&!A)){
if(cw) gotDir = true;
cw = false;
}else{
if(!cw) gotDir = true;
cw = true;
}

pulses ++;
}

Немного пояснений по коду. В attachInterrupt() мы вешаем функцию-обработчик на внешнее прерывание, которое у нас срабатывает по изменению состояния канала оптического датчика энкодера. Любое изменение с 0 на 1 и с 1 на 0 отслеживается функцией onEncoderChannelA и onEncoderChannelB для канала A и B соответственно. Ну а дальше мы просто подсчитываем количество импульсов с энкодера и выдаем шаговому двигателю команды STEP и DIR. Как видите — ничего сложного!

Потом, в зависимости от конструкции стола и механизма передачи нужно будет подобрать коэффициент преобразования импульсов с энкодера в шаги двигателя. У меня в программе это значение задается в переменной pps (pulses per step — импульсов на шаг).

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

После успешного макетирования перейдем теперь к реальной переделке струйного принтера Epson Stylus Photo 1500W с СНПЧ (системой непрерывной подачи чернил) в принтер прямой печати. Чтобы не плодить портянок, создам для этого новую статью «Принтер прямой печати«.


Источник: http://tech.dimanjy.com/планшетный-принтер-своими-руками/



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Горячий стол на 220в своими руками. - 3DToday Узор вязание спица звездочка видео

Столик для принтера своими руками Столик для принтера своими руками Столик для принтера своими руками Столик для принтера своими руками Столик для принтера своими руками Столик для принтера своими руками