Курсовая работа студентки 245 группы



Скачать 64.66 Kb.
Дата16.09.2014
Размер64.66 Kb.
ТипКурсовая
Санкт-Петербургский Государственный Университет

Математико-механический факультет



Реализация управления роботом LEGO Mindstorms NXT посредством USB
Курсовая работа студентки 245 группы

Птахиной Алины Ивановны

Научный руководитель: ст. преп. Ю.В.Литвинов
Санкт-Петербург

2011
Содержание

Введение.........................................................................................................................................3

Обзор существующих решений....................................................................................................5

Реализация......................................................................................................................................6

Результаты......................................................................................................................................8

Список литературы........................................................................................................................9

Введение


Объекты информатики и программирования сложны для восприятия. Они абстрактны: их трудно понять, представить, сравнить. В связи с этим возникла потребность создания реального исполнителя для демонстрации работы программ, с помощью которого преподавание информатики стало бы значительно проще, интереснее и нагляднее.
Одним из первых эту проблему попытался решить психолог-информатик из MIT Сеймур Пейперт. Он создал  язык программирования LOGO, который должен был быть понятен детям. Его идея заключалась в том, что программируя на этом языке, школьник сразу же видел результаты своей работы – на экране отображалось движение виртуального объекта – черепашки. Благодаря этому языку, школьники отходили от тонкостей программирования и в то же время получали доступ к новым информационным технологиям.
Преподавание информатики как учебного предмета во многих советских школах началось благодаря академику А.П.Ершову и его группе,

к которой принадлежали Г.А.Звенигородский и Н.А.Юнерман. Они разработали первые методики и соответствующие инструментальные средства (Робик, Рапира). Благодаря А.П.Ершову, слова «Программирование — вторая грамотность» стали не просто названием доклада, а лозунгом.


Однако использования нематериального исполнителя было недостаточно. Даже красиво отображающийся на экране, он был мало нагляден. Современный уровень развития вычислительной техники позволяет создание недорогих устройств, как исполняющих внутреннюю программу, так и управляемых по беспроводной связи с персонального компьютера. Такие устройства и соответствующие робототехнические конструкторы уже активно внедряются в школьное образование. Самым популярным среди них является Lego Mindstorms NXT 2.0.
Существует довольно много средств программирования для роботов, в том числе и визуальных.
Однако каждое из них имеет свои недостатки, поэтому мы решили создать новый инструмент и тем самым найти практическое применение технологии быстрого создания визуальных языков QReal. Среда QReal разрабатывалась на кафедре системного программирования СПбГУ в течение нескольких лет силами студентов и аспирантов кафедры Системного программирования. QReal включает в себя средства описания визуальных языков и автоматической генерации графических редакторов.
На данный момент система QReal:Robots позволяет создавать графические программы для роботов Lego Mindstorms NXT 2.0 и исполнять эти программы прямо на компьютере, посылая команды роботу через Bluetooth-интерфейс. Однако не во всех школах, как выяснилось, есть возможность управлять роботом по Bluetooth, и поэтому появилась потребность “общения” с роботом и посылки команд ему посредством USB. Таким образом задача заключается в следующем:

  • реализовать соединение робота с компьютером посредством USB;

  • научиться посылать роботу директ-команды;

  • программа должна функционировать под управлением ОС семейства Windows.

Обзор существующих решений


Libusb - это библиотека, которая дает пользовательским приложениям единый доступ к USB-устройствам в различных операционных системах. Последняя версия: libusb-0.1.12. Поддерживаемые операционные системы: Linux, FreeBSD, NetBSD, OpenBSD, Darwin, MacOS X; для семейства Windows (Windows 98 SE, Windows ME, Windows 2000, Windows XP, Windows Vista, Windows 7) - libusb-win32.

Достоинства данной библиотеки:


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

  • Реализует все стандартные USB-запросы устройств.

  • Поддерживает различные операционные системы.

Недостатки:

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

Fantom - это специальная библиотека NXT, реализующая соединение NXT с персональным компьютером через USB. Существуют две версии данной библиотеки: Fantom for Windows (32 or 64 bit) и Fantom Driver for Mac.

Данная библиотека является более специфичной, нежели библиотека libusb, проще в использовании, не требует навыков разработчиков, и так как задача заключалась в реализации соединения через USB только непосредственно робота NXT, то данная библиотека оказалось самой подходящей.


Реализация

Итак, для того, чтобы поддержать управление по USB в QReal:Robots, была выбрана библиотека Fantom. Чтобы научить робота NXT взаимодействовать с компьютером посредством USB, потребовалось написать тестовое приложение, позволяющее определить: подключен ли робот к компьютеру или нет и позволяющее посылать роботу NXT команды на исполнение.

Соединение

Для непосредственного установления соединения, для начала необходимо задать значение порта, а именно передать в функцию setPort значение “USB”. Далее, запуская библиотечный метод nFANTOM100_createNXTIterator с соответствующими параметрами, мы создаем итератор, который понадобится нам для получения имени устройства. Потом в случае, если не произошло ошибок подключения, с помощью итератора и метода nFANTOM100_iNXTIterator_getName мы получаем имя подключенного устройства. Для этого нам еще понадобится метод nFANTOM100_iNXTIterator_advance. Он будет использоваться в качестве перехода к следующей итерации. Для удаления итератора используется метод nFANTOM100_destroyNXTIterator. Для того, чтобы получить устройство и чтобы в дальнейшем с ним можно было работать, используется метод nFANTOM100_iNXTIterator_getNXT. Чтобы проверить, удалось ли подключить робот к компьютеру, мы проверяем его наличие в списке подключенных к компьютеру устройств с помощью метода nFANTOM100_iNXT_findDeviceInFirmwareDownloadMode.



