DJI Mavic 2 Pro и Zoom – инструкция на русском языке и Quick Start Guide – PilotHub

DJI Mavic 2 Pro и Zoom - инструкция на русском языке и Quick Start Guide  - PilotHub Мультикоптеры

Что такое home point?

Домашняя точка по умолчанию является первым местом, где дрон получил сильные сигналы GNSS (данные о местоположении). В приложении DJI Fly App белый значок GNSS будет содержать не менее 4 белых полос. Индикатор состояния Mavic Mini быстро мигает зеленым после того, как Home Point была записана.

Домашняя точка может быть записана неправильно – с версиями прошивки, предшествующими v01.00.0400, можно было взлетать и летать со слабым сигналом GPS или при плохом освещении. Если у вас слабый сигнал GPS на взлете, то домашняя точка будет записана неправильно.

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

В версии встроенного ПО v01.00.0400 была добавлена ​​функция отключения взлета при слабом сигнале GPS (GPS <8) и недостаточном освещении окружающей среды. Эту функцию можно отключить вручную (требуется приложение DJI Fly v1.0.4 или новее).

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

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

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

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

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

Читайте: Как правильно делать калибровку квадрокоптера?

Потерянное соединение с пультом дистанционного управления — Функция отказоустойчивого RTH автоматически активируется на многих моделях после потери сигнала пульта дистанционного управления в течение более 11 секунд. Тем не менее, это зависит от того, была ли домашняя точка была успешно записана в первую очередь.

Сильный ветер — Если дрон летит обратно в исходную точку с определенной скоростью. Если ветрено, дрон не сможет достичь конечной точки вовремя и совершит аварийную посадку.

Читайте: Как не потерять свой квадрокоптер и что делать если это случилось?

Высота над уровнем моря – если вы не летаете на открытой местности, может быть важно установить другую высоту, чем высота по умолчанию 20 метров (65,61). Полеты в местах, где есть деревья, канавы, высокие кусты и т. Д. Вы можете установить другую высоту RTH в приложении DJI Fly.

Fpv rc – пульт для дальних полетов и антенное хозяйство

Если вы увлекаетесь радио моделизмом, то статья может вам показаться интересной. Расскажу о том как я сделал свою “наземную станцию” для дальних полетов с FPV.

FPV RC - пульт для дальних полетов

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

Для полетов без камеры аппаратуре FlySky FS-T6 вполне хватало т.к. когда пропадала видимость самолета с земли тогда начинались проблемы со связью. Перебои начинались уже на 400-500 метрах. Когда была установлена fpv камера проблемы со связью стали сильно досаждать.В начале был куплен Wi-Fi бустер на 2 вата, потом заменен fpv приемник/передатчик с 5.8Ghz 200mWt на 1.2Ghz 600mWt. Но тут начались проблемы с смежными частотами RC управления на 2.4Ghz и fpv 1.2Ghz. Частично они решились переходом на 5 канал видео связи но наводки fpv передатчика заметно снижали дальность. Пришлось изобретать направленные антенны: Патч на 1.2Ghz и бабочка на 2.4Ghz. Обо всем по порядку.

Аппаратура FS-T6 имеет отсек для пальчиковых батареек. Серьезную нагрузку пальчики не выдержат. В отсек хорошо поместился Li-Po аккумулятор 1500mA/h 11.1v которого вполне хватает на несколько долгих полетов. Пришлось сделать пару отверстий для креплений и притянуть его стяжками. Питающий провод был подпаян к клеммам аппаратуры. За одно был выведен из корпуса провод питания от выключателя. Таким образом я могу при включении аппаратуры сразу подавать питание на все дополнительные потребители. Удобно!

FPV RC - пульт для дальних полетов

Пока разобранный передатчик не был обратно собран нужно сделать еще одну штуку – выкинуть штатную антенну-сосиску, рассверлить отверстие где была старая антенна, поставить в нее купленный высокочастотный разъем “папа” и подпоять его к передатчику. После сборки будет выглядеть так:

FPV RC - пульт для дальних полетов

Пульт был закреплен на куске винилового сайдинга 4-я стяжками. Далее было насверлено множество отверстий для крепления компонентов:

  • приемник 5.8ghz
  • приемник 1.2Ghz
  • wi-fi бустер 2.4Ghz
  • кастом преобразователь 12v – 5v (для питания бустера)
  • 5” дисплей для аналогового сигнала
  • площадка для крепления антенн

При подключении никаких хитростей нет. Нужно только прикупить 3 высокочастотных переходника-удлинителя типа мама-мама для подключения передающего сигнала от пульта к бустеру и от бустера к антенне; от fpv приемника к антенне.
К слову сказать, если вы любите летать вокруг себя, то направленная антенна вам не нужна. Летайте на штатных “сосисках” или “клеверах”. Они дают ровный сигнал во все стороны и не придется вертеться в след за самолетом, но дальность приема сильно упадет.

Купленный мною бустер оказался с питанием от 5 вольт.

Wi-fi бустер на 2 вата

Подключать напрямую к 12 вольтам не хотелось. Пришлось изобретать преобразователь.

