Сканер считывания бар-кода

Обсуждаем цифровые устройства...
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение Spirit412 »

Если я правильно посчитал, то получаются следующие результаты.
Расстояние по фронтам синхрометки 6мм
Толщина самой тонкой линии 1мм, толстой 2мм

В общем, при условии что склейка работает 1 пачка/секунду, то время прохождения этих 6мм в синхрометке через оптику - 10 000 микросекунд, а на самую тонкую линию выходит 1 666 микросекунд.

А вот если 60 пачек/секунду, то время прохождения этих 6мм в синхрометке через оптику - 167 микросекунд, а на самую тонкую линию выходит 28 микросекунд.
Это исходя из того что длинна клапана пачки 100мм.

Мне кажется достаточно будет сделать фильтр на минимум = 20 микросекунд. Достаточно что бы отсеять ненужное.
Если я правильно понимаю даташит на LM339 - то скорость его срабатывания 1,3 мс, чего за глаза хватит.
Вложения
Схема.png
(49.3 КБ) 529 скачиваний
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение DX168B »

walkerru писал(а):DX168B, вы опять не про то. Чем разительно ваши дополнительные метки отличаются от начала основных баров? Это одна и та же точка.
А как быть, если скорость движения картона изменится именно в процессе чтения бар-кода?
В таких механизмах это часто происходит, чуть ли не через каждый третий экземпляр. Тем более скорость там большая. Чуть застрянет и ппц.
Я имею в виду, что в простых устройствах чтения скорость строго постоянна и чтение завязано сильно за управление шаговиком, который производит отклонение лазерного луча.
Плюс к этому бар-код считывается несколько раз, чтобы исключить ошибки. А тут вы пытаетесь сделать однократное чтение без ошибок. Да это очень сложно, можно сказать, что даже нереально сделать стабильное чтение с первого раза. Как бы не извращались. Если станок небыл изначально рассчитан на синхронную скорость, то стабильности можно даже не ожидать. Нужно либо распечатать бар-код несколько раз, либо синхронизировать, как я предлагал.
Раз вы подошли к этому с другой стороны, то предлагаю распечатывать бар-код на картоне несколько раз, а в МК внести запись этих попыток чтения, и если результаты большинства попыток сходятся, то тогда можно считать, что бар-код считан правильно. Далее можно приступить к его сравнению с заранее заданным, чтобы принять правильное решение.

Этот мой пост верен только в том случае, если я правильно понял расположение бар-кода по отношению к направлению движения заготовки.
I am DX168B and this is my favourite forum on internet!
Реклама
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение Spirit412 »

Да, понял правильно.
Но на "заводское" устройство считывает один раз! При этом не зависит от модели и производителя устройства.
Найду образец пачки с баркодом от промышленного сканера - отсканирую и размещу здесь.
Аватара пользователя
walkerru
Сверлит текстолит когтями
Сообщения: 1223
Зарегистрирован: Вс май 16, 2010 15:56:54
Откуда: Москва

Re: Сканер считывания бар-кода

Сообщение walkerru »

Не факт, что заводское считывает 1 раз. Лучом оно водит туда-сюда неоднократно, пока не распознает. По крайней мере, ручные считыватели.
DX168B писал(а):либо синхронизировать, как я предлагал.
Так, в том-то и дело, что вы предлагали некую избыточность. Фронты ваших синхрометок в точностью совпадают с фронтами основных баров. Единственное отличие - ваши синхрометки имеют одинаковую ширину. Но зато сильно усложняют создание баркода. Кто мешает, если уж сильно надо, ту же 555 запускать по фронту бара или Watchdog? Чем это будет от вашей идеи отличаться?
А избыточность и так предусматривается: трёхканальный считыватель с принятим решений голосованием.

А вообще, мы, как обычно, дольше обсуждаем. Спаять опытный образец - да пробовать ))
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение Spirit412 »

Спаять...
Сейчас изучаю мануалы и черчу схему в протеусе для оптической схемы.
Пробовать буду на макетке. В качестве первичного стенда думаю взять дрель с диском, наклеить на диск распечатку с баркодами (1-8 штук разных)... установлю считыватель и буду смотреть сможет ли он все баркоды считать? на разной скорости? и т.п.

