Leap Motion - это небольшое устройство, способное улавливать движение руки: давайте воспользуемся им, чтобы понять основные жесты, как в популярной игре "камень, ножницы, бумага". Источник: https://github.com/antigones/lm_rock_paper_scissors

Спасибо Никола Гульельми за идею применения распознавания жестов в игре.

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

Даже если устройство не новое, веб-сайт производителя по-прежнему предоставляет API-интерфейсы, и даже сейчас все еще можно разрабатывать приложения, основанные на нем.

В этом проекте вы будете использовать Leap Motion, чтобы сначала «интерпретировать» некоторые базовые жесты, а затем распознавать жесты «камень, ножницы, бумага» с помощью очень наивного алгоритма. Кроме того, вы отобразите распознанный жест на веб-странице.

Включение веб-взаимодействия

Прежде чем продолжить работу над проектом, вам необходимо включить веб-взаимодействие в настройках Leap Motion.

Веб-страница

Веб-страница для этого проекта действительно проста, поскольку отображает только div с результатом обнаружения:

Использование API JavaScript Leap Motion

Интегрировать Javascript API Leap Motion очень просто: достаточно добавить скрипт в раздел ‹head›… ‹/head› на веб-странице:

<script src=”//js.leapmotion.com/leap-1.1.0.min.js”></script>

Взаимодействие с контроллером - это всего лишь вопрос:

  • подключение к устройству
  • цикл по полученному кадру для выполнения некоторой «логики»

Вы можете подключиться к устройству, инициализировав новый контроллер и вызвав метод connect ():

var controller = (new Leap.Controller);
controller.connect();

Как только устройство подключено, страница начинает получать кадры, которые можно зациклить:

Leap.loop(controllerOptions, function(frame) {
// here you are looping over the frames
…
})

Обнаружение жестов рук

Если вы думаете о жесте «камень, ножницы, бумага», вы можете найти очень наивный способ решить, какой жест делает пользователь в данный момент:

  • рок: без пальцев
  • ножницы: два пальца вытянуты
  • бумага: пять пальцев вытянуты

Действительно наивно, но очень просто!

API Leap Motion предоставляют свойства кадра, чтобы определить, сколько рук находится над датчиком и сколько пальцев на руке.

frame.hands

frame.hands [i] .fingers

Вы можете использовать эту функцию для подсчета вытянутых пальцев:

Результат

В результате у вас есть веб-страница, способная отображать ваш жест «Камень, ножницы, бумага» в реальном времени!