Преобразователь из 12 в 5 вольт

Преобразователь собран на микросхеме KP142EH5A и посажен на радиатор. Схема преобразователя очень проста:

Преобразователь из 12 в 5 вольт

Видео приемники подключены к дисплею одновременно. Оказалось очень удобно т.к. дисплей имел два входа. Переключениями между входами штатно осуществляется нажатием кнопки V1/V2 на самом дисплее.

FPV приемники

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

Направленный антенны для FPV

Направленная патч антенна на 1.Ghz с высоким коэффициентом усиления выполнялась по этой схеме:

Чертеж направленной патч антенны на 1.2ghz

Расстояние между пластинами 11.6мм. Перемычки из диэлектрика. На задней стороне припаян высокочастотный разъем “папа”.

Направленная патч антенна 1.2Ghz

Широкополосная направленная антенна бабочка для wi-fi делалась по схеме:

Чертеж широкополосной антенны бабочки 4.2GhzАнтенна бабочка 4.2Ghz

Конструкция получилась увесистая (можно ею отбиваться в подворотне), но напряжения при удержании руках не испытываю. Всегда можно накинуть шнурок на проушину аппаратуры.

FPV RC - пульт для дальних полетов

Hbc radiomatic – купить недорого в интернет-магазине, цены

Согласие на обработку персональных данных клиентов-физических лиц

Пользователь, оставляя заявку на интернет-сайте https://radiocopter.ru,
https://jp.radiocopter.ru, https://cn.radiocopter.ru
принимает настоящее Согласие на обработку персональных данных (далее – Согласие).
Действуя свободно, своей волей и в своем интересе, а также подтверждая свою
дееспособность, пользователь дает согласие на обработку своих персональных данных для компании Shopozz Corp., 723 South Casino Center Blvd., 2nd Floor Las Vegas, NV 89101-6716 на сайте https://radiocopter.ru, а также ООО “СКИФМЬЮЗИК”, ИНН 6315642316 на территории РФ, в целях предоставления посреднических услуги по покупке товаров в интернет-магазинах и на аукционах США.

  1. Данное Согласие дается на обработку персональных данных, как без использования средств
    автоматизации, так и с их использованием.
  2. Согласие дается на обработку следующих моих персональных данных:
    • 1) Персональные данные, не являющиеся специальными или биометрическими: номера
      контактных телефонов; адреса электронной ̆ почты; место работы и занимаемая
      должность; пользовательские данные (сведения о местоположении; тип и версия ОС; тип
      и версия Браузера; тип устройства и разрешение его экрана; источник откуда пришел на
      сайт пользователь; с какого сайта или по какой рекламе; язык ОС и Браузера; какие
      страницы открывает и на какие кнопки нажимает пользователь; ip-адрес.
  3. Персональные данные не являются общедоступными.
  4. Цель обработки персональных данных: обработка входящих запросов физических лиц с
    целью оформления заказов
    ; аналитики действий физического лица на веб-сайте и
    функционирования веб-сайта; проведение рекламных и новостных рассылок.
  5. Основанием для обработки персональных данных является: ст. 24 Конституции Российской
    Федерации; ст.6 Федерального закона №152-ФЗ «О персональных данных»; Устав
    “Shopozz Corp.”
    ; настоящее согласие на обработку персональных данных.
  6. В ходе обработки с персональными данными будут совершены следующие действия: сбор;
    запись; систематизация; накопление; хранение; уточнение (обновление, изменение);
    извлечение; использование; передача (распространение, предоставление, доступ);
    блокирование; удаление; уничтожение.
  7. Персональные данные обрабатываются до отписки физического лица от рекламных и
    новостных рассылок. Также обработка персональных данных может быть прекращена по
    запросу субъекта персональных данных. Хранение персональных данных, зафиксированных
    на бумажных носителях осуществляется согласно Федеральному закону №125-ФЗ «Об
    архивном деле в Российской Федерации» и иным нормативно правовым актам в области
    архивного дела и архивного хранения.
  8. Согласие может быть отозвано субъектом персональных данных или его представителем
    путем направления письменного заявления “Shopozz Corp.” или его
    представителю по адресу, указанному в начале данного Согласия.
  9. В случае отзыва субъектом персональных данных или его представителем согласия на
    обработку персональных данных “Shopozz Corp.” вправе продолжить обработку
    персональных данных без согласия субъекта персональных данных при наличии оснований,
    указанных в пунктах 2 – 11 части 1 статьи 6, части 2 статьи 10 и части 2 статьи 11
    Федерального закона №152-ФЗ «О персональных данных» от 27.07.2006 г
  10. Настоящее согласие действует все время до момента прекращения обработки персональных
    данных, указанных в п.7 и п.8 данного Согласия.

Купить самолет на радиоуправлении в москве – магазин радиоуправляемых моделей

Наличие товара: в наличии

 Обновленная версия известного пилотажного самолета AcroMaster. Отличный выбор для 3D пилотажа любой сложности! Размах крыла составляет 1100 мм. Отличительной чертой данной модели является ее универсальность: вы можете выполнять на нем фигуры как классического, так и 3D пилотажа, а также отличную модель для спокойного полета.

Самолет разработан и произведен в Германии из уникального материала Elapor, который отличается высокой жесткостью, легкостью и хорошей ремонтопригодностью. А его летные характеристики проверены именитыми RC пилотами.

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

Комплетация RR – силовая установка и сервоприводы уже установлены. Необходима аппаратура радиоуправления и аккумулятор.

§

Наличие товара: в наличии

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

Смотрите про коптеры:  Как выбрать регулятор скорости для гоночного квадрокоптера | RCDetails Blog

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

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

Комплетация RR- на модели установлены силовая установка и сервоприводы

§

Наличие товара: в наличии

 Cessna 182 — американский лёгкий самолёт общего назначения. Разработан компанией Cessna. Один из наиболее массовых самолётов в истории авиации. С 1956 года построено свыше 25 000 самолётов в более чем 15 модификациях. 

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

Настройка hid-устройства и создание hid report descriptor

USB HID (Human Interface Device) – это класс устройств для взаимодействия человека с компьютером. К ним относятся клавиатуры, мыши, джойстики, геймпады, сенсорные панели. Главное преимущество HID-устройств в том, что для них не требуется специальных драйверов в любых операционных системах:

Windows, OS X, Android и даже iOS (через USB-Lightning adapter). Подробное описание можно прочитать в документе Device Class Definition for HID. Главное, что нам необходимо знать для создания PPM-USB-адаптера – что такое HID Report и HID Report Descriptor.

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

Например, HID Report простой мыши состоит из четырёх байт: в первом байте содержится информацию о нажатых кнопках, во втором и третьем байте – относительное перемещение курсора по X и Y, а четвёртый байт – вращение колеса прокрутки. Report Descriptor хранится в памяти контроллера устройства в виде массива байтов.

Перед тем, как создавать дескриптор, я хотел бы отдельно остановиться на терминологии. В англоязычной среде распространены два термина – joystick и gamepad. Словом joystick принято называть манипулятор, который держат одной рукой и наклоняют в разные стороны, а gamepad – устройство с кнопками и стиками, которое держат двумя руками.

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

Мы сгенерировали проект, указав, что устройство будет выступать как Human Interface Device. Это значит, что к проекту подключена библиотека USB HID и уже был сформирован Device Descriptor. Он находится в файле usbd_hid.c, описывает репорт мыши и выглядит так:

HID_Mouse_Report_Descriptor
__ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE]  __ALIGN_END =
{
  0x05,   0x01,
  0x09,   0x02,
  0xA1,   0x01,
  0x09,   0x01,

  0xA1,   0x00,
  0x05,   0x09,
  0x19,   0x01,
  0x29,   0x03,

  0x15,   0x00,
  0x25,   0x01,
  0x95,   0x03,
  0x75,   0x01,

  0x81,   0x02,
  0x95,   0x01,
  0x75,   0x05,
  0x81,   0x01,

  0x05,   0x01,
  0x09,   0x30,
  0x09,   0x31,
  0x09,   0x38,

  0x15,   0x81,
  0x25,   0x7F,
  0x75,   0x08,
  0x95,   0x03,

  0x81,   0x06,
  0xC0,   0x09,
  0x3c,   0x05,
  0xff,   0x09,

  0x01,   0x15,
  0x00,   0x25,
  0x01,   0x75,
  0x01,   0x95,

  0x02,   0xb1,
  0x22,   0x75,
  0x06,   0x95,
  0x01,   0xb1,

  0x01,   0xc0
};

