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

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

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

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

Программа на компьютере, написанная на языке C#, выступает в роли клиента. И при отправке команды соединяется с сервером посредством сокетов. Для использования сокетов в среде разработки Visual Studio необходимо подключить библиотеки System.Net и System.Net.Sockets.

Если ошибок нет, то при нажатии на любую из кнопок сформируется команда и отправится на программу сервер, запущенную на Raspberry Pi. Если это команда из блока управление сервоприводами то она имеет следующий вид (тип передвижения)(введенное расстояние)(номер нажатой кнопки). Например, Move10button1. Кнопки передвижения пронумерованы по часовой стрелке начиная с кнопки влево, которой присвоен номер 1. Тип передвижения может быть либо Move либо Turn. Первый тип отвечает за управление двумя сервоприводами, которые будут использоваться для передвижения, а второй за управление дополнительно подключенными тремя сервоприводами. Если же это запрос на данные с датчика, то на сервер передается название датчика. Затем запрос обрабатывается и отправляется ответ. Полученный ответ выводится пользователю на экран в текстовое поле в блоке датчиков (рисунок 8).

Рисунок 8 – Вывод показаний с датчиков

Отправка программы для Arduino также осуществляется с помощью сокетов. Однако для правильного приема сервером файла сначала отправляется текстовое сообщение Файл и приходит ответ, разрешающий загрузку выбранного файла. Чтобы пользователь не мог выбрать файл с неправильным расширением, написан фильтр, который выглядит следующим образом openFileDialog1.Filter = "Arduino ino files(*.ino)|*.ino". Где .ino расширение файлов среды разработки Arduino Sketch.

Прием видеопотока с камеры осуществляется с использованием библиотеки Mjpeg Decoder. Создав объект типа MjpegDecoder используем функцию ParseStream в которую в качестве параметров указываем адресс на который транслируется видеопоток. В данном случае это http://192.168.0.43:8080/?action=stream где 192.168.0.43 IP адресс Raspberry Pi.

3.3 Программное обеспечение Raspberry Pi

Перед тем как пользоваться микрокомпьютером необходимо его правильно настроить. Для первоначальной настройки помимо Raspberry Pi необходимо какое-нибудь устройство вывода видеоинформации и устройства ввода, такие как USB компьютерная мышь и USB клавиатура.

Используем монитор с поддержкой HDMI. Для питания микрокомпьютера используем USB-порт компьютера. Так же необходимо сетевое подключение с помощью Ethernet-кабеля.

Первый шаг это установка операционной системы. В качестве ОС выбрана Raspbian. Это свободная операционная система на основе Debian, оптимизированная для аппаратных возможностей Raspberry Pi. Для установки выбранной ОС на карту micro-SD с компьютера необходимо воспользоваться утилитой Win32 Disk Imager. Данная программа предназначена для создания образов диска для переносных устройств и создания резервных копий этих же устройств.

Подключение к raspberry pi через Ethernet кабель требует знание IP адреса микрокомпьютера. Узнав его подключаем raspberry pi к компьютеру и используем программу PuTTY.

PuTTY это клиент использующий протоколы удаленного доступа SSH и Telnet. С помощью данной программы производится удаленное администрирование системы Linux [32].

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

– портативность, все настройки хранятся в директории программы;

– работа с ключами и версиями протокола SSH;

– наличие фильтра и менеджера сеансов;

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

– поддержка большей части управляющих последовательностей xterm, VT-102, а также значительная эмуляция терминала ECMA-48;

– поддержка IPv6;

– сценарий входа в систему;

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

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

– возможность работы через прокси-сервер;

– поддержка метода zlib@openssh.com (отсроченное сжатие данных до окончания процесса аутентификации).

Для удаленного управления ОС Rasbian используем SSH протокол. Сетевой протокол прикладного уровня, позволяющий производить удаленное управление операционной системой и туннелирование TCP-соединений. обеспечивающий защищенную аутентификацию, соединение и безопасную передачу данных между хостами сети, путем шифрования, проходящего через него трафика, с возможной компрессией данных. Еще одной важной функциональной особенностью, является возможность создания защищенных, шифрованных туннелей, для безопасной передачи через небезопасную среду (например интернет), других сетевых протоколов, так-же с возможность сжатия трафика. Кроме того протокол SSH отлично работает с форвардингом ( переадресация, перенаправление ) портов одной машины на порты другой в том числе и форвардинг удаленных клиентов XWindow.

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

ПО для Raspberry Pi написано на языке python. Программа является сервером и постоянно находится в режиме ожидания. Для создания сокета используем следующие команды sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM), sock.bind(('', 11000)) и sock.listen(1).

При получении команды, используя написанную функцию Lamp мигает подключенная к Raspberry Pi лампочка. С помощью операторов if программа определяет какие пришли данные и что необходимо сделать.

Общение с подключенной Arduino Mega происходит с помощью функций подключенной библиотеки serial. Строка ser = serial.Serial('/dev/ttyACM0', 9600) указывает что Arduino подключена к COM порту ttyACM0 и задается скорость передачи данных 9600 бит/с. Отправка данных осуществляется функцией ser.write(), в параметрах которой указываются данные для передачи. Прием происходит функцией ser.readline(). Функция считывает данные пока не получит символ перехода на новую строку \n. Полученные данные отправляются программе клиенту командой conn.send(receivedData). После чего соединение с клиентом закрывается conn.close().

