Робот-прилипала на базе процессора NXT
Автор: Гузаева Мария Юрьевна
Место работы: МОУ СОШ № 56 УИМ г. Магнитогорска
Должность: учитель информатики
Робот-прилипала
Наш робот, пользуясь ультразвуковым датчиком, должен следить за протянутой к нему рукой и выдерживать расстояние в 30 см. При приближении руки он должен удаляться, а при удалении руки - наоборот приближаться. Программа управления роботом имеет следующий вид.
1.
2.
Сконфигурируйте его как бесконечный цикл.
3. Внутрь цикла поместите блок-переключатель, настроенный на работу с ультразвуковым датчиком.
4. Порог срабатывания блока - 30 см.
5.
6. Внутрь его на ветвь соответствующую меньшим расстояниям поместите еще одни блок-переключатель. С порогом срабатывания в 25 см.
7.
Блок заставляет робот двигаться назад, т.е. удаляться от руки при расстояниях меньших 25 см.
8.
9.
Следующий блок движение останавливает двигатели.
10Т.е. в диапазоне 25-30 см двигатели должны быть выключены.
11
Добавим третий блок-переключатель.
12
Его порог срабатывания уже 35 см.
13
Блок движение останавливает двигатели в диапазоне расстояний 30-35 см.
14
15
Последний (четвертый) блок движение работает в диапазоне >35 см
Он двигает робот вперед, т.е. приближает к руке.
16
Нарисуйте на большом листе бумаги или куске обоев лабиринт, отметьте его начало и конец. Перед вами стоит задача научить робот самостоятельно двигаться по этой траектории. Для выполнения задания вам понадобятся две программы.
Первая - записывает траекторию движения, вторая после запуска - ее воспроизводит.
Программа записи траектории 1
Программа аналогична той, что мы уже рассматривали. Создайте новый документ. Назовите его Record. Левой кнопкой мыши перетащите в рабочую зону иконку Звук.
2
Настройте блок для воспроизведения музыкального тона - ноты A (ля)- в течении 0,5 секунд.
3
Следующим блоком будет блок Воспроизведения/Записи.
4Настройте его для записи (Record) последовательности с именем Labirynth по портам B и C в течении 20-ти секунд. Этого времени должно хватить на прохождение лабиринта.
5
Добавьте еще один блок Звук с теми же параметрами.
6
После звукового сигнала за 20 секунд проведите робот через лабиринт и верните его на исходную позицию. Записанная траектория хранится в памяти NXT.
Программа воспроизведения траектории 1
Создайте новый документ. Назовите его Play. Левой кнопкой мыши перетащите в рабочую зону иконку Звук.
1.
2
Настройте блок для воспроизведения музыкального тона - ноты A (ля)- в течении 0,5 секун
3.
Все программа готова. Каждый при ее запуске робот будет проходить один тот же маршрут.
Следующий датчик, к изучению которого мы приступим, это - ультразвуковой датчик, измеряющий расстояние до препятствия. Робот начинает реагировать на возникающие перед ним объекты, отражающие звуковые волны.
2
Настройте блок, выбрав двигатели B и С, направление движения - вперед, уровень мощности 50%, длительность - неограничена, руль - прямо.
3
Следующим блоком программы будет жди датчик , сконфигурированный для работы с ультразвуковым датчиком (дальномером) на на 4-м порту.
4
Настройки: управление - датчик (sensor), датчик - ультразвуковой датчик (ultrasonic sensor), порт - 4, пороговое условие - "<20", единицы измерений - сантиметры.
5
После этого блока добавим еще один блок движение.
6
Этот блок останавливает моторы B и C. Тормоз должен быть включен.
Перед роботом на расстоянии 0.5 м установите мачту (подставку для шарика). Запустите программу. Робот начинает приближаться к мачте. Как только он приближается к мачте на 20 см, он останавливается.
Ищем заданную линию
Теперь напишем программу для робота, который должен найти определенную по счету черную линию.
Для выполнения задания вам понадобится лист белой бумаги с несколькими параллельными черными линиями.
1
2
Настройте блок, выбрав двигатели B и С, направление движения - вперед, уровень мощности 30%, длительность - неограниченна, руль - прямо.
3
Следующим блоком программы будет блок Цикл.
4
Например, если мы хотим, чтобы робот остановился у четвертой линии, сконфигурируйте цикл на выход при счетчике циклов больше 4.
5
Поместим внутрь цикла блок Жди для датчика освещенности, подключенного порту №3.
Как и в предыдущем задании с четной линией, сначала экспериментально определите диапазон изменений яркости от черной линии до белого фона. В нашем случае он оказался 30-60%. Это значит, что белый фон будет уверенно регистрироваться при освещенности >50.
7
Добавим еще одни блок жди датчик.
8
Черная линия будет регистрироваться при освещенности <35%.
9
Последним блоком программы будет еще одни блок движение.
10
Он настроен на остановку двигателей и торможение.
После запуска программы робот должен проехать некоторое расстояние и остановиться именно у четвертой черной линии.
Бампер с датчиком касания
Теперь наш робот снабжен двумя датчиками: смотрящим вперед ультразвуковым дальномером и задним бампером с датчиком касания. Робот должен определять препятствия как впереди, так и позади себя.
1
Создайте новый документ. Левой кнопкой мыши перетащите в рабочую зону иконку блока цикл.
2
Определите цикл как бесконечный.
3
Внутрь цикла поместите блок движение.
4
Настройте блок, выбрав двигатели B и С, направление движения - вперед, уровень мощности 75%, длительность - неограничена.
5
Следующим блоком внутри цикла будет блок жди, сконфигурированный для работы с ультразвуковым датчиком
6
Настройки блока: контроль - датчик (sensor), датчик - ультразвуковой датчик (ultrasonic sensor), порт -4, расстояние - "<20 см".
7
Следующим блоком внутри цикла будет снова блок движение.
8
Настройки: двигатели B и С, направление движения - назад, уровень мощности 75%, длительность - неограничена.
9
Наконец последним блоком в теле цикла станет блок жди, сконфигурированный для работы с датчиком касания.
10
Настройки блока: контроль - датчик (sensor), датчик - датчик касания (touch sensor), порт - 1, действие - нажат..
11
Нажмите кнопку RUN, программа будет загружена в NXT и запущена.
Запустив программу вы увидите, что робот будет двигаться вперед, пока не почувствует перед собой препятствие. Затем он даст задний ход и будет ехать назад, пока не упрется задним бампером в стенку. Датчик касания сработает и робот снова поедет вперед. И так много раз.
На странице приведен фрагмент.
Автор: Гузаева Мария Юрьевна
→ fidji 28.11.2010 0 4627 699 |
Спасибо за Вашу оценку. Если хотите, чтобы Ваше имя
стало известно автору, войдите на сайт как пользователь
и нажмите Спасибо еще раз. Ваше имя появится на этой стрнице.