Итак. У нас-то все возможности железки ограничены каналом связи - вайфай хорош ценой и распространённостью, но плох по многим другим факторам. Преодолевание препятствий фиговое, дальнобойность достигается различными ухищрениями и дополнительным оборудованием, которое не всегда помогает. Потери пакетов при передаче видео приводят к увеличению задержки, пропаданию кадров, различным искажениям картинки и всякой прочей порнографии. В общем, основная проблема при дистанционном управлении всякими пепелацами - канал связи.
Вайфай, он же IEEE 802.11, в основном использует модуляцию OFDM, пардон за тавтологию. Я не шибко спец в радиоволнах, модуляциях и прочем радиошаманстве, так что пишу как сам себе это представляю. OFDM хороша, но не любит помехи и всяческие отражения сигнала. Для устранения этой неприятности придумали COFDM. Собссно, та же OFDM, но с коррекцией ошибок. Вот и получается что COFDM круче в плане помехоусточивости, и, соответственно, дальнобойности.
Когда я впервые про это услышал то полез искать передатчики, которые умеют эту самую COFDM использовать. Оказалось что самый обычный DVB-T как раз COFDM и использует. Кто не знает - DVB-T это стандарт цифрового телевидения. В Москве куча каналов по DVB-T транслируется и практически все современные телики умеют его принимать. У меня вот каналов 40 поймалось на антенну в виде куска провода, воткнутого в антенное гнездо :-)
Достать COFDM передатчик долгое время не получалось, ценники зашкаливали. Но, хвала кетайцам, оборудование с COFDM стало постепенно дешеветь. Вот мне как раз и притащили на изучение такой передатчик, да ещё и в комплекте с камерой. См. заглавную фотку.
"DVB-T камера" представляет сборка из трёх плат: плата сенсора, плата кодировщика и плата модулятора.
Плата сенсора эт собссно где непосредственно модуль камеры и объектив смонтированы. Сенсор хороший - Sony IMX122. Как раз на этот сенсор я давно уж облизываюсь, хочется подключить его к Виртурилке, тем более что он полностью подходит - параллельный интерфейс, все нужные линии есть. Бери да подключай. Но блин в продаже готовый модуль камеры найти никак не удавалось :-( Короче, эта плата подключается шлейфом к плате кодировщика и скармливает ему картинку с сенсора.
Плата кодировщика - плата на базе процессора HiSilicon HI3516. В конце приведу лог загрузки, на всяк случай. Грузится секунд 30 примерно. Подключается к плате модулятора и отправляет ему ужатый в H264 поток. Интерфейс подключения определить не успел (эта камера у меня недолго пробыла). Подозреваю что USB, но это надо будет снова взять камеру и поковырять подотошнее. Вообще тут с интерфейсами не ахти - только UART есть для настройки специальной утилитой. UPD> да, именно USB, модулятор на базе it950x
Плата модулятора - собссно, передатчик. Выдаёт DVB-T сигнал на антенну. Дефолтные параметры эфирные указаны на наклейке на корпусе камеры, канал 68, частота 858 МГц, ширина канала 8 МГц.
Питается всё эта этажерка от 12 Вольт, кушает ровно 310 мА. Греется конкретно - пальцами держать даже за боковые распорки больно. Мой "лазерный" градусник показал температуру 60 градусов на некоторых чипах.
Итак, подключаем питание, ждём пока загрузится. Для приёма видео берём у дочи телик, делаем сканирование каналов и, вуаля, видим картинку с камеры.
По дефолту камера была настроена на разрешение 1376x768@30 с битрейтом 4 Мб/с. Сначала всё было отлично - задержка была около 250 мс, лагов почти не было. Но стоило пошевелить камеру, т.е. нестатичную картинку сделать - сразу пошли дропы кадров и искажения картинки. Потом стало всё нормально, как бы камеру не крутил. Потом снова стало всё плохо. Почему - непонятно, антенна в одном и том же положении находилась. Да, у телика антенна хреновая (кусок провода в антенном разъёме), но и расстояние совсем маленькое. Стоило отнести камеру в соседнюю комнату - картинка вообще пропала и появилась лишь пару раз, стопкадрами с кучей искажений.
Сразу говорю - телик в игровом режиме, так что всё шустро показывает, без задержки на улучшайзинги. Телик 32 дюйма, родное разрешение 1920x1080.
Подключил UART к компу, запустил родную софтину для настройки. Выставил разрешение 1920x1080. Выглядит софтина примерно вот так:
Параметров куча, но времени особо с ними играться не было, так что всё по дефолту. Только разрешение поменял и битрейт прибавил. Ребутнул камеру, дождался появления картинки. Разница по качеству картинки на глаз не заметна, при 1280x720 выглядело не хуже. Но вот задержка при фул хд заметно больше стала, около секунды.
Но принимать видео на телик неинтересно, нужен полноценный видеозахват. Для этих целей из кучи барахла откопал свисток USB DVB-T RTL2832U+R820T, который летом брал для развлечения с SDR. Вот такой. Долго мучался с поиском драйверов под винду, не нашёл. В итоге воткнул в линуховый комп - убунта сразу всё подцепила. А дальше уж в дело вступили VLC и GStreamer, которые отлично показали видео на нужной частоте.
Как раньше на лабах писали... В результате проделанной работы выяснили что: 1. Сенсор IMX122 - клёвый. Но оптику надо с углом поширше. 2. COFDM работает. 3. COFDM работает плохо при дефолтных настройках у меня в квартире с куском провода вместо приёмной антенны. Хотя и на USB свистке с внешней антенной приём тоже не шибко лучше был. Видимо, надо ковыряться с настройками, возможно повышать частоту, выходить за гигагерц. Соотвественно, мутить подходящие для выбранной частоты антенны, трахаться с КСВ-метром. 4. Вроде всё что успел.
Теперь хочется прикупить себе такую камерку, выдрать оттуда сенсор и модулятор и прихреначить к Виртурилке :-)
Запись эфира гстримером с USB свистка (видео с DC-103H-BB)
Съёмка другой камерой, вид со стороны
P.S. Лог загрузки камеры (выдаёт на UART)
[code]U-Boot 2010.06 (Sep 12 2014 - 13:39:43)
DRAM: 256 MiB NAND: Special Nand id table Version 1.35 Nand ID: 0xAD 0xD5 0x94 0x9A 0x74 0x42 0xAD 0xD5 Nand(Hardware): Block:2MB Page:8KB Chip:2GB*1 OOB:368B ECC:24bits/1K 2048 MiB Check spi flash controller v350... Found Can't find a valid spi flash chip. Can't find a valid spi flash chip. In: serial Out: serial Err: serial Hit any key to stop autoboot: 1 0 USB: scanning bus for devices... 2 USB Device(s) found scanning bus for storage devices... 0 Storage Device(s) found
** Invalid boot device **
NAND read: device 0 offset 0x400000, size 0xf00000 15728640 bytes read: OK ## Booting kernel from Legacy Image at 82000000 ... Image Name: Linux-3.0.8 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3013000 Bytes = 2.9 MiB Load Address: 80008000 Entry Point: 80008000 Loading Kernel Image ... OK OK
Говорят, не только у меня такие рассыпания картинки. Даже с нормальной антенной у людей траблы с передачей с этой камеры. Так что, возможно, не всё так гладко у COFDM как казалось :-(
Помимо USB у модулятора для данных есть еще параллельный 8ми битный и последовательный интерфейсы. Плюс i2c (на сколько я помню) для конфигурации чипа. Для конфигурации можно еще использовать эндпойнт в USB. То, что надо использовать для работы, задается несколькими выводами на модуляторе. У модулятора с COFDM все хорошо, и защита от помех там весьма приличная. На самой камере очень слабенький усилитель мощности (0dbm) и то, его еще надо на этот режим переключить. На 447МГц 1мВт с хорошими антеннами, работает через 2 бетонные стены на полосе 6МГц и потоке 8-12 мегабит. Рассыпания на 90% случаются не от выпадания данных а от того, что кодек выходит за ограничения потока или просто не справляется с упаковкой за короткое время. Плюс декодер может быть немного не совместим в телевизоре. Еще момент. DVB-T как и WiFi не любят движение. Упаковка в частотно-временном пространстве плотная и даже на небольших скоростях движение уже начинает влиять на прием. У производителя модулятора есть свои микрухи энкодера и декодера, но они поставляютя без SDK и с теми прошивками, которые для них есть, 250мс - это предел по быстродействию.
2 Гость: Ну я подозревал что с параметрами поиграться надо, когда будет эта штука на подольше - пощщупаю попристальнее. А вот насчёт что dvb-t и вифи не любят движение - в лабораторных условиях (ну т.е. передатчик в одной комнате с приёмником) вайфай как ни крути - картинка стабильная, а dvb-t дурил. Хотя я ожидал что наоборот будет.
Gol Понедельник, 26 Октября, 2015 20:40 цитировать ссылка на коммент
Гость Вторник, 27 Октября, 2015 23:18 цитировать ссылка на коммент
У модулятора с COFDM все хорошо, и защита от помех там весьма приличная. На самой камере очень слабенький усилитель мощности (0dbm) и то, его еще надо на этот режим переключить. На 447МГц 1мВт с хорошими антеннами, работает через 2 бетонные стены на полосе 6МГц и потоке 8-12 мегабит.
Рассыпания на 90% случаются не от выпадания данных а от того, что кодек выходит за ограничения потока или просто не справляется с упаковкой за короткое время. Плюс декодер может быть немного не совместим в телевизоре.
Еще момент. DVB-T как и WiFi не любят движение. Упаковка в частотно-временном пространстве плотная и даже на небольших скоростях движение уже начинает влиять на прием.
У производителя модулятора есть свои микрухи энкодера и декодера, но они поставляютя без SDK и с теми прошивками, которые для них есть, 250мс - это предел по быстродействию.
Gol Среда, 28 Октября, 2015 13:03 цитировать ссылка на коммент
Ну я подозревал что с параметрами поиграться надо, когда будет эта штука на подольше - пощщупаю попристальнее. А вот насчёт что dvb-t и вифи не любят движение - в лабораторных условиях (ну т.е. передатчик в одной комнате с приёмником) вайфай как ни крути - картинка стабильная, а dvb-t дурил. Хотя я ожидал что наоборот будет.
Гость Среда, 24 Февраля, 2016 20:47 цитировать ссылка на коммент
Gol Среда, 24 Февраля, 2016 22:34 цитировать ссылка на коммент
Да она уже неактуальна, спасиб