Датчик HC-SR04 «крикнет» неслышимым писком и засекает, через сколько вернётся эхо. Чем дольше эхо — тем дальше стена. Раньше это считали вручную в Arduino; теперь Firmata умеет мерить ультразвук сама, а в Python мы просто берём готовые сантиметры через объект:
cm = car.radar.measure() # расстояние спереди в см
Датчик стоит на серво. Раньше «качала» им прошивка Arduino. Теперь это делает Python: мы сами поворачиваем серво на нужный угол и тут же меряем. Так понятнее — весь сценарий в одном месте, в знакомом коде:
car.radar.look(90) # повернуть «глаз» прямо cm = car.radar.measure() # и померить, что впереди
Под машиной три датчика линии (слева/центр/справа). Каждый говорит 0 или 1 — видит ли он тёмную линию. Читаем все три одной командой:
left, mid, right = car.line.read() # напр. [0, 1, 0]
D3, ультразвук TRIG=12, ECHO=13, датчики линии
A0/A1/A2 (на Uno это ножки 14/15/16). На твоей плате-расширении может
быть иначе — поправь номера вверху robot.py. Для ультразвука нужна именно
прошивка FirmataExpress (обычная StandardFirmata не умеет мерить дальность).
car.radar.measure() в цикле — поднеси руку к датчику,
числа уменьшаются. car.line.read() меняет нули на единицы над тёмной линией.
Работает? Переходим к настоящему пульту и радару.
Выбери ответ. Ошибёшься — 30 секунд на то, чтобы вернуться в урок и перечитать.
Чем меряют расстояние до препятствия?
Что говорит каждый датчик линии?