- Устройство и принцип работы матричного принтера
- Устройство данного принтера
- Принцип работы матричного принтера
- Основные характеристики
- Наиболее популярные модели матричных принтеров
- Способ подключения матричного принтера
- Подключение принтера к компьютеру
- Установка переключателей конфигурации
- Программирование режимов работы принтера
- Инициализация принтера
- Генерация звукового сигнала
- Возврат каретки
- Перевод строки
- Перевод страницы
- Другие команды
- Как подключить матричный принтер MD910 от кассового аппарата Миника
Устройство и принцип работы матричного принтера
Матричный принтер считается одним из старых образцов техники печати. Первый такой аппарат был изобретён в 1964 году компаний Epson.
Устройство данного принтера
Следует перечислить основные элементы, из которых состоит данный печатный аппарат:
- Печатающая головка;
- Система, управляющая головкой;
- Микропроцессор;
- Датчики механического и оптического рода;
- Источник электропитания;
- Система подачи бумаги;
- Полноценный картридж.
Сам механизм состоит из двух блоков:
- Блок элементов управления, включающий в себя процессор, плату, ОЗУ;
- Блок печатающей головки, включающий в себя все механизмы, благодаря которым происходит печать.
Принцип работы матричного принтера
В работе данного аппарата используется ударный способ печати изображения. То есть блок печатающей головки выбивает на листе точки, которые собираются в единое изображение. Матричные принтеры могут печать как чёрно-белые изображения, так и цветные. Для полноценной цветной печати используется красящая лента.
Матрица печатающей головки на сегодняшний день состоит из 24 иглы. Принтер с матричной технологией позволяет производить печать сразу нескольких документов. Такой принтер с лёгкостью пропечатывает любой тип бумаги.
Процесс печати изображения осуществляется в два круга, то есть технологией двойного удара.
Основные характеристики
- Скорость печати-зависит от качества печатываемого изображения. Чем выше качество, тем ниже скорость;
- Объём памяти, принимающей данные от ПК в традиционных устройствах составляет 4-6 Кб, в более дорогих и усовершенствованных-более 200 Кб.
- Разрешающая способность;
- Цветная печать-качество цветной печати значительно ниже, чем цветная печать на струйных принтерах;
- Множество шрифтов для печати изображения.
- Умеренная себестоимость печати одного листа;
- Низкие затраты на расходные материалы;
- Умеренная цена на сервисное обслуживание;
- При отсутствии чернил, процесс печати всё так же производится, только символы приобретут более светлый оттенок;
- Доступность копировальной печати;
- Возможность печати на рулонной бумаге, так же бумаге низкого качества.
- Умеренная, невысокая скорость процесса печати;
- Ограничение по количеству цветов;
- Шум в процессе работы.
Наиболее популярные модели матричных принтеров
- Epson LX-1350. Работа осуществляется от сети, предназначен для печати отчётов и документов крупных предприятий. Расположить бумагу можно как сверху, так и сзади принтера. Скорость печати-357 зн/сек. Возможна печать сразу 5-ти экземпляров. Заправленного картриджа хватит на распечатку 4 млн. знаков.
- Olivetti MB-2. Данный принтер незаменим при интенсивном распечатывании документов. Качество печати при этом не зависит от высокой рабочей скорости. С помощью двустороннего сканера возможна обработка носителей самых малых размеров.
- Lexmark Forms Printer 2590n. Работа осуществляется с различными шрифтами, перечень носителей по формату и назначению достаточно высок. Скорость печати данного аппарата-556 зн/сек. Преимуществом является быстрота переключений между форматами носителей. Встроенный удобный дисплей позволяет заранее контролировать шрифты и другие дополнительные настройки.
Исходя из всего вышесказанного, можно отметить, что данная техника на сегодняшний день находится на пике популярности. Чаще всего матричным принтером пользуются в крупных предприятиях, в банковских учреждениях, а так же на кассах. Однако если необходимо печатать и изображения и текстовые документы в огромных объёмах, лучше всего предпочесть другой вид принтера.
Источник
Способ подключения матричного принтера
В этом разделе мы расскажем о некоторых приемах программирования принтеров.
Относительно недавно наибольшей популярностью пользовались матричные принтеры, в основном из-за их низкой стоимости. Сегодня матричные принтеры вытесняются струйными и лазерными, особенно если они используются с приложениями Windows.
Больше всего распространены две группы матричных принтеров, различающихся по системе используемых команд — это принтеры, совместимые с принтерами Epson и принтеры, совместимые с принтерами IBM Proprinter. Принтеры некоторых третьих фирм-производителей компьютерного оборудования обычно эмулируют команды обоих или одной из этих групп в зависимости от установленного режима работы.
Кроме того, вы должны учитывать, что различные модели принтеров, изготовленные одной и той же фирмой, отличаются набором команд. При этом, как правило, обеспечивается совместимость по командам снизу вверх, то есть более новые модели поддерживают команды предыдущих моделей принтеров.
Средим матричных принтеров в России очень распространены принтеры серии Epson FX: FX-80, FX-850, FX-1050. Печатающие головки этих принтеров имеют девять иголок, поэтому качество печати принтеров серии FX оставляет желать лучшего. Принтеры серии Epson LQ используют для печати 24 иголки, кроме того, некоторые модели способны печатать цветные изображения (например, Epson LQ-2550). Качество печати принтеров LQ намного лучше.
Подключение принтера к компьютеру
Принтер подключается к компьютеру двумя способами: либо через асинхронный последовательный адаптер, либо через параллельный адаптер. Вы можете подключить к одному компьютеру сразу нескольких принтеров, причем принтеры могут быть подключены одновременно и к параллельному, и к асинхронному последовательному адаптеру.
Для подключения к последовательному адаптеру принтер должен быть оборудован специальным последовательным интерфейсом. Кроме того, необходимо использовать специальный кабель. Если вы подсоедините принтер к последовательному порту при помощи кабеля, предназначенного для работы с параллельным портом, то это может привести к повреждениям в оборудовании компьютера или принтера. Внимательно читайте раздел документации на принтер, посвященный подключению к компьютеру.
Установка переключателей конфигурации
Как правило, матричные принтеры позволяют устанавливать режим своей работы с помощью переключателей режима. Для доступа к этим переключателям вам не надо разбирать принтер или снимать крышку корпуса — эти переключатели располагаются в легкодоступном месте.
Некоторые принтеры, например, струйные и лазерные, не имеют переключателей режимов. Для задания режимов используется клавиатура и небольшой дисплей на корпусе принтера. Режим такого принтера хранится в памяти CMOS, которая установлена в принтере и питается от аккумулятора. Поэтому установленный режим не сбрасывается при выключении питания принтера.
Программирование режимов работы принтера
Для изменения режимов работы принтера и выполнения загрузки шрифтов используются специальные командные последовательности символов. Командные последовательности посылаются в принтер как обычные символы. Для вывода этих последовательностей вы можете использовать описанные ранее функции MS-DOS или BIOS.
Признак начала командной последовательности символов — байт ESC с кодом 1Bh. Вслед за этим байтом программа посылает в принтер байты командной последовательности. Длина последовательности зависит от выполняемой команды.
Первый байт командной последовательности — код выполняемой команды. Далее следуют байты параметров команды. Некоторым командам не предшествует байт ESC (это, например, команды перевода строки, страницы или команды табуляции).
Подробное описание всех команд не входит в задачу данной книги. Вы можете найти список команд в документации на принтер. Мы опишем подробно лишь несколько команд принтера Epson FX-850/1050 с целью иллюстрации способов программирования режимов принтера с использованием протокола ESC/P.
Инициализация принтера
Код команды: ESC «@»
Для сброса принтера в исходное состояние программа должна послать на принтер два байта — байт ESC (1Bh) и байт, соответствующий ASCII-символу «@» (40h).
Генерация звукового сигнала
Код команды: 07h
Если послать этот байт, принтер издаст звуковой сигнал. Этот сигнал удобно использовать для привлечения внимания оператора, например, когда кончилась бумага.
Возврат каретки
Код команды: 0Dh
По этой команде распечатываются все символы из буфера принтера, затем печатающая головка возвращается к началу строки. В зависимости от состояния переключателя конфигурации может дополнительно выполняться прогон бумаги на одну строку.
Перевод строки
Код команды: 0Ah
Когда этот символ посылается на принтер, все символы, находящиеся во внутреннем буфере принтера, распечатываются, затем каретка возвращается к началу строки и происходит подача листа вперед на одну строку.
Перевод страницы
Код команды: 0Ch
Принтер распечатывает все символы, находившиеся в буфере, затем выполняет прогон одного листа бумаги.
Другие команды
Существуют различные команды, позволяющие определить размер межстрочного интервала, расположение левой и правой границ листа, используемый для печати шрифт. С помощью некоторых команд можно выполнять печать графических изображений.
Если вас не устраивает шрифт, который записан в ПЗУ принтера (например, в нем нет символов кириллицы), вы можете использовать команды для загрузки собственного шрифта.
Источник
Как подключить матричный принтер MD910 от кассового аппарата Миника
В прошлой своей публикации я подключал ЖКИ дисплей от старого кассового аппарата. Напомню, что я приобрел 3 аппарата за смешные деньги, разобрал их, и в итоге стал обладателем милых сердцу электронных штучек: экраны, принтеры, мелочевки. 😉
В комментариях люди интересовались подключением чекового принтера. Выкроив время из своей межвахты наконец то разобрался с принтером. Начал я с матричного. Модель MD910, ниже фото.
Ну поскольку Ардуинка, паяльник, и прочая-прочая давным давно ждут своего выхода на сцену решил я таки его неприкаенного подключить и что-нибудь напечатать. Что самое главное в нашей жизни? Это инструкция! Так вот озадачился я поиском datasheet-а на этот принтер. Нагуглил, правда самой первой редакции. Там нашлась схема распиновки выводов, тайминги, немного про устройство принтера. Не было параметров подключения светодиода оптопары и еще нескольких данных. На ум пришла идея спросить эту информацию в мастерских по ремонту кассовых аппаратов. Здесь, я Вам скажу меня ждало разочарование — эти парни лениво протянули, что у них никаких datasheet-ов, сервисных manual-ов и даже схем кассовых аппаратов у них нет, и вообще они тут делом заняты. 😉
А если спросить эту информацию непосредственно у самих производителей (Citizen Business Machines)? Я так и сделал — написал им имейл — так мол и так, я радиолюбитель, сейчас хочу прикрутить этот принтер и печатать на нем листовки, будьте добры и любезны предоставьте datasheet. И Citizen Systems Europe мне через пару дней прислало заправшиваемую информацию!
Собрал платы подключения датчиков — а их там два: Dot Pulse и Reset Pulse. Спаял драйвера для управления двигателем и печатающей головкой.
Что касается драйверов для мотора и печатающей головки. В загашниках лежало несколько микросхем SMA4033 и STA471A, которые были выпаяны из неисправного матричного принтера Эпсон (типа FX800). Вот перипетии судеб микросхем — старый матричный принтер был разобран на запчасти, чтобы через несколько лет реинкарнироваться в облике нового принтера! 😉
Документация была найдена при первом же запросе Гугла (кстати, я их выложил на GitHub). Эти микросхемы представляют собой 4 транзистора Дарлингтона в едином корпусе, разница между ними (кроме напряжений питания) в наличии защитных диодов в SMA4033. Мне они очень понравились — отличные параметры, можно приклеить на радиатор и просто припаять проводки к выводам, корпус относительно массивный, так что легко выдерживает выпайку при помощи строительного фена! 😉
Схема подключения мотора. Используется только два канала из четырех микросхема SMA4033.
Схема подключения печатающей головки к микросхемам STA471A (коллекторы). Необходимо помнить, что печатающая голова состоит из 2 блоков по 4 иголки. Поэтому нам нужно 8 силовых выходов.
Общее для обоих микросхем. Выходные пины Ардуино через резисторы сопротивление (680 ом — 1к) подключены на базы транзисторов Дарлингтона.
Как работает принтер?
Печатающая головка состоит из двух одинаковых частей. Каждая часть включает в себя четыре вертикально стоящие иголки. Однако четные и нечетные иголки чуть-чуть сдвинуты относительно друг друга, полагаю, чтобы они не сильно мешали друг-другу — ведь расстояние между ними совсем крошечное! Однако это немного усложняет алгоритм печати: вначале нужно напечатать нечетные точки, потом, дождавшись, когда головка сдвинется на 0.5 точки напечатать четные точки.
Что касается двух половинок. Левая часть печатающей головки печатает первую половину строки, правая — вторую. Чтобы напечатать строку из 8 пикселей высотой нужно сделать два прохода. Вот смотрите, за четыре первых такта печатается один первый столбец буквы A. Первый такт — печатаем точки A и C, потом 1 такт — головка сдвигается на половину точки, потом печатаются точки B и D, потом опять сдвигается на полточки. Потом опять за четыре такта печатается следующий столбец буквы A.
При этом в принтере всего 144 столбца, 72 для каждой части печатающей головки. Если будем использовать шрифт 8×8, то мы сможем напечатать 18 символов в каждой строке.
Мы выяснили каким образом печатает принтер. Теперь это дело нужно оформить в виде программного кода.
Что нам нужно, чтобы напечатать текст?
1) входная информация — строка из 18-ти символов;
2) шрифт
3) программа
Большинство растровых шрифтов устроено следующим образом: каждый байт (или несколько байтов) описывает одну строчку символа, следующий — следующую строчку и т.д. Это удобно для отображения на экране — поскольку используется построковое построение изображения. В случае печати, иголочки стоят вертикально. Поэтому нам был бы удобен шрифт, который описан по стоблцам. Однако, такого я не нашел. Пришлось исходить из того, что есть.
Кроме того, я решил печать организовать следующим образом: первый шаг — это рендеринг строки текста в буфер, второй шаг — это непосредственно печать подготовленной информации из буфера рендеринга. Это также дает некоторую уверенность в том, что тайминги печати будут соблюдены. Написание кода рендеринга было самой сложной частью программы.
Давайте посмотрим, как работает рендеринг
Здесь красным цветом выделены биты и байты экранного шрифта, зеленым цветом — биты и байты шрифта для принтера. Основная задача рендеринга — сконвертировать экранный шрифт в принтерный в буфер. Обработка выглядит примерно так: все D7-ые биты (всех 8-и байтов шрифта) необходимо превратить в биты D7-D0 (первый столбец), все D6-ые биты необходимо превратить в биты D7-D0 (второй столбец). Таким образом экранный шрифт для латинской буквы A (0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00) превратится в последовательность (0x3E, 0x7E, 0xC8, 0xC8, 0x7E, 0x3E, 0x00, 0x00) для буфера рендеринга. Надеюсь, что приведенный ниже кусок кода поможет понять алгоритм рендеринга.
С еще одной большой проблемой я боролся целый вечер: при попытке отработки кода рендеринга — в терминал выбрасывался мусор, если закомментировать этот участок, все работало без проблем. Мне показалось, что переполняется/переписывается оперативная память и поэтому возникает мусор в выдаче. Прочитав про то, что Ардуино хранит все переменные в ОЗУ я понял, что всему вина — это 2 килобайта данных шрифта. Пришлось хранить его непосредственно в теле программы (флэш) и обращаться через специальные функции. Все заработало. Здесь и здесь более подробно об этом.
Еще интересный сюрприз преподнес мне Power Bank от Xiaom, который я планировал использовать как источник питания. Просто он не включался от нагрузки в виде Ардуино, при насильном включении (нажав на кнопку) он включался, питал нагрузку пару секунд, потом отрубался. Причина — думаю одна: Ардуинка не так много потребляет, моторчики и печатающая головка (основной потребитель) тянет импульсами, но не постоянно (нагрузка скачет от десятков миллиампер до пары ампер)…
Пришлось городить блок питания из 12-ти вольтового 5-ти амперного блока питания для светодиодной ленты + 2 DC-DC конвертера на народных LM2596. В выходную цепь +5 вольт я включил по диоду Шоттки + резистор 2,5 ома для ограничения токов.
Поскольку принтер матричный, для печати используется картридж с лентой, да-да, как в старину. Я пытался попробовать восстановить родной картридж, замочил его в воде на недельку. Попробовал разобрать, чтобы пропитать поролон краской-мастикой. Поролон просто рассыпался… Ближайший картридж от меня находится в Самаре. 🙁
Решил тогда попробовать найти бумагу, чувствительную к ударам (когда ее покупал, продавец пару раз меня предупредил, что эта лента не подходит никуда 😉 Пришлось ее заверять, что я все понял, и претензий потом от меня не будет. 😉 ). Нашел только ленту шириной 80 мм, пришлось резать на кусочки и уменьшать ширину до 57 мм, добрым старым ламповым способом при помощи шариковой ручки и линейки… Зато печатает! 😉
Как выглядит финальный результат. На 20 мм фанерке закреплен принтер и платы управления. При монтаже использован ШВВП 2*0.5мм, коннекторы WAGO и клеммник! 😉 МГТФ кончился давным-давно… И его вообще не могу найти в продаже у себя в городе. 🙁
Источник