Место для баннера, продается :)

Проводник

Проводник Проводник

В этой  статье предлагается пример програмирования LEGO-спасателя для передвижения в опасной среде по непрямому пути. Студенты узнают, как модернизировать интеллект их машины так, чтобы она могла реагировать на окружающую среду в реальном времени. Чтобы сделать это, они добавят к своему автомобилю два датчика (датчик света и ультразвуковой датчик). Студенты также узнают, как написать расширенные программы в LabVIEW Education Edition, используя блочные конструкции и циклы.

 

ЗАДАНИЕ

Вместо поиска прямого пути, на сей раз спасатель должен продвигаться к альпинистам неизвестным путем. Автомобиль должен остаться на пути и не сорваться с обрыва по правую руку от него. Понадобятся два датчика: (1) датчик обнаружения края дороги и (2) датчик обнаружения того, что транспорт достиг попавших в беду альпинистов.

ОСНОВЫ

Подобно человеку, роботы в состоянии идентифицировать информацию о внешней среде, чтобы найти лучший путь для проезда. Люди используют свои пять чувств (зрение, слух, вкус, запах и осязание) для восприятия окружающего, для выполнения той же задачи роботы используют датчики. Набор LEGO MINDSTOMS NXT идет со следующими датчиками:

Световой датчик: обнаруживает свет и цвет

Датчик касания: обнаруживает ненажатость/нажатость кнопки или столкновение с чем-либо

Ультразвуковой датчик: измеряет расстояние в сантиметрах и дюймах

Звуковой датчик: измеряет уровень звука в децибелах

Датчик вращения: измеряет число оборотов в градусах

Датчики (за исключением встроенного датчика вращения в моторе) присоединяются к портам 1, 2, 3 или 4 контроллера NXT и передают информацию по соединительным проводам NXT, через порты к "мозгу" NXT.

 

ИНСТРУКЦИИ

Часть I: Введение (15 минут)

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

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

Цель этой работы состоит в том, чтобы помочь студентам подстраивать свой прототип к внутренней среде (классная комната) прежде, чем создать транспортное средство из набора конструктора TETRIX и бросить вызов внешней среде.

3. Подобно человеку, роботы могут познавать свою непосредственную среду через их чувства, известные как датчики. Для решения поставленной задачи роботы студентов будут нуждаться в датчиках. Пройдитесь по датчикам, которые идут с набором NXT, и продемонстрируйте, как каждый из них работает. Также покажите студентам, как просмотреть значения датчиков на экране контроллера NXT (см. Приложение D).

Демонстрируя датчики NXT:

Световой датчик Сравните показания светового датчика для:
• светлые цветные объекты против темных цветных объектов
• ярко освещенная комната против темной комнаты.
Датчик касания Объясните различие между нажатым и ударенным.
Ультразвуковой датчик Сравните показания ультразвукового датчика для объектов (например, Вашей руки) на различных расстояниях от датчика.
Звуковой датчик Сравните показания звукового датчика для громкого звука против тихого звука.
Датчик вращения Запустите мотор (в обоих направлениях), чтобы показать, как направление вращения влияет на показания датчика вращения.

4. Класс идентифицирует две задачи, которые должно выполнить транспортное средство (шаг 1 технического процесса проектирования).

5. Попросите студентов разработать возможное решение(я) поставленной задачи (шаг 3 технического процесса проектирования). Они должны поэкспериментировать с датчиками для получения лучшего представления о том, как они работают. Возможно более, чем одно решение проблемы. Дайте студентам несколько минут, чтобы провести коллективное обсуждение и определить, какие датчики могут использоваться для каждой задачи и почему. Студенты могут выполнить эту задачу и в индивидуальном порядке, и в парах. Они должны записать свои идеи в Журнале конструктора.

6. Пробегитесь по всем возможным решениям и попросите каждую группу выбрать то решение, которое, по их мнению, является наилучшим (шаг 4 процесса разработки). Это будет то, что они должны осуществить.

 

Часть II: Создание (15 минут)

1. Возвратите транспортные средства (из урока 1) каждой группе.

