Фильтр по тематике

Встраиваемый модуль распознавания жестов с функцией электронного замка. Часть 1

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

15.05.2016 945 0
Встраиваемый модуль распознавания жестов с функцией электронного замка. Часть 1

Принцип действия и основные характеристики

В основе модуля лежит применение промышленного датчика распознавания жестов PAJ7620U2 производства Pix Art Imaging [1]. Датчик представляет собой миниатюрное оптико-электронное устройство, содержащее в одном корпусе оптическую матрицу (массив оптических сенсоров), светодиод подсветки внешних объектов, схему анализа и распознавания жестов, набор управляющих, информационных и конфигурационных регистров, тактовый генератор, а также последовательный интерфейс I2C. С помощью последнего осуществляется настройка, конфигурирование датчика и выдача во внешнее устройство информации о распознанных жестах. Помимо I2C датчик PAJ7620U2 поддерживает генерацию прерываний при обнаружении жестов на отдельном цифровом выходе INT. Техническое описание датчика доступно для загрузки на сайте производителя [2].

Датчик PAJ7620U2 используется в устройстве в составе удобного для монтажа промышленного модуля-сборки Grove-Gesture v1.0 [3], поддерживающего стандарт конструктива Grove. Grove-Gesture v1.0 представляет собой миниатюрную печатную плату (см. рис. 1), содержащую датчик PAJ7620U2, стабилизаторы питающих его напряжений, цепи формирования сигналов шины I2C, разъёмы питания и подключения по I2C к внешним устройствам и разъём выхода прерываний INT.

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

Модуль распознавания жестов на основе датчика PAJ7620U2 использует постоянное напряжение питания любой полярности в диапазоне от 7 до 15 В при токе потребления около 100 мА.

Устройство поддерживает два режима: распознавание любого из восьми пользовательских жестов и распозна­вание заданной последовательности жестов. Простое распознавание любого из восьми жестов определяет перемещение вверх (U), перемещение вниз (D), перемещение влево (L), перемещение вправо (R), приближение (движение к датчику) (F), удаление (движение от датчика) (B), круговое движение по часовой стрелке (C), круговое движение против часовой стрелки (A). Жесты U, D, L, R, C, A производятся в плоскости, параллельной лицевой стороне датчика, на расстоянии 5–15 см от неё. Распознавание заданной последовательности жестов (режим электронного замка) основано на определении комбинации перечисленных выше пользовательских жестов c длиной комбинации (отпирающего кода) от 2 до 11. Отпирающий код задаётся пользователем и постоянно хранится в энергонезависимой памяти устройства, ресурс которой составляет не менее 500 тысяч циклов перезаписи.

Устройство имеет девять (восемь жестов плюс электронный замок) цифровых выходов с высоким активным уровнем, соответствующим напряжению +3,3 В, максимальный ток нагрузки каждого выхода – не более 12 мА. К каждому из выходов подключён светодиод для индикации его состояния.

При распознавании любого из перечисленных жестов в любом режиме на цифровом выходе устройства, соответствующем распознанному жесту, генерируется импульс высокого уровня длительностью около 0,5 с, зажигая на этот интервал подключённый к выходу светодиод. Одновременно устройство выдаёт символ, соответствующий распознанному жесту (буквы U, D, L и прочие) через свой последовательный интерфейс RS-232, а также индицирует этот символ на ЖКИ.

В режиме электронного замка при распознавании комбинации жестов, совпадающей с отпирающим кодом, на цифровом выходе электронного замка генерируется импульс высокого уровня длительностью от 1 до 8 с (длительность задаётся пользователем), зажигая на этот интервал подключённый к выходу светодиод. Одновременно устройство через свой интерфейс RS-232 выдаёт строку символов, оповещающую об отпирании замка, индицирует её на ЖКИ и генерирует звуковой сигнал высокого тона. Если распознанная комбинация жестов не совпадает с отпирающим кодом, состояние цифрового выхода электронного замка остаётся в пассивном (низком) уровне. Одновременно устройство выдаёт строку символов, оповещающую о запертом состоянии замка, индицирует её на ЖКИ и генерирует звуковой сигнал низкого тона.

Задание отпирающего кода замка, а также других настроек модуля, осуществляется через интерфейс RS-232 с помощью подключённого к устройству внешнего терминала. Скорость обмена через RS-232 – 9600 бит/с. Вход в режим задания отпирающего кода (режим администратора) защищён паролем администратора, также хранящимся в энергонезависимой памяти устройства.

