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

Разработка стереосистемы

Здравствуйте. Отправили меня сюда с ресурса казус. 

Если кому интересна предистория то вот ссыль.

В кратце задача стоит так:

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

Все это должно работать с частотой около 250 кадров в секунду от одного кабеля USB от штатного питания. Идеально если хватит тока 250ма чтобы USB 2,0 смог тащить.

На комп должен прилетать максимально стабильный поток пакетов. 

Также должно быть 2 конфигурации. 

1. С одной камерой и частотой около 250 кадров в сек.

2. С двумя камерами и частота не менее 60 кадров. В идеале было бы хорошо также 250.

 

Были предприняты попытки собрать эту систему на STM32 7 серии. Но сами контроллеры не могут работать с камерами CSI (MIPI)

В итоге не осталось ничего кроме попыток ковырять ПЛИС. Но на этом этапе полное отсутствие опыта и подручных демо плат.

Предполагается для изучения приобрести либо Cyclone V либо какой то Xilinx (spartan6). 

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

Может быть кто то готов это реализовать то это тоже можно обсудить. 

 

 

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


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

250 кадров в секунду  через USB 2.0  в формате 1280*480 ЧБ - это вообще технически реализуемо? 

Quote

 пожать его в какой нибудь jpg или png, снабдить штампом акселерометра и времени и отправить потоком на комп

Тут нюанс. Через USB идет не файл картинки а битовый поток. А его обработка и запись в виде картинки - это прерогатива принимающей из USB стороной.

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


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

Интересная задачка, творческая…

Насколько нужно jpg кодировать на стороне ПЛИС и не проще ли гнать сырым потоком, а в компе уже жать во что угодно софтом?

В 0,25А по 5 вольтам уложиться на 97% не получится с пятым циклоном или шестым спартаном и обвязкой.

Наложение двух изображений требует каких-либо дополнительных действий по синхронизации / центровке?

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


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

В 08.07.2022 в 16:14, DanilinS сказал:

250 кадров в секунду  через USB 2.0  в формате 1280*480 ЧБ - это вообще технически реализуемо? 

ну для двух камер можно поменьше .. для 640*480 есть камера уже готовая и нормально работает. Но она сразу на юсб уже завязана с завода.

 

В 08.07.2022 в 16:14, DanilinS сказал:

Через USB идет не файл картинки а битовый поток. А его обработка и запись в виде картинки - это прерогатива принимающей из USB стороной.

Ну это на уровне сигналов. Пока еще не разбирал эту часть. Видел только примеры для проца Кипариса там есть Streamer который гонит пакеты. Я и думал что получится ловить их.

 

В 08.07.2022 в 16:30, FeodoR сказал:

асколько нужно jpg кодировать на стороне ПЛИС и не проще ли гнать сырым потоком, а в компе уже жать во что угодно софтом?

Так не пролезет же.. 1280*480 = 614 400 байт * 3 слоя RGB = 1 843 200 байт * 100 кадров = 184 320 000 байт в секунду. В других темах на казусе рассчитывали и пришли к выводу что не осилит USB такое. 

Но если можно сырое гнать то это было бы еще лучше .. 

 

В 08.07.2022 в 16:30, FeodoR сказал:

Наложение двух изображений требует каких-либо дополнительных действий по синхронизации / центровке?

В теории с каждой камеры нужно вырезать регион который будет задаваться в процессе работы прибора с компа. Эти регионы надо будет совместить просто рядом по ширине. 

 

В 08.07.2022 в 16:30, FeodoR сказал:

В 0,25А по 5 вольтам уложиться на 97% не получится с пятым циклоном или шестым спартаном и обвязкой.

А какие варианты?? Доп. питание?? 

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


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

On 7/8/2022 at 4:49 PM, Worldmaster said:

А какие варианты?? Доп. питание?? 

USB по спецификации должен выдавать 0,5А

Часто в компах не контролируется отдаваемый ток по USB портам (например, дескриптор устройства явно запрашивает 0,1А, но порт ток не ограничивает на этом уровне) - т.е. можно бы осторожно попробовать взять чуток и побольше.

НО - у меня бывали случаи, что из-за кз по питанию отключались порты (не смертельно, включал в худшем случае перезагрузкой компа емнип, или просто в диспетчере устройств - включить порт).

USB3 выдает до 0,7А

Внешние HDD диски (раньше) могли иметь 2 хвоста USB на кабеле - как раз для получить ампер от компа крутить диск.

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


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

У меня есть вот такая поделка, чип - Gowin GW2AR. Потребление самой платы, без ардуины где-то 120mA, с арудиной не измерял. Но это не MIPI а обычный параллельный интерфейс. У Gowin кстати есть поддержка MIPI, ядра есть готовые. Сенсоры mt9v034 монохромные, умеют работать на 27Мгц, на выход даю сдвоенный кадр на 54Мгц, предел для разрешения 1280 на 480 около 80 кадров без сжатия. Правда пока у меня экспозиция отдельно а readout отдельно, поэтому выходит меньше. Но в теории эти сенсоры умеют одновременно снимать и выдавать данные, так что думаю 80 смогу добиться

 20220504_151714

20220504_151654

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

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


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

On 7/8/2022 at 4:49 PM, Worldmaster said:

Так не пролезет же.. 1280*480 = 614 400 байт * 3 слоя RGB = 1 843 200 байт * 100 кадров = 184 320 000 байт в секунду.

3-х слоев нет, зато есть USB SS. Так что пролезет даже под 150+ кадров в FHD.

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


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

