Как работает сканер штрих-кода: от луча лазера до данных на экране
Сканер штрих-кода работает просто: луч света (лазерный или светодиодный) освещает полосы кода, тёмные линии поглощают свет, а светлые отражают его обратно на фотодатчик. Фотодатчик превращает чередование яркости в электрический сигнал, декодер считает длительности импульсов и переводит их в цифры, которые поступают в кассовую программу или систему склада. Всё это занимает менее 100 миллисекунд.
Устройство лазерного сканера
Классический однолучевой сканер содержит полупроводниковый лазер с длиной волны 650 нм (красный диапазон). Луч падает на вращающееся зеркало или осциллирующую зеркальную пластину, которая разворачивает его в горизонтальную линию сканирования. Зеркало совершает от 40 до 100 качаний в секунду, поэтому луч пробегает по поверхности кода несколько десятков раз каждую секунду, что позволяет считать код даже при быстром перемещении товара.
Отражённый свет собирается линзой и направляется на фотодиод. Его выходной сигнал усиливается, проходит через компаратор (схему сравнения с пороговым уровнем) и превращается в двоичную последовательность: «1» при светлом промежутке, «0» при тёмной полосе. Декодер измеряет длительность каждого «0» и «1» и сравнивает их с таблицей символов выбранного стандарта кодировки.
Линейный и двумерный коды: в чём разница
Привычный штрих-код EAN-13, нанесённый на большинство товаров в российских магазинах, содержит 13 цифр, закодированных в 95 вертикальных полосах разной ширины. Для его считывания достаточно одной горизонтальной линии сканирования, поэтому недорогой однолучевой сканер справляется с задачей без труда.
Двумерные коды, например QR-код или Data Matrix, хранят информацию в матрице точек сразу в двух направлениях. Ёмкость QR-кода версии 40 достигает 4296 символов, тогда как EAN-13 кодирует только 13 цифр. Для чтения такого кода нужна камера или матричный сканер, который снимает двумерное изображение и обрабатывает его программно: находит поисковые квадраты в углах, исправляет искажения перспективы и декодирует содержимое через специальный алгоритм Рида-Соломона с коррекцией ошибок.
Сканеры на основе камеры: как работают имиджеры
Имиджер — сканер с матричной CMOS-камерой вместо лазера. Он делает снимок зоны считывания и обрабатывает изображение встроенным процессором. Такой подход позволяет читать любые типы кодов под любым углом, сканировать прямо с экрана смартфона и не требует механических движущихся частей. Скорость считывания у хорошего имиджера сопоставима с лазерным сканером: от 5 до 60 считываний в секунду.
Именно имиджеры используются в смартфонах: камера телефона постоянно анализирует кадр, а специальная библиотека (например, ZXing или встроенный декодер iOS и Android) распознаёт QR-коды в реальном времени. Качество считывания зависит от разрешения камеры, скорости автофокуса и алгоритма обработки.
Как сигнал попадает в программу
После декодирования числовой последовательности сканер передаёт данные в компьютер. Самый распространённый способ — эмуляция клавиатуры через USB-HID: сканер ведёт себя как клавиатура и «набирает» цифры кода в активное поле ввода. Программа кассы или склада воспринимает это как обычный ввод с клавиатуры.
Беспроводные сканеры передают данные по Bluetooth или радиоканалу 2,4 ГГц, а промышленные терминалы с экраном часто используют протоколы Wi-Fi и работают по корпоративной сети, передавая не просто цифры кода, но и привязанные к нему данные: наименование, цену, остаток на складе. В крупных распределительных центрах России такие системы обрабатывают сотни тысяч сканирований в сутки без ошибок именно благодаря надёжности базового принципа: свет, отражение, фотодатчик, декодер.