- Выбор есть: 9 аксессуаров, которые превратят смартфон в полезный прибор
- USB-эндоскопы
- OBD-сканеры
- Беспроводные микроскопы
- IR-модули
- Алкотестер
- Сенсорные датчики в Android: какие они бывают и как с ними работать
- Содержание статьи
- Датчики всякие нужны!
- Ищем датчики
- Снимаем показания
- Меряем давление и высоту
- Продолжение доступно только участникам
- Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Выбор есть: 9 аксессуаров, которые превратят смартфон в полезный прибор
Смартфоны умеют многое, но есть такие аксессуары, которые эти самые возможности делают ещё шире. Лёгким движением руки мобильное устройство превращается в микроскоп, эндоскоп или ODB-сканер, универсальный пульт ДУ или алкотестер. Все эти симбиозные решения практически ни в чём не уступают полноразмерным самодостаточным аналогам, а стоят дешевле, потому что часть функций берёт на себя смартфон. Сегодня разбираемся в том, как ещё вам может послужить мобильный гаджет.
USB-эндоскопы
Практичный аксессуар поможет заглянуть внутрь кондиционера, не разбирая его, исследовать детали двигателя авто и «посетить» множество других труднодоступных мест. Мини-эндоскоп повысит шансы на успешные поиски упавшего в раковину кольца или исчезнувшей за шкафом гайки. Компактная камера на гибком проводе длиной до 5 метров будет передавать видеоотчёт на ваш смартфон в режиме реального времени. Для большего удобства устройства оснащаются регулируемой подсветкой, а благодаря дополнительным насадкам при необходимости можно подцепить какую-нибудь деталь и вытащить её.
Мини-эндоскоп поддерживает шесть режимов подсветки — видеосъёмку в разрешении 640×480 пикселей можно вести в полной темноте. На проводе размещён пульт с кнопкой фотосъёмки и колесом регулировки подсветки. USB-эндоскоп имеет стандарт защиты IP67, а потому «прогулки» по трубам ему не страшны. Благодаря диаметру головки камеры 7 мм и фокусному расстоянию 5 см исследовать можно даже самые труднодоступные пространства. В комплекте несколько насадок: с магнитом и крючком, чтобы было проще подцепить и достать пропажу, и насадка-зеркало для лучшего обзора. Гаджет работает в паре с приложением и доступен в нескольких версиях: с длиной провода 1 метр, 1,5 метра и 2 метра.
Второй вариант USB-эндоскопа с проводом до 5 метров предлагает большую свободу действий. Модель с фокусным расстоянием от 3 до 8 см ведёт видео-, фото- и звукозапись. Диаметр головки камеры составляет 7 мм, так что эндоскоп прошмыгнёт практически куда угодно: с ним можно заглянуть под плинтус или даже проверить «апартаменты» аквариумных рыбок — гаджет имеет стандарт защиты IP67. Как и предыдущая модель, эндоскоп включает шесть режимов светодиодной подсветки и небольшой пульт управления, а в комплект поставки входят насадки с крючком, магнитом и зеркалом. Отснятые материалы можно сохранить и в любой момент пересмотреть их.
OBD-сканеры
С этим практичным аксессуаром диагностику электроники авто можно проводить самому. Адаптер работает в паре со смартфоном, и последний берёт на себя роль компьютера. Гаджет не только выявляет ошибки и расшифровывает их, но и помогает стирать сообщения о них. Таким образом, недорогое устройство позволяет экономить не только время и нервы автовладельца, но и в некоторых случаях — деньги на услугах автосервисов. Узнать о совместимости адаптера с моделью вашего «железного коня» можно в описании товара, и в случае сомнений уточнить у продавца.
Автосканер Neaxpeak NX102 с версией прошивки 1.5 поддерживает 10 протоколов и работает вместе с мобильными приложениями Torque Pro с поддержкой русского языка и DashCommand с поддержкой английского. Всё, что необходимо для бортовой диагностики, так это подключить адаптер к 16-контактному разъёму и установить соединение по Bluetooth. Такой прибор пригодится не только для сброса ошибок, но и для наглядной демонстрации показаний датчиков, которые на приборной панели не отображаются.
OBD-сканер Foxwell с чипом PIC18F25K80 получил версию прошивки 1.5 и поддержку Bluetooth. Работает устройство в паре со смартфонами на Android с приложением Torque Pro с поддержкой русского языка. Для устройств на iOS по ссылке предлагается приобрести Wi-Fi-версию. Помимо чтения, расшифровки и удаления ошибок, в режиме реального времени он определит и такие параметры, как обороты и нагрузка двигателя, состояние топливной системы и расход горючего, абсолютное давление воздуха и многое другое. От предыдущего адаптера модель отличается формой, расцветкой и большими габаритами — 8,5 x 4,5 x 2,5 см.
Беспроводные микроскопы
Преимущество беспроводных микроскопов заключается в их компактности и небольшом весе — с карманным устройством работать можно где угодно. Мобильные гаджеты не требуют установки для того, чтобы исследовать объекты, и предлагают настраиваемую яркую подсветку для более комфортного использования. Портативный вариант стоит меньше крупногабаритных собратьев, но также эффективен в работе: при пайке, проверке ювелирных изделий, денежных купюр или текстиля. Ещё такой гаджет понравится и просто любознательным пользователям.
Эта модель микроскопа работает в связке с устройствами на iOS и Android посредством приложения с поддержкой английского языка. Гаджет с увеличением до 1 000x передаёт на смартфон видео в разрешение 640×480 пикселей с частотой 20 кадров в секунду. Внутри установлен Wi-Fi модуль и аккумулятор ёмкостью 750 мАч, который обеспечит до 2,5 часов работы. За удобное использование отвечает регулируемая подсветка с восемью встроенными диодами, рабочий диапазон до 10 м и фокусное расстояние 0 мм
40 мм. Габариты составляют 142 x 37 мм, а вес — 100 граммов.
В комплект беспроводного микроскопа входит подставка размерами 120×160 мм, на которой можно зафиксировать объект исследования. Камера с увеличением до 1 000 раз получила объектив с диафрагмой f/4,5 и углом обзора 16 градусов, поэтому рассмотреть в подробностях удастся всё. Запись видео ведётся в разрешении 720p. Аккумулятор ёмкостью 800 мАч обеспечивает до 3 часов работы, а регулируемая подсветка из восьми встроенных диодов делает эту работу более комфортной. Габариты микроскопа составляют 130×32 мм.
IR-модули
Если ваш смартфон не оснащён ИК-передатчиком, то его можно добавить, прикупив внешний модуль под аудиоразъём 3,5 мм. Полезный аксессуар с поддержкой приёма и передачи сигнала превратит смартфон в универсальный пульт. С его помощью можно управлять телевизорами, кондиционерами, ТВ-приставками, фотоаппаратами, проекторами и другой техникой.
Внешний ИК-модуль работает на дистанции до 5-8 м: можно с комфортом расположиться на диване перед телевизором и оттуда же управлять ТВ-приставкой. Компактный аксессуар совместим со смартфонами на Android и iOS, оснащённых миниджеком. Работает модуль в паре с мобильным приложением Tasogo с поддержкой английского языка, которое «знает» множество различных производителей техники. Для того чтобы превратить смартфон в универсальный пульт ДУ, необходимо подключить внешний модуль и в настройках приложения выбрать модель ТВ, бокса или фотоаппарата. Модуль можно «натренировать» на любую технику, используя оригинальный пульт. Для этого достаточно их «познакомить», направив друг на друга.
ИК-передатчик с чехлом брелоком будет сложнее потерять, а за счёт компактных габаритов выглядит он как обычная заглушка под миниджек. Как и предыдущий вариант, этот модуль работает в связке с мобильным приложением, благодаря которому смартфон сможет переключать ТВ-каналы, регулировать температурные режимы кондиционера или управлять фотосъёмкой на расстоянии.
Алкотестер
Алкотестер — полезная вещица для автовладельцев. Доступное устройство габаритами не больше коробка спичек убережёт от проблем с автоинспекцией, а ещё показания независимого электронного «эксперта» могут спасти жизнь.
Универсальный алкотестер от Ipega не нуждается в источнике питания, поскольку работает от смартфона. Он оснащён экраном, на котором отображаются показатели в двух единицах измерения: г/л (промилле) и % ВАС. Тестирование осуществляется бесконтактным способом, поэтому не придётся докупать мундштуки или стерилизовать их. Экран алкотестера получил ещё и световую индикацию, которая станет дополнительной подсказкой: зелёная — опьянения нет, концентрация алкоголя 0,00 промилле; жёлтая — небольшое опьянение, концентрация алкоголя от 0,2 до 0,5 промилле (0,02%-0,05% ВАС); красная — опьянение достаточно сильное, концентрация алкоголя более 0,8 промилле (0,08% ВАС).
Хватает ли вам того, что может предложить смартфон? Делитесь в комментариях, как бы вы расширили функциональность гаджета.
Источник
Сенсорные датчики в Android: какие они бывают и как с ними работать
Содержание статьи
Датчики всякие нужны!
Для работы с аппаратными датчиками, доступными в устройствах под управлением Android, применяется класс SensorManager, ссылку на который можно получить с помощью стандартного метода getSystemService:
Чтобы начать работать с датчиком, нужно определить его тип. Удобнее всего это сделать с помощью класса Sensor, так как в нем уже определены все типы сенсоров в виде констант. Рассмотрим их подробнее:
- Sensor.TYPE_ACCELEROMETER — трехосевой акселерометр, возвращающий ускорение по трем осям (в метрах в секунду в квадрате). Связанная система координат представлена на рис. 1.
- Sensor.TYPE_LIGHT — датчик освещенности, возвращающий значение в люксах, обычно используется для динамического изменения яркости экрана. Также для удобства степень освещенности можно получить в виде характеристик — «темно», «облачно», «солнечно» (к этому мы еще вернемся).
- Sensor.TYPE_AMBIENT_TEMPERATURE — термометр, возвращает температуру окружающей среды в градусах Цельсия.
- Sensor.TYPE_PROXIMITY — датчик приближенности, который сигнализирует о расстоянии между устройством и пользователем (в сантиметрах). Когда в момент разговора гаснет экран — срабатывает именно этот датчик. На некоторых девайсах возвращается только два значения: «далеко» и «близко».
- Sensor.TYPE_GYROSCOPE — трехосевой гироскоп, возвращающий скорость вращения устройства по трем осям (радиан в секунду).
- Sensor.TYPE_MAGNETIC_FIELD — магнитометр, определяющий показания магнитного поля в микротеслах (мкТл) по трем осям (имеется в смартфонах с аппаратным компасом).
- Sensor.TYPE_PRESSURE — датчик атмосферного давления (по-простому — барометр), который возвращает текущее атмосферное давление в миллибарах (мбар). Если немного вспомнить физику, то, используя значение этого датчика, можно легко вычислить высоту (а ежели вспоминать ну никак не хочется, можно воспользоваться готовым методом getAltitude из объекта SensorManager).
- Sensor.TYPE_RELATIVE_HUMIDITY — датчик относительной влажности в процентах. Кстати, совместное применение датчиков относительной влажности и давления позволяет предсказывать погоду — конечно, если выйти на улицу. 😉
- Sensor.TYPE_STEP_COUNTER (с API 19) — счетчик шагов с момента включения устройства (обнуляется только после перезагрузки).
- Sensor.TYPE_MOTION_DETECT (с API 24) — детектор движения смартфона. Если устройство находится в движении от пяти до десяти секунд, возвращает единицу (по всей видимости, задел для аппаратной функции «антивор»).
- Sensor.TYPE_HEART_BEAT (с API 24) — детектор биения сердца.
- Sensor.TYPE_HEART_RATE (с API 20) — датчик, возвращающий пульс (ударов в минуту). Этот датчик примечателен тем, что требует явного разрешения android.permission.BODY_SENSORS в манифесте.
Рис. 1. Система координат датчиков
Перечисленные датчики являются аппаратными и работают независимо друг от друга, часто без всякой фильтрации или нормализации значений. «Для облегчения жизни разработчиков»™ Google ввела несколько так называемых виртуальных сенсоров, которые предоставляют более упрощенные и точные результаты.
Например, датчик Sensor.TYPE_GRAVITY пропускает показания акселерометра через низкочастотный фильтр и возвращает текущие направление и величину силы тяжести по трем осям, а Sensor.TYPE_LINEAR_ACCELERATION использует уже высокочастотный фильтр и получает показатели ускорения по трем осям (без учета силы тяжести).
Исчерпывающее описание всех датчиков доступно по ссылке.
При разработке приложения, эксплуатирующего показания сенсоров, вовсе не обязательно бегать по улице или прыгать в воду с высокой скалы, так как эмулятор, входящий в поставку Android SDK, умеет передавать приложению любые отладочные значения (рис. 2–3).
Рис. 2. Крутим и кидаем
Рис. 3. Нагреваем и сдавливаем
Ищем датчики
Чтобы узнать, какие сенсоры есть в смартфоне, следует использовать метод getSensorList объекта SensorManager:
Полученный список будет включать все поддерживаемые датчики: как аппаратные, так и виртуальные (рис. 4). Более того, некоторые из них будут иметь различные независимые реализации, отличающиеся количеством потребляемой энергии, задержкой, рабочим диапазоном и точностью.
Для получения списка всех доступных датчиков конкретного типа необходимо указать соответствующую константу. Например, код
вернет все доступные барометрические датчики. Причем аппаратные реализации окажутся в начале списка, а виртуальные — в конце (правило действует для всех типов датчиков).
Рис. 4. Датчики смартфона среднего ценового диапазона
Чтобы получить реализацию датчика по умолчанию (такие датчики хорошо подходят для стандартных задач и сбалансированы в плане энергопотребления), используется метод getDefaultSensor:
Если для заданного типа датчика существует аппаратная реализация, по умолчанию будет возвращена именно она. Когда нужного варианта нет, в дело вступает виртуальная версия, ну а если, увы, ничего подходящего в девайсе не окажется, getDefaultSensor вернет null .
О том, как самолично выбирать реализацию датчиков по критериям, написано во врезке, мы же плавно двигаемся дальше.
Снимаем показания
Чтобы получать события, генерируемые датчиком, необходимо зарегистрировать реализацию интерфейса SensorEventListener с помощью того же SensorManager. Звучит сложновато, но на практике реализуется одной строчкой:
Здесь мы полученный ранее барометр по умолчанию регистрируем с помощью метода registerListener, передавая в качестве второго параметра сенсор, а в качестве третьего — частоту обновления данных.
В классе SensorManager определены четыре статические константы, определяющие частоту обновления:
- SensorManager.SENSOR_DELAY_FASTEST — максимальная частота обновления данных;
- SensorManager.SENSOR_DELAY_GAME — частота, обычно используемая в играх, поддерживающих гироскоп;
- SensorManager.SENSOR_DELAY_NORMAL — частота обновления по умолчанию;
- SensorManager.SENSOR_DELAY_UI — частота, подходящая для обновления пользовательского интерфейса.
Нужно сказать, что, указывая частоту обновления, не стоит ожидать, что она будет строго соблюдаться. Как показывает практика, данные от сенсора могут приходить как быстрее, так и медленнее.
Оставшийся нерассмотренным первый параметр представляет собой реализацию интерфейса SensorEventListener, где мы наконец-то получим конкретные цифры:
В метод onSensorChanged передается объект SensorEvent, описывающий все события, связанные с датчиком: event.sensor — ссылка на датчик, event.accuracy — точность значения датчика (см. ниже), event.timestamp — время возникновения события в наносекундах и, самое главное, массив значений event.values. Для датчика давления передается только один элемент, тогда как, например, для акселерометра предусмотрено сразу три элемента для каждой из осей. В следующих разделах мы рассмотрим примеры работы с различными датчиками.
Метод onAccuracyChanged позволяет отслеживать изменение точности передаваемых значений, определяемой одной из констант: SensorManager.SENSOR_STATUS_ACCURACY_LOW — низкая точность, SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM — средняя точность, возможна калибровка, SensorManager.SENSOR_STATUS_ACCURACY_HIGH — высокая точность, SensorManager.SENSOR_STATUS_UNRELIABLE — данные недостоверны, нужна калибровка.
После того как отпадает необходимость работы с датчиком, следует отменить регистрацию:
Меряем давление и высоту
Весь код для работы с датчиком давления мы уже написали в предыдущем разделе, получив в переменной pressure вполне себе значение атмосферного давления в миллибарах.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Источник