2. Дайте студентам несколько минут, чтобы провести коллективное обсуждение и определить, где и как выбранные датчики должны быть присоединены к их спасателям.

3. Пусть студенты спроектируют и выполнят соединение датчика с их транспортным средством. Спасатель должен соответствовать следующим проектным ограничениям дизайна с прошлого раза:

a. Меньшие, чем 12”x 9”x 9”, размеры.

б. 2 мотора.

в. Багажник для перевозки груза.

г. Датчик для обнаружения края дороги.

д. Датчик обнаружения того, что транспорт достиг заданного места.

е. Прочность конструкции.

4. Транспортное средство должно пройти следующие тесты для проверки его прочности:

a. Вибротест - встряхивание конструкции не приводит к выпадению составляющих частей.

б. Испытание методом сбрасывания - при сбрасывании транспортного средства с высоты лодыжки не происходит поломка автомобиля.

в. Тест на устойчивость – датчики должны оставаться надежно прикрепленными к спасателю, поскольку он перемещается.

5. Транспортные средства, которые не являются прочными, должны быть перепроектированы.

6. Как только студенты закончат создавать свои подключения датчиков, напомните им задокументировать их проект при помощи зарисовки схемы готового дизайна в Журнале конструктора.

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

 

Часть III: Программирование (40 минут)

1. Студенты узнают о двух структурах программирования, блочных структурах и циклах с условием продолжения, которые позволят им создавать более сложные программы. Используйте пример, чтобы продемонстрировать функциональные возможности этих двух структур. Например, запрограммируйте автомобиль NXT так, чтобы он следовал на расстоянии 10 см позади Вас. Когда Вы дальше, чем на расстоянии в 10 см, автомобиль NXT подъезжает вперед. Когда Вы ближе - он отъезжает.

2. Изобразите схематически программу, которую Вы напишете в блок-схеме, как показано ниже. Спросите студентов, что должен сделать робот, когда Вы будете дальше, чем на расстоянии в 10 см? А что, когда Вы – ближе, чем на 10 см?

3. Покажите студентам, как написать эту программу в LabVIEW с использованием блочных структур. Блочные структуры позволяют Вам выбирать между различными поведениями, основанными на текущих условиях. Селекторный терминал, обозначенный зеленым вопросительным знаком на рамке блочной структуры, определяет, какой случай действует (см. ниже). В данном примере, селектор случая - Булевская переменная. Булевская переменная - это логический тип данных, который являются или истинными, или ложными.

Если ультразвуковой датчик измеряет значение, большее или равное 10 см (истинное), робот отвечает, подъезжая  вперед.

Если ультразвуковой датчик измеряет значение, меньшее или равное 10 см (ложное), робот отвечает, отъезжая назад.

4. Запустите пример кода. Спросите студентов, почему автомобиль передвигается только в одном направлении прежде, чем остановиться? Причина заключается в том, что код выполняется один раз и программа выполнена. Продемонстрируйте это студентам, выполняя программу в прямом режиме с включенным выполнением подсветки. Инструмент выполнения подсветки расположен на панели инструментов блок-схемы (см. ниже).

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

5. Теперь познакомьтесь с циклом с условием продолжения. С помощью этой структуры код повторяется внутри цикла до момента выполнения конечного условия цикла. У LabVIEW есть 2 элемента: (1) счетчик цикла, обозначенный символом i и (2) конечное условие, обозначенное знаком остановки.

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

6. Добавьте логику цикла с условием бесконечного продолжения к блок-схеме, чтобы продемонстрировать логику (см. ниже).

7. Покажите студентам, как добавить бесконечный цикл в коде LabVIEW. Заключите код выбирающей структуры в цикл с условием продолжения и введите ложную константу в конечное условие, щелкая правой кнопкой мыши на знаке остановки конечного условия, затем создайте константу (см. ниже). Это сделает так, что код будет выполняться бесконечно, потому что условие остановки всегда ложное. Чтобы остановить программу на контроллере NXT, нужно нажать кнопку остановки на панели инструментов блок-схемы.

