SL.pro
Blog · · 8 мин чтения

Почему уровень показывает неверно: руководство по устранению неполадок

Если приложение-уровень показывает неверно, причина почти всегда одна из четырех. Датчик не откалиброван. Чехол телефона добавляет смещение. Поверхность вибрирует. Или браузер заблокировал датчики движения телефона. У каждой причины есть быстрое решение, и обычно за пару минут понятно, с чем именно вы имеете дело.

Главное вкратце

  • Одна и та же ошибка каждый раз означает нескалиброванное смещение датчика. Сначала пройдите калибровку по двум точкам.
  • Прыгающие показания обычно означают вибрацию или дрожание руки. Зафиксируйте стабильное значение через Hold/Freeze.
  • Неровный чехол наклоняет телефон на доли градуса. Калибруйте телефон в том же виде, в каком собираетесь мерить.
  • Brave и Samsung Internet блокируют датчики движения по умолчанию. Spirit Level Pro это распознает и показывает шаги для вашего браузера.
  • Перекалибруйте после крупного обновления iOS или Android. Обновление может сдвинуть базу датчика.
Столярный верстак для точных измерений и проверки инструментов
Устойчивый верстак без вибрации идеально подходит для проверки и настройки показаний приложения-уровня.

Проблема 1: показания каждый раз смещены на одну величину

Если приложение всегда показывает 0,8° там, где физический уровень показывает 0°, это нескалиброванное смещение датчика. Каждый акселерометр выходит с завода с небольшим встроенным смещением, его иногда называют смещением нуля. Это свойство железа, а не поломка, и дешевый телефон тут не обязательно хуже. Калибровка убирает это смещение.

Как распознать

Поставьте пузырьковый уровень или стакан со стоячей водой на ту же поверхность, что и телефон. Если оба показывают ровно, все в порядке. Если телефон показывает 0,6° на поверхности, которую пузырьковый уровень считает ровной, это смещение. Главный признак: оно не меняется. Положите телефон десяток раз и каждый раз получите 0,6° с точностью до сотых.

Как исправить: калибровка по двум точкам

Положите телефон на самую ровную поверхность, что у вас есть. Подойдет флоат-стекло, уже проверенная столешница или слесарный угольник. Нажмите Калибровать. Поверните телефон на 180°, чтобы левый и правый край поменялись местами. Не переворачивайте его. Нажмите Калибровать еще раз. Приложение усредняет два показания, и это гасит смещение в обе стороны.

Все занимает меньше минуты. Телефон, показывавший до этого 0,7°, после будет показывать 0,0°, и это держится. Повторяйте калибровку, когда меняете чехол, когда показания уплывают после обновления системы или после того, как телефон побывал на сильной жаре или холоде.

Проблема 2: показания скачут и не устаканиваются

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

Найдите источник вибрации

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

Решение: Hold/Freeze

Spirit Level Pro считает по данным датчика экспоненциальное скользящее среднее. Оно сглаживает короткие всплески, но не спасет, если вибрация не прекращается. Поэтому сначала выключите электроинструмент, а потом воспользуйтесь Hold/Freeze.

Коснитесь колбы один раз, чтобы заморозить показание. Сверху на колбе появится янтарная плашка HOLD. Теперь можно спокойно считать число, и никакое дрожание или вибрация его не сдвинут. Коснитесь еще раз, чтобы разморозить. Это же выручает, когда вы под неудобным углом и не можете смотреть на экран, придерживая что-то рукой.

Если вибрацию не унять, положите телефон на резиновый коврик или сложенную тряпку. Это гасит высокочастотную тряску и дает фильтру более чистый сигнал.

Прочный столярный верстак из твердой древесины с тисками для устойчивых точных измерений
Вибрация от техники поблизости — частая причина нестабильных показаний. Помогает поверхность с гашением тряски.

Проблема 3: не добавляет ли ошибку чехол телефона?

