5.4. Практикум: Извилистый путь
В этом практическом задании вы будет использовать датчик цвета робота Rover таким образом, чтобы он перемещался по кривой линии на бумаге. **Вам понадобится примерно такой же шаблон маршрута, как показано в примере ниже.
Вы научитесь:
- Использовать датчик цвета таким образом, чтобы робот-вездеход считывал цвета и перемещался по кривой линии на бумаге
Напишите программу, в которой робот Rover перемещается по кривой линии, не сходя с маршрута, как показано на рисунке:
Робот Rover начинает движение с левого края страницы и двигается к правому краю по кривой линии через весь лист бумаги.
Когда робот Rover "видит" красный цвет, он немного поворачивает налево и продвигается вперед. Когда робот Rover "видит" БЕЛЫЙ, он немного поворачивает вправо и продвигается вперед.
Поэкспериментируйте с углом поворота и расстоянием, на которое должен переместиться робот, чтобы посмотреть, как он реагирует на смену цвета.
Если ваш лист бумаги раскрашен в красный и белый, как показано в примере выше, вы можете использовать выражение red_measurement(), чтобы посмотреть, какие значения выдает датчик на каждой стороне листа. Если у вас другие цвета, например, черный, вы можете использовать выражение gray_measurement() (или green_ или blue_).
Примечание для учителя: Учащиеся могут составить свой собственный маршрут. Но на нем не должно быть острых углов, и он должен быть на стыке двух контрастирующих цветов, чтобы робот мог легко различить изменения в цвете. Использование узкой цветной полоски (например, изоленты) затрудняет работу робота Rover, ведь у него всего один датчик света, таким образом, он не может определить, отклонился ли он слишком далеко влево или вправо. А с двумя контрастирующими цветами, как показано в примере, робот Rover "понимает", куда сворачивать, чтобы придерживаться своего маршрута.
1. Здесь представлена короткая исходная тестовая программа из последнего урока. Она показывает значения, которые выдает функция измерения цвета.
Выберите тот тип функции измерения цвета (color_, red_, green_, blue_ или gray_), при котором будет наибольший разброс значений использованных вами цветов и более-менее одинаковые значения при считывании роботом одного и того же цвета.
Также для удобства чтения программы вы можете использовать более понятную переменную, например, color вместо буквы c, как вы делали в предыдущем уроке:
color= rv.color_measurement()
2. Какие этапы должны присутствовать в вашей программе, предназначенной для передвижения робота по маршруту:
- Робот Rover начинает движение с левого или правого края листа бумаги на кривой
- Он "считывает" цвет по ходу движения
- Если цвет красный, робот должен немного повернуть в сторону белой стороны
- В противном случае робот должен свернуть в сторону красной стороны
- Далее он перемещается немного вперед
- И, наконец, следует повторить все шаги, начиная с пункта b, пока робот не достигнет конца маршрута.
Примечание для учителя: Датчик цвета на роботе не всегда может выдавать одинаковые значения, считывая один и тот же цвет. Поэтому в данном уроке лучше всего использовать выражение red_measurement() для перемещения по кривой красного и белого цвета. Следует выбирать контрастирующие цвета (например, черный и белый) и находить такие значения, которые сильно отличаются, чтобы робот понимал, куда ему сворачивать. Вы можете протестировать любые два цвета и посмотреть, какие значения между ними лучше всего подходят именно в работе по вашему проекту.