Небольшая переделка одного устройства

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Понадобился на легком самолете цифровой компас, какое-то подобие привычному КИ-13.

Чтобы можно было определить направление на истинный север и добавить возможности вносить поправки в магнитное склонение, дабы в случае необходимости летать по ортодромии, да и на вид посовременнее.

Непосредственно в качестве индикатора выбрано довольно интересное устройство для умного дома - круглая шайба, диаметром 58 мм в алюминиевом корпусе с цветным дисплеем.

Само устройство базируется на микроконтроллере ESP32-S3 с 16 мб flash для программ и дисплей 360х360, подключенный по интерфейсу quad SPI.

Также есть довольно приличный ЦАП для проигрывания музыки и возможность осуществлять беспроводное питание устройства от wireless charger, но встроенной АКБ нет.

Последние две "фичи" пока без надобности, возможно их применение в будущем.

Первой задачей было все как-то нарисовать и в поле зрения попала программа EEZ studio, которая довольно тесно интегрирована с графической библиотекой LVGL.

Навыков в отрисовке интерфейсов никогда не было, но есть такое выражение:
fly by the seat of one's pants, что буквально означает действовать наугад, опираясь на ситуацию, а не на опыт.

Поэтому была скачана программа и с ней проведено несколько вечеров, по итогу вышла шкала с секторами и стрелками

Еще около недели ушло на отрисовку непосредственно самого компаса, устранение ошибок в шкалах и наведения красоты

По задумке компас должен иметь возможность отображения как линейной

так и круговой шкалы компаса

Второй задачей было экспортировать код *с файлов из графической программы в устройство, т.е. написать код, скомпилировать его правильно и желательно выполнить отладку.

Экспорт файлов проекта с нужными битмапами и структурой выполняется не сложно, для работы с кодом используется IDE vscode.

Небольшой код проекта, который необходимо собрать и загрузить в устройство

#include "Arduino.h"

#include "scr_st77916.h"

#include <lvgl.h>

#include <ui.h>

void setup()
{
Serial.begin(115200);
scr_lvgl_init();

#if LV_USE_LOG != 0
    lv_log_register_print_cb( my_print ); /* register print function for debugging */
#endif

ui_init();

} // SETUP

void loop()
{
Compass_Widget_TaskInit();

lv_timer_handler(); /* Let the GUI do its work */
delay(5);

} // LOOP

Внутри написана также тестовая программа для инкремента значений градусов, чтобы компас вращался.

Третьей задачей было продумать как из плоской "шайбы" сделать объемный корпус с возможностью крепления в стандартное отверстие приборки 58 мм, как обычно крепятся все круглые авиаприборы.

На алюминиевом корпусе крепилась пластиковая заглушка, ее было решено моделировать в 3Д.

В итоге корпус получился вместительный и легкий

Сразу подумал о методе соединения этого прибора с системой - шина CAN 2.0, которую реализуем на микросхеме приемо-передатчика SN65HVD230D, с рабочим напряжением 3.3 вольта.

Осуществить подключение данной микросхемы к плате есп32 не простая задача, учитывая, что почти все GPIO на плате заняты каким-либо функционалом.

Вооружившись мультиметром и лупой началось изучение схемы и печатной платы

Свободными были назначены пины GPIO21 и GPIO18, но чтобы не было влияния на микросхемы ЦАП на базе PCM5100APWR, выпаял пару сопротивлений

Корпус был напечатан на 3Д принтере и подогнал под алюминиевый, смонтирован 5-ти контактный быстросъемный разъем для CAN шины и для питания устройства

Для связи прибора с датчиками и системами на самолете разработан небольшой can-концентратор, позволяющий собирать данные из шины CAN или например получать их из полетного симулятора FlightGear

О конструкции концентратора шины CAN и получении данных из симулятора полетов будет позже отдельная статья.

Помимо отрисовки виджетов компаса, сделано несколько версий для прибора отображения воздушных параметров - воздушной и вертикальной скорости, а также высоты.

Примерно так это все выглядит

В планах написать о каждом этапе более подробно позднее и спасибо за внимание

Источник: https://habr.com/ru/articles/873898/


Интересные статьи

Интересные статьи

Всем привет! Меня зовут Денис, я тимлид команды дизайна в DLS и ревьюер на курсах «Дизайнер интерфейсов» и «Дизайн мобильных и кросс-платформенных приложений» в Яндекс Практикуме.Я управлял командами ...
Компания “Волжское пароходство” —  это больше 3 тысяч сотрудников, часть из которых используют Битрикс24 во время перевозок. По пути следования судна интернет не везде стабильный, поэтому нужен б...
Всем доброго времени суток. Мы решили описать построение отказоустойчивой инфраструктуры для bitrix в рамках серии статей, и сегодня публикуем первую часть. Вариант, который мы будем описывать, - не и...
Настройка любой площадки для CMS — это рутинный процесс, который должен быть доведен до автоматизма в каждой уважающей себя компании. А потому частенько воспринимается, как восход солнца — это происхо...
Продолжаем выискивать достойное русского глаза в блоге Krebs on Security. Интерес наш привлёк текст про вирусы-вымогатели. Ransomware – настоящий бич как для компани...