Сканер штрихкода. Как он работает?

Меня всегда интересовало, как сканеры распознают штрих-код — ведь он длинный, и просто фото-приемником не обойтись, придется использовать либо камеру с оптикой, и сложный софт для распознавания, либо проводить тонкой щелью с подсветкой по штрих-коду, причем придется городить и синхронизацию, как в ручных сканерах(колесико или очень равномерно вести).
Как оказалось, проблема не стоит и выеденного яйца — надо двигать не сканер, и не штрих-код. Надо двигать подсветку!
Пытаемся получить фотографию луча:
Сфокусированный луч лазерного диода, отражаясь от зеркала(смысловой нагрузки оно не несет, просто конструктивно удобнее расположить лазер рядом с остальными элементами конструкции. возможно, в других моделях по другому) попадает на отклоняющую систему, состоящую их электромагнита, и подвижного зеркало, с маленьким постоянным магнитом. При питании электромагнита прямоугольными импульсами(ну, по сути, можно питать хоть синусоидой) меняется и полярность магнитного поля, синхронно с ним двигается и подвижное зеркало. Соответственно, меняется угол отражения, луч двигается туда-сюда.
Смысл вы поняли? Сложно, но тем не менее, невероятно просто. Луч лазера, который двигает микроконтроллер, проходит попеременно светлые и темные участки штрих-кода. Известна скорость луча, известно время начало движения. А простой фотоприемник(с красным фильтром), опрашивается тем же контроллером на предмет яркости пятна. В тот момент, когда луч проходит светлый участок, яркость максимальна — весь свет отражается в фотоприемник. Когда же свет попадает на темный участок(полоску) штрих-кода, яркость минимальна, большая часть излучения поглощается темной краской.

Теперь контроллер знает длину светлых и темных участков. После нормализации(в этом ему помогает знание о скорости луча, и контрольные участки в начале, середине и конце штрих-кода), он по алгоритму(он немного разный для разных типов кодов) вычислят буквенно-цифровую строку, соответствующую картинке, и передает ее на компьютер, не забыв мигнуть лампочкой и пикнуть буззером.
Ага, попался. Третьего луча не видно, потому что с точки зрения фотоаппарата, да и глаза, это не луч, а сектор круга, соответственно, яркость намного снижена.
Зеленым пунктиром обозначены возможные положения зеркала, синими стрелками — колебания зеркала и луча на выходе, красной линией и пунктиром — путь прохождения луча.
Плата, еще плата:
В полусборе выглядит так:
В качестве разъема используется 10P10C:
Модель и внешний вид:
Подключается он по стандартному разьему PS/2, эмулирует клавиатуру, после штрих-кода выдает ентер. Это позволяет записывать коды хоть в блокнот.

