Введение
Корпорация Intel®выпускает немало технических новинок. Одним из новшеств является технология Intel® RealSense™ с камерами Intel® RealSense™ 3D и пакетом SDK. С помощью этой технологии можно создавать приложения для распознавания жестов, анализа лиц, отделения фона, распознавания речи, синтеза речи и т. д. SDK поддерживает программные платформы CSharp, Java, JavaScript, Processing и Unity. Разработчики могут приступить к созданию приложений на хорошо знакомых им платформах.
Еще одна интересная новинка Intel® — платформа Intel® Edison. Разработчики решений для Интернета вещей могут создавать прототипы, собирающие информацию с датчиков и передающие управление другим устройствам. В платформу Intel® Edison встроены технологии Wi-Fi и Bluetooth Low-energy* (LE) для подключения к Интернету, что позволяет действительно встраивать возможности работы с Интернетом практически в любые вещи.
Питер Ма написал великолепную статью об использовании технологии Intel® RealSense™ с платформой разработки Intel® Edison. В этой статье приводятся два примера таких решений. В одном решении камера Intel® RealSense™ 3D получает входные данные, а для вывода используется плата Intel® Edison. Пакет SDK включает светодиодный индикатор на плате. Во втором примере входным устройством является плата Intel® Edison, а выходным — камера Intel® RealSense™ 3D; модуль синтеза речи зачитывает вслух данные датчиков, полученные с платы.
Опираясь на этот проект, я решил создать нечто похожее на JavaScript. В этой статье мы будем использовать технологию Intel® RealSense™ и платформу JavaScript для отправки данных о жестах рук на сервер. Сервер будет отправлять данные для включения звукового сигнала и светодиода на плате Intel® Edison.
Оборудование
- Плата Intel® Edison с коммутационной платой Arduino*
- Seeed Grove* — Starter Kit Plus — Intel® IoT Edition
- Процессор Intel® Core™ 4-го поколения (или более позднего)
- 8 ГБ свободного места на жестком диске
- Порт USB 3.0
- Камера Intel® RealSense™ 3D F200 (встроенная в систему или периферийная)
- Сервер с Node.js
ПО
- Intel® XDK IoT Edition: https://software.intel.com/ru-ru/getting-started-with-the-intel-xdk-iot-edition#launch
- Intel® RealSense™ SDK R4: https://software.intel.com/ru-ru/intel-realsense-sdk
Шаг 1. Настройка Intel® RealSense™
Настройка Intel® RealSense™ очень проста. Сначала подключите камеру Intel® RealSense™ 3D F200 к порту USB 3.0. Установите драйвер камеры и пакет Intel® RealSense™ SDK: https://software.intel.com/ru-ru/intel-realsense-sdk/download
После установки SDK перейдите в папку установки и откройте пример JavaScript в RSSDK\framework\JavaScript\FF_HandsViewer\FF_HandsViewer.html в браузере, чтобы запустить необходимые проверки.
Щелкните ссылку в браузере, чтобы установить модуль выполнения веб-приложений Intel® RealSense™ SDK, затем перезапустите браузер и попробуйте снова открыть этот файл. После этого попробуйте поднять руку перед камерой. Если все сработает правильно, в браузере будут показаны данные расположения руки.
Обратите внимание на текст в нижней части экрана (Gesture:{"timeStamp": ,"handId": ,"state": ,"frameNumber": ,"name":"spreadfinger"}), мы отправим "name":"spreadfingers" на сервер.
- Скопируйте папку RSSDK\framework\JavaScript\FF_HandsViewer в другое место.
- Скопируйте файл realsense.js, находящийся в папке RSSDK\framework\common\JavaScript, и поместите его в папку FF_HandsViewer.
- Создайте файлы edisonconnect.jsдля получения данных жестов и отправки их на сервер (не забудьте изменить IP-адрес сервера).
- Отредактируйте файл sample.js, чтобы перехватывать данные жестов и передавать их в edisonconnect.js.
- Отредактируйте файл FF_HandsViewer.html, чтобы изменить путь к файлу realsense.js, подключить socket.io и сценарий edisonconnect.js.
Теперь мы готовы к отправке данных о жестах на сервер. Следующий шаг — настройка сервера и Intel® Edison.
Шаг 2. Настройка сервера
Я исхожу из того, что вы уже настроили сервер на базе Debian Linux (я использую Ubuntu) и node.js на этом компьютере.
- Установите удаленное подключение к серверу и войдите на него с помощью SSH.
Шаг 3. Настройка Intel® Edison
Развертывание Intel® Edison не вызовет затруднений; предоставляется очень удобная документация. Документацию см. здесь:
- Приступая к работе с Intel® Edison: https://software.intel.com/ru-ru/iot/library/edison-getting-started
- Seeed Grove* — Starter Kit Plus — Intel® IoT Edition: http://www.seeedstudio.com/depot/Grove-starter-kit-plus-Intel-IoT-Edition-for-Intel-Galileo-Gen-2-and-Edison-p-1978.html
- Соберите Intel® Edison на плате Arduino: https://software.intel.com/ru-ru/articles/assemble-intel-edison-on-the-arduino-board
- Запуск встроенного установщика: https://software.intel.com/ru-ru/get-started-edison-windows-step2
- Настройка терминального подключения: https://software.intel.com/ru-ru/get-started-edison-windows-step3
- Подключение Intel® Edison к Wi-Fi: https://software.intel.com/ru-ru/get-started-edison-windows-step4
- Установите и настройте Intel® XDK IoT Edition: https://software.intel.com/ru-ru/getting-started-with-the-intel-xdk-iot-edition#launch
Теперь пора загрузить код в Intel® Edison. Этот код служит для подключения к серверу и для прослушивания вещания сервера. При получении данных о жестах на плате Intel® Edison будут включены и отключены определенные контакты.
- Сначала откроем Intel® XDK IoT Edition и создадим новый проект на основе шаблона. Используем шаблон Digital
- Отредактируйте файл main.jsдля подключения к серверу и проверки наличия данных о жестах с именем spreadfingers. После этого переключаем цифровые контакты 2 и 8 в состояние 1 (включено), а при получении других данных о жестах переключаем их в состояние 0 (выключено). * Смените IP-адрес сервера. Если нужно использовать другие контакты, измените mraa.Gpio(selectedpins). Отредактируйте файл main.jsдля подключения к серверу и проверки наличия данных о жестах с именем spreadfingers. После этого переключаем цифровые контакты 2 и 8 в состояние 1 (включено), а при получении других данных о жестах переключаем их в состояние 0 (выключено). * Смените IP-адрес сервера. Если нужно использовать другие контакты, измените mraa.Gpio(selectedpins).
- Наконец, установите, соберите и запустите проект. Убедитесь в подключении устройства Intel® Edison.
Теперь убедимся, что сервер запущен, а компьютер с Intel® Realsense™ и Intel® Edison подключены к Интернету.
Это можно увидеть здесь.
Заключение
Это очень простой проект, в котором мы изменили образец сценария Intel® RealSense™ JavaScript для отправки полученных данных о жестах на сервер Node.js. Сервер будет вещать данные о жестах на любые прослушивающие клиенты. Плата Intel® Edison с socket.io-client будет прослушивать вещание сервера, а при получении данных о жестах с именем spreadfingersпереключит заданные цифровые контакты. Аналогичным образом можно создать проект с использованием данных лица, данных объемных предметов и распознаванием речи с помощью JavaScript.
Выбор за вами!
Аулиа Факих (Aulia Faqih) — специалист c квалификацией Intel® Software Innovator.
Intel® RealSense Innovator, работает в индонезийском городе Йогякарта и читает лекции в UIN Sunan Kalijaga. Аулиа обожает ставить различные эксперименты с Galileo/Edison, веб-решениями и гаджетами.
Дополнительные сведения об оптимизации компиляторов см. в нашем уведомлении об оптимизации.