Учебно-методический комплекс в среде MRDS

Автор работы: Пользователь скрыл имя, 28 Октября 2015 в 16:18, курсовая работа

Описание работы

В последнее время в учебных заведениях появилась и начала развитие робототехника. Учеников обучают программированию роботов и сборке собственных моделей роботов. Наиболее подходящим для этих целей роботом является Lego Mindstorms NXT. На занятиях с образовательными конструкторами LEGO дети строят действующие модели реальных механизмов, живых организмов и машин, проводят естественнонаучные эксперименты, осваивают основы информатики, алгоритмики и робототехники, попутно укрепляя свои знания по математике и физике и приобретая навыки работы в творческом коллективе.

Содержание работы

Техническое задание
3
Глава 1 Описание учебно-методического комплекса
4
1.1 Задачи учебно-методического комплекса
4
1.2 Характеристика контроллера NXT
5
1.3 Интерфейс и возможности среды Microsoft Robotics Developer Studio
7
Глава 2 Разработка и отладка программ
10
2.1 Движение робота по прямой линии
10
2.2 Движение робота по восьмерке
15
Глава 3 Результаты работы программы
21
ЗАКЛЮЧЕНИЕ

Файлы: 1 файл

kursovaya_po_mikroprots.docx

— 2.54 Мб (Скачать файл)

Двойным кликом по блоку, создайте вкладку TurningRadiusToWheelPowers

 

 

 

Щелкните по иконке рядом с Action, появится окно настроек . Для того что бы вписать нужные параметры необходимо нажать на кнопку Add, а для того что бы удалить — Delete

Впишите действие CalculateWheelPowers. Укажите для действия два входных параметра TurningRadius (тип double) и TurnRight (тип bool) и два выходных параметра Left и Right (тип double) (Рис. 25). Параметр TurnRight определяет направление поворота (направо или налево), TurningRadius — радиус поворота.

 

 

 

 

 

 

 

 

 

На диаграмму TurningRadiusToWheelPowers добавьте два блока Calculate и блок Data. Первый блок Calculate извлекает значение TurnRight из входящего сообщения. Блок Data устанавливает количество энергии, подаваемой на левое колесо. Второй блок Calculate вычисляет величину энергии, которая будет подана на правое колесо. Значения, поступающие с блоков Data и Calculate, объединяются с помощью Join .

Блок If, соединенный с блоком Join, используется для проверки значения величины TurnRight

Добавьте необходимые блоки и постройте диаграмму. Если TurnRight = True, то значения, хранящиеся в Left и Right, отправляются на левое и правое колеса, в результате робот поворачивает направо. Если TurnRight = False, тогда значение, хранящееся в Left, отправляется на правое колесо, а значение, хранящееся в Right, — на левое, в результате робот поворачивает налево.

 

Добавьте на основную диаграмму сервис GenericDifferentialDrive и соедините выход блока TurningRadiusToWheelPowers и вход блока GenericDiffrentialDrive (Left с LeftWheelPower и Right с RightWheelPower). Разместите на диаграмме два блока Data, установите значение первого блока в true (тип bool), а второго — в 1 (тип double). Значения, хранящиеся в блоках, отправляются на вход TurningRadiusToWheelPowers .

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

Пусть переменная TurnRight (тип bool) определяет направление движения робота

 

Установите время ожидания сервиса Timer в 5000 миллисекунд (предполагается, что этого времени будет достаточно, чтобы робот проехал круг радиуса 1 метр). Добавьте на диаграмму блок Calculate и соедините его с блоком Timer. В поле блока Calculate введите значение! state. TurnRight. В результате будет получена диаграмма

Процесс выполнения диаграммы.

После запуска диаграммы на экране появляется диалоговое окно с текстом «Ok». После нажатия на кнопку OK будет установлено значение переменной TurnRight, а также поля блока Join (TurnRight и TurningRadius).

Сервис Timer, соединенный с блоками Calculate и Data, после запуска диаграммы запущен не будет, так как у него не установлено время ожидания до очередного срабатывания.

Сообщение с блока Join поступает на вход блока TurningRadiusTo-WheelPowers, после чего запускается блок GenericDifferentialDrive.

Устанавливается значение времени ожидания сервиса Timer.

После ожидания 5000 миллисекунд сервис Timer, соединенный с блоками Calculate и Data, сгенерирует сообщение. С помощью блока Variable в переменную TurnRight записывается ее инвертированное значение. Восклицательный знак в текстовом поле блока Calculate обозначает операцию инвертирования: если в переменной TurnRight хранится значение false, оно будет инвертировано в true и наоборот. Заполняются значения полей блока Join.

Выполняются сервисы TurningRadiusToWheelPowers и GenericDif eren-tialDrive, устанавливается значение времени ожидания сервиса Timer.

 

3. Результаты работы программы

 

Движение робота по прямой

 

 

 

 

 

 

Заключение.

Были разработаны программы для симуляции движения робота по прямой и по «восьмерке» в среде Microsoft Robotics Developer Studio.


 



Информация о работе Учебно-методический комплекс в среде MRDS