Jump to content

    
Sign in to follow this  
Nikolay N.

Программирование ARM (STM32f103rbt6)

Recommended Posts

Здравствуйте!

 

Ищу специалиста, имеющего опыт программирования ARM-контроллеров, а именно STM32.

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

У меня в распоряжении отладочная плата STM32-P103 c микроконтроллероом STM32f103rbt6. Сейчас стоит задача реализовать первый этап:

1. Захват видеосигнала (PAL/NTSC) при помощи встроенного АЦП. Сразу оговорюсь, что нужна будет статическая картинка (фотография), чтобы не слушать о ограниченных ресурсах микроконтроллера и предложения применить готовые декодеры (они увеличивают общую стоимость устройства).

2. Вычисление значения глубины пикселя.

3. Сохранение массива значений "кадра" (думаю достаточно будет 210х340) на SD карту.

4. Получение второго кадра с изменениями, с последующим сохранением его там же, на SD.

5. Сравнение двух кадров (алгоритм пока не известен, но пусть это будет определение объема изменений в % от исходного)

6. Отдельно рассматриваю варианты реализации алгоритмов распознавания изображений на этом контроллере и

 

Теперь то, что должно было быть в начале. Задача заключается в следующем:

Необходимо по запросу определять состояние наполненности некоторого (пока простой прямоугольный ящик) в относительных величинах от исходного "0" в диапазоне от 0% до 75%.

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

 

Необходимо будет написать код выполняющий вышеперечисленные действия.

 

Share this post


Link to post
Share on other sites
1. Захват видеосигнала (PAL/NTSC) при помощи встроенного АЦП.

...

3. Сохранение массива значений "кадра" (думаю достаточно будет 210х340) на SD карту.

...

Необходимо будет написать код выполняющий вышеперечисленные действия.

по какой формуле вы вычисляли частоту сэмплирования видеосигнала? и какая она получилась?

Share this post


Link to post
Share on other sites
по какой формуле вы вычисляли частоту сэмплирования видеосигнала? и какая она получилась?

А что тут? Статический видеосигнал можно захватить самым дохлым контроллером + дохлый АЦП + S&H, просто сдвигая время захвата.

Share this post


Link to post
Share on other sites
А что тут? Статический видеосигнал можно захватить самым дохлым контроллером + дохлый АЦП + S&H, просто сдвигая время захвата.

Так в задаче сигнал не статический вроде, а нужно получить его снимок. Короче захват видео делать не нужно.

 

Хотя если заполняется не быстро, то можно пробовать и время захвата двигать.

 

 

Edited by Taradov Alexander

Share this post


Link to post
Share on other sites
Не понял. Если не меняется, то статический.

 

По крайней мере я читаю "что нужна будет статическая картинка (фотография)" как "из видео [произвольного] нужно захватить один статический кадр".

Share this post


Link to post
Share on other sites

По-моему то что сигнал не статический, это очевидно. Иное противоречит здравому смыслу.

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

если он всё равно не меняется ?

 

Share this post


Link to post
Share on other sites
И если уж её там поставили, то какой смысл как-то обрабатывать сигнал,

если он всё равно не меняется ?

Камера смотрит в ящик, куда насыпается что-то. Единственная причина не статичности - это изменение уровня и, возможно, условий освещения.

 

Похоже на крурсовую/диплом, так как задачу можно решить гораздо проще.

 

Share this post


Link to post
Share on other sites
Как можно связаться?

e-mail: noskov.nikolay@mail.ru

skype: ahalay_nikolay

tel.: 9031978030

 

По-моему то что сигнал не статический, это очевидно. Иное противоречит здравому смыслу.

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

если он всё равно не меняется ?

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

 

по какой формуле вы вычисляли частоту сэмплирования видеосигнала? и какая она получилась?

 

Если учесть, что я хочу из полезного сигнала длительность 51,5 мкс (так вроде в стандарте говорится и осциллограф с этим согласен) получить 340 точек, значит , частота выборок должна быть (51,5*10^-6/340) примерно 1,51 ГГц, что для одного канала в с производительность в 1 МГц довольно тоскливо.

Если считать, что в сигнале каждый кадровый сигнал идентичен, то пиксели, не пойманные в первом кадре, можно ловить в следующих, а с двумя АЦП по 16 каналов и навороченными таймерами, эта задача превращается в увлекательное собирание ТВ картинки. Понимаю, что аромат идиотизма ощутим в этой идее, но предложите другой, бюджетный вариант.

Share this post


Link to post
Share on other sites
частота выборок должна быть (51,5*10^-6/340) примерно 1,51 ГГц, что для одного канала в с производительность в 1 МГц довольно тоскливо.

Это вы как насчитали?

Полоса видеосигнала обычного, была всегда 6.5 мигагерц. Для одного канала в мегагерц это грубо говоря можно собрать всю картинку за 5...7 кадров. Я бы думал где ОЗУ брать для картинки. Потому как на один кадр надо почти пол мегабайта. А пол мегабайта статики, это дорого. Надо ставить динамику. А это значит что мегагерц 50 и выше. А раз мегагерц 50 и выше, то можно ставить ARM или там блекфин. А если уж ставить АРМ или блекфин, то взять его с DMA и не морочить себе голову.

