Введение
Реализация любого проекта зависит от его актуальности. В современном мире важна скорость разработки и внедрения продукта. Наша работа имеет право на существование, так как в ней реализована возможность быстрой модификации алгоритмов управления.
Цель: создать программное обеспечение (ПО) для управления моделью электромагнитной стабилизации спутника.
Этапы:
Изучение возможных способов управления моделью.
Создание ПО для прототипа модели.
Создание ПО для работы с законченным вариантом модели.
Определение основных функций ПО.
Выбор оптимальной среды для создания ПО.
Создание ПО.
Удалённое управление устройством. Коммуникационный интерфейс между устройством и браузером.
Развёртывание файловой системы на модуле.
Определение положения устройства и регулировка его позиции в трёхмерном пространстве.
Вывод.
Изучение возможных способов управления моделью.
Перед тем как начать создавать ПО, мы изучили возможные способы управления моделью. Для прототипа спутника мы выбрали Wi-Fi модуль ESP8266, который может быть запрограммирован и использован для контролирования модели. Для быстрого старта и изучения поведения модели,мы воспользовалисьпрограммой “Blynk”, с помощью которой можно было управлять выходами Wi-Fi модуля напрямую с телефона.
Создание ПО для прототипа модели.
Настроить управление моделью при помощи “Blynk” оказалось очень просто, удобный и понятный интерфейс сделали этот этап не сложным.
Во время сборки модели (приложение 1, рис. 1) мы нашли один минус текущего варианта Wi-Fi модуля – у него было недостаточно выводов (GPIO), поэтому нам пришлось проводить эксперименты с прототипом, используя только две пары катушек. Впрочем, для выявления недостатков модели этого было достаточно. Схема прототипа представлена на рисунке 2 в приложении 1.
Разобравшись с проблемами прототипа, мы приступили к созданию окончательного варианта модели.
Создание ПО.
Определение основных функций ПО.
В конечном варианте модели мы использовали Wi-Fi модульESP – WROOM – 32, который обладал достаточным количеством выводов, чтобы управлять сразу тремя парами катушек. Его вычислительной мощности хватило, чтобы обрабатывать запросы веб-сервера, работу с внутренней файловой системой и производить обработку внешних входов-выходов для считывания данных гироскопа и управления катушками. Далее были обозначены требования к функциям нашего ПО:
Использование платформы Arduino для написания программы.
Веб-сервер. Возможность загрузки html страниц удалённо.
Раздельное ШИМ управление 6 электромагнитами.
Пропорциональное регулирование парами катушек в зависимости от данных с гироскопа.
Выбор оптимальной среды для создания ПО.
ПО мы создавали в среде программирования VisualStudio 2015 (VS 2015) со встроенным плагином VisualMicro, который позволил работать нам с нашим модулем как с Arduino. Создание веб-страниц и их отладка производились в отдельном веб-приложение. Готовые страницы загружались удаленно на устройство. Использовались языки программирования C++ для написания программы модуля ESP32, HTML и JavaScript для создания клиентской части веб-сайта.
Создание ПО.
Удалённое управление устройством. Коммуникационный интерфейс между устройством и браузером.
Wi-Fi модуль был сконфигурирован как точка доступа. В программной части веб-сервера были созданы методы для обработки запросов: загрузка/удаление файлов, статус файловой системы, данные с гироскопа, выставление ШИМ значений на катушках. Для запросов, которые не определены в программе, делается попытка спроецировать их на список файлов, и если такой файл существует, то он выдается как результат запроса.
Развёртывание файловой системы на модуле.
Для создания хранилища файлов на самом Wi-Fi модуле без применения дополнительного оборудования была применена библиотека SPIFFS, которая использовала в качестве хранилища часть объёма микросхемы памяти. Управление файлами осуществляется через веб-страницу (приложение 2, рис. 1). Доступны методы для файлов: удалить, добавить, открыть и отформатировать всё файловое хранилище.
С помощью этой системы мы впоследствии загрузили на плату веб-страницу (приложение 2, рис. 2) с отображением модуля в пространстве, куб который вращался в соответствии с положением реального модуля.
Определение положения устройства и регулировка его позиции в трёхмерном пространстве.
Чтобы осуществить пропорциональное регулирование модели, в качестве датчика положения в пространстве мы использовали гироскоп MPU6050. С его помощью мы практически полностью удалили раскачивание в разные стороны у модели при разворотах.
Так же нами был выявлен минус использования подобного гироскопа в единственном экземпляре. Оказалось, что его диапазон значений ограничен 180 градусами по всем трём плоскостям, и при развороте более 180 градусов, он возвращал некорректные значения.
Для опытного образца мы обозначили 4 позиции. По умолчанию модель смотрит лицевой стороной на нас. Каждая следующая позиция – это поворот по оси X на 90/180 градусов влево или вправо. Такой вариант оказался самым оптимальным при использовании всего лишь одного гироскопа. Законченный вариант модели и его схема изображены в приложении 3, рисунок 1 и 2.
Вывод.
Результатом нашей работы стало ПО, которое позволяет изменять алгоритмы позиционирования модели без необходимости перепрограммирования самого устройства. Всю логику можно прописать в пользовательской веб-странице на JavaScript. Алгоритм работы ПО изображён в приложении 4, рисунок 1.
Литература
Espressif Systems — esp32_hardware_design_guidelines_en.pdf.
Espressif Systems — esp-wroom-32_datasheet_en.pdf.
InvenSense Inc. — MPU-6000-Datasheet1.pdf.
InvenSense Inc. — MPU-6000-Register-Map1.pdf.
Neil Kolban — Kolban's Book on the ESP32 & ESP8266.
Интернет-ресурс Geektimes — статья “ ESP32 и Ардуино”.https://geektimes.ru/post/290205/
Рис. 1. Вид прототипа модели.
Рис. 3. Прототип модели
Приложение 1
Рис. 2. Схема платы управления прототипа.
Рис. 2. Схема платы управления прототипа
Рис. 1. Веб-страница настроек.
Приложение 2
Рис. 2. Вид веб-страницы управления моделью.
Рис. 1. Схема платы управления готового образца.
Рис. 2. Схема платы управления прототипа
Приложение 3
Рис. 2. Готовый образец.
Рис. 6. Готовый опытный образец.
Рис. 1. Алгоритм работы ПО.
Приложение 4
8