Создавать HID Report Descriptor вручную – занятие чрезвычайно трудоёмкое. Для облегчения задачи есть инструмент под названием HID Descriptor Tool (DT). Этой программой можно составить дескриптор для своего устройства. В архиве с ним можно найти несколько примеров дескрипторов для разных устройств.

Здесь очень хорошая статья про создание своего HID-дескриптора для мыши и клавиатуры (на английском). Я расскажу на русском, как сделать дескриптор для геймпада.

HID-Report, отправляемый пультом должен содержать четыре 16-битных значения для двух осей аналоговых стиков и 16 однобитных значений для кнопок. Итого 10 байт. Его дескриптор, созданный в DT, будет выглядеть так:

    0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
    0x09, 0x05,                    // USAGE (Game Pad)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x09, 0x01,                    //   USAGE (Pointer)
    0xa1, 0x00,                    //   COLLECTION (Physical)
    0x09, 0x30,                    //     USAGE (X)
    0x09, 0x31,                    //     USAGE (Y)
    0x15, 0x00,                    //     LOGICAL_MINIMUM (0)
    0x26, 0xe8, 0x03,              //     LOGICAL_MAXIMUM (1000)
    0x75, 0x10,                    //     REPORT_SIZE (16)
    0x95, 0x02,                    //     REPORT_COUNT (2)
    0x81, 0x02,                    //     INPUT (Data,Var,Abs)
    0xc0,                          //   END_COLLECTION
    0xa1, 0x00,                    //   COLLECTION (Physical)
    0x09, 0x33,                    //     USAGE (Rx)
    0x09, 0x34,                    //     USAGE (Ry)
    0x15, 0x00,                    //     LOGICAL_MINIMUM (0)
    0x26, 0xe8, 0x03,              //     LOGICAL_MAXIMUM (1000)
    0x75, 0x10,                    //     REPORT_SIZE (16)
    0x95, 0x02,                    //     REPORT_COUNT (2)
    0x81, 0x02,                    //     INPUT (Data,Var,Abs)
    0xc0,                          //   END_COLLECTION
    0x05, 0x09,                    //   USAGE_PAGE (Button)
    0x19, 0x01,                    //   USAGE_MINIMUM (Button 1)
    0x29, 0x10,                    //   USAGE_MAXIMUM (Button 16)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
    0x75, 0x01,                    //   REPORT_SIZE (1)
    0x95, 0x10,                    //   REPORT_COUNT (16)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)
    0xc0                           // END_COLLECTION

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

