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

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

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

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

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

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

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

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

Джампер самое надежное

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

Дмитрий, вопрос, в режиме калибровки конечных точек важно, что бы регулируемые сервы двигались так же замедленно, как и в рабочем режиме ?
Или можно переводить их из одного положения в другое безо всяких замедлений ?
Второй вариант значительно проще реализовать ))

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

не надо никаких джамперов

И всё же джампер надёжнее. От случайных действий.

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

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

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

каких например ?

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

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

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

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

Но при этом должно совпасть, 0,01 секунды после reset и стик РВ в нижнем положении, ровно столько времени надо проге что бы пролететь блок setup().
кмк, вероятность ничтожно мала.
а джампер, отказы бывают разные, вероятность короткого по входу все таки выше, нежели программное определение состояния стика ).
это я Вам как программист со стажем говорю

DmitryK

Что-то разболелся, лежал влежку с температурой, а тут такие дебаты…

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

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

не важно совсем.
Я сильно извиняюсь, а правый стик откуда возьмется? Это специально из приемника вытаскивать провода и втыкать для настройки?

А, понял. Он же через Сбас.

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

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

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

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

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