Ил-18 Долгий путь к мечте
в принципе “защита от дурака” предусмотрена, до завершения программирования на ретракт вообще не подается никакая команда,
но всякое бывает, вдруг трабла проскочит
- программа не знает в каком положении ретракт
Ну дык я и говорю, что можно начать с открытия створок. Они всяко быстрее откроются, чем нога до них доедет. Но это только мысли вслух. Меня вполне устроит начальноубранное положение.
опять я забыл, что у Вас ретракты на шасси и шасси не могут оказаться в промежуточном состоянии.
в общем для простоты будем считать, что модель всегда разбирается с убранными шасси.
хотя, на самом деле, если инициализируются первыми створки, а потом сделать паузу для завершения отработки ретрактов,
то скорее всего ничего страшного не должно произойти.
про руление носового колесо
- не вижу смысла программировать конечные точки
- достаточно запрограммировать реверс, среднее положение и процент от канала РН.
по крайней мере мне так кажется, всегда можно будет увеличить/уменьшить реакцию на поворота.
среднее положение обязательно, что бы при выпуске проходило соединение с сервой руления
Закончил режим программирования для носового колеса.
В итоге остановился на трех параметрах:
- средняя точка, позиция из которой осуществляется уборка стойки и она же начальная для руления.
- процент реакции от канала РН с аппаратуры, по дефолту стоит 50 процентов, меняется вверх/вниз с шагом 1 за 0,3 секунды. При этом можно смотреть насколько реально будет повернуто носовое колесо, отклоняя стик РН.
- реверс носового колеса, по дефолту стоит 0, т.е. реверс ОТКЛ, любое значение отличное от 0 трактуется как ВКЛ.
так же как в предыдущем пункте можно сразу контролировать направление поворота, при движении стика РН.
Вроде с носовым колесом закончил.
Кроме того, поменял меню на дисплее в режиме программирования, он стало более читабельным.
В общем завтра сделаю видео (сегодня уже нет ни сил ни желания).
Постепенно приближаюсь к самому главному, выпуск/уборка шасси.
Но судя по всему это будет не сложная задача )).
В скором времени придет из Китая мелочевка, новую плату со всеми исправлениями уже нарисовал.
ЗдОрово! Но у моего варианта руления колесом есть один серьезный недостаток. При слишком сильном отклонении сервы нога может выскочить из прорези в качалке. если, например оттриммировать РП после настройки, в крайнем положении стойка может выпасть, а этого бы не хотелось. А ограничить ход - радиус поворота вырастет. Пока не проверял, насколько, но предвижу …
Сначала с минимальным коэффициентом передачи от РН к рулевому колесу, что бы рулилось на взлете и посадке,
после первого полета и тримирования РН в воздухе настраивается среднее положение рулевого колеса,
положение РН и рулевого колеса не зависят одно от другого,
при старте программы она считывает показание канала РН и от этого положения уже пляшет.
суть в том, что после тримирования РН, даже если РН окажется отклонен на 45 градусов,
при следующем включении питания колесо встанет в среднее положение, заданное в программе.
а потом процентами настраивается максимальное отклонение рулевого колеса, при котором “не выпадает”.
И кстати, у тумблера GEAR может быть три положения,
вполне могу прикрутить два режима рулевого колеса руление и взлетный,
во взлетном режиме например отклонение колеса 50 процентов от руления или 60, сколько надо в общем ).
Памяти микроконтроллера пока съедено 18 процентов.
И кстати, у тумблера GEAR может быть три положения,
Да, как-то так будет. Два наверное.
В выходные приступлю к крайнему шагу выпуск-уборка шасси.
Вчера пришла из Китая мелочевка (резисторы, конденсаторы SMD),
сегодня перерисовал плату с учетом выявленных недостатков и переходом на другой камень.
выглядеть будет примерно так.
паять SMD будет тот еще квест )), а их там теперь очень много )
прикольная шайтан коробка получается на ардуине , а самое главное, что можно настраивать без компа.
она не на Ардуине, это на процессоре STM32, Ардуинка не потянула,.
а выпуск/уборка шасси потихоньку продвигаются.
Да, как-то так будет. Два наверное.
подумал на досуге, мне проще прикрутить экспоненту на рулевое колесо, чем думать как сделать два режима,
да еще что бы пилот после посадки не попутал и не убрал ненароком шасси.
У меня ардуина управляет 7 машинками.Если шасси будут убирать машинки, то нужно предусмотреть регулировать скорость уборки, изменение крайних точек и реверса. Режимы можно назначить на передатчике
Если использовать библиотеку Servo для Ардуино и “прикрутить” замедление" и программируемые конечные точки,
то неизбежно возникнут непредусмотренные колебания в процессе перемещения,
проверено на нескольких разных процессорах Атмега.
Как выяснилось, это “особенность” использования библиотекой таймеров.
Это касается в том числе и Арду 2560.
А если писать все самому, то памяти Меги 328 в итоге может и не хватить, сейчас проект занимает 25 килобайт
и это еще не все.
Да и по производительности F401 значительно превосходит любую Мегу,
а про количество портов я вообще молчу ).
В даннос проекте задействовано три таймера, каждый генерирует по 4 PWM сигнала на четырех ногах процессора,
сам процессор в этом процессе не участвует.
Если шасси будут убирать машинки, то нужно предусмотреть регулировать скорость уборки, изменение крайних точек и реверса.
два канала на закрылки,
три канала на фары,
три канала на створки шасси,
три канала на ретракты,
один канал на рулевое колесо.
Итого 12 каналов с периодом 10 мс (так захотелось, могу сделать и 7 и 20),
точность импульсов PWM составляет ±2 мкс, т.е. если должно быть 1520 мкс, то будет от 1518 до 1522,
точность с запасом )
Для каждого канала программируются конечные точки и замедление в миллисекундах.
Уверен, что с Ардуино Вы получаете не больше ± 5-7 мкс.
подумал на досуге, мне проще прикрутить экспоненту на рулевое колесо, чем думать как сделать два режима,
А зачем вам то думать об этом? Это все в пульте двойными расходами будет делаться. И экспонента тоже…
да уж, точно на пенсию пора, очевидные вещи упускаю из виду.
(Да и по производительности F401 значительно превосходит любую Мегу, а про количество портов я вообще молчу. В даннос проекте задействовано три таймера, каждый генерирует по 4 PWM сигнала на четырех ногах процессора, сам процессор в этом процессе не участвует)
С этим я согласен на 100%
К сожалению серьезно заняться проектом и дописать все что касается “шасси” сегодня не получилось,
но пару часов выкроил и оптимизировал код
- изменил логику программы в части разделения на подпрограммы.
В прошлой версии за открытие и закрытие фар, например, отвечала одна подпрограмма, как и за переводы в разные положения закрылков,
Сейчас разделил эти процессы, для каждой операции теперь своя подпрограмма. По две для фар и створок шасси и три для закрылков.
Как следствие, стало гораздо проще ловить “баги”.
В рамках новой логики, дописал модули “открытия” и “закрытия” створок шасси, все как положено, с замедлением.
Осталось “нарисовать” - последовательность, “открыть”-“убрать/выпустить”-“закрыть”.
Дел на пару-тройку часов, вместе с “ловлей блох”.
Ну и почистить разные “ляпы” типа того, что если в процессе открытия фар захочется их сразу убрать,
ни хрена не получится, придется дождаться завершения.
Абалдеть, я их все таки дописал, я имею в виду два модуля GearUp и GearDown.
Есть косяки, не без этого, завтра вечером постараюсь “подчистить” и сделать видюшку.
Кста, заодно решил вопрос с начальным состоянием шасси,
все остальное не сильно принципиально, оно друг от друга не зависит.
При подаче питания на Sequencer, программа выполнит процедуру в соответствии с положением переключателей.
- откроет створки,
- подаст команду на ретракт,
- подождет.
- закроет створки.
То же самое касается остальных каналов.
Дмитрий и еще технический вопрос, пока не начал травить плату, как планируете решить вопрос с питанием фар ?
Может стоит предусмотреть выход, на котором будет сигнал на управление питанием,
а могу вообще на плате поставить MOSFET и сделать управление, ног на процессоре пока хватает.
Фары убираем, питание отключаем, для этого отдельный канал не надо.
Ну и почистить разные “ляпы” типа того, что если в процессе открытия фар захочется их сразу убрать,
ни хрена не получится, придется дождаться завершения.
теперь не придется, любой процесс, кроме выпуска/уборки шасси можно повернуть вспять, на любом этапе
думаю, не стоит ли прикрутить “защиту от дурака”, процесс выпуска/уборки шасси нельзя прервать,
может стоит исключить случайный запуск этого процесса, но пока не придумал, какую ввести зависимость.
как вариант, шасси не будут реагировать на переключатель, если закрылки находятся в убранном положении.
т.е. после взлета, сначала убрать шасси, потом механизацию и наоборот.