Prikupets
Наступила осень - пора FPV

Еще видео с карьеров в Купавне. С неожиданным концом.

И еще немного полетов через лес:

Заруба на троих

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

У меня от нагрева батарейки отклеилась от нее велкро, и при маневре батарейка выскользнула чуть назад, выдернув XT60. Коптер рухнул, и спасибо Андрею, который в тот момент находился рядом, ища свой коптер. Андрей обернулся на грохот падения, и по торчащей из травы ленте вышел на мой коптер.

Снимал на RunCam2, в пост-продакшене выкрутил Saturation в Mid tones на максимум 😃

Сокрушение Амбреллы

Как известно, основном достопримечательностью Железнодорожного, кроме Анны Карениной, с незапамятных времен являлся заброшенный госпиталь КГБ. В нем проводили свое время горожане с шашлыками, rope jumper’ы, digger’ы, безумные дети-акробаты, а также приверженцы других более одиозных хобби - такие, как сатанисты, страйкболисты и авиамоделисты.
Полеты в коридорах госпиталя придавало коптерному хобби необходимую перчинку, андреналин стекал на дырявый пол и сочился на нижние этажи, а карбон коптерных рам с треском смешивался с бетоном… Дайвы вдоль ажурных стен были неповторимы… Удавалось даже сажать самолет на длинные крыши. Да что там самолет - зимой на обледевшей крыше катались на коньках!

Мы (моделисты) звали этот комплекс зданий - Амбрелла.

Но все хорошее, по неумолимому 2му закону термодинамики, заканчивается. И власти решили уничтожить этот наш полигон за 8 месяцев, в угоду строительству еще полдюжины домов. Вот ссылка.

Сегодня я ностальгически полетал там на “правильном коптере”, не чета той колымаге на которой летал там в моих прошлых видео из этого места.
Вот видео:

Официальное видео:

Статья про то что скоро там все будет огорожено.

FPV Exploration Купавинских карьеров
Заруба на коптерах с ленточками

Понемногу практикуем воздушную бойню на 250х коптерах.
Под брюхо на батарейную застежку цепляем ленту для кассовых аппаратов. Летаем, срезаем винтами.
Поскольку внезапно развернуться и лететь назад означает автогол - подрезать свою же ленту, приходится летать необычными кривыми - стрейфиться перед разворотом или летать по вертикалям. Вечернее солнце очень помогает прятаться в его свете. И также лента на фоне неба тоже маскируется. Уважаемым, но еще никем не выполненным трюком считается спрятаться, зависнув за березой, свесив ленту за стволом 😃
Бойня в середине видео. Но вначале - корован 😁

Облет карьера (2км путь)
Замечательные моторы RaceStar BR2205 2300kv

Моторы замечательные в своей отстойности! Не знаю, можно ли найти еще что-нибудь подобное и массово выпускаемое в красивой упаковке.
Сначала я заказал моторы BR2205S с полым валом, основываясь на мнении опытных товарищей, утверждаваших, что предыдущая модель BR2205 была хороша, а уж с полым валом должна быть еще лучше (и легче). Моторы выглядели замечательно, но ось у них шаталась как труба дом. Пальчиковый тест - первое, что делают с моторами. Поставленные на коптер, моторы давали желе на камере при большом газе и не давали нормально настроить ПИДы.
Спустя некоторое время в инете поднялась волна по поводу их качества. Люди утверждали, что BR2205 были куда лучше, и потоптавшись с ними пару месяцев, я заказал и их тоже. И что же - оказалось и у BR2205 та же проблема - 2 мотора из 4х ощутимо качались. Видимо бренд RaceStar перевалил через вершину маркетингового цикла и стал наращивать продажи, сбавляя цену и издержки производства за счет ухудшения качества.

Я даже заказал для них японские подшипники, но замена на одном из них не устранила проблему.

А проблема-то была старая… Трубка в корпусе, куда вставляются подшипники, была на какие-то микроны шире чем надо, и подшипники немного болтались в ней, и вал вместе с ними. Я вытряхнул их, обернул тонким скотчем и запрессовал обратно (промучавшись изрядно со снятием стопора, прессованием, и надеванием стопора обратно - невыразимо трудное занятие если нет какого-то неизвестного мне инструмента). Теперь ось не отклоняется ни на волос, rock solid.

