Сайт магистра

Якубчук Михаил Олегович
en
Магистр ДонНТУ Якубчук Михаил Олегович

Якубчук Михаил Олегович

Факультет компьютерных наук и технологий

Кафедра компьютерной инженерии

Специальность «Вычислительные машины, комплексы, системы и сети»

Разработка и исследование системы передачи графической информации

Научный руководитель: к.т.н., доцент Николаенко Денис Владимирович

Реферат

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

Содержание

Введение

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

В современном мире компьютерные технологии давно и уверенно прижились в быту. Они призваны помогать человеку справляться с повседневными задачами по дому, выполнять однотипную работу или задачи, требующие постоянного контроля. Примерами таких технологий могут являться системы «умный дом», а также огромное разнообразие различных устройств, которые так или иначе облегчают человеку жизнь [1].

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

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

1. Актуальность темы

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

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

Но ведь часто бывает, что кто-то может прийти к нам домой во время нашего отсутствия, и мы никак об этом не сможем узнать. В повседневной жизни может быть полезным всегда знать, что прямо сейчас кто-то позвонил в дверь, а также просмотреть, кто это сделал.

2. Цель и задачи исследования, планируемые результаты

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

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

3. Обзор исследований и разработок

3.1 Обзор международных источников

Устройства оповещения о посетителе условно можно поделить на два вида:

На данный момент существует множество различных решений на случай, когда хозяин присутствует дома. В первую очередь это дверные звонки и домофоны. Домофоны могут быть подъездными и частными. Так же любой человек может заказать установку видеодомофона (рис. 3.1) или входной двери со встроенным видео-глазком [2].

Видеодомофон
Рисунок 3.1 – Видеодомофон

Такие системы позволяют наблюдать непосредственно за тем, что происходит за дверью квартиры. Качественные системы подобного рода не являются дешёвыми, но зато полезны и надёжны.

На случай, когда хозяин отсутствует дома, существуют различные датчики открытия дверей с GSM-сигнализацией, призванные в первую очередь оповестить о несанкционированном открытии дверей. Такие устройства выступают в качестве системы безопасности на случай, если кто-то проник в квартиру без вашего ведома.

Так же за рубежом были найдены несколько устройств, которые информировали бы о нажатии на дверной звонок и отправляли фотографию человека на смартфон. Например, August Doorbell Cam Pro или SkybellHD. Цены на подобные устройства начинаются от 150$ и выше.

Беспроводной видеозвонок Eken V5
Рисунок 3.2 – Беспроводной видеозвонок Eken V5

3.2 Обзор локальных источников

Одним из выпускников ДонНТУ была предложена система приёма посетителей предприятия на основе доступной и сравнительно не дорогой платформе Arduino. Данная система предназначена для использования на предприятии, где работает много людей и большое количество посетителей. Эта система позволяет службе охраны получать оповещения с фотографией о людях, которые находятся у входной двери [3].

4. Разработка устройства

4.1 Структурная схема устройства оповещения

Структурная схема устройства оповещения хозяина о посетителе представлена на рисунке 4.1.

Структурная схема устройства оповещения
Рисунок 4.1 – Структурная схема устройства оповещения

Структурная схема устройства состоит из следующих элементов:

Управление устройством осуществляется с помощью микроконтроллера (МК). К МК подключаются дверной звонок, GSM-модуль и камера размещённая у входной двери. МК должен всё время быть подключён к компьютеру, так как ему необходимо передавать данные изображения, получаемые с камеры. Программное обеспечение обрабатывает данные с камеры и сохраняет их на компьютер в виде изображения. Смартфон хозяина подключён к облачному сервису, который в свою очередь синхронизирован с папкой на компьютере, в которой хранятся полученные изображения.

Принцип работы устройства следующий: приходит посетитель и нажимает на дверной звонок. МК принимает сигнал нажатия на дверной звонок и отправляет сигналы камере и GSM-модулю. GSM-модуль отправляет на смартфон хозяина SMS-оповещение о том, что кто-то позвонил в дверь. Камера формирует поток данных и через МК отправляет их на компьютер, где в программе полученный поток данных обрабатывается и из него формируется изображения в png формате, которое сохраняется в папку на компьютере. Пользователь может воспользоваться собственным смартфоном и интернетом (мобильным или Wi-Fi), и с помощью облачного сервиса, синхронизированного с папкой, в которой хранятся изображения, просмотреть полученный снимок.

