Контроллер для кордовых электричек

VitalikV

На данном этапе, частота обработки нам не так важна, к задержкам газа можно привыкнуть. Куда важнее правильно обработать положение модели.

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

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

Маркс
VitalikV:

На данном этапе, частота обработки нам не так важна, к задержкам газа можно привыкнуть. Куда важнее правильно обработать положение модели.

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

Маркс

При этом, на оборотах 10000 прерывания от мотора на Ардуинку приходят с периодом меньше 1 мс.
Я очень надеюсь, что при “терках” с гироскопом библиотека MPU6050 не блокирует прерывания,
это я сегодня вечером или завтра проверю.
Иначе вся идея с гувернером может пойти прахом.

VitalikV

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

Либо ставим одну ардуину на гувернер, вторую на гироскоп, а третья собирает данные и управляет газом 🤣

Маркс

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

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

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

а энкодер в осциллограф я так еще и не поставил )
но это мне не помешает посмотреть два сигнала

Маркс

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

  • "день Советской армии и Военно-Морского флота"©

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

так что, с праздником, всех причастных к Советской армии и флоту.

VitalikV

Мои поздравления всем нашим воинам!

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

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

Маркс

Не вынесла душа поэта неопределенности и после пары маленьких и одной большой
пошел ставить эксперимент, стенд показывать смысла большого нет, там осталась таже ардуинка и MPU6050

а вот “картинку” стоит расшифровать.
Генератор выдает на втором канале импульсы с частотой 1 кГц,
которые я подаю на вторую ногу Ардуино, тем самым вызываю срабатывание прерывания isr0,
в скетче в теле прерывания просто инвертируется сигнал на 11 ноге Ардуинки,
результат виден на желтом графике, т.е. на 11 ноге меандр с частотой 1кГц
а вот синий график, это вывод 13 ардуино, он показывает период занятости МК обработкой данных гироскопа.
при этом в программе, это одна строка кода и она блокирует цикл программы.

Вывод, программу оно блокирует, но прерывания все равно проходят ))

VitalikV

Еще чуть чуть и будет целый полетный контроллер для кордовой, а не просто таймер))

Маркс

Виталий, это основная цель

это я еще “прячу” web-морду таймера на базе ESP32 😄 (это так, что бы распалить воображение)
но там все немного сложнее, web-морда жрет много ресурсов МК

Маркс

но сегодня продолжения точно не будет, после третьей, заходили уже четвертая и пятая и даже шестая

картинка, вдруг кто то решит проанализировать

Dimas_71

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

Маркс

Дмитрий, у Вас есть человек, который сможет “прикрутить” в прошивку blheli функционал таймера ?
Причем, обязательно, возможность настройки без компьютера, “в поле”.

VitalikV

Гувернер в вертолете работает не так как надо на кордовых, пока будем обкатывать , потом вносить правки.

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

VitalikV

Это не выход, мы будем привязаны к одной модели регулятора, одного производителя.

Будет проблема искать регулятор совместимый с прошивкой.

Ардуина или другой аналог, лучшее решение. Вот к ним прикрутить силовую схему от регулятора, кросс плату))

Dimas_71
VitalikV:

одной модели регулятора, одного производителя.

Вы откройте программу blheli… Сильно удивитесь.

Dimas_71
VitalikV:

Гувернер в вертолете работает не так как надо на кордовых,

А как? Мне всегда казалось, что цель гувернера поддерживать постоянные обороты)
А небольшое увеличение оборотов на подъеме и сброс на спуске - можно добиться пидами)

VitalikV

Еще раз, отдельно гувернер не решает задачу, поэтому у Бургера прикручен гироскоп, а гуверннер в регулторе.

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

Маркс
Dimas_71:

Вы откройте программу blheli… Сильно удивитесь.

открывал … много раз … ничего удивительного не увидел.

Dimas_71:

цель гувернера поддерживать постоянные обороты

а задача таймера менять эти “постоянные обороты” при необходимости.

Dimas_71:

можно добиться пидами

ПИД это не про изменение оборотов, это про “автоматическое регулирование”

менять обороты в полете с регулятором blheli тоже можно, сменой банка настроек,
а вот функционал гироскопа и таймера в него не прикрутить.
а значит его “интересность” сразу теряется.

еще раз, если бы кто то сделал специальную прошивку,
с возможностью изменения настроек “в поле”, с возможностью подключения гироскопа,
тогда разговор имел бы смысл, а так … это все "разговор в пользу бедных"©

Dimas_71
Маркс:

открывал … много раз … ничего удивительного не увидел.

Тогда продолжайте изобретать велосипед))
Очень интересно - когда Вы прийдете к необходимости PID регулирования.

Маркс:

ПИД это не про изменение оборотов, это про “автоматическое регулирование”

В данном случае - как раз с помощью PID происходит как Вы сказали - “автоматическое регулирование” ОБОРОТОВ!

Dimas_71

На мой взгляд, самое простое решение - использовать гувер регулятора.
А таймер с гироскопом - управляет полкой гувернера, ну и остальными функциями. старт, стоп и тд.