Чехлы создают тут больше хлопот, чем ожидаешь. Чехол с приподнятыми краями, неровной спинкой или выступом с одной стороны приподнимает телефон на небольшой клин. Датчик оказывается под углом к поверхности, хотя сама поверхность ровная. У широкого телефона хватает и малой разницы высоты по спинке, чтобы это вылезло долями градуса. Калибровка это лечит, но только если вы калибруете и мерите с чехлом в одном и том же состоянии.

Проверка на ошибку от чехла

Снимите показание на ровной поверхности с чехлом. Запомните число. Снимите чехол и замерьте снова. Если разница больше примерно 0,1°, чехол влияет. Толстые противоударные чехлы, а также чехлы с попсокетом или картхолдером на спинке — худшие в этом плане.

Решение: калибруйте так, как будете мерить

Снимать чехол не обязательно. Откалибруйте с ним, и смещение обнулится. Правило такое: калибруйте в той же связке, в какой собираетесь мерить. Начнете переключаться между «с чехлом» и «без чехла» без перекалибровки — ошибка тут же вернется.

Для тонкой чистовой работы, где важна десятая доля градуса, снимите чехол и калибруйте без него. Так вы получите самую чистую базу.

Проблема 4: приложение вообще не работает

Если пузырек не двигается, показание держится на 0,0° как ни наклоняй телефон, или выскакивает ошибка датчика — браузер почти наверняка заблокировал доступ к датчикам движения. Сейчас это случается часто. Brave блокирует API датчиков по умолчанию. Samsung Internet требует включить их вручную. Opera и некоторые сборки Firefox делают то же самое. Это настройка приватности по умолчанию, и браузер редко сообщает, что так сделал.

Что делает Spirit Level Pro

Если в течение двух секунд после выдачи разрешения не приходит никаких данных с датчика, приложение показывает экран блокировки датчика. Оно определяет, какой у вас браузер (Brave, Samsung Internet, Edge, Opera, Firefox, Chrome), и показывает шаги именно для него, чтобы снова включить доступ к датчику.

Не нужно гадать, какую настройку менять. Пройдите по шагам, нажмите «Повторить» — и датчик обычно оживает за несколько секунд.

Как включить вручную по браузерам

В большинстве браузеров откройте настройки сайта через значок замка или меню из трех точек, найдите «Датчики движения» или «Ориентация устройства» и поставьте «Разрешить». На iOS система спрашивает один раз, когда веб-приложение впервые запрашивает доступ к датчикам. Если вы нажали «Запретить», зайдите в «Настройки», затем «Конфиденциальность и безопасность», затем «Движение и фитнес» и снова включите доступ для вашего браузера.

Пузырьковый уровень для проверки поверхности показывает, как сверить показания
Чтобы приложение-уровень работало правильно, доступ к датчикам должен быть разрешен в настройках браузера или системы.

Проблема 5: режим поверхности и режим отвеса показывают разное

До определенного предела это нормально. Режим поверхности меряет наклон вперед-назад (pitch) и наклон вбок (roll) одновременно. Режим отвеса меряет только наклон вперед-назад. На вертикальной поверхности они меряют разное, поэтому разница между ними ожидаема. Чего быть не должно — так это чтобы одна и та же ось показывала в двух режимах по-разному. Если pitch в режиме поверхности показывает 1,2°, а в режиме отвеса — 0,7° на той же поверхности, значит калибровка одного из режимов сбита.

Решение: калибруйте каждый режим по своему эталону

Режим поверхности калибруйте с телефоном плашмя на горизонтальном эталоне. Режим отвеса калибруйте, приложив телефон к проверенной вертикали, например к дверной коробке или отвесу. У каждого режима свое смещение, поэтому калибруйте их отдельно на подходящей поверхности.

Проблема 6: поворот телефона на 180° меняет показание

Так быть не должно. Откалиброванный телефон дает один и тот же угол независимо от того, верхним или нижним краем он повернут к уклону. Если поворот телефона на 180° вдоль оси измерения меняет показание больше чем на 0,2°, у датчика есть погрешность, которую одна точка калибровки полностью не гасит.

Проба переворотом

