Skip to content

Графический интерфейс на Kivy для управления мобильными платформами (гусеничными) через UDP. Поддержка джойстика.

Notifications You must be signed in to change notification settings

dakolzin/pub_remote_controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Графический интерфейс для управления машиной смерти и Т21-Л58 (черная платформа)

view

Оглавление

Цель

Целью данной работы являлась разработка графического приложения для управления платформами (для демонстрации их работоспособности без дальнейшего применения...).

Версия операционной системы и необходимые зависимости

Параметр Значение
Версия операционной системы любая куда можно поставить python и kivy
Зависимости
pip install kivy==2.1.0

Демонстрация взаимодействия с мобильной платформой

Демонстрация

Установка

Сначала необходимо создать рабочее пространство:

mkdir -p GUI

После этого скачать репозиторий:

cd GUI

git clone ssh://git@git.robotic.net:3001/PodkolzinDD/remote-controller.git

Kivy и составляющие

Что такое Kivy?

Kivy — это открытая библиотека для Python, предназначенная для разработки мультиплатформенных приложений с графическим интерфейсом пользователя (GUI). Основные особенности Kivy включают поддержку мультитач-ввода, использование нативных элементов управления, а также возможность создавать приложения, работающие на Windows, macOS, Linux, Android и iOS с минимальными изменениями в коде.

Структура репозитория

В данном проекте используется Kivy для создания интерфейса управления мобильной платформой на гусеницах. Проект состоит из трёх основных компонентов.

  • KV файлы: Kivy позволяет выносить описание графического интерфейса в отдельные файлы с расширением .kv. Это делает код более читаемым и упрощает разработку интерфейса. Описание интерфейса включает в себя расположение виджетов, их свойства и реакции на действия пользователя.

  • Скрипты Python (например, JoystickDemo.py): содержат логику приложения, включая определение классов для виджетов, обработку событий от пользовательского интерфейса, управление состоянием приложения и взаимодействие с внешними устройствами или сервисами. Код описывает, как данные с джойстика преобразуются в команды управления для мобильной платформы, а также включает настройку сетевых соединений для отправки команд на платформу.

  • Репозиторий для отрисовки джойстика (joystick): вспомогательная библиотека или модуль, который обеспечивает интеграцию джойстика в графический интерфейс приложения. Этот компонент отвечает за визуализацию джойстика, обработку ввода пользователя и преобразование движений джойстика в данные, которые могут быть использованы в логике приложения.

Основные компоненты.

  • JoystickDemoApp (класс приложения): это главный класс приложения, наследующий от класса App библиотеки Kivy. В его методе build создается и возвращается экземпляр корневого виджета, который является основой графического интерфейса приложения.

  • JoystickDemo (корневой виджет): этот класс унаследован от FloatLayout, что позволяет свободно размещать дочерние виджеты внутри него. В нём определены методы для обработки событий пользовательского интерфейса, таких как нажатия на кнопки, перемещения слайдеров и взаимодействие с джойстиком. Здесь же задаются свойства, которые отслеживают состояния управления мобильной платформой.

  • Обработка ввода джойстика: в методе _update_pad_display класса JoystickDemoApp происходит обработка ввода с джойстика и обновление угловой и линейной скорости мобильной платформы. Это ключевая часть управления платформой, где основываясь на данных с джойстика, вычисляются значения скоростей для дальнейшей отправки на мобильную платформу.

  • Сетевое взаимодействие: проект включает работу с сетью через UDP-сокеты для отправки данных управления на мобильную платформу. Используется Python-сокеты для отправки сообщений, сформированных на основе ввода пользователя, на заданный IP-адрес и порт.

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

About

Графический интерфейс на Kivy для управления мобильными платформами (гусеничными) через UDP. Поддержка джойстика.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published