Петербургский Государственный Университет Математико-механический факультет




Скачать 64.66 Kb.
НазваниеПетербургский Государственный Университет Математико-механический факультет
Дата публикации15.06.2013
Размер64.66 Kb.
ТипКурсовая
lit-yaz.ru > Информатика > Курсовая
Санкт-Петербургский Государственный Университет

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

Реализация управления роботом 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)

Добавить документ в свой блог или на сайт

Похожие:

Петербургский Государственный Университет Математико-механический факультет iconНаш курс санкт-петербургский государственный университет математико...
Перед вами коллективный портрет одного выпуска математико-механического факультета Санкт-Петербургского (Ленинградского) государственного...

Петербургский Государственный Университет Математико-механический факультет iconПетербургский Государственный Университет Математико-механический...
Генерация редакторов по конкретному синтаксису нотаций редакторов (метамоделям) 16

Петербургский Государственный Университет Математико-механический факультет iconПетербургский Государственный Университет Математико-механический...
Таким образом можно создавать языки под конкретную задачу. Например, всего за месяц с помощью метаредактора удалось создать средство...

Петербургский Государственный Университет Математико-механический факультет iconСанкт петербургский государственный университет факультет географии и геоэкологии
...

Петербургский Государственный Университет Математико-механический факультет iconСанкт-петербургский государственный университет юридический факультет кафедра гражданского права
Выпускная квалификационная работа студента 4 курса дневного отделения Жирнова Романа Александровича

Петербургский Государственный Университет Математико-механический факультет icon2013 год Санкт-Петербургский государственный университет сервиса...
До творческих испытаний допускаются абитуриенты, прошедшие консультацию и представленные к творческим испытаниям!

Петербургский Государственный Университет Математико-механический факультет iconСанкт-петербургский государственный университет философский факультет Кафедра культурологии
Отделение русистики и славистики и Центр русистики факультета гуманитарных наук Латвийского университета, Латвия

Петербургский Государственный Университет Математико-механический факультет iconМатематико-механический факультет Кафедра системного программирования...
Тем не менее, для создания достаточно крупных продуктов, такие системы должны иметь возможность коллективной работы. Поэтому у них...

Петербургский Государственный Университет Математико-механический факультет iconЛитература», защищена диссертация на тему «Проблема межнационального...
...

Петербургский Государственный Университет Математико-механический факультет iconМатематико-механический факультет Кафедра системного программирования...
Такие инструменты автоматически порождают алгоритм, выполняющий синтаксически-управляемую трансляцию по заданной спецификации трансляции....



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница