Перейти к содержанию
    

Быстро и недешево - автоматическая распознавалка зажигания светодиодов на плате

Собственно для обсуждения, ну и немного отчет. 

У меня во многих платах есть всякие светодиодные индикаторы - просто точечные LED и семисегментные индикаторы. Они показывают состояние входных и выходных сигналов и изменяют свое состояние в зависимости от того, что подается на входы платы или что она делает.

Есть задача - обеспечить тестирование всего этого: например, того, что запаяли правильный цвет светодиода, зажигаются нужные цифры от нужных сигналов и т.д. Сейчас это делает человек - подает сигналы на вход и смотрит, чтобы все зажигалось. Иногда провтыкивает. Надо автоматизировать.

Пока мое решение: Raspberry Pi + USB Camera + Matlab/Simulink и Computer Vision Toolbox. В RPi загружаем алгоритм Pattern Matching https://uk.mathworks.com/help/vision/ug/pattern-matching-1_example-vippattern.html

То есть поиск конкретной картинки - например силуэта цифры или зажженной лампочки. 

Алгоритм такой - подсовываем плату, направляем на нее камеру, в симулинковской проге на RPi крутится распознавалка конкретного образа - например цифры 7 на семисегментнеке. Если она зажигается и RPi ее распознает - он шлет MQTT сообщение на тестирующую систему, что есть такое. Для других светодиодов - тоже свои распознавалки. В принципе работать будет не шустро, зато более или менее универсально и можно собрать достаточно быстро - за пару дней. 

Что скажете? Пока не смотрел NodeRED - может там тоже что-то аналогичное сделать можно. 

 

ПС знаю, что можно сделать совсем по-другому - например подсунуть всякие световоды, подать их на фотодиоды и смотреть по этим сигналам. Но весь смысл данной темы - решить задачу с помощью чего-то другого. В данном случае Computer Vision. 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

56 minutes ago, syoma said:

Сейчас это делает человек - подает сигналы на вход и смотрит, чтобы все зажигалось.

 

56 minutes ago, syoma said:

он шлет MQTT сообщение на тестирующую систему, что есть такое

На какую тестируюую систему?

 

Никакого машинного зрения не нужно, чтобы определить наличие правильного цвета в правильных координатах на картинке с камеры.

И никаких raspberry pi и mqtt. Первое не окупится в силу своих тормозов и сложностей в освоении, второе из рук вон плохо годится для чего-то кроме своей узкой ниши.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

44 minutes ago, rkit said:

На какую тестируюую систему?

Система, которая собственно и контролирует тестирование платы. Она работает по простой программе - подать питание на плату, подать нужные сигналы, подождать, проверить что плата все отработала правильно. Дальше следующий шаг и т.д. Это по сути простой логический контроллер с некоторым количеством I/O. Кстати, собранный на том же тормознутом RPi. 

45 minutes ago, rkit said:

Никакого машинного зрения не нужно, чтобы определить наличие правильного цвета в правильных координатах на картинке с камеры.

А если плата сдвинута, если освещение неидеальное или фоновая засветка, а если плата слегка отличается по лейауту и светодиоды немного в других местах?  Собственно проект о том, чтобы избавиться от необходимости анализировать таким жестким образом и упростить разработку тестовой системы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, syoma said:

А если плата сдвинута, если освещение неидеальное или фоновая засветка, а если плата слегка отличается по лейауту и светодиоды немного в других местах?  Собственно проект о том, чтобы избавиться от необходимости анализировать таким жестким образом и упростить разработку тестовой системы.

Сделать оснастку из фанеры примерно в сто тысяч раз легче работы с машинным зрением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, rkit said:

Сделать оснастку из фанеры примерно в сто тысяч раз легче работы с машинным зрением.

Ну лично я за пол дня с фанерой даже не начну, так как это надо искать инструмент, саму фанеру, измерять и т.д.

А систему выше можно за эти пол дня уже запустить и даже начать гонять. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 часов назад, syoma сказал:

В принципе работать будет не шустро

А время оценить пробовали? Хотя бы с точностью до порядка?

В общем-то, если хватит одного кадра на этап теста, было бы неплохо...

