Контроллер для кордовых электричек
Сделать что?
Изобести заново алгоритм гувернера?
Поверьте, есть достаточно других достаточно интересных проектов, хотя и не свзаных с моделизмом - на которые катастрофически не хватает времени.
А если я обидел Вас как “художника” - извините)
Поверьте
фиолетово.
если я
пофиг
фиолетово
Взаимно.
пофиг
Удачи в изобретении колеса)
Вы все пропустили,
еще раз, гувернер работает и работает хорошо.
Возникнет необходимость в PID регулировании, прикрутить его не составит большого труда,
в сети есть хорошая библиотека от Gyver’а на эту тему )).
Выше было пара видео с демонстрацией его работы,
в том числе демонстрация изменения регулируемых оборотов.
и это Вы пришли в тему со своими советами и никак не можете успокоится.
Это конкурент, небось он сам работает над коммерческим проектом, а мы своей темой ему всю малину обломали))))
Не обращаем внимания и идем дальше))
нет. просто прохожий ).
кручу по разному алгоритм, но 2мс в течении которых МК занят обработкой данных гироскопа
обойти красиво ни как не получается, два-три прерывания от мотора за это время проскакивают,
даже на оборотах 4000, а если 10000 то количество прерываний вырастет до10.
значит будем делать не очень красиво.
все что касается обработки прерываний от мотора, включая расчет текущих оборотов,
буду убирать внутрь обработчика прерываний,
предельно оптимизировав код и убрав из него все лишнее.
сейчас вся обработка укладывается в несколько микросекунд, думаю уменьшить до 2мкс
а учитывая, что я знаю все, чем занят процессор, эта “не красивость” ни на что не повлияет )
а корректировка оборотов мотора будет в основном цикле с периодом опроса гироскопа,
т.е. те самые 100 Гц. (100 раз в секунду), думаю этого будет достаточно
Совершенно случайно на Али наткнулся на модуль GY25
aliexpress.ru/item/1005005294239615.html?spm=a2g2w…
Он хорош тем, что вся обработка и фильтрация данных от MPU6050 возложена на процессор STM32F030.
Вот бы такой модуль, да с несколькими дополнительными выводами, STM32F030 значительно мощнее процессора ATMEGA328
Так это можно взять какой то самый дешевый полетный контроллер с гироскопом на борту, и прошить под наши задачи. P1-GYRO
все что касается обработки прерываний от мотора, включая расчет текущих оборотов,
буду убирать внутрь обработчика прерываний,
не получилось, два дня бился и ОНО меня в итоге добило,
пока программа в прерывании сбивается цикл библиотеки Servo и обороты мотора начинают сильно плавать.
как же хорошо в этом вопросе с STM32, таймерам фиолетово на все, что происходит вокруг,
получил он команду выдавать импульс с периодом 10 мс и длительностью 1500 мкс
и будет он их вываливать наплевав на все вокруг, даже если сам процессор остановится.
главное что бы тактовый генератор работал )
и что то мне подсказывает, что идея не лишена смысла
значит придется искать другие варианты обхода,
но идею перехода STM32F401 или ESP32 в голове буду держать?
уж очень сильно утомляет ATMEGA своими “ограниченными” ресурсами
кстати, взвесил, модуль STM32F401
на картинке он нижний, всего на 2 грамма тяжелее Arduino Pro Mini,
при этом позволяет заливать прошивку через USB Type-C без всяких USB-UART.
И дружит с Uno+LCD-Key, уже проверял в паре проектов.
конец моим страданиям, больше мучится с режимом DPM датчика MPU6050 не буду,
слишком много жрет ресурсов, да к тому же, как я понял, блокирует работу таймеров.
возвращаюсь к исходному варианту, который успешно работал в версии v4,
буду получать сырые данные с гироскопа и обрабатывать фильтром Кальмана.
Задача: до конца марта сделать первый рабочий прототип.
p.s. плату пока не разводил и правильно сделал, без DPM все немного поменяется.
Здравствуйте Геннадий, подскажите пожалуйста, каким образом у Вас происходит измерение изменения оборотов двигателя? Спасибо.
Добрый вечер, чуть выше было, в двух словах беру сигналы с двух фаз мотора,
фильтрую от высокочастотных помех и вычитаю на операционном усилителе,
работающем в режиме насыщения, на выходе получаю чистый меандр.
Подаю меандр на вход прерывания МК, а дальше уже простая математика.
А изменение оборотов двигателя, методом изменения длительности PWM на регулятор.
Вот только сейчас процесс опять притормозил, здоровье шалит, а основная работа напрягает.
Но есть надежда к концу марта рабочий таймер сделать.
И это работает? Но ведь сигнал идёт с регулятора на двигатель, заставляя его вращаться с определённой скоростью, которая не постоянна и всё время изменяется под воздействием внешних факторов. Например, полёт по ветру, двигатель раскручивается и наоборот, против ветра, обороты падают, а длительность импульса меандра будет неизменна пока на входе регулятора не изменится длительность PWM сигнала.
На некоторых регуляторах JETI есть режим “Heli constant RPM” его используют пилоты F2B для стабилизации оборотов двигателя. Интересно, каким образом там отслеживается изменение оборотов двигателя?
И это работает? Но ведь сигнал идёт с регулятора на двигатель, заставляя его вращаться с определённой скоростью
само собой работает )).
на фазовых проводах мотора всплески при прохождении магнитов,
они сдвинуты по фазе, кроме того, поэтому требуется вычитание сигналов.
Контроллер для кордовых электричек #259
а длительность импульса меандра будет неизменна пока на входе регулятора не изменится длительность PWM сигнала.
а вот про это выше ыло видео, на котором я притормаживал мотор рукой и частота импульсов уменьшалась,
при этом длительность PWM оставалась постоянной.
На некоторых регуляторах JETI есть режим “Heli constant RPM”
не только Jeti, на вертолетных регуляторах есть режим Гувернера,
настраиваются “полки” оборотов мотора и есть возможность переключения между ними.
Гувернер старается, в меру сил, обеспечить заданные обороты,
в том числе и в случае снижения напряжения батареи
Собственно говоря, данная “прослойка” между регулятором и Ардуинкой
предназначена для реализации функции Гувернера на любом, даже самом дешевом регуляторе )
Ну вот, скрестил ежа и ужа
пока
- на макетке
- реакция только на угол тангажа, при превышении 30 градусов гироскоп поднимает обороты на 15 процентов.
но главное симбиоз работает, дальше дело за алгоритмом оценки положения модели в пространстве
дальше только “причесывание” алгоритма и доведение кросс платы.
кста, вот теперь можно делать вторую версию кросс-платы.
с кнопкой, светодиодами состояния, разъемом для программатора и прочими (а вдруг) фенечками
Надо добавить работу гироскопа на ноже, обязательно, так как на ноже угол тангажа равен нулю, но при этом модель находится на вершине сферы.
И после нажатия кнопки старта, надо сделать кратковременный пуск мотора и потом отсчет на добежать на ручку. А то лампочки не видно под капотом.
И в начале на разгоне обороты как то на много меньше полетных, надо разгон побыстрее, либо сделать обороты равным полетным, так привычнее взлетать будет.
это уже все - "про алгоритмы"©
главное гироскоп поженил с гувернером,
ну в том смысле, что они одновременно работают и друг другу не мешают.