Принцип работы устройства
Рисунок 4.2 – Принцип работы устройства (анимация: 9 кадров, циклов повторения: бесконечно, 72 килобайта)

4.2 Выбор и характеристика аппаратных средств

Для оптимальной работы системы и её правильной функциональности необходимо выбрать аппаратные средства, которые будут соответствовать поставленной задаче. Для устройства оповещения о посетителе были выбраны следующие аппаратные средства:

Данные элементы были выбраны по нескольким причинам: низкая себестоимость, доступность, удобство в эксплуатации. Приведём краткое описание каждого элемента устройства.

4.2.1 Плата Arduino Nano

Плата Arduino Nano – одна из самых миниатюрных плат Ардуино. Она является полным аналогом Arduino Uno – так же работает на чипе ATmega328P, но с меньшим форм-фактором. Из-за своих габаритных размеров плата часто используется в проектах, в которых важна компактность. На плате отсутствует вынесенное гнездо внешнего питания, Arduino Nano работает через USB (miniUSB или microUSB). В остальном параметры совпадают с моделью Arduino Uno [4]. Описание основных элементов платы Arduino Nano представлено на рисунке 4.3.

Описание составляющих платы Arduino Nano
Рисунок 4.3 – Описание составляющих платы Arduino Nano

Плата Arduino Nano имеет 14 цифровых контактов, которые помечаются буквой D (цифровой, digital). Контакты используются как входы и выходы, у каждого имеется подтягивающий резистор.

Аналоговые контакты обозначаются буквой А и используются как входы. У них отсутствуют подтягивающие резисторы, они измеряют поданное на них напряжение и возвращают значение при помощи функции analogRead().

4.2.2 Модуль камеры OV7670

Модуль камеры OV7670, представленный на рисунке 4.4, позволяет снимать изображения VGA формата с максимальным разрешением 640х480 точек, осуществлять их первичную обработку и по интерфейсу SCCB передавать их на управляющее устройство, например, модуль Arduino.

Модуль камеры OV7670
Рисунок 4.4 – Модуль камеры OV7670

Для OV7670 существуют множество настроек. Программируется качество изображения, формат данных и режим передачи. Обработка изображения настраивается записью данных в специальные регистры микросхемы OV7670 с помощью интерфейса SCCB – аналог шины I2C. Частота дискретизации 30 кадров в секунду соответствует стандарту VGA. Скорость передачи кадров устанавливается программно. Также доступны форматы: QVGA 320х240, CIF 352х240, QCIF 176x144.

Следует отметить, что возможности камеры сильно ограничены быстродействием платы Arduino Nano, в частности микроконтроллером ATmega328p. Используя данный МК с этим модулем невозможно заполучить плавное изображение с частотой 30 кадров в секунду и разрешением 640х480px, в связи с низкой частотой МК и малым объёмом ОЗУ. Тем не менее этого достаточно, чтобы получать одноразовые снимки в различных форматах и приемлемом качестве.

4.2.3 GSM-модуль SIM800L

Модуль SIM-800L, представленный на рисунке 4.5 – это 4-диапазонный GSM/GPRS модуль, являющийся достаточно распространённым и доступным для многих радиолюбителей.

GSM-модуль SIM800L
Рисунок 4.5 – GSM-модуль SIM800L

В основе модуля SIM800L лежит чип Mediatek ARM MT6261. За GSM/GPRS-связь отвечает 4-диапазанной приёмопередатчик RF7198 [6].

Взаимодействие с модулем осуществляется по интерфейсу UART при помощи специальных AT-команд.

4.2.4 Остальные элементы системы

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

В данной работе понадобится 7 резисторов: пять – 10кОм, один – 1кОм, один – 680Ом.

4.3 Разработка программного обеспечения

В данном проекте программное обеспечение состоит из 3-х компонентов:

Рассмотрим более подробно каждый компонент программного обеспечения.

4.3.1 Программа для Arduino

Программа, написанная для платформы Arduino, называется скетч. Для написания скетча была использована официальная среда разработки Arduino IDE. В данном устройстве, к плате Arduino подключается два модуля и кнопка. Следовательно, в скетче необходимо организовать работу каждого модуля и взаимодействие между ними. Когда кто-либо нажимает на дверной звонок, микроконтроллер реагирует этот сигнал и обращается к модулю камеры. Выполняется попиксельная передача одного кадра с камеры на компьютер по USB-кабелю через интерфейс UART. В случае с цветным изображением используется кодировка RGB565, а с оттенками серого – YUV422. В обоих случаях для передачи одного пикселя необходимо два байта.

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

