Сканер считывания бар-кода
- Spirit412
- Встал на лапы
- Сообщения: 125
- Зарегистрирован: Пн авг 04, 2008 10:54:11
- Откуда: Питер
- Контактная информация:
Re: Сканер считывания бар-кода
Если я правильно посчитал, то получаются следующие результаты.
Расстояние по фронтам синхрометки 6мм
Толщина самой тонкой линии 1мм, толстой 2мм
В общем, при условии что склейка работает 1 пачка/секунду, то время прохождения этих 6мм в синхрометке через оптику - 10 000 микросекунд, а на самую тонкую линию выходит 1 666 микросекунд.
А вот если 60 пачек/секунду, то время прохождения этих 6мм в синхрометке через оптику - 167 микросекунд, а на самую тонкую линию выходит 28 микросекунд.
Это исходя из того что длинна клапана пачки 100мм.
Мне кажется достаточно будет сделать фильтр на минимум = 20 микросекунд. Достаточно что бы отсеять ненужное.
Если я правильно понимаю даташит на LM339 - то скорость его срабатывания 1,3 мс, чего за глаза хватит.
Расстояние по фронтам синхрометки 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: Сканер считывания бар-кода
А как быть, если скорость движения картона изменится именно в процессе чтения бар-кода?walkerru писал(а):DX168B, вы опять не про то. Чем разительно ваши дополнительные метки отличаются от начала основных баров? Это одна и та же точка.
В таких механизмах это часто происходит, чуть ли не через каждый третий экземпляр. Тем более скорость там большая. Чуть застрянет и ппц.
Я имею в виду, что в простых устройствах чтения скорость строго постоянна и чтение завязано сильно за управление шаговиком, который производит отклонение лазерного луча.
Плюс к этому бар-код считывается несколько раз, чтобы исключить ошибки. А тут вы пытаетесь сделать однократное чтение без ошибок. Да это очень сложно, можно сказать, что даже нереально сделать стабильное чтение с первого раза. Как бы не извращались. Если станок небыл изначально рассчитан на синхронную скорость, то стабильности можно даже не ожидать. Нужно либо распечатать бар-код несколько раз, либо синхронизировать, как я предлагал.
Раз вы подошли к этому с другой стороны, то предлагаю распечатывать бар-код на картоне несколько раз, а в МК внести запись этих попыток чтения, и если результаты большинства попыток сходятся, то тогда можно считать, что бар-код считан правильно. Далее можно приступить к его сравнению с заранее заданным, чтобы принять правильное решение.
Этот мой пост верен только в том случае, если я правильно понял расположение бар-кода по отношению к направлению движения заготовки.
I am DX168B and this is my favourite forum on internet!
- Spirit412
- Встал на лапы
- Сообщения: 125
- Зарегистрирован: Пн авг 04, 2008 10:54:11
- Откуда: Питер
- Контактная информация:
Re: Сканер считывания бар-кода
Да, понял правильно.
Но на "заводское" устройство считывает один раз! При этом не зависит от модели и производителя устройства.
Найду образец пачки с баркодом от промышленного сканера - отсканирую и размещу здесь.
Но на "заводское" устройство считывает один раз! При этом не зависит от модели и производителя устройства.
Найду образец пачки с баркодом от промышленного сканера - отсканирую и размещу здесь.
- walkerru
- Сверлит текстолит когтями
- Сообщения: 1223
- Зарегистрирован: Вс май 16, 2010 15:56:54
- Откуда: Москва
Re: Сканер считывания бар-кода
Не факт, что заводское считывает 1 раз. Лучом оно водит туда-сюда неоднократно, пока не распознает. По крайней мере, ручные считыватели.
А избыточность и так предусматривается: трёхканальный считыватель с принятим решений голосованием.
А вообще, мы, как обычно, дольше обсуждаем. Спаять опытный образец - да пробовать ))
Так, в том-то и дело, что вы предлагали некую избыточность. Фронты ваших синхрометок в точностью совпадают с фронтами основных баров. Единственное отличие - ваши синхрометки имеют одинаковую ширину. Но зато сильно усложняют создание баркода. Кто мешает, если уж сильно надо, ту же 555 запускать по фронту бара или Watchdog? Чем это будет от вашей идеи отличаться?DX168B писал(а):либо синхронизировать, как я предлагал.
А избыточность и так предусматривается: трёхканальный считыватель с принятим решений голосованием.
А вообще, мы, как обычно, дольше обсуждаем. Спаять опытный образец - да пробовать ))
- Spirit412
- Встал на лапы
- Сообщения: 125
- Зарегистрирован: Пн авг 04, 2008 10:54:11
- Откуда: Питер
- Контактная информация:
Re: Сканер считывания бар-кода
Спаять...
Сейчас изучаю мануалы и черчу схему в протеусе для оптической схемы.
Пробовать буду на макетке. В качестве первичного стенда думаю взять дрель с диском, наклеить на диск распечатку с баркодами (1-8 штук разных)... установлю считыватель и буду смотреть сможет ли он все баркоды считать? на разной скорости? и т.п.
Что-то picavr затягивает с отправкой посылки с AD USB Analyzer
Сейчас изучаю мануалы и черчу схему в протеусе для оптической схемы.
Пробовать буду на макетке. В качестве первичного стенда думаю взять дрель с диском, наклеить на диск распечатку с баркодами (1-8 штук разных)... установлю считыватель и буду смотреть сможет ли он все баркоды считать? на разной скорости? и т.п.
Что-то picavr затягивает с отправкой посылки с AD USB Analyzer
- Реклама
- walkerru
- Сверлит текстолит когтями
- Сообщения: 1223
- Зарегистрирован: Вс май 16, 2010 15:56:54
- Откуда: Москва
Re: Сканер считывания бар-кода
Тогда уж ленточная шлифмашина ближе к конвейеру )) чем дрель... Или останки шлифмашины с приводом от дрелиSpirit412 писал(а):Пробовать буду на макетке. В качестве первичного стенда думаю взять дрель с диском, наклеить на диск распечатку с баркодами (1-8 штук разных)... установлю считыватель и буду смотреть сможет ли он все баркоды считать? на разной скорости? и т.п.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Сканер считывания бар-кода
Неее, мой принцип основан не на ширинах рисок, а на "есть риска" и "нет риски"
Риски синхронизации переключают бит в сдвиговом регистре. То есть дают команду проверки наличия риски. Если она есть, то 0, если её нет, то 1. Я вам предлагаю банальный SPI (USI в трёхпроводном режиме). Даже совковые сдвиговые регистры смогут считать такой бар-код. Такой метод вообще не упирается во время измерения. То есть тут не мерится длинна рисок, а проверяется лишь её наличие или отсутствие по поступлению импульса с синхрориски.
Риски синхронизации переключают бит в сдвиговом регистре. То есть дают команду проверки наличия риски. Если она есть, то 0, если её нет, то 1. Я вам предлагаю банальный SPI (USI в трёхпроводном режиме). Даже совковые сдвиговые регистры смогут считать такой бар-код. Такой метод вообще не упирается во время измерения. То есть тут не мерится длинна рисок, а проверяется лишь её наличие или отсутствие по поступлению импульса с синхрориски.
I am DX168B and this is my favourite forum on internet!
- walkerru
- Сверлит текстолит когтями
- Сообщения: 1223
- Зарегистрирован: Вс май 16, 2010 15:56:54
- Откуда: Москва
Re: Сканер считывания бар-кода
Так кто мешает сделать то же по фронту бара, если нужно? Бары тоже есть всегда, фронты там же. Зачем дополнительные риски?
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Сканер считывания бар-кода
Почитайте и поймёте. http://www.ntlib.chat.ru/avr/spi.htm
Дополнительными рисками надо дёргать линию SCK микроконтроллера. А те, что пошире - на вход MOSI МК. Всё. И больше ничего мудрить не надо.
Я же так сделал себе считыватель карточек авторизации. Идеально работает.
Проверку кода реализовал в прерывании по приёму и всё.
Дополнительными рисками надо дёргать линию 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: Сканер считывания бар-кода
Чего там читать-то? SPI и SPI. Я про то, что SCK замечательно по фронту бара формируется, без каких-либо дополнительных баров.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Сканер считывания бар-кода
Опять Вы меня не поняли.
Ладно.
Хотя можно фотодиоды по другому расположить и можно и так сделать, но это уже будет зависеть от типа свигового регистра.