- +15
- 08 марта 2011, 18:07
- vvzvlad
Спасибо за обзор! Меня самого раньше терзала идея насчет того каким образом они работают.
- perry_moshkin
- 08 марта 2011, 18:39
- ↓
Статья не открыла сути. Даже не ответила на Ваши мысли «просто фото-приемником не обойтись, придется использовать либо камеру с оптикой, и сложный софт для распознавания, либо проводить тонкой щелью „
Я ожидал найти в этом посте принцип функционала распознавания самого штрих-кода, а не принцип позиционирования
>>>>>Но в сканерах немногое с тех пор изменилось
В современных ручных так и осталось разве что элементная база поменялась, а в настольных, например Магеланах крутится призма и там сложная система зеркал.
Я ожидал найти в этом посте принцип функционала распознавания самого штрих-кода, а не принцип позиционирования
>>>>>Но в сканерах немногое с тех пор изменилось
В современных ручных так и осталось разве что элементная база поменялась, а в настольных, например Магеланах крутится призма и там сложная система зеркал.
ну, как стало понятно — можно обойтись и фотоприемником, считывая яркость луча в известные промежутки времени. принцип распознавания — это уже математика, а мне была интересна сама идея.
разбирал я настольный. тоже самое, только лазеров больше, призма крутится, на каждую полосу — свой датчик. ну и сложная система синхронизации всего этого добра
разбирал я настольный. тоже самое, только лазеров больше, призма крутится, на каждую полосу — свой датчик. ну и сложная система синхронизации всего этого добра
В том то и дело что не понятно. Вы лишь изложили суть позиционирования лазера. Про «можно обойтись и фотоприемником, считывая яркость » слова не было. А из фразы «надо двигать не сканер, и не штрих-код. Надо двигать подсветку!» совсем не делается вывод что «можно обойтись и фотоприемником, считывая яркость ».
Я лишь излагаю свою критику. Знающие люди проглотят эту статью додумав недостающее сами, либо проглотят не заметив.
Начинающим или незнающим эту тему будет сложно понять.
Я лишь излагаю свою критику. Знающие люди проглотят эту статью додумав недостающее сами, либо проглотят не заметив.
Начинающим или незнающим эту тему будет сложно понять.
А мне попался сканер без лазера, но со светодиодами… И приемником там была ПЗС-матрица длиной с отпечаток штрих-кода. То есть вариантов исполнения сканеров масса, главное — что и как они передают в ПК.
В качестве разьема решили не заморачиваться, и использовали RG45там 10 контактов.
Подключается он по стандартному разьему PS/2
а так же по RS232 и USB (HID или RS232 эмуляция)
после штрих-кода выдает ентера может и до. и не только энтер. Что жать в начале (до 3-х символов для Voyager, что у вас) и в конце настраивают с помощью настроечных шк
там 10 контактов.поправил.
а так же по RS232 и USB (HID или RS232 эмуляция)так usb там нет вообще?
а может и до. и не только энтер. Что жать в начале (до 3-х символов для Voyager, что у вас) и в конце настраивают с помощью настроечных шко. спасибо, интересно.
Куда то сдриснули все картинки. Видать пикаса зажмотила. Ты бы их или в пост загрузил или на habreffect.ru/ загрузил.
Описание, классификация и принцип работы сканеров штрих-кода www.bar-code.ru/state_scaner.html, www.jasmi.ru/automation/scan.html.
Может кто самодельный сканер сделал или делает. Готовые то стоят мама не горюй. А содержимое а ля мышка компьютерная… Тема то интересная и востребованная. Домашняя библиотека, картотека, мини склад радиодеталей по коробкам и пакетикам (в смысле учёт)…
Может кто самодельный сканер сделал или делает. Готовые то стоят мама не горюй. А содержимое а ля мышка компьютерная… Тема то интересная и востребованная. Домашняя библиотека, картотека, мини склад радиодеталей по коробкам и пакетикам (в смысле учёт)…
500 рублей — не настолько много, чтоб заморачиваться с самоделкой.
кто будет смотреть — у второй ссылке точка в конце, уберите прежде чем открывать.
кто будет смотреть — у второй ссылке точка в конце, уберите прежде чем открывать.
Хотелось бы альтернативу www.scancode.ru/catalog/item/13/353/
Ну или что то близкое. Если это реально кустарным способом сделать…
Ну или что то близкое. Если это реально кустарным способом сделать…
ну, сделать-то реально. вопрос только в блоке развертки(который с зеркалами и лазером). да и бт прикрутить не проблема. только вот обойдется это дороже, чем аналогичное промышленное решение :)
Примерно таким образом www.un7ppx.narod.ru/device1/indicator26.htm
Только с учётом современной элементной базы.
Только с учётом современной элементной базы.
www.sunsky-online.com/list/100906.htm
и инфракрасные, и лазерные, и юсб.
и инфракрасные, и лазерные, и юсб.
1с — это домашнее применение?)
скорее всего будет, китайцы не дураки, и вряд ли стали что-то мутить с протоколами. да и настроить наверняка можно.
ну вот этот точно будет — www.sunsky-online.com/view/20442/PS2+Barcode+Scanner+Laser+Reader+Metrologic.htm
раз он ps2, значит эмулирует клавиатуру.
скорее всего будет, китайцы не дураки, и вряд ли стали что-то мутить с протоколами. да и настроить наверняка можно.
ну вот этот точно будет — www.sunsky-online.com/view/20442/PS2+Barcode+Scanner+Laser+Reader+Metrologic.htm
раз он ps2, значит эмулирует клавиатуру.
Комментарии (54)
RSS свернуть / развернуть