4.3.2 Программа для обработки данных с камеры

Данные, которые Arduino принимает с камеры и отправляет через USB-кабель на компьютер, необходимо принять, обработать и сформировать готовое изображение. Всё это должно происходить на компьютере, к которому подключена сама Arduino. Для этого была написана специальная программа на языке программирования Java в среде разработки IntelliJ IDEA.

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

4.3.3 Облачный сервис

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

На компьютере пользователя, Яндекс.Диск представляется в виде обычной папки. Всё, что находится в этой папке, автоматически синхронизируется с облаком и другими устройствами пользователя (телефон, планшет, другие ПК). Таким образом, когда в эту папку будут сохраняться изображения, полученные с камеры, их можно будет просмотреть на другом устройстве пользователя, например, смартфоне.

5. Исследование устройства

Используя беспаечную макетную плату и перемычки, для тестирования и исследования устройства, к плате Arduino Nano были подключены необходимые модули (рис 5.1).

Подключённое устройство
Рисунок 5.1 – Подключённое устройство

И так, протестируем два формата изображения: RGB и оттенки серого. Оба формата имеют разрешение 320х240 точек. После нажатия на кнопку происходит отправка данных с камеры на компьютер и обработка этих данных в Java-программе. Изображение в формате RGB было получено за 2.600 секунды (рис 5.2), а изображение в оттенках серого было получено за 1.900 секунду (рис 5.3). Также оба изображения были сохранены в папке Image (рис 5.4) и стали доступны в приложении Яндекс.Диск на смартфоне (рис 5.5).

Время получения RGB-изображения
Рисунок 5.2 – Время получения RGB-изображения
Время получения изображения в оттенках серого
Рисунок 5.3 – Время получения изображения в оттенках серого
Сохранённые изображения на компьютере
Рисунок 5.4 – Сохранённые изображения на компьютере
Полученные изображения в приложении Яндекс.Диск на смартфоне
Рисунок 5.5 – Полученные изображения в приложении Яндекс.Диск на смартфоне

На рисунке 5.6 представлены характеристики полученного изображения.

Характеристики полученного изображения
Рисунок 5.6 – Характеристики полученного изображения

Так же было проведено несколько тестовых снимков, для получения информации о качестве получаемого изображения. Полученные снимки приведены на рисунке 5.7.

Тестовые снимки камеры
Рисунок 5.7 – Тестовые снимки камеры

Как можно заметить, желательно, что бы камера и объект находились в относительной неподвижности. Иначе могут появится небольшие искажения, так как из-за небольшой частоты микроконтроллера, изображение передаётся с ограниченной скоростью. Тем не менее данного качества изображения вполне достаточно, чтобы рассмотреть лицо знакомого человека или понять, что человек, который позвонил в дверь, вам не знаком.

Выводы

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

Список источников

  1. Информационные технологии в нашей жизни [Электронный ресурс]. – Режим доступа: [Ссылка]
  2. Обзорная статья по типам, видам и устройству домофонов [Электронный ресурс]. – Режим доступа: [Ссылка]
  3. Парфёнов Д.А. разработка системы приёма посетителей предприятия [Электронный ресурс]. – Режим доступа: [Ссылка]
  4. Плата Arduino Nano v 3.0 : распиновка, схемы, драйвера [Электронный ресурс]. – Режим доступа: [Ссылка]
  5. OV7670 модуль VGA камеры [Электронный ресурс]. – Режим доступа: [Ссылка]
  6. GSM-модуль SIM800L: самый полный мануал (на примерах с Arduino Uno) [Электронный ресурс]. – Режим доступа: [Ссылка]
  7. Уроки Fritzing [Электронный ресурс]. – Режим доступа: [Ссылка]
  8. SIM800L_Hardware_Design_V1.00 [Электронный ресурс]. – Режим доступа: [Ссылка]
  9. Пример работы с камерой OV7670 от пользователя Indrek [Электронный ресурс]. – Режим доступа: [Ссылка]
  10. Arduino OV7670 live image over USB to PC [Электронный ресурс]. – Режим доступа: [Ссылка]
  11. Уроки Arduino. Как написать скетч? [Электронный ресурс]. – Режим доступа: [Ссылка]
  12. Статья из Википедии о Java [Электронный ресурс]. – Режим доступа: [Ссылка]
  13. Статья из Википедии о IntelliJ IDEA [Электронный ресурс]. – Режим доступа: [Ссылка]