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

Урок 6.1. Движение и график

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

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

  • Понимать, что такое система координат в работе с роботом Rover, исходное положение и направление движения
  • Управлять роботом Rover, чтобы он перемещался в определенную точку на координатной плоскости
  • Отмечать точки передвижения робота Rover по координатной плоскости на экране калькулятора TI-Nspire CX II-Т

У робота Rover есть встроенная система координат подобная прямоугольной системе координат. Когда вы вводите выражение import ti_rover as rv, позиция робота Rover на сетке координат устанавливается в точке (0,0), а сам вездеход повернется в направлении 0 градусов (в сторону положительной части оси абсцисс или "на восток").

Примечание для учителя: В роботе Rover также можно использовать полярную систему координат!

В дополнение к сетке координат робота Rover вы также можете использовать систему координат на экране, которую можно найти в модуле ti_plotlib, и его также нужно импортировать в шаблон проекта Rover Coding для этой цели. Если вы используете только три представленные снизу выражения из меню menu > TI PlotLib > Setup, то при запуске программы у вас появится такой экран, как показано на рисунке ниже:

plt.window(-10,10,-7,7)
plt.grid(1,1,"dashed")
plt.axes("on")

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

Примечание для учителя: Единицей передвижения робота Rover по координатной плоскости является 10 см.
Единицу шага сетки можно изменить, используя выражение rv.grid_m_unit(scale_value).
Значение шкалы (scale_value) по умолчанию равно 0.1 м/единицу (10см).
Чтобы сделать единицу шага сетки равную одному дюйму, используйте следующее значение шкалы scale_value 0.0254.

1. Первая точка, которую необходимо нанести на систему координат, это исходная позиция робота Rover: (0, 0). Для этого вам понадобится следующее выражение:

plt.plot(x,y,"mark")

Его можно найти в меню: menu > TI PlotLib > Draw.

Измените точку (x, y) на (0, 0), затем выберите из предложенного списка обозначение этой точки на экране. Она будет показывать, где находится робот. Если вы сейчас запустите программу, вы увидите это обозначение (у нас в примере это обычная точка) - в исходном положении по центру экрана.

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

2. Далее вы даете команды вашему роботу Rover перемещаться к точкам, находящимся во всех четырех квадрантах. Насколько далеко они могут находиться от центра, зависит от места, которым вы располагаете. Для этого вам понадобится выражение rv.to_xy(). Его можно найти в меню menu > TI Rover > Drive.

rv.to_xy(1,1)
rv.to_xy(-1,1)
rv.to_xy(-1,-1)
rv.to_xy(1,-1)

Не обязательно использовать именно 1 или вводить те же самые цифры, которые указаны в примере. Задайте свои координаты. Единственное обязательное условие в этом проекте - сделать так, чтобы робот Rover "заезжал" во все четыре квадранта.

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

Примечание для учителя: Робот Rover может немного "ерзать", когда нацеливается на следующую точку. Так работает гороскопический прибор вездехода Rover, настраиваясь на нужное направление перед началом движения.

3. Добавьте выражения plt.plot(x,y,"mark") в свою программу, чтобы нанести точки маршрута на экран после того, как робот Rover достигнет их. Попробуйте сделать это сейчас. Исправно ли работает программа?

Примечание для учителя: Построение точек на экране - это довольно простой и быстрый процесс. Для этого используются инструменты модуля ti_plotlib.

4. Программа работает не так, как планируется! Все точки маршрута на экране появляются буквально сразу после запуска программы. А ведь роботу Rover требуется определенное время, чтобы добраться до всех четырех точек. Как можно синхронизировать движение вездехода с нанесением точек на сетку координат?

5. Используйте функцию rv.wait_until_done(), которую можно найти в меню menu > TI Rover > Commands, чтобы немного приостановить работу программы, пока робот Rover движется. Вам понадобится одна из этих функций для каждой точки, к которой перемещается вездеход. В каком порядке робот проходит точки, не имеет значения. Попробуйте теперь запустить программу. Где именно нужно прописать функции, приостанавливающие работу программы?

Примечание для учителя: Функции wait_until_done() нужно вставлять после выражения rv_to_xy(), но перед plt.plot(). Так для каждой точки:

6. В конце своей программы отправьте робота Rover в исходную точку (0, 0). Используйте выражение

rv.to_angle(0, "degrees")

Его можно найти в меню menu > TI Rover > Drive. После этого робот будет снова развернут на "восток", как было в начале программы. Теперь можно сказать, что вы "поставили игрушку на место".