Нижние (широкие риски) это риски данных. Они все одной ширины, но некоторые есть под метками (верхние узкие) а некоторых нет. Вот нижние и формируют байт данных, а верхние дают команду "Считать" есть внизу риска или нет.
Хотя можно фотодиоды по другому расположить и можно и так сделать, но это уже будет зависеть от типа свигового регистра.
Нижние (широкие риски) это риски данных. Они все одной ширины, но некоторые есть под метками (верхние узкие) а некоторых нет. Вот нижние и формируют байт данных, а верхние дают команду "Считать" есть внизу риска или нет.
Последний раз редактировалось 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: Сканер считывания бар-кода
А как дело обстоит с фильтрацией помех?
Вечером выложу образцы заводского исполнения баркодов.
Что странно - вначале печатного клапана есть метка, через некоторый промежуток - сам баркод. На двух разных пачка с разной длинной печатного клапана расстояние от метки до баркода - разное.
Вечером выложу образцы заводского исполнения баркодов.
Что странно - вначале печатного клапана есть метка, через некоторый промежуток - сам баркод. На двух разных пачка с разной длинной печатного клапана расстояние от метки до баркода - разное.
- walkerru
- Сверлит текстолит когтями
- Сообщения: 1223
- Зарегистрирован: Вс май 16, 2010 15:56:54
- Откуда: Москва
Re: Сканер считывания бар-кода
Ну да. И так, и так можно.
У вас 0 - нет бара, 1 - есть бар. Тогда нужны синхры. И то, можно генератор ведомый засунуть, как в телевизоре: молотит себе, как синхро пришло - синхронизируется.
У меня 0 - узкая полоска, 1 - широкая. Фронты всегда есть.
А уж что автор выберет - его задача.
У вас 0 - нет бара, 1 - есть бар. Тогда нужны синхры. И то, можно генератор ведомый засунуть, как в телевизоре: молотит себе, как синхро пришло - синхронизируется.
У меня 0 - узкая полоска, 1 - широкая. Фронты всегда есть.
А уж что автор выберет - его задача.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Сканер считывания бар-кода
Её ещё надо отличить от "мусора"
Наверное надо расположить оптику так, чтобы мусор не через неё проходил, а рядом.
В магазинных считывателях он считывается несколько раз. Я даже эксперимент со знакомой продавщицей сделал. Подставили бар-код к лучу, но дёргали ту-суда этот бар-код. Прибор не давал никакой реакции, но как только бар-код замер на одном месте, так сразу и считалось.
То есть получается, что он читается несколько раз, и каждый этот раз регистрируется. Если за сеанс чтения все зарегистрированные данные отличаются друг от друга, или хотя-бы один отличается от остальных, то такой бар-код отсеивается. Если за сеанс при всех попытках считалось одинаково, то бар-код принимается во внимание.
Нам наверное надо расположить несколько параллельных считывателей в автомате, но завести их в один МК. Чтобы дать возможность считаться бар-коду несколько раз.
Можно найти 2 точки на картоне на определённом расстоянии, которое больше ни где не повторяется, расположить 2 датчика на этом расстоянии, и по их одновременному сигналу начинать считывание.
Наверное надо расположить оптику так, чтобы мусор не через неё проходил, а рядом.
В магазинных считывателях он считывается несколько раз. Я даже эксперимент со знакомой продавщицей сделал. Подставили бар-код к лучу, но дёргали ту-суда этот бар-код. Прибор не давал никакой реакции, но как только бар-код замер на одном месте, так сразу и считалось.
То есть получается, что он читается несколько раз, и каждый этот раз регистрируется. Если за сеанс чтения все зарегистрированные данные отличаются друг от друга, или хотя-бы один отличается от остальных, то такой бар-код отсеивается. Если за сеанс при всех попытках считалось одинаково, то бар-код принимается во внимание.
Нам наверное надо расположить несколько параллельных считывателей в автомате, но завести их в один МК. Чтобы дать возможность считаться бар-коду несколько раз.
Можно найти 2 точки на картоне на определённом расстоянии, которое больше ни где не повторяется, расположить 2 датчика на этом расстоянии, и по их одновременному сигналу начинать считывание.
I am DX168B and this is my favourite forum on internet!
- Spirit412
- Встал на лапы
- Сообщения: 125
- Зарегистрирован: Пн авг 04, 2008 10:54:11
- Откуда: Питер
- Контактная информация:
Re: Сканер считывания бар-кода
Автору - чем проще система - тем лучше.
Только как уложиться с двумя рядами меток в полоску шириной 6мм ?
+ в этот размер уместить две параллельно стоящие оптические пары?
Только как уложиться с двумя рядами меток в полоску шириной 6мм ?
+ в этот размер уместить две параллельно стоящие оптические пары?
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Сканер считывания бар-кода
Ну раз нет возможности, не буду спорить. Я просто предложил, но если не подходит, значит остаётся только стандартный метод с узкими и широкими полосками.
Теперь у Вас стоит вопрос об отсеивании мусора. Вот тут-то надо подумать.
Теперь у Вас стоит вопрос об отсеивании мусора. Вот тут-то надо подумать.
I am DX168B and this is my favourite forum on internet!
- Spirit412
- Встал на лапы
- Сообщения: 125
- Зарегистрирован: Пн авг 04, 2008 10:54:11
- Откуда: Питер
- Контактная информация:
Re: Сканер считывания бар-кода
Я не говорил что нет возможности! Просто я не представляю где найти оптические элементы толщиной в 3мм.
Тут уже я решил (для себя).
Линия делает 150т.коробок (в зависимости от длинны клапана) в смену (8 часов).
Вероятность пересортицы - небольшая.
Если линия остановится 2-4 раза за смену - это не страшно.
Вопрос:
почему нельзя использовать оптику от оптической мыши? Там ведь и излучатель, и приёмник есть.... они согласованы между собой по длине волны.
Тут уже я решил (для себя).
Линия делает 150т.коробок (в зависимости от длинны клапана) в смену (8 часов).
Вероятность пересортицы - небольшая.
Если линия остановится 2-4 раза за смену - это не страшно.
Вопрос:
почему нельзя использовать оптику от оптической мыши? Там ведь и излучатель, и приёмник есть.... они согласованы между собой по длине волны.
- Spirit412
- Встал на лапы
- Сообщения: 125
- Зарегистрирован: Пн авг 04, 2008 10:54:11
- Откуда: Питер
- Контактная информация:
Re: Сканер считывания бар-кода
Отсканировал пачки с баркодами для от "заводского" сканера
Вот.
Надо учесть что пачка была склеена, и в нашем случае следов клея и прочего не будет.
Мне кажется идеальным фильтром будет предложенное ранее решение - поставить последовательно друг за другом три оптических считывателя, в случае если минимум два показания совпадают - пачки считана верно.... и далее идёт расшифровка показания (сверка его с БД).
Надо учесть что пачка была склеена, и в нашем случае следов клея и прочего не будет.
Мне кажется идеальным фильтром будет предложенное ранее решение - поставить последовательно друг за другом три оптических считывателя, в случае если минимум два показания совпадают - пачки считана верно.... и далее идёт расшифровка показания (сверка его с БД).
- Вложения
-
- Scan-110411-0001.jpg
- (66.76 КБ) 614 скачиваний
- Spirit412
- Встал на лапы
- Сообщения: 125
- Зарегистрирован: Пн авг 04, 2008 10:54:11
- Откуда: Питер
- Контактная информация:
Re: Сканер считывания бар-кода
Я вот что подумал.
Можно взять идею DX168B, но нужно её модернизировать...
Две полоски штрихов не параллельно, а область с узкими и область с широкими (несущими информацию) расположить на некотором известном расстоянии (по фронтам этих областей) Z-constanta. Так же расположить два оптических даткичика последовательно, друг-за-другом на расстоянии Z-constanta...
(Условие: прибор не двигается. Пачка движется слева на право. Датчика нумеруются слева на право). Получится что данные с первого датчика будут приниматься когда под вторым будет область с узкими штрихами.
Ну и - когда коробка только начинает проходить над прибором, то сначало область с узкими штрихами проходит над первым датчиком... в это время под вторым датчиком пустота... и шумы.
Вот как-то так.
Мне кажется этот вариант проще. Нет нужды придумывать фильтры... дублировать датчики для проверки...
А ещё... что бы не делать БД в МК, то думаю следует поступить так.
Нажимаем на приборе кнопку.... прогоняем первую пачку с баркодом под прибором. Он запоминает баркод, и если попадается пачка с другим баркодом - останавливает линию. Для пачек другой серии - сбрасываем память... и повторяем.
Можно взять идею DX168B, но нужно её модернизировать...
Две полоски штрихов не параллельно, а область с узкими и область с широкими (несущими информацию) расположить на некотором известном расстоянии (по фронтам этих областей) Z-constanta. Так же расположить два оптических даткичика последовательно, друг-за-другом на расстоянии Z-constanta...
(Условие: прибор не двигается. Пачка движется слева на право. Датчика нумеруются слева на право). Получится что данные с первого датчика будут приниматься когда под вторым будет область с узкими штрихами.
Ну и - когда коробка только начинает проходить над прибором, то сначало область с узкими штрихами проходит над первым датчиком... в это время под вторым датчиком пустота... и шумы.
Вот как-то так.
Мне кажется этот вариант проще. Нет нужды придумывать фильтры... дублировать датчики для проверки...
А ещё... что бы не делать БД в МК, то думаю следует поступить так.
Нажимаем на приборе кнопку.... прогоняем первую пачку с баркодом под прибором. Он запоминает баркод, и если попадается пачка с другим баркодом - останавливает линию. Для пачек другой серии - сбрасываем память... и повторяем.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Сканер считывания бар-кода
В принципе можно. Первым расположен датчик, считывающий данные, за ним на определённом расстоянии синхродатчик. Первый датчик не считает ничего, пока над вторым (синхр) не проскочит штрих. Сначала пройдут синхроштрихи, но они не прочитаются, так как на синхродатчике ничего ещё нет. Их, кстати даже можно использовать как некий сигнал, разрешающий общее чтение. За тем синхроштрихи подъезжают ко второму датчику, а за ними к первому подходят штрихи данных. За время подхода МК врубит SPI режим. (2 строчки ассемблерного кода) И уже происходит чтение. Как пройдут эти 8 штрихов, в МК срабатывает прерывание. А дальше можно отрубить общее чтение, очистив регистры управления SPI и уже принимать решение.
I am DX168B and this is my favourite forum on internet!


