- Концепция:
- Необходимые материалы:
- Схема и оборудование:
- Программа для Arduino:
- Программа для обработки:
- За работой:
Это очень интересный проект, в котором мы узнаем, как реализовать виртуальную реальность с помощью Arduino и Processing. Для большинства из нас фильм «Железный человек» Джона Фавро всегда был вдохновением для создания новых вещей, которые сделают нашу жизнь легкой и веселой. Я лично восхищался техниками, которые показаны в фильме, и всегда хотел построить что-то подобное. Итак, в этом проекте я попытался имитировать вещи виртуальной реальности, которые происходят в фильме, например, мы можем просто помахать рукой перед компьютером и переместить указатель в желаемое место и выполнить некоторые задачи.
Здесь я покажу вам, как вы можете просто помахать рукой перед веб-камерой и нарисовать что-нибудь на своем компьютере. Я также покажу вам, как можно переключать свет, виртуально перемещая руку и делая щелчки пальцами в воздухе.
Концепция:
Чтобы это произошло, мы должны использовать мощь Arduino и Processing вместе. Большинство из них знакомы с Arduino, но обработка может быть для вас новой. Processing - это такое же приложение, как и Arduino, оно также имеет открытый исходный код и его можно бесплатно загрузить. Используя Processing, вы можете создавать простые системные приложения, приложения для Android и многое другое. Он также может выполнять обработку изображений и распознавание голоса. Он похож на Arduino, и его очень легко изучить, но не волнуйтесь, если вы новичок в обработке, потому что я написал это руководство довольно простым, чтобы любой желающий мог быстро заставить его работать.
В этом руководстве мы используем обработку для создания простого системного приложения, которое предоставляет нам пользовательский интерфейс и отслеживает положение нашей руки с помощью обработки изображений. Теперь нам нужно щелкнуть левой кнопкой мыши и щелкнуть правой кнопкой мыши. Для этого я использовал два датчика Холла (один на указательном пальце, а другой на среднем пальце), которые будет считывать Arduino Nano. Arduino также передает статус щелчка на компьютер по беспроводной связи через Bluetooth.
Это может показаться сложным, но поверьте мне; это не так сложно, как кажется. Итак, давайте посмотрим на материалы, необходимые для запуска этого проекта.
Необходимые материалы:
- Ардуино Нано
- Датчик Холла (А3144) - 2 шт.
- Небольшой кусочек магнита
- Модуль Bluetooth (HC-05 / HC-06)
- Аккумулятор 9В
- Подключение проводов Точечная плата.
- Пара перчаток
- Arduino IDE (программное обеспечение)
- Обработка IDE (программное обеспечение)
- Компьютер с веб-камерой и Bluetooth (вы также можете использовать внешний Bluetooth или веб-камеру для своего компьютера)
Схема и оборудование:
Аппаратная часть этого проекта очень проста и легка в сборке. Полная схема показана ниже.
Ардуино, резисторы и штыри стержня Берга припаяны к точечной доске, как показано ниже.
Датчик Холла и модуль Bluetooth припаяны к соединительному проводу, как показано ниже.
Как только эти две секции будут готовы, ее можно надеть на перчатки, чтобы ее было легко использовать. Я использовал одноразовые пластиковые перчатки, которые можно купить в любом ближайшем к вам медицинском магазине. Вы должны убедиться, что магнит находится на вашем большом пальце, а датчик Холла 1 и датчик Холла 2 должны находиться перед указательным и средним пальцами соответственно. Я использовал утиные ленты, чтобы закрепить компоненты на месте. После сборки все должно выглядеть примерно так.
Теперь давайте откроем IDE Arduino и начнем программировать.
Программа для Arduino:
Целью этого кода Arduino является считывание состояния датчика Холла и его передача с помощью модуля Bluetooth. Он также должен получать данные от Bluetooth и переключать встроенный светодиод в зависимости от входящего значения. Полная программа приведена в конце этого руководства; Я также объяснил несколько строк ниже.
if (Phs1! = HallState_1 - Phs2! = HallState_2) // Проверяем, нажаты ли новые клавиши {if (HallState_1 == LOW && HallState_2 == LOW) Aisha.write (1); if (HallState_1 == HIGH && HallState_2 == LOW) Aisha.write (2); if (HallState_1 == LOW && HallState_2 == HIGH) Aisha.write (3); if (HallState_1 == HIGH && HallState_2 == HIGH) Aisha.write (4); }
Как показано в строках выше, в зависимости от состояния датчика Холла Bluetooth запишет определенное значение. Например, если датчик Холла 1 высокий, а датчик Холла 2 низкий, то мы будем транслировать значение «2» через модуль Bluetooth. Убедитесь, что вы записываете значения в модуль BT, а не распечатываете их. Потому что их будет легко читать только на стороне обработки, только если они написаны. Также значение будет отправлено, только если оно не такое же, как предыдущее значение.
если (BluetoothData == 'y') digitalWrite (ledpin, HIGH); если (BluetoothData == 'n') digitalWrite (ledpin, LOW);
Эти линии используются для переключения встроенного светодиода, подключенного к контакту 13, в зависимости от значения, полученного модулем BT. Например, если модуль получает «y», то светодиод включается, а если он получает «n», он выключается.
Программа для обработки:
Целью программы обработки является создание системного приложения, которое может действовать как пользовательский интерфейс (пользовательский интерфейс), а также выполнять обработку изображений для отслеживания определенного объекта. В этом случае мы отслеживаем синий объект, который мы прикрепили к нашим перчаткам выше. Программа в основном имеет четыре экрана.
- Экран калибровки
- Главный экран
- Краска экрана
- Светодиодный экран переключения
Мы можем переходить с одного экрана на другой, просто размахивая руками и перетаскивая экраны в воздухе. Мы также можем нажимать на нужные места, чтобы переключать светодиоды или даже рисовать что-то на экране.
Вы можете скопировать и вставить полную программу обработки (приведенную в конце) и изменить ее в зависимости от вашего творчества или просто загрузить файлы EXE отсюда и выполнить следующие шаги для запуска приложения.
- Установите JAVA на свой компьютер, если вы не устанавливали его раньше
- Установите You Cam perfect на свой компьютер
- Включите Arduino и соедините компьютер с модулем Bluetooth.
- Запустить файл приложения
Если все пойдет нормально, вы сможете заметить, что светодиод на модуле Bluetooth стабилизируется, а свет веб-камеры загорается. Если у вас возникнут проблемы, напишите мне в комментариях, и я вам помогу.
Посмотрите видео в конце, чтобы узнать, как откалибровать свое приложение и использовать его.
Если вы хотите изменить код и встроить в него больше функций, вы можете использовать следующие идеи программы.
IDE обработки можно скачать отсюда. Если вы хотите узнать больше об обработке и создать более интересные проекты, вы можете посетить учебные пособия здесь.
Обработка имеет возможность читать последовательные данные, в этой программе последовательные данные поступают из COM-порта Bluetooth. Вы должны выбрать, к какому COM-порту подключен ваш Bluetooth, используя эту строку ниже
порт = новый последовательный (это, Serial.list (), 9600);
Здесь я выбрал свой 1- й COM-порт, который в моем случае является COM5 (см. Изображение ниже), и я упомянул, что модуль Bluetooth работает на скорости 9600 бод.
Как было сказано ранее, обработка также позволяет обрабатывать изображения, в этом руководстве изображения отправляются внутри эскиза с помощью веб-камеры. В каждом изображении мы отслеживаем определенный объект. Чтобы узнать больше об этом, вы можете посетить это руководство.
Я изо всех сил старался объяснить программу (данную в конце) с помощью строк комментариев. Вы можете скачать файлы здесь.
Если вы хотите узнать больше об эскизе, вы можете связаться со мной через раздел комментариев, и я помогу вам.
За работой:
Когда оборудование и программное обеспечение будут готовы, наденьте перчатки и приготовьтесь к действию. Теперь просто включите Arduino и запустите приложение. Светодиод на модуле Bluetooth должен светиться стабильно. Теперь это означает, что ваше системное приложение установило соединение Bluetooth с вашим Arduino.
Вы получите следующий экран, где вам нужно выбрать объект для отслеживания. Эту трассировку можно просто выполнить, щелкнув объект. В данном случае объект - Синий диск. Теперь вы можете переместить свой объект и заметить, что указатель следует за вашим объектом. Для достижения наилучших результатов используйте объект уникального цвета и светлую комнату.
Теперь коснитесь большого пальца указательным пальцем, и вы должны увидеть сообщение «Клавиша 1 нажата», а когда вы нажмете большой палец средним пальцем, вы должны увидеть «Клавиша 2 нажата», это означает, что все работает нормально и калибровка завершена. Теперь нажмите кнопку «Готово».
После нажатия кнопки «Готово» вы попадете на главный экран, где сможете рисовать в воздухе или переключать светодиод на плате Arduino, как показано в видео ниже.