Характеристики и особенности работы датчика PAJ7620U2

Основные характеристики датчика PAJ7620U2 приведены в таблице 1, а его принципиальная схема показана на рисунке 2. Помимо распознавания жестов, датчик PAJ7620U2 также поддерживает обнаружение приближения и удаления физического объекта, например, ладони руки. Последняя функция может быть востребована, например, при встраивании этого датчика в мобильные устройства – смартфоны, планшеты и тому подобные, где требуется реакция системы на активность пользователя.

Внешне датчик представляет собой прямоугольник размерами 5,2 × 3,0 × 1,88 мм, на лицевой поверхности которого имеются окна для светодиода подсветки и оптической матрицы, схематично изображённые на рисунке 2. В правом верхнем углу лицевой стороны датчика имеется ключ правильной установки в виде квадратной выемки. Сведения о назначении и порядке использования линий датчика GPIO1-GPIO3 и TESTMD в документации производителя найти не удалось.

Встроенный в датчик светодиод подсветки получает питание по отдельной цепи (VLED) и предназначен для подсвечивания внешних объектов при совместной работе с оптической матрицей. Светодиод работает в режиме периодических вспышек с малой скважностью (типичные параметры вспышек: период мигания 500 мкс, скважность 5%). Пиковый ток через светодиод может достигать сотен миллиампер, однако при этом совокупный средний ток потребления датчика не выходит за пределы значений, указанных в таблице 1.

Доступ внешнего устройства к регистровому интерфейсу PAJ7620U2 осуществляется по шине I2C. Датчик является на шине ведомым (Slave), то есть внешнее принимающее устройство должно быть ведущим (Master). Регистровый интерфейс датчика PAJ7620U2 включает порядка двухсот управляющих, информационных и конфигурационных регистров, битовая структура и назначение большинства из которых документированы, к сожалению, очень поверхностно [2].

Регистровый массив организован в виде двух банков, переключение между которыми осуществляется путём записи в регистр по адресу 0×EF значения «0» для выбора банка 0, или значения «1» для выбора банка 1. Назначение и битовая структура нескольких наиболее актуальных для пользователя регистров из банков «0» и «1» приведены в таблицах 2 и 3.


Начальное включение датчика PAJ7620U2 производитель рекомендует осуществлять в следующем порядке. Сначала на него подаётся питающее напряжение интерфейса ввода-вывода и шины I2C – VBUS. Затем (или, в крайнем случае, одновременно) подаётся питающее напряжение внутренней логики датчика – VDD. Для VBUS и VDD можно использовать один и тот же источник. Конкретный момент выдачи напряжения питания встроенного светодиода подсветки VLED некритичен, однако для обнаружения жестов наличие этого напряжения обязательно. После установления VDD необходимо выждать не менее 700 мкс и затем приступить к программному пробуждению датчика. При начальном включении питания датчик находится в состоянии «сна» (Suspend), характеризующемся пониженным энергопотреб­лением. Чтобы обеспечить распозна­вание датчиком жестов или приближения/удаления, внешнему устройству необходимо «разбудить» его, переведя в рабочее состояние. Для этого внешнее устройство должно передать по шине I2C один байт – адрес ведомого PAJ7620U2 (Slave ID = 0×73). Указанная транзакция должна осуществляться в соответствии с общими требованиями протокола I2C: ведущее устройство начинает её, генерируя на шине условие START, затем передаёт байт, в старшей части которого содержится семиразрядный Slave ID, а младший разряд установлен как признак записи (W=1), после чего ведущий генерирует на шине условие STOP, завершая этим транзакцию. Передача по шине данных и адресов всегда начинается со старшего значащего разряда (СЗР).

Чтобы отследить успешное окончание пробуждения, ведущий производит циклическое чтение регистра датчика с адресом 0×00. Транзакция отдельного (не блочного) чтения в соответствии с протоколом I2C имеет следующий вид: ведущий генерирует условие START, затем, как и в предыдущем случае, передаёт Slave ID и W=1, дожидается от ведомого подтверждения, передаёт адрес регистра (в данном случае – 0×00) и вновь получает от ведомого подтверждение, после чего ведущий генерирует условие STOP, условие START и снова передаёт Slave ID, но младший разряд в байте уже сброшен как признак чтения (R=0). Далее он получает от ведомого подтверждение, затем получает от ведомого байт данных (содержимое адресованного регистра), выдаёт на шину состояние «неподтверждения» и генерирует условие STOP. Когда очередное чтение по адресу 0×00 возвратит значение 0×20, датчик можно считать пробудившимся.

