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

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

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

 

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

 

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


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

1. Захват видеосигнала (PAL/NTSC) при помощи встроенного АЦП.

...

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

...

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

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

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


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

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

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

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


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

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

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

 

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

 

 

Изменено пользователем Taradov Alexander

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


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

Так в задаче сигнал не статический вроде

Не понял. Если не меняется, то статический.

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


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

Не понял. Если не меняется, то статический.

 

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

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


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

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

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

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

 

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


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

И если уж её там поставили, то какой смысл как-то обрабатывать сигнал,

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

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

 

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

 

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


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

Как можно связаться?

e-mail: [email protected]

skype: ahalay_nikolay

tel.: 9031978030

 

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

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

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

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

 

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

 

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

Для работы с последовательностями кадров размера 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 мегагерца. Понятно что там добавится обратный ход луча, но гигагерцами там и не пахнет.

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

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


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

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

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

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

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

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

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

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

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

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