26 октября 2020

MCHeliBee - повседневный лоурайдер

Так случилось, что в последнее время летал на Mobula6, потом с ним расстался и обнаружил, что остались у меня только экспериментальные модели. Не нашлось ни одного бесколлекторного квадрика на 65-й раме! Непорядок, подумал я, и решил собрать себе что-нибудь простое и надежное, как палка. Чтобы всегда было с чем выйти на полетушки.

В первую очередь, определился с полетным контроллером. Он должен быть исключительно с 1S-питанием и с интегрированным передатчиком. Чем больше интеграции компонентов на одной плате, тем меньше вес. На сегодняшний день существует всего две модели полетных контроллеров, удовлетворяющих условию: Happymodel CrazyBee F4 Lite и BetaFPV F4 AIO 1S. Последний пока не продается отдельно, идет в составе BetaFPV Meteor65 HD 1S. Так что, без вариантов, буду собирать на первом, на Happymodel CrazyBee F4 Lite. К нему всего-то и нужно, что подключить моторы и камеру. Камера будет Runcam Nano 3, как самая легкая из серии с матрицей 1/3 дюйма. Причем старой ревизии, с широким углом обзора. Осталась единственная, купил бы еще, да негде:(

На какой раме собирать? На сегодняшний день есть четыре рамы с диагональю 65мм под бесколлекторные моторы, не считая разную экзотику: NBD Brushless Cockroach, Happymodel Mobula6, BetaFPV Meteor65 и iFlight Alpha A65. Первый вариант устраивал по форме, но из-за большого веса и хрупкого "стеклянного" пластика не подходил. Второй вариант не понравился низким расположением аккумулятора. У третьего варианта отличный вес, но кольца защиты мягкие и маленькие. Пропеллеры часто задевают их даже в полете. Последний вариант - рама iFlight Alpha A65 - был очень интересен по фотографиям.

Форма рамы напоминала продукт от NewBeeDrone. По факту, пластик рамы оказался вязкий и упругий - самое оно! На ней и остановился. Вес рамы 3.33 грамма.

Холдер аккумулятора, как и у BetaFPV Meteor65, расположен на одном уровне с площадками установки моторов.

Недавно в продаже появились моторы Happymodel EX0802 на 19000kV. Уже по внешнему виду было видно, что моторы перспективные. По факту оказалось, что новые моторы на 0.15 грамм легче привычных Happymodel SE0802 из-за формы ротора. Легкий ротор - выше динамика на разгон/торможение, более четкое управление квадриком. Вес моторов 7.08 грамма.

Изначально хотел использовать трехлопастные HQ-пропики, но они оказались тяжелее хорошо зарекомендовавших себя Gemfan-ов, поставил их. Пропики в сумме весят 1.03 грамма. При таком сочетание моторов и пропиков квадрик не будет потреблять по току более 5А, что очень положительно скажется на продолжительности жизни аккумуляторов.

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

Для передатчика сделал антенну из запасной для приемника FrSky R-XSR. Затянул кончик в тонкую термоусадку диаметром 1мм. Для приемника использовал провод UL10064 толщиной 30AWG в тефлоновой изоляции. Для подключения камеры использовал этот же провод толщиной 32AWG. Места пайки зафиксировал клеем для антенн. Силовые провода в силиконовой изоляции толщиной 24AWG. Решил использовать силовой BT2.0-разъем, хотя для тока не более 5А, хватило бы и PH2.0-разъема. Традиционно поставил между контактами разъема яркий 0603-светодиод и залил каплей эпоксидной смолы. Разъемы для моторов выпаивать не стал, так как не планировал делать экстремально легкий аппарат. Итоговый вес электроники получился 5.65 грамма.

Изначально хотел поставить канопу от Mobula6, но огромное количество металлического крепежа навевало уныние... Рисовать свою канопу было лениво. Требовалось что-то максимально простое и легкое. Тогда-то и посетила мысль о лоурайдере. Нарисовать хомутик-крепление для камеры намного проще! Заодно можно будет попробовать новый формат квадрика:)

Крепление для камеры напечатал из нейлона с небольшой примесью карбона, использовал материал U3 Nylon Super Carbon M3. С помощью паяльного фена согнул плоскую деталь. Хомутик никак не фиксируется, просто очень туго надевается до упора. Так же напечатал легкую защиту для полетного контроллера. Позже немного переработал эту деталь - добавил боковые крепления. Вес крепления камеры 0.57 грамма, а защиты - 0.15 грамм.

Моторы традиционно закрепил на одном винтике и петле из лески - решение, проверенное временем:) Антенны вывел снизу по бокам рамы. Прихватил их к раме тоненькими петлями из термоусадки, чтобы не болтались.

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

Итоговый вес квадрика получился 18.5 грамма. В следующий раз попробую максимально облегчить. Можно еще убрать разъемы на моторах, слегка подрезать холдер аккумулятора, убрать металл с USB-разъема, заменить выводы от моторов на провод UL10064 толщиной 30AWG в тефлоновой изоляции, поставить винтики крепления полетного контроллера чуть легче. Как минимум, еще один грамм можно спилить без проблем:)

