Вопросы и Ответы по подбору комплектующих для коптеров

alexeykozin

про ДШОТ
ни в коей мере не хочу обвинять когото в плагиате, или в том что повзаимствовали идею и не сослались на источник.
делайте выводы сами.
вот чем поделились со мной недавно коллеги:
стр 4
www.seeedstudio.com/…/WS2812B Datasheet.pdf это весьма популярные ныне управляемые светодиодные ленты.

blck.mn/2016/11/dshot-the-new-kid-on-the-block/

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

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

arb
Shuricus:

Рамазан, а что вы цитаты вставляете без имени? Неудобно первоисточник искать.

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

An_private
alexeykozin:

идея дшота пришла из протокола управления светодиодными лентами

Дико неудобный для программистов протокол, кстати (повозился в своё время с этими лентами). Уж лучше бы классический манчестер-2 сделали - его и то проще кодировать/декодировать. А еще лучше - вообще обычный serial - тупой, надёжный (многократное семплирование данных во всех процессорах), реализован в железе. Но тут что сделано - то сделано.

alexeykozin
An_private:

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

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

SergejK

Да лан, тут уже бродят слухи о новом SPIShot… Скоро блхели_с и дшот могут резко стать устаревшим лаптем, а летчики будут судорожно постить видео полетов, с пеной у рта доказывая, что нужно купить новое железо 😃

alexeykozin

пару картинок
Ниже приведены структурные схемы SPI лент и их подключение к контроллеру.

Структурная схема SPI светодиодной ленты с двумя линиями управления (DATA и CLK)

Рис.1. Структурная схема SPI светодиодной ленты с двумя линиями управления (DATA и CLK)

Структурная схема SPI светодиодной ленты с одной линией управления (DATA)

Рис.2. Структурная схема SPI светодиодной ленты с одной линией управления (DATA )

“новый” SPIShot видимо будет то что на рис1

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

до фикса работало так

после

pr github.com/betaflight/betaflight/pulls?q=is%3Apr+a…

An_private
alexeykozin:

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

Это понятно (я это делал), но крайне неэффективно в точки зрения расхода памяти, так как на каждый выходной бит надо один байт памяти. Кроме того - это крайне плохо реализуется, когда надо делать много выходных каналов - на каждый выход нужен отдельный канал DMA и отдельный OCR.
Это всё можно обойти внешней логикой, но тогда на каждый канал нужно 3 элемента 2И-НЕ (так я тоже делал) 😃
UART же элементарно реализуется на уровне 1 бит в памяти - 1 выходной бит. Даже многоразрядный - нужен всего один таймер и один канал DMA.

SergejK
alexeykozin:

“новый” SPIShot видимо будет то что на рис1

А в чем преимущество? Шина станет более помехозащищенной и позволит убрать срывы, которых сейчас нет?

An_private
SergejK:

А в чем преимущество?

Реализован на железном уровне в любом микроконтроллере. Не надо тратить ресурсы процессора на декодирование сигнала.

SergejK
An_private:

Реализован на железном уровне в любом микроконтроллере.

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

SergDoc
SergejK:

плюс активно появляются полетники на F7

у нас тоже встал вопрос, но FPU F7 не считает даблы - ждём H7…

n4s

Подбираю моторы и регули под 180 раму и 4" винты(приоритетно три лопасти).
Склоняюсь к 22-м двигателям и 4S
Суть вопроса: Какие и где посоветуете покупать движки? Тоже касаемо ESC (12A? 20A?) И по аккуму посоветуйте/пошлите ))))

strizhmax

Запарили с этими xSHOT. Там сперли, здесь слизали. Давно уже говорю, вся сила в CAN. 2 провода, защита от помех, арбитраж в железе и цифровой канал со скоростью в мегабит.
Минусы - лишний корпус на плате.

arb
strizhmax:

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

А мне как пользователю нужен коптерный рег:
быстрый рег (просьба не путать с быстрым протоколом);
минимальное количество настроек;
настраиваемый тормоз при остановке и отдельно стоянке;
автотайминг;
настраиваемая частота ШИМ или принципиально другой метод управления;
по мелочи
точное задание и удержание оборотов;
2000 шагов (можно 4000);
звук (уже есть).

А так все путем:).

strizhmax

Это на коллекторном моторе? Нет? Тогда для чего?

arb

На БК.

strizhmax:

Нет? Тогда для чего?

Расписать каждый пункт?

strizhmax

Конечно. Нужно знать чего хотят люди.

arb
strizhmax:

Конечно. Нужно знать чего хотят люди.

Хорошо. Только как один раз заметил Алексей, я своими идеями забегаю вперед. Но какие-то идеи напрашивались давно, что-то напомнил Стеффан. Только, я понял, он собирается это делать на 32 бит. И будет плохо, если при этом исчезнет ПВМ.

  • быстрый рег, ну это как бы очевидно. И идея быстрого протокола была в этом, только реализация подкачала. Быстрее рег - быстрее смена режима, быстрее установка нового положения коптера, меньше усилий ВМГ (меньше рывок), меньше ПИДы, меньше трата энергии, меньше раскачка, плавнее и вальяжнее полет.

  • минимальное количество настроек. Вот зачем они мне лишние. Только самое необходимое, чтоб голову не забивало.

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

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

  • точное задание и удержание оборотов, 2000 шагов (можно 4000). Точность и плавность управления коптера контроллером. Мощности контролеров растут. Растут и их возможности. Есть попытки увеличить частоту опроса датчиков, внедряются новые фильтры и т.д. Получается точность на входе растет, а на выходе, если не принять мер останется. Изменения должны быть соразмерными и на входе, и на выходе, если мы желаем получить ощутимый результат.

  • звук (уже есть). Удобно при поиске пропавшего друга.

  • увеличенный диапазон оборотов (что уже реализовано в Блхели_С). Чем меньше минимально устойчивые обороты ВМГ, тем меньше усилий требуется противоположной стороне для наклона коптера. Получается быстрее наклон при минимальных затратах энергии.

