Робот-курьер: план и программа
Итоговая задача, часть 1: выбираешь уровень, планируешь маршрут и собираешь программу из проверенных частей.
Результат урока
Выбран уровень итоговой задачи, записан и проверен план маршрута. Программа проходит весь маршрут хотя бы в пробном заезде, работающие версии сохранены.
Ты научишься
- Выбрать уровень итоговой задачи по своим выполненным заданиям ●, ★ и ★★.
- Разбить задачу на участки и записать план маршрута до написания кода.
- Собрать программу из функций прошлых уроков и проверять её по частям.
- Сохранять рабочую версию после каждой проверенной части.
Нужно знать
- 2.1 Моторы: едем и останавливаемся
- 2.2 Повороты и развороты
- 3.1 Датчики линии и первое следование
- 3.2 П-регулятор: плавно и быстро
- 4.1 Находим и считаем перекрёстки
- 4.2 Повороты на перекрёстке и маршрут
- 5.1 Ультразвук: видим груз
- 5.2 Захват: берём и ставим
Понадобится
Твоя задача
Ты — инженер службы доставки. Такие роботы-курьеры уже ездят по тротуарам и складам: сами находят дорогу, забирают груз и привозят его по адресу. Твой робот должен сам выехать со старта, перевезти два груза на новые места и остановиться в финише. Во время заезда ему никто не помогает: всё решает твоя программа.
Новых команд здесь нет. Всё нужное ты уже делал: ездил и поворачивал, держался линии с П-регулятором, находил перекрёстки, видел груз ультразвуком и работал захватом. Сейчас нужно собрать эти умения в одну программу. В уроке 6.2 — зачётные заезды.
- Чем
setup()отличается отloop()и где должен выполняться маршрут, чтобы после финиша робот стоял? - Как программа понимает, что под роботом перекрёсток?
- Что делать, если ультразвук не получил эхо?
Выбери уровень
6 минЧто должен делать робот. Теперь роботу нужно доставить два груза и закончить поездку на финише. Нового датчика не добавляем: объединяем уже проверенные возможности — движение, поиск линии и перекрёстков, подъезд по ультразвуку и захват.
Что используем и как это работает. План — последовательность действий с условиями завершения. Для каждого участка запиши, какие показания нужны, какое действие выполняют моторы или захват и по какому признаку переходить дальше. Функции позволяют назвать эти действия и проверить их по отдельности; вызов функции передаёт управление её командам и затем возвращает его в маршрут.
Как связать измерение с действием. Перед сборкой маршрута проверь каждую функцию своим коротким опытом. Пустая функция в заготовке не выполняет действие, даже если программа успешно собирается. После последнего участка нужна явная остановка; повторение маршрута в loop без решения автора запустило бы доставку заново.
Задача есть в трёх уровнях. Правила и критерии оценки у них общие, а поля разные. Уровень выбирают по тому, какие задания уроков ты уже выполнил: задания ★ готовили к среднему полю, ★★ — к продвинутому.
| Уровень итоговой задачи | Какие задания уроков нужны |
|---|---|
| Начальный S-образная линия, два перекрёстка, порядок действий известен заранее. | ● Основное 1.12.12.23.13.24.14.25.15.2 |
| Средний Сеть дорог, четыре перекрёстка, проезд прямо и повторные встречи с перекрёстками. | ● Основное 1.12.12.23.13.24.14.25.15.2 ★ Средний уровень 1.12.12.23.13.24.14.25.15.2 |
| Продвинутый Шесть перекрёстков, крутые S-дуги, маршрут по карточке составляешь сам. | ● Основное 1.12.12.23.13.24.14.25.15.2 ★ Средний уровень 1.12.12.23.13.24.14.25.15.2 ★★ Продвинутый уровень 1.12.12.23.13.24.14.25.15.2 |
- Открой бортовой журнал и посмотри, какие задания ●, ★ и ★★ у тебя получились.
- Выбери уровень сам и отметь его ниже. Если сомневаешься, начни с начального: после зачёта можно попробовать следующий.
Уровень выбран и записан в журнал.
Задача есть в трёх уровнях. Правила и критерии оценки у них общие, а поля разные. Поле выбирают по тому, какие задания уроков ты уже выполнил.
| Уровень итоговой задачи | Какие задания уроков нужны |
|---|---|
| Начальный S-образная линия, два перекрёстка, порядок действий известен заранее. | ● Основное 1.12.12.23.13.24.14.25.15.2 |
| Средний Сеть дорог, четыре перекрёстка, проезд прямо и повторные встречи с перекрёстками. | ● Основное 1.12.12.23.13.24.14.25.15.2 ★ Средний уровень 1.12.12.23.13.24.14.25.15.2 |
| Продвинутый Шесть перекрёстков, крутые S-дуги, маршрут по карточке составляешь сам. | ● Основное 1.12.12.23.13.24.14.25.15.2 ★ Средний уровень 1.12.12.23.13.24.14.25.15.2 ★★ Продвинутый уровень 1.12.12.23.13.24.14.25.15.2 |
- Открой бортовой журнал. Выпиши, какие задания ★ у тебя получились и в каких уроках.
- Сравни со списком, который нужен для среднего поля. Чего не хватает?
- Выбери поле сам. Если выбираешь среднее, но какого-то задания ★ нет, запиши, как и когда ты его доделаешь.
Поле выбрано, в журнале — список выполненных заданий ★ и план для недостающих.
Задача есть в трёх уровнях. Правила и критерии оценки у них общие, а поля разные.
| Уровень итоговой задачи | Какие задания уроков нужны |
|---|---|
| Начальный S-образная линия, два перекрёстка, порядок действий известен заранее. | ● Основное 1.12.12.23.13.24.14.25.15.2 |
| Средний Сеть дорог, четыре перекрёстка, проезд прямо и повторные встречи с перекрёстками. | ● Основное 1.12.12.23.13.24.14.25.15.2 ★ Средний уровень 1.12.12.23.13.24.14.25.15.2 |
| Продвинутый Шесть перекрёстков, крутые S-дуги, маршрут по карточке составляешь сам. | ● Основное 1.12.12.23.13.24.14.25.15.2 ★ Средний уровень 1.12.12.23.13.24.14.25.15.2 ★★ Продвинутый уровень 1.12.12.23.13.24.14.25.15.2 |
- Выпиши из журнала задания ★★, которые у тебя получились, и числа надёжности из уроков: ошибку поворота, сколько раз робот прошёл крутую дугу, точность остановки у груза, надёжность доставки из урока 5.2.
- Для продвинутого поля назови два самых слабых умения по этим числам.
- Выбери поле сам и обоснуй выбор числами. Запиши, что ты сделаешь со слабыми умениями до зачёта.
Поле выбрано и обосновано числами из журнала, два слабых умения и план по ним записаны.
Разберись в задании своего уровня
8 мин- Выехать из зоны старта влево и найти линию.
- По линии пройти левую дугу и доехать до первого перекрёстка.
- Перевезти груз 1 с верхнего конца ответвления на нижний — в место 1.
- Доехать до второго перекрёстка и перевезти груз 2 с нижнего конца на верхний — в место 2.
- Пройти правую дугу, выехать с конца линии в зону финиша и остановиться.
У старта и финиша есть короткие участки без линии: там робот едет прямо по твоим командам.
Груз 1 → место 1, груз 2 → место 2, затем финиш. Маршрут задан по перекрёсткам:
| Участок | Через перекрёстки |
|---|---|
| Старт → груз 1 | А → В → Б |
| Груз 1 → место 1 | Б → В |
| Место 1 → груз 2 | В → Г |
| Груз 2 → место 2 | Г |
| Место 2 → финиш | Г |
Куда поворачивать на каждом перекрёстке — налево, направо или прямо, — определяешь ты. Через некоторые перекрёстки робот проезжает несколько раз. Ветки, которых нет в маршруте, не используются.
Банки стоят в позициях 1 и 5. Перед планированием вытяни карточку из стопки: на ней написано, в каком порядке и куда их перевезти.
| Карточка | Первая доставка | Вторая доставка |
|---|---|---|
| 1 | 1 → 4 | 5 → 3 |
| 2 | 1 → 3 | 5 → 4 |
| 3 | 5 → 3 | 1 → 4 |
| 4 | 5 → 4 | 1 → 3 |
Готового маршрута нет: путь по перекрёсткам ты выбираешь сам, до запуска. Правильных путей несколько. Справа на поле — крутая S-образная связка.
Проверь, что твой робот проходит S-образную связку с грузом.
- Покажи пальцем на схеме: старт, оба груза, оба места доставки, финиш.
- Прочитай критерии оценки в конце урока. За что дают больше всего баллов?
Ты можешь пересказать задание своего уровня своими словами.
Проверь умения по отдельности
10 минПосле загрузки старой программы робот может сразу поехать. Загружай программы при выключенном питании моторов, первый запуск — на подставке.
Если хотя бы одно умение не работает, вся программа не поедет. Проверь каждое коротким опытом.
- Оба колеса крутятся вперёд и назад; моторы стоят, когда выключены (урок 2.1).
- Робот поворачивает на 90° и разворачивается на 180° (урок 2.2).
- Робот едет по линии с П-регулятором и проходит дуги своего поля (урок 3.2).
- Робот находит перекрёсток и поворачивает с него на нужную линию (уроки 4.1, 4.2).
- Ультразвук видит груз на нужном расстоянии (урок 5.1).
- Захват берёт, держит и отпускает груз (урок 5.2).
Все умения проверены. То, что не работает, ты сначала чинишь по разделу «Если не получилось» своего урока.
Если хотя бы одно умение не работает, вся программа не поедет. Проверь каждое три раза коротким опытом.
| Умение | Урок | Прошло из 3 |
|---|---|---|
| Колёса вперёд, назад и стоп | 2.1 | |
| Поворот 90° и разворот 180° | 2.2 | |
| Линия и дуги своего поля | 3.2 | |
| Перекрёсток и поворот с него | 4.1, 4.2 | |
| Остановка перед грузом | 5.1 | |
| Захват берёт и отпускает | 5.2 |
Таблица заполнена. Умения, которые прошли меньше трёх раз из трёх, ты чинишь первыми.
Проверь умения по своим числам: для каждого запиши, какой результат ты считаешь надёжным, и проверь пять раз.
| Умение | Мой критерий | Прошло из 5 |
|---|---|---|
| Прямо: увод на 1 м | не больше … см | |
| Поворот 90° | ошибка не больше …° | |
| Крутая дуга своего поля | без схода | |
| Перекрёсток и поворот с него | на новую линию | |
| Остановка у груза | … ± 1 см | |
| Захват | груз не выпадает при развороте |
Умения, которые не прошли пять раз из пяти, отметь — с них начнёшь работу.
Критерии записаны числами, у каждого умения — результат из пяти проб.
Составь план маршрута
16 минХороший инженер сначала планирует, потом пишет код. Самое сложное — повороты на обратном пути: «налево» и «направо» считаются от носа робота, а не от тебя.
| Участок | Что делает робот | Какая функция |
|---|---|---|
| Старт → линия | Едет прямо до линии | driveStraight() |
| … |
- Заполни таблицу плана в бортовом журнале. Одна строка — один участок.
- Для каждого перекрёстка запиши: откуда приехал, куда повернул, что делаешь дальше.
- Проведи выключенного робота по плану руками. Куда смотрит его нос после каждого разворота?
- Запиши, где скорее всего будет ошибка и как ты это проверишь.
В плане семь участков: выезд, линия до перекрёстка 1, груз 1, место 1, перекрёсток 2, груз 2 и место 2, финиш.
В плане есть повороты налево, направо и проезд прямо. Каждая встреча с перекрёстком записана отдельной строкой — даже если это тот же перекрёсток. Программа не видит букв: она знает только, какое по счёту решение сейчас выполняет.
План составлен по своей карточке. Для каждой доставки ты выбрал путь по буквам перекрёстков и можешь объяснить, почему именно его. Маршрут записан так, чтобы для другой карточки менялись только решения на перекрёстках.
Подсказка: Робот развернулся — а что теперь «налево»?
Встань и повернись так же, как робот. Твоя левая рука показывает его «налево».
План записан. Напарник прошёл по нему с выключенным роботом и не нашёл ошибок.
Подготовь заготовку
6 минПрограмму собираем из функций. Функция — действие с понятным именем, например turnLeft(). Когда маршрут записан вызовами функций, его легко сверить с планом.
// Робот-курьер: моя программа итоговой задачи.// Это заготовка, а не решение. Наполни функции своим проверенным кодом// из прошлых уроков и проверяй каждую отдельно, прежде чем собирать маршрут. // --- Моторы (урок 2.1) ---const int LEFT_DIR_PIN = 7;const int LEFT_SPEED_PIN = 6;const int RIGHT_DIR_PIN = 4;const int RIGHT_SPEED_PIN = 5;const int FORWARD = HIGH; // --- Датчики линии (уроки 3.1 и 3.2) ---const int LEFT_SENSOR_PIN = A4;const int RIGHT_SENSOR_PIN = A5;// Перенеси сюда свои измерения белого и чёрного и коэффициент П-регулятора. // --- Ультразвук (урок 5.1) и захват (урок 5.2) ---// Перенеси сюда контакты и настройки из своих проверенных скетчей. void stopMotors() { // Остановить оба мотора (урок 2.1).} void driveStraight() { // Проехать прямо проверенное время (урок 2.1), например въезд в зону финиша.} void turnLeft() { // Повернуть налево на 90° (урок 2.2) или с перекрёстка до линии (урок 4.2).} void turnRight() { // Повернуть направо.} void turnAround() { // Развернуться на 180° (урок 2.2).} void followLineToCrossing() { // Ехать по линии с П-регулятором до перекрёстка (уроки 3.2, 4.1). // После перекрёстка сначала съедь с широкой чёрной области.} void approachCan() { // Ехать по линии и остановиться перед грузом по ультразвуку (урок 5.1).} void pickUp() { // Остановить моторы и закрыть захват (урок 5.2).} void putDown() { // Открыть захват и отпустить груз (урок 5.2).} void setup() { // Подготовь выводы, датчики и захват. Убедись, что моторы стоят. // Здесь — твой маршрут: вызывай функции в порядке своего плана. stopMotors();} void loop() { // Задание выполняется один раз в setup(). После финиша робот стоит.}
- Открой заготовку и сохрани её под своим именем.
- Перенеси в функции свой проверенный код из прошлых уроков.
Как это устроено: Зачем делить программу на функции
Если поворот работает неправильно, исправлять нужно одно место — саму функцию, а не каждый поворот на маршруте. А маршрут в setup() читается почти как план из журнала.
Программу собираем из функций. Когда маршрут записан вызовами функций, его легко сверить с планом.
// Робот-курьер, средний уровень: маршрут по плану из журнала.// Функций здесь нет: перенеси свои проверенные функции из уроков 2.1–5.2 в раздел ниже.// Маршрут в setup() разбит на участки плана. В каждый участок впиши вызовы функций. // --- Контакты, измерения и настройки из своих скетчей --- // --- Мои функции (перенеси и проверь каждую отдельно) ---// Нужны: остановка моторов, прямой проезд, линия до перекрёстка, проезд перекрёстка// прямо, поворот налево и направо на перекрёстке, разворот на линии, подъезд к грузу,// взять груз, поставить груз. void setup() { // Подготовь выводы, датчики и захват. Моторы стоят. // Участок 1. Старт → линия: // Участок 2. Линия → груз 1: // Участок 3. Груз 1 → место 1: // Участок 4. Место 1 → груз 2: // Участок 5. Груз 2 → место 2: // Участок 6. Место 2 → финиш, стоп:} void loop() { // Задание выполняется один раз в setup(). После финиша робот стоит.}
- Открой заготовку и сохрани её под своим именем. Готовых функций в ней нет.
- Перенеси свои проверенные функции из уроков 2.1–5.2. Проверь по списку в заготовке, что ни одной не забыл.
- Перед каждой строкой плана в журнале запиши, какая функция её выполняет. Если для строки нет функции — напиши её и проверь отдельно.
Все нужные функции перенесены и проверены, у каждой строки плана есть своя функция.
Требование 1. Программа собрана из твоих проверенных программ уроков 4.2–5.2, а не из заготовки:
- действия — функции: линия до перекрёстка, решения на перекрёстке, подъезд к грузу, взять, поставить, разворот;
- маршрут — данные, отдельные от действий: для другой карточки меняются только строки маршрута, функции не трогаются;
- у каждой функции, которая чего-то ждёт, есть защита от бесконечного ожидания.
Своей программы из урока 5.2 нет — возьми у преподавателя решение урока 5.2 как основу; маршрут и защиты пишешь сам.
- Запиши в журнал список функций своей программы: что делает каждая и в каком уроке проверена.
- Отметь функции без защиты от бесконечного ожидания и добавь защиту.
Список функций с уроком проверки, маршрут отделён от действий, защиты добавлены.
Запиши решения на перекрёстках массивом, например char route[] = {'L', 'S', 'R'};, и выполняй их по очереди в цикле, как в уроке 4.2. Тогда для новой карточки достаточно поменять одну строку.
Часть 1: от старта до первого груза
12 мин- В
setup()вызови функции первого участка: выезд, линия, перекрёсток, поворот, подъезд к грузу. - Проверь на поле только эту часть.
- Работает — сохрани копию: «рабочая версия 1».
Робот выезжает со старта, доезжает по линии до груза 1 и останавливается перед ним.
| Что видишь | Что проверить |
|---|---|
| Робот не находит линию после старта | Смотрит ли нос робота вдоль линии? Хватает ли длины выезда? |
| Робот останавливается на дуге | Дуга — не перекрёсток. Проверь условие поиска перекрёстка. |
| Робот проезжает перекрёсток | Скорость велика или условие перекрёстка не срабатывает. |
| После поворота робот теряет линию | Проверь, что поворот заканчивается, когда датчик нашёл новую линию. |
- Запиши в журнал вызовы функций первого участка по плану: выезд, линия, перекрёстки, повороты, подъезд к грузу. Потом перенеси их в
setup(). - Проверь на поле только эту часть три раза. Робот должен каждый раз остановиться перед грузом 1.
- Работает — сохрани копию: «рабочая версия 1».
Подсказка: Где искать ошибку
Сравни, что сделал робот, со строкой плана. На какой строке разошлось? Проверь эту одну функцию отдельно.
Робот три раза подряд выезжает со старта и останавливается перед грузом 1.
Приёмка части 1. Робот от старта до груза 1: три раза из трёх, в том числе когда его поставили в зоне старта на 2 см левее или правее и чуть повёрнутым.
- Запиши маршрут первой части в данные программы и проверь.
- Каждую неудачу запиши: какая функция не сработала и почему.
- Работает — сохрани «рабочую версию 1».
| Запуск | Как стоял на старте | Результат | Что сорвалось |
|---|---|---|---|
| 1 | Ровно | ||
| 2 | 2 см левее | ||
| 3 | 2 см правее, повёрнут |
Три запуска из трёх с разной постановкой на старте, неудачи разобраны.
Часть 2: первая доставка
12 мин- Допиши: захват, разворот, путь к месту 1, отпускание, возвращение к дороге.
- Проверь только эту часть: поставь робота перед грузом 1 и запусти.
- Работает — сохрани «рабочую версию 2».
Подсказка: Когда закрывать захват?
Сначала останови моторы, потом закрывай захват. Подъезд заканчивай по измерению ультразвука. Если эха нет, это не значит «груз совсем рядом».
Подсказка: Груз уезжает вместе с роботом
Отъезжай только после того, как захват полностью открылся.
Груз 1 стоит в месте 1, захват открыт, робот на дороге и смотрит туда, куда нужно дальше.
- Запиши в журнал вызовы функций первой доставки: захват, разворот, путь к месту 1, отпускание, возвращение к дороге. Потом допиши их в программу.
- Проверь только эту часть три раза: ставь робота перед грузом 1 и запускай.
- Работает — сохрани «рабочую версию 2».
Подсказка: Порядок с захватом
Вспомни правило урока 5.2: остановиться — закрыть; открыть — подождать — отъехать.
Три раза подряд груз 1 стоит в месте 1, робот на дороге и смотрит туда, куда нужно дальше.
Приёмка части 2. Первая доставка три раза из трёх, в том числе когда груз сдвинут на 1 см в сторону от линии.
- Допиши в данные маршрута первую доставку и проверь её отдельно: ставь робота перед грузом 1.
- Как робот узнаёт место отпускания? Запиши, чем это место определяется в твоей программе и насколько точно.
- Работает — сохрани «рабочую версию 2».
Три доставки из трёх, включая сдвинутый груз; способ найти место отпускания и его точность записаны.
Часть 3: вторая доставка и финиш
15 мин- Допиши вторую доставку и путь к финишу. Груз 2 стоит в другом месте, поэтому повороты будут другими — сверься с планом.
- В конце — прямой въезд в финиш и остановка. После финиша робот должен стоять.
- Запусти весь маршрут от старта. Сохрани «рабочую версию 3».
Подсказка: Как понять, что пора въезжать в финиш
Чёрной метки финиша на поле нет. Используй последний ориентир — конец дуги или последний перекрёсток — и проверенное время прямого движения. Два «белых» показания ещё не значат, что линия кончилась: она может быть между датчиками.
Робот проходит весь маршрут хотя бы в одной пробе. Все рабочие версии сохранены.
- Допиши вторую доставку и путь к финишу по плану. Груз 2 стоит в другом месте, поэтому повороты будут другими. Каждую встречу с перекрёстком — отдельной строкой.
- В конце — прямой въезд в финиш и остановка. После финиша робот должен стоять.
- Запусти весь маршрут от старта. Если сорвалось — запусти с места срыва только оставшуюся часть. Сохрани «рабочую версию 3».
Подсказка: Как понять, что пора въезжать в финиш
Чёрной метки финиша на поле нет. Используй последний перекрёсток и проверенное время прямого движения.
Робот проходит весь маршрут хотя бы в одной пробе. Все рабочие версии сохранены.
- Допиши вторую доставку и путь к финишу. После финиша робот стоит.
- Запусти весь маршрут от старта. Сохрани «рабочую версию 3».
- Проверь отделение маршрута от действий: вытяни другую карточку, составь для неё маршрут и поменяй только данные маршрута. Робот проходит новый маршрут хотя бы один раз.
- Запиши, какие части маршрута ненадёжны и что ты проверишь в уроке 6.2.
Маршрут своей карточки пройден целиком, маршрут второй карточки пройден после замены только данных. Список ненадёжных частей записан.
Критерии оценки
Зачётные заезды пройдут в уроке 6.2 по этим критериям.
Как оценивается заезд
| Критерий | Баллы | Макс. |
|---|---|---|
| Прямой выезд со старта | 5 — Сам выехал вперёд из зоны старта. 10 — Доехал до линии и продолжил задание без подталкивания. | 10 |
| Движение по линии | 10 — Терял линию, но сам возвращался на неё и продолжал маршрут. 20 — Прошёл все участки линии и дуги по датчикам, не теряя линию. | 20 |
| Выбор дороги на перекрёстках | 5 — За каждое из четырёх решений на перекрёстках, которые совпали с планом. | 20 |
| Груз 1: обнаружение | 5 — Остановился перед грузом по ультразвуку. | 5 |
| Груз 1: захват | 5 — Взял груз захватом и увёз, а не вытолкнул. | 5 |
| Груз 1: доставка | 5 — Груз стоит и частично находится в нужной зоне. 10 — Груз стоит целиком в нужной зоне, захват отпущен. | 10 |
| Груз 2: обнаружение | 5 — Остановился перед грузом по ультразвуку. | 5 |
| Груз 2: захват | 5 — Взял груз захватом и увёз, а не вытолкнул. | 5 |
| Груз 2: доставка | 5 — Груз стоит и частично находится в нужной зоне. 10 — Груз стоит целиком в нужной зоне, захват отпущен. | 10 |
| Прямой въезд и остановка | 5 — После линии сам въехал вперёд в зону финиша. 10 — Остановился внутри зоны и стоит с выключенными моторами не меньше 3 секунд. | 10 |
Обязательные условия зачёта
- Команда объясняет свою программу: показывает прямое движение, расчёт П-регулятора, остановку по ультразвуку, управление захватом и строку, которая завершает поездку.
- Изгибы пройдены по показаниям датчиков линии с П-регулятором.
- Подъезд к грузу заканчивается по измерению ультразвука, а не только по времени.
- После старта робота никто не трогает и не отправляет ему команд.
Правила
- Скорость не оценивается: нет бонуса за быстрый заезд.
- Отрицательных штрафов нет. Невыполненное действие просто не получает баллов.
- Груз в чужой зоне или доставленная не по порядку — 0 за её доставку.
- После помощи руками автономный заезд окончен. Продолжать можно для тренировки, но баллы не добавляются.
- Каждая попытка оценивается отдельно. Лучшие части разных попыток не складываются.
- Аварийная остановка ради безопасности не штрафуется.
Проверь себя
Выберите ответы для подготовки. Они не сохраняются и не оцениваются на сайте. Пройдите проверку знаний в программе курса или обсудите ответы с преподавателем.
● Основное
★ Средний уровень
★★ Продвинутый уровень
Отвечай на вопросы своего уровня. Нужно верных ответов: Начальный — 4 из 5; Средний — 4 из 5; Продвинутый — 4 из 5. Ответы проверит преподаватель или программа курса.
Итог
У тебя есть план и программа, которая проходит маршрут. В уроке 6.2 ты сделаешь её надёжной и проведёшь зачётные заезды.
Как подтвердить результат
Результат опыта связывает условия, версию программы, наблюдение и вывод. Сравнение попыток с одним изменением помогает проверить причину, включая неудачные попытки. Отметка относится к уже выполненной практике; повтор ради отметки не нужен. Расхождение с прогнозом задаёт следующую проверяемую гипотезу. Модель, измерения настоящего робота и объяснение — разные виды доказательств.
Словарь урока
| функция | Именованный блок команд, который можно вызывать много раз: например, turnLeft(). |
| план маршрута | Таблица участков пути: что делает робот и какая функция за это отвечает. |
| рабочая версия | Копия программы, в которой всё написанное уже проверено на поле. |