Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Современные технологии играют ключевую роль в развитии автоматизации и упрощении наших повседневных задач. В рамках этого контекста, одним из наиболее распространенных устройств является термопринтер – устройство, которое использует нагрев для вывода информации на бумагу. В статье студент Казанского техникума информационных технологий и связи проходит пошагово по процессу изготовления мобильного термопринтера, с возможностью управления через мобильное приложение.
Ссылка на репозиторий GitHub.
Список необходимых компонентов:
- 2 аккумулятора 18650;
- BMS контроллер;
- OLED экран 128х64;
- плата зарядки;
- USB-TTL конвертер CH340;
- зуммер;
- конвертер уровней;
- модуль термопринтера qr204;
- энкодер;
- понижающие dc-dc стабилизаторы напряжения;
- кнопки и резисторы.
Сборка
Для начала я изготовил печатную плату.
Для изготовления печатных плат можно использовать различные технологии, но я остановился на технологии фоторезиста, так как в данном проекте используются тонкие дорожки и необходима высокая точность. Также для защиты платы я покрыл ее специальной маской (Mechanic). На картинке ниже представлена готовая печатная плата.
Далее я припаял все элементы на свои места. Палата после пайки представлена на рисунке ниже.
Корпус я распечатал на 3D принтере, а модель спроектировал в программе Fusion 360. Fusion 360 – это облачная платформа САПР, которая является доступной, высокоэффективной альтернативой другим аналогичным программным продуктам. Он прост в использовании и обладает всеми функциями, которые содержат популярные пакеты САПР. Готовое устройство после сборки можно увидеть на рисунке ниже.
Программирование
Следующим шагом было написание программы. На этом этапе были некоторые трудности с передачей данных по Bluetooth и отправкой команд на модуль термопринтера.
Сначала необходимо разобраться с отправкой команд.
В интернет-ресурсах можно было найти список ESC/POS команд. Однако не все они работали, поэтому мне пришлось скачать программу Print_Assistant. Данная программа хорошо работала с моим модулем. Особенностью данной программы было то, что в специальном окне можно было видеть какие именно команды она отправляла на принтер в формате HEX. Таким образом я отправлял нужные мне команды через эту программу и переписывал HEX команду в свою программу.
После того, как переписал все нужные мне команды, я начал писать алгоритм для передачи данных по Bluetooth, и с этим тоже возникли сложности.
Дело в том, что при одной отправке можно было отправить лишь 250 символов, поэтому я сделал разбивку пакета данных. В мобильном приложении программа отправляла пакеты данных по 100 символов до тех пор, пока передача не завершится. Этот процесс занимает немного времени, но таким способом все данные передавались корректно и без потерь.
Как же программа понимает, что именно ему печатать? Здесь все довольно просто: первый пакет данных – это всегда команды. Этот пакет содержит в себе переменные, разделенные символом «@». Первый элемент обозначает, что именно печатать: текст, QR-код, штрих-код или чек. Остальные элементы обозначают настройки, которые необходимо установить перед печатью. После этого программа принимает оставшиеся пакеты данных, содержащие информацию, которую нужно распечатать. Вся программа представлена в репозитории GitHub. Также там можно скачать само приложение.
Приложение
Приложение я разработал в программе Kodular Creator. Это аналог популярной программы Mit App Inventor. Разница лишь в том, что Kodular Creator имеет хороший дизайн, благодаря чему можно создавать красивые приложения за короткое время.
Разберу интерфейс моего приложения. На рисунке ниже представлена первая вкладка.
В этой вкладке можно печатать любой текст, меняя его размер и форматирование.
Назначение кнопок:
«B» - полужирный шрифт;
«U» - подчеркивание
«Т» - ширина и высота символа;
«А» - инвертирование текста (черный текст на белом фоне или наоборот).
Третья кнопка сверху слева предназначена для установки выравнивания текста.
Левая кнопка на втором ряду – для очистки поля для ввода текста, а правая – для отправки на печать.
Во второй вкладке можно печатать штрих-коды и QR-коды. Она представлена на рисунке ниже.
С помощью ползунков можно регулировать размер печатаемого кода и уровень коррекции ошибок. В разделе печати штрих-кода можно выбрать тип кодировки. В поле «информация» нужно вводить кодируемую информацию. В поле «Текст» можно ввести дополнительную информацию, которую необходимо распечатать. В поле «Количество» нужно ввести число копий для печати. Кнопка «Сохранить» сохраняет установленные настройки для следующей печати. Кнопка «Печать» отправляет информацию на принтер для печати.
Следующая вкладка – печать чеков (на рисунке ниже).
В данной вкладке необходимо указать ФИО кассира и номер смены. После этого можно добавлять товары, указав наименование, НДС, стоимость и количество. Далее программа предложит выбрать способ оплаты, после чего можно распечатать чек.
В последней вкладке находится кнопка для подключения принтера и информация об организации, которая необходима для печати чеков.
Данную информацию необходимо заполнить заранее, прежде чем печатать чеки. Вся эта информация будет храниться в памяти принтера, ее также можно посмотреть в самом принтере в разделе «Информация об организации».
Статью подготовил И. Гараев, студент 4 курса специальности «Компьютерные системы и комплексы» ГАПОУ «МЦК-КТИТС».