Так что теперь, перефразируя песенку про ежиков,

  • …Я рейсстары не люблю,
  • Будь они хоть три рубля!
Полет на 2км на stealth-коптере с LRS

Летел по ветру и не рассчитал заряда на обратный путь. Да и летел по кривой… Так что пришлось сесть метров за 250 от себя.
Всего пролетел 4732м на старом акке Turnigy Nanotech 2100 4s который потратил полностью.
Макс. удаление 2160м, высота полета 50м, время полета 6:10. Макс. ток 29A.

Салют на День Города в Железнодорожном (09/2017)

Немного поснимал салют. Ближе не решался, так как на пути был кран, который был виден в камеру только в моменты раскрытия залпов.
Камера CMOS - в темноте не кажет. Поэтому висел на месте в 100м от действия.

Операция по перехвату "Хомяк"
Краники FPV

Осваиваю кувырки и дайвинг у кранов. Отдельно стоящие 70-метровые желтые исполины на пустыре - идеальный полигон для этого, куда лучше деревьев и домов 😃

Складной Stealth коптер

На смену голубому коптеру на фотке ниже пришла его реинкарнация. Видео голубого коптера в действии 😁

Это складной коптер, который в разложенном виде допускает устатовку винтов вплоть до 7’ (но лучше 6’). Имеет на борту GPS, iNav, две мощных фары, наклоняемую камеру, ну и барометр, компас, датчики тока и напряжения. Сонар не ставил, т.к. практика показала его бесполезность.

Рама самодельная, выпиленная руками из стеклотекстолита, и лучи сделаны из алюминевого квадратного профиля 10x10 c насверленными отверстиями для облегчения. Спроектирован в Солиде.
Довольно маленький, но без акка весит 540г.
Его оранжевый брат с винтами до 5.5’, тоже с GPS и с сонаром, но без управляемой камеры, весит 517г. Заодно взвесил правильный коптер - 370г.
Сзади коптер снабжет ручкой для переноски, значит имеет все основания называться портативным (если было бы две ручки - был бы полупортативным).



Внутренности традиционно ужасные, несмотря на пайку вместо коннекторов и тонкие провода:

Модель в Солиде помогла совместить все отверстия, учести размеры моторов, винтов и т.д.

На борту контроллер F3 с барометром и отломанным компасом. Компас берется из GPS приемника.
OSD сделан на старой плате MinimOSD v1, причом в прошивку добавлен код для управления драйвером светодиодов для фары.
Подготовлена площадка и питание для 1-осевого gimbal’а.

Правильный запуск правильного коптера

Частенько на поле бывает трава по мочки, или земля - пыльная пустыня, или каменистый склон горы, или банально грязно на улице - а коптер запускать надо. Тогда полезным будет отточить такой способ запуска: 😁

Качаем скиллы правильным коптером

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

Собачки FPV

Погоня вдвоем от задиристых песиков в Парке Акведук. То один то другой коптер периодически перехватывал инициативу погони и внимание собак, и те вдвоем гонялись за ним по кустам и лужайкам. Но почему-то не разделялись для преследования обоих единовременно.
Пришлось сесть до того, как они устали, а мне, как севшему первым, к тому же понадобилось отгонять их от второго коптера во время посадки.
Удивительно, насколько хватает батареек в этих животных! Коптерам такое и не снилось. 😒

Бой быков

Столкнулся с коптером товарища и победил!

Внезапным выпадом подставил ему под винт свой мотор, лопасть винта другого коптера отлетела, мотор потерял тягу и коптер упал на луч этого мотора, луч сломался и освобожденный и непокоренный мотор второй лопастью винта вмиг отсек торчащие усы антенн приемника, избавившись враз от контроля над собой! 😁

Все это я, конечно, не специально. 😒

P.S. Это не первое мое столкновение 😉

Реальный ахтунг! Таран Изистара Твином (FPV)
Креш ТвинСтара в Изика
FPV ролик с альтернативными концовками

Проба правильного коптера

Часик полетал на закате в госпитале. Пока страшновато дайвить, да и деревья внизу. Поймал FailSafe в 50 метрах над собой, что странно для FRSKY FASST Diversity приемника…

