Контроллер для кордовых электричек
очень трудно что то делать, когда не понятно, что же в итоге нужно.
В итоге нужно , что бы модель летела более менее с одной скоростью.
Я опишу как работает КР таймер, а то и что как он меряет, оставим в стороне.
Мы выставляем обороты например 9000, по обычному тахометру. И можем отрегулировать степень усиления этих оборотов.
Далее стартуем мотор, он раскручивается до максимальных и выходит на рабочие, тем самым проверяя систему есть ли запас на работу гувернера. Далее полет. Во время полета, гувернер работает только вверх, он только добавляет обороты при их падении, но не опускает их ниже заданных, когда они начинают расти (разгон в ветер). Чтобы обеспечить большую тягу на углах, используется коэффициент усиления, который добавляет оборотов.
Из минусов при большом коэффициент, мотор так же начинает плавать по оборотам, поэтому его не рекомендуется выкручивать на максимум, и по умолчанию он 1.
Если использовать датчик положения, гироскоп или акселерометр, или оба, то гувернеру не нужен коэффициент усиления на углах, его задача тупо добавлять обороты при их падении, возвращая к заданным.
Ни как, так же по оборотам или как то еще, например по обратной эдс, как сам регулятор.
вот тут Вы не правы, регулятор по ЭДС подстраивает фазы, он не смотрит на сами обороты.
вертолетные регуляторы с гувернером, умеют выдерживать заданные обороты,
но они их тоже не знают, полки выставляет пилот на столе в
процессе настройки по тахометру.
Какой pwm соответствует 50%газа? А 20%?
сейчас диапазон в программе 1100-1940, значит 50 процентов соответствует 1520 мс
А как вы их регулируете?
на входы операционного усилителя, приходят “отфильтрованные” сигналы с двух фаз мотора,
он вычитает один сигнал из другого и на выходе получает меандр.
меандр поступает на вход прерывания микроконтроллера
получая прерывания, МК считает их период и на основании этих данных вычисляет текущие обороты мотора.
если обороты ниже заданных (± дельта), программа увеличивает длительность PWM,
если обороты больше заданных, длительность PWM уменьшается.
в любой момент я могу в программе изменить требуемые обороты мотора и гувернер изменит текущие обороты.
мало того, даже если подключить к регулятору батарейку с большим напряжением,
он все равно будет выдерживать заданные в программе обороты.
с этим сложнее, вечером попробую накидать.
но там одна кнопка подключенная на D12
и модуль GY521 (или GY85 надо вспомнить), подключается по стандартной схеме на i2с.
в видео звучить MPU6050, значит модуль GY521 или GY87
Скетч для Arduino IDE Постарался сделать как можно более читабельным Отвечу на все вопросы. Будет доработка в плане внешнего программирующего устройства на базе Arduino Uno и LCD дисплея. Так, благодаря хорошему человеку нашлась четвертая версия Timer_for_Plane_v4 Как это работает в настоящее время можно посмотреть на видео. www.youtube.com/watch?v=yQ3KyVNsnvo
если обороты ниже заданных (± дельта), программа увеличивает длительность PWM,
если обороты больше заданных, длительность PWM уменьшается.
Давайте тогда мы на этом остановимся, раз вам удалось убрать болтанку оборотов, и полетаем, и там уже будет понятно куда двигаться дальше. Скиньте схему куда что подключать, я попробую ее собрать.
вечером скину проект кросс платы в формате EasyEDA со схемой и рисунком платы
А можно схемку что куда подключать для и на каких платках собирать?
GY521 подключается
SCL - A5
SDA - A4
Но надо понимать, что в данный момент есть три отдельных программы для таймера.
Сам таймер, скетч начальной версии в архиве парой постов выше, он полностью рабочий.
Программатор для таймера, он на данный момент существует как отдельный скетч,
тоже рабочий, но не интегрирован в программу таймера.
Гувернер, это тоже самостоятельный скетч, на данный момент с ним полетать не получится,
для этого его надо интегрировать в скетч таймера, но при этом придется отключить гироскоп.
Меня без гироскопа устроит, он будет мешать при тестах гувернера
А вот программатор уже хоьелось бы использовать, уно 3 с экраном у меня есть
ок, завтра постараюсь сделать версию гувернер + программатор
и само собой управление шасси тоже не нужно ?
Пусть будет, но чтобы шасси можно было отключить, у меня их нет
Пилотажка без шасси???
- На дворе зима, зачем они нужны?
- Шасси без привода, зачем они нужны в таймере?
- Написал же, отключаемые, если надо будет включим.
В спортивном пилотаже, они не особо нужны, хотя и есть разница в поведении модели, с ними и без (с убранными).
никто не забыл, что пока речь идет о прототипе ?
сейчас задача проверить работу гувернера.
какая разница, есть шасси или нет ?
его можно даже без программатора протестировать,
в скетч вбить требуемые значения времени и оборотов
прошить ардуинку и проверить.
Программатор нужен, чтобы сразу на поле погонять в разных режимах и не тащить ноут, для правки оборотов и времени полета.
Тем более у меня все железки уже есть, лежат без дела.
Виталий, я утрировал ситуацию, чисто теоретически.
К вечеру сделаю упрощенный вариант таймера, только с гувернером и программатором.
утром вызвали на работу, упала система,
надеялся обернуться за час, но … дьявол как известно в деталях, прошло уже три ).
от компьютеров уже тошнит, все выходные на работе, пошел собаку гулять
Сделал себе выходной.
По “упрощенной версии таймера”, сейчас начал заниматься.
Через программатор будут изменяться
- время до взлета, чтобы до ручки добежать, в секундах, в течении этого времени можно отменить процедуру нажатием кнопки
можно сделать перемычку, перемычку снял, время пошло, поставил на место, все остановилось - время в полете в минутах-секундах
- время полных оборотов на взлете
- обороты мотора в полете в об/мин
Упрощенный алгоритм работы таймера без гироскопа
- подключили питание,
- таймер проверяет подключение программатора
- если программатор подключен
общение с программатором
запись полученных данных в ЕЕПРОМ,
переход в режим полного останова. - если не подключен,
инициализация регулятора
играет музыка
отсчет времени до запуска мотора, бежим к ручке
плавный (секунды 3) запуск мотора до максимальных оборотов, взлет на максимуме, так удобнее
двигатель работает на максимальных оборотах для разгона модели в течении запрограммированного времени
переход таймера в режим гувернера с заданными оборотами
полет в течении заданного времени
информирование о завершении времени полета - три цикла (1 секунда -15% оборотов, 1 секунда полетный режим)
останов двигателя и перевод программы в полный стоп.
Я пока начинаю кропать по данному алгоритму, если есть существенные замечания, добавим.