ПЗ (1190607), страница 3

Файл №1190607 ПЗ (Аппаратно-програмный модуль для макета интерактивного обучающего робота) 3 страницаПЗ (1190607) страница 32020-10-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

– поддерживает не только Java или какой-то один язык;

– свободно распространяемый и с открытым кодом, но с полной поддержкой;

– по-настоящему расширяемый и конфигурируемый;

– промышленный уровень.

2.3.2.5 PyCharm

PyCharm это интегрированная среда разработки для языка программирования Python. Предоставляет средства для анализа кода, графический отладчик, инструмент для запуска юнит-тестов и поддерживает веб-разработку на Django. PyCharm разработана компанией JetBrains на основе IntelliJ IDEA. Среда разработки является платной, но существует бесплатная версия Community Edition доступная для скачивания на официальном сайте. Не смотря на усеченный набор возможностей с помощью PyCharm Community Edition можно решить поставленные задачи.

Данная IDE имеет следующие возможности:

– статический анализ кода, подсветка синтаксиса и ошибок;

– навигация по проекту и исходному коду: отображение файловой структуры проекта, быстрый переход между файлами, классами, методами и использованиями методов;

– рефакторинг: переименование, извлечение метода, введение переменной, введение константы, подъём и спуск метода и т. д.

– инструменты для веб-разработки с использованием фреймворка Django;

– встроенный отладчик для Python;

– встроенные инструменты для юнит-тестирования;

– разработка с использованием Google App Engine;

– поддержка систем контроля версий: общий пользовательский интерфейс для Mercurial, Git, Subversion, Perforce и CVS с поддержкой списков изменений и слияния.

В качестве языка программирования выбран язык Python. Выбранный язык удобен при написании программ взаимодействующих с контроллером Arduino. Кроссплатформенность языка также важный пункт, так как на микрокомпьютер установлена операционная система Rasbian, сделанная на базе Linux.

Из приведенных сред разработки выбрана PyCharm. Qt creator и Eclipse отсеяны из-за большого веса данных продуктов это связано с наличием большого количества дополнительных модулей. Эти модули не требуются для решения поставленных задач, а остальной функционал очень схож. PyCharm также является очень популярной средой разработки поэтому имеет хорошо написанную документацию и множество статей по использованию самой программы.

2.3.3 Программное обеспечение для связи Raspberry Pi с компьютером

Программа должна представлять из себя удобный интерфейс для просмотра показаний с датчиков и отправки команд роботу. Данная задача может быть решена приведенными выше средами разработки, такими как Qt и NetBeans. Помимо языков С++ и Python можно использовать язык программирования C#.

Это язык программирования, предназначенный для разработки самых разнообразных приложений, предназначенных для выполнения в среде .NET Framework. Язык C# прост, типобезопасен и объектно-ориентирован. Благодаря множеству нововведений C# обеспечивает возможность быстрой разработки приложений, но при этом сохраняет выразительность и элегантность, присущую языкам C [25]. Рассмотрим три основные среды разработки программного обеспечения для данного языка. Это Visual Studio. MonoDevelop и SharpDevelop.

2.3.3.1 Visual Studio

Microsoft Visual Studio – средство для разработчиков ПО, которое позволяет решать основные задачи разработки: система упрощает создание, отладку и развёртывание приложений на различных платформах, включая SharePoint и облачную среду. Данная линейка продуктов позволяет разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight. Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных [28].

Преимуществами данной IDE являются:

– использование вычислительных мощностей локального компьютера и облака;

– простая реализация общих задач и индивидуальный подход;

– быстрое создание высококачественного кода;

– функция поддержки нескольких мониторов;

– возможность реализации идей и решений для широкого спектра платформ, включая Windows, Windows Server, веб-среду, облачную среду, Office и SharePoint;

– пользование данной IDE может вызвать затруднения у новичков.

2.3.3.2 MonoDevelop

Cвободная среда разработки, предназначенная для создания приложений C#, Java, Boo, Nemerle, Visual Basic .NET, Vala, CIL, C и C++. MonoDevelop позволяет разработчикам быстро создавать кроссплатформенные приложения на Linux. Windows и Max OS.