В целях экономии вычислительных мощностей Raspberry Pi все операции осуществляются с компьютера через терминал PuTTY в консоли.

Пример запуска программы, с использованием консоли. С помощью команд cd переходим в папку, где находится исполняемый файл, и запускаем его. Консоль представлена на рисунке 9.

Рисунок 9 – Запуск серверного приложения

В целях обучения студентов программа выводит в консоль происходящие в данный момент действия (рисунок 10).

Рисунок 10 – Вывод выполненных действий

Для включения камеры необходимо в консоли ввести следующую команду mjpg_streamer -i "input_uvc.so -d /dev/video0 -y -r 640x480 -f 60 -n" -o" "output_http.so -w /www -p 8080". При успешном её выполнении в консоли появится сообщение как на рисунке 11.

Рисунок 11 – Включение камеры

В качестве камеры можно использовать любую USB камеру, поддерживающую формат YUV или MJPG.

Перепрограммирование микроконтроллера осуществляется с помощью установленного на Raspberry Pi Arduino-mk. Mk обозначает Makefile с помощью которого написанный код собирается в hex файл и используя avrdude загружается в микроконтроллер. Так как в программе для микроконтроллера используются нестандартная библиотека необходимо в файле Arduino.mk прописать путь к этой библиотеке. Результатом успешной загрузки является сообщение в консоли (рисунок 12).

Рисунок 12 – Успешная загрузка программы

3.4 Аппаратное обеспечение

Программа для микропроцессора написана в среде разработки Arduino Sketch. Основной используемый оператор – switch-case. В зависимости от полученного значения программа решает, с какого из датчиков получить и отправить значения либо какой-из сервоприводов необходимо задействовать.

Показания датчиков выводятся с помощью команды Serial.print, в конце которых добавляется символ перехода на новую строку \n.

3.4.1 Датчики

Датчики – это преобразователь измеряемой (контролируемой) физической величины в величину, удобную для дальнейшего преобразования или измерения [4]. Датчики, выполненные на основе электронной техники, называются электронными датчиками. В состав датчика входят чувствительные и преобразовательные элементы. Основными характеристиками электронных датчиков являются чувствительность и погрешность. Датчики получили широкое применение в научных исследованиях, испытаниях, системах автоматизированного управления и в других областях деятельности и системах, где требуется получение измерительной информации. Датчики по своему назначению и технической реализации близки к понятию «измерительный инструмент» («измерительный прибор»). Однако показания приборов воспринимаются человеком, как правило, напрямую (посредством дисплеев, табло, панелей, световых и звуковых сигналов и проч.), в то время как показания датчиков требуют преобразования в форму, в которой измерительная информация может быть воспринята человеком. Датчики могут входить в состав измерительных приборов, обеспечивая измерение физической величины, результаты которого затем преобразуются для восприятия оператором измерительного прибора.

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

Говоря о классификаций датчиков, важнейшим признаком является физический принцип действия – принцип преобразования физических величин, который основывается на некотором физико-технической эффекте [2]. Такая классификация приведена на рисунке 13.

Рисунок 13 – Классификация датчиков по принципу действия

Общая классификация датчиков приведена на рисунке 14. В ней учтены многие классификационные признаки и она дает наиболее полное представление о всем разнообразии датчиков.

Рисунок 14 – Виды классификаций датчиков

В соответствии с задачей в аппаратном модуле используются следующие датчики.

Цифровой датчик температуры и влажности DHT11. Состоит из двух основных частей: ёмкостный датчик влажности и термистор. Также в корпусе установлен чип для преобразования аналогового сигнала в цифровой. Датчик показан на рисунке 15.

Рисунок 15 – Цифровой датчик температуры DHT11

Напряжение питания 5 В. Диапазон измерения температур от 0°C до +50°C с точностью ±2°C. Диапазон влажности 20-90% с погрешностью ±5%.

Для управления датчиком необходима библиотека dht.h, которую необходимо импортировать в Arduino IDE

ИК-датчик препятствий для роботов-машин YL-63 (FC-51). Бесконтактный датчик YL-63 обнаруживает объекты в диапазоне расстояний почти от нуля и до установленного предела не вступая с ними в непосредственный контакт. Датчик предназначен для применения, когда не требуется информация о расстоянии до объекта, а только о его наличии или отсутствии. Предельная дистанция регистрации зависит от настройки. Датчик YL-63 имеет дискретный выход. Это оптический датчик регистрирующий увеличение интенсивности отраженного инфракрасного (ИК) излучения в контролируемом пространстве. Изменение отраженного излучения происходит из-за движущихся частей механизмов или перемещения окружающих предметов. YL-63 может размещаться на движущемся объекте для определения положения в окружающем пространстве. Применяется для обнаружения препятствия при движении колесных и гусеничных автоматов. Датчик может стать частью наглядного пособия для обучающихся в области систем управления и автоматики.

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

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

Аппаратно-програмный модуль для макета интерактивного обучающего робота
Клюшников Евгений
Практическая часть ВКР
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 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7026
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее