СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 6/2016

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 61 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 6 2016 ного замка), отпирание или неотпира- ние замка по итогам этого сравнения, вывод соответствующих сообщений на ЖКИ и генерацию соответствующих звуковых сигналов. Жест «волнообраз- ное движение» (W) в перечень распоз- наваемых устройством жестов решено было не включать, поскольку, на взгляд автора, датчик PAJ7620U2 распознает его нестабильно, часто принимая за другие жесты. Однако соответствую- щий жесту W выход на схеме модуля имеется. Программа также осуществляет выда- чу через UART МК информации о рас- познанных датчиком жестах в виде прописных латинских букв U, D, L, R, F, B, C, A, сообщений об отпирании или неотпирании замка (последнее только в режиме электронного замка). Через UART осуществляется и конфигури- рование устройства, состоящее в зада- нии и контроле его параметров: отпи- рающего кода и интервала отпирания электронного замка, пароля доступа в режим администратора. После включения питания и инициа- лизации процессорного ядра и исполь- зуемых в данном приложении перифе- рийных узловМК (аппаратные модули I 2 C1, UART7, таймер системных сигна- лов времени SysTick, EEPROM), цветно- го ЖКИ, программа производит вывод аппаратно подключённого кМК датчи- ка PAJ7620U2 из состояния сна – пере- даёт пошине I 2 C адрес ведомого Slave ID = 0 × 73, для чего используется функция передачи пошине одного байтаWR_1_ byte_Slave_I2C(). Затем программа отслеживает окончание пробуждения PAJ7620U2, производя циклическое чте- ние регистра датчика с адресом 0 × 00 с помощьюфункции чтения одного реги- стра PAJ7620_ReadReg(). Если в пределах заданного лимита попыток чтения воз- вращается результат 0 × 20, то програм- ма считает PAJ7620U2 пробудившим- ся и включает его путём записи значе- ния 0 × 01 в его регистр с адресом 0 × 72 из банка «1». Для этого используется функ- ция записи одного регистра PAJ7620_ WriteReg(). Затем во включённый датчик загружается двумерный массив настро- ек инициализации для распознавания жестов initRegisterArray1[ ][2]. В ходе про- буждения и инициализации на ЖКИ выводится информация, отражающая старт и завершение указанных про- цессов («TEST PAJ7620...», «TEST–>OK», «INIT PAJ7620...», «INIT–>OK»), а так- же прочитанные программой значе- ния регистров с адресом 0 × 00 («WAKE_ UP=0032») и с адресом 0 × 72 из банка «1» («ENABLE=0001»). Программа полага- ет PAJ7620U2 исправным и готовым к работе, когда выводит на ЖКИ ито- говое сообщение «INIT–>OK». Процесс пробуждения и инициализации длит- ся около трёх секунд и сопровождает- ся звуковыми сигналами высокого тона. Выведенный на ЖКИ набор значений регистров PAJ7620U2 и сообщений, соответствующих исправному датчи- ку и успешному завершению инициа- лизации периферии МК, показан на рисунке 8. Если в ходе пробуждения при пре- вышении заданного лимита попы- ток чтения прочитанное из регистра с адресом 0 × 00 значение не будет равно 0 × 20, то наЖКИ выводится сообщение «TEST–>NOOK» и программа переходит к выполнению бесконечного пустого цикла. Использование модуля по назна- чению в этом случае невозможно. После успешного завершения началь- ной инициализации устройство, в зави- симости от наличия перемычки XT1 «Mode», автоматически переходит в состояние ожидания поступления жеста в одном из двух возможных режи- мов: простое распознавание жестов (заставка ЖКИ при загрузке «GESTURE Vx.x») или электронный замок (застав- ка «GESLOCK Vx.x»). В обоих режимах в центре экрана индицируется при- глашение сделать жест – прописная буква G. При распознавании устрой- ством сделанного жеста приглашение на экране немедленно заменяется на соответствующую этому жесту латин- скую букву. Одновременно такая же буква однократно передаётся через UART, а соответствующий распознан- ному жесту цифровой выход МК при- мерно на 0,5 с переходит в активное (высокое) состояние. В режиме просто- го распознавания функционал устрой- ства этим исчерпывается. Дополнительно в режиме электрон- ного замка при распознавании любо- го жеста в верхней частиЖКИ индици- руется признак начавшегося накопле- ния комбинации жестов – строка «Wait». Если в течение двух секунд следующий жест не поступает, строка «Wait» гаснет, а программный счётчик жестов нако- пленной комбинации обнуляется, то есть процесс накопления сбрасывает- ся. Если до пропадания строки «Wait» поступает следующий жест, счётчик жестов инкрементируется, а индици- руемое строкой «Wait» состояние нако- пления продляется ещё на две секунды. При накоплении таким образом комби- нации из заданного количества жестов производится её сравнение со считан- ным из EEPROMМК отпирающим кодом электронного замка. В случае их совпа- дения в нижней части ЖКИ в течение некоторого заданного интервала вре- мени (интервала отпирания) индици- руется строка «Open», такая же стро- ка однократно передаётся через UART, цифровой выход электронного зам- ка на указанный интервал переходит в активное (высокое) состояние, то есть замок открывается, генерируется звуко- вой сигнал высокого тона. При несо- впадении комбинации в нижней части Рис. 7. Внешний вид макета устройства Рис. 8. Отображаемая на ЖКИ информация, соответствующая успешной инициализации датчика PAJ7620U2 и периферии МК

RkJQdWJsaXNoZXIy MTQ4NjUy