всем добрый день

есть пример с hdr видео и пример проекта "Silver Award : Real-time HDR video"  https://www.innovatefpga.com/cgi-bin/innovate/teams2018.pl?Id=EM076

для платы https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046

скачать диск можно http://download.terasic.com/downloads/cd-rom/de10-nano/ 

где в примерах будет проект hdr видео где используется 2 камеры

гитхаб https://github.com/innovatefpga/2018-EM076

 

здесь прием видео с камер и для вас возможно предварительная обработка...

 

вот еще интересный проект на гитхабе https://github.com/davemuscle/camera_journey

 

для передачи на ПК можно использовать https://www.ftdichip.com/old2020/Products/ICs/FT600.html

там в режиме FIFO есть даже пример для FPGA

 

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


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

В 08.07.2022 в 17:47, Burenkov сказал:

У меня есть вот такая поделка

А можете написать название этого устройства? В идеале - ссылку на сайте производителя. Хочу подробностей. Заранее признателен.

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


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

On 7/8/2022 at 6:56 PM, DSIoffe said:

А можете написать название этого устройства? В идеале - ссылку на сайте производителя. Хочу подробностей. Заранее признателен.

Это шилд для Arduino portenta h7 (https://store.arduino.cc/products/portenta-h7 ). Делал сам, под проект openmv ( https://openmv.io/ ) , щас пытаюсь скоопироваться с этими ребятами чтобы они включили поддержку в релиз

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

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


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

В 08.07.2022 в 17:32, Yuri124 сказал:

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

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

 

В 08.07.2022 в 17:32, Yuri124 сказал:

Внешние HDD диски (раньше) могли иметь 2 хвоста USB на кабеле

Тоже не удобно по той же причине (передача пользователям). Да и в 22 году это уже просто неприлично.

 

В 08.07.2022 в 17:47, Burenkov сказал:

Но в теории эти сенсоры умеют одновременно снимать и выдавать данные, так что думаю 80 смогу добиться

Нужны именно камеры поскольку они будут на шлейфах разведены по сторонам. Размер платы надо сделать 45*45мм максимум. Либо незначительные изменения в ширину например. Но при сохранении площади. А вы Ваши поделки сами делали?? И разводка и распайка и программирование?

А можете подкинуть какие нибудь платы Gowin отладочные. Как у них с базой, документацией и примерами?? Порог вхождения так сказать какой? Так то я вроде не совсем уж чайник. Кучу лет в разработке софта но преимущественно на ПК. Хотя были поделия на PIC, STM32. с плисами как то ни разу не приходилось работать. 

В 08.07.2022 в 18:32, aaarrr сказал:

3-х слоев нет, зато есть USB SS. Так что пролезет даже под 150+ кадров в FHD.

Ну 3 слоя в целом не обязательно, однако проблема была с камерами. Даже у ЧБ камер все равно шел поток 3 слойный хоть и ЧБ. Если пролезет без сжатия то это будет лучше наверное ... 

В 08.07.2022 в 18:56, Maverick_ сказал:

 

для передачи на ПК можно использовать https://www.ftdichip.com/old2020/Products/ICs/FT600.html

там в режиме FIFO есть даже пример для FPGA

хм ... интересная вещь .. а я рассматривал вначале кипарис но так как он требует программирования от него отказались. Далее рассматривали микрочип 3300 через ULPI там вроде все железно. И не надо морочить голову с кодами. ftdi наверное даже по вкуснее будет раз скорость такую предоставляет.

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


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

On 7/8/2022 at 10:38 PM, Worldmaster said:

разводка и распайка и программирование

Нет, разводку делал профессионал своего дела, на коммерческой основе. Код тоже далеко не весь мой. Я больше как автор идеи и менеджер проекта))

 

On 7/8/2022 at 10:38 PM, Worldmaster said:

А можете подкинуть какие нибудь платы Gowin отладочные.

Самое простое и легко доставаемое  с камерой это наверное вот такое 

https://wiki.sipeed.com/hardware/en/tang/Tang-Nano-4K/Nano-4K.html

С документацией и примерами конечно не так хорошо как intel и xilinx, но вполне можно работать 

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


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

Да. И по ценам очень бюджетно будет: https://aliexpress.com/item/1005003496082825.html

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

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


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

В 08.07.2022 в 17:47, Burenkov сказал:

предел для разрешения 1280 на 480 около 80 кадров без сжатия.

а вы использовали дополнительную память для формирования картинки или хватает мощностей fpga??

Вот присмотрел такую демку https://aliexpress.ru/item/1005003705330185.html?item_id=1005003705330185&sku_id=12000026872080787&spm=a2g2w.productlist.i5.2.11261df2FoUsL8

Кто нибудь может пояснить по этой плате??

Вроде MIPI есть и есть SPI. 

ULPI я ведь смогу прикрутить к портам IO ?? 

И еще вопрос с дополнительной памятью. Нужна ли она вообще ил смогу ли я каким то образом прикрутить к этому чипу ее??

 

И еще наверное второстепенный вопрос: С компа будет софт который должен управлять этой системой. Команды отправлять там или еще чего то .. 

Это тоже можно будет сделать через ULPI?? или можно как то организовать HID протокол?? 

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


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

On 7/11/2022 at 11:00 AM, Worldmaster said:

а вы использовали дополнительную память для формирования картинки или хватает мощностей fpga??

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

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


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

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

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

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

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

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

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

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

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

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