[Update] Причина FailSafe скорее всего была в отломанном экране антенны передатчика.

Мой коптер внизу в центре.

Привыкание к правильному коптеру

Собрал 210мм коптер на Omnibus F4 под BetaFlight 3.1.7.
Пока настроил немного ПИДы (не идеально, есть еще propwash вибрации иногда), но это по-любому на порядки лучше чем мой любой предыдущий коптер.
Вот пара коротких роликов с закатных полетушек:

Первомайские купания с SUP

Видео:

Story

Первого мая, в невероятно жаркий для весны и очень ветренный день мы отправились на Купавинские карьеры (т.н. “Куршавель”). Я взял самодельный SUP (доску для плавания) и небольшой тренировочный кайт. План заключался в том, чтобы поплавать на карьере на SUPе и попробовать походить под парусом с этим кайтом. Дополнительной целью было испытать прототип “стула” для SUPа для того, чтобы грести сидя в долгих путешествиях.

Спустив доску на воду с подветренного берега, я, с трудом пробивая ветер, доплыл до маленького островка в 120м, и воткнул в мель рядом с ним весло, прижав им доску, чтобы меня не прибило ветром обратно к точке отправления. Затем начал расчехлять змея, и в какой-то сложный момент мне потребовались две руки, чтобы распутать стропы. Почуяв, что никто ее больше не держит за весло, доска со мной радостно устремилась по ветру, а я немного удивленно смотрел на удаляющееся, воткнутое в дно, весло… Змей, кстати, коснулся воды и, намокнув, сразу сдулся.

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

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

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

…fbcdn.net/…/18238454_440288509638271_246886149724… (277 Kb)

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

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

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

Доковыляв до противоположного берега, в полукилометре от первоначального места, я вышел к тщательно рассчитанной у учетом направления ветра точке, и понял, что ветер там дует совсем в другом направлениии! Турбулентность создавали высокие отроги, но метрах в 10 от берега направление приходило в норму. Спустив доску по песчанному склону, я привязал ее веревкой к руке (не хотелось чтобы ее постигла судьба весла) и отчалил.

Поначалу шло мелководье и мне даже приходилось вытаскивать киль чтоб не цеплять за дно. Но продрейфовав 350м, я, практически не вмешиваясь в курс, вышел точно на весло и схватил его! И весело погреб к берегу.

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

…fbcdn.net/…/18238795_440294609637661_647354692634… (243 Kb)

…fbcdn.net/…/18238122_440295196304269_594691206778… (212 Kb)

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

Черный дом, гигантская теплица, поле, лес...

Полетал во втором эпичном заброшенном здании в Железнодорожном. Гигантский ангар, в котором сожгли мириады шин и закоптили, похоже, не только пол и стены, но и само пространство. Затем в гигантской “теплице”, вмещающей 20-ти летние березы. Затем акробатика на поле, потом рэйсинг в лесу, потом пролазы в чаще. Так прошел вечер 7-го мая. Прошел в сумме 13700 шагов, что чуть больше моей сумасшедшей дневной нормы 😌

WikiMapia

Полеты в сосновому бору
Степной пожар на Саввинском поле (FPV)
Полеты в чаще весеннего леса. Дикарь. Роуп-джампер.

Насыщенный выдался день. Полетал в трех локациях - в чаще, на поле бывшего питомника растений “Зеленая Зона” и в парке заброшенного госпиталя.

P.S. Лесная локация строго та же, где снималось FPV в Заколдованном Лесу.

Управление прожектором без RC-switch

Понадобилось подрубить фары к коптеру на NAZE32 под iNAV/CleanFlight. Фары надо включать отдельным диапазоном канального импульса, например > 1700 ms. Приемник подключен по CPPM, так что выходы каналов проброшены на выходы моторов посредством вкладки Servo.

Для питания светодиодов использован драйвер: JRLED MR16-9W Power Driver for Light Lamp Bulb (DC 12~14V / 5PCS)
Линзы 2шт: 22mm 30 Degree Condensing Lens for LED Light - White (5 PCS)
Светодиоды 2шт (последовательно): Eipstar JR 3W 180lm 5500K Neutral Light LED Module

