Контроллер для кордовых электричек
Мы имеем диапазон регулировки сигнала pwm 800-2200 , этот диапазон делим на количество шагов, например 1400мксек/140шагов и получаем, примерно 10мксек. Сколько оборотов, у нас в этот один шаг, мы можем померить при запуске мотора, и дальше уже шагами работать для регулировки оборотов.
Не каждый регулятор понимает такой диапазон. Стандарт 1000 - 2000 мкс.
Уже во всех скетчах, что находил в интернете используют диапазон 800-2300. Но этот параметр всегда можно задать в программе как мин и макс pwm.
И нам собственно все равно какой диапазон делить на шаги, хоть 1500, хоть 1000, хоть 500, просто под него надо выполнить калибровку регулятора, чтобы он понимал когда у него ноль или полный газ.
Эту таблицу шагов и уровня pwm, должен рассчитать сам таймер, при старте мотора. КР таймер делает нечто подобное, каждый раз перед взлетом, после задержки на то чтобы взять ручку. Он плавно поднимает до максимальных и потом опускает до рабочих. Это облегчает взлет и мы получаем реальные параметры системы непосредственно перед полетом.
Ардуиновская библиотека “SERVO” расчитана на сервы с отклонением 180° и диапазон сигнала там шире стандарта, с этим столкнулся когда собирал первый таймер CL-Pilot. пришлось чутка подправить скетч оригинальный.
мы получаем реальные параметры системы непосредственно перед полетом.
и ? а как он учитывает изменение напряжения батареи ?
на самом деле никакой информации не получается.
только установка рабочего диапазона PWM, но перед каждым полетом это не нужно,
мало того, это нужно только один раз, прописать в регулятор диапазон сигнала PWM.
у длительности PWM и оборотами мотора нет никакой связи.
самая первая версия таймера делала то же самое, она есть,
в ней даже изменение оборотов в зависимости от изменения тангажа реализовано.
Timer_for_Plane_два варианта с шасси и без ЕМНИП.zip
если я правильно помню, идея гувернера появилась от желания иметь постоянную линейную скорость полета
не зависимо от состояния батарейки
вернемся к баранам.
вы можете определится с требованиями к таймеру ?
я не летаю и никогда не летал на кордах, разве что один раз очень много лет назад и всего полтора круга.
очень трудно что то делать, когда не понятно, что же в итоге нужно.
и ? а как он учитывает изменение напряжения батареи ?
Ни как, так же по оборотам или как то еще, например по обратной эдс, как сам регулятор.
у длительности PWM и оборотами мотора нет никакой связи
Это как? А как вы их регулируете? Какой pwm соответствует 50%газа? А 20%?
очень трудно что то делать, когда не понятно, что же в итоге нужно.
В итоге нужно , что бы модель летела более менее с одной скоростью.
Я опишу как работает КР таймер, а то и что как он меряет, оставим в стороне.
Мы выставляем обороты например 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 с экраном у меня есть
ок, завтра постараюсь сделать версию гувернер + программатор
и само собой управление шасси тоже не нужно ?
Пусть будет, но чтобы шасси можно было отключить, у меня их нет
Пилотажка без шасси???
- На дворе зима, зачем они нужны?
- Шасси без привода, зачем они нужны в таймере?
- Написал же, отключаемые, если надо будет включим.
В спортивном пилотаже, они не особо нужны, хотя и есть разница в поведении модели, с ними и без (с убранными).