Посылка директ-команд

Посылка команд роботу NXT на исполнение происходит следующим образом: команда записывается в массив байтов, а потом вызываем метод nFANTOM100_iNXT_sendDirectCommand со следующими параметрами:



  1. само устройство;

  2. ожидается или нет ответ на команду;

  3. сама команда, представленная в виде массива байтов. Например, команда для звукового сигнала будет выглядеть так:

QByteArray command(5, 0);

command[0] = 0x03; // direct command play tone

command[1] = freq;

command[2] = freq >> 8;

command[3] = time;

command[4] = time >> 8;

command[5] = 0x00;

где параметр freq - частота, а time - время исполнения команды.



  1. длина команды;

  2. выходной массив для нашей команды;

  3. длина выходного массива;

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

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

Результаты

В результате работы было реализовано подключение и посылка команд роботу NXT посредством USB. Для этого были рассмотрены и изучены библиотеки для работы с USB-устройствами, изучены их методы и способы взаимодействия с ними. Был проведен анализ существующих решений и выбор наиболее подходящего из них с учетом пожелания учителей школ и формулировкой задачи.

После этого было реализовано приложение, позволяющее осуществлять соединение с роботом NXT и позволяющее посылать ему на выполнение директ-команды, такие как:



  • подача звукового сигнала.

В дальнейшем планируется встраивание поддержки управления робота NXT по USB в среду QReal::Robots.

Список литературы
1) Брыксин Т.А., Литвинов Ю.В., Среда визуального программирования роботов QReal:Robots // Материалы международной конференции "Информационные технологии в образовании и науке", Самара, 2011

2) Lego Mindstorms NXT 2.0. URL: http://mindstorms.lego.com/en-us/Default.aspx/ (дата обращения: 18.05.2011)

3) Библиотека libusb. URL:http://www.libusb.org/wiki (дата обращения: 18.05.2011)

4) Fantom Driver. URL:http://mindstorms.lego.com/en-us/support/files/Driver.aspx (дата обращения: 18.05.2011)



5) nFantom100::iNXT Class Reference. URL: http://me.clustur.com/data/oldcode/NXT++%20Built/doc/developers/fantom%20docs/classnFANTOM100_1_1iNXT.html#a9 (дата обращения: 18.05.2011)

Похожие:

Курсовая работа студентки 245 группы iconКурсовая работа студентки 245 группы Мавчун Екатерины Валерьевны
В настоящее время широко используется gps навигация. В частности, современные средства спутникового позиционирования позволяют отслеживать...
Курсовая работа студентки 245 группы iconКурсовая работа студентки 4xx группы XXXXXXX. X. X научные руководители: XXXXXXXX. X. X xxxxxxxxxxxxx. X. X москва 200X
Влияние кислотности раствора на сорбцию ароматических карбоновых кислот на ппу 5-30
Курсовая работа студентки 245 группы iconКурсовая работа студентки 345 группы
Программы могут однозначно сопоставить похожие последовательности ДНК в геномах разных видов; часто такие последовательности несут...
Курсовая работа студентки 245 группы iconКурсовая работа по линейной алгебре и аналитической геометрии студентки I курса 1033 группы Ярмак Елены Владимировны
Целью курсовой работы является закрепление и углубление полученных студентом знаний и технических навыков по изучению и анализу свойств...
Курсовая работа студентки 245 группы iconКурсовая работа: Студентки группы №999 Ивлевой О. С. Научный к и. н., доцент
Корейской войны писали американцы. И писали по своим канонам. Наряду со многими достоверными сведениями в трудах, изданных в США...
Курсовая работа студентки 245 группы iconКурсовая работа студентки 244 группы Дерипаска Анны Олеговны
Таким образом можно создавать языки под конкретную задачу. Например, всего за месяц с помощью метаредактора удалось создать средство...
Курсовая работа студентки 245 группы iconКурсовая работа по литературе стран изучаемого языка студентки III курса факультета международных отношений группы л-301
Смерть Байрона вызвала на континенте в либеральной части общества чувство печали и была оплакана Гёте (во II ч. "Фауста" в образе...
Курсовая работа студентки 245 группы iconКурсовая работа студентки 3 курса Бабской Евгении Михайловны Однонуклеотидные полиморфизмы ppar-зависимых генов

Курсовая работа студентки 245 группы iconКурсовая работа студентки 2-го курса Гарушянц С. Тьюторы: Равчеев Д. А., Герасимова А. В
Компьютерный анализ регулона, отвечающего за биосинтез триптофана, в геномах архей
Курсовая работа студентки 245 группы iconКурсовая работа Студентки третьего курса отделения истории Японии
История и предпосылки возникновения теорий о пребывании Ёсицунэ на Хоккайдо и отождествления его с Чингисхано
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org