Преимуществами являются:

– кроссплатформенность;

– продвинутое редактирование текста;

– настраиваемые окна, слои и горячие клавиши;

– поддержка различных языков программирования;

– встроенный отладчик;

– визуальный конструктор форм (GTK#);

– ASP.NET.

Данная среда разработки изначально была портом SharpDevelop на Mono/GTK+, но со временем далеко ушел от своего начального состояния.

2.3.3.3 SharpDevelop

Свободная среда разработки для C#, Visual Basic .NET, Boo, IronPython, IronRuby, F#, C++.

– написана полностью на C#;

– подсветка синтаксиса для C#, IronPython, HTML, ASP, ASP.NET, VBScript, VB.NET, XML, XAML;

– визуальный редактор для WPF и форм Windows Forms (COM-компоненты не поддерживаются);

– интегрированная поддержка NUnit, MbUnit и NCover;

– интегрированная поддержка анализатора сборок FxCop;

– интегрированный отладчик;

– интегрированный профайлер;

– интегрированная поддержка SVN, Mercurial и Git;

– конвертор кода между языками C#, VB.NET, IronPython и Boo;

– предпросмотр документации, полученной из документирующих комментариев;

– расширяемость внешними инструментами;

– расширяемость на основе механизма Add-Ins.

Для программы на компьютер решено использовать язык С#, данный язык программирования позволяет создать удобный графический интерфейс и подходит для решения поставленной задачи – дать возможность пользователю обмениваться информацией с роботом. В качестве среды разработки программного обеспечения выбрана среда Visual Studio. Выбранная IDE позволяет решать множество задач и имеет обширную документацию, что позволяет быстро решать возникающие проблемы. Наличие удобного интерфейса IDE и возможности быстро создавать формы для графического интерфейса программы также облегчат работу при разработке ПО.

Со стороны Raspberry Pi программа написана на выбранном до этого языке Python.

3 Реализация аппаратно-программного модуля

3.1 Разработка интерфейса пользователя

Интерфейс пользователя необходим для взаимодействия с роботом, то есть отправки различных команд и получение ответов со стороны робота. Решено использовать четыре типа команд. Это запрос на получение данных с выбранного датчика. Команды на перемещение в заданном направлении на заданное расстояние. Команды на управления механической рукой. И последний тип это команда, загружающая выбранную прошивку в плату робота.

После отправки запроса на получение данных, необходимо принять ответ и вывести его на экран.

Учитывая требования, разработан простой интерфейс удовлетворяющий им всем. Получившийся результат показан на рисунке 7.

Рисунок 7 – Разработанный пользовательский интерфейс

Как видно из рисунка интерфейс разбит на три основных блока. Первый блок отвечает за работу с датчиками. Пользователь, выбрав необходимый датчик, нажимает на кнопку получить данные с датчика. Ответ, отправленный по данному запросу, выводится в окне справа.

Второй блок необходим для управления сервоприводами и состоит из 2 подблоков. В первом подблоке располагаются четыре кнопки и поле, в которое необходимо ввести расстояние. Это поле необходимо, чтобы в дальнейшем задавать расстояние, на которое переместится лабораторный макет, в заданном направлении.

Второй подблок имеет аналогичное строение. Состоит из трех кнопок и поля для ввода данных. Данные кнопки позволят подключить еще три сервопривода и управлять ими, задавая угол поворота.

Третий блок представляет из себя поле для вывода изображения и кнопку вкл/выкл камеру. По нажатию кнопки видеопоток с камеры передается в программу и выводится на экран.

В верхней части интерфейса находится поле показывающее статус подключения. Если установить соединение между компьютером и микрокомпьютером не удалось, то данное поле будет показывать ошибку, которая возникла при подключении.

Две кнопки вверху справа предназначены для выбора программы для микроконтроллера и её загрузки на электронную плату. Для удобства путь к выбранному файлу выводится в соседнее поле. Так как после загрузки начнется автоматическое перепрограммирование микроконтроллера, то имеется поле в которое после завершения всех операций выводится слово выполнено.

Интерфейс имеет достаточно свободного места для добавления дополнительных блоков, которые могут понадобиться студентам использующих модуль для обучения.

Листинг программы приведен в приложении А.

3.2 Программная часть интерфейса

Взаимодействие между Raspberry Pi и компьютером осуществляется программой с использованием сокетов. Сокеты это программный интерфейс, обеспечивающий обмен данными между процессами, был впервые реализован в операционной системе Berkley UNIX. Сейчас этот программный интерфейс доступен практически в любой модификации Unix, в том числе в Linux. Хотя все реализации чем-то отличаются друг от друга, основной набор функций в них совпадает. Изначально сокеты использовались в программах на C/C++, но в настоящее время средства для работы с ними предоставляют многие языки (Perl, Java и др.). При таком обмене процессы могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокеты предоставляют весьма мощный и гибкий механизм межпроцессного взаимодействия (IPC).

Они могут использоваться для организации взаимодействия программ на одном компьютере, по локальной сети или через Internet, что позволяет создавать распределённые приложения различной сложности. Кроме того, с их помощью можно организовать взаимодействие с программами, работающими под управлением других операционных систем. Например, под Windows существует интерфейс Window Sockets, спроектированный на основе socket API.

Сокеты поддерживают многие стандартные сетевые протоколы (конкретный их список зависит от реализации) и предоставляют унифицированный интерфейс для работы с ними. Наиболее часто сокеты используются для работы в IP-сетях. В этом случае их можно использовать для взаимодействия приложений не только по специально разработанным, но и по стандартным протоколам - HTTP, FTP, Telnet и т. д.

Чтобы использовать сокеты, необходимо подключить библиотеки System.Net и System.Net.Sockets. В них представлен широкий набор методов и свойств для сетевых взаимодействий.

Чтобы создать сокет в программе необходимо задать три атрибута, это домен, тип и протокол. Домен определяет пространство адресов, в котором располагается сокет, и множество протоколов, которые используются для передачи данных. Чаще других используются домены Unix и Internet, задаваемые константами AF_UNIX и AF_INET соответственно (префикс AF означает address family – семейство адресов). При задании AF_UNIX для передачи данных используется файловая система ввода/вывода Unix. В этом случае сокеты используются для межпроцессного взаимодействия на одном компьютере и не годятся для работы по сети. Константа AF_INET соответствует Internet-домену. Сокеты, размещённые в этом домене, могут использоваться для работы в любой IP-сети. Существуют и другие домены (AF_IPX для протоколов Novell, AF_INET6 для новой модификации протокола IP - IPv6 и т.д.).

Тип сокета определяет способ передачи данных по сети. Чаще других применяются:

– SOCK_STREAM передача потока данных с предварительной установкой соединения;

– SOCK_DGRAM передача данных в виде отдельных сообщений (датаграмм);

– SOCK_RAW используется для низкоуровневых сокетов.

В программе используется тип SOCK_STREAM так как он обеспечивается надёжный канал передачи данных, при котором фрагменты отправленного блока не теряются, не переупорядочиваются и не дублируются, также данный тип является самым распространенным.

Характеристики

Список файлов ВКР

Аппаратно-програмный модуль для макета интерактивного обучающего робота
Клюшников Евгений
Практическая часть ВКР
Arduino Programm
ArduinoProgV2.ino.ino
ArduinoProgV2.ino.ino.mega.hex
ArduinoProgV2.ino.ino.with_bootloader.mega.hex
WinPO
WinPO
Properties
AssemblyInfo.cs
Resources.Designer.cs
Settings.Designer.cs
bin
Debug
MjpegProcessor.dll
WinPO.vshost.exe
obj
Debug
TempPE
DesignTimeResolveAssemblyReferences.cache
DesignTimeResolveAssemblyReferencesInput.cache
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WinPO.csproj.GenerateResource.Cache
WinPO.csprojResolveAssemblyReference.cache
WinPO.exe
WinPO.pdb
Form1.Designer.cs
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7023
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее