26.01.2015, 14:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
Сообщение от Boba_spb
|
Да вряд ли тяжелая - на каждый сегмент по три площадки, а далее просто мажоритарно определять включен сегмент или нет.
|
Во-во. Правда, как уже сказали, в обоих случаях придется выдумывать алгоритм обработки динамической индикации: в веб-камере можно суммировать изображения, а потом обрабатывать. Но это не спасет от фиксации момента переключения (скажем, сменилась единичка на шестерку, а вебка покажет восьмерку) → при смене цифры надо первое же значение не использовать, а проверять по следующему.
Аналогичная проблема при мониторинге выходов микроконтроллером: да, при помощи логической "ИЛИ" устанавливаем флаги. Здесь аналогично: как только получаем 2-3 последовательно совпадающих числа, выплевываем это число как новое.
Думаю, по трудозатратам второе проще, но первое интересней.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
26.01.2015, 15:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2004
Адрес: Bернулся в San Jose,CA,USA,Beach BLVD,свой дом,окна на океан-ничего личного,просто бизнес!
Сообщений: 1,098
Сказал спасибо: 22
Сказали Спасибо 423 раз(а) в 316 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
Сообщение от eddy
|
Во-во. Правда, как уже сказали, в обоих случаях придется выдумывать алгоритм обработки динамической индикации: в веб-камере можно суммировать изображения, а потом обрабатывать. Но это не спасет от фиксации момента переключения (скажем, сменилась единичка на шестерку, а вебка покажет восьмерку) → при смене цифры надо первое же значение не использовать, а проверять по следующему.
Аналогичная проблема при мониторинге выходов микроконтроллером: да, при помощи логической "ИЛИ" устанавливаем флаги. Здесь аналогично: как только получаем 2-3 последовательно совпадающих числа, выплевываем это число как новое.
Думаю, по трудозатратам второе проще, но первое интересней.
|
вопрос лишь в том зачем здесь мажоритарность ) включение ключа анода или катода индикатора однозначно дает вам код цифры изображаемой на индикаторе , просто читаете и все .
__________________
"Дворяне и их младые отроки должны всегда меж собою говорить на ВЫ и на иностранных языках, дабы тем навыкнуть могли, и чтобы их можно было от других незнающих болванов распознать."
Уложение о поведении (с) царь Пётр I
|
|
|
|
26.01.2015, 17:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
Сообщение от elon
|
вопрос лишь в том зачем здесь мажоритарность ) включение ключа анода или катода индикатора однозначно дает вам код цифры изображаемой на индикаторе , просто читаете и все .
|
Лишь в том случае, если цифра выводится разом. Потому как может быть динамическая индикация и по сегментам. Хотя, конечно, это значительно реже бывает, чем поцифровая динамическая. В общем, надо плясать от конкретного устройства: проснифить логическим анализатором цикл-другой и посмотреть, как реально это работает.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
26.01.2015, 17:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2004
Адрес: Bернулся в San Jose,CA,USA,Beach BLVD,свой дом,окна на океан-ничего личного,просто бизнес!
Сообщений: 1,098
Сказал спасибо: 22
Сказали Спасибо 423 раз(а) в 316 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
Сообщение от eddy
|
Лишь в том случае, если цифра выводится разом. Потому как может быть динамическая индикация и по сегментам. Хотя, конечно, это значительно реже бывает, чем поцифровая динамическая. В общем, надо плясать от конкретного устройства: проснифить логическим анализатором цикл-другой и посмотреть, как реально это работает.
|
Помилуйте друг мой .... а разница то какая как вы будете в контроллере дешифрировать по строкам или по столбцам ))) судя то тем отрывочным данным что предоставил первоисточник задачи все тривиально просто , обычная динамика , 4-10 индикаторов , общий анод , ( может быть производитель исхитрился и поставил туда что то вроде мах ... драйвера ) но суть решения проблемы это не меняет . Вы правы .. можно снифить можно без этого потому что на 99% все стандартно , достаточно ткнуть осцилом в индикатор и все сразу станет ясно
__________________
"Дворяне и их младые отроки должны всегда меж собою говорить на ВЫ и на иностранных языках, дабы тем навыкнуть могли, и чтобы их можно было от других незнающих болванов распознать."
Уложение о поведении (с) царь Пётр I
|
|
|
|
26.05.2015, 16:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2008
Адрес: Москва Щукино
Сообщений: 1,490
Сказал спасибо: 359
Сказали Спасибо 863 раз(а) в 362 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
Сообщение от eddy
|
Проще уж веб-камеру присобачить напротив и распознавать цифры.
|
В этом виде задача мной уже успешно решена. Соответствующий софт написан. Но работает не в онлайн режиме - софт обрабатывает скриншоты, снятые во время эксперимента. Обрабатывал данные с суточных экспериментов с ежесекундным снятием скриншота (более 80000 скриншотов на эксперимент). Время обработки вполне приемлемое. Ошибки случаются, но редко и на случай ошибок есть посткорректор, который убирает из текста явные ошибки и исправляет то, что можно исправить.
Суточные изменения освещенности влияют, но во-первых можно накрыть прибор с камерой чем-нибудь (я делал картонный тубус), во-вторых скриншоты легко разбиваются на группы со сходным освещением и группы обрабатываются отдельно (я с этого начинал, потом додумался до тубуса).
|
|
|
|
26.05.2015, 18:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
Сообщение от spamkerdyk
|
Но работает не в онлайн режиме - софт обрабатывает скриншоты, снятые во время эксперимента.
|
Там же элементарно все: преобразованиями Хафа находим параллельные прямые → вот и наш индикатор. Набрасываем сетку и распознаем сегменты. Это ж довольно-таки несложно. В реальном времени должно работать.
Если камеру жестко зафиксировать, то можно и вообще "гвоздями" приколотить нужные области.
Чтобы увеличить контраст, можно взять два поляризатора со старого разбитого ЖК. Один на экран, один (в той же ориентации) — на камеру. В итоге в 2 раза снизится интенсивность аддитивной помехи.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
27.05.2015, 16:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2008
Адрес: Москва Щукино
Сообщений: 1,490
Сказал спасибо: 359
Сказали Спасибо 863 раз(а) в 362 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
Да я не сомневаюсь, что онлайн столь же прост. Просто мне это было не нужно, а я писал именно под свои нужды и на скорую руку. Эксперимент шел сутками в режиме нон стоп, только снимали данные (и от скуки читали анекдоты), а обработкой занимались математики уже потом. Когда серия заканчивалась, я ее прогонял через обработчик и отсылал текст математикам.
И принцип считывания у меня был тупой, проще некуда. На каждый сегмент индикатора устанавливалась точка (в начале считывания серии нужно было мышкой на первом скриншоте щелкнуть по каждому сегменту, зафиксировать область считывания). "Точка" состояла из четырех пикселов. При считывании пикселы усреднялись, а распознавался их цвет: красный - горящий сегмент, черный - погасший (то есть, фактически яркость красного). При разности темного-яркого сегмента примерно 200, диапазон уверенного считывания был 100-150 - более, чем достаточно, чтобы читать без ошибок.
Поляризаторы - мысль хорошая, но по-моему уже излишняя. Даже при открытой камере, засвечиваемой из окна, программа давала мизер ошибок. Я разбивал суточную серию на примерно пятичасовые части и в пределах части было три - четыре ошибки. В основном в моменты, когда кто-то проходил около камеры и своим белым халатом подсвечивал табло вольтметра. А когда я закрыл камеру тубусом, ошибки вообще пропали.
Вот картинка, как это все выглядело. Картинка на экране программы - просто заставка. При таком изображении вольтметра об ошибках вообще речь не шла. Реальное изображение могло быть значительно хуже, менее контрастное, с пятнами засветки, все равно все нормально распознавалось.
К сожалению ни одной реальной картинки с эксперимента не осталось. После распознавания я все эти гигабайты bmp-шек удалял.
Последний раз редактировалось spamkerdyk; 27.05.2015 в 17:57.
|
|
|
|
27.05.2015, 18:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
spamkerdyk, что ж за прибор такой хитрый, что нельзя было собрать аналог либо вмешаться в его схему?
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
27.05.2015, 23:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Считывание с семисегментного индикатора
Вмешательство в работу опломбированных и поверенных приборов считается дурным тоном.
|
|
|
|
28.05.2015, 07:12
|
|
Частый гость
Регистрация: 30.05.2009
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Считывание с семисегментного индикатора
Сообщение от driverz
|
Возникла небольшая как на меня интересная задача.Есть прибор который выводит данные только на семисегментный индикатор, а их нужно получить на pc.Лезть в устройство прибора не возможно, возможно ли считать данные с индикатора (контролер на данный момент не известен) ? К примеру какой то arduino (для упрощения задачи)
|
Если есть доступ к индикатору самое простое и быстрое:
- взять по одному микроконтроллеру(а) (самый простой и дешевый) на каждую цифру, сколько всего цифр вы не написали.
- Подцепить сегменты на вход/порт контроллера. Написать простейшую программу, которая будет выводить на выход каждого контроллера значение цифры в 4-ричном виде. (4 пина на выходе надо).
- Еще один контроллер (б)должен по очереди опрашивать те контроллеры, которые стоят на сегментах и выводить значения по очереди на LPT порт РС. Останется на ПС сделать простейшую программу, которая будет эти значения собирать в 10-ричный формат и писать в файл каждую секунду.
Контроллер б должен иметь всего 4*(кол-во цифр)+8(наLPT) портов.
Работы на несколько дней.
Если цифр мало, можно обойтись одним контроллером ног на 60.
__________________
"При отрыве шестой ноги таракан теряет слух"
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:45.
|
|