Навигация под рукой: 01 - постановка задачи.
Я каким-то странным образом потерял контроль над каналом в телетайпе, который был привязан к каналу в ТГ. Я попытался его восстановить - и в итоге создался новый, личный. Как это теперь исправить - я не знаю. Но тот всё равно никто не читал. Но нет, сейчас не об этом.
Garmin 530. Ночной кошмар для новичка (чего только стоит набор текста "крутилкой"), но незаменимый инструмент для пилота, который эту железку осилил. Сначала все эти бесконечные странички и настройки сбивают с толку, но со временем становится непонятно, как вообще можно было без этого навигатора жить. И маршрут можно построить, и процедуру загрузить, а если поднапрячься, то он и топливо посчитает, и точку снижения подскажет, и много чего ещё. А сейчас, когда я получаю свой Instrument Rating, это чуть ли не первый мой друг в кокпите. Возможно, после базового six-pack приборов, но об этом как-нибудь потом.
Разработчики авиасимуляторов тоже не отстают. Конечно, научиться летать на компьютере практически невозможно (об этом серия последних нескольких эпизодов моего подкаста, кстати), то процедуры точно можно гонять. И я этим активно пользуюсь. Разработчики MSFS (говорят, Xplane тоже, но я им совсем не пользуюсь) сделали всё возможное, чтобы работа навигационного модуля была приближена к поведению реального. Базовые функции точно реализованы, что приятно. Но у такой реализации есть свои минусы.
Главная проблема в том, что тыкать в кнопочки и крутить крутилочки приходится мышкой. И это крайне неудобно. Я уже настолько привык работать на реальной GPS-ке руками, что вот эти вот выкрутасы с мышью ломают весь кайф и заметно замедляют ввод очередной процедуры или плана полёта. Хочется крутить рукой и ещё сильнее приблизиться к реальным ощущениям. И это удобно, прежде всего. А главное - это возможно. Но, как водится, не всё так просто. И первые вилы в том, что все эти кнопочки и... как это по-русски? Rotary encoders. Короче, тычки вот эти. Их нельзя назначить на кнопки и крутилки какого-нибудь джойстика - такого пункта просто нет в настройках игры.
Как водится, дотошные айтишники и прочие энтузиасты уже нашли решение и написали свой прослойки между внешними устройствами ввода и симулятором, чтобы управлять GPS-кой с помощью внешнего девайса. И даже девайсы такие есть. Но проблема в том что они дорогие. А дорогие они по двум причинам. Во-первых, симмеры часто гонятся за аутетичностью ,а потому реализуют девайс "как есть". То есть - с экраном и обратной связью. А для моих задач это избыточно - экран есть в игре, мне бы удобные кнопочки под руку. Готовых решений с кнопочками я не нашёл. А вторая проблема - закрытость. Товарищи, которые продают готовые внешние макеты, прошивают их какой-то специфической прошивкой и поставляют в комплекте с готовым приложением. И оно закрытое. Его нельзя ни почитать, ни использовать. Не Open Source, короче. Я понимаю, зачем они это делают, но от этого не легче. В итоге на рынке появляются качественные эмуляторы навигаторов, которые мне не нужны.
И тут мы попадаем в увлекательный и безграничный мир DIY. Сделай сам, короче. И тут тоже не всё так просто. Большинство энтузиастов ваяют модули в единичном экземпляре для себя, хвалятся ими в интернетах и всё. Второго такого нет. Он стоит не так много, но он не существует. При этом, многие шарят свои скетчи, схемы и даже модели для печати корпусов и кнопок на 3Д-принтере. Полный набор. Но это, во-первых, довольно сложно, а во-вторых, избыточно. Опять. В смысле, для моих целей. Они снова все с экранами. Мне не нужна аутентичность - только функциональность.
И я решился. Если ни у кого нет того, Что мне нужно, придётся создать это самому. Проблема в том, что я никогда этого не делал. Я не имел дела с Arduino. Да, наступает эра нейросетей, а я на Вы с микроконтроллерами. Я не умею паять. Некогда гитарист, я мог набросать припоя в гитарный джек, чтобы он не отвалился при первой же возможности, но на этом мои полномочия заканчиваются. Я не знаю C++, а это, как я пока что понимаю, самый короткий путь к программированию Ардуинок и их клонов. В теории можно "прикрутить" к этой истории Python, с которым я, вроде как, знаком по работе, но там ожидаются некоторые танцы с бубном, что, кажется, проще подтянуть базовые "плюсы". Но это меня не пугает. Я посчитал выгоду (не учитывая жопо-часы на обучение, прототипирование и изготовление), предвкусил эстетическое удовольствие от удобства и заказал первые компоненты.
Если я не брошу проект и/или не брошу о нём писать, в следующем лонгриде я опишу требования к девайсу, поделюсь успехами и проблемами, а также похвалюсь прототипом. Даже двумя. Спойлер - они работают. Пока не так, как мне хочется, но уже понятно... Так я уже лезу в следующую статью.