Ил-18 Долгий путь к мечте

Гена_Большой
DmitryK:

Друзья, не ссорьтесь 😀

да ладно Вам ), возраст уже не тот.

а о сути, пора начинать писать ТЗ, если есть желание к новому году выйти хоть на какой-то результат ).
самое главное решить принципиальный вопрос, стоит делать одно многоканальное устройство,
которое будет обслуживать все сервисные устройства модели, по команде полученной от аппаратуры.
такой вариант тоже можно рассматривать, преимущество очевидное,
на самой аппаратуре будет занято максимум пара каналов.
до 16 управляемых каналов реализовать в одной коробочке вполне реально.
но там свои подводные камни. да и программирование для Stm32 у меня еще имеет маленький скилл.

DmitryK:

Нужен реверс или перепайка направления.

изменение направления работы серв програмно реализуется за пять секунд )

DmitryK
Гена_Большой:

изменение направления работы серв програмно реализуется за пять секунд )

Ну дык если есть возможность, почему бы не задействовать?

По поводу ТЗ:
Берем за образец вышевыложенное устройство и докручиваем к нему несколько регулируемых выходов. Можно как-то так

Out 1, 2, 3 еще не нарисовал.

Гена_Большой

ок, т.е. бум “посмотреть” в сторону единого устройства управления всей “приблудой”.

DIM76
Гена_Большой:

программирование для Stm32 у меня еще имеет маленький скилл.

Вот он, этот скилл и повысится))).

Гена_Большой

Сегодня немного поэкспериментировал с Ардуино Уно.
Ее прелесть в небольших размерах (7х5 см) и возможностью “пристегнуть” любую “само-нарисованную” плату в режиме бутерброда.
Ардуино Уно в состоянии генерировать 12 каналов PWM с частотой 50Гц и точностью 1-3 мкс.
у меня на столе Ардуинка одновременно крутила 6 машинок.
При этом остается возможность приема SBus от приемника Futaba.

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

Итого вполне реально реализовать программную синхронизацию 10 сервомашинок в рамках одного устройства.

DmitryK

Здорово! А мне тут пообещали дать контакты китайцев, которые делают платы. Говорит от 5 шт голые платы или с монтажем на выбор.

Гена_Большой

JLCPCB )), jlcpcb.com/?ysclid=l87qpz1phe682521982
давно с ними дружу, но до недавних пор с оплатой была засада, потом стал травить сам )
Вот сегодня закончил прототип ), SBus декодер на восемь каналов с выключателем питания борта )…
Выключатель отдельное устройство на Attiny13, если его не подключать, питание на сервах будет сразу.

В программе реализовано 14+2, т.е. полный пакет Futaba.
Но это прототип, для тестирования, восьми выходов на сервы хватит.
В основе плата разработки STM32F411.

но в варианте Arduino Uno + плата коммутации (она пустая, по сути разъем подключения АК и выходы на сервы),
никаких плат больше не надо.
главное грамотно софт написать, уже мысли роятся в голове.

Гена_Большой:
  • две стойки шасси с тремя сервами (створки+ретракт)
  • одна сойка шасси с три сервы (створки + ретракт + поворот)
  • два закрылка с двумя сервами.
  • две фары еще две сервы.

Итого я насчитал, что требется десять выходных каналов.
Я правильно посчитал ?

DmitryK

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

Ретракт- конечные точки не нужны. Если сервы вместо ретракта, нужны. Количество створок тоже вопрос. У меня одна серва плюс мех привод на передние створки. И видимо по одной на основных.
Если иметь ввиду коммерческую составляющую, то, мне кажется нужно минимум 2 независимые сервы на створки + ретракт. Ну, если под серьезную копию задел делать…

Гена_Большой:

Итого я насчитал, что требется десять выходных каналов.
Я правильно посчитал ?

Ретракт передний и остальные - это один канал. Т.ч. можно обойтись 9 по минимуму. Если 10 влезет, лучше чтобы было 10. И если фары берем от шасси, тоже 10.

