Страница 44 из 47

Re: Самодельный локомотивный декодер.

Добавлено: Чт апр 30, 2020 9:18 pm
Engineer_Keen
У меня в текущей разработке, выходы (4 штуки) как и звуковая схема - заскриптованы. При активации/деактивации каждой функции запускается свой скрипт который умеет управлять уровнем напряжения (ШИМ) любого выхода в зависимости или независимости от направления, делать задержки, циклы, вызывать другие скрипты, или просто проигрывать определенный звук. Единственное что нельзя сделать (пока?) это плавное изменение яркости.
Если перепутаны лампочки вперед-назад, достаточно поменять условие и перешить раздел скриптов (дело 10 сек.), при этом никаких волшебных констант как с CV, выходы имеют свои имена, а сам скрипт не сложнее бейсика или паскаля.

Re: Самодельный локомотивный декодер.

Добавлено: Чт апр 30, 2020 9:34 pm
tnt23
Круто, читал про скрипты у коммерческих декодеров. Сам пока в эту сторону не думал, как-то пока тянет обойтись по старинке CV.

Re: Самодельный локомотивный декодер.

Добавлено: Пт май 01, 2020 12:38 pm
tnt23
[Оффтопик]
По поводу CV - в JMRI есть возможность создать описание своего декодера, чтобы облегчить возню с CV и их битами. Также там сделана группировка разных CV по назначению (управление мотором, светом и проч.)

decoder definition.png

Re: Самодельный локомотивный декодер.

Добавлено: Вт май 05, 2020 12:26 pm
tnt23
В конфигурации каждого выхода есть два бита, чтобы управлять работой выхода при движении вперед и назад:
  • 01 выход активен при движении вперед
  • 10 выход активен при движении назад
  • 11 выход активен всегда
Комбинация 00 пропадает впустую, потому что нет смысла подключать выход, который никогда не будет активен. Появилась мысль задействовать ее для включения выхода только в режиме стоянки, когда скорость равна нулю. Например, подсветка кабины (?). Но можно и наоборот, комбинацией 00 включать выход только во время движения.

Вопрос залу: что из житейского опыта может быть полезнее?

Re: Самодельный локомотивный декодер.

Добавлено: Ср май 06, 2020 11:24 pm
BR95009
tnt23 писал(а):
Вт май 05, 2020 12:26 pm

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

Re: Самодельный локомотивный декодер.

Добавлено: Чт май 07, 2020 9:19 am
tnt23
Маневровый режим это уже не про световые эффекты. Это какая-нибудь CV нужна, по типу "запись 8 в CV8 приводит к сбросу в заводские настройки".

Re: Самодельный локомотивный декодер.

Добавлено: Вс май 10, 2020 11:38 am
BR95009
Да фиг с ними, со световыми эффектами. Имхо главное в цифре возможность плавного ускорения и замедления и движение на малой скорости. Нам бы back emf рабочий: обвязку+алгоритм. Остальное запрограммировать -пару пальцев об асфальт.

Re: Самодельный локомотивный декодер.

Добавлено: Вс май 10, 2020 1:07 pm
tnt23
Плавное ускорение-замедление делается элементарно - берешь значения из соответствующих CV и добавляешь к PWM постепенно. Вот как Trim организовать, я еще не сообразил, а надо бы: мой BR 80 назад едет сильно прытче, чем вперед.

Про BEMF - обвязку тут уже описывали, два резистора и конденсатор. Алгоритм, насколько я понял, тоже в целом простой - берется разница между нужной скоростью и фактической (ошибка). Фактическую выводим из измерения на АЦП. Из ошибки приготавливаем два компонента: пропорциональный (тупо умножаем ошибку на константу из CV), и интегральный (постоянно накапливаем сумму ошибок). В принципе этого уже может оказаться достаточно, но можно сделать и третий компонент, дифференциальный - с ним я еще не начинал разбираться. Ну и замешиваешь все компоненты обратно в PWM, тоже с разными весовыми коэффициентами, чтобы отрицательной обратной связью ошибку уменьшить. Из параметров еще можно поиграть с частотой замеров АЦП и цифровой фильтрацией, если она есть и на нее хватает ресурса.

Re: Самодельный локомотивный декодер.

Добавлено: Вс май 10, 2020 5:45 pm
BR95009
На словах все это просто. Я это на словах реализовал 4 года назад. А вот до рабочего прототипа так не дошел.

Никто D не добавляет, хватает и PI.

Re: Самодельный локомотивный декодер.

Добавлено: Вс май 10, 2020 5:49 pm
BR95009
tnt23 писал(а):
Вс май 10, 2020 1:07 pm
Алгоритм, насколько я понял, тоже в целом простой - берется разница между нужной скоростью и фактической (ошибка).
Как фактическую определить, понятно. А вот как определить нужную?