EZ-WifiBroadcast DIY HD видео своими руками

Fisher15
Rezonator:

Дисплей маловат ИМХО. У меня в планах FPV шлем с 2K разрешением.

2К это конечно круто, но советую обратить внимание на битрейт в видеозаписях полетов с EZ-WifiBroadcast. Он обычно в районе 10 мбит или меньше (обычно 4-6-7-8. Мои скайзоны пишут обычный аналоговый PAL с битрейтом 8,5 мбит - то есть с большим качеством. Для приемлемого качества (без квадратиков) 720p нужен поток не менее 16 мбит ,1080p - 30 мбит. Под 2К нужно 60 мбит как минимум. EZ-WifiBroadcast умеет максимум 30 мбит, но это только рядом с собой на минимальных дальностях без помех с хорошими антеннами. Чем больше нужна дальность, тем ниже нужно делать битрейт.
EZ-WifiBroadcast не раскачает полноценно ваши 2К. Ему не хватит пропускной способности. Квадратики на картинке заметны уже в скайзонах при разрешении 800*600. И качество картинки в скайзонах по HDMI или при ретрансляции с аналогового выхода малины через 5,8 особо сильно не отличаются (отличия только в ОСД).

tuskan:

камера у меня такая есть.
С родной оптикой - дрянь.
Поможет ли ей комплект?

Печатал корпус с маунтом под объективы 12*0,5 для камеры первой версии. С объективами качество получше, но не намного. процентов на 20 лучше…
Для меня приемлемое качество дает подключение по HDMI. Комплект купил давно, собрал, качество картинки с малиновыми камерами меня не удовлетворило и он валялся без дела. Снова занялся проектом, когда увидел картинку с камерами, подключенными по HDMI. С самодельным кабелем HDMI не было стабильности в работе комплекта. Потом сломал разъем малины. Сейчас жду малину, кабеля и шлейфы разной длинны и комплект для антенного трекера. Без трекера с мои комплектом оборудования (синие и зеленые атеросы) и под стиль полетов - свободный полет вокруг себя с удалением до 6-7 километров без трекера будет не особо комфортно…

tuskan
Fisher15:

комплект для антенного трекера

myflydream?

whoim
Fisher15:

под объективы 12*0,5 для камеры первой версии

А можно ссылку на обьектив для примера? 20% есть 20% )
3дмодельку встречал в теме, качнул

Fisher15
tuskan:

myflydream?

u360gts

whoim:

А можно ссылку на обьектив для примера? 20% есть 20% )
3дмодельку встречал в теме, качнул

Объективы временно снимал с FPV камер, которые у меня есть, включая HD
Если покупать отдельно - искать восьми мегапиксельные и выше объективы под матрицу 1/4 с резьбой М12*0,5мм и с ИК фильтром. Их мало. И дорого.
Например вот - он под матрицу 1/2,5 с ф.р 1,55 - значит на матрице 1/4 будет картинка экв ф.р 2,5-2,8 (угол сузится)
Или вот еще
Этот ширик под эту матрицу. И на том и на том возможно придется снимать пластик маунта от штатной микролинзы с матрицы - в фокусе эти линзы будут подходить очень близко к поверхности матрицы.
Если честно - покупать не советую - высока вероятность напрасно выкинуть деньги…
Моя модель с резьбой под первую версию камеры (печатать слоем 0,1):

Rasberry Pi v1.3 camera LEN 12 mm mount.stl.zip

Rezonator
Fisher15:

2К это конечно круто, но советую обратить внимание на битрейт

В этом смысле никаких иллюзий, встроенный h264 кодек поддерживает максимум Full HD. Высокое разрешение для того чтобы не было видно зернистости матрицы. К тому-же на FHD мониторе явная деградация картинки ощущается начиная с ~4Mbps.

PS: Кому-нибудь удалось поднять RC with MAVlink?

kak-dela007
whoim:

Кстати, а чем плох вариант шлем-коробка/смартфон? Это явно дешевле, при хороших характеристиках и отсутствии лишних задержек