После этого необходимо выдержать паузу длительностью не менее 400 мкс и загрузить в датчик настройки инициализации для распознавания жестов. Указанные настройки представляют собой двумерный массив из нескольких десятков элементов, каждый из которых состоит из двух байтов: адреса регистра и его содержимого. В спецификациях на датчик [2] приведены несколько возможных инициализационных массивов: для распознавания жестов, распознавания приближения/удаления, для других функций.

Каждый двухбайтовый элемент массива инициализации может быть загружен в датчик с помощью транзакции отдельной записи. Эта транзакция, в соответствии с протоколом I2C, имеет следующий вид. Ведущий генерирует условие START, затем передаёт Slave ID и W=1, дожидается от ведомого подтверждения, передаёт адрес требуемого регистра и вновь получает от ведомого подтверждение. Затем ведущий передаёт ведомому байт данных (содержимое адресованного регистра), получает от него подтверждение и генерирует условие STOP. «Затягивание» синхросигнала на шине датчик PAJ7620U2, как ведомое устройство, не поддерживает. Более подробное описание обмена по шине I2C между PAJ7620U2 и ведущим устройством можно найти в Datasheet [2].

Чтобы перевести датчик PAJ7620U2 в состояние сна, необходимо сначала отключить его путём записи значения 0×00 в регистр с адресом 0×72 из банка «1», а затем подать команду сна датчика и шины I2C путём записи значения 0×01 в регистр с адресом 0×03 из банка «0».

Чтобы вывести датчик PAJ7620U2 из состояния сна, необходимо сначала передать по шине I2C адрес ведомого PAJ7620U2 Slave ID, как было сказано ранее, а потом включить датчик путём записи значения 0×01 в регистр с адресом 0×72 из банка «1».

Помимо рабочего состояния, характеризующегося максимальным энергопотреблением и поддержкой всех функций, и состояния сна с минимальным энергопотреблением и полным отсутствием функций, датчик PAJ7620U2 может находится в двух промежуточных, так называемых дежурных, состояниях: Standby 1 и Standby 2. Они характеризуются меньшим, чем у рабочего состояния, энергопотреблением, но и меньшей скоростью обнаружения жестов. Степень уменьшения скорости обнаружения может быть установлена пользователем путём задания величин факторов реакции: S1 Response Factor и S2 Response Factor соответственно. Эти безразмерные величины отражают скважность мигания светодиода подсветки.

По замыслу производителя, датчик основную часть времени может находиться в одном из экономичных состояний Standby 1 или Standby 2, ожидая поступления жестов, а обнаружив (с невысокой скоростью) первый поступивший жест, немедленно будет переведён в рабочее состояние и дальнейшие жесты определит уже с максимально возможной скоростью.

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

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

Линии I2C_SCL, I2C_SDA шины I2C, а также выход прерываний INT производитель рекомендует в схеме конечного приложения «подтянуть» к напряжению VBUS с помощью резисторов сопротивлением 2,2 кОм.

Чтобы отслеживать обнаружение жестов, а также их идентифицировать, внешнее ведущее устройство использует соответствующие регистры PAJ7620U2. Флаги прерывания от обнаружения жестов содержатся в доступных только для чтения регистрах с адресами 0×43, 0×44 банка «0». Каждому флагу соответствует один разряд регистра. В регистре с адресом 0×43 все восемь разрядов значащие. Там содержатся флаги восьми жестов (в порядке убывания номера разряда): круговое движение против часовой стрелки, круговое движение по часовой стрелке, удаление (движение от датчика), приближение (движение к датчику), перемещение влево, вправо, вниз и вверх. В регистре с адресом 0×44 флагом обнаружения волнообразного движения является младший разряд 0 (МЗР). При обнаружении датчиком какого-то жеста его логика генерирует прерывание и автоматически устанавливает соответствующий флаг в соответствующем регистре флагов. Одновременно выход INT датчика переходит в низкий (активный) логический уровень. Сброс прерывания с автоматическим сбросом соответствующего флага и автоматической установкой выхода INT производится путём программного чтения регистра, содержащего установившийся флаг.

