MIT App Inventor. Ориентация

Очень хороший инструмент для ленивых создателей приложений под Android от MIT — App Inventor. Что дает сенсор ориентации.

Понадобилось мне решить задачку регистрации положения (угла наклона) телефона во времени. Для этого в телефоне есть Сенсор ориентации. Используем невидимый компонент «СенсорОриентации» — расположен в «Сенсоры» (буду пользоваться только русской нотацией).

Из описания сенсора:

Крен: 0 градусов, когда устройство находится в горизонтальной плоскости, увеличивается до 90 градусов, когда устройство наклонено налево и уменьшается на -90 градусов, когда устройство наклонено направо. 
Высота: 0 градусов, когда устройство находится в горизонтальной плоскости, до 90 градусов, когда устройство наклонено так, что его верхняя часть направлена вниз и до 180 градусов, когда оно перевернуто. Точно так же, когда устройство наклонено так, что его нижняя часть направлена вниз, высота уменьшается до -90 градусов, и затем уменьшается на -180 градусов, когда оно полностью перевернуто.
Азимут: 0 градусов, когда верх устройства направлен на север, 90 градусов, когда оно направлено на восток, 180 градусов когда оно направлено на юг, 270 градусов, когда оно направлено на запад , и т.д .
!!!Эти измерения предполагают, что само устройство находится в неподвижном положении.

На мой взгляд с определением Высота — неудачный перевод найден. Интересно, какой датчик используется для данного Сенсора? Видимо, акселерометр и магнетометр.

Вытаскиваем сенсор в Дизайнер:В свойствах компонента надо не забыть его включить.

Простой пример — на экране надо показывать значения текущего положения (ориентации) телефона.

Сделаем на форме нужные нам надписи для отображения ориентации по трем осям:

Переходим в Блоки. Ниже привожу рисунок, где показано как получается и отображается информация об ориентации (в градусах).Используется событие «ОриентацияИзменена». При выполнении его используются реквизиты «азимут» (это понятно — направление на север,юг и т.д.), «взять» (это совсем непонятно 🙂 и «округлить» (тоже непонятно). Надо помнить, что эти значения получаются в градусах как описано выше.

Если воспользоваться английской нотацией, то «взять» — соответствует Высота — «pitch» (Returns the pitch angle of the device). «Округлить» — соответствует Крен — «roll» (Returns the roll angle of the device).

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".