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

Глаза машины — ультразвук и датчики линии

Цель урока Научиться читать датчики из Python: измерять расстояние ультразвуком, поворачивать «глаз» на серво и видеть датчики линии. Firmata уже умеет это — мы просто спрашиваем.

👀 Как работает ультразвук

Датчик HC-SR04 «крикнет» неслышимым писком и засекает, через сколько вернётся эхо. Чем дольше эхо — тем дальше стена. Раньше это считали вручную в Arduino; теперь Firmata умеет мерить ультразвук сама, а в Python мы просто берём готовые сантиметры через объект:

cm = car.radar.measure()      # расстояние спереди в см

🔄 Серво крутит «глаз» — и крутит его Python

Датчик стоит на серво. Раньше «качала» им прошивка Arduino. Теперь это делает Python: мы сами поворачиваем серво на нужный угол и тут же меряем. Так понятнее — весь сценарий в одном месте, в знакомом коде:

car.radar.look(90)            # повернуть «глаз» прямо
cm = car.radar.measure()      # и померить, что впереди

▣ Датчики линии

Под машиной три датчика линии (слева/центр/справа). Каждый говорит 0 или 1 — видит ли он тёмную линию. Читаем все три одной командой:

left, mid, right = car.line.read()   # напр. [0, 1, 0]
⚠️ Сверь пины датчиков в robot.py По умолчанию: серво D3, ультразвук TRIG=12, ECHO=13, датчики линии A0/A1/A2 (на Uno это ножки 14/15/16). На твоей плате-расширении может быть иначе — поправь номера вверху robot.py. Для ультразвука нужна именно прошивка FirmataExpress (обычная StandardFirmata не умеет мерить дальность).
💡 Решение принимает Python Раньше прошивка сама качала датчиком и слала «телеметрию». Теперь весь сценарий — в Python: куда смотреть, когда мерить, что делать с числом. Arduino — просто исполнитель. Это и есть идея курса: ум робота держим в понятном коде, который легко менять.
✅ Проверка Маленькая программа печатает car.radar.measure() в цикле — поднеси руку к датчику, числа уменьшаются. car.line.read() меняет нули на единицы над тёмной линией. Работает? Переходим к настоящему пульту и радару.

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

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

Чем меряют расстояние до препятствия?

✅ HC-SR04 «крикнет» писком и засекает эхо. Для дальности нужна прошивка FirmataExpress.

Что говорит каждый датчик линии?

✅ Три датчика снизу: left, mid, right = car.line.read(), например [0, 1, 0].
← НазадУрок 5 — Bluetooth