Думаю норм вариант. Но надо понимать, что сначала будете настраивать приложение, подключать провод и только потом зачехлять смартфон в шлем. При том надо смотреть, чтобы ничего не отключилось, не вылетел провод… У меня VR-шлем со встроенным андроидом и входом HDMI (через USB он тоже может). Летал пока только по HDMI, и скажу я вам, очень неприятно, когда в полёте вылетает кабель. Видео, конечно быстро восстанавливается, когда втыкаешь его обратно, но эти секунды, конечно доставляют… Сейчас думаю напечатать крепление кабеля к шлему. И кабель должен быть мягкий, т.к. а холоде сейчас провод в ПВХ-оплётке колом встаёт. Ну это в основном к HDMI-проводам относится. USB-шных то много мягких, в отличие от HDMI.

Rezonator:

Дисплей маловат ИМХО. У меня в планах FPV шлем с 2K разрешением.

Не думаю, что разрешение больше 1080p в шлеме/смартфоне/другом мелком мониторе имеет смысл. Вдобавок, это ещё и значительно удорожает железку. На мой взгляд перспективней OLED-дисплеи, у которых не видно “сетки” пикселей.

whoim

Зачем провод? Там же вайфай спот

Rezonator:

PS: Кому-нибудь удалось поднять RC with MAVlink?

Первоочередная задача будет, как приедет комплектуха. А что, затыки там?
Как я начитался, палки в колеса в основном вставляет сам ардукоптер - некоторые версии не инициализируются по телеметрии без запроса, который например шлёт мишнпланер или та же минимосд.
Ну и работает айбас для ф4/айнава, который в мавлинк умеет “наполовину”.

lelik
Rezonator:

Кому-нибудь удалось поднять RC with MAVlink?

Если кому удасться завести стабильную двустороннюю телеметрию - расскажите, я не понял как это делается в WFBC. Цитировать wiki не надо - я не понял как в принципе может работать то, что там описано. А RC через MAVlink (RC_OVERRIDE) работает, да.

Rezonator
whoim:

Первоочередная задача будет, как приедет комплектуха. А что, затыки там?

Uplink ваще не работает. Не говоря уже о

RC_OVERRIDE

whoim:

Как я начитался, палки в колеса в основном вставляет сам ардукоптер - некоторые версии не инициализируются по телеметрии без запроса, который например шлёт мишнпланер или та же минимосд.

Телеметрия завелась из коробки.
PS: Использую ArduCopter_3.6.9 на Omnibus F4 Pro

whoim

Перечитал снова вики опенхд - описано, что работает на любых конфигурациях в обе стороны, любых свистках из списка, всего то надо конфиги настроить, порты на 115200 и агонь. Открыть может запрос на гитхабе?

Насчёт ардукоптера - пробовали сначала подкинуть на порт мишнпланер, законнектится, потом пины перекинуть на айрпи?

whoim

Вот у дядьки все работает на альфе, ролику месяц.

А тут видео от Джастина. Видно, что линк наверх поднимается только при подключении аппы к пи или смартфону. Он использует hid_reader на андроиде.

Rezonator
whoim:

Видно, что линк наверх поднимается только при подключении аппы к пи или смартфону.

А вот за это спасибо. Видимо ему не нравится мой USB джойстик. Пора ковырять исходники.

whoim

Если есть под рукой ардуинка, можно симулировать или через ppm аппу зацепить.
Недавно где то проскочило, что на 328й и паре резисторов работает. В загашник закинул, могу поискать если надо.

lelik
whoim:

любых свистках из списка

Вот тут-то и запятая. Бортек и ко шлет RC посредством RTS-пакетов. А кто их понимает искаропки, только atheros, ЕМНИП ? Я ж говорю, не надо мне цитироварть вики

tuskan
lelik:

А кто их понимает искаропки, только atheros, ЕМНИП

А у реалтека/ралинка есть преимущества перед атеросом? В смысле - зачем их используют, на моей памяти все, что было на их чипсетах, работало “не очень хорошо”

lelik
tuskan:

А у реалтека/ралинка есть преимущества перед атеросом? В смысле - зачем их используют, на моей памяти все, что было на их чипсетах, работало “не очень хорошо”