8. Затем покажите студентам, как создать конечный цикл - программа заканчивается, когда соблюдается условие остановки. Вместо того, чтобы вводить ложную константу в условие остановки, введите ее в функцию, которая выводит Булевскую переменную, как сравнение (как показано в коде ниже).

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

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

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

11. Как только студенты закончат набрасывать свой код, попросите их реализовать его в LabVIEW. Установите маршрут, на котором студенты смогут проверить свой код. Студенты должны сначала написать свой код в прямом режиме и использовать инструменты отладки в LabVIEW. Они должны отлаживать свой код до тех пор, пока их транспортное средство не сможет последовательно выполнить задание. В конечном счете, студенты должны проверить своих роботов в удаленном режиме. Напомните им добавлять комментарии к своему коду.

 

Часть IV: Обсуждение классом (20 минут)

1. Когда все студенты справятся с заданием, дайте им возможность представить свой проект и продемонстрировать их окончательное решение. Спросите студентов:

а. Как автомобиль-спасатель обнаруживает обрыв? Альпинистов? Что он делает в каждом из случаев?

б. Какие трудности преодолевали при создании? В программировании?

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

3. Делайте обзор технического процесса проектирования и попросите, чтобы студенты идентифицировали, какие шаги они завершили и которые они пропустили. Как пропущенные шаги, возможно, были полезны?

 

ДОПОЛНЕНИЯ

1. Программирование: Запрограммируйте транспортное средство на возврат к отправной точке.

2. Создание: Создайте механизм подъема флажка, который сообщит о том, что транспортное средство прибыло на место назначения.

3. Командная работа: Запрограммируйте робота ускорить поставку груза при использовании 2 роботов в той же самой среде.

ТИПОВЫЕ ПРОЕКТЫ И ФОТОГРАФИИ

Фотография типового автомобиля NXT:

Вид сбоку                                                            Вид спереди

Это спасательное транспортное средство использует световой датчик для обнаружения обрыва и датчик ультразвука для обнаружения альпинистов.

Блок-схема типовой программы:

Типовой код:

В «истинном» случае транспортное средство поворачивает налево (поворот двигателей в противоположных направлениях).

В «ложном» случае спасатель едет прямо (на обоих моторах).

  • Оцените материал
    (0 голосов)
  • Опубликовано в NXT 2
  • Прочитано 1808 раз

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Наверх

Последние новости от LEGO Mindstorms NXT 2

Лабораторный практик…

29-04-2013 Hits:3275 NXT 2 Capitano - avatar Capitano

Лабораторный практикум №4 по LEGO MINDSTORMS NXT

Целью данного урока является написание кода для подключения Wiimote по Bluetooth при помощи LabVIEW. Приведен пример написания кода для считывания состояния одной кнопки и статуса XYZ ускорения Wiimote.

Read more

Лабораторный практик…

24-04-2013 Hits:15249 NXT 2 Capitano - avatar Capitano

Лабораторный практикум №3 по LEGO MINDSTORMS NXT

Целью данного урока является написание кода, с помощью которого можно будет считывать состояние мотора робота NXT и заставить моторы двигаться, используя инструментарий LabVIEW NXT.

Read more

Лабораторный практик…

22-04-2013 Hits:3417 NXT 2 Capitano - avatar Capitano

Лабораторный практикум №2 по LEGO MINDSTORMS NXT

Целью данного урока является изучение основ среды программирования LabVIEW и получение практических навыков программирования с использованием инструментария LabVIEW NXT. Приведен пример написания кодов для считывания показаний датчиков на NXT-блоке.

Read more

Коментарии в материале

Мишени для тренировок…

01-12-2016 Hits:3150 Спортивная стрельба Capitano - avatar Capitano

Каталог мишеней для тренировок на основе "Официальной мишени для ПТ" Все файлы в формате PDF, при печати использовать реальный размер!

Read more

17.10.2015г. Чемпионат по Fi…

02-10-2015 Hits:1584 Спортивная стрельба Capitano - avatar Capitano

17.10.2015г. Чемпионат по Field Target. Киев.Украина

Приглашаются все желающие, 17 октября 2015г, принять участие в открытых соревнованиях по Field Target, в классах ППП и ПСП до 16,3дж в калибре 4,5мм. 

Read more