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

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

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

В качестве операционной системы установлен Rasbian. Это бесплатная операционная система основанная на Дебиане и оптимизированная для данного микрокомпьютера. В операционную систему входит базовый набор программ и утилит для стабильной работы Raspberry Pi.

Внешний вид микрокомпьютера представлен на рисунке 5.

Рисунок 5 – Микрокомпьютер Raspberry Pi B+

Взаимодействие Raspberry Pi с компьютером может несколькими способами. Рассмотрим основные способы подключения: wi-fi соединение, bluetooth соединение, соединение через кабель Ethernet, соединение через радиомодули.

Самый простой способ это подключение через Ethernet. Такое подключение предоставляет быстрый обмен данными между устройствами. При этом для установки соединения достаточно узнать IP адрес Raspberry Pi. Данный способ используется только для первичной настройки операционной системы микрокомпьютера и на ранних стадиях разработки ПО. Это связано с тем, что робот должен иметь дистанционное управление с компьютера и возможность прошивки электрической платы без использования каких-либо соединений через кабель.

Оставшиеся три способа подходят для беспроводного подключения. Сначала проведем сравнение Bluetooth и wi-fi. И первое и второе являются беспроводными стандартами связи и используют для передачи данных определенные радиочастоты. Назначение таких устройств одинаковое – это организация передачи данных между устройствами. Диапазон частот используемых wi-fi находится в пределах от 2.4 ГГц до 5 ГГц, который делится на несколько каналов. Расстояние, на котором работает wi-fi, охватывает около 300 метров от беспроводного узла сети на открытой местности и около 100 метров в помещениях. В то время как Bluetooth использует диапазон частот в пределах 2.4 ГГц и имеет гораздо более короткий радиус действия, в среднем около 10 метров. Однако радиус действия последней версии bluetooth’а может работать и до 100 метров на открытой местности.

Скорости передачи данных тоже сильно отличаются, и преимущество за wi-fi где скорость может достигать 11 Мбит/сек, в то время как Bluetooth передает данные со скоростью до 721 Кбит/сек.

Количество поддерживаемых устройств так же сильно отличается. В случае Bluetooth это передача данных между двумя устройствами, то есть создается персональная сеть (PAN). В то время как wi-fi поддерживает большое количество одновременно работающих устройств.

Радиомодули в свою очередь предоставляют соединение очень большой дальности, однако, настройка обмена данными займет больше времени. Также сам модуль для радиосвязи имеет больший размер чем wi-fi или Bluetooth модули, а место под корпусом робота ограничено.

Подведя итог решено использовать wi-fi модуль для взаимодействия Raspberry Pi с компьютером.

2.2 Взаимодействие Raspberry Pi с электрической платой Arduino

Микроконтроллеры можно встретить почти в любом современном электронном цифровом (и не только цифровом) устройстве: мобильных телефонах, фотокамерах, калькуляторах, часах, телевизорах, плеерах, компьютерах, в промышленной электронике, автомобильной электронике, военной технике и др. В основном микроконтроллеры применяться там, где приоритетным является уменьшение размеров, потребляемой мощности, увеличение устойчивости к внешним факторам, например в роботах. Быстродействие, значительно меньше чем у мощных процессоров, но его хватает для выполнения большинства требуемых от устройства функций. Технологии совершенствуется, и быстродействие микроконтроллеров возрастает. Новые поколения МК могут выполнять сложные расчеты за малое время.

В разработанном макете используется контроллер Arduino Mega 2560, внешний вид которого представлен на рисунке 6. Данный контроллер построен на базе микроконтроллера ATmega2560. Плата имеет 54 цифровых входа/выходов (14 из которых могут использоваться как выходы ШИМ), 16 аналоговых входов,4 последовательных порта UART, кварцевый генератор 16 МГц, USB коннектор, разъем питания, разъем ICSP и кнопка перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB или подать питание при помощи адаптера AC/DC, или аккумуляторной батареей.

Рисунок 6 – Микроконтроллер Arduino Mega 2560

Для соединения Arduino с Raspberry Pi существует несколько сценариев подключения.