Драйвер собран на микросхеме MC34063A, которая имеет вывод 5 (COMP) для управления напряжением светодиода. По умолчанию на нем 0 через подключение к GND, что дает максимальное напряжение. Я отогнул его и подключил через резистор 8.2k к земле. Если на вывод подать 5V, светодиод выключится. Но проблема в том, что iNAV/CleanFlight не может выдать лог.1 на моторные выводы при попадании канального импулься в заданный диапазон. Хорошо бы иметь для этого что-то типа конфигурации на вкладке Flight Modes…
Поэтому управлять этим драйвером через GPIO без допиливания iNAV не получится… Но есть другое решение.
Можно использовать RC-switch, но это дополнительный вес на маленьком коптере и вообще ломает идеалы 😁

Решение - снимать сигнал с вывода контроллера MinimOSD и допилить его прошивку. Я использовал вывод 3 в среде Arduino (вывод PD3 контроллера, прямо над отметкой на корпусе). Пробросил от него провод на видеоконнектор +12V, который предварительно откусил от платы.

В прошивке scarab-osd сделал включение этого вывода по канальному импульсу и также режим мигания 2Hz для отдельного диапазона импульса. Вывод 3 контроллера MinimOSD подключен к проброшенному моторному пину контроллера NAZE32.

Изменения в файлах:

Config.h (добавить в конец):

// AP; START;
/************ Adding Custom GPIO output pin controlled by channel value; Used for LED driver control *********/
// Comment out CUSTOM_OUT_PIN if this logic is not needed at all;
#define CUSTOM_OUT_PIN 3 // This pin will output logical level;
#define CUSTOM_OUT_STICK 7 // Ch.7 is AUX3 in iNAV;
// These conditions may be commented out if not needed;
#define CUSTOM_OUT_HIGH_CONDITION (MwRcData[CUSTOM_OUT_STICK] > 1675) // This condition is checked first;
#define CUSTOM_OUT_FLASH_CONDITION (MwRcData[CUSTOM_OUT_STICK] > 1500) // Flashing at 2Hz; This is checked if condition for HIGH evaluated false;
// These setting define what means LOW and HIGH from logical level point; they allow to invert signal;
#define CUSTOM_OUT_HIGH LOW // My LED driver requires inverted signals;
#define CUSTOM_OUT_LOW HIGH
// AP; STOP;