USAGE показывает, как система должна интерпретировать данные, которые идут дальше.Разновидностей Usage бывает очень много, они рассортированы по группам – Usage Pages. Поэтому для того, чтобы выбрать какой-то определённый Usage, надо сначала обратиться к соответствующей USAGE_PAGE.

USAGE_PAGE (Generic Desktop)
USAGE (Game Pad)

COLLECTION объединяет в себе несколько связанных друг с другом наборов данных.Physical Collection используются для данных, относящихся к одной конкретной геометрической точке, например, одному аналоговому стику. Application Collection используется для объединения разных функций в одном устройстве.

COLLECTION (Application)

END_COLLECTION


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

USAGE (Pointer)

Дальше следуют описания аналоговых стиков, объединённых в коллекции:

COLLECTION (Physical)

USAGE (X)
USAGE (Y)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1000)
REPORT_SIZE (16)
REPORT_COUNT (2)
INPUT (Data,Var,Abs)

END_COLLECTION

USAGE здесь указывает, что используются значения отклонения по двум осям – X и Y.LOGICAL_MINIMUM и LOGICAL_MAXIMUM задают, в каких пределах может меняться передаваемое значение.REPORT_COUNT и REPORT_SIZE задают, соответственно, сколько чисел и какого размера мы собираемся передать, а именно два 16-битных числа.

INPUT(Data,Var,Abs) означает, что данные поступают от устройства к компьютеру, причём данные эти могут изменяться. Значения в нашем случае абсолютные. От мыши, например, приходят относительные значения для перемещения курсора. Иногда данные описываются как Const, а не Var.

Это нужно, чтоб передать не значащие биты. Например, в репорте мыши с тремя кнопками передаются 3 бита Var для кнопок и 5 бит Const, чтобы дополнить размер передачи до одного байта.Как видим, описания осей X и Y сгруппированы вместе. У них одинаковый размер, одинаковые пределы.

COLLECTION (Physical)

USAGE (X)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1000)
REPORT_SIZE (16)
REPORT_COUNT (1)
INPUT (Data,Var,Abs)

USAGE (Y)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1000)
REPORT_SIZE (16)
REPORT_COUNT (1)
INPUT (Data,Var,Abs)

END_COLLECTION

После первого стика описывается второй аналоговый стик. Его оси имеют другой Usage, чтобы можно было отличить их от первого стика – Rx и Ry:

COLLECTION (Physical)

USAGE (Rx)
USAGE (Ry)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1000)
REPORT_SIZE (16)
REPORT_COUNT (2)
INPUT (Data,Var,Abs)

END_COLLECTION

Теперь нужно описать несколько кнопок геймпада. Это можно сделать следующим образом:

USAGE_PAGE (Button)
USAGE(Button 1)
USAGE(Button 2)
USAGE(Button 3)

USAGE(Button 16)


Громоздкую запись однотипных кнопок можно сократить, использовав диапазон Usage:

USAGE_PAGE (Button)
USAGE_MINIMUM (Button 1)
USAGE_MAXIMUM (Button 16)

Данные, передаваемые кнопками представляют собой 16 однобитовых значений, изменяющихся от 0 до 1:

LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1)
REPORT_SIZE (1)
REPORT_COUNT (16)
INPUT (Data,Var,Abs)

Порядок строк в дескрипторе не строгий. Например, Logical_Minimum и Logical_Maximum можно написать перед Usage(Button), или строки Report_Size и Report_Count можно поменять местами.Важно, чтобы перед командой Input располагались все нужные параметры для передачи данных (Usage, Mimimum, Maximum, Size, Count).

Когда дескриптор сформирован, его можно проверить командой Parse Descriptor на наличие ошибок.Если всё в порядке, то экспортируем его с расширением h. В файле usbd_hid.c заменим дескриптор на новый и скорректируем в usbd_hid.h размер дескриптора HID_MOUSE_REPORT_DESC_SIZE с 74 на 61.

