(495)240-8280ПН-СБ с 12:00 до 20:00
We speak English

Урок 4.3. Заданное количество поворотов. Пятиугольник

На этом уроке вы будете вводить пользовательские значения углов для поворотов робота-вездехода, который будет перемещаться по маршруту в виде пятиугольника. Также вы будете включать индикатор двумя разными цветами: один цвет загорается во время поворотов, другой во - движения вдоль сторон пятиугольника.

Вы научитесь:

  • Задавать нужное количество поворотов
  • Использовать функции left() и right() с аргументами
  • Использовать разные цвета индикатора при движении робота по маршруту в виде пятиугольника

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

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

Помимо задачи движения робота Rover по заданной траектории вам необходимо, чтобы его индикатор загорался разными цветами. Для этого вы будете использовать цветовой LED индикатор на роботе Rover. Он должен ярко загораться одним цветом, когда робот перемещается вдоль сторон пятиугольника, и другим цветом, когда он поворачивает у вершин.

Сделайте ваш эксперимент немного интереснее. Вы можете вставить маркер или фломастер в держатель для маркера, чтобы робот при движении одновременно рисовал пятиугольник на бумаге (не на столе или на полу!).

Примечание для учителя: Поворот будет происходить под углом 72 градуса, именно стольким градусам равен внешний угол пятиугольника. Сумма всех внешних углов любого пятиугольника (даже неправильного) составляет 360 градусов. Если поделить 360 на 5, получится 72 градуса.

1. Начните свою работу с копирования программы, в которой ваш робот перемещался по маршруту в виде квадрата в предыдущем уроке.

2. Для того чтобы изменить маршрут с квадрата на пятиугольник, нужны всего два изменения: сторон будет не 4, а 5; и угол поворота будет равен 72 градусам:

for i in range(5)
rv.left(72)

3. Далее пока робот Rover перемещается по пятиугольнику, LED индикатор сначала должен загореться тусклым цветом и постепенно по ходу движения стать ярче. Используйте переменную или выражение, которые помогут вам сделать так, чтобы LED индикатор горел ярче с каждым поворотом и каждой новой пройденной стороной. Заодно проверите свои знания по математике.

Будьте внимательны и не забудьте, что значения цветов необходимо указывать в диапазоне от 0 до 255. Вы можете использовать переменную i, которая изменяется от 0 до 4, чтобы вычислить значение цвета.

Вот возможное выражение вычисления: 50 + 50 * i

Обратите внимание на то, что последнее выражение rv.color_rgb(0,0,0) не структурировано. Это говорит о том, что оно не является частью цикла, поэтому LED индикатор не отключается на каждой вершине пятиугольника. Выключается он только один раз - в конце программы. Чтобы это сделать, используйте либо выражение rv.color_rgb(0,0,0), либо rv.color_off(). Они работают одинаково.

Примечание для учителя: Выражение 50+50*i производит значения 50, 100, 150, 200 и 250.
Такое изменение яркости бывает сложно уловить. Можно предложить использовать более радикальный способ - не линейный, а экспоненциальный. Но тут важно учитывать предел диапазона значений.
Один из способов не выходить за пределы нужного диапазона от 0 до 255 - это добавить %256 в выражение. Но это приведет к резкому переходу от больших значений к маленьким. Так что будьте внимательны.