Сезон активного летания над полями в этом году пришел к завершению, посему появилась возможность вернуться к теме автопилота.
Тема страшная, если о ней думать, но если планомерно и настойчиво делать - то как-то легче
Так получается, что углубляться в данный проект получается только ближе к зиме, когда никому ничего особо не нужно (нужно начинается весной, капец как срочно нужно прямо перед сезоном, ну и вааще! - это когда сезон уже начался).
Собственно, вот что на моем рабочем столе в данный момент:
На дальнем плане - центральный блок управления с полетным контроллером, системами питания, парой информационных дисплеев, разными прочими микроконтроллерами... и много с чем еще. Скомпоновано довольно плотно, и сделано самодостаточным: может работать и отключенным от системы питания и управления самолетом (иногда это очень нужно).
На переднем плане - модули управления сервоприводов.
Нужны потому, что это не для авиамодели делается, а для аппарата, у которого расстояние от полетного контроллера до сервоприводом исчисляется не сантиметрами, а метрами.
То есть, о том, чтобы передавать на эти метры обычный ШИМ сигнал, можно даже не думать.
Поэтому управляющие сигналы от полетного контроллера перехватываются отдельным устройством, встроенным в центральный блок, декодируются, переводятся в промышленный формат передачи данных RS485, который позволяет стабильно осуществлять связь на расстоянии в сотни метров, передается по витой паре на модули управления сервоприводами, где раскодируются и переводятся в ШИМ.
Передаются данные не по одному каналу, а по двум независимым каналам. Если одна из линий связи почему-то перестает работать, происходит автоматическое переключение на вторую линию. Конечно, при включении системы будут автоматически протестированы все линии связи, поэтому это только на случай, если что-то оборвется во время полета.
Если вообще какой-то модуль управления сервоприводами не сможет получить данные ни по одному из каналов связи, то он подождет секундочку и выставит сервопривод в заранее определенное в программе положение (если это один из рулей, то в нейтраль, если газ - то на высокое положение по газу, если тормоза для рулежки - то в разблокированное состояние, ну и так далее).
То же самое можно сделать и умышленно, с помощью тумблера на приборной панели (при наличии пилота в летательном аппарате), при этом автоматика не будет управлять рулями и прочим хозяйством, а все будет пилотироваться в обычном ручном режиме, интеллектуальными и мускульными силами пилота.
Сам полетный контроллер при этом не будет отключен или перезагружен.
По возможности, всё дублируется: связь, питание, все соединения.
Некоторые вещи присутствуют не в двойном количестве, а в большем: компасов тут минимум три, барометрических высотомеров тоже вроде три, акселерометров и гироскопов тоже...
GPS один пока, но весьма матёрый, с RTK - это такая система, которая позволяет позиционировать аппарат по всем трем координатам с точностью до сантиметров.
ПВД в единственном экземпляре (подключение второго не предусмотрено разработчиками полетного контроллера, но если нужно, поставлю промежуточный контроллер, напишу прошивочку, и воткну хоть 10 штук).
Лазерный высотомер тоже один предполагается. Потребуется больше - сделаю, как написал в предыдущем абзаце.
Пока что полетный контроллер получает основные команды обычным "беспилотным" способом - через радиоканал с наземной станцией (вернее, через 2 отдельных радиоканала), но, возможно, и тут сделаю "контроллер - перехватчик", чтобы команды шли не сразу в полетный контроллер, а через этот дополнительный модуль. Это позволит пилоту в самолете (или какому-то оператору в соседнем кресле) управлять аппаратом так, как будто он на земле с пультом радиоуправления находится. Ну и переключать режимы полетов можно будет прямо на приборной панели в летящем самолете: там, режим круиз-контроля, поддержание высоты, полет по маршруту, возврат домой, автоматическая посадка... ну, всё такое.
Работы капец как много, но зима длинная)