Как работает датчик расстояния — ультразвук и инфракрасный?
В роботе стоит датчик HC-SR04, который меряет расстояние до стены. Как он вообще понимает, далеко стена или близко? И чем ИК-датчик отличается от ультразвукового?
2 ответа
Оба измеряют расстояние, но по-разному.
Ультразвуковой (например HC-SR04): работает как эхолот. Он издаёт короткий ультразвуковой «писк» (мы его не слышим) и засекает, через сколько вернётся эхо от препятствия. Зная скорость звука (~340 м/с) и время, считает расстояние.
Расчёт: звук туда-обратно за время t. Путь = 340 · t, но он удвоенный, поэтому до стены s = 340 · t / 2. Если эхо вернулось за 0.002 с (2 мс), то s = 340 · 0.002 / 2 = 0.34 м, то есть 34 см.
Инфракрасный (ИК): светит невидимым ИК-лучом и ловит отражённый свет. Простые ИК-датчики дают ответ «есть препятствие / нет» (для езды по линии или края стола). Более умные (Sharp GP2Y) меряют угол отражённого луча и выдают расстояние.
Сравнение:
- Ультразвук видит дальше (до 2-4 м), не зависит от цвета, но плохо ловит мягкие/угловатые поверхности (звук рассеивается).
- ИК — дешевле и быстрее, но путается на чёрных и блестящих поверхностях и работает на коротких дистанциях.
Частая ошибка: ставить один датчик и ждать идеала. На практике их комбинируют.
Запомни одной фразой: ультразвук — это «эхо», ИК — это «фонарик». Ультразвук кричит и слушает отражение звука; ИК светит и смотрит на отражение света. Поэтому ультразвук не боится темноты и цвета, а ИК — быстрый и компактный, но обманывается чёрным бархатом (он поглощает свет, и датчику кажется, что препятствия нет).