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

VitalikV

Уже во всех скетчах, что находил в интернете используют диапазон 800-2300. Но этот параметр всегда можно задать в программе как мин и макс pwm.

И нам собственно все равно какой диапазон делить на шаги, хоть 1500, хоть 1000, хоть 500, просто под него надо выполнить калибровку регулятора, чтобы он понимал когда у него ноль или полный газ.

Эту таблицу шагов и уровня pwm, должен рассчитать сам таймер, при старте мотора. КР таймер делает нечто подобное, каждый раз перед взлетом, после задержки на то чтобы взять ручку. Он плавно поднимает до максимальных и потом опускает до рабочих. Это облегчает взлет и мы получаем реальные параметры системы непосредственно перед полетом.

RandomJ

Ардуиновская библиотека “SERVO” расчитана на сервы с отклонением 180° и диапазон сигнала там шире стандарта, с этим столкнулся когда собирал первый таймер CL-Pilot. пришлось чутка подправить скетч оригинальный.

Маркс
VitalikV:

мы получаем реальные параметры системы непосредственно перед полетом.

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

у длительности PWM и оборотами мотора нет никакой связи.
самая первая версия таймера делала то же самое, она есть,
в ней даже изменение оборотов в зависимости от изменения тангажа реализовано.
Timer_for_Plane_два варианта с шасси и без ЕМНИП.zip
если я правильно помню, идея гувернера появилась от желания иметь постоянную линейную скорость полета
не зависимо от состояния батарейки

Маркс

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

очень трудно что то делать, когда не понятно, что же в итоге нужно.

VitalikV
Маркс:

и ? а как он учитывает изменение напряжения батареи ?

Ни как, так же по оборотам или как то еще, например по обратной эдс, как сам регулятор.

Маркс:

у длительности PWM и оборотами мотора нет никакой связи

Это как? А как вы их регулируете? Какой pwm соответствует 50%газа? А 20%?

VitalikV
Маркс:

очень трудно что то делать, когда не понятно, что же в итоге нужно.

В итоге нужно , что бы модель летела более менее с одной скоростью.

Я опишу как работает КР таймер, а то и что как он меряет, оставим в стороне.

Мы выставляем обороты например 9000, по обычному тахометру. И можем отрегулировать степень усиления этих оборотов.

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

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

VitalikV

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

Маркс
VitalikV:

Ни как, так же по оборотам или как то еще, например по обратной эдс, как сам регулятор.

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

VitalikV:

Какой pwm соответствует 50%газа? А 20%?

сейчас диапазон в программе 1100-1940, значит 50 процентов соответствует 1520 мс

VitalikV:

А как вы их регулируете?

на входы операционного усилителя, приходят “отфильтрованные” сигналы с двух фаз мотора,
он вычитает один сигнал из другого и на выходе получает меандр.
меандр поступает на вход прерывания микроконтроллера
получая прерывания, МК считает их период и на основании этих данных вычисляет текущие обороты мотора.
если обороты ниже заданных (± дельта), программа увеличивает длительность PWM,
если обороты больше заданных, длительность PWM уменьшается.

в любой момент я могу в программе изменить требуемые обороты мотора и гувернер изменит текущие обороты.

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

RandomJ
Маркс:

А можно схемку что куда подключать для и на каких платках собирать?

Маркс

с этим сложнее, вечером попробую накидать.

но там одна кнопка подключенная на D12
и модуль GY521 (или GY85 надо вспомнить), подключается по стандартной схеме на i2с.

в видео звучить MPU6050, значит модуль GY521 или GY87

Маркс:
Скетч для Arduino IDE Постарался сделать как можно более читабельным Отвечу на все вопросы. Будет доработка в плане внешнего программирующего устройства на базе Arduino Uno и LCD дисплея. Так, благодаря хорошему человеку нашлась четвертая версия Timer_for_Plane_v4 Как это работает в настоящее время можно посмотреть на видео. www.youtube.com/watch?v=yQ3KyVNsnvo
VitalikV
Маркс:

если обороты ниже заданных (± дельта), программа увеличивает длительность PWM,
если обороты больше заданных, длительность PWM уменьшается.

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

Маркс

вечером скину проект кросс платы в формате EasyEDA со схемой и рисунком платы

Маркс

Cross_Plate_ProMini.zip

RandomJ:

А можно схемку что куда подключать для и на каких платках собирать?

GY521 подключается
SCL - A5
SDA - A4

Маркс

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

VitalikV

Меня без гироскопа устроит, он будет мешать при тестах гувернера

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

Маркс

ок, завтра постараюсь сделать версию гувернер + программатор
и само собой управление шасси тоже не нужно ?

VitalikV

Пусть будет, но чтобы шасси можно было отключить, у меня их нет

VitalikV
  1. На дворе зима, зачем они нужны?
  2. Шасси без привода, зачем они нужны в таймере?
  3. Написал же, отключаемые, если надо будет включим.

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

Маркс

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

VitalikV

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

Тем более у меня все железки уже есть, лежат без дела.