EZ-WifiBroadcast DIY HD видео своими руками
Кстати, а чем плох вариант шлем-коробка/смартфон? Это явно дешевле, при хороших характеристиках и отсутствии лишних задержек
Думаю норм вариант. Но надо понимать, что сначала будете настраивать приложение, подключать провод и только потом зачехлять смартфон в шлем. При том надо смотреть, чтобы ничего не отключилось, не вылетел провод… У меня VR-шлем со встроенным андроидом и входом HDMI (через USB он тоже может). Летал пока только по HDMI, и скажу я вам, очень неприятно, когда в полёте вылетает кабель. Видео, конечно быстро восстанавливается, когда втыкаешь его обратно, но эти секунды, конечно доставляют… Сейчас думаю напечатать крепление кабеля к шлему. И кабель должен быть мягкий, т.к. а холоде сейчас провод в ПВХ-оплётке колом встаёт. Ну это в основном к HDMI-проводам относится. USB-шных то много мягких, в отличие от HDMI.
Дисплей маловат ИМХО. У меня в планах FPV шлем с 2K разрешением.
Не думаю, что разрешение больше 1080p в шлеме/смартфоне/другом мелком мониторе имеет смысл. Вдобавок, это ещё и значительно удорожает железку. На мой взгляд перспективней OLED-дисплеи, у которых не видно “сетки” пикселей.
Зачем провод? Там же вайфай спот
PS: Кому-нибудь удалось поднять RC with MAVlink?
Первоочередная задача будет, как приедет комплектуха. А что, затыки там?
Как я начитался, палки в колеса в основном вставляет сам ардукоптер - некоторые версии не инициализируются по телеметрии без запроса, который например шлёт мишнпланер или та же минимосд.
Ну и работает айбас для ф4/айнава, который в мавлинк умеет “наполовину”.
Кому-нибудь удалось поднять RC with MAVlink?
Если кому удасться завести стабильную двустороннюю телеметрию - расскажите, я не понял как это делается в WFBC. Цитировать wiki не надо - я не понял как в принципе может работать то, что там описано. А RC через MAVlink (RC_OVERRIDE) работает, да.
Первоочередная задача будет, как приедет комплектуха. А что, затыки там?
Uplink ваще не работает. Не говоря уже о
RC_OVERRIDE
Как я начитался, палки в колеса в основном вставляет сам ардукоптер - некоторые версии не инициализируются по телеметрии без запроса, который например шлёт мишнпланер или та же минимосд.
Телеметрия завелась из коробки.
PS: Использую ArduCopter_3.6.9 на Omnibus F4 Pro
Перечитал снова вики опенхд - описано, что работает на любых конфигурациях в обе стороны, любых свистках из списка, всего то надо конфиги настроить, порты на 115200 и агонь. Открыть может запрос на гитхабе?
Насчёт ардукоптера - пробовали сначала подкинуть на порт мишнпланер, законнектится, потом пины перекинуть на айрпи?
Вот у дядьки все работает на альфе, ролику месяц.
А тут видео от Джастина. Видно, что линк наверх поднимается только при подключении аппы к пи или смартфону. Он использует hid_reader на андроиде.
Видно, что линк наверх поднимается только при подключении аппы к пи или смартфону.
А вот за это спасибо. Видимо ему не нравится мой USB джойстик. Пора ковырять исходники.
Если есть под рукой ардуинка, можно симулировать или через ppm аппу зацепить.
Недавно где то проскочило, что на 328й и паре резисторов работает. В загашник закинул, могу поискать если надо.
любых свистках из списка
Вот тут-то и запятая. Бортек и ко шлет RC посредством RTS-пакетов. А кто их понимает искаропки, только atheros, ЕМНИП ? Я ж говорю, не надо мне цитироварть вики
А кто их понимает искаропки, только atheros, ЕМНИП
А у реалтека/ралинка есть преимущества перед атеросом? В смысле - зачем их используют, на моей памяти все, что было на их чипсетах, работало “не очень хорошо”
5.8ghz?
А у реалтека/ралинка есть преимущества перед атеросом? В смысле - зачем их используют, на моей памяти все, что было на их чипсетах, работало “не очень хорошо”
Я использую диапазон 5GHz ибо на 2.4 срач в эфире неимоверный. Двухдиапазонный ралинк мне не понравился, да и выбор невелик. Realtek 8812au - без замечаний. Но у меня полностью свой софт, совместимый с WFBC по форматам/протоколам, особенно сверху вниз. Да и аппаратная платформа другая.
Еще более дешевые шлейфы для 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)
Да, завести бы возможность редактировать головной пост, и туда копировать полезные данные…
Подскажите как увидеть 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;
Вот тут чувак в юарт вывел)
…stackexchange.com/…/redirecting-stdout-and-stderr…
Не варик, надо на монитор либо по SSH
По идее должно на tty12 сыпаться
Не варик, надо на монитор либо по SSH
Ну если по ssh зашел и ручками запустил - на консоли тебе stdout с stderr и будут. А если из .profile эта шняга запускается - ищи ee дефолтный tty. Или же поправь .profile, добавь к вызову >/tmp/шняга.log 2>&1
Должно быть вот так
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
😕
Походу мой косяк
Ну так завелось то?)