В программе PCB пакета P-CAD 2004 были разведены платы управления и аттенюатора.
Рис. 7. Плата управления и плата аттенюатора
Конечным результатом разработки устройства является сборка плат и элементов платы в корпус.
Рис. 8. 3D модели платы управления и платы аттенюатора (вид сверху)
Список литературы:
1. P-CAD 2004. - СПб.: БХВ-Петербург, 2006 - 560 с.: ил.
2. Тремблей Т. Autodesk Inventor 2013 и Inventor LT 2013. Основы. Официальный учебный курс / Пер. с англ. Л. Талхина. - М.: ДМК Прес , 2013. -344 с.: ил.
АРХИТЕКТУРА ПРОГРАММНОГО КОМПЛЕКСА ПОСТРОЕНИЯ МОДЕЛИ ЗАКРЫТОГО РЕЛЬЕФА С ИСПОЛЬЗОВАНИЕМ ГУСЕНИЧНОГО РОБОТА
© Дрожжин Р.С.*, Копелиович Д.И.Ф
Брянский государственный технический университет, г. Брянск
Описана структура функциональных связей программного комплекса взаимодействия гусеничного робота, андроид-устройства и персо-
* Магистрант кафедры «Компьютерные технологии и системы».
* Доцент кафедры «Информатика и программное обеспечение».
нального компьютера. Представлены возможности программного комплекса по построению модели рельефа.
Ключевые слова робот, рельеф, Arduino, Android.
Существует множество средств для построения рельефа, но все они базируются на компьютерном зрении, либо на непосредственном активном участии человека. Целью работы служит построение графической модели закрытого рельефа с использованием роботизированной системы. Закрытый рельеф - это рельеф, который может быть исследован только на «ощупь», т.е. с применением датчиков и прочих аппаратных средств.
Программную часть можно разделить на три составляющих, вытекающих из архитектуры программной системы.
Программирование микроконтроллерной платы будет проводиться на языке Processing I Wiring в IDE, поддерживаемой компанией Arduino и носящей одноименное название. Интегрированная среда разработки Arduino -это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату.
Для разработки приложения под Android и приложения для ПК удаленного управления роботом, использовался Eclipse IDE, а разработка велась на языке программирования Java. Eclipse - свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation.
Eclipse JDT (Java Development Tools) - наиболее известный модуль, нацеленный на групповую разработку: среда интегрирована с системами управления версиями - CVS, GIT в основной поставке, для других систем (например, Subversion, MS Source Safe) существуют плагины. Также предлагает поддержку связи между IDE и системой управления задачами (ошибками). В основной поставке включена поддержка трекера ошибок Bugzilla, также имеется множество расширений для поддержки других трекеров (Trac, Jira и др.). В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений.
Для разработки приложения для ПК использовался, описанный выше модуль JDT и GUI-библиотека Swing, поэтому приложение кроссплатфор-менно и выглядит одинаково на всех ОС.
Приложение под мобильное устройство написано с использованием модуля ADT (Android Development Tool) для Eclipse. Разработка в Eclipse, используя плагин ADT - это рекомендуемый Google и самый быстрый путь для разработчика быстро приступить к программированию под Android. Он обладает богатым инструментов для разработки и широкими возможностями отладки на устройстве.
Языком разработки приложения ПК не случайно выбран Java. Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) - программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.
Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина [1].
Основы работы робота для построения модели рельефа представлены в [2].
Для понимания алгоритмической составляющей необходимо рассмотреть архитектуру программного комплекса более детально и с точки зрения программной реализации. На рис. 1 представлена архитектура с точки зрения программной реализации, которая позволит проанализировать каждую из программных частей в отдельности, а также позволяет выделить математический модуль, распределённый между двумя частями программного комплекса.
Рис. 1. Схема функциональных связей подсистем программного комплекса
В блоке АМшпо-скетча присутствуют только два модуля которые реализуются без объекто-ориентированного подхода. Эти модули реализуют поддержку ШВ-соединения и непосредственной передаче команд моторам робота.
АМго1^приложение состоит из следующих модулей: передача изображения с камеры, снятие показаний акселерометра, управляющий модуль, модуль ^В-соединения, модуль В1шейоШ-соединения. Также следует рассмотреть модули которые относятся к распределённой математической части: вычисление координат в пространстве и умножение на матрицу поворота. Рассмотрим каждый из модулей подробнее.
Модуль USB-соединения реализуется в классе Use Accessory, который является наследником Thread, с целью распараллеливания задач и выполнения задач пересылки команд роботу в фоновом режиме в отдельном потоке. Этот инструмент позволяет автоматически запускать связанные приложения используя уникальные дескрипторы, который передаются с Android-устройства при подключении и прописываются в манифесте Android приложения.
Модуль Bluetooth-соединения на стороне Android-устройства по сути выполняет задачу по инициализации Bluetooth-сервера в режиме передачи по протоколу SPP. В этом классе выполняется начальная инициализация и запускается сервер в режиме ожидания подключения. В этом классе происходит обмен информацией с подключенным устройством через потоки ввода / вывода реализуемые стандартными классами Java InputStream и Output-Stream для получения и отправки соответственно. Также в классе IOBlue-tooth Thread происходит диспетчеризация сообщений и сортировка их в соответствии с видом команды и её конечной целью, что является реализацией управляющего модуля.
При запуске приложения на мобильном устройстве в классе Main Activity, который является точкой старта и классом реализующим отображение первого экрана приложения, происходит инициализация Usb-подключения (класса Use Accessory). При запуске сервера из меню приложения мы переходим на второй экран, который реализуется классом Connection Activity. Этот класс реализует множество модулей со схемы в части Android-устрой-ства (рис. 2). Такими модулями являются: передача изображения с камеры, получение данных акселерометра, вычисление координат в пространстве и умножение на матрицу поворота.
Рис. 2. Схема функциональных связей основных классов Android-приложения
Графическое представление функциональных связей между классами данного Android-приложения представлено на рис. 2.
Программная система состоит из двух частей, поэтому две группы интерфейсов будут рассмотрены далее.
Интерфейс Android-приложения по техническому заданию должен быть простым и с минимальным количеством элементов управления, так как взаимодействие пользователя с ним будет минимальным. Все операции в этом приложении автоматизированы и выполняются без непосредственного участия пользователя.
Однако, было принято решение снабдить интерфейс возможностями, позволяющими быстро воспользоваться проверкой работоспособности части программного комплекса без использования подключения к ПК по Bluetooth (рис. 3).
На первом экране присутствует 4 кнопки: движение вперед, движение назад, поворот налево, поворот направо. Также на экране присутствует элемент управления, который позволяет регулировать скорость робота. Экран несет в себе функцию отладки и проверки основных возможностей робота. Также на экране присутствует меню для перехода на второй экран.
При загрузке второго экрана происходит запуска SPP-Bluetooth сервера, ожидающего подключения программы для ПК управления роботом. На втором экране содержится консоль для вывода полученных и отправленных команд. Также присутствует возможность отправки сообщения напрямую пользователем Это позволяет также вести тестирование отдельных частей программы, и упрощает нахождение ошибок.
Консоль Arduino
Рис. 3. Оба экрана приложения
Интерфейс приложения для ПК обладает только одним окном. В нем используются элементы управления распространённой в сообществе разработчиков на Java библиотеки Swing, которая обладает возможностью выбора интерфейса схожим с элементами управления интерфейса в MacOS, а также гарантирует одинаковое отображение во многих операционных системах, включая Windows, Linus и MacOS.
После нахождения в радиусе действия включенных Bluetooth-устройств, происходит их добавления в список. После выбора необходимого устройства необходимо нажать кнопку «Подключиться», об успешности подключения которого можно будет понять из выводимых в область логирования команд. Частоту снятия показаний с камеры и акселерометра можно отрегулировать, используя элементы управления, которые находятся в правой верхней части окна. Основным элементом в данном окне является область, в которой выводится строящийся рельеф, а также непосредственные показания акселерометра в левом верхнем углу. Поддержка 3d осуществляется средствами библиотеки OpenGL. При нажатии клавиши и попытке протянуть происходит вращение модели по осям относительно последней добавленной точки. Увеличить или уменьшить модель можно используя колёсико мыши.
X
Рис. 4. Окно отображения рельефа
В меню в главном окне присутствуют следующие пункты меню: «Сохранить как...», «Очистить», «Построить рельеф», «Проинтершлировать и
построить», «Загрузить и проинтерполировать». Пункт меню «Сохранить как...» позволяет сохранить точки скелетного отображения в файл с расширением .dta. Пункт меню «Проинтерполировать и построить» вызывает окно построения рельефа, но предварительно интерполирует точки скелетного отображения. Пункт меню «Загрузить и проинтерполировать» позволяет пользователю выбрать сохранённый ранее файл с расширением .dta для его интерполяции и отображения в окне поверхности рельефа (рис. 4).
Список литературы:
1. Аккуратов Е.Е. Знакомьтесь: Java. Самоучитель / Е.Е. Аккуратов. -М.: Вильямс, 2006. - 256 с.
2. Дрожжин Р.С., Копелиович Д.И. Программный комплекс построения модели закрытого рельефа с использованием гусеничного робота на базе Arduino и Android-устройства // Достижения вузовской науки. - 2013. - № 6. -С. 101-106.