- Концепція:
- Необхідні матеріали:
- Схеми та обладнання:
- Програма для Arduino:
- Програма для обробки:
- Робоча:
Це дуже цікавий проект, в якому ми збираємось навчитися реалізовувати віртуальну реальність за допомогою Arduino та Processing. Для більшості з нас фільм «Залізна людина» Джона Фавро завжди був натхненням для створення нових речей, які зроблять наше життя легшим та веселішим. Я особисто захоплювався техніками, які демонструються у фільмі, і завжди хотів побудувати щось подібне до цього. Отже, у цьому проекті я намагався імітувати речі Віртуальної реальності, що відбуваються у фільмі, як ми можемо просто махнути рукою перед комп’ютером і перемістити вказівник у потрібне місце і виконати деякі завдання.
Тут я покажу вам, як ви можете просто махнути рукою перед веб-камерою і намалювати щось на своєму комп’ютері. Я також покажу вам, як ви можете перемикати світло, віртуально рухаючи рукою та клацаючи пальцями в повітрі.
Концепція:
Щоб це сталося, ми повинні використовувати потужність Arduino та Processing разом. Більшість з них були б знайомі з Arduino, але обробка може бути для вас новою. Обробка - це програма, подібна до Arduino, і вона також є відкритим кодом і є безкоштовною для завантаження. За допомогою Processing ви можете створювати прості системні програми, програми для Android та багато іншого. Він також має можливість обробки зображень та розпізнавання голосу. Це так само, як Arduino, і його набагато легко вивчити, але не хвилюйтеся, якщо ви зовсім новачок у обробці, тому що я написав цей підручник досить простим, щоб кожен, хто зацікавлений, міг зробити це в найкоротші терміни.
У цьому посібнику ми використовуємо обробку для створення простого системного додатку, який надає нам інтерфейс користувача та відстежує положення нашої руки за допомогою обробки зображень. Тепер ми повинні зробити лівий клацання та клацання правою кнопкою миші пальцями. Щоб це сталося, я використав два датчики Холла (один на вказівному, а другий на середньому пальці), які будуть зчитуватися Arduino Nano. Arduino також передає стан клацання на Комп’ютер бездротовим способом через Bluetooth.
Це може здатися складним, але, повірте мені; це не так важко, як здається. Тож давайте подивимось на матеріали, необхідні для запуску цього проекту.
Необхідні матеріали:
- Arduino Nano
- Датчик Холла (A3144) - 2Ні
- Маленький шматочок магніту
- Модуль Bluetooth (HC-05 / HC-06)
- 9 В акумулятор
- Підключення проводів дошка.
- Пара рукавичок
- IDE Arduino (програмне забезпечення)
- Обробка IDE (програмне забезпечення)
- Комп’ютер з веб-камерою та Bluetooth (ви також можете використовувати зовнішній Bluetooth або веб-камеру для комп’ютера)
Схеми та обладнання:
Апаратна частина цього проекту дуже проста і легка в побудові. Повна схема показана нижче.
Arduino, резистори та штифти berg вставляються на точкову плату, як показано нижче.
Датчик Холла та модуль 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, а не друкуйте їх. Оскільки читати лише на стороні обробки буде легко, лише якщо вони написані. Також значення надсилатиметься, лише якщо воно не таке саме, як попереднє значення.
if (BluetoothData == 'y') digitalWrite (ledpin, HIGH); if (BluetoothData == 'n') digitalWrite (ledpin, LOW);
Ці лінії використовуються для перемикання вбудованого світлодіода, який підключений до виводу 13, на основі значення, отриманого модулем BT. Наприклад, якщо модуль отримує «y», тоді світлодіод вмикається, а якщо отримує «n», то він вимикається.
Програма для обробки:
Призначення програми Processing - створити системну програму, яка може виконувати функцію UI (Інтерфейс користувача), а також виконувати обробку зображень для відстеження певного об'єкта. У цьому випадку ми відстежуємо синій предмет, який ми приклеїли до рукавичок вище. Програма в основному має чотири екрани.
- Екран калібрування
- Головний екран
- Екран фарби
- Екран перемикання світлодіодів
Ми можемо переходити з одного екрану на інший, просто махаючи руками та перетягуючи екрани в ефірі. Ми також можемо натискати потрібні місця для перемикання світлодіодів або навіть малювати щось на екрані.
Ви можете скопіювати вставити всю програму обробки (подану в кінці) та змінити її відповідно до вашої творчості або просто завантажити звідси EXE-файли та виконати наступні кроки для запуску програми.
- Встановіть JAVA на свій комп'ютер, якщо ви раніше не встановлювали її
- Встановіть You Cam perfect на свій комп’ютер
- Увімкніть Arduino та підключіть комп'ютер до модуля Bluetooth
- Запустіть файл програми
Якщо все піде нормально, ви зможете помітити, як світлодіодний індикатор на модулі Bluetooth стає стабільним, а індикатор веб-камери горить. Якщо у вас виникнуть проблеми, зв’яжіться зі мною через розділ коментарів, і я допоможу вам.
Подивіться відео в кінці, щоб знати, як відкалібрувати програму та використовувати її.
Якщо ви хочете змінити код і вбудувати в нього більше функцій, тоді ви можете скористатися наступними відомостями про програму
IDE для обробки можна завантажити звідси. Якщо ви хочете дізнатись більше про обробку та створити більш цікаві проекти, тоді ви можете відвідати навчальні посібники тут.
Обробка має можливість зчитування послідовних даних, у цій програмі послідовні дані надходять із COM-порту Bluetooth. Вам потрібно вибрати, до якого COM-порту підключається ваш Bluetooth, використовуючи цей рядок нижче
port = new Serial (this, Serial.list (), 9600);
Тут я вибрав свій перший COM-порт, який у моєму випадку є COM5 (див. Малюнок нижче), і я згадав, що модуль Bluetooth працює на швидкості передачі даних 9600.
Як уже зазначалося, обробка раніше також має можливість обробки зображень, у цьому посібнику зображення надсилаються всередину ескізу за допомогою веб-камери. На кожному зображенні ми відстежуємо конкретний об’єкт. Щоб дізнатись більше про це, ви можете відвідати цей посібник.
Я з усіх сил намагався пояснити програму (подану наприкінці) через рядки коментарів. Завантажити файли можна тут.
Якщо ви хочете дізнатись більше про ескіз, ви можете зв’язатися зі мною через розділ коментарів, і я вам допоможу.
Робоча:
Коли апаратне та програмне забезпечення буде готове, надіньте рукавички та підготуйтеся до певних дій. Тепер просто увімкніть Arduino, а потім запустіть програму. Світлодіод на модулі Bluetooth повинен стабільно працювати. Тепер це означає, що ваша системна програма встановила зв’язок Bluetooth із вашим Arduino.
Ви отримаєте наступний екран, де потрібно вибрати об’єкт, який слід відстежувати. Цю трасування можна просто зробити, натиснувши на об’єкт. У цьому випадку об'єктом є синій диск. Тепер ви можете переміщати свій об’єкт і помітити, що вказівник слідує за вашим об’єктом. Для найкращих результатів використовуйте унікальний кольоровий предмет та світлу кімнату.
Тепер торкніться великого пальця вказівним пальцем, і ви побачите повідомлення «Натиснута клавіша 1», а коли натискаєте великий палець середнім пальцем, ви побачите «Натиснута клавіша 2», це означає, що все працює нормально і калібрування закінчено. Тепер натисніть кнопку Готово.
Після натискання кнопки "Готово" ви перейдете на головний екран, де ви зможете малювати в ефірі або перемикати світлодіод на платі Arduino, як показано у відео нижче.