Ил-18 Долгий путь к мечте
(Да и по производительности F401 значительно превосходит любую Мегу, а про количество портов я вообще молчу. В даннос проекте задействовано три таймера, каждый генерирует по 4 PWM сигнала на четырех ногах процессора, сам процессор в этом процессе не участвует)
С этим я согласен на 100%
К сожалению серьезно заняться проектом и дописать все что касается “шасси” сегодня не получилось,
но пару часов выкроил и оптимизировал код
- изменил логику программы в части разделения на подпрограммы.
В прошлой версии за открытие и закрытие фар, например, отвечала одна подпрограмма, как и за переводы в разные положения закрылков,
Сейчас разделил эти процессы, для каждой операции теперь своя подпрограмма. По две для фар и створок шасси и три для закрылков.
Как следствие, стало гораздо проще ловить “баги”.
В рамках новой логики, дописал модули “открытия” и “закрытия” створок шасси, все как положено, с замедлением.
Осталось “нарисовать” - последовательность, “открыть”-“убрать/выпустить”-“закрыть”.
Дел на пару-тройку часов, вместе с “ловлей блох”.
Ну и почистить разные “ляпы” типа того, что если в процессе открытия фар захочется их сразу убрать,
ни хрена не получится, придется дождаться завершения.
Абалдеть, я их все таки дописал, я имею в виду два модуля GearUp и GearDown.
Есть косяки, не без этого, завтра вечером постараюсь “подчистить” и сделать видюшку.
Кста, заодно решил вопрос с начальным состоянием шасси,
все остальное не сильно принципиально, оно друг от друга не зависит.
При подаче питания на Sequencer, программа выполнит процедуру в соответствии с положением переключателей.
- откроет створки,
- подаст команду на ретракт,
- подождет.
- закроет створки.
То же самое касается остальных каналов.
Дмитрий и еще технический вопрос, пока не начал травить плату, как планируете решить вопрос с питанием фар ?
Может стоит предусмотреть выход, на котором будет сигнал на управление питанием,
а могу вообще на плате поставить MOSFET и сделать управление, ног на процессоре пока хватает.
Фары убираем, питание отключаем, для этого отдельный канал не надо.
Ну и почистить разные “ляпы” типа того, что если в процессе открытия фар захочется их сразу убрать,
ни хрена не получится, придется дождаться завершения.
теперь не придется, любой процесс, кроме выпуска/уборки шасси можно повернуть вспять, на любом этапе
думаю, не стоит ли прикрутить “защиту от дурака”, процесс выпуска/уборки шасси нельзя прервать,
может стоит исключить случайный запуск этого процесса, но пока не придумал, какую ввести зависимость.
как вариант, шасси не будут реагировать на переключатель, если закрылки находятся в убранном положении.
т.е. после взлета, сначала убрать шасси, потом механизацию и наоборот.
Такой вопрос, при первом включении как определяется в каком положении находятся шасси? Почему спрашиваю на на ардуине пришлось поставить микрик ,что бы шасси не выломали створки.
там все просто, при включении питания регистры таймеров хранящие длительность импульса для ретракта содержит 0.
в результате ретракт стоит в том положении в котором был, а это либо выпущено, либо убрано.
перед входом в основной цикл производится инициализация всех выходов на сервоприводы.
в зависимости от положения тумблера шасси запустится одна из процедур “выпуск шасси”/“уборка шасси”,
сначала откроются створки, а потом запишется значение в регистры таймеров для ретрактов.
и после отработки ретрактов, створки опять закроются.
“Кина сегодня точно не будет”(с), я поторопился.
где то сидит трабла, не все створки открываются когда надо, будем искать.
Трабла выявлена и купирована.
“Кина будет завтра”(с)
Дмитрий и еще технический вопрос, пока не начал травить плату, как планируете решить вопрос с питанием фар ?
Планировал для этого использовать Игвовский модуль света. Там несколько выходов на диоды и моргалка. Рулится с канала приемника.
Но можно и на плате задел сделать. Как Вам удобнее.
Рулится с канала приемника.
пока, чисто технически, без серьезной доработки платы могу на нее прикрутить еще пару каналов PWM,
а может даже три получится,
и в программу добавить управление этими каналами через SBus, свободными (если такие еще есть) каналами.
в общем надо знать, что и как управляет Игвой.
igva-rc.narod.ru/prd/bano/lma6_1.htm
как-то так, только у меня еще шнурок питания отдельный.
А зачем ей управлять с платы? Рассчитывал просто в выход приемника ее…
а сколько выходов на приемнике, их Вам точно хватит ?
у Вас же одних моторов четыре штуки, или все на один канал будут ?
проверил, могу прикрутить еще пару каналов PWM и сделать их “сквозными”, т.е. повторяющими каналы аппаратуры.
безо всякого микширования и прочих прелестей.
можно внести еще пару программируемых параметров, номера каналов с аппаратуры на два сервисных канала Секвенсера.
В общем решил, что так надо сделать, пара лишних каналов совсем е лишняя.
Там переместятся на плате уже прописанные каналы, немного подправится код.
Все равно все в комплексе придется проверять )).
а сколько выходов на приемнике, их Вам точно хватит ?
у Вас же одних моторов четыре штуки, или все на один канал будут ?
10 каналов. Моторы все на один канал, не вижу смысла в разнотяге.
Пока прикидываю примерно так:
1234 EATR
5 Gear
6 Flaps
7 Ail 2 ? может и одного канала элеронов хватит
8 Фары и свет
9Flaps2
10 рулевое колесо
Собсна это первое, что пришло в голову, может будет и по другому. 9 и 10 каналы через плату расширения, может и вообще без нее все получится сделать.
поправил плату и программу, теперь есть три сквозных канала,
в принципе моторы можно будет подключить, что бы не паять тройник.
какие выбрать будет настраиваться в режиме программирования, можно даже все три на канал газа повесить )).
закрылки уже реализованы в Секвенсере, все равно им надо замедление.
руление носовым колесом тоже есть, как и перевод в среднее положение при уборке шасси.
в общем, до конца недели сделаю полное тестирование и к выходным буду травить новую плату, крайнюю версию.
пока с видео никак не срастается.
в процессе тестирования выявлен не сильно критичный, но очень неприятный баг,
на десятой минуте “полета” произошел самопроизвольный выпуск шасси.
справедливости ради, они сами убрались, но момент все таки неприятный.
причину уже установил, но пока никак не могу придумать способ его “купирования”.
“трабла” с самопроизвольным выпуском шасси “купирована”,
заодно введен дополнительный контроль состояния каналов управления,
теперь реакция на смену состояния канала будет только через пол секунды после появления управляющего сигнала.
сейчас думаю над уменьшением времени задержки, возможно до 0,2 секунды,
теоретически это позволит избежать ошибочного срабатывания в случае сбоя обмена данными с приемником
или появления помехи.
также поэкспериментировал с пайкой SMD по средством строительного фена и низкотемпературной паяльной пасты.
скажем так, в очках я эти резисторы даже вижу ))
Дмитрий, разрешите доложить, софт закончен, тестирование проведено в полном объеме.
На днях, а может раньше протравлю плату, проведу паяльно-лудильные работы,
проведу тестирование на новой основной плате и останется дождаться из Китая ЖК дисплей.
На плате развел три дополнительных канала, выбор номеров каналов добавлен в режим программирования.
Подключение питания на Секвенсер возможно как через SBus от приемника,
так и от отдельной батарейки, в этом случае следует удалить красный провод из шлейфа SBus.
Завтра постараюсь сделать видео и выложу его для обсуждения и внесение “мелких” правок.
А потом отправится сие изделие к Вам ), для тестирования на модели … ну или рядом с ней )
- остался маленький вопрос, надо ли предусмотреть выпуск шасси в случае если Секвенсер ,
по какой то причине, перестанет видеть данные на SBus ? Ну например отвалился проводок.
Геннадий, огромное спасибо за проделанный титанический труд 😃
- по какой то причине, перестанет видеть данные на SBus ? Ну например отвалился проводок.
Мне кажется нужно ввести задержку на выпуск. Если в течении н ного количества тактов времени сигнал не появился, тада выпускаем.
А как обычно ведет себя приемник при неустойчивом сигнале? Сбас держит последние значения до включения ФС?