Первый это использование явного последовательного канала передачи данных. При этом возникают сложности, связанные с разностью уровней питания: Raspberry Pi работает на напряжении 3.3В, в то время как Arduino использует 5 вольт. При этом для обеспечения безопасного соединения рекомендуется использовать специальные преобразователи уровня.

Второй это использование последовательной шины I2C, что позволяет подключать к одной Raspberry Pi до 128 устройств Arduino в режиме slave, при этом такое подключение также не требует преобразователей уровня.

Третий это подключение по USB. Также не требует преобразователей уровня.

Так как к микрокомпьютеру требуется подключить лишь 1 плату Arduino выбор падает на третий способ подключения, то есть подключение по USB так как он является простым и не требует преобразователя уровня.

Определившись с методами взаимодействия блоков в роботе, выберем языки программирования для написания программного обеспечения для каждого из блоков.

2.3 Программное обеспечение

2.3.1 Программирование микроконтроллера Arduino

Программирование контроллеров Arduino ведется через предоставленную разработчиками данной платы программную оболочку, которая доступна бесплатно на их сайте. Данная оболочка включает в себя текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Её использование упрощает работу с контроллером и позволят достаточно быстро написать программу и загрузить её.

Язык программирования основан на C/C++ с некоторыми изменениями облегчающими работу с платой. Программа должна находится в режиме ожидания команды. Посланная с компьютера команда попадает в микрокомпьютер, а затем обрабатывается там и отсылается на плату. При получении команды сразу же начинается её выполнение, при этом режим ожидания команды не прекращается. Если это команды на движение робота или механической руки, то должна происходить отправка сигналов на заданные сервоприводы. Для корректной работы с датчиками программа должна уметь хранить данные и по запросу передавать их в Raspberry Pi.

2.3.2 Программное обеспечение для Raspberry Pi

Самыми популярными средствами разработки программ для Raspberry Pi являются C/C++ и Python.

C++ является одним из наиболее широко используемых языков программирования в мире. Грамотно сконструированные программы на языках C++ быстры и эффективны. Язык является более гибким, чем другие языки, поскольку его можно использовать для создания широкого спектра приложений – от интересных и ярких игр до высокопроизводительного научного программного обеспечения и драйверов устройств, внедренных приложений и клиентских приложений Windows. Более 20 лет C++ используется для решения подобных и многих других задач [26].

Современный язык C++ обеспечивает следующие возможности:

– область стека вместо кучи или статической глобальной области;

– автоматическое определение типа вместо явных имен типов;

– интеллектуальные указатели вместо необработанных указателей;

– типы std::string и std::wstring вместо необработанных массивов char[];

– стандартная библиотека шаблонов (STL) содержит такие контейнеры как vector, list и map, а не необработанные массивы пользовательских контейнеров;

– алгоритмы STL вместо закодированных вручную;

– исключения для сообщения о состояниях ошибки и их обработки;

– свободное от блокировок взаимодействие между потоками с помощью STL std::atomic<> вместо других механизмов взаимодействия между потоками;

– встроенные лямбда-функции вместо небольших функций, реализованных отдельно.

Python это высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты – динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Python организовывается в функции и классы, которые могут объединяться в модули (они в свою очередь могут быть объединены в пакеты). Python портирован и работает почти на всех известных платформах – от КПК до мейнфреймов [27].

Язык обладает кроссплатформенностью и прост в изучении. На данный момент существуют две актуальные ветки языка – Python 2 и Python 3. Также существуют альтернативные реализации, которые решают определенные проблемы, например Stackless Python или PyPy.

К преимуществам данного языка можно отнести:

– простота в использовании и изучении;

– мощная стандартная библиотека и огромный выбор сторонних библиотек и модулей;

– краткость кода;

– возможность связывания с кодом на других языках.

Из недостатков можно выделить:

– низкая по сравнению с компилируемыми языками скорость работы;

– Global Interpreter Lock.

Рассмотрим наиболее популярные среды разработки программного обеспечения.

2.3.2.1 Geany