Решил назвать новый аппарат MCHeliBee. Квадрик получился красивым! А красивый аппарат и полететь должен хорошо:)

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

Протокол Redpine был реализован энтузиастами и позиционируется, как протокол с самой минимальной задержкой в управлении. Время от подачи команды с пульта до DShot-сигнала на регуляторы составляет 1-5мс. Для примера, задержка TBS Crossfire составляет 7-20мс, а FrSky-X 18-37мс. 

Redpine - цифровой протокол. В нем реализовано 16 каналов управления: 4 по 11 бит и 12 по одному биту. Это значит, что первые 4 канала имеют разрядность 2048 значений на полный ход стика, а остальные каналы - это простые переключатели. Протокол Redpine не имеет телеметрии - для высокой скорости работы пришлось чем-то пожертвовать:) По дальности работы протокол сопоставим с FrSky-D8. Новый протокол можно завести на полетных контроллерах с CC2500-чипом, висящим на SPI-шине, с прошивкой BetaFlight-4.2 или более новой. Это CrazyBee F4 Pro V2, CrazyBee F4 Pro V3.0, CrazyBee F4 Lite, SuperBee F4, BetaFPV F4 1S, BetaFPV F4 AIO 1S, BetaFPV F4 1-2S и другие. Со стороны передатчика Redpine реализован в коде мультипротокольного модуля и в ночных сборках прошивки Deviation. В пульте у протокола есть опция задания скорости работы, имеет значение Slow и Fast. При значении Fast - минимальная задержка, но дальность меньше. При значении Slow - задержка чуть больше, но максимальная дальность. Очень понравилось, что со стиками на датчиках Холла с этим протоколом очень точно отрабатываются центральные положения стиков. Дребезга значений вообще нет!

Настройку квадрика традиционно начал с обновления прошивки в блоке регуляторов. Установил последнюю версию BLHeli_M-16.9, где частоту работы можно было выбирать в настройках. Для этого потребуется отдельный конфигуратор.

Забегая вперед, скажу, что вынужден был от нее пока отказаться и вернуться к предыдущей версии BLHeli_M-16.8 на 48кГц. Не понравилось поведение квадрика, стало более дерганным. Возможно, надо покрутить два новых параметра, но боюсь спалить регуляторы. Подожду, когда разработчик даст рекомендации по настройке. Настройки версии 16.8 точно такие же.

В полетный контроллер залил свежую версию BetaFlight-4.2.4. Настроил практически так же, как и у Mobula6, только фильтры сделал более агрессивными и расходы по Yaw приподнял. Выбор протокола для приемника делается в привычном месте.

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

Биндится новый протокол, как и любой другой. В консоли BetaFlight-конфигуратора вводится команда bind_rx.

А в настройках модели пульта выбирается Redpine и нажимается Bind.

Чтобы диапазон по каналам точно соответствовал значениям 1000-1500-2000, надо немного подправить выходные данные в пульте.

Если привыкли к тому, что три полетных режима - acro, angle, horizon - назначены на один трехпозиционный тумблер, придется немного изменить микшеры. Через значение MAX на соответствующие каналы назначить переключатель.

На всякий случай, прикладываю свою модель из пульта Radiomaster TX16S. Настройки BetaFlight-4.2.4 получились такие:

# Betaflight / STM32F411 (S411) 4.2.4 Oct 20 2020 / 08:19:06 (fbcaf8c50) MSP API: 1.43
# config: manufacturer_id: HAMO, board_name: CRAZYBEEF4FR, version: 56f796fb, date: 2019-10-26T09:47:21Z

# start the command batch
batch start

# reset configuration to default settings
defaults nosave

# name: MCHeli

# feature
feature -RX_PARALLEL_PWM
feature -AIRMODE

# beeper
beeper -ALL

# beacon
beacon RX_LOST
beacon RX_SET

# serial
serial 1 2048 115200 57600 0 115200

# aux
aux 0 0 0 1900 2100 0 0
aux 1 1 1 1900 2100 0 0
aux 2 2 2 1900 2100 0 0
aux 3 13 3 1900 2100 0 0
aux 4 35 4 1900 2100 0 0

# vtxtable
vtxtable bands 6
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E FACTORY 5705 5685 5665    0 5885 5905    0    0
vtxtable band 4 FATSHARK F FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable band 6 IMD6     I CUSTOM  5732 5765 5828 5840 5866 5740    0    0
vtxtable powerlevels 3
vtxtable powervalues 0 1 2
vtxtable powerlabels 25 50 100

