Практическое задание 1. Простейшее управление роботом, движение по заданной траектории.
- Задания на перемещения:
- Робот проезжает вперед на 3 поворота колеса с мощностью 100;
- Робот проезжает назад на 180 градусов с мощностью 20;
- Робот проезжает вперед в течение 3 секунд с мощностью 50;
- Робот проезжает вперед 3 оборота колеса, останавливается, затем проезжает назад 300 градусов;
- Робот вращает одно колесо:
- Поворот налево на 90 градусов;
- Поворот направо на 45 градусов;
- Поворот направо на 180 градусов;
- Поворот налево на 90 градусов.
- Робот проезжает вперед на 20 см. Рекомендации по решению: для решения задачи используйте формулу длины окружности: L=2r. Измерьте радиус колеса, умножьте на 3,14(значение ) и на 2. Вы получите расстояние, которое робот проедет за 1 оборот колеса.
- Организуйте движение робота по букве Т;
- Организуйте движение робота по букве Z;
- Организуйте движение робота по периметру квадрата со стороной 60 см (на полу).
- Организуйте движение робота по периметру квадрата со стороной 30 см. В программе используйте блок Цикл. Рекомендации по решению: посмотрите внимательно на предыдущую программу. Найдите в ней повторяющиеся элементы. (движение вперед и поворот на 90 градусов). Поместите внутрь блока Цикл повторяющиеся действия и настройте блок на работу по количеству раз.
- Робот двигается вперед в течение 5 с ( настройки блока: мощность моторов 100);
- Робот двигается вперед в течение 5 с (используйте цикл по времени, настройка блока движения: мощность моторов 100, «Включить»);
- Сравните результат этих двух программ. Выполняя какую программу, робот проехал большее расстояние?
Практическое задание 2. Расчет расстояния, пройденного роботом.
Информатика ОГЭ 2023 Кумир Исполнитель Робот
- Робот при одном повороте колеса проедет примерно 12 сантиметров. Рассчитайте, сколько оборотов колеса роботу нужно сделать, чтобы проехать 96 сантиметров.
- Робот имеет радиус колеса примерно 1,5 сантиметра. Рассчитайте, сколько сантиметров он проедет за 1 оборот колеса?
- Робот проедет 25 сантиметров, повернув свои колеса на 600 degrees. Рассчитайте необходимое количество поворотов колес роботу, для преодоления им расстояния в 30 сантиметров.
- Робот при одном повороте колеса проедет примерно 18 сантиметров. Рассчитайте диаметр колеса робота в этом случае.
- Рассчитайте, на сколько градусов повернется колесо робота, для того чтобы робот проехал 52см? (диаметр колеса D=7,2см)
- Робот проезжает 5 см, повернув колеса на 500 градусов. Рассчитайте, сколько оборотов колеса нужно сделать роботу, чтобы проехать 15 см?
- Измерьте радиус колеса вашего робота. Рассчитайте, какое расстояние робот проедет за 5 оборотов колеса. Проверьте полученный результат. Рекомендации по решению: напишите соответствующую программу, загрузите программу в робота и измерьте расстояние, пройденное роботом.
Практическое задание 3. Решение задач с использованием датчика цвета.
Разбор 15 задания по ОГЭ Информатика 2023 (робот) #огэ #информатика #обучение #shorts #short
- Установите на робота сенсор цвета.
- Зайдите в меню, проверьте, работает ли сенсор. Исследуйте, какие значения, отображаются на дисплее робота при установке на:
- красный цвет;
- синий цвет;
- зеленый цвет;
- желтый цвет;
- черный цвет;
- белый цвет.
Решите задачи, используя датчик цвета:
- Робот «учит английский язык». На тестовом поле робот должен правильно «назвать» все цвета.
- Напишите программу для робота таким образом, чтобы при установке робота на черную поверхность он проехал вперед 20 см, на поверхности другого цвета он должен развернуться на 180 градусов.
- «Робот-следопыт». Дан круг белого цвета (радиус равен 1 м), ограниченный черной линией шириной 5 см. Задача робота проехать по окружности черного цвета. Робот устанавливается на черную линию. Рекомендации по решению: Определите цвет поверхности. Если цвет черный, то робот должен проехать 0,3 поворота колеса вперед, а если цвет белый, то робот должен повернуть на 10 градусов вправо. Усовершенствуйте данное решение таким образом, чтобы робот проехал полный круг.
- Используя решение предыдущей задачи, робот должен проехать полный круг в обратном направлении.
- Напишите программу движения робота по траектории, изображенной на рисунке
Рекомендации по решению: в предыдущих задачах робот ехал внутри черной линии. Данное решение задачи не является оптимальным, если траектория будет содержать повороты в разные стороны, то таким способом решить задачу будет невозможно. Для решения таких задач робот должен перемещаться не внутри линии, а по границе черного и белого цветов. Если робот «видит» белый цвет, то он поворачивает в одну сторону, а если робот «видит» черный цвет, то он поворачивает в другую сторону.
- Движение робота по границе черного и белого цветов можно реализовать с использованием двух сенсоров цвета. Это позволит роботу грамотно преодолевать перекрестки. Рекомендации по решению: Разместите датчики цвета с разных сторон от линии, подключите их в 3 и 4 порты на корпусе блока NXT. Составьте программу, рассмотрев все возможные ситуации:
- Датчик, подключенный в 3 порт, находится на поверхности белого цвета и датчик, подключенный в 4 порт, находится на поверхности белого цвета: оба мотора едут вперед;
- Датчик, подключенный в 3 порт, находится на поверхности белого цвета, а датчик, подключенный в 4 порт, находится на поверхности черного цвета: робот поворачивает влево одним мотором;
- Датчик, подключенный в 3 порт, находится на поверхности черного цвета, а датчик, подключенный в 4 порт, находится на поверхности белого цвета: робот поворачивает вправо одним мотором;
- Датчик, подключенный в 3 порт, находится на поверхности черного цвета и датчик, подключенный в 4 порт, находится на поверхности черного цвета: оба мотора едут вперед.
- Задание «Черепащка» ( Мероприятие «РобоROOM — 2012», г. Томск). Дано поле, состоящее из квадратов разного цвета со стороной 20 см. Робот двигается из зоны старта(зеленый квадрат), руководствуясь инструкцией должен добраться до зоны финиша (красный квадрат). Инструкция задается посредством цветных квадратов, размещенных на поле. Квадраты разделены между собой черной линией толщиной 20 мм. Желтый квадрат — повернуть направо на 90 градусов и проехать вперед до другого квадрата. Синий квадрат — повернуть налево на 90 градусов и проехать вперед до другого квадрата. Белый квадрат — проехать вперед до другого квадрата, не поворачивая. Красный квадрат — остановиться — финиш. Расположение квадратов задается непосредственно перед попытками. Рекомендации по решению: в теле цикла можно последовательно установить несколько условий; используйте цикл по сенсору цвета.
Дополнительная информация. Использование датчика цвета в режиме освещенности.
В некоторых модулях NXT нет проверки датчика цвета в режиме освещенности. Напишите программу для отображения показаний датчика цвета на экране модуля NXT:
При запуске данной программы на экране будут отображаться значения, полученные с датчика цвета. Протестируйте программу на поверхности разного цвета, посмотрите, какие значения передает сенсор.
Напишите программу движения робота по черной линии, используя показания, полученные датчиком на поверхностях черного и белого цветов.
Рекомендации по решению: Измерьте показания на поверхности черного цвета и на поверхности белого цвета. Вычислите среднее арифметическое значение между показаниями черного и белого цветов. Данное значение считается значением границы черного и белого цветов, его мы будем использовать как пороговое значение в настройке условия. Значения, большие порогового, робот будет считать белым, а меньшие порогового – черным. Остальная часть программы следования робота по границе черного и белого цветов остается такой же, как и при решении с использованием датчика цвета.
Замечание: в приведенном решении пороговое значение равно 20.
Практическое задание 4. Знакомство с ультразвуковым сенсором.
- Установите на робота сенсор ультразвука.
- Зайдите в меню, проверьте, работает ли сенсор.
- Проверьте, с какими единицами измерения может работать датчик.
Решите задачи, используя датчик ультразвука:
- Робот определяет расстояние до предмета. Если расстояние меньше 30 см, то робот продвигается назад в течение 2 секунд, иначе робот продвигается вперед на 3 оборота колеса. Рекомендации по решению: используйте условие.
- Робот определяет расстояние до предмета. Если расстояние больше 20 см, то робот продвигается вперед на 5 см, иначе робот произносит «Stop». Рекомендации по решению: используйте условие.
- Робот двигается вперед, пока расстояние до предмета более 10 см. Рекомендации по решению: используйте цикл по сенсору или бесконечный цикл с условием.
- Робот перемещается по комнате, объезжая препятствия.
- «Пугливый робот». Робот перемещается по комнате, при появлении предмета на расстоянии 20 см до робота он «пугается» и убегает назад.
- «Робот-сыщик». Дан квадрат со стороной 1 м. В углах квадрата произвольно расставлены 3 баночки. Робот, стартуя из центра квадрата, должен найти все баночки. При обнаружении баночки робот произносит фразу «Yes».
- «Робот-уборщик». Робот находится в центре круга белого цвета (радиус равен 1 м), ограниченного черной линией шириной 5 см. В круге находятся баночки, которые робот должен убрать из круга.
- Задание «Кегельринг плюс» (V очная олимпиада по робототехнике в Алтайском крае, 2015 г.). Задача робота состоит в том, чтобы за минимальное время вытолкнуть из круга кегли, расположенные на белой поверхности; кегли, расположенные на зеленой поверхности, робот не должен выталкивать. Робот перед стартом устанавливается в центр круга. Расположение кеглей на цветных кругах определяется методом жеребьевки перед попыткой.
Практическое задание 5. Знакомство с блоком Sound (работа со звуком).
- Робот проезжает вперед на 20 см, останавливается и произносит «Hello»;
- Робот проезжает вперед на 3 поворота колеса, произносит «Stop» разворачивается на 180 градусов, приезжает обратно и произносит «Ok»;
- Робот двигается вперед в течение 6 секунд и все время произносит стандартный звук Bravo.
Практическое задание 6. Работа со звуком и с сенсором ультразвука.
- Робот ищет препятствия вокруг себя на расстоянии 30 см;
- Робот ищет препятствия, которые находятся от него на расстоянии не менее 15 см. Каждый раз, когда робот находит препятствие, он останавливается и произносит «свою любимую фразу»;
- Напишите программу, выполняя которую робот здоровается со своим другом, только когда подъезжает к нему на расстояние, меньшее 10 см;
- Два робота выехали на встречу друг другу. Напишите программу, используя которую, роботы смогут избежать столкновения (необходимо учесть следующие факторы: правостороннее движение, скорость робота, расстояние до встречного робота).
Практическое задание 7. Знакомство с сенсором нажатия.
- Установите на робота сенсор нажатия.
- Зайдите в меню, проверьте, работает ли сенсор.
- Напишите программу для работы «смелого» робота: робот пугается объекта только тогда, когда наталкивается на него. Поведение робота при испуге может быть различным: робот может «закричать» или «убежать» в другую сторону.
- «Умный» робот. Робот находится в одном из углов квадрата со стороной 1 м. В центре квадрата расположен кубик со стороной 10 см. Роботу необходимо попасть в противоположный угол квадрата, объехав кубик. При решении задачи используется сенсор нажатия.
- «Робот-спринтер». Объявляются соревнования на выявление самого быстрого робота. Робот должен проехать дистанцию за наиболее короткое время. По команде «старт» ответственный за робота нажимает кнопку, и робот начинает движение.
Практическое задание 8. Работа с блоком Display (задания для самостоятельного выполнения).
- Установите в программу блок Display.
- Выберите в настройках блока необходимый объект: Image(картинка), Text(текст), Drawing(геометрический объект), Reset(очистка);
- Выполните настройку координат для вывода в соответствующее место на дисплее.
- После блока Display установите блок Time, чтобы увидеть результат на экране.
- Выполните задания:
- Напишите программу вывода на экран:
- Смайла с улыбкой по центру экрана;
- Часов в левом нижнем углу экрана;
- Точки с координатами (50, 50);
- Линии ((0,0); (30,30));
- Окружности, у которой центр находится в точке (20, 20), а радиус равен 15;
Дополнительные материалы публикации:
Источник: altairobot.ru
Задание a1 для исполнителя Робот
Задание a1 относится к вводным заданиям, посвященным знакомству с основными командами исполнителя Робот. Приведем формулировку этого задания.
a1. Закрасить помеченные клетки.
Опишем сценарий решения задания.
Шаг 1. Подключим к программе модуль Robot и вызовем в начале программы процедуру Task , передав ей в качестве параметра имя задания:
Чтобы не набирать указанный текст, нажмем кнопку и в появившемся окне наберем имя задания RBa1 (префикс RB означает, что решается задача для Робота). Запустим программу (нажав клавишу F9), чтобы увидеть окно Робота с графическим изображением задания:
Шаг 2. Наберем несколько команд Робота:
uses Robot;
begin
Task(‘a1’);
Right;Right;Right;Right;
end.
Запустим программу, после чего нажмем Enter или кнопку «Пуск» чтобы Робот начал выполнять заложенную в него программу:
После окончания движения Робота осуществляется проверка, все ли помеченные клетки закрашены и находится ли Робот в конечной клетке. Если проверка дает отрицательный ответ, то задание не считается выполненным.
Шаг 3. Выполним неверную команду, в результате которой Робот врежется в стенку:
uses Robot;
begin
Task(‘a1’);
Right;Right;Right;Right;
Up;Up;Left;
end.
После запуска программы и нажатия Enter получим следующее окно:
Заметим, что квадратный индикатор состояния Робота окрасился в красный цвет, а последняя команда Left не выполнилась, так как после фатальной ошибки Робот прекратил выполнение задания.
Шаг 4. Исправим ошибку и выполним задание до конца:
uses Robot;
begin
Task(‘a1’);
Right;Right;Right;Right;
Up;
Left;Paint;
Left;Paint;
Left;Paint;
Left;Paint;
Left;
end.
Последний рисунок не нуждается в комментариях.
Заметим, что сведения о выполненных заданиях можно просмотреть, нажав кнопку .
Источник: pascalabc.net
Урок 31
Исполнитель Робот
Цикл «пока»
Работа в среде «Алгоритмика»
А теперь попробуем написать программу для решения очень простой задачи: закрасить все клетки справа от Робота (рис. 3.13).
Правда, сколько именно клеток следует закрасить, не уточнено. Известно только, что:
1) справа на неизвестном расстоянии есть стена;
2) клетки нужно красить, пока Робот не подойдет к стене вплотную.
Воспользуемся тем, что Робот может анализировать и сообщать обстановку вокруг себя, проверяя следующие простые условия:
справа свободно слева свободно сверху свободно снизу свободно закрашено
Ясно, что пока будет выполняться условие справа свободно, нужно выполнять команды:
вправо закрась
Для оформления таких последовательностей действий используется специальная конструкция алгоритмического языка — цикл «пока».
ПОКА справа свободно ДЕЛАТЬ вправо закрась КОНЕЦ
В общем виде цикл «пока» записывается так:
ПОКА ДЕЛАТЬ КОНЕЦ
Блок-схема цикла «пока» имеет вид, показанный на рис. 3.14.
При выполнении этого цикла исполнитель повторяет следующие действия:
1) проверяет записанное после служебного слова ПОКА условие;
2) если условие не соблюдается (Робот ответил «Нет»), то выполнение цикла прекращается, и Робот начинает выполнять команды, записанные после служебного слова КОНЕЦ. Если же условие соблюдается (Робот ответил «Да»), то Робот выполняет тело цикла и снова проверяет условие.
Напишем программу, исполняя которую Робот нарисует на клетчатом поле меандр (рис. 3.12), число витков которого зависит от положения правой стены.
Виток меандра умещается на клетчатом поле, если между клеткой, занимаемой Роботом, и правой стеной есть 1 клетка.
ПОКА справа свободно ДЕЛАТЬ вправо закрась; влево закрась; влево закрась; вверх закрась; вверх закрась; вправо; закрась вправо; вправо; вправо вниз; вниз КОНЕЦ
В зависимости от исходного положения Робота тело цикла пока может не выполниться ни разу. Такая ситуация не является отказом.
♦ Подумайте, каким должно быть исходное положение Робота в программе рисования меандра, чтобы тело цикла не выполнилось ни разу.
Из-за логических ошибок, допущенных при составлении алгоритма, может возникнуть ситуация зацикливания. Это значит, что условие будет всегда соблюдаться, и выполнение цикла «пока» никогда не завершится.
Рассмотрим следующий пример:
ПОКА справа свободно ДЕЛАТЬ вправо; влево КОНЕЦ
♦ Что будет происходить, если справа от Робота нет стены?
Условие в цикле «пока» проверяется только перед выполнением тела цикла, но не в процессе его выполнения.
♦ Подумайте, что произойдет, если Робот начнет выполнять нашу программу рисования меандра с циклом «пока», находясь в следующем исходном положении:
♦ Что общего у циклов «повторить п раз» и «пока»? Какие между ними отличия? Нужны ли две конструкции для описания повторяющихся действий?
Простые и составные условия
В цикле «пока» могут использоваться не только простые, но и составные условия.
Составное условие образуется из одного или несколь¬ких простых условий и служебных слов И, ИЛИ, НЕ.
Рассмотрим составное условие А И В, где А, В — простые условия. Условие А И В выполнено, когда выполнено каждое из двух входящих в него простых условий.
Пусть А — простое условие сверху свободно, В — простое условие справа свободно. Рассмотрим подробно проверку составного условия А ИВ — сверху свободно и справа свободно
В случае а выполнено условие А (сверху свободно), выполнено условие В (справа свободно). Составное условие А И В(сверху свободно И справа свободно)также выполнено.
В случае б выполнено условие А, условие В не выполнено. Составное условие А И В не выполнено.
В случае в не выполнено условие А, условие В выполнено. Составное условие А И В не выполнено.
В случае г не выполнено условие А, не выполнено условие В. Составное условие А И В не выполнено.
♦ Нужно ли проверять условие В в составном условии АИВ, если условие А не выполнено?
Составное условие А ИЛИ В выполнено, когда выполнено хотя бы одно из двух входящих в него простых условий.
Рассмотрим проверку составного условия А ИЛИ В — сверху свободно ИЛИ справа свободно (см. рис. 3.15).
В случае а выполнено условие А (сверху свободно), выполнено условие В (справа свободно). Составное условие А ИЛИ В (сверху свободно ИЛИ справа свободно) выполнено.
В случае б выполнено условие А, не выполнено условие В. Составное условие А ИЛИ В выполнено.
В случае в не выполнено условие А, выполнено условие В. Составное условие А ИЛИ В выполнено.
В случае г не выполнено условие А, не выполнено условие В. Составное условие А ИЛИ В не выполнено.
♦ Нужно ли проверять условие В в составном условии А ИЛИ В, если условие А выполнено?
Составное условие НЕ А выполнено, когда не выполнено условие А.
Пусть А — простое условие закрашено. Рассмотрим проверку составного условия НЕ А (рис. 3.16).
В случае а условие А выполнено, условие НЕ А (НЕ закрашено) не выполнено.
В случае б условие А не выполнено, условие НЕ А (НЕ закрашено) выполнено.
Рассмотрим пример использования составного условия.
Известно, что Робот находится где-то в вертикальном коридоре. Ни одна из клеток коридора не закрашена.
Составим алгоритм, под управлением которого Робот закрасит все клетки этого коридора и вернется в исходное положение.
Так как Роботу предстоит закрасить только клетки коридора, мы должны «научить» его их распознавать. Чем же клетки коридора отличаются от всех прочих клеток поля? Из рис. 3.17 видно, что каждая клетка коридора слева и справа ограничена стеной.
Робот находится в коридоре, пока слева стена и справа стена. В СКИ нашего исполнителя такие условия не предусмотрены. Там есть противоположные условия: слева свободно, справа свободно. Используем служебное слово НЕ:
слева стена → НЕ слева свободно справа стена → НЕ справа свободно Нужное условие примет вид: НЕ слева свободно И НЕ справа свободно.
Представим план действий Робота укрупненными шагами (рис. 3.18):
Для простоты предположим, что над коридором и под коридором есть хотя бы по одной клетке без стен (иначе придется делать дополнительные проверки сверху свободно, снизу свободно).
1. Чтобы закрасить все клетки коридора, находящиеся выше Робота, прикажем Роботу шагнуть вверх и выполним цикл «пока»:
вверх ПОКА НЕ слева свободно И НЕ справа свободно ДЕЛАТЬ закрась вверх КОНЕЦ
Под управлением этого алгоритма Робот закрасит все клетки коридора, находящиеся выше от него, и окажется на клетке рядом с верхней границей коридора.
♦ При каком исходном положении Робота этот цикл не выполнится ни разу?
2. Командой вниз вернем Робота в коридор. Наша задача — вернуть его в исходную точку. Эта точка имеет единственный отличительный признак — она не закрашена. Поэтому пока занимаемая Роботом клетка оказывается закрашенной, будем перемещать его вниз:
вниз ПОКА закрашено ДЕЛАТЬ вниз КОНЕЦ
Под управлением этого алгоритма Робот окажется в исходной клетке.
3. Выполнив команду вниз, Робот пройдет исходную клетку и займет первую клетку, расположенную ниже исходной. Теперь можно закрашивать клетки коридора, расположенные ниже исходной:
вниз ПОКА НЕ слева свободно И НЕ справа свободно ДЕЛАТЬ закрась вниз КОНЕЦ
♦ Возможна ли ситуация, что этот цикл не выполнится ни разу?
4. Так как, выполнив предыдущий алгоритм, Робот окажется под коридором, командой вверх вернем его в коридор. Возвращение в исходную точку обеспечивается алгоритмом:
вверх ПОКА закрашено ДЕЛАТЬ вверх КОНЕЦ
5. По команде закрась Робот закрашивает исходную точку.
Полностью программа управления Роботом выглядит так:
вверх ПОКА НЕ слева свободно И НЕ справа свободно ДЕЛАТЬ закрась вверх КОНЕЦ вниз ПОКА закрашено ДЕЛАТЬ вниз КОНЕЦ вниз ПОКА НЕ слева свободно И НЕ справа свободно ДЕЛАТЬ закрась вниз КОНЕЦ вверх ПОКА закрашено ДЕЛАТЬ вверх КОНЕЦ закрась
Источник: xn—-7sbbfb7a7aej.xn--p1ai