Geany это текстовый редактор, написанный с использованием библиотек GTK+. Разработан как небольшая и быстрая среда разработки программного обеспечения, которая зависит лишь от нескольких других пакетов. Разработчики ставили цель быть как можно более независимыми от KDE или GNOME [18].

Данная среда разработки имеет следующие сильные стороны:

– обладает большой производительность, быстро открывая большие текстовые файлы;

– реализован «вкладочный» интерфейс, которые облегчает одновременную работу с несколькими файлами;

– реализована подсветка синтаксиса, которая непременно будет полезна разного рода программистам и вебмастерам;

– отсутствуют проблемы с определением кодировки;

– обладает удобным «классификатором»;

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

– возможность подсвечивать текущую строку, отображать нумерацию строк, а также возможность добавлять отступы;

– есть наглядный инструмент выбора цвета;

– легко настраиваемый внешний вид интерфейса редактора;

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

– возможность установить во всех популярных ОС: Linux, Windows, MacOS;

– реализована удобная возможность автозавершения html-тегов, закрытия открытых скобок и т.д;

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

Из недостатков можно отметить, что он не включает в свой состав компилятор. Поэтому требуется дополнительная установка GNU или любого другого компилятора.

2.3.2.2 Qt Creator

Кроссплатформенная свободная среда разработки программного обеспечения. Предназначена для написания программ на языках С, С++,QML. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. Главной задачей Qt Creator является упрощение разработки приложений с помощью фреймворка Qt на разных платформах [20].

К достоинствам данной среды разработки можно отнести:

– возможность работы с наиболее популярными системами контроля версий, вроде CVS, Mercurial, Git и некоторыми другими;

– поддержка нескольких систем сборки (cmake, qmake), что значительно облегчает разработку кросс-платформенного программного обеспечения;

– очень большое количество документации и примеров, которые доступны локально сразу же после установки среды разработки;

– наличие SDK-Maintenance-Tool, при помощи которой можно установить недостающие пакеты/удалить их и обновить QtCreator вместе с версией Qt;

– возможность узнать информацию об установленных/отсутствующих модулях;

– автоматическое дополнение кода;

– детальная пользовательская настройка подсветки синтаксиса;

– графический дебаггер, допускающий пошаговую отладку программы;

– удобное переключение от заголовочного файла к исходному (F4);

– возможность разработки приложений на Qt для мобильных устройств.

К недостаткам можно отнести:

– большой вес приложения;

– иногда возникают проблемы с отображением QtCreator (черное окно вместо интерфейса). Это связано с использованием OpenGl некоторыми компонентами IDE.

Так как используемая microSD имеет объем памяти 8 Гб, то данная среда разработки не подойдет, так как её размер может достигать 20 Гб.

2.3.2.3 NetBeans

NetBeans IDE это свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, Python, PHP, JavaScript, C, C++, Ада и ряда других. Для разработки программ в среде NetBeans и для успешной инсталляции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии [23].

Достоинствами данной среды разработки являются:

– поддержка последних Java технологий;

– быстрый и умный редактор кода, подсвечивающий код, закрывающий скобки и т.д;

– легкое и эффективное управление проектами;

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

– дебаггер с большим количеством возможностей.

К минусам можно отнести:

– отсутствие интегрированой поддержки SVN;

– отсутствие встроенной интерактивной системы справки по тому языку, для которого это IDE предназначено;

– несколько большое потребление памяти ввиду использования Java.

2.3.2.4 Eclipse

Платформа Eclipse создана для построения интегрированных сред разработки (IDE). Несмотря на то, что первоначально среда разработана для языка Java, существуют модули для языков C/C++ и Python это CDT и PyDev соответственно. Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Так как данная среда разработки написана на Java, то она является платформо-независимой [24].

К преимуществам можно отнести:

– обеспечивает согласованный набор возможностей для большинства платформ;

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

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

Аппаратно-програмный модуль для макета интерактивного обучающего робота
Клюшников Евгений
Практическая часть ВКР
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
Средний доход
с одного платного файла
Обучение Подробнее