Робот-прилипала
Наш робот,
пользуясь ультразвуковым датчиком, должен следить за протянутой к нему рукой и
выдерживать расстояние в 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 и запущена.
Запустив программу вы увидите, что робот будет двигаться вперед, пока
не почувствует перед собой препятствие. Затем он даст задний ход и будет ехать
назад, пока не упрется задним бампером в стенку. Датчик касания сработает и
робот снова поедет вперед. И так много раз.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.