Отчёты отправляются по флагу data_ready. Для этого к main.c подключим заголовочный файл usbd_hid.h и в главном цикле вызовем функцию отправки отчёта. Массив rc_data имеет тип uint16, поэтому указатель на него надо привести к 8-битному типу и передать размер 10 вместо 5.

#include "usbd_hid.h"
...
while (1)
{
  if (data_ready)
  {
    USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)rc_data, 10);
    data_ready = 0;
  };
};

Компилируем проект и прошиваем ещё раз.

Настройка usb-device

Мы уже отметили, что контроллер будет USB-устройством. Так как джойстик относится к классу HID-устройств, то в меню Middlewares -> USB_DEVICE выберем Class For FS IP: Human Interface Device Class (HID). Тогда CubeMX подключит к проекту библиотеки для HID-устройства.

Зайдём в настройки USB_DEVICE на вкладке Configuration в разделе Middlewares:

Vendor ID и Product ID – это два 16-битных идентификатора, уникальных для каждой модели USB-устройств. VID соответствует производителю устройства, а PID каждый производитель присваивает, руководствуясь своими соображениями. Официальный список VID и PID мне найти не удалось, я отыскал лишь базу идентификаторов, поддерживаемую энтузиастами.

Чтобы заиметь собственный Vendor ID, нужно обратиться к USB Implementers Forum на usb.org и заплатить несколько тысяч долларов. Небольшие компании или open-source разработчики, которым не по карману свой VID, могут обратиться с запросом к производителю USB-микросхем и официально получить для своего проекту пару VID/PID. Такую услугу предлагают, например, FTDI или Silicon Laboratories.

Если подключить к компьютеру два устройства с одинаковыми VID/PID, но разного типа (например, одно – HID-устройство, а другое – Mass Storage), то операционная система попытается установить для них один и тот же драйвер, и как минимум одно из них работать не будет. Именно поэтому пары VID/PID для разных моделей устройств должны быть уникальными.

Поскольку устройство мы делаем для себя, продавать и распространять его не собираемся, то оставим VID 0x0483, соответствующий STMicroelectronics, а PID придумаем свой. По умолчанию CubeMX предлагает PID 0х5710 для HID-устройства. Заменим его, например, на 0x57FF.

Строку Product string заменим на STM32 PPM-USB Adapter. Это название будет отображаться в списке устройств в панели управления Windows. Серийный номер (SN) пока менять не будем.

Смотрите про коптеры:  Обзор промышленных роботов манипуляторов Fanuc. Японские роботы в России.

Когда Windows обнаруживает обнаруживает устройство с комбинацией VID, PID и SN, которая раньше ей не встречалась, система устанавливает для него соответствующий драйвер. Если же комбинация VID, PID и SN уже использовалась, то Windows автоматически подставляет ранее использованный драйвер.

Вы можете это увидеть, например, когда подключаете Flash-накопитель к USB. Первый раз подключение и установка занимает некоторое время. При последующих подключениях накопитель начинает работу почти мгновенно. Однако, если подключить другой экземпляр Flash-накопителя той же модели, но с другим серийным номером, то система будет ставить для него новый драйвер, даже несмотря на то, что VID и PID у него те же самые.

Поясню, почему это важно. Если Вы создали на STM32 USB-мышь со своими VID, PID и SN, подключили её к компьютеру, а затем сделали USB-джойстик, не изменив VID, PID и SN, то Windows воспримет новое устройство как мышь, которая уже использовалась в системе, и не будет устанавливать драйвер джойстика.

Настройка таймера

Для измерения длительности импульсов мы запустим таймер TIM3 в режиме захвата Input Capture. В Reference Manual в разделе General-purpose timers (TIM2/TIM3/TIM4) есть схема иллюстрирующая работу таймеров. Цветами я выделил сигналы и регистры, используемые в режиме Input Capture.

Подключаем авиамодельный пульт к компьютеру с помощью STM32 CubeMX, или PPM-to-USB адаптер на STM32F3-Discovery - 13
Сигнал тактирования, выделенный зелёным, непрерывно приходит в регистр счётчика CNT и увеличивает его значение на 1 каждый такт. В делителе Prescaler PSC частота тактового сигнала может уменьшаться для более медленного отсчёта.
На вход TIMx_CH1 приходит внешний сигнал. Edge Detector распознаёт фронты входного сигнала – переходы из 0 в 1 или из 1 в 0. При регистрации фронта он подаёт две команды, выделенные жёлтым:
– команда для записи значения счётчика CNT в регистр Capture/compare 1 register (CCR1) и вызов прерывания CC1I.
– команда для Slave mode controller, по которой значение CNT сбрасывается в 0 и отсчёт начинается сначала.

Вот иллюстрация процесса на временной диаграмме:

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

В этом случае нужно проверять флаг перезаписи (Overcapture) или же применять DMA (Direct Memory Access), когда данные из CCR1 автоматически заполняют заранее подготовленный массив в памяти. В нашем случае самый короткий импульс имеет длительность 1 миллисекунду, а обработчик прерывания будет простым и коротким, поэтому беспокоиться о перезаписи не стоит.

