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

Маркс

Источник ошибки обмена установлен и удален.
В архивах исправленные версия программатора и программы таймера
Programmer_v1.zip
Timer_for_Plane_v6.1_wo_Gyro.zip
Временные параметры пока ограничены 1800 секунд или 30 минут (так исторически сложилось)

Маркс

Следующим номером нашей программы “вкрячивание” MPU6050
выглядеть будет примерно так
ая кросс плата
J3 и J4 точки подключения модуля MPU6050
вот такого

ZY MPU-6050

Маркс

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

vittek

Приветствую. Готов протестить ваш сетап по полной программе, главное чтобы был получен правильный результат.

Маркс

Для этого нужно иметь

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

vittek

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

Маркс
vittek:

у нас ничего нет, но при необходимости всё можем заказать.

настройки можно и с компа поменять ), а потом прошить Ардуинку.
но для программирования Pro Mini потребуется еще USB-UART преобразователь.
хотя, прошить можно и с помощью UNO.

VitalikV

Заказал, жду детальки, соберу отпишусь по результатам.

RandomJ

А схема сборки всего этого в кучу в каком файлике лежит?

RandomJ

mini, USB2UART, nano, UNO+LCD_keypad_sheld и GY-521 есть в наличии.

Маркс

Доброе утро всем.
Нет никакой особой схемы сборки.
LCD+KEY штатно ставится на UNO
кросс плата (это ее рисунок)

штатно ставится на Pro Mini, четыре угловые пины как раз по углам Pro Mini
К J1 присоединяются провода от фаз мотора
К J2 регулятор оборотов.
На новой версии кросс платы добавлен светодиод, кнопка и разъем для подключения внешней кнопки
Выглядит все это примерно так

Пяти пиновый разъем на Pro Mini для подключения программатора/
Через него же подключается USB-UART для прошивки

В выходные протестирую MPU-6050 и сделаю новую кросс-плату.

Маркс

провел предварительный тест MPU-6050, в общем нужно предусмотреть калибровку гироскопа.

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

Маркс

Теперь по обработке изменения угла.
Вот статья от Гайвера
alexgyver.ru/arduino-mpu6050/?ysclid=lnnlcbtk8a954…
Получить данные от гироскопа получится не чаще 100 раз в секунду,
само получение данных и их “интерпретация” в теле программы занимает не меньше 2 мс.
кроме того, есть еще основная программа гувернера,
а значит корректировку по данным гироскопа получится делать не чаще 50 раз в секунду,
а лучше сделать 20-30 раз в секунду, что бы программа не “спотыкалась” об прерывания.

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

RandomJ

Модель в среднем пролетает 20…25 метров за секунду., плюс инерция модели на изменение тяги двигателя, от этого отталкиваться.

VitalikV

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

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

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

Маркс
VitalikV:

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

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

Маркс

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

VitalikV

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

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

Маркс

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

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

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

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

Маркс

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

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

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

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