Ил-18 Долгий путь к мечте
В выходные приступлю к крайнему шагу выпуск-уборка шасси.
Вчера пришла из Китая мелочевка (резисторы, конденсаторы 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 и сделать управление, ног на процессоре пока хватает.
Фары убираем, питание отключаем, для этого отдельный канал не надо.
Ну и почистить разные “ляпы” типа того, что если в процессе открытия фар захочется их сразу убрать,
ни хрена не получится, придется дождаться завершения.
теперь не придется, любой процесс, кроме выпуска/уборки шасси можно повернуть вспять, на любом этапе
думаю, не стоит ли прикрутить “защиту от дурака”, процесс выпуска/уборки шасси нельзя прервать,
может стоит исключить случайный запуск этого процесса, но пока не придумал, какую ввести зависимость.
как вариант, шасси не будут реагировать на переключатель, если закрылки находятся в убранном положении.
т.е. после взлета, сначала убрать шасси, потом механизацию и наоборот.
Такой вопрос, при первом включении как определяется в каком положении находятся шасси? Почему спрашиваю на на ардуине пришлось поставить микрик ,что бы шасси не выломали створки.
там все просто, при включении питания регистры таймеров хранящие длительность импульса для ретракта содержит 0.
в результате ретракт стоит в том положении в котором был, а это либо выпущено, либо убрано.
перед входом в основной цикл производится инициализация всех выходов на сервоприводы.
в зависимости от положения тумблера шасси запустится одна из процедур “выпуск шасси”/“уборка шасси”,
сначала откроются створки, а потом запишется значение в регистры таймеров для ретрактов.
и после отработки ретрактов, створки опять закроются.
“Кина сегодня точно не будет”(с), я поторопился.
где то сидит трабла, не все створки открываются когда надо, будем искать.
Трабла выявлена и купирована.
“Кина будет завтра”(с)
Дмитрий и еще технический вопрос, пока не начал травить плату, как планируете решить вопрос с питанием фар ?
Планировал для этого использовать Игвовский модуль света. Там несколько выходов на диоды и моргалка. Рулится с канала приемника.
Но можно и на плате задел сделать. Как Вам удобнее.
Рулится с канала приемника.
пока, чисто технически, без серьезной доработки платы могу на нее прикрутить еще пару каналов PWM,
а может даже три получится,
и в программу добавить управление этими каналами через SBus, свободными (если такие еще есть) каналами.
в общем надо знать, что и как управляет Игвой.
igva-rc.narod.ru/prd/bano/lma6_1.htm
как-то так, только у меня еще шнурок питания отдельный.
А зачем ей управлять с платы? Рассчитывал просто в выход приемника ее…
а сколько выходов на приемнике, их Вам точно хватит ?
у Вас же одних моторов четыре штуки, или все на один канал будут ?