Вернёмся на вкладку Pinout и настроим таймер TIM3 в меню Peripherals.

Slave Mode: Reset Mode – означает, что при некотором событии таймер будет сбрасываться на 0.Trigger Source: TI1FP1 – событие, используемое для сброса и запуска таймера – это фронт сигнала, захваченный со входа TI1.ClockSource:

На следующей большой вкладке Configuration сделаем дополнительные настройки таймера.

Prescaler – делитель таймера. Если он равен 0, частота берётся напрямую с шины тактирования APB clock – 72 МГц. Если prescaler равен 1 – частота делится на 2 и становится равной 36 МГц. Установим делитель на 71, чтобы частота делилась на 72.

Тогда частота таймера будет равна 1 МГц и интервалы будут измеряться с разрешением в 1 микросекунду.Counter Period – установим максимально возможное 16-битное значение 0xFFFF. Период важен для генерации временных интервалов, например, для ШИМ.

Но для захвата сигналов период не важен, сделаем его заведомо большим любых входных импульсов.Polarity Selection: Falling Edge – значения таймера будут захватываться по заднему фронту сигнала на входе.На вкладке NVIC Settings поставим галку TIM3 global interrupt, чтобы при событиях, связанных с 3-м таймером генерировалось прерывание.

Ошибка: «недостаточно силы/esc» и «максимальная достигнутая нагрузка»

Ошибка DJI Mavic: Power Load Reched и Not Enough Force/ESC error или Недостаточно Force/ESC предупреждение или ошибка о максимальной мощности нагрузки может быть довольно опасной.

Mavic Mini может даже сбросить высоту и даже разбиться. Во многих случаях дрон будет падать и восстанавливать свою позицию. Однако если вы летите очень близко от земли, Mavic может резко упасть. Это довольно страшно и вам повезет если ваш дрон не окажется поврежден.

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

Однако многие владельцы сами решили эту проблему или поняли что может являться причиной.

Предупреждение заключается в том, что дрон не получает достаточного питания и на электронных контроллерах (ESC) генерируется сообщение об ошибке.

Это сообщение указывает на проблему с ESC (электронными регуляторами скорости) и двигателями.

Проблемы с питанием могут также указывать на неисправный аккумулятор. Тем не менее от DJI по этому поводу не получилось узнать ничего определенного.

Эта проблема может быть исправлена ​​различными способами.

Рассмотрим на примере DJI Mavic Mini.

Максимальное сопротивление ветру — это проблема возникающая из-за того что квадрокоптер летает при ветре, превышающем 28,8 км/ч, что является максимальной скоростью ветра для дрона.

28,8 км/ч — это уровень 4 по шкале Бофорта, что означает умеренный ветер. Многие из этих предупреждений недостаточной силы/ESC происходят на приличной высоте. Несмотря на то, что на земле может быть спокойно, на высоте может быть ветер который может стать серьезной помехой для полета.

Читайте: Как летать на квадрокоптере при сильном ветре: Советы

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

Очень быстрый подъем в P-режиме.  Возникает ли проблема при быстром подъеме. Если это так, то это потому, что во время полета вверх дрон сталкивается с высоким сопротивлением и контроллер полета обнаруживает это выдавая всплывающее сообщение ESC о недостаточной мощности.

Максимальная высота полета —   полет на максимальной высоте или близко к ней для. По мере набора высоты воздух становиться менее плотным (это связано с тем что гравитация притягивает к себе молекулы воздуха к земле). И на большой высоте двигатели беспилотников должны работать в более интенсивном режиме чтобы удерживать беспилотник в воздухе.

Читайте: На какую максимальную высоту может подняться квадрокоптер?

Защита винтов может вызывать проблему — Снимите защитные кожухи винтов, если они прикреплены. Некоторые пилоты решили эту проблему сняв защитные винты.

Читайте: Может ли квадрокоптер долететь до космоса и прилететь обратно?

Неисправные пропеллеры. Многие дроны Mavic Mini, получившие предупреждение «Недостаточно силы / ESC» и «Достигнута максимальная мощность нагрузки» были исправлены простой заменой пропеллеров. На рынке представлено много разных пропеллеров Mavic Mini.

Изучите пропеллеры. Даже если вы не видите какой-либо ошибки, идите вперед и измените их. Они могут быть небольшим дефектом одного или нескольких пропеллеров, что даже не заметно на глаз. Эта проблема была исправлена ​​для многих владельцев путем перехода на новый комплект пропеллеров.

Некоторые пилоты замечали что лопасть пропеллера слегка трется о дрон. Поэтому, когда Mavic Mini выключен, раскрутите винты и посмотрите, происходит ли это.

Кроме того DJI рекомендует заменять полный набор а не только 1 пропел.

Неисправная батарея — Если у вас есть запасные батареи замените и посмотрите, появляется ли предупреждение Not Enough Force или Not Enough Power / ESC. Если ошибка пропадет то это может указывать на проблемы с аккумулятором.

