Разработка аппаратно-программного комплекса ультразвуковой идентификации объектов

Аннотация

Произведен выбор необходимых компонентов и создана общая схема системы для аппаратно-программного комплекса ультразвуковой идентификации объектов. Выполнено проектирование и составление возможных команд взаимодействия между клиентом и сервером.

Аппаратный модуль системы

В качестве блока управления датчиком расстояния (HC-SR04) и серводвигателем (необходим для движения датчика расстояния) будет рассматриваться одноплатный компьютер Raspberry Pi Model B первого поколения. Выбор обусловлен низкой стоимостью компьютера. Альтернативным вариантом мог бы использоваться Arduino, стоимость которого намного ниже, чем выбранный блок управления, но Raspberry Pi имеет аппаратные возможности установления сетевого соединения через Ethernet или Wi-Fi, которое является основным в работе проектируемой системы.

Датчик расстояния HC-SR04 представляет собой плату, на которой размещены: излучатель и приемник ультразвука и управляющая электронная схема. Датчик имеет небольшие габариты и простой интерфейс – два вывода питания, один вход и один выход. Излучатель сенсор HC-SR04 излучает короткий ультразвуковой импульс (в момент времени 0), который отражается от объекта и принимается приемником сенсора. Расстояние рассчитывается исходя из времени до получения эха и скорости звука в воздухе. Сенсор получает сигнал эха, и выдаёт расстояние, которое кодируется длительностью электрического сигнал на выходе датчика. Следующий импульс может быть излучён, только после исчезновения эха от предыдущего. Это время называется периодом цикла. Рекомендованный период между импульсами должен быть не менее 50 мс. Если на сигнальный пин подаётся импульс длительностью 10 мкс, то ультразвуковой модуль будет излучать восемь пачек ультразвукового сигнала с частотой 40 кГц и обнаруживать их эхо. Измеренное расстояние до объекта пропорционально ширине эха[1].

Общая схема системы

На рис. 1 представлена макетная схема системы идентификации объектов. Серводвигатель управляется с Raspberry Pi при помощи одного проводника, который подключается к 18 GPIO. Однако питание 5В в целях безопасности используется отдельно (от USB-порта).

Ультразвуковой датчик расстояния (HC-SR04) может работать при напряжении 5В. Однако Raspberry Pi не может принять сигнал от датчика напряжением 5В. Входы одноплатного компьютера рассчитаны на принятие сигнала только 3.3В. Для того, чтобы Raspberry Pi мог обработать сигнал 3.3В, необходимо в схеме использовать делитель напряжения. Это достигается при помощи двух резисторов сопротивлением 330 и 470Ом[2].

Рисунок 1 – Макетная схема системы
Проектирование взаимодействия клиент-сервер

Программная архитектура системы строится по схеме клиент-сервер. Между клиентом и сервером устанавливается соединение через socket интерфейс по протоколу UDP. В качестве сервера выступает блок управления датчиками и датчик расстояния, а в качестве клиента – кроссплатформенная система обработки данных (данные датчика расстояния с сервера) и распознавания объектов. Диаграмма компонентов системы представлена на рис. 2.

Главными компонентами на диаграмме являются «uos_server.py», который развертывается на Raspberry Pi, (является сервером) и компонент «UOSClient» – клиентская система, которая отправляет запросы серверу в формате JSON.

Рисунок 2 – Диаграмма компонентов
Проектирование JSON команд между клиентом и сервером

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

Для работы системы необходимы следующие команды:

  1. команда соединения с сервером (проверка на готовность сервера);
  2. команда сканирования объекта;
  3. команда замера текущего расстояния до объекта.

Структура команды соединения с сервером (проверка на готовность сервера) представлено на рис. 3. Команда также содержит IP-адрес и имя устройства клиента.

Рисунок 3 – Команда соединения с сервером

Ответ на соединение: сервер должен ответить готовностью и сообщить технические характеристики устройства, на котором запущен. Ответ соединения с сервером показан на рис. 4. Ответ содержит IP-адрес и порт сервера.

Рисунок 4 – Ответ на команду соединения с сервером

Формирование команды сканирования объекта представлено на рис. 5. Команда должна содержать название, точность сканирования (настройка датчика расстояния) и скорость сканирования (настройка серводвигателя).

Рисунок 5 – Команда сканирования объекта

В ответ на команду сканирования объекта клиентом, сервер должен выполнить сканирование, а затем отправить результат в виде массива расстояний (см. рис. 6).

Рисунок 6 – Ответ в виде массива расстояний

Команда замера текущего расстояния до объекта аналогична команде сканирования, но не содержит значения скорости, т.к. данный режим не использует сервопривод (см. рис. 7).

Рисунок 7 – Команда замера текущего расстояния

Ответ на команду замера текущего расстояния до объекта представлен на рис. 8.

Рисунок 8 – Ответ в виде текущего расстояния до объекта
Выводы

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

Литература
  1. Ультразвуковой сонар HC-SR04 [электронный ресурс] // Космодром – электронные компоненты: [сайт]. [2016]. URL: http://www.kosmodrom.com.ua/el.php?name=HC-SR04
  2. Ультразвуковое измерение при помощи Python [электронный ресурс] // Компания Raspberry-Spy: [сайт]. [2015]. URL: http://www.raspberrypi-spy.co.uk/2012/12/ultrasonic-distance-measurement-using-python-part-1