Цель урока
Собрать финальный проект: машина запоминает маршрут и потом сама его повторяет. Это
та же идея «списка», что мы знаем из игр и из руки-робота.
🗺️ Маршрут — это список шагов
Маршрут — обычный список действий: ["вперёд", "вперёд", "налево", "вперёд"].
Едем стрелками, а кнопкой «Записать шаг» добавляем текущее действие в список. Кнопка «Играть»
проходит список по очереди:
route = [] # маршрут — список действий# при клике «Записать шаг»:
route.append(command) # запомнили текущее действие# при «Играть» — по очереди, каждое держим STEP_FRAMES кадров:do(route[play_index]) # do() зовёт car.forward / car.left_turn …
💡 Где мы это уже видели
У руки-робота программа была списком поз. В «Космосе» — список пуль и врагов.
Здесь маршрут — список действий. Одна и та же мощная идея: «много объектов — храним
списком и проходим в цикле».
🛠️ Честно: почему повтор получается неточным
Запиши «вперёд, вперёд, налево» и запусти повтор пару раз — машина проедет похоже, но
каждый раз чуть иначе. Это не баг. Мы повторяем маршрут «по таймеру»: держим действие
столько-то кадров. Но у простых DC-моторов:
каждый мотор крутится со своей скоростью (поэтому уводит — см. калибровку в уроке 8);
колёса проскальзывают, особенно на старте и в поворотах;
на заряженных батареях машина едет быстрее, чем на подсевших.
⚠️ Как делают точный повтор «по-взрослому»
Чтобы робот ехал ровно столько, сколько нужно, на моторы ставят энкодеры (датчики
оборотов) и регулятор скорости (PID), либо берут шаговые моторы, которые
поворачиваются на точный угол. Тогда программа считает не «секунды», а обороты колеса.
Это уже продвинутый уровень — но теперь ты знаешь, куда расти.
🎮 Собираем пульт с кнопками
Кнопки рисуем прямоугольниками и ловим клик мышкой collidepoint — точно как
кнопку «Играть заново» в «Космосе». Запусти mission.py:
🏁 Идеи, как развить проект
• Запоминать не только действие, но и его длительность.
• Кнопка «Назад по маршруту» — проехать путь в обратную сторону.
• Совместить с уроком 10: во время повтора маршрута тормозить перед неожиданной стеной.
• «Радар-кладоискатель»: спрятать предмет и искать его по радару.
🎉 Ты прошёл основной курс!
Машина ездит по Bluetooth, показывает радар, тормозит у стен и повторяет маршруты — и всё это
управляется твоим кодом на Python. Хочешь ещё круче? Дальше — бонус про камеру.
🧠 Проверь себя
Выбери ответ. Ошибёшься — 30 секунд на то, чтобы вернуться в урок и перечитать.
Что такое маршрут в проекте «Миссия»?
✅ Едем стрелками, кнопкой записываем шаги в список, «Играть» проходит список по очереди.
Почему повтор маршрута получается неточным?
✅ Точный повтор делают энкодерами (датчиками оборотов) и регулятором PID или шаговыми моторами.