Полет в режиме S или P — предупреждение появляется только в режиме S или P. Это один из вопросов, который всегда задает служба поддержки DJI и может указывать на то где по их мнению существует проблема. Если это происходит только в одном из режимов это может указывать на проблему с программным обеспечением, а не с оборудованием. Выполните обновление программы.

Обновите приложение DJI Fly — убедитесь, что у вас установлена ​​последняя версия приложения DJI Fly. Как правило с новой прошивкой многие ошибки в программном обеспечении устраняются.

Понижение/обновление прошивки — предупреждение Not Enough Force/ESC неоднократно исправлялось, сначала понижая версию прошивки а затем обновляя ее снова.

Вы можете понизить версию прошивки с помощью приложения DJI Assistant 2 на своем компьютере. Если это устраняет проблему то проблема изначально была в поврежденной прошивке.

Первичная настройка вертолетов с трех и четырехканальным управлением

Калибровка положения сервопривода: 

–  установить вертолет на ровную поверхность;

– включить пульт управления и вертолет;

– посмотреть на диск сервопривода, она должна быть параллельна поверхности, на которой установлен вертолет;

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

Корректировка рысканья:  

– вертолет устанавливается на свободную площадку;

– стиком управления скоростью вращения несущего винта плавно увеличиваем скорость вращения до взлета на высоту не менее полуметра;

– если наблюдается вращение фюзеляжа против часовой стрелки, то вращаем регулятор триммера корректировки рысканья по часовой стрелке до прекращения вращения вертолета;

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

Освоение стика управления скоростью вращения несущего винта (стик газа).

 Для освоение реакции вертолета на прибавление газа необходимо взять вертолет за полозья и плавно прибавлять, а затем уменьшать газ.

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

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

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

Вторичная настройка.

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

Тренировка полета вперед-назад.

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

Для выполнения упражнения необходимо поднять вертолет в воздух и зафиксировать его на определенной высоте. После достижения определенной высоты нужно осуществить движения вперед и назад (задним ходом). В процессе движения вертолет будет постепенно терять высоту,  ее нужно будет компенсировать стиком газа.

Смотрите про коптеры:  Основные правила сборки пластиковых моделей самолетов

Движения вертолета по геометрическим фигурам.

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

Движение вертолета по геометрическим фигурам задним ходом.

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

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

Предисловие

В последнее время всё большую популярность набирают FPV-гонки на квадрокоптерах 250-го класса (FPV – First Person View). Число 250 означает расстояние между осями моторов по диагонали, типичное для маленьких манёвренных коптеров. Такие аппараты строят на прочных карбоновых рамах, выдерживающих падения и столкновения.

На мощные моторы ставят пропеллеры диаметром 5-6 дюймов с большим шагом (углом наклона лопастей) для максимально динамичного полёта. Изображение с аналоговой курсовой видеокамеры передаётся на частоте 5.8ГГц на монитор или видео-очки пилота. Поскольку цифровая передача через WiFi создаёт большую задержку (200-300 мс), видео всегда транслируется по аналоговому каналу. Для записи эффектных роликов на борт ставят action-камеры (GoPro, Mobius, SJcam, Xiaomi Yi и др.).

Перед тем, как строить свой мини-квадрокоптер, мне хотелось полетать в симуляторе и понять, будут ли мне интересны FPV-гонки. Для тренировок хорошо подходит симулятор FPV FreeRider. Он недорогой, имеет бесплатную демо-версию и, по словам опытных пилотов, весьма точно имитирует реальную механику полёта.

Управлять летательным аппаратом в симуляторе можно с клавиатуры или с джойстика. Клавиатура плохо подходит для пилотирования, так как кнопками можно передать лишь дискретное значение (кнопка нажата/не нажата) и нельзя передать плавно изменяющиеся промежуточные значения.

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

У меня уже был один квадрокоптер, собранный для неспешных полётов и фотосъёмки, но слишком большой и тяжёлый для гонок. Соответственно, был и пульт – Turnigy 9X (на первой иллюстрации). На задней стороне у него есть разъём для подключения адаптера, на который выводится сигнал PPM.

Надо сказать, что переходники для подключения пульта с PPM к USB уже давно выпускаются и вовсю продаются. Подобный переходник в форм-факторе флешки можно купить за 5 долларов в Китае или немного дороже в российских магазинах. Существуют и open-source проекты адаптеров на контроллерах AVR.

Но острое желание немедленно полетать пришло ко мне поздно вечером, когда все московские авиамодельные магазины были уже закрыты. Ждать утра не хотелось, травить и паять плату с ATmega было некогда, поэтому я решил сделать адаптер PPM-USB на плате STM32F3Discovery, которая давно лежала без дела и как раз оказалась под рукой.

Сбор и обработка захваченных данных

Отредактируем callback, чтобы каждое захваченное значение он складывал в буфер captured_value без изменений. Если таймер захватил очень большое значение (больше 5000 мкс), это значит, что была зафиксирована пауза, пакет принят целиком и его можно обрабатывать.

Обработанные значения складываются в массив rc_data из 5 элементов. В первые четыре складываются положения стиков, приведённые к диапазону [0; 1000], в пятом выставляются отдельные биты в соответствии с тумблерами, которые будут интерпретироваться как нажатия кнопок на геймпаде.

