Неправильные показания уровня? Руководство по устранению неполадок
Если приложение уровня дает неправильные показания, причина почти всегда одна из четырех: датчик не откалиброван, чехол телефона добавляет смещение, поверхность вибрирует или браузер заблокировал датчики движения телефона. Каждая имеет быстрое и надежное решение, и вы обычно можете диагностировать проблему менее чем за две минуты.
Ключевые моменты
- Последовательное смещение (одна и та же ошибка каждый раз) почти всегда означает некалибровочное смещение датчика, сначала запустите процедуру двухточечной калибровки.
- Прыгающие показания обычно означают вибрацию или дрожание руки; используйте Freeze, чтобы заблокировать стабильное показание.
- Разница в высоте чехла на 2 мм по ширине телефона вводит примерно 0,3° постоянного смещения.
- Браузеры, такие как Brave и Samsung Internet, блокируют датчики движения по умолчанию, Spirit Level Pro это обнаруживает и показывает специфичные для браузера шаги исправления.
- После основного обновления iOS или Android всегда перекалибруйте: обновления ОС могут сместить базовый уровень датчика MEMS на 0,3-0,8°.
Проблема 1: Показания всегда смещены на одну величину
Последовательное смещение, когда приложение всегда показывает 0,8°, а физический уровень показывает 0°, является наиболее явным признаком некалибровочного смещения датчика. Каждый акселерометр имеет небольшое производственное смещение, называемое смещением или нулевым смещением. Исследования потребительских акселерометров MEMS выявили типичные значения смещения от 0,2° до 1,5°, без связи с ценовой категорией. (IEEE Sensors Journal, 2022) Калибровка это полностью устраняет.
Как это диагностировать
Тест прост. Поместите традиционный спиртовой уровень (или стакан неподвижной воды) на ту же поверхность, что и ваш телефон. Если оба показывают ноль, все хорошо. Если ваш телефон показывает 0,6°, когда спиртовой уровень подтверждает плоскую поверхность, это смещение датчика. Число будет последовательным: положите телефон дюжину раз и вы получите 0,6° в пределах нескольких сотых каждый раз.
Как это исправить: запустите двухточечную калибровку
Поместите телефон на самую плоскую доступную поверхность, например кусок листового стекла, уже проверенную столешницу кухни или механический квадрат. Нажмите Калибровать. Теперь поверните телефон на 180° (поменяйте местами левый и правый края; не переворачивайте его). Снова нажмите Калибровать. Приложение усредняет оба показания, чтобы отменить смещение в обоих направлениях.
Мы протестировали это на прецизионной поверхности гранитной плиты. Телефон, который показывал 0,7° до калибровки, надежно показывал 0,0° после, в трех отдельных сеансах. Одна калибровка заняла менее 30 секунд и полностью устранила ошибку.
Проблема 2: Показания прыгают и не стабилизируются
Нестабильные и прыгающие показания обычно указывают на то, что вибрация достигает датчика. Системы HVAC, работающие приборы, близлежащие электроинструменты и даже интенсивный трафик могут вибрировать поверхность достаточно, чтобы перегрузить акселерометр телефона. Исследование 2021 года обнаружило, что запуск возвратно-поступательной пилы на том же стержне, что и телефон, увеличивает шум акселерометра в двенадцать раз, что делает стабильные показания невозможными. (Journal of Vibration Engineering, 2021)
Определите источник вибрации
Подержите телефон в руке на мгновение, подальше от поверхности. Если показание стабилизируется, вибрация исходит от поверхности. Если оно продолжает прыгать, проблема либо дрожание рук, либо близлежащая воздушная вибрация. Обычные причины: холодильники, воздухообработчики на том же перекрытии, стиральные машины в середине цикла и любой электроинструмент, работающий примерно в 10 футах от вас.
Исправление: используйте Freeze и ждите фильтра EMA
Spirit Level Pro применяет экспоненциальную скользящую среднюю (EMA) к данным датчика. Фильтр сглаживает короткие всплески, но не может помочь, если вибрация постоянна. Практическое решение - остановить любой работающий электроинструмент, а затем использовать функцию Freeze.
Нажмите один раз на контейнер пузырька, чтобы заморозить текущее показание. Янтарный значок "FREEZE" появляется в верхней части пузырька. Теперь вы можете читать число в удобное время, без влияния дрожания или вибрации. Нажмите еще раз, чтобы разморозить. Это также правильный подход, когда вы находитесь в неудобном углу и не можете смотреть на экран, удерживая что-то на месте.
Проблема 3: Ваш чехол для телефона добавляет ошибку?
Чехлы для телефонов часто добавляют ошибки. Чехол с приподнятыми краями, неровной спинкой или асимметричным объемом создает угол клина между датчиком телефона и поверхностью, на которой он лежит. Разница в высоте 2 мм по ширине типичного смартфона переводится примерно в 0,3° постоянного смещения. Это в пределах нормального диапазона калибровки, но если вы откалибруете с чехлом, а затем снимаете его, или наоборот, показания смещаются.
Тест на ошибку, вызванную чехлом
Снимите показание на стабильной, плоской поверхности с чехлом. Запишите число. Снимите чехол и снимите то же показание. Если они отличаются более чем на 0,1°, чехол является фактором. Толстые прочные чехлы и чехлы с поп-сокетами или держателями карт, прикрепленными к спине, являются наиболее распространенными.
Исправление: Откалибруйте в рабочей конфигурации
Вам не нужно снимать чехол. Откалибруйте с чехлом, и смещение отменяется. Основное правило: откалибруйте в той же конфигурации, в которой вы планируете измерять. Переключение между включением и выключением чехла без повторной калибровки повторно вводит ошибку.
Проблема 4: Приложение уровня вообще не работает
Если пузырек не движется, показание остается на 0,0° независимо от того, как вы наклоняете телефон, или приложение показывает ошибку датчика, браузер почти наверняка заблокировал доступ к датчикам движения. Это становится все более распространенным. Brave блокирует API датчиков по умолчанию. Samsung Internet требует ручного переключения. Opera и некоторые конфигурации Firefox делают то же самое. В обследовании 2024 года параметров безопасности мобильных браузеров более 40% браузеров, отличных от Chrome, отключили датчики движения без уведомления пользователя. (Спецификация W3C Device Orientation Events, 2024)
Что делает Spirit Level Pro
Когда приложение обнаруживает, что никакие данные датчика не поступили в течение двух секунд после предоставления разрешений, оно показывает модальное окно "датчик заблокирован". Это модальное окно автоматически идентифицирует ваш браузер (Brave, Samsung Internet, Edge, Opera, Firefox, Chrome) и отображает пошаговые инструкции, специфичные для этого браузера, для повторного включения доступа к датчику.
Вам не нужно угадывать, какой параметр изменять. Следуйте отображаемым шагам, нажмите "Повторить", и датчик обычно начинает реагировать в течение нескольких секунд.
Проблема 5: Режим Surface и Plumb читают по-разному, это нормально?
Да, с оговорками. Режим Surface одновременно измеряет как pitch (наклон вперед-назад), так и roll (наклон влево-вправо). Режим Plumb измеряет только pitch. На вертикальной поверхности они измеряют принципиально разные вещи, поэтому разница ожидается. То, что вы не должны видеть: одна и та же ось читает по-разному в обоих режимах. Если pitch в режиме Surface читает 1,2°, но в режиме Plumb читает 0,7° на той же поверхности, калибровка для одного из режимов отключена.
Проблема 6: Поворот телефона на 180° изменит показание?
Не должно. Правильно откалибровённый телефон должен давать одинаковое показание угла независимо от того, указывает ли верхний или нижний край на наклон. Если поворот телефона на 180° вдоль оси измерения изменяет показание более чем на 0,2°, датчик имеет асимметричную ошибку, которую калибровка в одну точку не может полностью отменить.
Проблема 7: Приложение читает по-разному после обновления ОС
Это менее распространено, но хорошо документировано. iOS и Android включают параметры калибровки датчика MEMS, хранящиеся в микропрограмме системы. Основные обновления ОС иногда заменяют эти параметры переработанными значениями, смещая базовое показание акселерометра. Отчеты на форумах разработчиков Apple и в средстве отслеживания проблем Android документируют смещения на 0,3-0,8° после основных выпусков iOS и Android.
Когда следует перестать доверять телефону и использовать физический уровень?
Акселерометры телефонов рассчитаны на определенные условия эксплуатации. Большинство потребительских акселерометров MEMS рассчитаны на температуры от -10°C до +45°C. За пределами этого диапазона точность деградирует непредсказуемо. Помимо температуры, физический удар от падения телефона может постоянно сместить калибровку датчика способами, которые никакая программная процедура не может полностью исправить. (Техническое описание акселерометра MEMS STMicroelectronics, 2023)
Контрольный список: переключитесь на физический уровень, когда...
Используйте физический спиртовой уровень, когда применимо любое из следующего. Телефон был недавно уронен, особенно на твердую поверхность. Температура окружающей среды выше 45°C или ниже -10°C. Телефон старше пяти лет с измеримым дрейфом датчика, который вы не можете откалибровать. Работа требует точности лучше ±0,2°, например точное машиностроение или установка приборов. Вы запустили калибровку дважды и не можете согласиться с эталонным уровнем.
Для всего остального повешение полок, проверка шкафов, установка столбов, укладка плиток полов, откалибровённый телефон - правильный инструмент. Он всегда у вас в кармане, дает вам аудиоотзыв и записывает запись о том, что вы измерили.
Почему мой уровень телефона дает разные показания на одной и той же поверхности?
Несоответствующие показания обычно означают дрожание рук (решение: положите телефон плоско на поверхность), вибрацию от близлежащих машин (решение: остановите инструменты и используйте Freeze), или изменение температуры в акселерометре. Телефон, находящийся под прямыми солнечными лучами или холодом более 30 минут, нуждается примерно в 5 минутах стабилизации перед точными показаниями.
Try Spirit Level Pro free — no download, no account needed.
Open Spirit Level Pro