16 часов назад, rkit сказал:

Сделать оснастку из фанеры примерно в сто тысяч раз легче работы с машинным зрением.

Лучше таки из металла. :) На самом деле - кому как.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

52 minutes ago, Harbinger said:

А время оценить пробовали? Хотя бы с точностью до порядка?

Судя по примерам - пару кадров в секунду оно выдает. Мне больше и не надо. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мы делали подобное для тестирования светодиодных матриц 

подсчёт пятен по сетке.

обрабатывалось на PC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(Просто размышление). Да на базе распберри вполне себе работает, например, подсчёт пассажиров в гортранспорте. Просто здесь подход смотрится избыточным, но получится изящно, если перенести туда же все остальные тесты и тем самым отказаться от ПК и промежуточной платформы. Было бы время...

Скрытый текст

Но, глядя с местной колокольни, это половина задачи. Тут ещё кнопки нужно нажимать. Сенсорные (емкостная матрица)...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24.11.2020 в 13:46, syoma сказал:

Собственно проект о том, чтобы избавиться от необходимости анализировать таким жестким образом

Смотря какая надежность теста требуется. Любая дополнительная неопределенность (положения платы, освещенности и т.д.) - это дополнительная ненадежность теста (пропуск ошибок).

Особенно, если   

24.11.2020 в 13:46, syoma сказал:

упростить разработку тестовой системы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 hours ago, Harbinger said:

(Просто размышление). Да на базе распберри вполне себе работает, например, подсчёт пассажиров в гортранспорте. Просто здесь подход смотрится избыточным, но получится изящно, если перенести туда же все остальные тесты и тем самым отказаться от ПК и промежуточной платформы. Было бы время...

У меня так и есть. Тестовая система собрана полностью на базе RPi без отдельного ПК. GUI и все тесты там уже бегают, не хватает только вот этой визуальной проверки - это делает оператор, тыкая, как обезьяна, на кнопку "Да, горит" в GUI. На кнопки на устройстве, слава богу, пока нажимать не требуется, но по этому поводу тоже есть масса идей, начиная со всяческих роборук. :biggrin:

А распознавалку с MQTT я планировал пока собрать на отдельном RPi, чтобы легче было отлаживать, но потом, естественно, я перенесу все в тестовую систему. 

32 minutes ago, alexvu said:

Смотря какая надежность теста требуется. Любая дополнительная неопределенность (положения платы, освещенности и т.д.) - это дополнительная ненадежность теста (пропуск ошибок).

Дык ведь сейчас на это дело рассчитывают даже автопилоты. Так что для моих условий я думаю 99% будет легко. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/24/2020 at 1:56 PM, syoma said:

То есть поиск конкретной картинки - например силуэта цифры или зажженной лампочки. 

яркость светящихся объектов выше, объекты несложные - бинаризация и контурный анализ, "шашки наголо" с нейросетью - проще конечно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, syoma said:

Дык ведь сейчас на это дело рассчитывают даже автопилоты. Так что для моих условий я думаю 99% будет легко. 

Ага, и получить ответ с вероятностью 90%.  Прикольное тестирование будет. Брак в процентах меньше бывает. 
Т.е. чем так тестировать проще вообще не тестировать.
Где экономическая целесообразность?   

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, AlexandrY said:

Ага, и получить ответ с вероятностью 90%.  Прикольное тестирование будет. Брак в процентах меньше бывает. 
Т.е. чем так тестировать проще вообще не тестировать.
Где экономическая целесообразность?   

Значит сделаем 99,9%  :yes:

Только не надо начинать "Как будешь эту вероятность проверять и т.д." Будем смотреть по мере получения результата. Оно либо заработает, как надо, либо нет. 

Пока я только нашел бесхозный RPi и SD карту к нему. Следующим этапом будет поиск такой же бесхозной USB камеры, которая по памяти тоже где-то должна лежать. И да, это труднее, чем искать фанеру для оснастки, товарищ оказался прав... А еще надо набраться храбрости и отобрать у кого-то хорошую USB зарядку для питания RPi. Это вообще мне видится сверхсложной задачей. :biggrin:

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...