🤖 Робототехника 🚗 Робомашинка
1 2 3 4 5 6 7 8 9 10 11 12
Урок 11 · проект

Проект «Миссия» — запись маршрута

Цель урока Собрать финальный проект: машина запоминает маршрут и потом сама его повторяет. Это та же идея «списка», что мы знаем из игр и из руки-робота.

🗺️ Маршрут — это список шагов

Маршрут — обычный список действий: ["вперёд", "вперёд", "налево", "вперёд"]. Едем стрелками, а кнопкой «Записать шаг» добавляем текущее действие в список. Кнопка «Играть» проходит список по очереди:

route = []                       # маршрут — список действий

# при клике «Записать шаг»:
route.append(command)          # запомнили текущее действие

# при «Играть» — по очереди, каждое держим STEP_FRAMES кадров:
do(route[play_index])           # do() зовёт car.forward / car.left_turn …
💡 Где мы это уже видели У руки-робота программа была списком поз. В «Космосе» — список пуль и врагов. Здесь маршрут — список действий. Одна и та же мощная идея: «много объектов — храним списком и проходим в цикле».

🛠️ Честно: почему повтор получается неточным

Запиши «вперёд, вперёд, налево» и запусти повтор пару раз — машина проедет похоже, но каждый раз чуть иначе. Это не баг. Мы повторяем маршрут «по таймеру»: держим действие столько-то кадров. Но у простых DC-моторов:

⚠️ Как делают точный повтор «по-взрослому» Чтобы робот ехал ровно столько, сколько нужно, на моторы ставят энкодеры (датчики оборотов) и регулятор скорости (PID), либо берут шаговые моторы, которые поворачиваются на точный угол. Тогда программа считает не «секунды», а обороты колеса. Это уже продвинутый уровень — но теперь ты знаешь, куда расти.

🎮 Собираем пульт с кнопками

Кнопки рисуем прямоугольниками и ловим клик мышкой collidepoint — точно как кнопку «Играть заново» в «Космосе». Запусти mission.py:

⬇️ mission.py robot.py
🏁 Идеи, как развить проект • Запоминать не только действие, но и его длительность.
• Кнопка «Назад по маршруту» — проехать путь в обратную сторону.
• Совместить с уроком 10: во время повтора маршрута тормозить перед неожиданной стеной.
• «Радар-кладоискатель»: спрятать предмет и искать его по радару.
🎉 Ты прошёл основной курс! Машина ездит по Bluetooth, показывает радар, тормозит у стен и повторяет маршруты — и всё это управляется твоим кодом на Python. Хочешь ещё круче? Дальше — бонус про камеру.

🧠 Проверь себя

Выбери ответ. Ошибёшься — 30 секунд на то, чтобы вернуться в урок и перечитать.

Что такое маршрут в проекте «Миссия»?

✅ Едем стрелками, кнопкой записываем шаги в список, «Играть» проходит список по очереди.

Почему повтор маршрута получается неточным?

✅ Точный повтор делают энкодерами (датчиками оборотов) и регулятором PID или шаговыми моторами.
← НазадУрок 10 — Автопилот