Что-то picavr затягивает с отправкой посылки с AD USB Analyzer :(
Реклама
Аватара пользователя
walkerru
Сверлит текстолит когтями
Сообщения: 1223
Зарегистрирован: Вс май 16, 2010 15:56:54
Откуда: Москва

Re: Сканер считывания бар-кода

Сообщение walkerru »

Spirit412 писал(а):Пробовать буду на макетке. В качестве первичного стенда думаю взять дрель с диском, наклеить на диск распечатку с баркодами (1-8 штук разных)... установлю считыватель и буду смотреть сможет ли он все баркоды считать? на разной скорости? и т.п.
Тогда уж ленточная шлифмашина ближе к конвейеру )) чем дрель... Или останки шлифмашины с приводом от дрели ;) А можно вручную листок с баркодом продёргивать )
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение DX168B »

Неее, мой принцип основан не на ширинах рисок, а на "есть риска" и "нет риски"
Риски синхронизации переключают бит в сдвиговом регистре. То есть дают команду проверки наличия риски. Если она есть, то 0, если её нет, то 1. Я вам предлагаю банальный SPI (USI в трёхпроводном режиме). Даже совковые сдвиговые регистры смогут считать такой бар-код. Такой метод вообще не упирается во время измерения. То есть тут не мерится длинна рисок, а проверяется лишь её наличие или отсутствие по поступлению импульса с синхрориски.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
walkerru
Сверлит текстолит когтями
Сообщения: 1223
Зарегистрирован: Вс май 16, 2010 15:56:54
Откуда: Москва

Re: Сканер считывания бар-кода

Сообщение walkerru »

Так кто мешает сделать то же по фронту бара, если нужно? Бары тоже есть всегда, фронты там же. Зачем дополнительные риски?
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение DX168B »

Почитайте и поймёте. http://www.ntlib.chat.ru/avr/spi.htm
Дополнительными рисками надо дёргать линию SCK микроконтроллера. А те, что пошире - на вход MOSI МК. Всё. И больше ничего мудрить не надо. :)
Я же так сделал себе считыватель карточек авторизации. Идеально работает. :)
Проверку кода реализовал в прерывании по приёму и всё. :)
Последний раз редактировалось DX168B Пн апр 11, 2011 12:49:50, всего редактировалось 1 раз.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
walkerru
Сверлит текстолит когтями
Сообщения: 1223
Зарегистрирован: Вс май 16, 2010 15:56:54
Откуда: Москва

Re: Сканер считывания бар-кода

Сообщение walkerru »

Чего там читать-то? SPI и SPI. Я про то, что SCK замечательно по фронту бара формируется, без каких-либо дополнительных баров.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение DX168B »

Опять Вы меня не поняли. :) Ладно.
Хотя можно фотодиоды по другому расположить и можно и так сделать, но это уже будет зависеть от типа свигового регистра.

Изображение
Нижние (широкие риски) это риски данных. Они все одной ширины, но некоторые есть под метками (верхние узкие) а некоторых нет. Вот нижние и формируют байт данных, а верхние дают команду "Считать" есть внизу риска или нет.
Последний раз редактировалось DX168B Пн апр 11, 2011 12:55:49, всего редактировалось 1 раз.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение Spirit412 »

А как дело обстоит с фильтрацией помех?
Вечером выложу образцы заводского исполнения баркодов.
Что странно - вначале печатного клапана есть метка, через некоторый промежуток - сам баркод. На двух разных пачка с разной длинной печатного клапана расстояние от метки до баркода - разное.
Аватара пользователя
walkerru
Сверлит текстолит когтями
Сообщения: 1223
Зарегистрирован: Вс май 16, 2010 15:56:54
Откуда: Москва

Re: Сканер считывания бар-кода

Сообщение walkerru »

Ну да. И так, и так можно.
У вас 0 - нет бара, 1 - есть бар. Тогда нужны синхры. И то, можно генератор ведомый засунуть, как в телевизоре: молотит себе, как синхро пришло - синхронизируется.
У меня 0 - узкая полоска, 1 - широкая. Фронты всегда есть.

А уж что автор выберет - его задача.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение DX168B »

