Контроллер для кордовых электричек
На данном этапе, частота обработки нам не так важна, к задержкам газа можно привыкнуть. Куда важнее правильно обработать положение модели.
это как раз сейчас самый главный вопрос )),
работу программы гувернера надо синхронизировать с работой гироскопа.
надо понять, как правильно это сделать.
опрос гироскопа программа может делать не чаще 100 раз в секунду,
при этом каждый опрос приводит к блокированию основного цикла программы на 2 мс.
т.е. 2 мс программа что то “перетирает” с модулем гироскопа.
При этом, на оборотах 10000 прерывания от мотора на Ардуинку приходят с периодом меньше 1 мс.
Я очень надеюсь, что при “терках” с гироскопом библиотека MPU6050 не блокирует прерывания,
это я сегодня вечером или завтра проверю.
Иначе вся идея с гувернером может пойти прахом.
Лучше тогда отказаться от гироскопа, и дальше развивать тему с гувернером, так как если доработать его, то гироскоп не нужен будет. Привязаться к оборотам мотора проще, чем к трем осям гироскопа.
Либо ставим одну ардуину на гувернер, вторую на гироскоп, а третья собирает данные и управляет газом 🤣
идея таймера увеличивать обороты при положительных углах тангажа и крена выше заданных.
ну например - тангаж +30 градусов или крен +30 градусов, обороты увеличиваем на 10 процентов.
при этом задачу держать обороты выполняет гувернер.
сам по себе гувернер самодостаточен, но не всегда )
если прерывания не блокируются, то в принципе никаких трудностей быть не должно.
просто обработки будут разделять время процессора.
сейчас я думаю, как это проверить.
я могу запустить стоковый пример с чтением данных с гироскопа по прерыванию
и наверное использую генератор импульсов для имитации прерываний от мотора.
есть у меня такой девайс, офигительная штука к слову.
а энкодер в осциллограф я так еще и не поставил )
но это мне не помешает посмотреть два сигнала
но что то мне подсказывает, что сегодня я этим точно не займусь.
и это “что то” бутылочка хорошего виски, все таки сегодня мой профессиональный праздник ))
- "день Советской армии и Военно-Морского флота"©
а я все таки кадровый военный (уже в отставке) и начинал служить в далеком 82 как раз в Советской армии )
так что, с праздником, всех причастных к Советской армии и флоту.
Мои поздравления всем нашим воинам!
Что касается гувернера, опрос и корректировку можно сделать реже, так как обороты все же держит регулятор, а при маневрах, даже на двс есть задержка пока он включится. К этому привыкаешь, главное чтобы не было рывков.
А вот положение модели, должно опрашиваться чаще, так как от него зависит добавлять обороты или нет.
Не вынесла душа поэта неопределенности и после пары маленьких и одной большой
пошел ставить эксперимент, стенд показывать смысла большого нет, там осталась таже ардуинка и MPU6050
а вот “картинку” стоит расшифровать.
Генератор выдает на втором канале импульсы с частотой 1 кГц,
которые я подаю на вторую ногу Ардуино, тем самым вызываю срабатывание прерывания isr0,
в скетче в теле прерывания просто инвертируется сигнал на 11 ноге Ардуинки,
результат виден на желтом графике, т.е. на 11 ноге меандр с частотой 1кГц
а вот синий график, это вывод 13 ардуино, он показывает период занятости МК обработкой данных гироскопа.
при этом в программе, это одна строка кода и она блокирует цикл программы.
Вывод, программу оно блокирует, но прерывания все равно проходят ))
Еще чуть чуть и будет целый полетный контроллер для кордовой, а не просто таймер))
Виталий, это основная цель
это я еще “прячу” web-морду таймера на базе ESP32 😄 (это так, что бы распалить воображение)
но там все немного сложнее, web-морда жрет много ресурсов МК
В очередной раз спрошу, почему нельзя взять регулятор с поддержкой blheli?
В нем есть полноценная поддержка гувернера. Нп вертолете прекрасно работает без участия гироскопа.
Дмитрий, у Вас есть человек, который сможет “прикрутить” в прошивку blheli функционал таймера ?
Причем, обязательно, возможность настройки без компьютера, “в поле”.
Гувернер в вертолете работает не так как надо на кордовых, пока будем обкатывать , потом вносить правки.
Сейчас просто добиваемся стабильности в оборотах, далее надо будет добавлять коэффициент усиления на углах. Ни один гувернер этого не делает, даже тот что в кастл, в режиме кордовых.
Это не выход, мы будем привязаны к одной модели регулятора, одного производителя.
Будет проблема искать регулятор совместимый с прошивкой.
Ардуина или другой аналог, лучшее решение. Вот к ним прикрутить силовую схему от регулятора, кросс плату))
одной модели регулятора, одного производителя.
Вы откройте программу blheli… Сильно удивитесь.
Гувернер в вертолете работает не так как надо на кордовых,
А как? Мне всегда казалось, что цель гувернера поддерживать постоянные обороты)
А небольшое увеличение оборотов на подъеме и сброс на спуске - можно добиться пидами)
Еще раз, отдельно гувернер не решает задачу, поэтому у Бургера прикручен гироскоп, а гуверннер в регулторе.
У нас гувернер в таймере, можем использовать самый дешевый регулятор. Так же ардуину выбрали, потому что она дешевая и есть везде.
Вы откройте программу blheli… Сильно удивитесь.
открывал … много раз … ничего удивительного не увидел.
цель гувернера поддерживать постоянные обороты
а задача таймера менять эти “постоянные обороты” при необходимости.
можно добиться пидами
ПИД это не про изменение оборотов, это про “автоматическое регулирование”
менять обороты в полете с регулятором blheli тоже можно, сменой банка настроек,
а вот функционал гироскопа и таймера в него не прикрутить.
а значит его “интересность” сразу теряется.
еще раз, если бы кто то сделал специальную прошивку,
с возможностью изменения настроек “в поле”, с возможностью подключения гироскопа,
тогда разговор имел бы смысл, а так … это все "разговор в пользу бедных"©
открывал … много раз … ничего удивительного не увидел.
Тогда продолжайте изобретать велосипед))
Очень интересно - когда Вы прийдете к необходимости PID регулирования.
ПИД это не про изменение оборотов, это про “автоматическое регулирование”
В данном случае - как раз с помощью PID происходит как Вы сказали - “автоматическое регулирование” ОБОРОТОВ!
На мой взгляд, самое простое решение - использовать гувер регулятора.
А таймер с гироскопом - управляет полкой гувернера, ну и остальными функциями. старт, стоп и тд.
Дмитрий, таймер не может управлять полкой гувернера, так как эта полка задана жестко в регуляторе, а таймер дает только сигнал газа!
И вот чтобы таймер знал на сколько ему давать газ, сделана целая кросс плата.
Если бы можно было в регулятор запихнуть программу таймера, то и с гувернером было бы вопросов меньше, так как регулятор знает и обороты и напряжение акб и все параметры проходят через него, но такого в мире еще никто не сделал!