uint16_t captured_value[8] = {0};
uint16_t rc_data[5] = {0};
uint8_t pointer = 0;
uint8_t data_ready = 0;

...

void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
    uint8_t i;
    uint16_t temp;
    // считываем значение из регистра захвата
    temp = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
    // если интервал слишком длинный, значит, пакет принят
    if ((temp > 5000) && (!data_ready))
    {
        pointer = 0;
        // приводим четыре значения со стиков к диапазону [0;1000]
        for (i = 0; i < 4; i  )
        {
            if (captured_value[i] < 1000)
                captured_value[i] = 1000;
            else if (captured_value[i] > 2000)
                captured_value[i] = 2000;
            rc_data[i] = captured_value[i]-1000;
        };
        // записываем положения тумблеров как биты
        rc_data[4] = 0;
        if (captured_value[4] > 1500)
            rc_data[4] |= (1<<4);
        if (captured_value[5] > 1500)
            rc_data[4] |= (1<<5);
        if (captured_value[6] > 1500)
            rc_data[4] |= (1<<6);
        if (captured_value[7] > 1500)
            rc_data[4] |= (1<<7);
        data_ready = 1;
    }
    else // сохраняем одно принятое значение в буфер
    {
        captured_value[pointer] = temp;
        pointer  ;
    };
    if (pointer == 8) // защита от переполнения
        pointer = 0;
}


Поясню, почему я разместил биты, соответствующие кнопкам, не в младшие 4 бита, а в биты с пятого по восьмой. В симуляторе предполагается подключать геймпад от Xbox, где используются кнопки LB, RB, Start и Back, а они имеют номера с 5 по 8.

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

while (1)
{
  if (data_ready)
  {
    // здесь будет отправка данных на ПК
    data_ready = 0;
  }
}

Чтобы проверить, как это работает, подключим пульт, снова скомпилируем и прошьём, а потом запустим отладку Debug -> Start/Stop Debug Session.Откроем окно для отслеживания переменных View -> Watch Windows -> Watch 1 и добавим туда captured_value и rc_data.

Дальше нужно отправить данные на компьютер в виде команды джойстика.

Симуляторы для полетов в поле зрения (вид с одной точки)

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

У современных передатчиков на задней паннели присутствует ppm выход, с помощью которого происходит соединение пульта управления с компьютером. Для такой связи используется специальный адаптерный шнурок стоимостью до 15 долларов.

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

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

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

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

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

Обратите внимание, что если учиться летать на настоящем коптере, то для этого потребуется намного меньше времени. Примерно в 4-5 раз быстрее вы научитесь базовым манипуляциям на пульте управления, для удовлетворительного ровного и стабильного полета вашего мультикоптера.

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

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

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

Часть 3. механическая модернизация передатчика

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

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

  • Важно! Если вас беспокоит даже обратимое изменение конструкции легендарного пульта Futaba, не читайте дальше, это может нанести моральную травму.
  • Если вы используете пульт и для полетов на самолете, откажитесь от подпружинивания и нижнего щелчка. Наверняка, вы обладаете достаточным опытом для того, чтобы останавливать моторы тумблером. Средний щелчок, думаю, никак не помешает полетам на самолете.
  • Если вы используете пульт для полетов на вертолете, щелчки не получатся все равно, так как у вас, по-идее, должна стоять насадка на зубья.
  • Изменения обратимы конкретно для моей модели T8FG Super. На других моделях я, разумеется, не проверял, но должно все получиться.

Итак, снимаем крышку и трещотку с ручки газа:

В моем пульте оказалось (фото ниже), что площадка с трещоткой (1) одновременно блокировала и пружинки специальным пластиковым штырем (2). О чудо — без этой площадки газ стал пружиниться сам! Подергав ручку, я понял, что для ее подпружинивания только в верхнем положении нужно удалить указанный металлический штырь (3), предварительно открутив винты и удалив пластиковое крепление (4), чтобы оно не мешало вынимать штырь щипцами.

Результат (5) видно на крайнем правом изображении. Металлический штырь приклейте скотчем к крышке пульта со внутренней стороны, он может пригодиться при откате изменений. Вернув крепление (4) на место и отщепив кусачками кусок пластикового штыря (2), с проблемой пружин было покончено.

Как ни крутил я площадку с трещоткой (1), мне не удалось избежать откусывания пластикого штыря (2). Производитель предусмотрел возможность ее (площадки целиком) крепления под углом 90 градусов, но тогда вместе со штырем перемещается и трещотка.

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

Теперь о том, как сделать фиксацию ручки и щелчки. Трещотка цепляет полукруглую пластинку с зубьями, движущуюся вместе с ручкой. На этой пластинке нужно поглубже выпилить один проем между зубьями в центральном положении ручки и второй ближе к нижнему положении ручки (я выпилил проем между 2-м и 3-м зубьями) по ходу движения стика (ручки).

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

Оцените статью
Радиокоптер.ру
Добавить комментарий

Adblock
detector