Датчики положения и наклона

Роботу часто нужно знать не только расстояние до объекта, но и собственное состояние: дошёл ли механизм до края, закрыта ли крышка, наклонилась ли платформа, как быстро корпус вращается. Для этих задач используют разные датчики, и путать их опасно.
Концевик и геркон дают событие: достигнута точка или рядом магнит. Датчик наклона сообщает грубое пороговое состояние. Акселерометр измеряет ускорение, включая гравитацию. Гироскоп измеряет скорость вращения. Ни один из них сам по себе не является идеальным датчиком положения.
Зачем это нужно
Манипулятору нужна точка «домой», чтобы не уехать за механический предел. Крышке робота нужен датчик открытия. Балансирующей платформе нужны данные о наклоне и вращении. В каждом случае слово «положение» означает разное: контакт, магнитное событие, проекция гравитации или интегрирование скорости.
Примеры датчиков

| Датчик | Что выдаёт | Интерфейс | Где применяют |
|---|---|---|---|
| Концевик | замкнут/разомкнут | цифровой вход | край хода, бампер, homing |
| Геркон | магнит рядом/далеко | цифровой вход | крышка, дверца, контроль точки без касания |
| SW-520D | наклон превысил порог | цифровой выход модуля | простое событие наклона или встряски |
| ADXL345 | ускорение по 3 осям | I²C/SPI | наклон в покое, удар, вибрация |
| MPU6050 | ускорение + угловая скорость | I²C | ориентация, балансировка, движение |
Главный вопрос: нужен точный угол, факт касания или событие около магнита? Концевик не измеряет угол, акселерометр не знает координату механизма, а гироскоп без коррекции накапливает ошибку.
Главная идея
Датчики положения и наклона делятся на две группы:
| Группа | Примеры | Что получает программа |
|---|---|---|
| Событийные | концевик, геркон, SW-520D | true/false, иногда с дребезгом |
| Измерительные | ADXL345, MPU6050 | числовые значения по осям |
Событийные датчики просты, но дают мало информации. Измерительные датчики богаче, но требуют системы координат, калибровки, времени измерения и фильтрации.
Концевик: известная точка через контакт

Концевик — механический переключатель. Его ставят там, где механизм должен обнаружить край хода или исходную точку. После включения робот медленно едет к концевику, нажимает его и принимает это место за ноль.
Важно помнить о дребезге контакта: при нажатии сигнал может несколько раз переключиться за миллисекунды. Программа должна фильтровать событие или ждать устойчивого состояния.
Геркон: событие рядом с магнитом

Геркон замыкает контакт в магнитном поле. Он полезен, когда нежелательно механическое касание: например, нужно понять, закрыта ли крышка, стоит ли модуль в посадочном месте или прошёл ли механизм контрольную точку.
У геркона есть зона срабатывания, зависящая от магнита, расстояния и ориентации. Поэтому его не используют как точный линейный датчик положения без отдельной проверки геометрии.
Датчик наклона: простое пороговое событие

SW-520D и похожие модули сообщают, что наклон или встряска превысили некоторый порог. Это не IMU и не точный угломер. Такой датчик удобен для сигнализации: робот перевернулся, крышка поднялась, устройство встряхнули.
Если нужен угол в градусах, берут акселерометр или IMU. Если нужен только факт опасного положения, пороговый датчик наклона может быть проще.
Акселерометр: вектор и проекция гравитации

Акселерометр измеряет ускорение по осям. В покое он видит гравитацию, поэтому по её проекции можно оценить наклон. Но при разгоне робота акселерометр видит сумму гравитации и движения, и угол становится менее очевидным.
Для ADXL345 или акселерометра внутри MPU6050 важно знать ориентацию платы: ось X на модуле не обязана совпадать с направлением движения робота.
Гироскоп: скорость вращения

Гироскоп измеряет угловую скорость, например в градусах в секунду. Чтобы получить угол, скорость суммируют по времени. Это хорошо ловит быстрые повороты, но маленькое смещение при долгом суммировании превращается в заметный дрейф.
Поэтому в коде для гироскопа обязательно нужны метки времени, оценка смещения в покое и проверка, не было ли пропусков измерений.
Зачем объединяют измерения

Акселерометр даёт ориентир по гравитации, но путается при ускорении. Гироскоп хорошо видит быстрый поворот, но дрейфует при долгой работе. Вместе они дают более устойчивую оценку угла, если программа учитывает время, шум и калибровку.
Это не магия «шести осей». MPU6050 имеет три оси акселерометра и три оси гироскопа, но итоговая ориентация появляется только после обработки данных.
Что запомнить про положение и наклон
- Концевик и геркон дают событие, а не координату.
- Датчик наклона сообщает грубый порог, а не точный угол.
- Акселерометр в покое помогает оценить наклон, но при разгоне видит не только гравитацию.
- Гироскоп измеряет скорость вращения и дрейфует при интегрировании.
- Для IMU важны оси, время, калибровка и фильтрация.
Практика
- Нарисуйте, где на манипуляторе поставить концевик для поиска нуля.
- Проверьте геркон с магнитом: отметьте расстояние срабатывания и отпускания.
- Положите акселерометр в шесть положений и запишите, какая ось показывает примерно
+1gили-1g. - Подумайте, почему гироскоп на неподвижном столе может показывать не ровно ноль.
Проверьте себя
- Почему концевик не заменяет датчик угла?
- Чем геркон удобен для крышки робота?
- Почему акселерометр не всегда показывает чистый наклон?
- Почему угол из гироскопа со временем уплывает?
- Зачем IMU нужны метки времени?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
- Концевик — механический датчик крайнего положения.
- Геркон — контакт, срабатывающий в магнитном поле.
- Акселерометр — датчик ускорения по осям.
- Гироскоп — датчик угловой скорости.
- IMU — инерциальный модуль, объединяющий несколько датчиков движения.
- Дрейф — медленный уход результата из-за смещения и ошибок.
Связанные темы
- Фильтрация данных с датчиков — как сглаживать IMU и не терять время.
- Калибровка датчиков — как проверить ноль и смещение.
Источники
- Analog Devices. ADXL345 3-axis accelerometer.
- TDK InvenSense. MPU-6050 six-axis MotionTracking device.
- Omron. Basic switches technical guide.