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

Dimas_71
Маркс:

открывал … много раз … ничего удивительного не увидел.

Тогда продолжайте изобретать велосипед))
Очень интересно - когда Вы прийдете к необходимости PID регулирования.

Маркс:

ПИД это не про изменение оборотов, это про “автоматическое регулирование”

В данном случае - как раз с помощью PID происходит как Вы сказали - “автоматическое регулирование” ОБОРОТОВ!

Dimas_71

На мой взгляд, самое простое решение - использовать гувер регулятора.
А таймер с гироскопом - управляет полкой гувернера, ну и остальными функциями. старт, стоп и тд.

VitalikV

Дмитрий, таймер не может управлять полкой гувернера, так как эта полка задана жестко в регуляторе, а таймер дает только сигнал газа!

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

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

Dimas_71
VitalikV:

не может управлять полкой гувернера, так как эта полка задана жестко в регуляторе

не говорите глупости.
почитайте мануал хотя бы к тому же blheli или hobbywing

Маркс
Dimas_71:

продолжайте изобретать велосипед))

зачем ? гувернер на базе про мини уже работает.
это же Ваши слова ?

Dimas_71:

А небольшое увеличение оборотов на подъеме и сброс на спуске - можно добиться пидами)

я Вам ответил, что они не для этого.

Dimas_71:

На мой взгляд, самое простое решение - использовать гувер регулятора.

интересный Вы человек, Вам говорят, что нет желания привязываться к конкретным регуляторам,
а Вы все "про Фому"© талдычите.

VitalikV:

таймер не может управлять полкой гувернера

Виталий, он сможет. Вот только с Ардуинки я могу выставить любые обороты в любой момент,
а не только те, которые прописаны в регуляторе,
опять же, что бы изменить настройки полок в регуляторе, его надо цеплять к компьютеру.
или иметь “очень умный” программатор.
а кроме того, регулятор blheli 40A стоит дороже 1000 рублей,
а простой регулятор 40А можно купит за 450-500 рублей.

Маркс

а кроме того, Дима, если считаете, что можете сделать лучше, сделайте.

Dimas_71

Сделать что?
Изобести заново алгоритм гувернера?
Поверьте, есть достаточно других достаточно интересных проектов, хотя и не свзаных с моделизмом - на которые катастрофически не хватает времени.
А если я обидел Вас как “художника” - извините)

Маркс
Dimas_71:

Поверьте

фиолетово.

Dimas_71:

если я

пофиг

Dimas_71
Маркс:

фиолетово

Взаимно.

Маркс:

пофиг

Удачи в изобретении колеса)

Маркс

Вы все пропустили,
еще раз, гувернер работает и работает хорошо.
Возникнет необходимость в PID регулировании, прикрутить его не составит большого труда,
в сети есть хорошая библиотека от Gyver’а на эту тему )).

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

и это Вы пришли в тему со своими советами и никак не можете успокоится.

VitalikV

Это конкурент, небось он сам работает над коммерческим проектом, а мы своей темой ему всю малину обломали))))

Не обращаем внимания и идем дальше))

Маркс

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

Маркс

Совершенно случайно на Али наткнулся на модуль GY25
aliexpress.ru/item/1005005294239615.html?spm=a2g2w…
Он хорош тем, что вся обработка и фильтрация данных от MPU6050 возложена на процессор STM32F030.
Вот бы такой модуль, да с несколькими дополнительными выводами, STM32F030 значительно мощнее процессора ATMEGA328

VitalikV

Так это можно взять какой то самый дешевый полетный контроллер с гироскопом на борту, и прошить под наши задачи. 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 все немного поменяется.

7 days later
Aerobi

Здравствуйте Геннадий, подскажите пожалуйста, каким образом у Вас происходит измерение изменения оборотов двигателя? Спасибо.

Маркс

Добрый вечер, чуть выше было, в двух словах беру сигналы с двух фаз мотора,
фильтрую от высокочастотных помех и вычитаю на операционном усилителе,
работающем в режиме насыщения, на выходе получаю чистый меандр.
Подаю меандр на вход прерывания МК, а дальше уже простая математика.

А изменение оборотов двигателя, методом изменения длительности PWM на регулятор.

Маркс

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