# master
set gyro_lowpass2_hz = 375
set dyn_notch_width_percent = 0
set dyn_notch_q = 250
set dyn_notch_min_hz = 125
set dyn_notch_max_hz = 350
set dyn_lpf_gyro_min_hz = 300
set dyn_lpf_gyro_max_hz = 750
set acc_trim_pitch = -2
set acc_trim_roll = 6
set acc_calibration = 70,-31,-21,1
set mag_hardware = NONE
set baro_hardware = NONE
set rssi_scale = 120
set rc_interp_ch = RPY
set rc_smoothing_input_hz = 40
set rc_smoothing_derivative_hz = 100
set rc_smoothing_input_type = PT1
set rc_smoothing_derivative_type = PT1
set airmode_start_throttle_percent = 50
set rx_spi_protocol = REDPINE
set blackbox_device = NONE
set dshot_idle_value = 800
set dshot_bidir = ON
set motor_pwm_protocol = DSHOT300
set motor_poles = 12
set bat_capacity = 300
set vbat_max_cell_voltage = 460
set vbat_min_cell_voltage = 310
set vbat_warning_cell_voltage = 330
set ibata_scale = 1175
set beeper_dshot_beacon_tone = 4
set yaw_motors_reversed = ON
set small_angle = 180
set deadband = 2
set yaw_deadband = 2
set runaway_takeoff_prevention = OFF
set osd_warn_rssi = ON
set osd_warn_link_quality = ON
set osd_cap_alarm = 300
set osd_tim1 = 1792
set osd_tim2 = 1025
set osd_vbat_pos = 2433
set osd_rssi_pos = 2105
set osd_tim_2_pos = 2454
set osd_anti_gravity_pos = 465
set osd_throttle_pos = 2444
set osd_current_pos = 417
set osd_mah_drawn_pos = 439
set osd_craft_name_pos = 2081
set osd_debug_pos = 227
set osd_stat_max_spd = OFF
set osd_stat_battery = ON
set osd_stat_bbox = OFF
set osd_stat_bb_no = OFF
set osd_stat_max_esc_rpm = ON
set cpu_overclock = 120MHZ
set vtx_band = 5
set vtx_channel = 5
set vtx_power = 1
set vcd_video_system = NTSC
set frsky_spi_tx_id = 162,32
set frsky_spi_offset = 23
set frsky_spi_bind_hop_data = 134,40,84,104,161,229,159,14,22,201,109,186,144,209,218,157,174,2,130,167,237,128,51,29,155,96,16,32,53,170,91,255,121,213,239,191,6,64,176,195,20,179,9,62,125,123,165,35,102,0
set gyro_1_align_yaw = 900
set name = MCHeli

profile 0

# profile 0
set dyn_lpf_dterm_min_hz = 105
set dyn_lpf_dterm_max_hz = 255
set dterm_lowpass2_hz = 225
set feedforward_transition = 1
set crash_recovery = ON
set iterm_limit = 500
set pidsum_limit = 1000
set pidsum_limit_yaw = 1000
set throttle_boost = 0
set p_pitch = 85
set i_pitch = 25
set d_pitch = 86
set f_pitch = 250
set p_roll = 85
set i_roll = 25
set d_roll = 86
set f_roll = 250
set p_yaw = 120
set f_yaw = 0
set level_limit = 65
set d_min_roll = 80
set d_min_pitch = 80
set d_min_boost_gain = 30
set d_min_advance = 0
set ff_interpolate_sp = ON
set ff_spike_limit = 255
set ff_boost = 50
set idle_min_rpm = 33
set level_race_mode = ON

rateprofile 0

# rateprofile 0
set thr_mid = 40
set thr_expo = 50
set rates_type = QUICK
set yaw_rc_rate = 250
set roll_expo = 40
set pitch_expo = 40
set roll_srate = 86
set pitch_srate = 86
set yaw_srate = 60

# save configuration
save

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

set level_race_mode = OFF

Как полетел новый квадрик? Ожидаемо прекрасно! Новый формат модели никак не сказывается на управлении. Но были пару моментов, когда переднее расположение камеры дало о себе знать. Например, при заходе в вираже на ворота. Камера видит по центру, а корпус квадрика зацепляет ворота сбоку:)

И да, новый квадрик стал залетать туда, где раньше еще не шуршала лопасть тинивупа. С одной стороны, стало больше возможностей выбраться из под мебели, а с другой стороны, наматывать комки пыли на моторы из нетоптанных мест - то еще удовольствие:)

По работе нового протокола Redpine претензий нет. Качество связи устойчивое, не было ни одного лага. Может мне показалось, но почти полное отсутствие задержки в управлении прилично сказалось на скорости полета. Раньше так быстро и агрессивно я не летал:)

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

В результате, у меня появился еще один комплект для сборки весом 4.2 грамма. Хочу собрать его на полетном контроллере BetaFPV F4 AIO 1S и максимально облегчить.

Пока еще не определился с камерой. Камеру Runcam Nano 3 старого образца мне не найти. Остается либо удовлетвориться камерой с новым объективом, либо попробовать Caddx Ant Lite, что, на мой взгляд, не решит проблему.

Идея сделать лоурайдер очень понравилась. Примерно за 50-60 агрессивных вылетов еще ничего не сломалось. Ток выше 5А ни разу не поднимался. Время полета на свежем аккумуляторе 4 минуты. Может коммерциализировать?:) Выпускать квадрик небольшими партиями по негуманной цене...

И кстати, я запрещаю использование этого материала на других ресурсах.