Если что-то не понятно, можно еще наверно уточнить. Только конкретно.

Да, настраиваемый тормоз при остановке и отдельно стоянке (что-то пропустил сразу).
Стояночный тормоз уже есть в Блхели (отдельно). Зачем? Пока нет идей для применения, но наверно кому-то нужен.
А вот тормоз при остановке (отключении) уже встроен в дампедлайт и Блхели_С. На маломощных ВМГ может открутить винт (не более). На мощных сильно раскачивает луч, крепление винта, мотора.
Подозреваю, что нужен рейсерам при падении. Типа выключил рег, винт стоит. Т.е. требуется настройка этого параметра по задаче.

SergejK
arb:

Быстрее рег - быстрее смена режима, быстрее установка нового положения коптера, меньше усилий ВМГ (меньше рывок), меньше ПИДы, меньше трата энергии, меньше раскачка

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

arb:

настраиваемая частота ШИМ или принципиально другой метод управления.

Это все же два разных требования, но, например в Симонке частоту ШИМ можно менять. Плюс судя по вашим тестам моей модифицированой прошивки Симонк может быть ни чуть ни хуже Блхели_С. Как мне кажется в вашем случае идеальный выбор это Симонк.

arb:

точное задание и удержание оборотов

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

arb:

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

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

arb:

увеличенный диапазон оборотов (что уже реализовано в Блхели_С). Чем меньше минимально устойчивые обороты ВМГ, тем меньше усилий требуется противоположной стороне для наклона коптера. Получается быстрее наклон при минимальных затратах энергии.

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

arb
SergejK:

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

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

SergejK:

Это все же два разных требования, но, например в Симонке частоту ШИМ можно менять. Плюс судя по вашим тестам моей модифицированой прошивки Симонк может быть ни чуть ни хуже Блхели_С. Как мне кажется в вашем случае идеальный выбор это Симонк.

Но вот не помню, чтобы было в настройках или был готовый хекс с указанной частотой.
Да Ваша прошивка позволила повторить результат дампедлайт и это замечательно. И если я надумаю 8S, то Ваш Симонк для Афро ШВ наверно не будет иметь альтернатив (пока другого такого же не встречал).

SergejK:

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

Как это реализовано в цикле не знаю, но я вижу результат. Когда коптер висит на месте и нет ветра, то единственным возмущением, которое толкает его с места, остается собственные неточности. И одно из причин - не контролируемое изменение оборотов, а значит и тяги. А при 50% небольшое изменение оборотов уже дорого стоит по тяге. Конечно этим можно пренебречь, авто режимы спасут. Но когда делаешь классный коптер, это уже напрягает.
Плюс, я подозреваю, что регу приходится тратить лишнию энергию на восстановление оборотов (тяги).

SergejK:

Это уж как-то очень абстрактно. Мол чем точнее - тем лучше. На входе чего? На каком выходе?
Цикл управления положением и без того закрытый и результат соответствует точности сенсоров и алгоритмов стабилизации. Какую вообще вторую точность вы имеете ввиду?

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

SergejK:

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

Не только быстрее (это тоже важно и это уже писал), но и до какой величины может сбросить (набросить).
Динамический диапазон - разница между максимальным и минимальным значением оборотов (тяги). Больше диапазон - больше возможностей у коптера, при полете в разных режимах.
Специальный тест для этого - 2 запись rcopen.com/blogs/145578/22461. Там четко видна разница между минимальными оборотами у Блхели_С и остальных. Максимальные обороты выравниваются, поэтому не вижу смысла измерять. Разница оборотов видна и в других тестах, только это надо видеть (командный сигнал один, уровень оборотов разный).
Да, небольшая разница оборотов одного и того же рега может быть связана с эффективностью рега (прошивки), но большая разница, это уже характеристика рега.
Насколько понял у Блхели_С другой алгоритм обратной связи, что позволяет ему устойчиво держать маленькие обороты. Но Вы вроде и сами столкнулись с этим при использовании Дшот. Просто на глаз особо разницы в оборотах не видно. Только кажется, что мотор мягче работает на минимуме.

SergejK
arb:

Контроллеру постоянно приходится добавлять команды (увеличивать амплитуду), чтобы коптер хоть как-то наклонился,

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

arb:

И одно из причин - не контролируемое изменение оборотов, а значит и тяги.

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

arb:

Там четко видна разница между минимальными оборотами у Блхели_С и остальных.

Низкие минимальные обороты чреваты потерей синхронизации при быстрых маневрах. Очень распространенным рецептом от этой болезни оказывается… поднять уровень минимального газа 😁 Очень сильно подозреваю, что в Симонке эти минимальные обороты тоже можно настроить. Но вообще вы измеряли, насколько в процентах отличается тяга на холостых у Симонк и Блхели?

arb:

Насколько понял у Блхели_С другой алгоритм обратной связи

Схемотехника и соотвественно принцип работы у Симонк и Блхели абсолютно одинаковы. О каком алгоритме вы говорите?

arb:

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

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