Её ещё надо отличить от "мусора"
Наверное надо расположить оптику так, чтобы мусор не через неё проходил, а рядом.
В магазинных считывателях он считывается несколько раз. Я даже эксперимент со знакомой продавщицей сделал. Подставили бар-код к лучу, но дёргали ту-суда этот бар-код. Прибор не давал никакой реакции, но как только бар-код замер на одном месте, так сразу и считалось.
То есть получается, что он читается несколько раз, и каждый этот раз регистрируется. Если за сеанс чтения все зарегистрированные данные отличаются друг от друга, или хотя-бы один отличается от остальных, то такой бар-код отсеивается. Если за сеанс при всех попытках считалось одинаково, то бар-код принимается во внимание.
Нам наверное надо расположить несколько параллельных считывателей в автомате, но завести их в один МК. Чтобы дать возможность считаться бар-коду несколько раз.

Можно найти 2 точки на картоне на определённом расстоянии, которое больше ни где не повторяется, расположить 2 датчика на этом расстоянии, и по их одновременному сигналу начинать считывание.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение Spirit412 »

Автору - чем проще система - тем лучше.
Только как уложиться с двумя рядами меток в полоску шириной 6мм ?
+ в этот размер уместить две параллельно стоящие оптические пары?
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение DX168B »

Ну раз нет возможности, не буду спорить. Я просто предложил, но если не подходит, значит остаётся только стандартный метод с узкими и широкими полосками. :)
Теперь у Вас стоит вопрос об отсеивании мусора. Вот тут-то надо подумать. :)
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение Spirit412 »

Я не говорил что нет возможности! Просто я не представляю где найти оптические элементы толщиной в 3мм.
Тут уже я решил (для себя).
Линия делает 150т.коробок (в зависимости от длинны клапана) в смену (8 часов).
Вероятность пересортицы - небольшая.
Если линия остановится 2-4 раза за смену - это не страшно.

Вопрос:
почему нельзя использовать оптику от оптической мыши? Там ведь и излучатель, и приёмник есть.... они согласованы между собой по длине волны.
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение Spirit412 »

Отсканировал пачки с баркодами для от "заводского" сканера
Scan-110411-0001.jpg
(66.76 КБ) 565 скачиваний
Вот.
Надо учесть что пачка была склеена, и в нашем случае следов клея и прочего не будет.

Мне кажется идеальным фильтром будет предложенное ранее решение - поставить последовательно друг за другом три оптических считывателя, в случае если минимум два показания совпадают - пачки считана верно.... и далее идёт расшифровка показания (сверка его с БД).
Вложения
Scan-110411-0001.jpg
(66.76 КБ) 614 скачиваний
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение Spirit412 »

Я вот что подумал.
Можно взять идею DX168B, но нужно её модернизировать...
Две полоски штрихов не параллельно, а область с узкими и область с широкими (несущими информацию) расположить на некотором известном расстоянии (по фронтам этих областей) Z-constanta. Так же расположить два оптических даткичика последовательно, друг-за-другом на расстоянии Z-constanta...
(Условие: прибор не двигается. Пачка движется слева на право. Датчика нумеруются слева на право). Получится что данные с первого датчика будут приниматься когда под вторым будет область с узкими штрихами.
Ну и - когда коробка только начинает проходить над прибором, то сначало область с узкими штрихами проходит над первым датчиком... в это время под вторым датчиком пустота... и шумы.
Вот как-то так.
Мне кажется этот вариант проще. Нет нужды придумывать фильтры... дублировать датчики для проверки...

А ещё... что бы не делать БД в МК, то думаю следует поступить так.
Нажимаем на приборе кнопку.... прогоняем первую пачку с баркодом под прибором. Он запоминает баркод, и если попадается пачка с другим баркодом - останавливает линию. Для пачек другой серии - сбрасываем память... и повторяем.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Сканер считывания бар-кода

Сообщение DX168B »

В принципе можно. Первым расположен датчик, считывающий данные, за ним на определённом расстоянии синхродатчик. Первый датчик не считает ничего, пока над вторым (синхр) не проскочит штрих. Сначала пройдут синхроштрихи, но они не прочитаются, так как на синхродатчике ничего ещё нет. Их, кстати даже можно использовать как некий сигнал, разрешающий общее чтение. За тем синхроштрихи подъезжают ко второму датчику, а за ними к первому подходят штрихи данных. За время подхода МК врубит SPI режим. (2 строчки ассемблерного кода) И уже происходит чтение. Как пройдут эти 8 штрихов, в МК срабатывает прерывание. А дальше можно отрубить общее чтение, очистив регистры управления SPI и уже принимать решение.
I am DX168B and this is my favourite forum on internet!
Ответить

Вернуться в «Цифровая техника»