MW_OSD.ino (добавить в конец функции setup():

// AP; START; Custom output support;
#if defined CUSTOM_OUT_PIN
  pinMode(CUSTOM_OUT_PIN, OUTPUT);
  digitalWrite(CUSTOM_OUT_PIN, CUSTOM_OUT_LOW);
#endif
// AP; STOP; Custom output support;

MW_OSD.ino (добавить в конец функции loop():

// AP; START; Custom output support;
#if defined CUSTOM_OUT_PIN
  byte customLedState = CUSTOM_OUT_LOW;
#if defined CUSTOM_OUT_HIGH_CONDITION
  if (CUSTOM_OUT_HIGH_CONDITION) {
    customLedState = CUSTOM_OUT_HIGH;
  }
#endif
#if defined CUSTOM_OUT_FLASH_CONDITION
  if (timer.Blink2hz && (CUSTOM_OUT_FLASH_CONDITION)) {
    customLedState = CUSTOM_OUT_HIGH;
  }
#endif
  digitalWrite(CUSTOM_OUT_PIN, customLedState);
#endif
// AP; STOP; Custom output support;

Все протестил и замазал liquid electrical tape.

Фотки:

1-осевой gimbal для парирования отклонений по Roll

Когда летаешь на коптере в сложном рельефе (среди деревьев в лесу, например), часто встречаются ситуации, когда препятствие видишь в последний момент, и надо стрейфиться влево-вправо отклонением по Roll. Этот момент неприятно смотрится на видео, и не может исправиться при deshaking’е без значительной обрезки кадра. Для борьбы с ним отлично подошел бы 1-осевой подвес, который к тому же был бы легким и несильно нагрузил бы 250-й коптер. 😉

Я сделал подвес, специально предназначенный под камеры типа Mobius, Mobius Mini, RunCam.

При помощи алюминия и текстолита получилась простая конструкция, которую можно легко менять под разные камеры, например, обрезать под Mobius Mini. Мотор подключен к среднему MOT, датчик приклеен снизу. Сам контроллер размещается вдлину за мотором, ибо длина у него - как ширина камеры (40 мм).
Прошивку не менял, стоит 0.82e, да и непросто это вроде без ST-Link. Вместо питания через разъем можно просто подпаяться к любому GND на плате и к выводу большого диода на плате рядом с коннектором, который ближе к краю платы (но я пока этого не сделал).

Контроллер: Micro STorM32-BGC
Мотор (20 г.): Multistar 1807-340Kv Brushless Gimbal Motor for Mobius Camera

Вес подвеса: 50 г. без проводов питания.

Настройки подвеса у меня такие (калибровку делал по 6 позициям, но тут приводить ее бессмысленно, как и и положение IMU):

RollP = 4.00
RollI = 150
RollD = 0.0350
Roll Motor VMax = 150

Roll Motor Poles = 14
Roll Motor direction = reversed

Настройка зависит от инерции подвеса, проводить ее надо с приделанной камерой. У меня в лотке для камеры вклеена липучка, и еще камера дополнительно оборачивается лентой-липучкой. Сам подвес ставится на резиновые грибки, но с ними я еще тоже не испытывал, а крепил жестко (с грибками возможно придется повторно настроить ПИДы подвеса).

Видео работы: …google.com/…/AF1QipOd5a5hizLmKvusvFAm1ybWLxeB_vcv…

This site will not work without javascript!
This site will not work if cookies are completely disabled.
Site is offline
  • 64.73ms - Total
    • 0.10ms - http_prepare
    • 0.02ms - cookies_read
    • 0.01ms - tz_offset_read
    • 59.45ms - server_chain_exec
      • 0.05ms - session_load
      • 0.01ms - session_new
      • 0.05ms - csrf_token_set
      • 0.04ms - fill_session_from_AuthSession
      • 0.82ms - fetch_guest_user_info
      • 0.08ms - fill_user_info_locale
      • 0.01ms - layout_common_set
      • 3.81ms - show_announces
      • 51.00ms - server_method_exec
        • 0.27ms - offline_mode_check
        • 5.17ms - fetch_user_by_hid
          • 0.25ms - fetch_can_see_deleted_users
          • 4.86ms - fetch_user_by_hid
        • 0.44ms - bot_member_pages_forbid_access
        • 0.12ms - fetch_current_tag
        • 17.42ms - subcall_entry_list
          • 0.63ms - fetch_and_fill_permissions
          • 0.05ms - define_visible_statuses
          • 2.48ms - get_entry_ids
          • 8.82ms - fetch_and_sort_entries
          • 1.63ms - fetch_and_fill_bookmarks
          • 0.47ms - fetch_infractions
          • 0.07ms - collect_users
          • 1.47ms - check_ignores
          • 1.20ms - blog_entries_sanitize_and_fill
        • 4.48ms - fetch_tags
        • 1.46ms - fetch_categories
        • 17.62ms - fill_pagination
        • 0.05ms - fill_head
        • 0.05ms - fill_breadcrumbs
        • 3.62ms - fill_prev_next
      • 0.01ms - fill_runtime_locale
      • 0.22ms - inject_acp_access_state
      • 0.05ms - fill_runtime_user_info
      • 0.19ms - inject_dialog_permissions
      • 0.01ms - token_live_inject
      • 0.19ms - fetch_can_see_deleted_users
      • 1.40ms - users_join
      • 0.01ms - add_users_to_page_data
      • 0.01ms - session_ttl_increase
      • 0.09ms - assets_info_inject
      • 0.01ms - footer_common_inject
      • 0.01ms - navbar_common_inject
      • 0.01ms - recaptcha_pubkey_inject
      • 0.14ms - session_save
      • 0.01ms - session_delete
      • 0.01ms - last_active_update
      • 0.14ms - token_live_save
      • 0.67ms - response_to_plain_object
    • 0.01ms - not_modified_check
    • 0.02ms - http_loading_stub
    • 4.77ms - http_render
    • 0.02ms - inject_security_headers
    • 0.00ms - puncher_end