Кибернетический контроллер
Этапы разработки приложения для android-устройства: дизайна, интерфейса, алгоритма передачи информационных команд. Прием, обработка видеопотока, подбор и обоснование используемого программного обеспечения. Алгоритм обеспечения безопасности, тестирование.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.06.2017 |
Размер файла | 967,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Существует несколько вариантов развития событий. В случае, если произошел опрос датчика и ответа не поступило, то генерируется исключительная ситуация, при обработке которой происходит завершение выполнения параллельного потока основной программой, очищается память и контроллер оповещается о том, что датчик более недоступен.
Когда опрос датчика произошел удачно, а показания датчика были записаны в переменную для обработки, и в ходе обработки были получены результаты, свидетельствующие о том, что датчик касания не сработал, то никаких действий предпринимать не требуется.
Когда произошел опрос датчика, данные с датчика записались в переменную, и по результатам обработки было принято решение, что требуется произвести остановку моторов, иначе может быть нанесен вред аппаратной части роботизированной системы, что может привести к полной или частичной потере функционала.
5.5 Описание алгоритма для датчика линии
Следующей целью была разработка программного обеспечения для движения по линии, используя датчики линии. В данном проекте в качестве датчиков линии были использованы датчики света.
Были разработаны и реализованы алгоритмы движения по линии, используя датчики освещенности для определения положения черной или белой линии на контрастной поверхности относительно расположения сенсоров, установленных на корпусе роботизированной системы.
Датчик линии - аналоговый датчик, позволяющий отслеживать движение робота по линии. Основным рабочим органом датчика является инфракрасный фотоэлемент. В паре с ним работает светодиод, который включается и подсвечивает поверхность.
Первый вариант алгоритма использует для обнаружения линии два датчика света. Алгоритм действий при работе с датчиками линии заключается в считывании информации с двух датчиков, расположенных на нижней стороне корпуса системы. Было использовано два датчика для ускорения определения направления изменения линии, поскольку в отличии от использования в качестве датчика линии камеры, при выходе за пределы зоны обнаружения линии датчики просто перестают подавать сигнал линии, тогда как камера детектирует отклонение от центра изображения, и есть возможность изменять траекторию движения роботизированной системы по ходу движения. В алгоритме движения при отклонении линии от прямой в достаточной степени, отклонение детектируется одним из датчиков.
Суть этого алгоритма заключается в том, что в начале выполнения роботизированная система начинает движение с определенной скоростью в прямом направлении с целью обнаружения линии. В случае, если линия была обнаружена, роботизированная система начинает поворачивать в сторону датчика, зафиксировавшего линию, изменять в большую сторону скорость поворота и уменьшать значение прямолинейной составляющей скорости для уменьшения вероятности потери линии. После обнаружения линии и выполнения определенных действий снова происходит опрос датчиков, и в случае, если линия все еще находится в поле видимости, то скорость поворота возрастает, а скорость движения вперед - уменьшается. Если линия снова обнаружена, то алгоритм выполняется заново, если нет, то продолжается движение вперед. Далее существует два варианта при потере линии из зоны обнаружения датчиков. Первый вариант - после поворота линия оказалась между датчиками. В этом случае роботизированная система продолжит ехать по линии, уменьшая прямолинейную скорость и увеличивая скорость поворота на поворотах, и наоборот, увеличивая прямолинейную скорость и уменьшая скорость поворота на прямых участках линии до тех пор, пока не закончится линия или на пути движения не встретится участок линии со слишком резким поворотом. Второй вариант - после поворота линия оказалась за пределами области обнаружения датчиков и не между ними. В таком случае робот со временем перестает поворачивать и поедет вперед, до тех пор пока не встретит линию снова.
Второй вариант использует только один датчик света в режиме датчика линии с использованием релейного регулятора. Движение на релейном регуляторе отличается большей резкостью в смене направлений в сравнении с пропорциональным и пропорционально-дифференциальным регулятором. Однако, он проще в реализации и в исполнении команд контроллером, а также в связи с некоторыми особенностями работы с датчиками линии его невозможно использовать в заданных условиях.
В ходе работы этого алгоритма происходит поиск линии путем движения вперед. Далее, при обнаружении линии, роботизированная система начинает поворачивать до тех пор, пока не потеряет линию из зоны детектирования. Затем начинает плавно изменять направление поворота пока заново не обнаружит и не пересечет линию и снова начнет изменять направление поворота. В случае, если линия имеет разрывы и зона обнаружения линии пройдет между концом одной линии и началом следующей, то есть попадет в разрыв, то робот повернет на 180° и поедет по линии в обратном направлении.
Основным недостатком такого алгоритма является необходимость постоянного виляния из стороны в сторону. Кроме того, данный алгоритм крайне восприимчив к разрывам в линии, по которой происходит движении.
Первый вариант является более предпочтительным, так как происходит более плавное движение и короткие прерывания линии, по которой едет роботизированная система, не влияют на работу алгоритма. Второй вариант алгоритма используется в качестве неосновного. Использование второго алгоритма возможно при недостатке бюджета или отсутствии возможности приобретения нового датчика света.
Оба алгоритма движения по линии запускаются с удаленного Android-устройства и их выполнение может быть прервано пользователем при нажатии на джойстик или кнопкой завершения работы программы. При использовании этих алгоритмов датчик касания и инфракрасный датчик продолжают работать, что предотвращает возможность столкновения роботизированной системы с препятствиями и может привести к выходу ее отдельных модулей или системы в целом в неисправное состояние.
Данные алгоритмы могут использоваться в сочетании друг с другом для увеличения надежности системы. При выходе из строя или потере соединения с одним из датчиков предусмотрена возможность использования другого алгоритма для одного датчика линии.
Все расчеты и действия, связанные с датчиками линии, выполняются в отдельном потоке, который создается в начале выполнения программы. Однако, при включении движения по линии отключаются некоторые другие функции, такие как дистанционное управление со смартфона или использование других алгоритмов движения по линии, но сохраняется функционал датчика касания и инфракрасного датчика расстояния.
Программа является расширяемой, благодаря ее модульной структуре и использованию объектно-ориентированного языка программирования JavaScript.
5.6 Тестирование ТРИК-контроллера
В ходе тестирования был обнаружен ряд проблем, связанный с неоригинальными частями шасси и их совместимостью с контроллером, возникла проблема с тем, что видеомодуль фиксировал не только спектр видимого излучения, но и инфракрасное излучение, а также в ходе тестирования возникла проблема с размещением датчиков линии на корпусе роботизированной системы. Также были проблемы с постоянно перезапускающейся операционной системой контроллера. Основной проблемой стала маленькая скорость выполнения потока команд связанных со снятием данных с датчиков и изменением напряжения на портах контроллера.
Тестирование показало, что ультразвуковой датчик не функционирует. Для обеспечения выполнения функций по обнаружению препятствий необходим датчик определяющий расстояние до ближайшего объекта. В результате был использован инфракрасный датчик расстояния [19], который является аналогом ультразвукового датчика, но является не цифровым, а аналоговым, что, однако, не повлияло на его работоспособность.
При работе с шасси Multi Chassis Family [20] возникла проблема с тем, что при подаче на силовые моторы мощности меньше 50% роботизированная система не начинала движение до тех пор, пока ей не придавалось дополнительное ускорение внешними силами. В соответствии со спецификациями к колесной базе рабочее напряжение - 3-6В. Было произведено измерение напряжения с помощью вольтметра на выходах M1, M2, M3, M4, на которых были получены одинаковые результаты (табл. 2).
Таблица 2. Напряжение на силовых моторах в зависимости от подаваемой мощности
Мощность, % |
Напряжение, В |
|
10 |
1,1±0,2 |
|
20 |
1,4±0,2 |
|
30 |
1,6±0,2 |
|
40 |
2,0±0,2 |
|
50 |
2,4±0,2 |
|
60 |
3,0±0,2 |
|
70 |
3,6±0,2 |
|
80 |
4,4±0,2 |
|
90 |
7±1 |
|
100 |
11±1 |
После начала движения роботизированная система может продолжать движение с мощностью не менее 30%, однако при низких мощностях она может застревать на неровных участках пути, а также в случае, если колеса находятся на поверхностях с разной силой трения.
Для предотвращения застреваний было принято решение во время начала движения на небольшой промежуток времени увеличивать подаваемую мощность, что привело к решению представленной проблемы, тем не менее из-за отсутствия на силовых моторах энкодеров, устройств, измеряющих углы, которые в нашем случае могли бы использоваться для измерения количества оборотов колеса, невозможно обнаруживать отсутствие вращения колеса, и, следовательно, обнаруживать остановку всей системы.
Факт застреваний можно было бы решить простым увеличением мощности на всем протяжении движения, не давая ей упасть ниже определенного значения, однако, в связи с тем, что контроллер имеет старый, одноядерный процессор, и сама роботизированная система имеет достаточно большую массу, и, следовательно, инерцию, большое увеличение мощности моторов и скорости движения не представляется возможным.
В результате, эмпирическим путём были получены значения мощности силовых моторов, при которых контроллер все еще успевает считать значения с датчиков и вероятность застревания сведена к минимуму.
Роботизированная система в собранном состоянии имеет два датчика линии и один инфракрасный датчик расстояния, которые являются источниками инфракрасного излучения. В связи с тем, что у видеомодуля «Глаз» отсутствует фильтр инфракрасного излучения, им фиксируется излучение этих датчиков, что, в некоторых обстоятельствах, может привести к засветам на получаемом изображении. При использовании камеры в режиме сенсора линии засветы на изображении могут привести к некорректному выполнению программы. В результате было принято решение о реализации алгоритма движения по линии, используя видеомодуль «Глаз», в виде отдельной программы, перед запуском которой необходимо отключить датчики линии и датчик расстояния.
Во время выполнения алгоритма движения по линии с помощью датчиков света их необходимо поместить на строго определенном расстоянии от поверхности. Из-за ограниченного количества каркасных деталей регулировка высоты выполнялась с помощью подручных материалов.
Проблема с перезапускающейся операционной системой не является проблемой программиста, разрабатывающего программное обеспечение под эту аппаратную базу. Возможно, она будет решена в следующих версиях прошивки контроллера.
Все вышеперечисленные проблемы были учтены, и их решения внедрены в итоговую версию программы, что привело к более стабильной работе и повысило надежность программного обеспечения.
Заключение
После выполнения выпускной квалификационной работы были получены следующие выводы:
1. получены теоретические и практические знания в области программирования контроллеров и создания android-приложений;
2. получены навыки работы с роботизированными системами на примере системы на базе контроллера ТРИК;
3. получен на практике конечный продукт в виде роботизированной системы с разработанным программным обеспечением;
Были получены следующие результаты:
1. сконструирована роботизированная система из предоставленной элементной базы;
2. создано android-приложение, которое предоставляет пользователю осуществлять управление роботизированной системой через wi-fi сеть;
3. разработано и реализовано программное обеспечение для ТРИК-контроллера, которое предоставляет возможность перемещения роботизированной системы по рабочей поверхности, по линии с помощью датчика света, видеомодуля «Глаз», а также отсылает полученный видеопоток с камеры на управляющее устройство;
4. произведено тестирование android-приложения и программного обеспечения для ТРИК-контроллера.
Практическая значимость данной разработки имеется для компаний, чья работа связана с охранной деятельностью, военным делом, развлекательной деятельностью.
В дальнейшем данная разработка может быть улучшена путем улучшения аппаратной базы. Также можно увеличить функциональность данной разработки путем увеличения количества дополнительных модулей, включенных в состав роботизированной системы.
В ходе выполнения работы студентами Горбуновым Александром Михайловичем, Капелинским Дмитрием Анатольевичем, Лазаренко Михаилом Олеговичем были достигнуты следующие результаты, полученные каждым автором по отдельности:
1. Горбунов А.М.:
a. обосновал выбор языков программирования;
b. разработал прикладное программное обеспечение для Android-устройства;
c. разработал методы связи аndroid-устройства и ТРИК контроллера;
2. Капелинский Д.А.:
a. разработал методы обнаружения линии на поверхности с помощью видоискателя «Глаз»;
b. разработал методы определения препятствий с помощью ультразвукового датчика;
c. разработал методы связи ТРИК контроллера и аndroid-устройства;
3. Лазаренко М.О.:
a. разработал методы реализации передвижения для ТРИК контроллера;
b. разработал методы обнаружения линии на поверхности с помощью датчика линии;
c. разработал и реализовал алгоритмы действия при срабатывании датчика касания.
Список литературы
1. TRIK. URL: http://www.trikset.com/ (дата обращения 3.04.2017).
2. TRIK project official sources GitHub. URL: https://github.com/trikset (дата обращения 12.04.2017).
3. Кибернетический контроллер ТРИК, руководство пользователя. URL: https://drive.google.com/file/d/0BzWuF-slPpvUOGJ2NmU4UTZicDA/edit (дата обращения 3.04.2017).
4. Ext4 - Linux Kernel Newbies. URL: https://kernelnewbies.org/Ext4 (дата обращения 13.04.2017).
5. Современный учебник JavaScript. URL: https://learn.javascript.ru (дата обращения 03.04.2017).
6. Samba - opening windows to a wider world. URL: https://www.samba.org/ (дата обращения 04.04.2017).
7. udhcp Server. URL: https://udhcp.busybox.net/ (дата обращения 3.04.2017).
8. Introduction - Material design - Material design guidelines. URL: https://material.io/guidelines (дата обращения 05.04.2017).
9. Роджерс Р., Ломбардо Д., Медниекс З., Мейк Б. Android. Разработка приложений. М.: ЭКОМ Паблишерз, 2010. С. 245-280.
10. Socket (Java Platform SE 7). URL: https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html (дата обращения 08.04.2017).
11. AsyncTask | Android Developers. URL: https://developer.android.com/reference/android/os/AsyncTask.html (дата обращения 15.04.2017).
12. Роджерс Р., Ломбардо Д., Медниекс З., Мейк Б. Android. Разработка приложений. М.: ЭКОМ Паблишерз, 2010. С. 283-311.
13. PreferenceActivity - Активити с настройками | Программирование под Android. URL: http://androiddocs.ru/preferenceactivity-aktiviti-s-nastrojkami (дата обращения 09.04.2017).
14. R. Belkov и A.J. Lennon, «DiskImager». URL: https://github.com/RomanBelkov/DiskImager (дата обращения 04.04.2017).
15. PuTTY. URL: http://www.putty.org/ (дата обращения 3.04.2017).
16. OmniVision Technologies, «OV7670/OV7171 CMOS VGA (640x480) CameraChip» 8.07.2005. URL: https://mgbot.ru/tools/download.php? file=1128 (дата обращения 4.04.2017).
17. Пропорционально-дифференциальный регулятор. URL: https://www.ngpedia.ru/id390453p1.html (дата обращения 3.04.2017).
18. Purlance Industry Co., «Ultrasonic Ranging Module HC - SR04». URL: https://mgbot.ru/tools/download.php? file=1183 (дата обращения 4.04.2017).
19. Sharp, «Distance Measuring Sensor Unit Measuring distance: 10 to 80 cm Analog output type». URL: https://mgbot.ru/tools/download.php? file=1184 (дата обращения 4.04.2017).
20. DAGU Off set gear motor acessorios 1:48 (1 pair)_Motor/Geared Motor_Welcome to DAGU Hi-Tech Electronic Robotics online Shop! - Powered by ECShop. URL: http://www.dagurobot.com/goods.php? id=86 (дата обращения 4.04.2017).
Размещено на Allbest.ru
...Подобные документы
Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.
курсовая работа [167,8 K], добавлен 18.01.2017Общий обзор проблемы безопасности ОС Android. Развитие индустрии по борьбе с вредоносным и мошенническим ПО. Разработка Системы ранжирования уровней опасности Android приложений. Выбор производителя и типа СУБД. Тестирование программного обеспечения.
дипломная работа [2,7 M], добавлен 13.02.2016Тестирование и отладка программного обеспечения: понятие, принципы, этапы, цели и задачи. Тестирование методом сандвича как компромисс между восходящим и нисходящим подходами. Сущность метода "белого и черного ящика", отладки программного обеспечения.
курсовая работа [36,9 K], добавлен 21.07.2012Основания для выбора контроллера, который подключается по IDE-шине к устройству CD-ROM. Принцип действия устройства, описание структурной и принципиальной схемы. Выбор элементной базы. Алгоритм работы устройства, разработка программного обеспечения.
курсовая работа [136,0 K], добавлен 23.12.2012Подбор игрового движка и описание его основных характеристик. Разработка структуры, алгоритма и интерфейса программы. Проектирование иерархии классов. Выделение типового приема визуализации. Тестирование правильности работы программного обеспечения.
курсовая работа [3,1 M], добавлен 19.01.2017Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.04.2017Разработка программного обеспечения для платформы Android версии 2.3: информационное приложения для поклонников футбольной команды, с возможностью просмотра событий, статистики и иной информации о команде и ее успехах. Листинг JsonDataManager.java.
дипломная работа [4,1 M], добавлен 24.04.2013Анализ целевой аудитории. Функциональные характеристики пользовательского приложения. Разработка алгоритмов и интерфейса программного продукта, функций рабочей области. Написание скриптов на языке C#. Тестирование программы методом чёрного ящика.
дипломная работа [1,5 M], добавлен 09.11.2016Развитие аппаратных компьютерных средств - задача первых трех десятилетий компьютерной эры. Процесс тестирования как составляющая процесса обеспечения качества разработки ПО. Принципы и критерии, предъявляемые к тестированию программного обеспечения.
курсовая работа [319,5 K], добавлен 25.05.2009Разработка интерфейса и программного обеспечения виртуальной библиотеки. Проектирование структуры экранов и навигационной системы. Построение прототипа пользовательского интерфейса. Тестирование и модификация прототипа. Экспертная оценка разработки.
курсовая работа [41,2 K], добавлен 19.12.2010Несоответствие процессов разработки программного обеспечения международным стандартам. Фазы, развитие вычислительной инфраструктуры. История развития компьютерных систем. Этапы разработки программ и их тестирование. Ошибки в программном обеспечении.
реферат [176,2 K], добавлен 27.08.2009Создание программного обеспечения в среде Visual Basic for Applications для проведения теста по работе полушарий мозга человека. Описание команд. Разработка интерфейса и тестирование программы. Листинг приветствия и задаваемых пользователю вопросов.
курсовая работа [387,1 K], добавлен 09.03.2014Знакомство с особенностями и этапами разработки приложения для платформы Android. Рассмотрение функций персонажа: бег, прыжок, взаимодействие с объектами. Анализ блок-схемы алгоритма генерации платформ. Способы настройки функционала рабочей области.
дипломная работа [3,4 M], добавлен 19.01.2017Проектирование программного обеспечения Web-приложений информационных систем сайта, которое будет обеспечивать продажу декоративных постеров, а также обеспечивать распространение рекламы и информации о деятельности компании TOO "ILLUSTRATE studio".
дипломная работа [1,6 M], добавлен 14.07.2014Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Общая характеристика и функциональное назначение проектируемого программного обеспечения, требования к нему. Разработка и описание интерфейса клиентской и серверной части. Описание алгоритма и программной реализации приложения. Схема базы данных.
курсовая работа [35,4 K], добавлен 12.05.2013Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".
дипломная работа [3,2 M], добавлен 11.09.2014Тестирование как составляющая часть процесса отладки программного обеспечения, его роль для обеспечения качества продукта. Обнаружение ошибок в программах, выявление причин их возникновения. Подходы к формулированию критериев полноты тестирования.
курсовая работа [1,6 M], добавлен 20.12.2012Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015Дизайн интерфейса приложения как связь человека и персонального компьютера. Adobe Photoshop и его возможности, анализ функциональности и содержание главных операций. Используемые инструменты для разработки дизайна интерфейса текстового редактора.
контрольная работа [407,5 K], добавлен 12.10.2015