Я использую диапазон 5GHz ибо на 2.4 срач в эфире неимоверный. Двухдиапазонный ралинк мне не понравился, да и выбор невелик. Realtek 8812au - без замечаний. Но у меня полностью свой софт, совместимый с WFBC по форматам/протоколам, особенно сверху вниз. Да и аппаратная платформа другая.

Fisher15

Еще более дешевые шлейфы для firefly split 4k (между камерой и платой) - FFC-0.5MM 32P A-Same Side contact
Они более гибкие и удобные, чем штатные(перетянутые в центре)
Там же можно сразу заказать шлейфы для соединения зеро и узкого конвертера HDMI-CSI - FFC-0.5MM 22P B Reverse contact
и шлейфы для ремонта или изменения длинны HDMI-микроHDMI сборок - FFC-0.5MM 20P B-Reverse contact ( тип A-Same Side (блестючки с одной стороны) или B - Reverse contact (блестючки на разных сторонах шлейфа) - смотрите на своем HDMI)

whoim

Да, завести бы возможность редактировать головной пост, и туда копировать полезные данные…

Rezonator

Подскажите как увидеть stdout/stderr?

	fprintf(stderr, "Waiting for joystick ...");
	while (joy) {
	    joy_connected=access(JOY_DEV, F_OK);
	    fprintf(stderr, ".");
	    if (joy_connected == 0) {
		fprintf(stderr, "connected!\n");
		joy=0;
Rezonator

Не варик, надо на монитор либо по SSH

По идее должно на tty12 сыпаться

lelik
Rezonator:

Не варик, надо на монитор либо по SSH

Ну если по ssh зашел и ручками запустил - на консоли тебе stdout с stderr и будут. А если из .profile эта шняга запускается - ищи ee дефолтный tty. Или же поправь .profile, добавь к вызову >/tmp/шняга.log 2>&1

Rezonator

Должно быть вот так

function rctx_function {
    # Convert joystick config from DOS format to UNIX format
    ionice -c 3 nice dos2unix -n /boot/joyconfig.txt /tmp/rctx.h > /dev/null 2>&1
    echo
    echo Building RC ...
    cd /root/wifibroadcast_rc
    ionice -c 3 nice gcc -lrt -lpcap rctx.c -o /tmp/rctx `sdl-config --libs` `sdl-config --cflags` || {
	echo "ERROR: Could not build RC, check joyconfig.txt!"

joyconfig что-ли ему не нравится?

Кажись нашел

root@wbc(ro):/home/pi# cat /tmp/rctx.h
// Axis number to channel number mapping. Joystick axis 0-7 maps to R/C channel 1-8.
// Axis mapping is AETR1234

#define JSSWITCHES      16      /// 8 for 8 axis + 8 switches = 16 channels / 16 for 8 + 16 = 24 channels to send

#define ROLL_AXIS      3
#define PITCH_AXIS     4
#define YAW_AXIS       0
#define THROTTLE_AXIS  1
#define AUX1_AXIS      5
#define AUX2_AXIS      6
#define AUX3_AXIS      5
#define AUX4_AXIS      6
// Initial axis settings. Since we cannot determine the stick positions until the
// corresponding axis has been moved, we need to pre-fill initial stick postions.
//
// Set your throttle channel to zero throttle (usually 1000) to make sure motors don't spin unintended!
// Set the other channels to the desired middle stick position (usually 1500)

#define AXIS0_INITIAL 1500
#define AXIS1_INITIAL 1020
#define AXIS2_INITIAL 1500
#define AXIS3_INITIAL 1500
#define AXIS4_INITIAL 1000
#define AXIS5_INITIAL 1000
#define AXIS6_INITIAL 1000
#define AXIS7_INITIAL 1000

// 3 = 6ms (167Hz), 4 = 8ms (125Hz), 5 = 10ms (100Hz), 6 = 12ms (83Hz), 7 = 14ms (71Hz), 8 = 16ms (63Hz), 9 = 18ms (56Hz), 10 = 20ms (50Hz)
#define UPDATE_NTH_TIME 10
#define TRANSMISSIONS 2

😕
Походу мой косяк