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

Радар — видим препятствия

Цель урока Самим качать датчик из Python, мерить расстояние и рисовать радар: точки-препятствия вокруг машины, как на экране подводной лодки.

📡 Качаем датчик и меряем

Каждый кадр мы поворачиваем «глаз» на новый угол и сразу меряем расстояние. Угол шагает туда-сюда от 0° до 180° — получается «качание». Запоминаем точки в список:

car.radar.look(beam_angle)        # повернуть датчик
cm = car.radar.measure()          # померить расстояние
blips.append([beam_angle, cm])     # запомнить точку
beam_angle += sweep_dir              # шагнуть; на краях развернём

🧭 Из угла и см — точка на экране

Угол говорит, куда смотрел датчик, расстояние — как далеко препятствие. Точку на экране находим тригонометрией (та самая из математики, синус и косинус):

Как угол и расстояние превращаются в точку
import math
x = CX + d * math.cos(math.radians(angle))
y = CY - d * math.sin(math.radians(angle))

Близкие препятствия красим красным, далёкие — зелёным. Запусти radar.py — можно одновременно рулить стрелками и смотреть радар.

⬇️ radar.py robot.py
💡 Радар работает даже без машины В «режиме показа» car.radar.measure() выдаёт расстояния понарошку — впереди «стена». Поэтому радар крутится и оживает, даже если машина не подключена. Удобно отлаживать рисование.
✅ Проверка На экране бежит луч, появляются точки. Поднеси руку к датчику — точка станет красной и ближе. Это самый эффектный экран курса. Дальше научим компьютер помогать водителю.

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

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

Как из угла и расстояния получают точку на экране радара?

✅ x = CX + d·cos(angle), y = CY − d·sin(angle). Близкие точки красим красным, далёкие — зелёным.

Как датчик «качается»?

✅ Каждый кадр поворачиваем «глаз» на новый угол и сразу меряем — получается качание луча.
← НазадУрок 8 — Кокпит