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

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

Да, как-то так будет. Два наверное.

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

boss

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

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

Если использовать библиотеку Servo для Ардуино и “прикрутить” замедление" и программируемые конечные точки,
то неизбежно возникнут непредусмотренные колебания в процессе перемещения,
проверено на нескольких разных процессорах Атмега.
Как выяснилось, это “особенность” использования библиотекой таймеров.
Это касается в том числе и Арду 2560.
А если писать все самому, то памяти Меги 328 в итоге может и не хватить, сейчас проект занимает 25 килобайт
и это еще не все.

Да и по производительности F401 значительно превосходит любую Мегу,
а про количество портов я вообще молчу ).
В даннос проекте задействовано три таймера, каждый генерирует по 4 PWM сигнала на четырех ногах процессора,
сам процессор в этом процессе не участвует.

boss:

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

два канала на закрылки,
три канала на фары,
три канала на створки шасси,
три канала на ретракты,
один канал на рулевое колесо.

Итого 12 каналов с периодом 10 мс (так захотелось, могу сделать и 7 и 20),
точность импульсов PWM составляет ±2 мкс, т.е. если должно быть 1520 мкс, то будет от 1518 до 1522,
точность с запасом )
Для каждого канала программируются конечные точки и замедление в миллисекундах.
Уверен, что с Ардуино Вы получаете не больше ± 5-7 мкс.

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

подумал на досуге, мне проще прикрутить экспоненту на рулевое колесо, чем думать как сделать два режима,

А зачем вам то думать об этом? Это все в пульте двойными расходами будет делаться. И экспонента тоже…

boss

(Да и по производительности F401 значительно превосходит любую Мегу, а про количество портов я вообще молчу. В даннос проекте задействовано три таймера, каждый генерирует по 4 PWM сигнала на четырех ногах процессора, сам процессор в этом процессе не участвует)

С этим я согласен на 100%

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

К сожалению серьезно заняться проектом и дописать все что касается “шасси” сегодня не получилось,
но пару часов выкроил и оптимизировал код

  • изменил логику программы в части разделения на подпрограммы.
    В прошлой версии за открытие и закрытие фар, например, отвечала одна подпрограмма, как и за переводы в разные положения закрылков,
    Сейчас разделил эти процессы, для каждой операции теперь своя подпрограмма. По две для фар и створок шасси и три для закрылков.
    Как следствие, стало гораздо проще ловить “баги”.

В рамках новой логики, дописал модули “открытия” и “закрытия” створок шасси, все как положено, с замедлением.
Осталось “нарисовать” - последовательность, “открыть”-“убрать/выпустить”-“закрыть”.

Дел на пару-тройку часов, вместе с “ловлей блох”.
Ну и почистить разные “ляпы” типа того, что если в процессе открытия фар захочется их сразу убрать,
ни хрена не получится, придется дождаться завершения.

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

Абалдеть, я их все таки дописал, я имею в виду два модуля GearUp и GearDown.
Есть косяки, не без этого, завтра вечером постараюсь “подчистить” и сделать видюшку.

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

  • откроет створки,
  • подаст команду на ретракт,
  • подождет.
  • закроет створки.

То же самое касается остальных каналов.

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

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

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

теперь не придется, любой процесс, кроме выпуска/уборки шасси можно повернуть вспять, на любом этапе
думаю, не стоит ли прикрутить “защиту от дурака”, процесс выпуска/уборки шасси нельзя прервать,

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

boss

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

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

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

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

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

“Кина сегодня точно не будет”(с), я поторопился.
где то сидит трабла, не все створки открываются когда надо, будем искать.

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

Дмитрий и еще технический вопрос, пока не начал травить плату, как планируете решить вопрос с питанием фар ?

Планировал для этого использовать Игвовский модуль света. Там несколько выходов на диоды и моргалка. Рулится с канала приемника.
Но можно и на плате задел сделать. Как Вам удобнее.

DmitryK

А пока слайда текущего состояния . Мастер модель внутренней гондолы готова и клеится в разделительную доску.

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

Рулится с канала приемника.

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

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

DmitryK

igva-rc.narod.ru/prd/bano/lma6_1.htm
как-то так, только у меня еще шнурок питания отдельный.

А зачем ей управлять с платы? Рассчитывал просто в выход приемника ее…

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

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

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

проверил, могу прикрутить еще пару каналов PWM и сделать их “сквозными”, т.е. повторяющими каналы аппаратуры.
безо всякого микширования и прочих прелестей.
можно внести еще пару программируемых параметров, номера каналов с аппаратуры на два сервисных канала Секвенсера.
В общем решил, что так надо сделать, пара лишних каналов совсем е лишняя.
Там переместятся на плате уже прописанные каналы, немного подправится код.
Все равно все в комплексе придется проверять )).

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

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

10 каналов. Моторы все на один канал, не вижу смысла в разнотяге.
Пока прикидываю примерно так:
1234 EATR
5 Gear
6 Flaps
7 Ail 2 ? может и одного канала элеронов хватит
8 Фары и свет
9Flaps2
10 рулевое колесо
Собсна это первое, что пришло в голову, может будет и по другому. 9 и 10 каналы через плату расширения, может и вообще без нее все получится сделать.

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

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

в общем, до конца недели сделаю полное тестирование и к выходным буду травить новую плату, крайнюю версию.