- PVSM.RU - https://www.pvsm.ru -
Для получения данных о пространственном положении самолета в полете, а также для информирование о высоте и скоростях разрабатываются пилотажные дисплеи.
Хотелось немного рассказать о разработке такого прибора для небольшого самолета.
Первое, что приходит в голову, когда речь заходит о создании какой-то графической подсистемы - использовать одноплатный ПК и с помощью вычислительных мощностей и видеокарты выводить красивые элементы прибора на дисплей.
Было интересно решить эту инженерную задачу с использованием микроконтроллера семейства esp32-s3, попытать удачу и выжать из него максимум возможного.
На другой случай использовать что-либо мощное с GUI всегда можно позже.
Первоначально был заложен концепт самого прибора с внешний кольцом 80 мм под стандартное отверстие приборной панели.
После моделирования и определения размеров печатной платы внутри и диагонали матрицы дисплея, приступил к проектированию электроники.
До производства и напайки элементов на печатной плате, отладку выполнял через онлайн симулятор

https://wokwi.com/projects/374228486620365825 [1]
Код уже довольно сильно рефакторен и переписан мной под разные платформы, благо он базируется на c-библиотеке TFT_eSPI [2]
Указанная библиотека обладает уникальной возможностью отображать на дисплее графику в виде примитивов - квадраты, круги, треугольники, линии.
Но делает она это в двойном буфере, т.е. холст изображения формируется в буфере микроконтроллера, затем поступает в буфер дисплея.
Благодаря такому фокусу с помощью есп32 с частотой процессора 240 мГц и памятью SDRAM 512 кб, можно отрисовать некоторые элементы графики без мерцания и задержки.
Не смотря на то, что код графической части прибора довольно шустро работает на есп32, некоторые новые приборы были разработаны с использованием ОСРВ [3] freeRTOS.
Сам процесс отрисовки вытекает из концепции библиотеки TFT_eSPI [2], а именно отрисовка элементов прибора "нанизывается" на пустой холст, чем выше в коде элемент, тем он раньше рисуется.

Таким нехитрым способом отрисованы тени на шкале указателя скорости.

Как пример код ниже
// надпись HDG тень
gdraw.setFreeFont(FF5);
gdraw.setTextDatum(MC_DATUM);
gdraw.setTextColor(TFT_BLACK);
gdraw.drawString(hdgUnit, 135, 11, GFXFF);
// надпись HDG
gdraw.setTextColor(TFT_CYAN);
gdraw.drawString(hdgUnit, 136, 12, GFXFF);

Данный проект легко устанавливался на стм32 и дисплей подключенный по SPI, данные с блока AHRS в этом случае поступали через Wi-Fi по UDP.
Для приборов 80 мм данные передаются по шине CAN, наподобие модуля, описанного здесь [4].
Про разработку IMU/AHRS модулей позже будет отдельная статья.
В полете тесты показали довольно яркую картинку, к сожалению камера снимающая в солнечный день считает иначе и изображение затемнено, хотя глазами все видится иначе.
Испытания показали все в динамике.
P.S. Самая холиварная тема авиаторов - прямая и обратная индикации АГ.
Вступать в полемику этих споров не планирую, скажу лишь, что прибор легко переключается с прямой на обратную на выбор.
Да и как показала практика разработок таких приборов, какая там индикация обратная или прямая - не самое сложное в этом процессе.
Обычно в споры про индикацию АГ вступают те, кто не сильно разбирается в пилотировании и авиаприборах.
Помимо этого важны и качество дисплея, его яркость, углы обзора, температурные режимы.
Быстродействие микроконтроллера и быстрота отклика.
И еще много и много других интересных инженерных задач.
Автор: Engineer747
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/grafika/413812
Ссылки в тексте:
[1] https://wokwi.com/projects/374228486620365825: https://wokwi.com/projects/374228486620365825
[2] TFT_eSPI: https://github.com/Bodmer/TFT_eSPI
[3] ОСРВ: https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8
[4] здесь: https://habr.com/ru/articles/885094/
[5] Источник: https://habr.com/ru/articles/891606/?utm_campaign=891606&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.