Это стандартный способ проверить датчик на несимметричную погрешность. Поставьте телефон на устойчивую поверхность и запишите показание, R1. Поверните на 180° и запишите снова, R2. Если R1 и R2 равны по величине и противоположны по знаку, датчик в порядке, а поверхность просто слегка наклонена. Если они не равны и не противоположны, у датчика есть смещение по этой оси.

Калибровка по двум точкам в Spirit Level Pro — это та же проба, только программно. Приложение берет R1 и R2, находит середину и сохраняет ее как нулевое смещение, гася симметричную погрешность за вас. Если после этого R1 и R2 все равно расходятся больше чем на 0,5°, датчик, скорее всего, изношен или поврежден, и для такой работы лучше подойдет физический уровень.

Проблема 7: приложение показывает иначе после обновления системы

Такое случается реже, но бывает. И iOS, и Android хранят значения калибровки датчика в системной прошивке. Крупное обновление иногда перезаписывает эти значения, и база акселерометра сдвигается. Сдвиг небольшой, обычно заметно меньше градуса, но на точной работе этого хватает.

Решение — снова пройти калибровку по двум точкам после любого крупного обновления системы. Это полминуты. Если приходится делать это раз за разом, проверьте, не поменяло ли заодно обновление браузера настройку доступа к датчикам по умолчанию.

Когда перестать доверять телефону и взять физический уровень

У акселерометра телефона есть рабочий диапазон. У большинства он примерно от -10°C до +45°C, и за его пределами точность становится ненадежной. Сильный удар при падении тоже может сбить калибровку навсегда так, что никакая программа полностью не выправит.

Переходите на физический уровень, когда

Берите настоящий уровень, когда телефон недавно роняли, особенно на твердый пол. Или когда очень жарко или очень холодно, за пределами диапазона от -10°C до 45°C. Или когда телефон старый и датчик уплывает так, что не откалибровать. Или когда работа требует точности лучше 0,2°, например наладка станка или установка приборов. И если вы дважды прогнали калибровку, но так и не сошлись с эталонным уровнем — доверяйте эталону.

Во всем остальном откалиброванный телефон — правильный инструмент. Повесить полку, проверить шкафы, выставить столбы, положить плитку. Он всегда в кармане, может пищать по мере приближения к уровню и ведет запись того, что вы намерили.

Частые вопросы

Почему телефон-уровень показывает разное на одной и той же поверхности?

Обычно это дрожание руки, так что кладите телефон плашмя на поверхность, а не держите на весу. Или это вибрация от техники поблизости, тогда выключите инструмент и воспользуйтесь Hold/Freeze. Или акселерометр нагревается или остывает. Телефону, полежавшему на солнце или на холоде, нужно несколько минут прийти в норму, прежде чем точные показания станут надежными.

Уровень в телефоне врет каждый раз ровно на одну величину. Почему?

Постоянное смещение почти всегда означает смещение датчика — небольшую встроенную погрешность акселерометра. Лечится калибровкой по двум точкам. Положите телефон на ровную поверхность, нажмите Калибровать, поверните на 180°, нажмите еще раз. Это гасит смещение в обе стороны и приводит показания близко к физическому уровню. Перекалибруйте после обновлений системы или смены чехла.

Почему приложение-уровень не работает после обновления системы?

Крупное обновление может перезаписать значения калибровки датчика в прошивке и слегка сдвинуть базу. Снова пройдите калибровку по двум точкам. Если приложение заодно потеряло доступ к датчикам движения, зайдите в настройки и снова включите его для вашего браузера. Spirit Level Pro показывает точные шаги для вашего браузера, если датчик перестает отвечать.

Когда пора не доверять телефону и взять физический уровень?

Переходите на физический уровень, когда телефон роняли, когда очень жарко или холодно (за пределами -10°C и 45°C), когда старый телефон уплывает как ни калибруй, или когда работа требует точности лучше 0,2°. Для повседневного ремонта и стройки откалиброванного телефона хватает.

Try Spirit Level Pro free — no download, no account needed.

Open Spirit Level Pro

Try Spirit Level Pro Free

Works on any phone or tablet. No download required. Pro features from $10 one-time.

Open Spirit Level Pro

No account needed · Works offline · 20 languages