Все вышеперечисленные флаги прерываний могут быть замаскированы с помощью пары доступных для записи и чтения регистров с адресами 0×41, 0×42 банка «0». Их битовая структура повторяет битовую структуру регистров флагов с адресами 0×43, 0×44. Если какой-то разряд в регистре маски флагов установлен, может быть сгенерировано прерывание от обнаружения соответствующего жеста, а если сброшен – не может.

Чтение доступного только для чтения регистра с адресом 0×45 банка «0» возвращает текущее состояние датчика.

Составной доступный для чтения и записи регистр с адресами 0×67, 0×68 банка «1» содержит значение величины IDLE S1 step для задания фактора реакции S1 Response Factor согласно следующим формулам:

  • для нормального режима: S1 Response Factor = 8,333 / (0,0323 × IDLE S1 step + 3,55);
  • для игрового режима: S1 Response Factor = 4,167 / (0,0323 × IDLE S1 step + 3,55).

Составной доступный для чтения и записи регистр с адресами 0×69, 0×6A банка «1» содержит значение величины IDLE S2 step для задания фактора реакции S2 Response Factor согласно следующим формулам:

  • для нормального режима: S2 Response Factor = 8,333 / (0,0645 × IDLE S2 step + 3,55);
  • для игрового режима: S2 Response Factor = 4,167 / (0,0645 × IDLE S2 step + 3,55).

Составной доступный для чтения и записи регистр с адресами 0×6B, 0×6C банка «1» содержит значение величины OPtoS1 step для задания времени OPtoS1 time перехода от рабочего состояния в состояние Standby 1 согласно следующим формулам:

  • для нормального режима: OPtoS1 time = OPtoS1 step / 120;
  • для игрового режима: OPtoS1 time = OPtoS1 step / 240.

Составной доступный для чтения и записи регистр с адресами 0×6D, 0×6E банка «1» содержит значение величины OPtoS2 step для задания времени OPtoS2 time перехода от рабочего состояния в состояние Standby 2 согласно следующим формулам:

  • для нормального режима: OPtoS2 time = OPtoS2 step /(60 × S1 Response Factor);
  • для игрового режима: OPtoS2 time = OPtoS2 step /(120 × S1 Response Factor).

Необходимо заметить, что во время перехода из рабочего состояния в состояния Standby 1 и Standby 2 обнаружение жестов датчиком не производится.

При обнаружении датчиком PAJ7620U2 приближения/удаления (PS) внешнего объекта типичная частота мигания светодиода подсветки составляет 10 Гц, а типичное время его свечения за период – 8 мкс.

Обнаружение датчиком приближения/удаления обслуживается следующими регистрами. Запись в разряд 6 доступного для чтения и записи регистра с адресом 0×44 банка «1» позволяет задать текущее усиление при обнаружении приближения/удаления:

  • 0 – коэффициент усиления, равный 1;
  • 1 – коэффициент усиления, равный 2.

Флаг прерывания от обнаружения приближения/удаления содержится в разряде 1 доступного только для чтения регистра с адресом 0×44 банка «0». Это прерывание может быть замаскировано с помощью доступного для чтения и записи регистра с адресом 0×42 банка «0», имеющего такую же битовую структуру. Если разряд 1 в регистре маски флагов установлен, может быть сгенерировано прерывание от обнаружения приближения/удаления, а если сброшен – не может.

Механизм обнаружения датчиком приближения/удаления иллюстрируется сигнальной диаграммой, изображённой на рисунке 4. Как можно видеть из рисунка, необработанные («сырые») 8-разрядные данные приближения/удаления, содержащиеся в доступном только для чтения регистре с адресом 0×6C банка «0», сравниваются логикой датчика со значениями верхнего и нижнего порогов гистерезиса обнаружения приближения/удаления, задаваемыми пользователем в доступных для чтения и записи регистрах с адресами 0×69, 0×6A соответственно банка «0». По итогам сравнения разряд 0 (бит PS Approach) доступного только для чтения регистра с адресом 0×6B банка «0» принимает значение, указанное в таблице 2. Изменение состояния бита PS Approach означает детектирование приближения или удаления внешнего объекта. Такое детектирование вызывает автоматическую установку флага прерывания от обнаружения приближения/удаления. Одновременно выход INT датчика переходит в низкий (активный) логический уровень. Чем именно было вызвано данное прерывание – приближением или удалением – можно однозначно определить по состоянию бита PS Approach.

Прерывание от обнаружения приближения/удаления сбрасывается путём программного чтения регистра с адресом 0×44 банка «0». При сбросе этого прерывания происходит автоматическая установка выхода INT.