Share this post


Link to post
Share on other sites

Для работы с последовательностями кадров размера 352Ч288(CIF) и 176Ч144(QCIF) существует алгоритм h.261. Почитайте. Там используется внутрикадровое и межкадровое сжатие. Этот алгоритм - основа большинства алгоритмов сжатия. Но для распознавания объектов он не годится, так как делит всё изображение на квадраты 8х8 с использованием дискретного косинусного преобразования(DCT) и на стыках квадратов при декодировании возникают искажения, делающие фотографию непригодной для идентификации отпечатков пальцев или астрономических измерений. В таких случаях вместо 8х8DCT применяют wawelet-преобразование ко всему кадру. Эти алгоритмы могут поместиться в память программ указанного фами процессора(128Кбайт), но размер кадра 210х340= 74000 байт превышает размер SRAM(20Кбайт) процессора. Ширина полосы чёрно-белого композитного сигнала составляет 6.5МГц, а в вашем процессоре АЦП цифрует со скоростью 1 миллион выборок в секунду, что недостаточно.

Вы купили какую-то плату, не прикинув годится ли она для решения вашей задачи.

Отсюда сомнения в вашей адекватности и платёжеспособности.

Share this post


Link to post
Share on other sites
Это вы как насчитали?

Полоса видеосигнала обычного, была всегда 6.5 мигагерц. Для одного канала в мегагерц это грубо говоря можно собрать всю картинку за 5...7 кадров. Я бы думал где ОЗУ брать для картинки. Потому как на один кадр надо почти пол мегабайта. А пол мегабайта статики, это дорого. Надо ставить динамику. А это значит что мегагерц 50 и выше. А раз мегагерц 50 и выше, то можно ставить ARM или там блекфин. А если уж ставить АРМ или блекфин, то взять его с DMA и не морочить себе голову.

Подозревал я, что что-то не так считаю)) Собственно поэтому я тут с таким предложением. Просветите, как сделать это правильно.

В общем такой логики придерживался. Если сточный сигнал (без синхроимпульса и гашения) длится 51,5 мкс, а мне из него надо 340 точек надергать значит надо сделать 340 выборок за 51,5 мкс, т.е. 6,6 МГц))))) И правда как это насчитал)))Не зря мне казалось, что что-то тут не так))

Share this post


Link to post
Share on other sites
Подозревал я, что что-то не так считаю)) Собственно поэтому я тут с таким предложением. Просветите, как сделать это правильно.

В общем такой логики придерживался. Если сточный сигнал (без синхроимпульса и гашения) длится 51,5 мкс, а мне из него надо 340 точек надергать значит надо сделать 340 выборок за 51,5 мкс, т.е. 6,6 МГц))))) И правда как это насчитал)))Не зря мне казалось, что что-то тут не так))

15625гц частота строчной разветки в СССР была. 340 выборок это 15625*340=5312500гц или 5.3 мегагерца. Понятно что там добавится обратный ход луча, но гигагерцами там и не пахнет.

Share this post


Link to post
Share on other sites
Для работы с последовательностями кадров размера 352Ч288(CIF) и 176Ч144(QCIF) существует алгоритм h.261. Почитайте. Там используется внутрикадровое и межкадровое сжатие. Этот алгоритм - основа большинства алгоритмов сжатия. Но для распознавания объектов он не годится, так как делит всё изображение на квадраты 8х8 с использованием дискретного косинусного преобразования(DCT) и на стыках квадратов при декодировании возникают искажения, делающие фотографию непригодной для идентификации отпечатков пальцев или астрономических измерений. В таких случаях вместо 8х8DCT применяют wawelet-преобразование ко всему кадру. Эти алгоритмы могут поместиться в память программ указанного фами процессора(128Кбайт), но размер кадра 210х340= 74000 байт превышает размер SRAM(20Кбайт) процессора. Ширина полосы чёрно-белого композитного сигнала составляет 6.5МГц, а в вашем процессоре АЦП цифрует со скоростью 1 миллион выборок в секунду, что недостаточно.

Вы купили какую-то плату, не прикинув годится ли она для решения вашей задачи.

Отсюда сомнения в вашей адекватности и платёжеспособности.

Благодарю за оценку моих качеств. Давайте не будем строить теории о моей личности на догадке о том, как именно досталась мне эта плата. И я здесь не для того чтобы выяснять, кто тут лучший из мужчин. За конструктивную информацию об алгоритмах отдельное спасибо.

Внешнюю память возможно использовать при применении вельвет-преобразования? Частоты АЦП и правда не достаточно, но в обозначенных условиях "грубо говоря можно собрать всю картинку за 5...7 кадров.", а при в режиме и того быстрее.

 

15625гц частота строчной разветки в СССР была. 340 выборок это 15625*340=5312500гц или 5.3 мегагерца. Понятно что там добавится обратный ход луча, но гигагерцами там и не пахнет.

Я уже объяснился в просчете. С аналоговым видеосигналом не имел дела никогда, так что простите Вашего покорного..

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this