Гена_Большой

на коммерческую составляющую мне честно говоря фиолетово )),
сейчас речь идет о конкретном изделии под конкретную модель.

я тут в закромах отыскал кучку шилдов под Ардуино нано, вот таких

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

насчет каналов, это я имел в виду не каналы на аппаратуре, а каналы на конечном устройстве.
на данный момент можно реализовать 10 каналов ), каждый со своими конечными точками и замедлением
и соответственно с взаимной синхронизацией, ну нельзя выпускать шасси при закрытых створках).

Гена_Большой

мне сейчас не хватает “таймлайн” выпуска шасси.
сколько времени должны открываться створки, сколько времени должна выпускаться стойка, желательно в секундах.
у И-18 створок шасси 4 штуки, две большие, две маленькие, которые остаются открытыми при выпущеных шасси.
вот тоже нужны времена, что бы правильно рассчитать постоянную времени задержки.
по сули процесс открытия створки будет состоять примерно из тысячи тактов каждый длительностью (t открытия створок/1000 такотов)
при этом все три стойки будут выпускаться одновременно, но такты у них совпадать не будут, минимизируя потребляемый ток сервами )
проще говоря, сервы будут по очереди смещаться на один шаг )
алгоритм уже проверен на другом проекте

DmitryK

Время выхода стойки на ретракте 4секунды. Соответственно задержка между сигналом на ретракт и закрытием створок 6 сек. Выпуск стоек через1 сек после завершения цикла открытия створок. Время открытия-закрытия створок думаю полторы секунды.
Каналы считал на выходе устройтсва.
1-все ретракты
2-4 створки
5 колесо передней стойки
6,7 закрылки.
8-10 фары

ПС. Ретракты стандартные с червяком и концевиками. Им только приблизительно убрано и выпущено. Судя по сервотестеру выпущено менее 1.5мс, убрано больше.

Гена_Большой

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

Гена_Большой

с 2-4 все понятно,
5 это поворот носового колеса при рулении, перед уборкой надо поставить в среднее положение,
иначе говоря, можно сделать, что бы при начале открытия створок, носовая стойка вставала в среднее положение.
а после закрытия створок и при выпущенном шасси, реагировала в соответствии с каналом RUDER.

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

DmitryK
Гена_Большой:

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

именно так. Проверил на и-метре.

1 мс выпущено 2мс убрано

Гена_Большой

препарировал “шилд” из поста выше, подключил питание сервоприводов от внешней батарейки,
прием данных по SBus уже работает, по крайней мере с моим приемником TFR8SB все работает )).
правда конвертер SBus пока сделан на макетной плате и висит на соплях, но это мелочи.
ардуинка, приняв данные с приемника через SBus уверенно крутит сервами, в режиме прямой трансляции.
что получил в канале, то и выдал на серву ).
также погонял скетч, который одновременно гонял из между крайними положениями 12 сервоприводов )).

Вот такие дела, теперь у устройства 12 полноценных каналов PWM, правда с увеличением количества каналов
увеличивается период следования импульсов PWM, ну или уменьшается частота от 50 герц до 30 герц,
но не думаю, что с этим могут возникнуть проблемы, по крайней мере у меня из края в край они “ездили” )

Гена_Большой

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

Гена_Большой

Вечер прошел плодотворно, удалось закончить “рыбу” “калибровки” конечных точек сервоприводов 11 каналов.
Правый стик вправо-влево - перебирает каналы, вверх-вниз - меняет значение текущего параметра.
После завершения цикла происходит запись данных в энергонезависимую память микроконтроллера (EEPROM).
При включении устройства данные считываются из EEPROM.
В режим калибровки устройство переходит в случае если на входе PB5 (нога D13 arduino) микроконтроллера в момент включения присутствует логический ноль.
Для выхода из режима калибровки надо убрать перемычку и выключить-включить питание устройства.

утомило немного )