Окончание – в следующем номере.

Литература

  1. www.pixart.com.tw/sensor.asp.
  2. www.seeedstudio.com/wiki/File:PAJ7620U2_Datasheet_V0.8_20140611.pdf.
  3. www.seeedstudio.com/wiki/Grove_-_Gesture_v1.0.
  4. www.terraelectronica.ru/catalog_info.php?CODE=1210657.
  5. www.olimex.com/Products/Modules/Interface/MOD-RS232/open-source-hardware.

Скачать

20165040.rar / RAR, 9 МБ

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

15.05.2016 945 0
Комментарии
Рекомендуем
К 130-летию со дня рождения великого советского физика Игоря Евгеньевича Тамма. Часть 4. История возникновения  концепции поляритонов

К 130-летию со дня рождения великого советского физика Игоря Евгеньевича Тамма. Часть 4. История возникновения концепции поляритонов

В прошлом году в журнале «Современная электроника» были опубликованы три статьи, посвящённые юбилею выдающегося российского физика-теоретика Игоря Евгеньевича Тамма (СОЭЛ № 7–9, 2025). В частности, были описаны современные быстродействующие электрооптические модуляторы, поверхностные состояния Тамма, запрещённые фотонные зоны и фотонные кристаллы. В этих статьях умышленно не затрагивались темы поляритонов, оптических состояний Тамма (ОСТ) и плазмон-поляритонов Тамма (ППТ). Поскольку ключевой вклад в раннюю разработку этих явлений в основном принадлежит российским учёным, целесообразно посвятить их открытию более подробные отдельные статьи. Ниже рассмотрены два основных типа гибридных фотонных частиц: экситон-поляритоны и фонон-поляритоны.  
24.04.2026 СЭ №4/2026 188 0
Телевизор с электронно-лучевой трубкой: разработки С.И. Катаева и их значение

Телевизор с электронно-лучевой трубкой: разработки С.И. Катаева и их значение

«…Наступит время… когда миллионы таких приборов, таких "электрических глаз" будут всесторонне обслуживать общественную и частную жизнь, науку, технику и промышленность…» Б. Розинг Семён Исидорович Катаев (1904–1991 гг.), советский учёный и изобретатель в области телевидения, доктор технических наук, профессор, заслуженный деятель науки и техники – незаслуженно обделён вниманием популяризаторами истории электроники и телевидения в нашей стране. Тем не менее И.С. Катаев внёс значительный вклад в развитие инженерной мысли в СССР при разработке и усовершенствовании электронно-лучевых трубок (ЭЛТ), ставших на многие годы ключевой технологией, лежащей в основе экранов телевизоров и оборудования различного назначения. Катаев дополнил изобретение Зворыкина и по праву может считаться ещё одним «отцом» отечественного телевидения. В найденных документах роль Катаева прослеживается чётко, и в статье мы хотим это показать.
23.04.2026 СЭ №4/2026 177 0
Электронные системы диагностики, стимуляции и воздействия на человека на примере BAMH и управления –  на примере AE-Skin

Электронные системы диагностики, стимуляции и воздействия на человека на примере BAMH и управления – на примере AE-Skin

Путь будущих разработок в области современной электроники пролегает от визуального отображения окружающего пространства до тактильного. В этой связи представляют интерес система Bioinspired Adaptable Multiplanar mechano-vibrotactile Haptic (BAMH) – пневматически активируемый роботизированный электронный комплекс с интерфейсом из мягкого материала и система AE-Skin, обеспечивающая интерфейс между кожей человека и физическими поверхностями. Принцип её действия достаточно известен и заложен в управлении интерактивными экранами. В первой части статьи рассматриваются особенности новых разработок в области медицинской электроники и перспективы тактильного воздействия на кожу человека для лечения и изменения настроения. Во второй части представлен подробный разбор AE-Skin и примеры её совершенствования во всех сферах жизни человека: от управления посредством электронных тактильных датчиков миниатюрной формы до устройств на основе новых технологий, воспринимающих движения руками без прикосновения и без применения пироэлектрических детекторов, как управляющие сигналы для РЭА.
17.04.2026 СЭ №4/2026 225 0

ООО «ИнСАТ»  ИНН 7734682230  erid = 2SDnjdWbKyt
ООО «ИнСАТ»  ИНН 7734682230  erid = 2SDnje2F5cn
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться