Jump to content

    

Скоростной АРМ - использование в качестве МК

Изображение обязательно обрабатывать ? Или в вашей задаче падают разные тела, и нужно обнаруживать тела определенного вида ? Простого пересечения телом светового лучика недостаточно ?

Да, нужно выделить объект, посчитать его размеры, найти степень поглощения ИК-излучения, а потом, в зависимости от размеров, формы и поглощения принять решение и "ловить" его или нет. А эти объекты будут сыпаться один за другим. А по пересечению светового лучика я начну фотографировать и отсчет времени для "ловли". Ну и надо, чтобы в кадр попал объект полностью, поэтому и думаю скоростную камеру и скоростной процессор, чтобы много кадров потоком обрабатывать, а среди них будут появляться нужные с объектом целиком.

 

Подскажите, кто работал с видеосенсорами. Я так понимаю, что продаются они без платы, под них еще плату нужно делать? Корпус тоже нужно свой делать, чтобы объектив прицепить? В общем, если выбрать только сенсор, то его непросто начать использовать...

И вопрос про подключение сенсора к АРМу я так и не понял - что кортекс М4, что А8 - у них "камера интерфейс", а у сенсоров LVDS - это одно и то же?

Share this post


Link to post
Share on other sites
Линукс даже интересно бы запустить... ембеддед в смысле :) Я даже один раз пробовал отладочную плату запускать, даже скрипт писал на SH для общения с дисплейчиком по I2C, но это было давно и не считается. А вот как для линукса программу написать, в которой я буду с периферией общаться и как ее запустить при старте - я пока не понимаю.
работать с I2C в Linux не просто просто, а крайне просто, как раз на прошлой неделе этим занимался :)

запустить программу при старте? запросто... о какой периферии идет речь?

 

по любым вопросам на тему Embedded Linux ко мне в личку - подскажу всем чем смогу, я упоротый в этом плане :)

 

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

Share this post


Link to post
Share on other sites
Исходные данные. Нужно обрабатывать изображения падающего предмета раз 20 в сек. ...

А как это все делать для ARM Cortex-A8... И чтобы без всяких линуксов - принцип точно такой же, как обычный МК?

 

Я б на Вашем месте сначала реализовал это на большой машине с помощью готовых библиотек распознавания образов, затем, при положительном результате, разобрал и перенес нужные коды на микроконтроллер. Можно применить это: OpenCV (Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом).

Share this post


Link to post
Share on other sites
Я б на Вашем месте сначала реализовал это на большой машине с помощью готовых библиотек распознавания образов, затем, при положительном результате, разобрал и перенес нужные коды на микроконтроллер. Можно применить это: OpenCV (Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом).

 

Оно реализовано, но для Виндоуз и кажется не на сишных библиотеках...

 

 

Кстати, а ембеддед линукс много процессорного времени использует на посторонние вещи? Как сильно мне придется отвыкать от того, что все такты тратятся на нужный мне алгоритм?

Share this post


Link to post
Share on other sites
...

Кстати, а ембеддед линукс много процессорного времени использует на посторонние вещи? Как сильно мне придется отвыкать от того, что все такты тратятся на нужный мне алгоритм?

Линукс ничего не делает "лишнего". Какие сервисы вы запустили на нём, те и будут работать. Не нужны никакие сервисы - отключайте их напрочь. Единственное что останется - 100 Раз в секунду будет вызываться планировщик. Если планировать нечего, то он никакого процессорного времени не сожрёт. Переключение контекста происходит достаточно быстро (десятки тактов). Итого мимо вашей программы пройдёт максимум 0,01%. Понятно, что драйвера периферии будут отжирать время. Но если без ОС, то всё-равно будут драйвера и будут жрать соизмеримое количество ресурсов.

Share this post


Link to post
Share on other sites
Линукс ничего не делает "лишнего". Какие сервисы вы запустили на нём, те и будут работать. Не нужны никакие сервисы - отключайте их напрочь. Единственное что останется - 100 Раз в секунду будет вызываться планировщик. Если планировать нечего, то он никакого процессорного времени не сожрёт. Переключение контекста происходит достаточно быстро (десятки тактов). Итого мимо вашей программы пройдёт максимум 0,01%. Понятно, что драйвера периферии будут отжирать время. Но если без ОС, то всё-равно будут драйвера и будут жрать соизмеримое количество ресурсов.
согласен с подобными оценками, но лишь частично, не могу поверить что там меньше процента кушается (хотя Linux известен тем что не кушает лишнего проца)

Share this post


Link to post
Share on other sites
согласен с подобными оценками, но лишь частично, не могу поверить что там меньше процента кушается (хотя Linux известен тем что не кушает лишнего проца)

Как раз на днях знакомился с подсистемой времени в Linux.

Па факту аппаратный таймер вызывался только с частотой, заданной при сборке ядра (в моём случае 1000 HZ). Никаких других неучтённых срабатываний таймера не было. Т.е. по факту в "фоне" вызывался только планировщик ядра. Если планировать нечего (работает только одно ваше приложение), то планировщик сразу возвращает вашему приложению управление. Само-собой если вы используете сеть, то отдаётся процессорное время сетевой подсистеме и т.д. Но как я говорил ранее - это в любом случае будет пожирать ресурсы. С Линуксом камень или нет.

Share this post


Link to post
Share on other sites
не могу поверить что там меньше процента кушается (хотя Linux известен тем что не кушает лишнего проца)

 

а что может кушать проц на ненагруженной системе ? вот к примеру вывод top в таком случае - кроме самого top никто процессор не занимает. В квадратных скобках - процессы пространства ядра.

Mem: 6964K used, 52984K free, 0K shrd, 0K buff, 1476K cached

CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq

Load average: 0.00 0.00 0.00 1/27 495

PID PPID USER STAT VSZ %VSZ %CPU COMMAND

494 486 root R 2216 4% 1% top

470 1 root S 2268 4% 0% /lib/udev/udevd -d

486 1 root S 2216 4% 0% -sh

1 0 root S 2136 4% 0% init

467 1 root S 2136 4% 0% /sbin/klogd

465 1 root S 2136 4% 0% /sbin/syslogd -m 0

5 2 root SW 0 0% 0% [khelper]

3 2 root SW 0 0% 0% [ksoftirqd/0]

2 0 root SW 0 0% 0% [kthreadd]

4 2 root SW 0 0% 0% [events/0]

8 2 root SW 0 0% 0% [async/mgr]

165 2 root SW 0 0% 0% [sync_supers]

167 2 root SW 0 0% 0% [bdi-default]

169 2 root SW 0 0% 0% [kblockd/0]

179 2 root SW 0 0% 0% [khubd]

200 2 root SW 0 0% 0% [rpciod/0]

233 2 root SW 0 0% 0% [kswapd0]

234 2 root SW 0 0% 0% [aio/0]

235 2 root SW 0 0% 0% [nfsiod]

236 2 root SW 0 0% 0% [crypto/0]

Edited by sasamy

Share this post


Link to post
Share on other sites
Оно реализовано, но для Виндоуз и кажется не на сишных библиотеках...

 

 

Кстати, а ембеддед линукс много процессорного времени использует на посторонние вещи? Как сильно мне придется отвыкать от того, что все такты тратятся на нужный мне алгоритм?

Надо начать на модели с обычным ПК, камерой и отладить (Отлаживать легче). А перенести это уже совсем другой менее итеративный процесс отладки.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this