# Темы ВКР - [Как пополнять этот список](#как-пополнять-этот-список) - [Список тем](#список-тем) - [nginx asgi module](#nginx-asgi-module) - [FBD web-редактор](#fbd-web-редактор) - [Генератор кода форм и их обработчиков на ESP32](#генератор-кода-форм-и-их-обработчиков-на-esp32) - [Firmware OTA server](#firmware-ota-server) - [Проекты в исполнении](#проекты-в-исполнении) - [Расширение для VS Code: редактор форм tkinter](#расширение-для-vs-code-редактор-форм-tkinter) - [Программное обеспечение для мультиметра на базе модуля ESP32](#программное-обеспечение-для-мультиметра-на-базе-модуля-esp32) - [python-rsync](#python-rsync) - [Выполненные проекты](#выполненные-проекты) - [Мультиметр на базе модуля ESP32](#мультиметр-на-базе-модуля-esp32) В данном репозитории будут находится темы выпускных квалификационных работ для студентов Института математики и информационных систем. Для того, чтобы взять тему ВКР необходимо написать письмо в свободной форме на email usr22772@vyatsu.ru или связаться с кафедрой [САУ](https://www.vyatsu.ru/studentu-1/nauka-i-praktika/favt-2/kafedra-avtomatiki-i-telemehaniki-1.html.html). Некоторые темы имеют коммерческий характер, некоторые являются вкладом в свободное ПО и позволят выйти на мировой уровень. ## Как пополнять этот список Можно воспользоваться одним из методов, приведённых ниже. 1. В виде PR 1. Форкнуть репозиторий. 2. Внести изменения. 3. Выполнить Pull request 2. Написать на email usr22772@vyatsu.ru 3. Создать issue в этом репозитории. 4. Связаться с кафедрой [САУ](https://www.vyatsu.ru/studentu-1/nauka-i-praktika/favt-2/kafedra-avtomatiki-i-telemehaniki-1.html.html). ## Список тем ### nginx asgi module Цель: интегрировать интерпретатор python в HTTP-сервер [NGINX](https://nginx.org/ru/) для выполнения [ASGI](https://asgi.readthedocs.io/en/latest/)-совместимых проектов для сокращения времени ответа и уменьшения расхода RAM. ASGI - интерфейс обращения к python-вебсервисам, python-фреймворкам, способным работать асинхронно. Например, [Django](https://www.djangoproject.com/). План действий: 1. Обзор и изучение. 1. Изучить язык программирования python. Изучить виртуальные окружения python. 2. Изучить язык программирования C. 3. Изучить протокол HTTP. 4. Сконфигурировать nginx сервер на Linux машине (можно и виртуальной) для отдачи статических файлов. 5. Создать простой проект Django. 6. Сконфигурировать nginx сервер и gunicorn сервер для доступа к Django проекту. 7. Скомпилировать nginx проект из исходных кодов. 8. Создать простой плагин для nginx 2. Реализовать плагин nginx, интегрирующий интерпретатор python. Тема может быть выполнена одним человеком, коллективом из двух-трёх человек. ### FBD web-редактор Цель: реализовать редактор FBD (Function Block Diagram) стандарта IEC 61131 (раздел [IEC 61131-3](https://ru.wikipedia.org/wiki/IEC_61131-3)). FBD используются в промышленной автоматизации для визуального программирования. План действий: 1. Обзор. 1. IEC 61131-3 и промышленная автоматизация. 2. SVG и другие графические форматы построения диаграмм. 3. XML и возможность его расширения. 4. Существующие графские редакторы диаграмм. 2. Реализация. 1. Расширение SVG-формата. Добавление метаданных блоков. 2. Доработка редактора диаграмм до расширенного SVG-формата. ### Генератор кода форм и их обработчиков на ESP32 Цель: автоматизировать разработку веб-приложений для проектов на базе микроконтроллеров. Большинство проектов на базе модулей ESP32 и подобных имеют встроенные веб-приложения для конфигурирования этих устройств. Всякий микроконтроллер обладает относительно небольшим количеством вычислительных ресурсов и памяти, что не позволяет использовать интерпретаторы типа python и php. В настоящее время требуется написание отдельно веб-приложения и отдельно обработчиков запросов от этого веб-приложения на языке Си. Необходимо разработать такой инструмент, который позволит составить список форм, присутствующих на странице конфигурации, сгенерирует код валидации форм на языке Си на стороне микроконтроллера. ### Firmware OTA server Цель: реализовать Over-the-air update сервер для хранения, версифицирования и раздачи прошивок (программа для контроллеров, устройств) Промышленные станки, умные чайники да и всё, что имеет вычислительные узлы нуждаются в обновлении программного обеспечения на борту. Один из простых способов доставки ПО является OTA. Такой сайт имеет несколько требований: 1. Сохранение поступащих файлов с прошивой и метаданными после сборки. 2. Визуализация информации о всех поступивших прошивках. 3. Отображение информации о времени обращения к фалам прошивки от конкретного устройства. ## Проекты в исполнении ### Расширение для VS Code: редактор форм tkinter Цель: создать визуальный редактор форм для python-приложений, использующих tkinter для создания форм. Язык разработки Python является широкораспространённым. Сам интерпретатор Python часто поставляется с модулем tkinter, предназначенным для создания GUI. Визуальных редакторов форм вообще не много, как правило они поставляются в составе какой-нибудь тяжёлой IDE типа Visual Studio или RAD Studio (когда-то Delphi 7). Необходимо разработать расширение для VS Code, где с помощью drag-and-drop можно быстро создавать формы. ### Программное обеспечение для мультиметра на базе модуля ESP32 В 2023 студентом кафедры САУ в качестве ВКР было разработано устройство (схемотехника + трассировка + изготовление + пайка). Мультиметр двуканальный с диапазоном измерений -30В…+30В. Цель: написать ПО для мультиметра на базе модуля ESP32: 1. встроенное ПО (прошивка) ESP32 модуля. Получение значений напряжения, веб-сервер, передача значений напряжения веб-приложению через WiFi или USB. 2. Веб-приложение, которое является индикатором напряжения. Возможно построение графиков напряжений, построение графиков, где оси X и Y - оба канала мультиметра. Работа может быть выполнена двумя студентами. ### python-rsync Утилита копирования файлов аналогичная rsync ## Выполненные проекты ### Мультиметр на базе модуля ESP32 Разработано устройство "Мультиметр на базе модуля ESP32": выполнена разработка схемотехники устройства, трассировка устройства, изготовление устройства на производстве Резонит (город Зеленоград, Московская область). Устройство имеет два канала измерения с диапазоном от -30 до 30 вольт с частотой выборки 10’000 семплов в секунду. Написано простейшее программное обеспечение для устройства.