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

в 14:15, , рубрики: diy-проекты, авиация, микроконтроллеры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#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 мм, как обычно крепятся все круглые авиаприборы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: Engineer747

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js